From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gnu.wildebeest.org (wildebeest.demon.nl [212.238.236.112]) by sourceware.org (Postfix) with ESMTPS id E01F2385843B for ; Thu, 2 Sep 2021 13:42:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E01F2385843B Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=klomp.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=klomp.org Received: from tarox.wildebeest.org (83-87-18-245.cable.dynamic.v4.ziggo.nl [83.87.18.245]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by gnu.wildebeest.org (Postfix) with ESMTPSA id D79AC30008A9; Thu, 2 Sep 2021 15:42:40 +0200 (CEST) Received: by tarox.wildebeest.org (Postfix, from userid 1000) id 579DE4000CB1; Thu, 2 Sep 2021 15:42:40 +0200 (CEST) Message-ID: <8608ab7d03f5ceda0f45a4175554e2185c48ab4d.camel@klomp.org> Subject: Re: debuginfod: Fracture tests/run-debuginfod-find.sh into specific tests From: Mark Wielaard To: Noah Sanci , elfutils-devel@sourceware.org Date: Thu, 02 Sep 2021 15:42:40 +0200 In-Reply-To: References: Content-Type: multipart/mixed; boundary="=-efxqUxaaqY9A3hjDw+Fo" X-Mailer: Evolution 3.28.5 (3.28.5-10.el7) Mime-Version: 1.0 X-Spam-Status: No, score=-7.3 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_BADIPHTTP, KAM_DMARC_STATUS, KAM_LOTSOFHASH, KAM_SHORT, NUMERIC_HTTP_ADDR, SCC_5_SHORT_WORD_LINES, SPF_HELO_NONE, SPF_PASS, TXREP, WEIRD_PORT autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: elfutils-devel@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Elfutils-devel mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Sep 2021 13:43:00 -0000 --=-efxqUxaaqY9A3hjDw+Fo Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Noah, I really like this split up of test cases. I added the new x-forward-ttl testcase to it. run-debuginfod-x-forwarded-for.sh Two tests run-debuginfod-federation-metrics.sh and run-debuginfod- federation-sqlite.sh called get_ports twice to get an "invalid" port number to set DEBUGINFOD_URLS. I changed this to: export DEBUGINFOD_URLS=3D'http://127.0.0.1:0' # Note invalid The only concern I have is with get_ports. There is a race condition selecting the random port when lots of debuginfod tests are running. It could hand out ports that are not yet used to multiple tests. I only managed to trigger this once, with make check -j256. So it probably isn't a big race, but getting random failures is bad. I don't have a good solution for this though. Maybe we could assign an unique range to each testcase? e.g. diff --git a/tests/test-subr.sh b/tests/test-subr.sh index 41e95e31..880d6590 100644 --- a/tests/test-subr.sh +++ b/tests/test-subr.sh @@ -314,14 +314,17 @@ archive_test() { fi } =20 +# takes one argument a "base" port number, this should be unique between +# tests to select (two) random port number between $base..$base+100. get_ports() { + base=3D$1 while true; do - PORT1=3D`expr '(' $RANDOM % 1000 ')' + 9000` + PORT1=3D`expr '(' $RANDOM % 100 ')' + $base` ss -atn | fgrep ":$PORT1" || break done # Some tests will use two servers, so assign the second var while true; do - PORT2=3D`expr '(' $RANDOM % 1000 ')' + 9000` + PORT2=3D`expr '(' $RANDOM % 100 ')' + $base` ss -atn | fgrep ":$PORT2" && $PORT1 -ne $PORT2 || break done =20 And then add a unique base to each get_port call (8000, 8100, 8200, ...). We would to be careful to never assign the same unique range to each test though. Which requires the programmer to check all other tests. But maybe that isn't such a big deal? git grep ^get_port tests would give you all the currently used port ranges... Ideas? Attached the slightly updated patch, including the new run-debuginfod- x-forwarded-for.sh, also on=20 https://code.wildebeest.org/git/user/mjw/elfutils/commit/?h=3Ddebuginfod-fr= acture-tests Cheers, Mark --=-efxqUxaaqY9A3hjDw+Fo Content-Disposition: inline; filename*0=0001-debuginfod-Fracture-tests-run-debuginfod-find.sh-int.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-debuginfod-Fracture-tests-run-debuginfod-find.sh-int.patch"; charset="UTF-8" RnJvbSBkZWM4MDdmYzNkNTIxZmFmOWVjMTRlOTM1OThkYTZjM2E2ZTgwODY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FoIFNhbmNpIDxuc2FuY2lAcmVkaGF0LmNvbT4KRGF0ZTog VHVlLCAxMCBBdWcgMjAyMSAxMToyMTozNSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIGRlYnVnaW5m b2Q6IEZyYWN0dXJlIHRlc3RzL3J1bi1kZWJ1Z2luZm9kLWZpbmQuc2ggaW50bwogc3BlY2lmaWMg dGVzdHMKCnRlc3RzL3J1bi1kZWJ1Z2luZm9kLWZpbmQuc2ggd2FzIGEgbWFzc2l2ZSB0ZXN0IHNj cmlwdCB3aXRoIG1hbnkgYnJvYWRseQp2YXJ5aW5nIHRlc3RzLiBUaGlzIGNhdXNlZCB0aGUgdGVz dCBzY3JpcHQgdG8gZmFpbCB3aGVuIGFueSBudW1iZXIgb2YKdGhpbmdzIHdlbnQgd3JvbmcgYW5k IGJlY2F1c2Ugb2YgaXRzIGludGVydHdpbmVkIG5hdHVyZSwgZGV0ZWN0aW5nIHRoZQpzb3VyY2Ug b2YgYSBmYWlsdXJlIGNvdWxkIGJlIGRpZmZpY3VsdC4gVGhlIHNpemUgb2YgdGhlIHRlc3Qgc2Ny aXB0CmFsc28gbWVhbnQgbWFueSB1bnJlbGF0ZWQgdGVzdHMgd2VyZSBydW4gbWFraW5nIHRoZSB0 ZXN0aW5nIHByb2Nlc3MKdW5uZWNlc3NhcmlseSBsZW5ndGh5LgoKVGhpcyBwYXRjaCBmcmFjdHVy ZXMgdGVzdHMvcnVuLWRlYnVnaW5mb2QtZmluZC5zaCBpbnRvIHNtYWxsZXIsIG1vcmUKbWFuYWdl YWJsZSBpbmRpdmlkdWFsIHRlc3Qgc2NyaXB0IGZpbGVzLiBUaGlzIGVuc3VyZXMgdGhhdCB3aGVu IGZhaWx1cmUKb2NjdXJzLCBhIHByb2dyYW1tZXIgY2FuIGVhc2lseSBkZXRlcm1pbmUgd2hlcmUg dGhlaXIgcGF0Y2ggd2VudAp3cm9uZy4gSXQgYWxzbyBhbGxvd3MgcHJvZ3JhbW1lcnMgdG8gc3Bl Y2lmeSBleGFjdGx5IHdoaWNoIHRlc3RzIHRvCnJ1biwgbWFraW5nIHRlc3RpbmcgbW9yZSBlZmZp Y2llbnQuIFJlZHVuZGFuY2llcyBhcmUgYWxzbyByZWR1Y2VkIGJ5CnBsYWNpbmcgY29kZSBpbiB0 ZXN0cy90ZXN0LXN1YnIuc2guCgpTaWduZWQtb2ZmLWJ5OiBOb2FoIFNhbmNpIDxuc2FuY2lAcmVk aGF0LmNvbT4KLS0tCiB0ZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgMjcgKwogdGVzdHMvTWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQz ICstCiB0ZXN0cy9ydW4tZGVidWdpbmZvZC0wMDAtcGVybWlzc2lvbi5zaCAgICAgfCAgODIgKysK IHRlc3RzL3J1bi1kZWJ1Z2luZm9kLWFyY2hpdmUtZ3Jvb20uc2ggICAgICB8IDE1MSArKysrCiB0 ZXN0cy9ydW4tZGVidWdpbmZvZC1hcmNoaXZlLXJlbmFtZS5zaCAgICAgfCAgOTMgKysrCiB0ZXN0 cy9ydW4tZGVidWdpbmZvZC1hcmNoaXZlLXRlc3Quc2ggICAgICAgfCAgODEgKysKIHRlc3RzL3J1 bi1kZWJ1Z2luZm9kLWFydGlmYWN0LXJ1bm5pbmcuc2ggICB8IDEyMCArKysKIHRlc3RzL3J1bi1k ZWJ1Z2luZm9kLWRsb3Blbi5zaCAgICAgICAgICAgICB8ICA4MSArKwogdGVzdHMvcnVuLWRlYnVn aW5mb2QtZHVwbGljYXRlLXVybHMuc2ggICAgIHwgIDQ5ICsrCiB0ZXN0cy9ydW4tZGVidWdpbmZv ZC1leHRyYWN0aW9uLnNoICAgICAgICAgfCAgOTkgKysrCiB0ZXN0cy9ydW4tZGVidWdpbmZvZC1m ZC1wcmVmZXRjaC1jYWNoZXMuc2ggfCAgNTQgKysKIHRlc3RzL3J1bi1kZWJ1Z2luZm9kLWZlZGVy YXRpb24tbGluay5zaCAgICB8IDE1OSArKysrCiB0ZXN0cy9ydW4tZGVidWdpbmZvZC1mZWRlcmF0 aW9uLW1ldHJpY3Muc2ggfCAyMTEgKysrKysKIHRlc3RzL3J1bi1kZWJ1Z2luZm9kLWZlZGVyYXRp b24tc3FsaXRlLnNoICB8IDE5OSArKysrKwogdGVzdHMvcnVuLWRlYnVnaW5mb2QtZmlsZS5zaCAg ICAgICAgICAgICAgIHwgIDM5ICsKIHRlc3RzL3J1bi1kZWJ1Z2luZm9kLWZpbmQuc2ggICAgICAg ICAgICAgICB8IDg1MiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHRlc3RzL3J1bi1kZWJ1Z2luZm9k LW1hbGZvcm1lZC5zaCAgICAgICAgICB8IDEwNyArKysKIHRlc3RzL3J1bi1kZWJ1Z2luZm9kLW5v LXVybHMuc2ggICAgICAgICAgICB8ICAzOCArCiB0ZXN0cy9ydW4tZGVidWdpbmZvZC1xdWVyeS1y ZXRyeS5zaCAgICAgICAgfCAgMzQgKwogdGVzdHMvcnVuLWRlYnVnaW5mb2QtcmVnZXguc2ggICAg ICAgICAgICAgIHwgIDk1ICsrKwogdGVzdHMvcnVuLWRlYnVnaW5mb2Qtc2l6ZXRpbWUuc2ggICAg ICAgICAgIHwgIDc1ICsrCiB0ZXN0cy9ydW4tZGVidWdpbmZvZC10bXAtaG9tZS5zaCAgICAgICAg ICAgfCAxMjIgKysrCiB0ZXN0cy9ydW4tZGVidWdpbmZvZC13cml0YWJsZS5zaCAgICAgICAgICAg fCAgODIgKysKIHRlc3RzL3J1bi1kZWJ1Z2luZm9kLXgtZm9yd2FyZGVkLWZvci5zaCAgICB8ICA2 MCArKwogdGVzdHMvdGVzdC1zdWJyLnNoICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTI0ICsr LQogMjUgZmlsZXMgY2hhbmdlZCwgMjIyMiBpbnNlcnRpb25zKCspLCA4NTUgZGVsZXRpb25zKC0p CiBjcmVhdGUgbW9kZSAxMDA3NTUgdGVzdHMvcnVuLWRlYnVnaW5mb2QtMDAwLXBlcm1pc3Npb24u c2gKIGNyZWF0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9ydW4tZGVidWdpbmZvZC1hcmNoaXZlLWdyb29t LnNoCiBjcmVhdGUgbW9kZSAxMDA3NTUgdGVzdHMvcnVuLWRlYnVnaW5mb2QtYXJjaGl2ZS1yZW5h bWUuc2gKIGNyZWF0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9ydW4tZGVidWdpbmZvZC1hcmNoaXZlLXRl c3Quc2gKIGNyZWF0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9ydW4tZGVidWdpbmZvZC1hcnRpZmFjdC1y dW5uaW5nLnNoCiBjcmVhdGUgbW9kZSAxMDA3NTUgdGVzdHMvcnVuLWRlYnVnaW5mb2QtZGxvcGVu LnNoCiBjcmVhdGUgbW9kZSAxMDA3NTUgdGVzdHMvcnVuLWRlYnVnaW5mb2QtZHVwbGljYXRlLXVy bHMuc2gKIGNyZWF0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9ydW4tZGVidWdpbmZvZC1leHRyYWN0aW9u LnNoCiBjcmVhdGUgbW9kZSAxMDA3NTUgdGVzdHMvcnVuLWRlYnVnaW5mb2QtZmQtcHJlZmV0Y2gt Y2FjaGVzLnNoCiBjcmVhdGUgbW9kZSAxMDA3NTUgdGVzdHMvcnVuLWRlYnVnaW5mb2QtZmVkZXJh dGlvbi1saW5rLnNoCiBjcmVhdGUgbW9kZSAxMDA3NTUgdGVzdHMvcnVuLWRlYnVnaW5mb2QtZmVk ZXJhdGlvbi1tZXRyaWNzLnNoCiBjcmVhdGUgbW9kZSAxMDA3NTUgdGVzdHMvcnVuLWRlYnVnaW5m b2QtZmVkZXJhdGlvbi1zcWxpdGUuc2gKIGNyZWF0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9ydW4tZGVi dWdpbmZvZC1maWxlLnNoCiBkZWxldGUgbW9kZSAxMDA3NTUgdGVzdHMvcnVuLWRlYnVnaW5mb2Qt ZmluZC5zaAogY3JlYXRlIG1vZGUgMTAwNzU1IHRlc3RzL3J1bi1kZWJ1Z2luZm9kLW1hbGZvcm1l ZC5zaAogY3JlYXRlIG1vZGUgMTAwNzU1IHRlc3RzL3J1bi1kZWJ1Z2luZm9kLW5vLXVybHMuc2gK IGNyZWF0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9ydW4tZGVidWdpbmZvZC1xdWVyeS1yZXRyeS5zaAog Y3JlYXRlIG1vZGUgMTAwNzU1IHRlc3RzL3J1bi1kZWJ1Z2luZm9kLXJlZ2V4LnNoCiBjcmVhdGUg bW9kZSAxMDA3NTUgdGVzdHMvcnVuLWRlYnVnaW5mb2Qtc2l6ZXRpbWUuc2gKIGNyZWF0ZSBtb2Rl IDEwMDc1NSB0ZXN0cy9ydW4tZGVidWdpbmZvZC10bXAtaG9tZS5zaAogY3JlYXRlIG1vZGUgMTAw NzU1IHRlc3RzL3J1bi1kZWJ1Z2luZm9kLXdyaXRhYmxlLnNoCiBjcmVhdGUgbW9kZSAxMDA3NTUg dGVzdHMvcnVuLWRlYnVnaW5mb2QteC1mb3J3YXJkZWQtZm9yLnNoCgpkaWZmIC0tZ2l0IGEvdGVz dHMvQ2hhbmdlTG9nIGIvdGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNmYTdjMmU0Li4yOWQwMjc4ZCAx MDA2NDQKLS0tIGEvdGVzdHMvQ2hhbmdlTG9nCisrKyBiL3Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwz ICsxLDMwIEBACisyMDIxLTA4LTIwICBOb2FoIFNhbmNpICA8bnNhbmNpQHJlZGhhdC5jb20+CisK KwkqIGRlYnVnaW5mb2QtZmluZC5zaDogU2VwYXJhdGVkIGZpbGUgaW50bworCXJ1bi1kZWJ1Z2lu Zm9kLTAwMC1wZXJtaXNzaW9uLnNoLAorCXJ1bi1kZWJ1Z2luZm9kLWFyY2hpdmUtZ3Jvb20uc2gs CisJcnVuLWRlYnVnaW5mb2QtYXJjaGl2ZS1yZW5hbWUuc2gsCisJcnVuLWRlYnVnaW5mb2QtYXJj aGl2ZS10ZXN0LnNoLAorCXJ1bi1kZWJ1Z2luZm9kLWFydGlmYWN0LXJ1bm5pbmcuc2gsCisJcnVu LWRlYnVnaW5mb2QtZGxvcGVuLnNoLAorCXJ1bi1kZWJ1Z2luZm9kLWR1cGxpY2F0ZS11cmxzLnNo LAorCXJ1bi1kZWJ1Z2luZm9kLWV4dHJhY3Rpb24uc2gsCisJcnVuLWRlYnVnaW5mb2QtZmQtcHJl ZmV0Y2gtY2FjaGVzLnNoLAorCXJ1bi1kZWJ1Z2luZm9kLWZlZGVyYXRpb24tbGluay5zaCwKKwly dW4tZGVidWdpbmZvZC1mZWRlcmF0aW9uLW1ldHJpY3Muc2gsCisJcnVuLWRlYnVnaW5mb2QtZmVk ZXJhdGlvbi1zcWxpdGUuc2gsCisJcnVuLWRlYnVnaW5mb2QtZmlsZS5zaCwKKwlydW4tZGVidWdp bmZvZC1tYWxmb3JtZWQuc2gsCisJcnVuLWRlYnVnaW5mb2Qtbm8tdXJscy5zaCwKKwlydW4tZGVi dWdpbmZvZC1xdWVyeS1yZXRyeS5zaCwKKwlydW4tZGVidWdpbmZvZC1yZWdleC5zaCwKKwlydW4t ZGVidWdpbmZvZC1zaXpldGltZS5zaCwKKwlydW4tZGVidWdpbmZvZC10bXAtaG9tZS5zaCwgYW5k CisJcnVuLWRlYnVnaW5mb2Qtd3JpdGFibGUuc2gKKwlydW4tZGVidWdpbmZvZC14LWZvcndhcmRl ZC1mb3Iuc2gKKwkqIHRlc3RzL01ha2VmaWxlLmFtOiBBZGRlZCB0aGUgYWJvdmUgbmV3IGZpbGVz IHRvIHRoZSB0ZXN0IHN1aXRlCisJKiB0ZXN0cy90ZXN0LXN1YnIuc2g6IEFkZGVkIHNvbWUgZ2Vu ZXJhbCBmdW5jdGlvbnMgZm9yIGFib3ZlIHRlc3RzCisKIDIwMjEtMDgtMjggIE1hcmsgV2llbGFh cmQgIDxtYXJrQGtsb21wLm9yZz4KIAogCSogcnVuLWRlYnVnaW5mb2QtZmluZC5zaDogVXNlICI6 bWVtb3J5OiIgZm9yIHRoZQpkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuYW0gYi90ZXN0cy9N YWtlZmlsZS5hbQppbmRleCA0Mjk2NDlmNC4uZDUxZjcyODEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL01h a2VmaWxlLmFtCisrKyBiL3Rlc3RzL01ha2VmaWxlLmFtCkBAIC0yMTEsNyArMjExLDI3IEBAIGlm IERFQlVHSU5GT0QKIGNoZWNrX1BST0dSQU1TICs9IGRlYnVnaW5mb2RfYnVpbGRfaWRfZmluZAog IyBXaXRoIHRoZSBkdW1teSBkZWxlZ2F0aW9uIGRvZXNuJ3Qgd29yawogaWYgIURVTU1ZX0xJQkRF QlVHSU5GT0QKLVRFU1RTICs9IHJ1bi1kZWJ1Z2luZm9kLWZpbmQuc2gKK1RFU1RTICs9IHJ1bi1k ZWJ1Z2luZm9kLWRsb3Blbi5zaCBcCisJIHJ1bi1kZWJ1Z2luZm9kLWFydGlmYWN0LXJ1bm5pbmcu c2ggXAorCSBydW4tZGVidWdpbmZvZC1mZC1wcmVmZXRjaC1jYWNoZXMuc2ggXAorCSBydW4tZGVi dWdpbmZvZC1yZWdleC5zaCBcCisJIHJ1bi1kZWJ1Z2luZm9kLWR1cGxpY2F0ZS11cmxzLnNoIFwK KwkgcnVuLWRlYnVnaW5mb2QtZmlsZS5zaCBcCisJIHJ1bi1kZWJ1Z2luZm9kLXNpemV0aW1lLnNo IFwKKwkgcnVuLWRlYnVnaW5mb2QtbWFsZm9ybWVkLnNoIFwKKwkgcnVuLWRlYnVnaW5mb2QtMDAw LXBlcm1pc3Npb24uc2ggXAorCSBydW4tZGVidWdpbmZvZC10bXAtaG9tZS5zaCBcCisJIHJ1bi1k ZWJ1Z2luZm9kLXdyaXRhYmxlLnNoIFwKKwkgcnVuLWRlYnVnaW5mb2Qtbm8tdXJscy5zaCBcCisJ IHJ1bi1kZWJ1Z2luZm9kLXF1ZXJ5LXJldHJ5LnNoIFwKKwkgcnVuLWRlYnVnaW5mb2QtZXh0cmFj dGlvbi5zaCBcCisJIHJ1bi1kZWJ1Z2luZm9kLWFyY2hpdmUtZ3Jvb20uc2ggXAorCSBydW4tZGVi dWdpbmZvZC1hcmNoaXZlLXJlbmFtZS5zaCBcCisJIHJ1bi1kZWJ1Z2luZm9kLWFyY2hpdmUtdGVz dC5zaCBcCisJIHJ1bi1kZWJ1Z2luZm9kLWZlZGVyYXRpb24tc3FsaXRlLnNoIFwKKwkgcnVuLWRl YnVnaW5mb2QtZmVkZXJhdGlvbi1saW5rLnNoIFwKKwkgcnVuLWRlYnVnaW5mb2QtZmVkZXJhdGlv bi1tZXRyaWNzLnNoIFwKKwkgcnVuLWRlYnVnaW5mb2QteC1mb3J3YXJkZWQtZm9yLnNoCiBlbmRp ZgogZW5kaWYKIApAQCAtNDc0LDcgKzQ5NCwyNiBAQCBFWFRSQV9ESVNUID0gcnVuLWFyZXh0cmFj dC5zaCBydW4tYXJzeW10ZXN0LnNoIHJ1bi1hci5zaCBcCiAJICAgICBydW4tZWxmY2xhc3NpZnku c2ggcnVuLWVsZmNsYXNzaWZ5LXNlbGYuc2ggXAogCSAgICAgcnVuLWRpc2FzbS1yaXNjdjY0LnNo IFwKIAkgICAgIHRlc3RmaWxlLXJpc2N2NjQtZGlzMS5vLmJ6MiB0ZXN0ZmlsZS1yaXNjdjY0LWRp czEuZXhwZWN0LmJ6MiBcCi0gICAgICAgICAgICAgcnVuLWRlYnVnaW5mb2QtZmluZC5zaCBcCisJ ICAgICBydW4tZGVidWdpbmZvZC1mZC1wcmVmZXRjaC1jYWNoZXMuc2ggXAorCSAgICAgcnVuLWRl YnVnaW5mb2QtcmVnZXguc2ggXAorCSAgICAgcnVuLWRlYnVnaW5mb2QtZHVwbGljYXRlLXVybHMu c2ggXAorCSAgICAgcnVuLWRlYnVnaW5mb2QtZmlsZS5zaCBcCisJICAgICBydW4tZGVidWdpbmZv ZC1zaXpldGltZS5zaCBcCisJICAgICBydW4tZGVidWdpbmZvZC1kbG9wZW4uc2ggXAorCSAgICAg cnVuLWRlYnVnaW5mb2QtbWFsZm9ybWVkLnNoIFwKKwkgICAgIHJ1bi1kZWJ1Z2luZm9kLTAwMC1w ZXJtaXNzaW9uLnNoIFwKKwkgICAgIHJ1bi1kZWJ1Z2luZm9kLXRtcC1ob21lLnNoIFwKKwkgICAg IHJ1bi1kZWJ1Z2luZm9kLXdyaXRhYmxlLnNoIFwKKwkgICAgIHJ1bi1kZWJ1Z2luZm9kLW5vLXVy bHMuc2ggXAorCSAgICAgcnVuLWRlYnVnaW5mb2QtcXVlcnktcmV0cnkuc2ggXAorCSAgICAgcnVu LWRlYnVnaW5mb2QtYXJjaGl2ZS1ncm9vbS5zaCBcCisJICAgICBydW4tZGVidWdpbmZvZC1leHRy YWN0aW9uLnNoIFwKKwkgICAgIHJ1bi1kZWJ1Z2luZm9kLWFyY2hpdmUtcmVuYW1lLnNoIFwKKwkg ICAgIHJ1bi1kZWJ1Z2luZm9kLWZlZGVyYXRpb24tbGluay5zaCBcCisJICAgICBydW4tZGVidWdp bmZvZC1mZWRlcmF0aW9uLW1ldHJpY3Muc2ggXAorCSAgICAgcnVuLWRlYnVnaW5mb2QtYXJ0aWZh Y3QtcnVubmluZy5zaCBcCisJICAgICBydW4tZGVidWdpbmZvZC1mZWRlcmF0aW9uLXNxbGl0ZS5z aCBcCisJICAgICBydW4tZGVidWdpbmZvZC14LWZvcndhcmRlZC1mb3Iuc2ggXAogCSAgICAgZGVi dWdpbmZvZC1ycG1zL2ZlZG9yYTMwL2hlbGxvMi0xLjAtMi5zcmMucnBtIFwKIAkgICAgIGRlYnVn aW5mb2QtcnBtcy9mZWRvcmEzMC9oZWxsbzItMS4wLTIueDg2XzY0LnJwbSBcCiAJICAgICBkZWJ1 Z2luZm9kLXJwbXMvZmVkb3JhMzAvaGVsbG8yLWRlYnVnaW5mby0xLjAtMi54ODZfNjQucnBtIFwK ZGlmZiAtLWdpdCBhL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLTAwMC1wZXJtaXNzaW9uLnNoIGIvdGVz dHMvcnVuLWRlYnVnaW5mb2QtMDAwLXBlcm1pc3Npb24uc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUK aW5kZXggMDAwMDAwMDAuLjMwOGNkZjZkCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcnVuLWRl YnVnaW5mb2QtMDAwLXBlcm1pc3Npb24uc2gKQEAgLTAsMCArMSw4MiBAQAorIyEvdXNyL2Jpbi9l bnYgYmFzaAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBSZWQgSGF0LCBJbmMuCisjIFRo aXMgZmlsZSBpcyBwYXJ0IG9mIGVsZnV0aWxzLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRo ZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIwor IyBlbGZ1dGlscyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLCBidXQKKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisuICRzcmNkaXIv dGVzdC1zdWJyLnNoICAjIGluY2x1ZGVzIHNldCAtZQorCisjIGZvciB0ZXN0IGNhc2UgZGVidWdn aW5nLCB1bmNvbW1lbnQ6CitzZXQgLXgKK3Vuc2V0IFZBTEdSSU5EX0NNRAorREI9JHtQV0R9Ly5k ZWJ1Z2luZm9kX3RtcC5zcWxpdGUKK2V4cG9ydCBERUJVR0lORk9EX0NBQ0hFX1BBVEg9JHtQV0R9 Ly5jbGllbnRfY2FjaGUKK2dldF9wb3J0cworZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoIERF QlVHSU5GT0RfVVJMUz0gJHthYnNfYnVpbGRkaXJ9Ly4uL2RlYnVnaW5mb2QvZGVidWdpbmZvZCAk VkVSQk9TRSAtRiAtcCAkUE9SVDEgXAorICAgIC10MCAtZzAgLXYgJHtQV0R9ID4gdmxvZyRQT1JU MSAyPiYxICYKK1BJRDE9JCEKK3RlbXBmaWxlcyB2bG9nJFBPUlQxCitlcnJmaWxlcyB2bG9nJFBP UlQxCisjIFNlcnZlciBtdXN0IGJlY29tZSByZWFkeQord2FpdF9yZWFkeSAkUE9SVDEgJ3JlYWR5 JyAxCitleHBvcnQgREVCVUdJTkZPRF9VUkxTPWh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxLyAgICMg b3Igd2l0aG91dCB0cmFpbGluZyAvCisKKyMgQmUgcGF0aWVudCB3aGVuIHJ1biBvbiBhIGJ1c3kg bWFjaGluZSB0aGluZ3MgbWlnaHQgdGFrZSBhIGJpdC4KK2V4cG9ydCBERUJVR0lORk9EX1RJTUVP VVQ9MTAKKworIyBDaGVjayB0aHJlYWQgY29tbSBuYW1lcworcHMgLXEgJFBJRDEgLWUgLUwgLW8g JyVwICVjICVhJyB8IGdyZXAgZ3Jvb20KK3BzIC1xICRQSUQxIC1lIC1MIC1vICclcCAlYyAlYScg fCBncmVwIHNjYW4KK3BzIC1xICRQSUQxIC1lIC1MIC1vICclcCAlYyAlYScgfCBncmVwIHRyYXZl cnNlCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBQUjI1NjI4CitybSAtcmYgJERFQlVHSU5GT0RfQ0FD SEVfUEFUSCAjIGNsZWFuIGl0IGZyb20gcHJldmlvdXMgdGVzdHMKKworIyBUaGUgcXVlcnkgaXMg ZGVzaWduZWQgdG8gZmFpbCwgd2hpbGUgdGhlIDAwMC1wZXJtaXNzaW9uIGZpbGUgc2hvdWxkIGJl IGNyZWF0ZWQuCit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2lu Zm9kLWZpbmQgZGVidWdpbmZvIDAxMjM0NTY3IHx8IHRydWUKK2lmIFsgISAtZiAkREVCVUdJTkZP RF9DQUNIRV9QQVRILzAxMjM0NTY3L2RlYnVnaW5mbyBdOyB0aGVuCisgIGVjaG8gImNvdWxkIG5v dCBmaW5kIGNhY2hlIGluICRERUJVR0lORk9EX0NBQ0hFX1BBVEgiCisgIGVycgorZmkKKworaWYg WyAtciAkREVCVUdJTkZPRF9DQUNIRV9QQVRILzAxMjM0NTY3L2RlYnVnaW5mbyBdOyB0aGVuCisg IGVjaG8gIlRoZSBjYWNoZSAkREVCVUdJTkZPRF9DQUNIRV9QQVRILzAxMjM0NTY3L2RlYnVnaW5m byBpcyByZWFkYWJsZSIKKyAgZXJyCitmaQorCitieXRlY291bnRfYmVmb3JlPWBjdXJsIC1zIGh0 dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL21ldHJpY3MgfCBncmVwICdodHRwX3Jlc3BvbnNlc190cmFu c2Zlcl9ieXRlc19jb3VudHtjb2RlPSI0MDQifSdgCit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRp cn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdpbmZvIDAxMjM0NTY3IHx8IHRydWUK K2J5dGVjb3VudF9hZnRlcj1gY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMS9tZXRyaWNz IHwgZ3JlcCAnaHR0cF9yZXNwb25zZXNfdHJhbnNmZXJfYnl0ZXNfY291bnR7Y29kZT0iNDA0In0n YAoraWYgWyAiJGJ5dGVjb3VudF9iZWZvcmUiICE9ICIkYnl0ZWNvdW50X2FmdGVyIiBdOyB0aGVu CisgIGVjaG8gImh0dHBfcmVzcG9uc2VzX3RyYW5zZmVyX2J5dGVzX2NvdW50e2NvZGU9IjQwNCJ9 IGhhcyBjaGFuZ2VkLiIKKyAgZXJyCitmaQorCisjIHNldCBjYWNoZV9taXNzX3MgdG8gMCBhbmQg c2xlZXAgMSB0byBtYWtlIHRoZSBtdGltZSBleHBpcmUuCitlY2hvIDAgPiAkREVCVUdJTkZPRF9D QUNIRV9QQVRIL2NhY2hlX21pc3Nfcworc2xlZXAgMQorYnl0ZWNvdW50X2JlZm9yZT1gY3VybCAt cyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMS9tZXRyaWNzIHwgZ3JlcCAnaHR0cF9yZXNwb25zZXNf dHJhbnNmZXJfYnl0ZXNfY291bnR7Y29kZT0iNDA0In0nYAordGVzdHJ1biAke2Fic190b3BfYnVp bGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAwMTIzNDU2NyB8fCB0 cnVlCitieXRlY291bnRfYWZ0ZXI9YGN1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDEvbWV0 cmljcyB8IGdyZXAgJ2h0dHBfcmVzcG9uc2VzX3RyYW5zZmVyX2J5dGVzX2NvdW50e2NvZGU9IjQw NCJ9J2AKK2lmIFsgIiRieXRlY291bnRfYmVmb3JlIiA9PSAiJGJ5dGVjb3VudF9hZnRlciIgXTsg dGhlbgorICBlY2hvICJodHRwX3Jlc3BvbnNlc190cmFuc2Zlcl9ieXRlc19jb3VudHtjb2RlPSI0 MDQifSBzaG91bGQgYmUgaW5jcmVtZW50ZWQuIgorICBlcnIKK2ZpCisKK2tpbGwgJFBJRDEKK3dh aXQgJFBJRDEKK1BJRDE9MAorZXhpdCAwCmRpZmYgLS1naXQgYS90ZXN0cy9ydW4tZGVidWdpbmZv ZC1hcmNoaXZlLWdyb29tLnNoIGIvdGVzdHMvcnVuLWRlYnVnaW5mb2QtYXJjaGl2ZS1ncm9vbS5z aApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMC4uOWFmZTMwMDAKLS0tIC9kZXYv bnVsbAorKysgYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1hcmNoaXZlLWdyb29tLnNoCkBAIC0wLDAg KzEsMTUxIEBACisjIS91c3IvYmluL2VudiBiYXNoCisjCisjIENvcHlyaWdodCAoQykgMjAxOS0y MDIxIFJlZCBIYXQsIEluYy4KKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgZWxmdXRpbHMuCisjCisj IFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisjCisjIGVsZnV0aWxzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uCisKKy4gJHNyY2Rpci90ZXN0LXN1YnIuc2ggICMgaW5jbHVkZXMgc2V0IC1lCisj IGZvciB0ZXN0IGNhc2UgZGVidWdnaW5nLCB1bmNvbW1lbnQ6CitzZXQgLXgKK3Vuc2V0IFZBTEdS SU5EX0NNRAorCitnZXRfcG9ydHMKK0RCPSR7UFdEfS8uZGVidWdpbmZvZF90bXAuc3FsaXRlCitl eHBvcnQgREVCVUdJTkZPRF9DQUNIRV9QQVRIPSR7UFdEfS8uY2xpZW50X2NhY2hlCitleHBvcnQg REVCVUdJTkZPRF9USU1FT1VUPTEwCitleHBvcnQgREVCVUdJTkZPRF9VUkxTPSdodHRwOi8vMTI3 LjAuMC4xOickUE9SVDEKKworIyBDbGVhbiBvbGQgZGlyaWN0b3JpZXMKK21rZGlyIFIgJHtQV0R9 L0YKK2VudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCAke2Fic19idWlsZGRpcn0vLi4vZGVidWdp bmZvZC9kZWJ1Z2luZm9kICRWRVJCT1NFIFwKKyAgICAtRiAtUiAtZCAkREIgLXAgJFBPUlQxIC10 MCAtZzAgLXYgUiAke1BXRH0vRiA+IHZsb2ckUE9SVDEgMj4mMSAmCitQSUQxPSQhCit0ZW1wZmls ZXMgdmxvZyRQT1JUMQorZXJyZmlsZXMgdmxvZyRQT1JUMQorIyBTZXJ2ZXIgbXVzdCBiZWNvbWUg cmVhZHkKK3dhaXRfcmVhZHkgJFBPUlQxICdyZWFkeScgMQorIyBCZSBwYXRpZW50IHdoZW4gcnVu IG9uIGEgYnVzeSBtYWNoaW5lIHRoaW5ncyBtaWdodCB0YWtlIGEgYml0LgorCisjIENoZWNrIHRo cmVhZCBjb21tIG5hbWVzCitwcyAtcSAkUElEMSAtZSAtTCAtbyAnJXAgJWMgJWEnIHwgZ3JlcCBn cm9vbQorcHMgLXEgJFBJRDEgLWUgLUwgLW8gJyVwICVjICVhJyB8IGdyZXAgc2NhbgorcHMgLXEg JFBJRDEgLWUgLUwgLW8gJyVwICVjICVhJyB8IGdyZXAgdHJhdmVyc2UKKworIyBCdWlsZCBhIG5v bi1zdHJpcHBlZCBiaW5hcnkKK2VjaG8gImludCBtYWluKCkgeyByZXR1cm4gMDsgfSIgPiAke1BX RH0vRi9wcm9nLmMKK2djYyAtV2wsLS1idWlsZC1pZCAtZyAtbyAke1BXRH0vRi9wcm9nICR7UFdE fS9GL3Byb2cuYworQlVJTERJRD1gZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoICR7YWJzX2J1 aWxkZGlyfS8uLi9zcmMvcmVhZGVsZiBcCisgICAgICAgICAgLWEgJHtQV0R9L0YvcHJvZyB8IGdy ZXAgJ0J1aWxkIElEJyB8IGN1dCAtZCAnICcgLWYgN2AKK3RlbXBmaWxlcyAke1BXRH0vRi9wcm9n ICR7UFdEfS9GL3Byb2cuYworCitjcCAtcnZwICR7YWJzX3NyY2Rpcn0vZGVidWdpbmZvZC1ycG1z IFIKK2lmIFsgIiR6c3RkIiA9ICJmYWxzZSIgXTsgdGhlbiAgIyBudWtlIHRoZSB6c3RkIGZlZG9y YSAzMSBvbmVzCisgICAgcm0gLXZyZiBSL2RlYnVnaW5mb2QtcnBtcy9mZWRvcmEzMQorZmkKK2tp bGwgLVVTUjEgJFBJRDEKKyMgTm93IHRoZXJlIHNob3VsZCBiZSAxIGZpbGVzIGluIHRoZSBpbmRl eAord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3RvdGFse3JvbGU9InRyYXZlcnNlIn0n IDEKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya19wZW5kaW5ne3JvbGU9InNjYW4ifScg MAord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF9idXN5e3JvbGU9InNjYW4ifScgMAorCitjcCAt cnZwICR7YWJzX3NyY2Rpcn0vZGVidWdpbmZvZC1ycG1zIFIKK2lmIFsgIiR6c3RkIiA9ICJmYWxz ZSIgXTsgdGhlbiAgIyBudWtlIHRoZSB6c3RkIGZlZG9yYSAzMSBvbmVzCisgICAgcm0gLXZyZiBS L2RlYnVnaW5mb2QtcnBtcy9mZWRvcmEzMQorZmkKKwordGVtcGZpbGVzIHZsb2czICREQgorY3Ag LXJ2cCAke2Fic19zcmNkaXJ9L2RlYnVnaW5mb2QtdGFycyBaCitraWxsIC1VU1IxICRQSUQxCisj IFdhaXQgdGlsbCBib3RoIGZpbGVzIGFyZSBpbiB0aGUgaW5kZXggYW5kIHNjYW4vaW5kZXggZnVs bHkgZmluaXNoZWQKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0 cmF2ZXJzZSJ9JyAyCit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xl PSJzY2FuIn0nIDAKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0n IDAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworIyBBbGwgcnBtcyBuZWVkIHRvIGJlIGluIHRoZSBpbmRleCwg ZXhjZXB0IHRoZSBkdW1teSBwZXJtaXNzaW9uLTAwMCBvbmUKK3JwbXM9JChmaW5kIFIgLW5hbWUg XCpycG0gfCBncmVwIC12IG5vdGhpbmcgfCB3YyAtbCkKK3dhaXRfcmVhZHkgJFBPUlQxICdzY2Fu bmVkX2ZpbGVzX3RvdGFse3NvdXJjZT0iLnJwbSBhcmNoaXZlIn0nICRycG1zCit0eHo9JChmaW5k IFogLW5hbWUgXCp0YXIueHogfCB3YyAtbCkKKwora2lsbCAtVVNSMSAkUElEMSAgIyB0d28gaGl0 cyBvZiBTSUdVU1IxIG1heSBiZSBuZWVkZWQgdG8gcmVzb2x2ZSAuZGVidWctPmR3ei0+c3JlZnMK KyMgV2FpdCB0aWxsIGJvdGggZmlsZXMgYXJlIGluIHRoZSBpbmRleCBhbmQgc2Nhbi9pbmRleCBm dWxseSBmaW5pc2hlZAord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3RvdGFse3JvbGU9 InRyYXZlcnNlIn0nIDMKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya19wZW5kaW5ne3Jv bGU9InNjYW4ifScgMAord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF9idXN5e3JvbGU9InNjYW4i fScgMAorCisjIEV4cGVjdCBhbGwgc291cmNlIGZpbGVzIGZvdW5kIGluIHRoZSBycG1zICh0aGV5 IGFyZSBhbGwgY2FsbGVkIGhlbGxvLmMgOikKKyMgV2Ugd2lsbCBuZWVkIHRvIGV4dHJhY3QgYWxs IHJwbXMgKGluIHRoZWlyIG93biBkaXJlY3RvcnkpIGFuZCBjb3VsZCBhbGwKKyMgc291cmNlcyBy ZWZlcmVuY2VkIGluIHRoZSAuZGVidWcgZmlsZXMuCitta2RpciBleHRyYWN0ZWQKK2NkIGV4dHJh Y3RlZAorc3ViZGlyPTA7CituZXdycG1zPSQoZmluZCAuLi9SIC1uYW1lIFwqXC5ycG0gfCBncmVw IC12IG5vdGhpbmcpCitmb3IgaSBpbiAkbmV3cnBtczsgZG8KKyAgICBzdWJkaXI9JFskc3ViZGly KzFdOworICAgIG1rZGlyICRzdWJkaXI7CisgICAgY2QgJHN1YmRpcjsKKyAgICBscyAtbGFoIC4u LyRpCisgICAgcnBtMmNwaW8gLi4vJGkgfCBjcGlvIC1pdmQ7CisgICAgY2QgLi47Citkb25lCitz b3VyY2VmaWxlcz0kKGZpbmQgLW5hbWUgXCpcXC5kZWJ1ZyBcCisgICAgICAgICAgICAgIHwgZW52 IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoIHhhcmdzIFwKKyAgICAgICAgICAgICAgICAke2Fic190 b3BfYnVpbGRkaXJ9L3NyYy9yZWFkZWxmIC0tZGVidWctZHVtcD1kZWNvZGVkbGluZSBcCisgICAg ICAgICAgICAgIHwgZ3JlcCBtdGltZTogfCB3YyAtLWxpbmVzKQorY2QgLi4KK3JtIC1yZiBleHRy YWN0ZWQKKword2FpdF9yZWFkeSAkUE9SVDEgJ2ZvdW5kX3NvdXJjZXJlZnNfdG90YWx7c291cmNl PSIucnBtIGFyY2hpdmUifScgJHNvdXJjZWZpbGVzCisKKyMgY29tbW9uIHNvdXJjZSBmaWxlIHNo YTEKK1NIQT1mNGExYTgwNjJiZTk5OGFlOTNiOGYxY2Q3NDRhMzk4YzZkZTZkYmIxCisjIGZlZG9y YTMxCitpZiBbICR6c3RkID0gdHJ1ZSBdOyB0aGVuCisgICAgIyBmZWRvcmEzMSB1c2VzIHpzdGQg Y29tcHJlc3Npb24gb24gcnBtcywgb2xkZXIgcnBtMmNwaW8vbGliYXJjaGl2ZSBjYW4ndCBoYW5k bGUgaXQKKyAgICAjIGFuZCB3ZSdyZSBub3QgdXNpbmcgdGhlIGZhbmN5IC1aICcucnBtPShycG0y Y3Bpb3x6c3RkY2F0KTwnIHdvcmthcm91bmQgaW4gdGhpcyB0ZXN0c3VpdGUKKyAgICBhcmNoaXZl X3Rlc3QgNDIwZTllMzMwODk3MWY0YjgxN2NjNWJmODM5MjhiNDFhNjkwOWQ4OCAvdXNyL3NyYy9k ZWJ1Zy9oZWxsbzMtMS4wLTIueDg2XzY0L2Zvb2Jhci8vLy8uLy4uL2hlbGxvLmMgJFNIQQorICAg IGFyY2hpdmVfdGVzdCA4N2MwOGQxMmM3ODE3NGYxMDgyYjdjODg4YjMyMzgyMTliMGViMjY1IC91 c3Ivc3JjL2RlYnVnL2hlbGxvMy0xLjAtMi54ODZfNjQvLy9mb29iYXIvLi8uLi8vaGVsbG8uYyAk U0hBCitmaQorIyBmZWRvcmEzMAorYXJjaGl2ZV90ZXN0IGMzNjcwOGE3ODYxOGQ1OTdkZWUxNWQw ZGM5ODlmMDkzY2E1ZjkxMjAgL3Vzci9zcmMvZGVidWcvaGVsbG8yLTEuMC0yLng4Nl82NC9oZWxs by5jICRTSEEKK2FyY2hpdmVfdGVzdCA0MWEyMzZlYjY2N2MzNjJhMWM0MTk2MDE4Y2M0NTgxZTA5 NzIyYjFiIC91c3Ivc3JjL2RlYnVnL2hlbGxvMi0xLjAtMi54ODZfNjQvaGVsbG8uYyAkU0hBCisj IHJoZWw3CithcmNoaXZlX3Rlc3QgYmMxZmViZmQwM2NhMDVlMDMwZjBkMjA1Zjc2NTlkYjI5Zjhh NGIzMCAvdXNyL3NyYy9kZWJ1Zy9oZWxsby0xLjAvaGVsbG8uYyAkU0hBCithcmNoaXZlX3Rlc3Qg ZjBhYTE1YjhhYmE0ZjNjMjhjYWMzYzJhNzM4MDFmZWZhNjQ0YTlmMiAvdXNyL3NyYy9kZWJ1Zy9o ZWxsby0xLjAvaGVsbG8uYyAkU0hBCisjIHJoZWw2CithcmNoaXZlX3Rlc3QgYmJiZjkyZWJlZTUy MjgzMTBlMzk4NjA5YzIzYzJkN2Q1M2Y2ZTJmOSAvdXNyL3NyYy9kZWJ1Zy9oZWxsby0xLjAvaGVs bG8uYyAkU0hBCithcmNoaXZlX3Rlc3QgZDQ0ZDQyY2JkN2Q5MTViYzkzOGM4MTMzM2EyMWUzNTVh NjAyMmZiNyAvdXNyL3NyYy9kZWJ1Zy9oZWxsby0xLjAvaGVsbG8uYyAkU0hBCitSUE1fQlVJTERJ RD1kNDRkNDJjYmQ3ZDkxNWJjOTM4YzgxMzMzYTIxZTM1NWE2MDIyZmI3ICMgaW4gcmhlbDYvIHN1 YmRpcgorCisjIERyb3Agc29tZSBvZiB0aGUgYXJ0aWZhY3RzLCBydW4gYSBncm9vbSBjeWNsZTsg Y29uZmlybSB0aGF0CisjIGRlYnVnaW5mb2QgaGFzIGZvcmdvdHRlbiB0aGVtLCBidXQgcmVtZW1i ZXJzIG90aGVycworcm0gLXIgUi9kZWJ1Z2luZm9kLXJwbXMvcmhlbDYvKgora2lsbCAtVVNSMiAk UElEMSAgIyBncm9vbSBjeWNsZQorIyMgMSBncm9vbSBjeWNsZSBhbHJlYWR5IHRvb2sgcGxhY2Ug YXQvc29vbi1hZnRlciBzdGFydHVwLCBzbyAtVVNSMiBtYWtlcyAyCit3YWl0X3JlYWR5ICRQT1JU MSAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0iZ3Jvb20ifScgMQorIyBFeHBlY3QgNCBycG1zIGNv bnRhaW5pbmcgMiBidWlsZGlkcyB0byBiZSBkZWxldGVkIGJ5IHRoZSBncm9vbQord2FpdF9yZWFk eSAkUE9SVDEgJ2dyb29tZWRfdG90YWx7ZGVjaXNpb249InN0YWxlIn0nIDQKKworcm0gLXJmICRE RUJVR0lORk9EX0NBQ0hFX1BBVEggIyBjbGVhbiBpdCBmcm9tIHByZXZpb3VzIHRlc3RzCisKKyMg dGhpcyBpcyBvbmUgb2YgdGhlIGJ1aWxkaWRzIGZyb20gdGhlIGdyb29tLWRlbGV0ZWQgcnBtcwor dGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGV4 ZWN1dGFibGUgJFJQTV9CVUlMRElEICYmIGZhbHNlIHx8IHRydWUKKworIyBidXQgdGhpcyBvbmUg d2FzIG5vdCBkZWxldGVkIHNvIHNob3VsZCBiZSBzdGlsbCBhcm91bmQKK3Rlc3RydW4gJHthYnNf dG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBleGVjdXRhYmxlICRCVUlM RElEIHx8IHRydWUKKwora2lsbCAkUElEMQord2FpdCAkUElEMQorUElEMT0wCitleGl0IDAKZGlm ZiAtLWdpdCBhL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLWFyY2hpdmUtcmVuYW1lLnNoIGIvdGVzdHMv cnVuLWRlYnVnaW5mb2QtYXJjaGl2ZS1yZW5hbWUuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5k ZXggMDAwMDAwMDAuLjM4MTQzYzQ2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcnVuLWRlYnVn aW5mb2QtYXJjaGl2ZS1yZW5hbWUuc2gKQEAgLTAsMCArMSw5MyBAQAorIyEvdXNyL2Jpbi9lbnYg YmFzaAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBSZWQgSGF0LCBJbmMuCisjIFRoaXMg ZmlsZSBpcyBwYXJ0IG9mIGVsZnV0aWxzLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQor IyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBM aWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBl bGZ1dGlscyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LCBidXQKKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisuICRzcmNkaXIvdGVz dC1zdWJyLnNoICAjIGluY2x1ZGVzIHNldCAtZQorIyBmb3IgdGVzdCBjYXNlIGRlYnVnZ2luZywg dW5jb21tZW50Ogorc2V0IC14Cit1bnNldCBWQUxHUklORF9DTUQKKworZ2V0X3BvcnRzCitEQj0k e1BXRH0vLmRlYnVnaW5mb2RfdG1wLnNxbGl0ZQorZXhwb3J0IERFQlVHSU5GT0RfQ0FDSEVfUEFU SD0ke1BXRH0vLmNsaWVudF9jYWNoZQorZXhwb3J0IERFQlVHSU5GT0RfVElNRU9VVD0xMAorZXhw b3J0IERFQlVHSU5GT0RfVVJMUz0naHR0cDovLzEyNy4wLjAuMTonJFBPUlQxCit0ZW1wZmlsZXMg JERFQlVHSU5GT0RfQ0FDSEVfUEFUSCAkREIKKyMgQ2xlYW4gb2xkIGRpcmljdG9yaWVzCitta2Rp ciBSICR7UFdEfS9GCitlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9 Ly4uL2RlYnVnaW5mb2QvZGVidWdpbmZvZCAkVkVSQk9TRSBcCisgICAgLUYgLVIgLWQgJERCIC1w ICRQT1JUMSAtdDAgLWcwIC12IFIgJHtQV0R9L0YgPiB2bG9nJFBPUlQxIDI+JjEgJgorCitQSUQx PSQhCit0ZW1wZmlsZXMgdmxvZyRQT1JUMQorZXJyZmlsZXMgdmxvZyRQT1JUMQorIyBTZXJ2ZXIg bXVzdCBiZWNvbWUgcmVhZHkKK3dhaXRfcmVhZHkgJFBPUlQxICdyZWFkeScgMQorIyBDaGVjayB0 aHJlYWQgY29tbSBuYW1lcworcHMgLXEgJFBJRDEgLWUgLUwgLW8gJyVwICVjICVhJyB8IGdyZXAg Z3Jvb20KK3BzIC1xICRQSUQxIC1lIC1MIC1vICclcCAlYyAlYScgfCBncmVwIHNjYW4KK3BzIC1x ICRQSUQxIC1lIC1MIC1vICclcCAlYyAlYScgfCBncmVwIHRyYXZlcnNlCisKK2NwIC1ydnAgJHth YnNfc3JjZGlyfS9kZWJ1Z2luZm9kLXJwbXMgUgoraWYgWyAiJHpzdGQiID0gImZhbHNlIiBdOyB0 aGVuICAjIG51a2UgdGhlIHpzdGQgZmVkb3JhIDMxIG9uZXMKKyAgICBybSAtdnJmIFIvZGVidWdp bmZvZC1ycG1zL2ZlZG9yYTMxCitmaQorCitraWxsIC1VU1IxICRQSUQxCisjIE5vdyB0aGVyZSBz aG91bGQgYmUgMSBmaWxlcyBpbiB0aGUgaW5kZXgKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRf d29ya190b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9JyAxCit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFk X3dvcmtfcGVuZGluZ3tyb2xlPSJzY2FuIn0nIDAKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRf YnVzeXtyb2xlPSJzY2FuIn0nIDAKKworIyBjb21tb24gc291cmNlIGZpbGUgc2hhMQorU0hBPWY0 YTFhODA2MmJlOTk4YWU5M2I4ZjFjZDc0NGEzOThjNmRlNmRiYjEKKworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisjIyBQUjI2ODEwOiBOb3cgcmVuYW1lIHNvbWUgZmlsZXMgaW4gdGhlIFIgZGlyZWN0b3J5LCB0 aGVuIHJlc2Nhbiwgc28KKyMgdGhlcmUgYXJlIHR3byBjb3BpZXMgb2YgdGhlIHNhbWUgYnVpbGRp ZCBpbiB0aGUgaW5kZXgsIG9uZSBmb3IgdGhlCisjIG5vLWxvbmdlci1leGlzdGluZyBmaWxlIG5h bWUsIGFuZCBvbmUgdW5kZXIgdGhlIG5ldyBuYW1lLgorCisjIHJ1biBhIGdyb29tIGN5Y2xlIHRv IGZvcmNlIHNlcnZlciB0byBkcm9wIGl0cyBmZGNhY2hlCitraWxsIC1VU1IyICRQSUQxICAjIGdy b29tIGN5Y2xlCit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0iZ3Jv b20ifScgMgorIyBtb3ZlIGl0IGFyb3VuZCBhIGNvdXBsZSBvZiB0aW1lcyB0byBtYWtlIGl0IGxp a2VseSB0byBoaXQgYSBub25leGlzdGVudCBlbnRyeSBkdXJpbmcgaXRlcmF0aW9uCittdiBSL2Rl YnVnaW5mb2QtcnBtcy9yaGVsNyBSL2RlYnVnaW5mb2QtcnBtcy9yaGVsN3JlbmFtZWQKK2tpbGwg LVVTUjEgJFBJRDEgICMgc2NhbiBjeWNsZQord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3Jr X3RvdGFse3JvbGU9InRyYXZlcnNlIn0nIDIKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29y a19wZW5kaW5ne3JvbGU9InNjYW4ifScgMAord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF9idXN5 e3JvbGU9InNjYW4ifScgMAorbXYgUi9kZWJ1Z2luZm9kLXJwbXMvcmhlbDdyZW5hbWVkIFIvZGVi dWdpbmZvZC1ycG1zL3JoZWw3cmVuYW1lZDIKK2tpbGwgLVVTUjEgJFBJRDEgICMgc2NhbiBjeWNs ZQord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3RvdGFse3JvbGU9InRyYXZlcnNlIn0n IDMKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya19wZW5kaW5ne3JvbGU9InNjYW4ifScg MAord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF9idXN5e3JvbGU9InNjYW4ifScgMAorbXYgUi9k ZWJ1Z2luZm9kLXJwbXMvcmhlbDdyZW5hbWVkMiBSL2RlYnVnaW5mb2QtcnBtcy9yaGVsN3JlbmFt ZWQzCitraWxsIC1VU1IxICRQSUQxICAjIHNjYW4gY3ljbGUKK3dhaXRfcmVhZHkgJFBPUlQxICd0 aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9JyA0Cit3YWl0X3JlYWR5ICRQT1JUMSAn dGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2FuIn0nIDAKK3dhaXRfcmVhZHkgJFBPUlQxICd0 aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKKworIyByZXRlc3QgcmhlbDcKK2FyY2hpdmVfdGVz dCBiYzFmZWJmZDAzY2EwNWUwMzBmMGQyMDVmNzY1OWRiMjlmOGE0YjMwIC91c3Ivc3JjL2RlYnVn L2hlbGxvLTEuMC9oZWxsby5jICRTSEEKK2FyY2hpdmVfdGVzdCBmMGFhMTViOGFiYTRmM2MyOGNh YzNjMmE3MzgwMWZlZmE2NDRhOWYyIC91c3Ivc3JjL2RlYnVnL2hlbGxvLTEuMC9oZWxsby5jICRT SEEKKworZWdyZXAgJyhsaWJjLmVycm9yLipyaGVsNyl8KGJjMWZlYmZkMDNjYSl8KGYwYWExNWI4 YWJhKScgdmxvZyRQT1JUMQorCitraWxsICRQSUQxCit3YWl0ICRQSUQxCitQSUQxPTAKK2V4aXQg MDsKZGlmZiAtLWdpdCBhL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLWFyY2hpdmUtdGVzdC5zaCBiL3Rl c3RzL3J1bi1kZWJ1Z2luZm9kLWFyY2hpdmUtdGVzdC5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQpp bmRleCAwMDAwMDAwMC4uY2M3NmI2YTEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9ydW4tZGVi dWdpbmZvZC1hcmNoaXZlLXRlc3Quc2gKQEAgLTAsMCArMSw4MSBAQAorIyEvdXNyL2Jpbi9lbnYg YmFzaAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBSZWQgSGF0LCBJbmMuCisjIFRoaXMg ZmlsZSBpcyBwYXJ0IG9mIGVsZnV0aWxzLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQor IyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBM aWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBl bGZ1dGlscyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LCBidXQKKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisuICRzcmNkaXIvdGVz dC1zdWJyLnNoICAjIGluY2x1ZGVzIHNldCAtZQorCisjIGZvciB0ZXN0IGNhc2UgZGVidWdnaW5n LCB1bmNvbW1lbnQ6CitzZXQgLXgKK3Vuc2V0IFZBTEdSSU5EX0NNRAorCisjIGZpbmQgYW4gdW51 c2VkIHBvcnQgbnVtYmVyCitta2RpciBSCisKK2dldF9wb3J0cworCitlbnYgTERfTElCUkFSWV9Q QVRIPSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9Ly4uL2RlYnVnaW5mb2QvZGVidWdpbmZvZCAkVkVS Qk9TRSAtUiAtcCAkUE9SVDEgLXQwIC1nMCAtdiBSID4gdmxvZyRQT1JUMSAyPiYxICYKK1BJRDE9 JCEKK3RlbXBmaWxlcyB2bG9nJFBPUlQxCitlcnJmaWxlcyB2bG9nJFBPUlQxCisjIFNlcnZlciBt dXN0IGJlY29tZSByZWFkeQord2FpdF9yZWFkeSAkUE9SVDEgJ3JlYWR5JyAxCisKKyMgQmUgcGF0 aWVudCB3aGVuIHJ1biBvbiBhIGJ1c3kgbWFjaGluZSB0aGluZ3MgbWlnaHQgdGFrZSBhIGJpdC4K K2V4cG9ydCBERUJVR0lORk9EX1RJTUVPVVQ9MTAKK2V4cG9ydCBERUJVR0lORk9EX1VSTFM9J2h0 dHA6Ly8xMjcuMC4wLjE6JyRQT1JUMQorCisjIENoZWNrIHRocmVhZCBjb21tIG5hbWVzCitwcyAt cSAkUElEMSAtZSAtTCAtbyAnJXAgJWMgJWEnIHwgZ3JlcCBncm9vbQorcHMgLXEgJFBJRDEgLWUg LUwgLW8gJyVwICVjICVhJyB8IGdyZXAgc2NhbgorcHMgLXEgJFBJRDEgLWUgLUwgLW8gJyVwICVj ICVhJyB8IGdyZXAgdHJhdmVyc2UKKworY3AgLXJ2cCAke2Fic19zcmNkaXJ9L2RlYnVnaW5mb2Qt cnBtcyBSCitpZiBbICIkenN0ZCIgPSAiZmFsc2UiIF07IHRoZW4gICMgbnVrZSB0aGUgenN0ZCBm ZWRvcmEgMzEgb25lcworICAgIHJtIC12cmYgUi9kZWJ1Z2luZm9kLXJwbXMvZmVkb3JhMzEKK2Zp CisKK2tpbGwgLVVTUjEgJFBJRDEKKyMgV2FpdCB0aWxsIGJvdGggZmlsZXMgYXJlIGluIHRoZSBp bmRleCBhbmQgc2Nhbi9pbmRleCBmdWxseSBmaW5pc2hlZAord2FpdF9yZWFkeSAkUE9SVDEgJ3Ro cmVhZF93b3JrX3RvdGFse3JvbGU9InRyYXZlcnNlIn0nIDEKK3dhaXRfcmVhZHkgJFBPUlQxICd0 aHJlYWRfd29ya19wZW5kaW5ne3JvbGU9InNjYW4ifScgMAord2FpdF9yZWFkeSAkUE9SVDEgJ3Ro cmVhZF9idXN5e3JvbGU9InNjYW4ifScgMAorCisjIGNvbW1vbiBzb3VyY2UgZmlsZSBzaGExCitT SEE9ZjRhMWE4MDYyYmU5OThhZTkzYjhmMWNkNzQ0YTM5OGM2ZGU2ZGJiMQorIyBmZWRvcmEzMQor aWYgWyAkenN0ZCA9IHRydWUgXTsgdGhlbgorICAgICMgZmVkb3JhMzEgdXNlcyB6c3RkIGNvbXBy ZXNzaW9uIG9uIHJwbXMsIG9sZGVyIHJwbTJjcGlvL2xpYmFyY2hpdmUgY2FuJ3QgaGFuZGxlIGl0 CisgICAgIyBhbmQgd2UncmUgbm90IHVzaW5nIHRoZSBmYW5jeSAtWiAnLnJwbT0ocnBtMmNwaW98 enN0ZGNhdCk8JyB3b3JrYXJvdW5kIGluIHRoaXMgdGVzdHN1aXRlCisgICAgYXJjaGl2ZV90ZXN0 IDQyMGU5ZTMzMDg5NzFmNGI4MTdjYzViZjgzOTI4YjQxYTY5MDlkODggL3Vzci9zcmMvZGVidWcv aGVsbG8zLTEuMC0yLng4Nl82NC9mb29iYXIvLy8vLi8uLi9oZWxsby5jICRTSEEKKyAgICBhcmNo aXZlX3Rlc3QgODdjMDhkMTJjNzgxNzRmMTA4MmI3Yzg4OGIzMjM4MjE5YjBlYjI2NSAvdXNyL3Ny Yy9kZWJ1Zy9oZWxsbzMtMS4wLTIueDg2XzY0Ly8vZm9vYmFyLy4vLi4vL2hlbGxvLmMgJFNIQQor ZmkKKyMgZmVkb3JhMzAKK2FyY2hpdmVfdGVzdCBjMzY3MDhhNzg2MThkNTk3ZGVlMTVkMGRjOTg5 ZjA5M2NhNWY5MTIwIC91c3Ivc3JjL2RlYnVnL2hlbGxvMi0xLjAtMi54ODZfNjQvaGVsbG8uYyAk U0hBCithcmNoaXZlX3Rlc3QgNDFhMjM2ZWI2NjdjMzYyYTFjNDE5NjAxOGNjNDU4MWUwOTcyMmIx YiAvdXNyL3NyYy9kZWJ1Zy9oZWxsbzItMS4wLTIueDg2XzY0L2hlbGxvLmMgJFNIQQorIyByaGVs NworYXJjaGl2ZV90ZXN0IGJjMWZlYmZkMDNjYTA1ZTAzMGYwZDIwNWY3NjU5ZGIyOWY4YTRiMzAg L3Vzci9zcmMvZGVidWcvaGVsbG8tMS4wL2hlbGxvLmMgJFNIQQorYXJjaGl2ZV90ZXN0IGYwYWEx NWI4YWJhNGYzYzI4Y2FjM2MyYTczODAxZmVmYTY0NGE5ZjIgL3Vzci9zcmMvZGVidWcvaGVsbG8t MS4wL2hlbGxvLmMgJFNIQQorIyByaGVsNgorYXJjaGl2ZV90ZXN0IGJiYmY5MmViZWU1MjI4MzEw ZTM5ODYwOWMyM2MyZDdkNTNmNmUyZjkgL3Vzci9zcmMvZGVidWcvaGVsbG8tMS4wL2hlbGxvLmMg JFNIQQorYXJjaGl2ZV90ZXN0IGQ0NGQ0MmNiZDdkOTE1YmM5MzhjODEzMzNhMjFlMzU1YTYwMjJm YjcgL3Vzci9zcmMvZGVidWcvaGVsbG8tMS4wL2hlbGxvLmMgJFNIQQorIyBhcmNoCisjYXJjaGl2 ZV90ZXN0IGNlZTEzYjJlYTUwNWE3ZjM3YmQyMGQyNzFjNmJjN2U1ZjhkMmRmY2IgL3Vzci9zcmMv ZGVidWcvaGVsbG8uYyA3YTEzMzRlMDg2Yjk3ZTVmMTI0MDAzYTZjZmIzZWQ3OTJkMTBjZGY0CisK K2tpbGwgJFBJRDEKK3dhaXQgJFBJRDEKK1BJRDE9MAorZXhpdCAwCmRpZmYgLS1naXQgYS90ZXN0 cy9ydW4tZGVidWdpbmZvZC1hcnRpZmFjdC1ydW5uaW5nLnNoIGIvdGVzdHMvcnVuLWRlYnVnaW5m b2QtYXJ0aWZhY3QtcnVubmluZy5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAw MC4uOTVhZTBhM2MKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1hcnRp ZmFjdC1ydW5uaW5nLnNoCkBAIC0wLDAgKzEsMTIwIEBACisjIS91c3IvYmluL2VudiBiYXNoCisj CisjIENvcHlyaWdodCAoQykgMjAxOS0yMDIxIFJlZCBIYXQsIEluYy4KKyMgVGhpcyBmaWxlIGlz IHBhcnQgb2YgZWxmdXRpbHMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIGVsZnV0aWxz IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAor IyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKy4gJHNyY2Rpci90ZXN0LXN1YnIu c2ggICMgaW5jbHVkZXMgc2V0IC1lCisKKyMgZm9yIHRlc3QgY2FzZSBkZWJ1Z2dpbmcsIHVuY29t bWVudDoKK3NldCAteAordW5zZXQgVkFMR1JJTkRfQ01ECisKK2dldF9wb3J0cworbWtkaXIgRgor CitEQj0ke1BXRH0vLmRlYnVnaW5mb2RfdG1wLnNxbGl0ZQordGVtcGZpbGVzICREQgorZXhwb3J0 IERFQlVHSU5GT0RfQ0FDSEVfUEFUSD0ke1BXRH0vLmNsaWVudF9jYWNoZQorCitlY2hvICdpbnQg bWFpbihpbnQgYXJnYywgY2hhciAqIGFyZ3YpeyByZXR1cm4gMDsgfScgPiAke1BXRH0vcHJvZy5j CitnY2MgLVdsLC0tYnVpbGQtaWQgLWcgLW8gcHJvZyAke1BXRH0vcHJvZy5jCit0ZXN0cnVuICR7 YWJzX3RvcF9idWlsZGRpcn0vc3JjL3N0cmlwIC1nIC1mIHByb2cuZGVidWcgJHtQV0R9L3Byb2cK K3RlbXBmaWxlcyBwcm9nIHByb2cuZGVidWcgcHJvZy5jCitCVUlMRElEPWBlbnYgTERfTElCUkFS WV9QQVRIPSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9Ly4uL3NyYy9yZWFkZWxmIFwKKyAgICAgICAg ICAtYSBwcm9nIHwgZ3JlcCAnQnVpbGQgSUQnIHwgY3V0IC1kICcgJyAtZiA3YAorZXhwb3J0IERF QlVHSU5GT0RfVVJMUz1odHRwOi8vMTI3LjAuMC4xOiRQT1JUMQorZW52IExEX0xJQlJBUllfUEFU SD0kbGRwYXRoICR7YWJzX2J1aWxkZGlyfS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QgJFZFUkJP U0UgLWQgJERCIC1GIC1wICRQT1JUMSAtdDAgLWcwIC12IEYgPiB2bG9nJFBPUlQxIDI+JjEgJgor UElEMT0kIQordGVtcGZpbGVzIHZsb2ckUE9SVDEKK2VycmZpbGVzIHZsb2ckUE9SVDEKK212IHBy b2cgRgorbXYgcHJvZy5kZWJ1ZyBGCit0ZW1wZmlsZXMgcHJvZy9GCisKKyMgQmUgcGF0aWVudCB3 aGVuIHJ1biBvbiBhIGJ1c3kgbWFjaGluZSB0aGluZ3MgbWlnaHQgdGFrZSBhIGJpdC4KK2V4cG9y dCBERUJVR0lORk9EX1RJTUVPVVQ9MTAKKworIyBTZXJ2ZXIgbXVzdCBiZWNvbWUgcmVhZHkKK3dh aXRfcmVhZHkgJFBPUlQxICdyZWFkeScgMQora2lsbCAtVVNSMSAkUElEMQorCit3YWl0X3JlYWR5 ICRQT1JUMSAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0idHJhdmVyc2UifScgMQord2FpdF9yZWFk eSAkUE9SVDEgJ3RocmVhZF93b3JrX3BlbmRpbmd7cm9sZT0ic2NhbiJ9JyAwCit3YWl0X3JlYWR5 ICRQT1JUMSAndGhyZWFkX2J1c3l7cm9sZT0ic2NhbiJ9JyAwCisKKyMgQ2hlY2sgdGhyZWFkIGNv bW0gbmFtZXMKK3BzIC1xICRQSUQxIC1lIC1MIC1vICclcCAlYyAlYScgfCBncmVwIGdyb29tCitw cyAtcSAkUElEMSAtZSAtTCAtbyAnJXAgJWMgJWEnIHwgZ3JlcCBzY2FuCitwcyAtcSAkUElEMSAt ZSAtTCAtbyAnJXAgJWMgJWEnIHwgZ3JlcCB0cmF2ZXJzZQorCisjIEFkZCBhcnRpZmFjdHMgdG8g dGhlIHNlYXJjaCBwYXRocyBhbmQgdGVzdCB3aGV0aGVyIGRlYnVnaW5mb2QgZmluZHMgdGhlbSB3 aGlsZSBhbHJlYWR5IHJ1bm5pbmcuCisjIEJ1aWxkIGFub3RoZXIsIG5vbi1zdHJpcHBlZCBiaW5h cnkKK2VjaG8gImludCBtYWluKCkgeyByZXR1cm4gMDsgfSIgPiAke1BXRH0vcHJvZzIuYwordGVt cGZpbGVzIHByb2cyLmMKK2djYyAtV2wsLS1idWlsZC1pZCAtZyAtbyBwcm9nMiAke1BXRH0vcHJv ZzIuYworI3Rlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9zcmMvc3RyaXAgLWcgLWYgcHJvZy5k ZWJ1ZyAke1BXRH0vcHJvZworQlVJTERJRDI9YGVudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCAk e2Fic19idWlsZGRpcn0vLi4vc3JjL3JlYWRlbGYgXAorICAgICAgICAgIC1hIHByb2cyIHwgZ3Jl cCAnQnVpbGQgSUQnIHwgY3V0IC1kICcgJyAtZiA3YAorbXYgcHJvZzIgRgorI212IHByb2cyLmRl YnVnIEYKK3RlbXBmaWxlcyBGL3Byb2cyIEYvcHJvZzIuZGVidWcKKwora2lsbCAtVVNSMSAkUElE MQorIyBOb3cgdGhlcmUgc2hvdWxkIGJlIDMgZmlsZXMgaW4gdGhlIGluZGV4Cit3YWl0X3JlYWR5 ICRQT1JUMSAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0idHJhdmVyc2UifScgMgord2FpdF9yZWFk eSAkUE9SVDEgJ3RocmVhZF93b3JrX3BlbmRpbmd7cm9sZT0ic2NhbiJ9JyAwCit3YWl0X3JlYWR5 ICRQT1JUMSAndGhyZWFkX2J1c3l7cm9sZT0ic2NhbiJ9JyAwCisKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor CisjIFRlc3Qgd2hldGhlciBkZWJ1Z2luZm9kLWZpbmQgaXMgYWJsZSB0byBmZXRjaCB0aG9zZSBm aWxlcy4KK3JtIC1yZiAkREVCVUdJTkZPRF9DQUNIRV9QQVRIICMgY2xlYW4gaXQgZnJvbSBwcmV2 aW91cyB0ZXN0cworZmlsZW5hbWU9YHRlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2lu Zm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESURgCitjbXAgJGZpbGVuYW1lIEYv cHJvZy5kZWJ1ZworaWYgWyAtdyAkZmlsZW5hbWUgXTsgdGhlbgorICAgIGVjaG8gImNhY2hlIGZp bGUgd3JpdGFibGUsIGJvbyIKKyAgICBlcnIKK2ZpCisKK2ZpbGVuYW1lPWB0ZXN0cnVuICR7YWJz X3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZXhlY3V0YWJsZSBGL3By b2dgCitjbXAgJGZpbGVuYW1lIEYvcHJvZworCisjIHJhdyBzb3VyY2UgZmlsZW5hbWUKK2ZpbGVu YW1lPWB0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZp bmQgc291cmNlICRCVUlMRElEICR7UFdEfS9mb29iYXIvLy8uLy4uL3Byb2cuY2AKK2NtcCAkZmls ZW5hbWUgICR7UFdEfS9wcm9nLmMKKworIyBhbmQgYWxzbyB0aGUgY2Fub25pY2FsaXplZCBvbmUK K2ZpbGVuYW1lPWB0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2lu Zm9kLWZpbmQgc291cmNlICRCVUlMRElEICR7UFdEfS9wcm9nLmNgCitjbXAgJGZpbGVuYW1lICAk e1BXRH0vcHJvZy5jCisKKyMgUmVydW4gc2FtZSB0ZXN0cyBmb3IgdGhlIHByb2cyIGJpbmFyeQor ZmlsZW5hbWU9YHRlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5m b2QtZmluZCAtdiBkZWJ1Z2luZm8gJEJVSUxESUQyIDI+dmxvZ2AKK2NtcCAkZmlsZW5hbWUgRi9w cm9nMgorZ3JlcCAtcSBQcm9ncmVzcyB2bG9nCitncmVwIC1xIERvd25sb2FkZWQuZnJvbSB2bG9n Cit0ZW1wZmlsZXMgdmxvZworZmlsZW5hbWU9YHRlc3RydW4gZW52IERFQlVHSU5GT0RfUFJPR1JF U1M9MSAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGV4ZWN1 dGFibGUgJEJVSUxESUQyIDI+dmxvZzJgCitjbXAgJGZpbGVuYW1lIEYvcHJvZzIKK2dyZXAgLXEg J0Rvd25sb2FkaW5nLipodHRwJyB2bG9nMgordGVtcGZpbGVzIHZsb2cyCitmaWxlbmFtZT1gdGVz dHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIHNvdXJj ZSAkQlVJTERJRDIgJHtQV0R9L3Byb2cyLmNgCitjbXAgJGZpbGVuYW1lICR7UFdEfS9wcm9nMi5j CisKKwora2lsbCAkUElEMQord2FpdCAkUElEMQorUElEMT0wCitleGl0IDAKZGlmZiAtLWdpdCBh L3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLWRsb3Blbi5zaCBiL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLWRs b3Blbi5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMC4uZTg3ZWI1ZTIKLS0t IC9kZXYvbnVsbAorKysgYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1kbG9wZW4uc2gKQEAgLTAsMCAr MSw4MSBAQAorIyEvdXNyL2Jpbi9lbnYgYmFzaAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAy MSBSZWQgSGF0LCBJbmMuCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGVsZnV0aWxzLgorIworIyBU aGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorIworIyBlbGZ1dGlscyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LgorCisuICRzcmNkaXIvdGVzdC1zdWJyLnNoICAjIGluY2x1ZGVzIHNldCAtZQorCisj IGZvciB0ZXN0IGNhc2UgZGVidWdnaW5nLCB1bmNvbW1lbnQ6CitzZXQgLXgKK3Vuc2V0IFZBTEdS SU5EX0NNRAorCitta2RpciBGCitnZXRfcG9ydHMKK2VudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0 aCBERUJVR0lORk9EX1VSTFM9ICR7YWJzX2J1aWxkZGlyfS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5m b2QgLUYgLVIgJFZFUkJPU0UgLXAgJFBPUlQxIFwKKyAgICAtdDAgLWcwIC12IEYgPiB2bG9nJFBP UlQxIDI+JjEgJgorUElEMT0kIQordGVtcGZpbGVzIHZsb2ckUE9SVDEKK2VycmZpbGVzIHZsb2ck UE9SVDEKKworIyBTZXJ2ZXIgbXVzdCBiZWNvbWUgcmVhZHkKK3dhaXRfcmVhZHkgJFBPUlQxICdy ZWFkeScgMQorZXhwb3J0IERFQlVHSU5GT0RfVVJMUz1odHRwOi8vMTI3LjAuMC4xOiRQT1JUMS8g ICAjIG9yIHdpdGhvdXQgdHJhaWxpbmcgLworCisjIEJlIHBhdGllbnQgd2hlbiBydW4gb24gYSBi dXN5IG1hY2hpbmUgdGhpbmdzIG1pZ2h0IHRha2UgYSBiaXQuCitleHBvcnQgREVCVUdJTkZPRF9U SU1FT1VUPTEwCisKKyMgQ2hlY2sgdGhyZWFkIGNvbW0gbmFtZXMKK3BzIC1xICRQSUQxIC1lIC1M IC1vICclcCAlYyAlYScgCitwcyAtcSAkUElEMSAtZSAtTCAtbyAnJXAgJWMgJWEnIHwgZ3JlcCBn cm9vbQorcHMgLXEgJFBJRDEgLWUgLUwgLW8gJyVwICVjICVhJyB8IGdyZXAgc2NhbgorcHMgLXEg JFBJRDEgLWUgLUwgLW8gJyVwICVjICVhJyB8IGdyZXAgdHJhdmVyc2UKKworIyBXZSB1c2UgLXQw IGFuZCAtZzAgaGVyZSB0byB0dXJuIG9mZiB0aW1lLWJhc2VkIHNjYW5uaW5nICYgZ3Jvb21pbmcu CisjIEZvciB0ZXN0aW5nIHB1cnBvc2VzLCB3ZSBqdXN0IHNpYyBTSUdVU1IxIC8gU0lHVVNSMiBh dCB0aGUgcHJvY2Vzcy4KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMgQ29tcGlsZSBhIHNpbXBsZSBw cm9ncmFtLCBzdHJpcCBpdHMgZGVidWdpbmZvIGFuZCBzYXZlIHRoZSBidWlsZC1pZC4KKyMgQWxz byBtb3ZlIHRoZSBkZWJ1Z2luZm8gaW50byBhbm90aGVyIGRpcmVjdG9yeSBzbyB0aGF0IGVsZnV0 aWxzCisjIGNhbm5vdCBmaW5kIGl0IHdpdGhvdXQgZGVidWdpbmZvZC4KK2VjaG8gImludCBtYWlu KCkgeyByZXR1cm4gMDsgfSIgPiAke1BXRH0vcCtyJW9cJGcuYwordGVtcGZpbGVzIHArciVvXCRn LmMKKyMgQ3JlYXRlIGEgc3ViZGlyZWN0b3J5IHRvIGNvbmZvdW5kIHNvdXJjZSBwYXRoIG5hbWVz Citta2RpciBmb29iYXIKK2djYyAtV2wsLS1idWlsZC1pZCAtZyAtbyBwK3Ilb1wkZyAke1BXRH0v Zm9vYmFyLy8vLi8uLi9wK3Ilb1wkZy5jCit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vc3Jj L3N0cmlwIC1nIC1mIHArciVvXCRnLmRlYnVnICR7UFdEfS9wK3Ilb1wkZworQlVJTERJRD1gZW52 IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoICR7YWJzX2J1aWxkZGlyfS8uLi9zcmMvcmVhZGVsZiBc CisgICAgICAgICAgLWEgcCtyJW9cXCRnIHwgZ3JlcCAnQnVpbGQgSUQnIHwgY3V0IC1kICcgJyAt ZiA3YAorCittdiBwK3Ilb1wkZyBGCittdiBwK3Ilb1wkZy5kZWJ1ZyBGCitraWxsIC1VU1IxICRQ SUQxCisjIFdhaXQgdGlsbCBib3RoIGZpbGVzIGFyZSBpbiB0aGUgaW5kZXguCit3YWl0X3JlYWR5 ICRQT1JUMSAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0idHJhdmVyc2UifScgMQord2FpdF9yZWFk eSAkUE9SVDEgJ3RocmVhZF93b3JrX3BlbmRpbmd7cm9sZT0ic2NhbiJ9JyAwCit3YWl0X3JlYWR5 ICRQT1JUMSAndGhyZWFkX2J1c3l7cm9sZT0ic2NhbiJ9JyAwCisKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor CisjIFRlc3Qgd2hldGhlciBlbGZ1dGlscywgdmlhIHRoZSBkZWJ1Z2luZm9kIGNsaWVudCBsaWJy YXJ5IGRsb3BlbiBob29rcywKKyMgaXMgYWJsZSB0byBmZXRjaCBkZWJ1Z2luZm8gZnJvbSB0aGUg bG9jYWwgZGVidWdpbmZvZC4KK3Rlc3RydW4gJHthYnNfYnVpbGRkaXJ9L2RlYnVnaW5mb2RfYnVp bGRfaWRfZmluZCAtZSBGL3ArciVvXCRnIDEKKwora2lsbCAkUElEMQord2FpdCAkUElEMQorUElE MT0wCisKK2V4aXQgMApkaWZmIC0tZ2l0IGEvdGVzdHMvcnVuLWRlYnVnaW5mb2QtZHVwbGljYXRl LXVybHMuc2ggYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1kdXBsaWNhdGUtdXJscy5zaApuZXcgZmls ZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMC4uNWVjYmIyMDYKLS0tIC9kZXYvbnVsbAorKysg Yi90ZXN0cy9ydW4tZGVidWdpbmZvZC1kdXBsaWNhdGUtdXJscy5zaApAQCAtMCwwICsxLDQ5IEBA CisjIS91c3IvYmluL2VudiBiYXNoCisjCisjIENvcHlyaWdodCAoQykgMjAxOS0yMDIxIFJlZCBI YXQsIEluYy4KKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgZWxmdXRpbHMuCisjCisjIFRoaXMgZmls ZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCisjCisjIGVsZnV0aWxzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u CisKKy4gJHNyY2Rpci90ZXN0LXN1YnIuc2ggICMgaW5jbHVkZXMgc2V0IC1lCisjIGZvciB0ZXN0 IGNhc2UgZGVidWdnaW5nLCB1bmNvbW1lbnQ6CitzZXQgLXgKK3Vuc2V0IFZBTEdSSU5EX0NNRAor CitnZXRfcG9ydHMKKworZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoICR7YWJzX2J1aWxkZGly fS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QgXAorICAgICRWRVJCT1NFIC1GIC1wICRQT1JUMSAt dDAgLWcwIC1kICR7REJ9IEYgPiB2bG9nJFBPUlQxIDI+JjEgJgorUElEMT0kIQordGVtcGZpbGVz IHZsb2ckUE9SVDEKK2VycmZpbGVzIHZsb2ckUE9SVDEKK3dhaXRfcmVhZHkgJFBPUlQxICdyZWFk eScgMQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjIFBSMjc5ODMgCisjIEVuc3VyZSBubyBkdXBsaWNh dGUgdXJscyBhcmUgdXNlZCBpbiB3aGVuIHF1ZXJ5aW5nIHNlcnZlcnMgZm9yIGZpbGVzCitybSAt cmYgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSCAjIGNsZWFuIGl0IGZyb20gcHJldmlvdXMgdGVzdHMK K2VudiBERUJVR0lORk9EX1VSTFM9Imh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxIGh0dHA6Ly8xMjcu MC4wLjE6JFBPUlQxIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxIGh0dHA6Ly8xMjcuMC4wLjE6Nzk5 OSIgXAorIExEX0xJQlJBUllfUEFUSD0kbGRwYXRoICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdp bmZvZC9kZWJ1Z2luZm9kLWZpbmQgLXZ2diBleGVjdXRhYmxlIDAgPiB2bG9nMSAyPiYxIHx8IHRy dWUKK3RlbXBmaWxlcyB2bG9nMQorY2F0IHZsb2cxCitpZiBbICQoIGdyZXAgLWMgJ2R1cGxpY2F0 ZSB1cmw6IGh0dHA6Ly8xMjcuMC4wLjE6JyRQT1JUMScuKicgdmxvZzEgKSAtbmUgMiBdOyB0aGVu CisgIGVjaG8gIkR1cGxpY2F0ZSBzZXJ2ZXJzIHJlbWFpbiI7CisgIGVycgorZmkKKwora2lsbCAk UElEMQord2FpdCAkUElEMQorUElEMT0wCitleGl0IDAKZGlmZiAtLWdpdCBhL3Rlc3RzL3J1bi1k ZWJ1Z2luZm9kLWV4dHJhY3Rpb24uc2ggYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1leHRyYWN0aW9u LnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwLi5jOWQzYjA1MwotLS0gL2Rl di9udWxsCisrKyBiL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLWV4dHJhY3Rpb24uc2gKQEAgLTAsMCAr MSw5OSBAQAorIyEvdXNyL2Jpbi9lbnYgYmFzaAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAy MSBSZWQgSGF0LCBJbmMuCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGVsZnV0aWxzLgorIworIyBU aGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorIworIyBlbGZ1dGlscyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LgorCisuICRzcmNkaXIvdGVzdC1zdWJyLnNoICAjIGluY2x1ZGVzIHNldCAtZQorCisj IGZvciB0ZXN0IGNhc2UgZGVidWdnaW5nLCB1bmNvbW1lbnQ6CitzZXQgLXgKK3Vuc2V0IFZBTEdS SU5EX0NNRAorCitta2RpciBSIFoKKworZ2V0X3BvcnRzCisKK2VudiBMRF9MSUJSQVJZX1BBVEg9 JGxkcGF0aCAke2Fic19idWlsZGRpcn0vLi4vZGVidWdpbmZvZC9kZWJ1Z2luZm9kICRWRVJCT1NF IC1GIC1SIC1aIC50YXIueHogLVogLnRhci5iejI9YnpjYXQgLXAgJFBPUlQxIC10MCAtZzAgLXYg UiBaID4gdmxvZyRQT1JUMSAyPiYxICYKK1BJRDE9JCEKK3RlbXBmaWxlcyB2bG9nJFBPUlQxCitl cnJmaWxlcyB2bG9nJFBPUlQxCisjIFNlcnZlciBtdXN0IGJlY29tZSByZWFkeQord2FpdF9yZWFk eSAkUE9SVDEgJ3JlYWR5JyAxCisKKyMgQmUgcGF0aWVudCB3aGVuIHJ1biBvbiBhIGJ1c3kgbWFj aGluZSB0aGluZ3MgbWlnaHQgdGFrZSBhIGJpdC4KK2V4cG9ydCBERUJVR0lORk9EX1RJTUVPVVQ9 MTAKKworIyBDaGVjayB0aHJlYWQgY29tbSBuYW1lcworcHMgLXEgJFBJRDEgLWUgLUwgLW8gJyVw ICVjICVhJyB8IGdyZXAgZ3Jvb20KK3BzIC1xICRQSUQxIC1lIC1MIC1vICclcCAlYyAlYScgfCBn cmVwIHNjYW4KK3BzIC1xICRQSUQxIC1lIC1MIC1vICclcCAlYyAlYScgfCBncmVwIHRyYXZlcnNl CisKK2NwIC1ydnAgJHthYnNfc3JjZGlyfS9kZWJ1Z2luZm9kLXJwbXMgUgoraWYgWyAiJHpzdGQi ID0gImZhbHNlIiBdOyB0aGVuICAjIG51a2UgdGhlIHpzdGQgZmVkb3JhIDMxIG9uZXMKKyAgICBy bSAtdnJmIFIvZGVidWdpbmZvZC1ycG1zL2ZlZG9yYTMxCitmaQorCitjcCAtcnZwICR7YWJzX3Ny Y2Rpcn0vZGVidWdpbmZvZC10YXJzIFoKKwora2lsbCAtVVNSMSAkUElEMQorIyBXYWl0IHRpbGwg Ym90aCBmaWxlcyBhcmUgaW4gdGhlIGluZGV4IGFuZCBzY2FuL2luZGV4IGZ1bGx5IGZpbmlzaGVk Cit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0idHJhdmVyc2UifScg MQord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3BlbmRpbmd7cm9sZT0ic2NhbiJ9JyAw Cit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX2J1c3l7cm9sZT0ic2NhbiJ9JyAwCisKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworIyBBbGwgcnBtcyBuZWVkIHRvIGJlIGluIHRoZSBpbmRleCwgZXhjZXB0IHRo ZSBkdW1teSBwZXJtaXNzaW9uLTAwMCBvbmUKK3JwbXM9JChmaW5kIFIgLW5hbWUgXCpycG0gfCBn cmVwIC12IG5vdGhpbmcgfCB3YyAtbCkKK3dhaXRfcmVhZHkgJFBPUlQxICdzY2FubmVkX2ZpbGVz X3RvdGFse3NvdXJjZT0iLnJwbSBhcmNoaXZlIn0nICRycG1zCit0eHo9JChmaW5kIFogLW5hbWUg XCp0YXIueHogfCB3YyAtbCkKK3dhaXRfcmVhZHkgJFBPUlQxICdzY2FubmVkX2ZpbGVzX3RvdGFs e3NvdXJjZT0iLnRhci54eiBhcmNoaXZlIn0nICR0eHoKK3RiMj0kKGZpbmQgWiAtbmFtZSBcKnRh ci5iejIgfCB3YyAtbCkKK3dhaXRfcmVhZHkgJFBPUlQxICdzY2FubmVkX2ZpbGVzX3RvdGFse3Nv dXJjZT0iLnRhci5iejIgYXJjaGl2ZSJ9JyAkdGIyCisKK2tpbGwgLVVTUjEgJFBJRDEgICMgdHdv IGhpdHMgb2YgU0lHVVNSMSBtYXkgYmUgbmVlZGVkIHRvIHJlc29sdmUgLmRlYnVnLT5kd3otPnNy ZWZzCisjIFdhaXQgdGlsbCBib3RoIGZpbGVzIGFyZSBpbiB0aGUgaW5kZXggYW5kIHNjYW4vaW5k ZXggZnVsbHkgZmluaXNoZWQKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya190b3RhbHty b2xlPSJ0cmF2ZXJzZSJ9JyAyCit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfcGVuZGlu Z3tyb2xlPSJzY2FuIn0nIDAKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xlPSJz Y2FuIn0nIDAKKworIyBFeHBlY3QgYWxsIHNvdXJjZSBmaWxlcyBmb3VuZCBpbiB0aGUgcnBtcyAo dGhleSBhcmUgYWxsIGNhbGxlZCBoZWxsby5jIDopCisjIFdlIHdpbGwgbmVlZCB0byBleHRyYWN0 IGFsbCBycG1zIChpbiB0aGVpciBvd24gZGlyZWN0b3J5KSBhbmQgY291bGQgYWxsCisjIHNvdXJj ZXMgcmVmZXJlbmNlZCBpbiB0aGUgLmRlYnVnIGZpbGVzLgorbWtkaXIgZXh0cmFjdGVkCitjZCBl eHRyYWN0ZWQKK3N1YmRpcj0wOworbmV3cnBtcz0kKGZpbmQgLi4vUiAtbmFtZSBcKlwucnBtIHwg Z3JlcCAtdiBub3RoaW5nKQorZm9yIGkgaW4gJG5ld3JwbXM7IGRvCisgICAgc3ViZGlyPSRbJHN1 YmRpcisxXTsKKyAgICBta2RpciAkc3ViZGlyOworICAgIGNkICRzdWJkaXI7CisgICAgbHMgLWxh aCAuLi8kaQorICAgIHJwbTJjcGlvIC4uLyRpIHwgY3BpbyAtaXZkOworICAgIGNkIC4uOworZG9u ZQorc291cmNlZmlsZXM9JChmaW5kIC1uYW1lIFwqXFwuZGVidWcgXAorICAgICAgICAgICAgICB8 IGVudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCB4YXJncyBcCisgICAgICAgICAgICAgICAgJHth YnNfdG9wX2J1aWxkZGlyfS9zcmMvcmVhZGVsZiAtLWRlYnVnLWR1bXA9ZGVjb2RlZGxpbmUgXAor ICAgICAgICAgICAgICB8IGdyZXAgbXRpbWU6IHwgd2MgLS1saW5lcykKK2NkIC4uCitybSAtcmYg ZXh0cmFjdGVkCisKK3dhaXRfcmVhZHkgJFBPUlQxICdmb3VuZF9zb3VyY2VyZWZzX3RvdGFse3Nv dXJjZT0iLnJwbSBhcmNoaXZlIn0nICRzb3VyY2VmaWxlcworCitraWxsICRQSUQxCit3YWl0ICRQ SUQxCitQSUQxPTAKK2V4aXQgMApkaWZmIC0tZ2l0IGEvdGVzdHMvcnVuLWRlYnVnaW5mb2QtZmQt cHJlZmV0Y2gtY2FjaGVzLnNoIGIvdGVzdHMvcnVuLWRlYnVnaW5mb2QtZmQtcHJlZmV0Y2gtY2Fj aGVzLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwLi45Nzg2NDNhMwotLS0g L2Rldi9udWxsCisrKyBiL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLWZkLXByZWZldGNoLWNhY2hlcy5z aApAQCAtMCwwICsxLDU0IEBACisjIS91c3IvYmluL2VudiBiYXNoCisjCisjIENvcHlyaWdodCAo QykgMjAxOS0yMDIxIFJlZCBIYXQsIEluYy4KKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgZWxmdXRp bHMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIGVsZnV0aWxzIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorIyBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCisKKy4gJHNyY2Rpci90ZXN0LXN1YnIuc2ggICMgaW5jbHVkZXMg c2V0IC1lCisjIGZvciB0ZXN0IGNhc2UgZGVidWdnaW5nLCB1bmNvbW1lbnQ6CitzZXQgLXgKK3Vu c2V0IFZBTEdSSU5EX0NNRAorCitGRENBQ0hFX0ZEUz0xMDAKK0ZEQ0FDSEVfTUJTPTEwMAorUFJF RkVUQ0hfRkRTPTEwMAorUFJFRkVUQ0hfTUJTPTEwMAorZ2V0X3BvcnRzCisKK2VjaG8gJFBPUlQx CitlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggREVCVUdJTkZPRF9VUkxTPSAke2Fic19idWls ZGRpcn0vLi4vZGVidWdpbmZvZC9kZWJ1Z2luZm9kICRWRVJCT1NFIC1wICRQT1JUMSBcCisgICAg LS1mZGNhY2hlLW1icz0kRkRDQUNIRV9NRFMgLS1mZGNhY2hlLWZkcz0kRkRDQUNIRV9GRFMgLS1m ZGNhY2hlLXByZWZldGNoLW1icz0kUFJFRkVUQ0hfTUJTIFwKKyAgICAtLWZkY2FjaGUtcHJlZmV0 Y2gtZmRzPSRQUkVGRVRDSF9GRFMgLS1mZGNhY2hlLW1pbnRtcCAwIC12IC1GIEYgPiB2bG9nJFBP UlQxIDI+JjEgJgorUElEMT0kIQordGVtcGZpbGVzIHZsb2ckUE9SVDEKK2VycmZpbGVzIHZsb2ck UE9SVDEKKyMgU2VydmVyIG11c3QgYmVjb21lIHJlYWR5Cit3YWl0X3JlYWR5ICRQT1JUMSAncmVh ZHknIDEKKworZ3JlcCAnZmRjYWNoZSBmZHMgJyB2bG9nJFBPUlQxICMkRkRDQUNIRV9GRFMKK2dy ZXAgJ2ZkY2FjaGUgbWJzICcgdmxvZyRQT1JUMSAjJEZEQ0FDSEVfTUJTCitncmVwICdwcmVmZXRj aCBmZHMgJyB2bG9nJFBPUlQxICMkUFJFRkVUQ0hfRkRTCitncmVwICdwcmVmZXRjaCBtYnMgJyB2 bG9nJFBPUlQxICMkUFJFRkVUQ0hfTUJTCisjIHNlYXJjaCB0aGUgdmxvZyB0byBmaW5kIHdoYXQg bWV0cmljIGNvdW50cyBzaG91bGQgYmUgYW5kIGNoZWNrIHRoZSBjb3JyZWN0IG1ldHJpY3MKKyMg d2VyZSBpbmNyaW1lbnRlZAord2FpdF9yZWFkeSAkUE9SVDEgJ2ZkY2FjaGVfb3BfY291bnR7b3A9 ImVucXVldWUifScgJCggZ3JlcCAtYyAnaW50ZXJuZWQuKmZyb250PTEnIHZsb2ckUE9SVDEgKQor d2FpdF9yZWFkeSAkUE9SVDEgJ2ZkY2FjaGVfb3BfY291bnR7b3A9ImV2aWN0In0nICQoIGdyZXAg LWMgJ2V2aWN0ZWQgYT0uKicgdmxvZyRQT1JUMSApCit3YWl0X3JlYWR5ICRQT1JUMSAnZmRjYWNo ZV9vcF9jb3VudHtvcD0icHJlZmV0Y2hfZW5xdWV1ZSJ9JyAkKCBncmVwIC1jICdpbnRlcm5lZC4q ZnJvbnQ9MCcgdmxvZyRQT1JUMSApCit3YWl0X3JlYWR5ICRQT1JUMSAnZmRjYWNoZV9vcF9jb3Vu dHtvcD0icHJlZmV0Y2hfZXZpY3QifScgJCggZ3JlcCAtYyAnZXZpY3RlZCBmcm9tIHByZWZldGNo IGE9Lipmcm9udD0wJyB2bG9nJFBPUlQxIHx8IHRydWUgKQorCitraWxsICRQSUQxCit3YWl0ICRQ SUQxCitQSUQxPTAKK2V4aXQgMApkaWZmIC0tZ2l0IGEvdGVzdHMvcnVuLWRlYnVnaW5mb2QtZmVk ZXJhdGlvbi1saW5rLnNoIGIvdGVzdHMvcnVuLWRlYnVnaW5mb2QtZmVkZXJhdGlvbi1saW5rLnNo Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwLi4yMDMxOTUxOQotLS0gL2Rldi9u dWxsCisrKyBiL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLWZlZGVyYXRpb24tbGluay5zaApAQCAtMCww ICsxLDE1OSBAQAorIyEvdXNyL2Jpbi9lbnYgYmFzaAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTkt MjAyMSBSZWQgSGF0LCBJbmMuCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGVsZnV0aWxzLgorIwor IyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBlbGZ1dGlscyBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorCisuICRzcmNkaXIvdGVzdC1zdWJyLnNoICAjIGluY2x1ZGVzIHNldCAtZQor CisjIGZvciB0ZXN0IGNhc2UgZGVidWdnaW5nLCB1bmNvbW1lbnQ6CitzZXQgLXgKK3Vuc2V0IFZB TEdSSU5EX0NNRAorCitEQj0ke1BXRH0vLmRlYnVnaW5mb2RfdG1wLnNxbGl0ZQorZXhwb3J0IERF QlVHSU5GT0RfQ0FDSEVfUEFUSD0ke1BXRH0vLmNsaWVudF9jYWNoZQorZXhwb3J0IERFQlVHSU5G T0RfVElNRU9VVD0xMAorZXhwb3J0IERFQlVHSU5GT0RfVVJMUz0naHR0cDovLzEyNy4wLjAuMTon JFBPUlQxCit0ZW1wZmlsZXMgJERCCisKKyMgQ2xlYW4gb2xkIGRpcmljdG9yaWVzCitta2RpciBE IEwgRgorbWtkaXIgLXAgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSAorIyBub3QgdGVtcGZpbGVzIEYg UiBMIEQgWiAtIHRoZXkgYXJlIGRpcmVjdG9yaWVzIHdoaWNoIHdlIGNsZWFuIHVwIG1hbnVhbGx5 CitsbiAtcyAke2Fic19idWlsZGRpcn0vZHdmbGxpbmVzIEwvZm9vICAgIyBhbnkgcHJvZ3JhbSBu b3QgdXNlZCBlbHNld2hlcmUgaW4gdGhpcyB0ZXN0CisKK2dldF9wb3J0cworIyBMYXVuY2ggc2Vy dmVyIHdoaWNoIHdpbGwgYmUgdW5hYmxlIHRvIGZvbGxvdyBzeW1saW5rcworZW52IExEX0xJQlJB UllfUEFUSD0kbGRwYXRoICR7YWJzX2J1aWxkZGlyfS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2Qg JFZFUkJPU0UgLWQgJHtEQn0gLUYgLVUgLXQwIC1nMCAtcCAkUE9SVDEgTCBEIEYgPiB2bG9nJFBP UlQxIDI+JjEgJgorUElEMT0kIQordGVtcGZpbGVzIHZsb2ckUE9SVDEKK2VycmZpbGVzIHZsb2ck UE9SVDEKKword2FpdF9yZWFkeSAkUE9SVDEgJ3JlYWR5JyAxCit3YWl0X3JlYWR5ICRQT1JUMSAn dGhyZWFkX3dvcmtfdG90YWx7cm9sZT0idHJhdmVyc2UifScgMQord2FpdF9yZWFkeSAkUE9SVDEg J3RocmVhZF93b3JrX3BlbmRpbmd7cm9sZT0ic2NhbiJ9JyAwCit3YWl0X3JlYWR5ICRQT1JUMSAn dGhyZWFkX2J1c3l7cm9sZT0ic2NhbiJ9JyAwCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb21waWxl IGEgc2ltcGxlIHByb2dyYW0sIHN0cmlwIGl0cyBkZWJ1Z2luZm8gYW5kIHNhdmUgdGhlIGJ1aWxk LWlkLgorIyBBbHNvIG1vdmUgdGhlIGRlYnVnaW5mbyBpbnRvIGFub3RoZXIgZGlyZWN0b3J5IHNv IHRoYXQgZWxmdXRpbHMKKyMgY2Fubm90IGZpbmQgaXQgd2l0aG91dCBkZWJ1Z2luZm9kLgorZWNo byAiaW50IG1haW4oKSB7IHJldHVybiAwOyB9IiA+ICR7UFdEfS9wcm9nLmMKK3RlbXBmaWxlcyBw cm9nLmMKKyMgQ3JlYXRlIGEgc3ViZGlyZWN0b3J5IHRvIGNvbmZvdW5kIHNvdXJjZSBwYXRoIG5h bWVzCitta2RpciBmb29iYXIKK2djYyAtV2wsLS1idWlsZC1pZCAtZyAtbyBwcm9nICR7UFdEfS9m b29iYXIvLy8uLy4uL3Byb2cuYwordGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L3NyYy9zdHJp cCAtZyAtZiBwcm9nLmRlYnVnICR7UFdEfS9wcm9nCitCVUlMRElEPWBlbnYgTERfTElCUkFSWV9Q QVRIPSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9Ly4uL3NyYy9yZWFkZWxmIFwKKyAgICAgICAgICAt YSBwcm9nIHwgZ3JlcCAnQnVpbGQgSUQnIHwgY3V0IC1kICcgJyAtZiA3YAorCittdiBwcm9nIEYK K212IHByb2cuZGVidWcgRgora2lsbCAtVVNSMSAkUElEMQorIyBXYWl0IHRpbGwgYm90aCBmaWxl cyBhcmUgaW4gdGhlIGluZGV4Lgord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3RvdGFs e3JvbGU9InRyYXZlcnNlIn0nIDIKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya19wZW5k aW5ne3JvbGU9InNjYW4ifScgMAord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF9idXN5e3JvbGU9 InNjYW4ifScgMAorCit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX2J1c3l7cm9sZT0iaHR0cC1i dWlsZGlkIn0nIDAKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xlPSJodHRwLW1l dHJpY3MifScgMQorCitleHBvcnQgREVCVUdJTkZPRF9DQUNIRV9QQVRIPSR7UFdEfS8uY2xpZW50 X2NhY2hlMgorbWtkaXIgLXAgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSAorCisjIE5COiBydW4gaW4g LUwgc3ltbGluay1mb2xsb3dpbmcgbW9kZSBmb3IgdGhlIEwgc3ViZGlyCitlbnYgTERfTElCUkFS WV9QQVRIPSRsZHBhdGggREVCVUdJTkZPRF9VUkxTPWh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxICR7 YWJzX2J1aWxkZGlyfS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QgJFZFUkJPU0UgLWQgJHtEQn1f MiAtRiAtVSAtcCAkUE9SVDIgLUwgTCBEID4gdmxvZyRQT1JUMiAyPiYxICYKK1BJRDI9JCEKK3Rl bXBmaWxlcyB2bG9nJFBPUlQyCitlcnJmaWxlcyB2bG9nJFBPUlQyCit0ZW1wZmlsZXMgJHtEQn1f MgorCit3YWl0X3JlYWR5ICRQT1JUMiAncmVhZHknIDEKKwora2lsbCAtVVNSMSAkUElEMgorIyBX YWl0IHRpbGwgYm90aCBmaWxlcyBhcmUgaW4gdGhlIGluZGV4Lgord2FpdF9yZWFkeSAkUE9SVDIg J3RocmVhZF93b3JrX3RvdGFse3JvbGU9InRyYXZlcnNlIn0nIDEKK3dhaXRfcmVhZHkgJFBPUlQy ICd0aHJlYWRfd29ya19wZW5kaW5ne3JvbGU9InNjYW4ifScgMAord2FpdF9yZWFkeSAkUE9SVDIg J3RocmVhZF9idXN5e3JvbGU9InNjYW4ifScgMAorCit3YWl0X3JlYWR5ICRQT1JUMiAndGhyZWFk X2J1c3l7cm9sZT0iaHR0cC1idWlsZGlkIn0nIDAKK3dhaXRfcmVhZHkgJFBPUlQyICd0aHJlYWRf YnVzeXtyb2xlPSJodHRwLW1ldHJpY3MifScgMQorCisjIGhhdmUgY2xpZW50cyBjb250YWN0IHRo ZSBuZXcgc2VydmVyCitleHBvcnQgREVCVUdJTkZPRF9VUkxTPWh0dHA6Ly8xMjcuMC4wLjE6JFBP UlQyCisKK2lmIHR5cGUgYnNkdGFyIDI+L2Rldi9udWxsOyB0aGVuCisgICAgIyBjb3B5IGluIHRo ZSBkZWIgZmlsZXMKKyAgICBjcCAtcnZwICR7YWJzX3NyY2Rpcn0vZGVidWdpbmZvZC1kZWJzLypk ZWIgRAorICAgIGtpbGwgLVVTUjEgJFBJRDIKKyAgICB3YWl0X3JlYWR5ICRQT1JUMiAndGhyZWFk X3dvcmtfdG90YWx7cm9sZT0idHJhdmVyc2UifScgMgorICAgIHdhaXRfcmVhZHkgJFBPUlQyICd0 aHJlYWRfd29ya19wZW5kaW5ne3JvbGU9InNjYW4ifScgMAorICAgIHdhaXRfcmVhZHkgJFBPUlQy ICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKKworICAgICMgQWxsIGRlYnMgbmVlZCB0byBi ZSBpbiB0aGUgaW5kZXgKKyAgICBkZWJzPSQoZmluZCBEIC1uYW1lIFwqLmRlYiB8IHdjIC1sKQor ICAgIHdhaXRfcmVhZHkgJFBPUlQyICdzY2FubmVkX2ZpbGVzX3RvdGFse3NvdXJjZT0iLmRlYiBh cmNoaXZlIn0nIGBleHByICRkZWJzYAorICAgIGRkZWJzPSQoZmluZCBEIC1uYW1lIFwqLmRkZWIg fCB3YyAtbCkKKyAgICB3YWl0X3JlYWR5ICRQT1JUMiAnc2Nhbm5lZF9maWxlc190b3RhbHtzb3Vy Y2U9Ii5kZGViIGFyY2hpdmUifScgYGV4cHIgJGRkZWJzYAorCisgICAgIyB1YnVudHUKKyAgICBh cmNoaXZlX3Rlc3QgZjE3YTI5YjVhMjViZDQ5NjA1MzFkODJhYTZiMDdjOGFiZTg0ZmE2NiAiIiAi IgorZmkKKworcm0gLXJmICRERUJVR0lORk9EX0NBQ0hFX1BBVEgKK3Rlc3RydW4gJHthYnNfdG9w X2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESUQK KworIyBzZW5kIGEgcmVxdWVzdCB0byBzdHJlc3MgWEZGIGFuZCBVc2VyLUFnZW50IGZlZGVyYXRp b24gcmVsYXk7CisjIHdlJ2xsIGdyZXAgZm9yIHRoZSB0d28gcGF0dGVybnMgaW4gdmxvZyRQT1JU MQorY3VybCAtcyAtSCAnVXNlci1BZ2VudDogVEVTVENVUkwnIC1IICdYLUZvcndhcmRlZC1Gb3I6 IFRFU1RYRkYnICRERUJVR0lORk9EX1VSTFMvYnVpbGRpZC9kZWFkZGVhZGJlZWYwMDAwMDAwMC9k ZWJ1Z2luZm8gLW8gL2Rldi9udWxsIHx8IHRydWUKKworZ3JlcCBVQTpURVNUQ1VSTCB2bG9nJFBP UlQxCitncmVwIFhGRjpURVNUWEZGIHZsb2ckUE9SVDEKKworIyBjb25maXJtIHRoYXQgZmlyc3Qg c2VydmVyIGNhbid0IHJlc29sdmUgc3ltbGlua2VkIGluZm8gaW4gTC8gYnV0IHNlY29uZCBjYW4K K0JVSUxESUQ9YGVudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCAke2Fic19idWlsZGRpcn0vLi4v c3JjL3JlYWRlbGYgXAorICAgICAgICAgLWEgTC9mb28gfCBncmVwICdCdWlsZCBJRCcgfCBjdXQg LWQgJyAnIC1mIDdgCitmaWxlIEwvZm9vCitmaWxlIC1MIEwvZm9vCitleHBvcnQgREVCVUdJTkZP RF9VUkxTPWh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxCitybSAtcmYgJERFQlVHSU5GT0RfQ0FDSEVf UEFUSAordGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1m aW5kIGRlYnVnaW5mbyAkQlVJTERJRCAmJiBmYWxzZSB8fCB0cnVlCitybSAtZiAkREVCVUdJTkZP RF9DQUNIRV9QQVRILyRCVUlMRElEL2RlYnVnaW5mbyAjIGRyb3AgMDAwLXBlcm0gbmVnYXRpdmUt aGl0IGZpbGUKK2V4cG9ydCBERUJVR0lORk9EX1VSTFM9aHR0cDovLzEyNy4wLjAuMTokUE9SVDIK K3Rlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBk ZWJ1Z2luZm8gJEJVSUxESUQKKworIyB0ZXN0IGFnYWluIHdpdGggc2NoZW1lIGZyZWUgdXJsCitl eHBvcnQgREVCVUdJTkZPRF9VUkxTPTEyNy4wLjAuMTokUE9SVDEKK3JtIC1yZiAkREVCVUdJTkZP RF9DQUNIRV9QQVRICit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1 Z2luZm9kLWZpbmQgZGVidWdpbmZvICRCVUlMRElEICYmIGZhbHNlIHx8IHRydWUKK3JtIC1mICRE RUJVR0lORk9EX0NBQ0hFX1BBVEgvJEJVSUxESUQvZGVidWdpbmZvICMgZHJvcCAwMDAtcGVybSBu ZWdhdGl2ZS1oaXQgZmlsZQorZXhwb3J0IERFQlVHSU5GT0RfVVJMUz0xMjcuMC4wLjE6JFBPUlQy Cit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQg ZGVidWdpbmZvICRCVUlMRElECisKKyMgdGVzdCBwYXJhbGxlbCBxdWVyaWVzIGluIGNsaWVudAor ZXhwb3J0IERFQlVHSU5GT0RfQ0FDSEVfUEFUSD0ke1BXRH0vLmNsaWVudF9jYWNoZTMKK21rZGly IC1wICRERUJVR0lORk9EX0NBQ0hFX1BBVEgKK2V4cG9ydCBERUJVR0lORk9EX1VSTFM9IkJBRCBo dHRwOi8vMTI3LjAuMC4xOiRQT1JUMSAxMjcuMC4wLjE6JFBPUlQxIGh0dHA6Ly8xMjcuMC4wLjE6 JFBPUlQyIERORSIKKwordGVzdHJ1biAke2Fic19idWlsZGRpcn0vZGVidWdpbmZvZF9idWlsZF9p ZF9maW5kIC1lIEYvcHJvZyAxCisKK2tpbGwgJFBJRDEKK2tpbGwgJFBJRDIKK3dhaXQgJFBJRDEK K3dhaXQgJFBJRDIKK1BJRDE9MAorUElEMj0wCisKK2V4aXQgMApkaWZmIC0tZ2l0IGEvdGVzdHMv cnVuLWRlYnVnaW5mb2QtZmVkZXJhdGlvbi1tZXRyaWNzLnNoIGIvdGVzdHMvcnVuLWRlYnVnaW5m b2QtZmVkZXJhdGlvbi1tZXRyaWNzLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAw MDAwLi5kZWZhYThjYwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLWZl ZGVyYXRpb24tbWV0cmljcy5zaApAQCAtMCwwICsxLDIxMSBAQAorIyEvdXNyL2Jpbi9lbnYgYmFz aAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBSZWQgSGF0LCBJbmMuCisjIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIGVsZnV0aWxzLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNl bnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBlbGZ1 dGlscyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBi dXQKKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisuICRzcmNkaXIvdGVzdC1z dWJyLnNoICAjIGluY2x1ZGVzIHNldCAtZQorCisjIGZvciB0ZXN0IGNhc2UgZGVidWdnaW5nLCB1 bmNvbW1lbnQ6CitzZXQgLXgKK3Vuc2V0IFZBTEdSSU5EX0NNRAorCitEQj0ke1BXRH0vLmRlYnVn aW5mb2RfdG1wLnNxbGl0ZQorZXhwb3J0IERFQlVHSU5GT0RfQ0FDSEVfUEFUSD0ke1BXRH0vLmNs aWVudF9jYWNoZQorZXhwb3J0IERFQlVHSU5GT0RfVElNRU9VVD0xMAorZXhwb3J0IERFQlVHSU5G T0RfVVJMUz0naHR0cDovLzEyNy4wLjAuMTowJyAjIE5vdGUgaW52YWxpZAordGVtcGZpbGVzICRE QgorIyBDbGVhbiBvbGQgZGlyaWN0b3JpZXMKK21rZGlyIEQgTCBGCisKKyMgbm90IHRlbXBmaWxl cyBGIFIgTCBEIFogLSB0aGV5IGFyZSBkaXJlY3RvcmllcyB3aGljaCB3ZSBjbGVhbiB1cCBtYW51 YWxseQorbG4gLXMgJHthYnNfYnVpbGRkaXJ9L2R3ZmxsaW5lcyBML2ZvbyAgICMgYW55IHByb2dy YW0gbm90IHVzZWQgZWxzZXdoZXJlIGluIHRoaXMgdGVzdAorCitnZXRfcG9ydHMKKworIyBMYXVu Y2ggc2VydmVyIHdoaWNoIHdpbGwgYmUgdW5hYmxlIHRvIGZvbGxvdyBzeW1saW5rcworZW52IExE X0xJQlJBUllfUEFUSD0kbGRwYXRoICR7YWJzX2J1aWxkZGlyfS8uLi9kZWJ1Z2luZm9kL2RlYnVn aW5mb2QgJFZFUkJPU0UgLWQgJHtEQn0gLUYgLVUgLXQwIC1nMCAtcCAkUE9SVDEgTCBEIEYgPiB2 bG9nJFBPUlQxIDI+JjEgJgorUElEMT0kIQordGVtcGZpbGVzIHZsb2ckUE9SVDEKK2VycmZpbGVz IHZsb2ckUE9SVDEKKword2FpdF9yZWFkeSAkUE9SVDEgJ3JlYWR5JyAxCisKK2tpbGwgLVVTUjEg JFBJRDEKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJz ZSJ9JyAxCit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2Fu In0nIDAKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIyBDb21waWxlIGEgc2ltcGxlIHByb2dyYW0sIHN0cmlwIGl0cyBkZWJ1 Z2luZm8gYW5kIHNhdmUgdGhlIGJ1aWxkLWlkLgorIyBBbHNvIG1vdmUgdGhlIGRlYnVnaW5mbyBp bnRvIGFub3RoZXIgZGlyZWN0b3J5IHNvIHRoYXQgZWxmdXRpbHMKKyMgY2Fubm90IGZpbmQgaXQg d2l0aG91dCBkZWJ1Z2luZm9kLgorZWNobyAiaW50IG1haW4oKSB7IHJldHVybiAwOyB9IiA+ICR7 UFdEfS9wcm9nLmMKK3RlbXBmaWxlcyBwcm9nLmMKKyMgQ3JlYXRlIGEgc3ViZGlyZWN0b3J5IHRv IGNvbmZvdW5kIHNvdXJjZSBwYXRoIG5hbWVzCitta2RpciBmb29iYXIKK2djYyAtV2wsLS1idWls ZC1pZCAtZyAtbyBwcm9nICR7UFdEfS9mb29iYXIvLy8uLy4uL3Byb2cuYwordGVzdHJ1biAke2Fi c190b3BfYnVpbGRkaXJ9L3NyYy9zdHJpcCAtZyAtZiBwcm9nLmRlYnVnICR7UFdEfS9wcm9nCitC VUlMRElEPWBlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9Ly4uL3Ny Yy9yZWFkZWxmIFwKKyAgICAgICAgICAtYSBwcm9nIHwgZ3JlcCAnQnVpbGQgSUQnIHwgY3V0IC1k ICcgJyAtZiA3YAorCittdiBwcm9nIEYKK212IHByb2cuZGVidWcgRgora2lsbCAtVVNSMSAkUElE MQorIyBXYWl0IHRpbGwgYm90aCBmaWxlcyBhcmUgaW4gdGhlIGluZGV4Lgord2FpdF9yZWFkeSAk UE9SVDEgJ3RocmVhZF93b3JrX3RvdGFse3JvbGU9InRyYXZlcnNlIn0nIDIKK3dhaXRfcmVhZHkg JFBPUlQxICd0aHJlYWRfd29ya19wZW5kaW5ne3JvbGU9InNjYW4ifScgMAord2FpdF9yZWFkeSAk UE9SVDEgJ3RocmVhZF9idXN5e3JvbGU9InNjYW4ifScgMAorCit3YWl0X3JlYWR5ICRQT1JUMSAn dGhyZWFkX2J1c3l7cm9sZT0iaHR0cC1idWlsZGlkIn0nIDAKK3dhaXRfcmVhZHkgJFBPUlQxICd0 aHJlYWRfYnVzeXtyb2xlPSJodHRwLW1ldHJpY3MifScgMQorCitleHBvcnQgREVCVUdJTkZPRF9D QUNIRV9QQVRIPSR7UFdEfS8uY2xpZW50X2NhY2hlMgorbWtkaXIgLXAgJERFQlVHSU5GT0RfQ0FD SEVfUEFUSAorIyBOQjogcnVuIGluIC1MIHN5bWxpbmstZm9sbG93aW5nIG1vZGUgZm9yIHRoZSBM IHN1YmRpcgorZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoIERFQlVHSU5GT0RfVVJMUz1odHRw Oi8vMTI3LjAuMC4xOiRQT1JUMSAke2Fic19idWlsZGRpcn0vLi4vZGVidWdpbmZvZC9kZWJ1Z2lu Zm9kICRWRVJCT1NFIC1kICR7REJ9XzIgLUYgLVUgLXAgJFBPUlQyIC1MIEwgRCA+IHZsb2ckUE9S VDIgMj4mMSAmCitQSUQyPSQhCit0ZW1wZmlsZXMgdmxvZyRQT1JUMgorZXJyZmlsZXMgdmxvZyRQ T1JUMgordGVtcGZpbGVzICR7REJ9XzIKKword2FpdF9yZWFkeSAkUE9SVDIgJ3JlYWR5JyAxCit3 YWl0X3JlYWR5ICRQT1JUMiAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0idHJhdmVyc2UifScgMQor d2FpdF9yZWFkeSAkUE9SVDIgJ3RocmVhZF93b3JrX3BlbmRpbmd7cm9sZT0ic2NhbiJ9JyAwCit3 YWl0X3JlYWR5ICRQT1JUMiAndGhyZWFkX2J1c3l7cm9sZT0ic2NhbiJ9JyAwCisKK3dhaXRfcmVh ZHkgJFBPUlQyICd0aHJlYWRfYnVzeXtyb2xlPSJodHRwLWJ1aWxkaWQifScgMAord2FpdF9yZWFk eSAkUE9SVDIgJ3RocmVhZF9idXN5e3JvbGU9Imh0dHAtbWV0cmljcyJ9JyAxCisKKyMgaGF2ZSBj bGllbnRzIGNvbnRhY3QgdGhlIG5ldyBzZXJ2ZXIKK2V4cG9ydCBERUJVR0lORk9EX1VSTFM9aHR0 cDovLzEyNy4wLjAuMTokUE9SVDIKK2lmIHR5cGUgYnNkdGFyIDI+L2Rldi9udWxsOyB0aGVuCisg ICAgIyBjb3B5IGluIHRoZSBkZWIgZmlsZXMKKyAgICBjcCAtcnZwICR7YWJzX3NyY2Rpcn0vZGVi dWdpbmZvZC1kZWJzLypkZWIgRAorICAgIGtpbGwgLVVTUjEgJFBJRDIKKyAgICB3YWl0X3JlYWR5 ICRQT1JUMiAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0idHJhdmVyc2UifScgMgorICAgIHdhaXRf cmVhZHkgJFBPUlQyICd0aHJlYWRfd29ya19wZW5kaW5ne3JvbGU9InNjYW4ifScgMAorICAgIHdh aXRfcmVhZHkgJFBPUlQyICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKKworICAgICMgQWxs IGRlYnMgbmVlZCB0byBiZSBpbiB0aGUgaW5kZXgKKyAgICBkZWJzPSQoZmluZCBEIC1uYW1lIFwq LmRlYiB8IHdjIC1sKQorICAgIHdhaXRfcmVhZHkgJFBPUlQyICdzY2FubmVkX2ZpbGVzX3RvdGFs e3NvdXJjZT0iLmRlYiBhcmNoaXZlIn0nIGBleHByICRkZWJzYAorICAgIGRkZWJzPSQoZmluZCBE IC1uYW1lIFwqLmRkZWIgfCB3YyAtbCkKKyAgICB3YWl0X3JlYWR5ICRQT1JUMiAnc2Nhbm5lZF9m aWxlc190b3RhbHtzb3VyY2U9Ii5kZGViIGFyY2hpdmUifScgYGV4cHIgJGRkZWJzYAorCisgICAg IyB1YnVudHUKKyAgICBhcmNoaXZlX3Rlc3QgZjE3YTI5YjVhMjViZDQ5NjA1MzFkODJhYTZiMDdj OGFiZTg0ZmE2NiAiIiAiIgorZmkKKworcm0gLXJmICRERUJVR0lORk9EX0NBQ0hFX1BBVEgKK3Rl c3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1 Z2luZm8gJEJVSUxESUQKKworIyBzZW5kIGEgcmVxdWVzdCB0byBzdHJlc3MgWEZGIGFuZCBVc2Vy LUFnZW50IGZlZGVyYXRpb24gcmVsYXk7CisjIHdlJ2xsIGdyZXAgZm9yIHRoZSB0d28gcGF0dGVy bnMgaW4gdmxvZyRQT1JUMQorY3VybCAtcyAtSCAnVXNlci1BZ2VudDogVEVTVENVUkwnIC1IICdY LUZvcndhcmRlZC1Gb3I6IFRFU1RYRkYnICRERUJVR0lORk9EX1VSTFMvYnVpbGRpZC9kZWFkZGVh ZGJlZWYwMDAwMDAwMC9kZWJ1Z2luZm8gLW8gL2Rldi9udWxsIHx8IHRydWUKKworZ3JlcCBVQTpU RVNUQ1VSTCB2bG9nJFBPUlQxCitncmVwIFhGRjpURVNUWEZGIHZsb2ckUE9SVDEKKworIyBjb25m aXJtIHRoYXQgZmlyc3Qgc2VydmVyIGNhbid0IHJlc29sdmUgc3ltbGlua2VkIGluZm8gaW4gTC8g YnV0IHNlY29uZCBjYW4KK0JVSUxESUQ9YGVudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCAke2Fi c19idWlsZGRpcn0vLi4vc3JjL3JlYWRlbGYgXAorICAgICAgICAgLWEgTC9mb28gfCBncmVwICdC dWlsZCBJRCcgfCBjdXQgLWQgJyAnIC1mIDdgCitmaWxlIEwvZm9vCitmaWxlIC1MIEwvZm9vCitl eHBvcnQgREVCVUdJTkZPRF9VUkxTPWh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxCitybSAtcmYgJERF QlVHSU5GT0RfQ0FDSEVfUEFUSAordGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5m b2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAkQlVJTERJRCAmJiBmYWxzZSB8fCB0cnVlCity bSAtZiAkREVCVUdJTkZPRF9DQUNIRV9QQVRILyRCVUlMRElEL2RlYnVnaW5mbyAjIGRyb3AgMDAw LXBlcm0gbmVnYXRpdmUtaGl0IGZpbGUKK2V4cG9ydCBERUJVR0lORk9EX1VSTFM9aHR0cDovLzEy Ny4wLjAuMTokUE9SVDIKK3Rlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2Rl YnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESUQKKworIyB0ZXN0IGFnYWluIHdpdGggc2No ZW1lIGZyZWUgdXJsCitleHBvcnQgREVCVUdJTkZPRF9VUkxTPTEyNy4wLjAuMTokUE9SVDEKK3Jt IC1yZiAkREVCVUdJTkZPRF9DQUNIRV9QQVRICit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0v ZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdpbmZvICRCVUlMRElEICYmIGZhbHNlIHx8 IHRydWUKK3JtIC1mICRERUJVR0lORk9EX0NBQ0hFX1BBVEgvJEJVSUxESUQvZGVidWdpbmZvICMg ZHJvcCAwMDAtcGVybSBuZWdhdGl2ZS1oaXQgZmlsZQorZXhwb3J0IERFQlVHSU5GT0RfVVJMUz0x MjcuMC4wLjE6JFBPUlQyCit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9k ZWJ1Z2luZm9kLWZpbmQgZGVidWdpbmZvICRCVUlMRElECisjIHRlc3QgcGFyYWxsZWwgcXVlcmll cyBpbiBjbGllbnQKK2V4cG9ydCBERUJVR0lORk9EX0NBQ0hFX1BBVEg9JHtQV0R9Ly5jbGllbnRf Y2FjaGUzCitta2RpciAtcCAkREVCVUdJTkZPRF9DQUNIRV9QQVRICitleHBvcnQgREVCVUdJTkZP RF9VUkxTPSJCQUQgaHR0cDovLzEyNy4wLjAuMTokUE9SVDEgMTI3LjAuMC4xOiRQT1JUMSBodHRw Oi8vMTI3LjAuMC4xOiRQT1JUMiBETkUiCisKK3Rlc3RydW4gJHthYnNfYnVpbGRkaXJ9L2RlYnVn aW5mb2RfYnVpbGRfaWRfZmluZCAtZSBGL3Byb2cgMQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgRmV0 Y2ggc29tZSBtZXRyaWNzCitjdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL2JhZGFwaQor Y3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMS9tZXRyaWNzCitjdXJsIC1zIGh0dHA6Ly8x MjcuMC4wLjE6JFBPUlQyL21ldHJpY3MKK2N1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDEv bWV0cmljcyB8IGdyZXAgLXEgJ2h0dHBfcmVzcG9uc2VzX3RvdGFsLipyZXN1bHQuKmVycm9yJwor Y3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMi9tZXRyaWNzIHwgZ3JlcCAtcSAnaHR0cF9y ZXNwb25zZXNfdG90YWwuKnJlc3VsdC4qdXBzdHJlYW0nCitjdXJsIC1zIGh0dHA6Ly8xMjcuMC4w LjE6JFBPUlQxL21ldHJpY3MgfCBncmVwICdodHRwX3Jlc3BvbnNlc19kdXJhdGlvbl9taWxsaXNl Y29uZHNfY291bnQnCitjdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL21ldHJpY3MgfCBn cmVwICdodHRwX3Jlc3BvbnNlc19kdXJhdGlvbl9taWxsaXNlY29uZHNfc3VtJworY3VybCAtcyBo dHRwOi8vMTI3LjAuMC4xOiRQT1JUMS9tZXRyaWNzIHwgZ3JlcCAnaHR0cF9yZXNwb25zZXNfdHJh bnNmZXJfYnl0ZXNfY291bnQnCitjdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL21ldHJp Y3MgfCBncmVwICdodHRwX3Jlc3BvbnNlc190cmFuc2Zlcl9ieXRlc19zdW0nCitjdXJsIC1zIGh0 dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL21ldHJpY3MgfCBncmVwICdmZGNhY2hlXycKK2N1cmwgLXMg aHR0cDovLzEyNy4wLjAuMTokUE9SVDEvbWV0cmljcyB8IGdyZXAgJ2Vycm9yX2NvdW50JworY3Vy bCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMS9tZXRyaWNzIHwgZ3JlcCAndHJhdmVyc2VkX3Rv dGFsJworY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMS9tZXRyaWNzIHwgZ3JlcCAnc2Nh bm5lZF9ieXRlc190b3RhbCcKKworIyBBbmQgZ2VuZXJhdGUgYSBmZXcgZXJyb3JzIGludG8gdGhl IHNlY29uZCBkZWJ1Z2luZm9kJ3MgbG9ncywgZm9yIGFuYWx5c2lzIGp1c3QgYmVsb3cKK2N1cmwg LXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDIvYmFkYXBpID4gL2Rldi9udWxsIHx8IHRydWUKK2N1 cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDIvYnVpbGRpZC9kZWFkYmVlZi9kZWJ1Z2luZm8g PiAvZGV2L251bGwgfHwgdHJ1ZQorIyBOQjogdGhpcyBlcnJvciBpcyB1c2VkIHRvIHNlZWQgdGhl IDQwNCBmYWlsdXJlIGZvciB0aGUgc3Vydml2ZS00MDQgdGVzdHMKKworIyBDb25maXJtIGJhZCBh cnRpZmFjdCB0eXBlcyBhcmUgcmVqZWN0ZWQgd2l0aG91dCBsZWF2aW5nIHRyYWNlCitjdXJsIC1z IGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQyL2J1aWxkaWQvZGVhZGJlZWYvYmFkdHlwZSA+IC9kZXYv bnVsbCB8fCB0cnVlCisoY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMi9tZXRyaWNzIHwg Z3JlcCAnYmFkdHlwZScpICYmIGZhbHNlCisKKyMgRElTQUJMRSBWQUxHUklORCBjaGVja2luZyBi ZWNhdXNlIHZhbGdyaW5kIG1pZ2h0IHVzZSBkZWJ1Z2luZm9kIGNsaWVudAorIyByZXF1ZXN0cyBp dHNlbGYsIGNhdXNpbmcgY29uZnVzaW9uIGFib3V0IHdobyBwdXQgd2hhdCBpbiB0aGUgY2FjaGUu CisjIEl0IHN0YXlzIGRpc2FibGVkIHRpbGwgdGhlIGVuZCBvZiB0aGlzIHRlc3QuCit1bnNldCBW QUxHUklORF9DTUQKKworIyBDb25maXJtIHRoYXQgcmV1c2VkIGN1cmwgY29ubmVjdGlvbnMgc3Vy dml2ZSA0MDQgZXJyb3JzLgorIyBUaGUgcm0ncyBmb3JjZSBhbiB1bmNhY2hlZCBmZXRjaAorcm0g LWYgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSC8kQlVJTERJRC9kZWJ1Z2luZm8gLmNsaWVudF9jYWNo ZSovJEJVSUxESUQvZGVidWdpbmZvCit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdp bmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdpbmZvICRCVUlMRElECitybSAtZiAkREVCVUdJTkZP RF9DQUNIRV9QQVRILyRCVUlMRElEL2RlYnVnaW5mbyAuY2xpZW50X2NhY2hlKi8kQlVJTERJRC9k ZWJ1Z2luZm8KK3Rlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5m b2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESUQKK3Rlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9k ZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESUQKK3Rlc3RydW4gJHth YnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJV SUxESUQKK3JtIC1mICRERUJVR0lORk9EX0NBQ0hFX1BBVEgvJEJVSUxESUQvZGVidWdpbmZvIC5j bGllbnRfY2FjaGUqLyRCVUlMRElEL2RlYnVnaW5mbwordGVzdHJ1biAke2Fic190b3BfYnVpbGRk aXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAkQlVJTERJRAorCisjIENv bmZpcm0gdGhhdCBzb21lIGRlYnVnaW5mb2QgY2xpZW50IHBvb2xzIGFyZSBiZWluZyB1c2VkCitj dXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQyL21ldHJpY3MgfCBncmVwICdkY19wb29sX29w LipyZXVzZScKKworIyBUcmlnZ2VyIGEgZmxvb2Qgb2YgcmVxdWVzdHMgYWdhaW5zdCB0aGUgc2Ft ZSBhcmNoaXZlIGNvbnRlbnQgZmlsZS4KKyMgVXNlIGEgZmlsZSB0aGF0IGhhc24ndCBiZWVuIHBy ZXZpb3VzbHkgZXh0cmFjdGVkIGluIHRvIG1ha2UgaXQKKyMgbGlrZWx5IHRoYXQgZXZlbiB0aGlz IHRlc3QgZGVidWdpbmZvZCB3aWxsIGV4cGVyaWVuY2UgY29uY3VycmVuY3kKKyMgYW5kIGltcG9z ZSBzb21lICJhZnRlci15b3UiIGRlbGF5cy4KKyhmb3IgaSBpbiBgc2VxIDEwMGA7IGRvCisgICAg Y3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMS9idWlsZGlkLzg3YzA4ZDEyYzc4MTc0ZjEw ODJiN2M4ODhiMzIzODIxOWIwZWIyNjUvZXhlY3V0YWJsZSA+L2Rldi9udWxsICYKKyBkb25lOwor IHdhaXQpCitjdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL21ldHJpY3MgfCBncmVwICdo dHRwX3Jlc3BvbnNlc19hZnRlcl95b3UuKicKKyMgSWYgd2UgY291bGQgZ3VhcmFudGVlIHNvbWUg bWluaW11bSBudW1iZXIgb2Ygc2Vjb25kcyBvZiBDUFUgdGltZSwgd2UKKyMgY291bGQgYXNzZXJ0 IHRoYXQgdGhlIGFmdGVyX3lvdSBtZXRyaWNzIHNob3cgc29tZSBub256ZXJvIGFtb3VudCBvZgor IyB3YWl0aW5nLiAgQSBmZXcgaHVuZHJlZCBtcyBpcyB0eXBpY2FsIG9uIHRoaXMgZGV2ZWxvcGVy J3Mgd29ya3N0YXRpb24uCisKK2tpbGwgJFBJRDEKK2tpbGwgJFBJRDIKK3dhaXQgJFBJRDEKK3dh aXQgJFBJRDIKK1BJRDE9MAorUElEMj0wCitleGl0IDAKKwpkaWZmIC0tZ2l0IGEvdGVzdHMvcnVu LWRlYnVnaW5mb2QtZmVkZXJhdGlvbi1zcWxpdGUuc2ggYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1m ZWRlcmF0aW9uLXNxbGl0ZS5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMC4u NTczY2JjODMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1mZWRlcmF0 aW9uLXNxbGl0ZS5zaApAQCAtMCwwICsxLDE5OSBAQAorIyEvdXNyL2Jpbi9lbnYgYmFzaAorIwor IyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBSZWQgSGF0LCBJbmMuCisjIFRoaXMgZmlsZSBpcyBw YXJ0IG9mIGVsZnV0aWxzLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBv cgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBlbGZ1dGlscyBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorLiAkc3JjZGlyL3Rlc3Qtc3Vici5zaCAg IyBpbmNsdWRlcyBzZXQgLWUKKworIyBmb3IgdGVzdCBjYXNlIGRlYnVnZ2luZywgdW5jb21tZW50 Ogorc2V0IC14Cit1bnNldCBWQUxHUklORF9DTUQKKworREI9JHtQV0R9Ly5kZWJ1Z2luZm9kX3Rt cC5zcWxpdGUKK2V4cG9ydCBERUJVR0lORk9EX0NBQ0hFX1BBVEg9JHtQV0R9Ly5jbGllbnRfY2Fj aGUKK2V4cG9ydCBERUJVR0lORk9EX1RJTUVPVVQ9MTAKK2V4cG9ydCBERUJVR0lORk9EX1VSTFM9 J2h0dHA6Ly8xMjcuMC4wLjE6MCcgIyBOb3RlIGludmFsaWQKK3RlbXBmaWxlcyAkREIKKworIyBD bGVhbiBvbGQgZGlyaWN0b3JpZXMKK21rZGlyIEQgTCBGCisjIG5vdCB0ZW1wZmlsZXMgRiBSIEwg RCBaIC0gdGhleSBhcmUgZGlyZWN0b3JpZXMgd2hpY2ggd2UgY2xlYW4gdXAgbWFudWFsbHkKK2xu IC1zICR7YWJzX2J1aWxkZGlyfS9kd2ZsbGluZXMgTC9mb28gICAjIGFueSBwcm9ncmFtIG5vdCB1 c2VkIGVsc2V3aGVyZSBpbiB0aGlzIHRlc3QKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIENvbXBpbGUg YSBzaW1wbGUgcHJvZ3JhbSwgc3RyaXAgaXRzIGRlYnVnaW5mbyBhbmQgc2F2ZSB0aGUgYnVpbGQt aWQuCisjIEFsc28gbW92ZSB0aGUgZGVidWdpbmZvIGludG8gYW5vdGhlciBkaXJlY3Rvcnkgc28g dGhhdCBlbGZ1dGlscworIyBjYW5ub3QgZmluZCBpdCB3aXRob3V0IGRlYnVnaW5mb2QuCitlY2hv ICJpbnQgbWFpbigpIHsgcmV0dXJuIDA7IH0iID4gJHtQV0R9L3Byb2cuYwordGVtcGZpbGVzIHBy b2cuYworIyBDcmVhdGUgYSBzdWJkaXJlY3RvcnkgdG8gY29uZm91bmQgc291cmNlIHBhdGggbmFt ZXMKK21rZGlyIGZvb2JhcgorZ2NjIC1XbCwtLWJ1aWxkLWlkIC1nIC1vIHByb2cgJHtQV0R9L2Zv b2Jhci8vLy4vLi4vcHJvZy5jCit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vc3JjL3N0cmlw IC1nIC1mIHByb2cuZGVidWcgJHtQV0R9L3Byb2cKK0JVSUxESUQ9YGVudiBMRF9MSUJSQVJZX1BB VEg9JGxkcGF0aCAke2Fic19idWlsZGRpcn0vLi4vc3JjL3JlYWRlbGYgXAorICAgICAgICAgIC1h IHByb2cgfCBncmVwICdCdWlsZCBJRCcgfCBjdXQgLWQgJyAnIC1mIDdgCisKK212IHByb2cgRgor bXYgcHJvZy5kZWJ1ZyBGCisKK2dldF9wb3J0cworIyBMYXVuY2ggc2VydmVyIHdoaWNoIHdpbGwg YmUgdW5hYmxlIHRvIGZvbGxvdyBzeW1saW5rcworZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRo ICR7YWJzX2J1aWxkZGlyfS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QgJFZFUkJPU0UgLWQgJHtE Qn0gLUYgLVUgLXQwIC1nMCAtcCAkUE9SVDEgTCBEIEYgPiB2bG9nJFBPUlQxIDI+JjEgJgorUElE MT0kIQordGVtcGZpbGVzIHZsb2ckUE9SVDEKK2VycmZpbGVzIHZsb2ckUE9SVDEKKword2FpdF9y ZWFkeSAkUE9SVDEgJ3JlYWR5JyAxCisKK2tpbGwgLVVTUjEgJFBJRDEKK3dhaXRfcmVhZHkgJFBP UlQxICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9JyAxCit3YWl0X3JlYWR5ICRQ T1JUMSAndGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2FuIn0nIDAKK3dhaXRfcmVhZHkgJFBP UlQxICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKKworZXhwb3J0IERFQlVHSU5GT0RfQ0FD SEVfUEFUSD0ke1BXRH0vLmNsaWVudF9jYWNoZTIKK21rZGlyIC1wICRERUJVR0lORk9EX0NBQ0hF X1BBVEgKKyMgTkI6IHJ1biBpbiAtTCBzeW1saW5rLWZvbGxvd2luZyBtb2RlIGZvciB0aGUgTCBz dWJkaXIKK2VudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCBERUJVR0lORk9EX1VSTFM9aHR0cDov LzEyNy4wLjAuMTokUE9SVDEgJHthYnNfYnVpbGRkaXJ9Ly4uL2RlYnVnaW5mb2QvZGVidWdpbmZv ZCAkVkVSQk9TRSAtZCAke0RCfV8yIC1GIC1VIC1wICRQT1JUMiAtTCBMIEQgRiA+IHZsb2ckUE9S VDIgMj4mMSAmCitQSUQyPSQhCit0ZW1wZmlsZXMgdmxvZyRQT1JUMgorZXJyZmlsZXMgdmxvZyRQ T1JUMgordGVtcGZpbGVzICR7REJ9XzIKK3dhaXRfcmVhZHkgJFBPUlQyICdyZWFkeScgMQorCitl eHBvcnQgREVCVUdJTkZPRF9VUkxTPSdodHRwOi8vMTI3LjAuMC4xOickUE9SVDIgCitpZiB0eXBl IGJzZHRhciAyPi9kZXYvbnVsbDsgdGhlbgorICAgICMgY29weSBpbiB0aGUgZGViIGZpbGVzCisg ICAgY3AgLXJ2cCAke2Fic19zcmNkaXJ9L2RlYnVnaW5mb2QtZGVicy8qZGViIEQKKyAgICBraWxs IC1VU1IxICRQSUQyCisgICAgd2FpdF9yZWFkeSAkUE9SVDIgJ3RocmVhZF93b3JrX3RvdGFse3Jv bGU9InRyYXZlcnNlIn0nIDEKKyAgICB3YWl0X3JlYWR5ICRQT1JUMiAndGhyZWFkX3dvcmtfcGVu ZGluZ3tyb2xlPSJzY2FuIn0nIDAKKyAgICB3YWl0X3JlYWR5ICRQT1JUMiAndGhyZWFkX2J1c3l7 cm9sZT0ic2NhbiJ9JyAwCisKKyAgICAjIEFsbCBkZWJzIG5lZWQgdG8gYmUgaW4gdGhlIGluZGV4 CisgICAgZGVicz0kKGZpbmQgRCAtbmFtZSBcKi5kZWIgfCB3YyAtbCkKKyAgICB3YWl0X3JlYWR5 ICRQT1JUMiAnc2Nhbm5lZF9maWxlc190b3RhbHtzb3VyY2U9Ii5kZWIgYXJjaGl2ZSJ9JyBgZXhw ciAkZGVic2AKKyAgICBkZGVicz0kKGZpbmQgRCAtbmFtZSBcKi5kZGViIHwgd2MgLWwpCisgICAg d2FpdF9yZWFkeSAkUE9SVDIgJ3NjYW5uZWRfZmlsZXNfdG90YWx7c291cmNlPSIuZGRlYiBhcmNo aXZlIn0nIGBleHByICRkZGVic2AKKworICAgICMgdWJ1bnR1CisgICAgYXJjaGl2ZV90ZXN0IGYx N2EyOWI1YTI1YmQ0OTYwNTMxZDgyYWE2YjA3YzhhYmU4NGZhNjYgIiIgIiIKK2ZpCisKK3JtIC1y ZiAkREVCVUdJTkZPRF9DQUNIRV9QQVRICit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVi dWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdpbmZvICRCVUlMRElECisKKyMgc2VuZCBhIHJl cXVlc3QgdG8gc3RyZXNzIFhGRiBhbmQgVXNlci1BZ2VudCBmZWRlcmF0aW9uIHJlbGF5OworIyB3 ZSdsbCBncmVwIGZvciB0aGUgdHdvIHBhdHRlcm5zIGluIHZsb2ckUE9SVDEKK2N1cmwgLXMgLUgg J1VzZXItQWdlbnQ6IFRFU1RDVVJMJyAtSCAnWC1Gb3J3YXJkZWQtRm9yOiBURVNUWEZGJyAkREVC VUdJTkZPRF9VUkxTL2J1aWxkaWQvZGVhZGRlYWRiZWVmMDAwMDAwMDAvZGVidWdpbmZvIC1vIC9k ZXYvbnVsbCB8fCB0cnVlCisKK2dyZXAgVUE6VEVTVENVUkwgdmxvZyRQT1JUMQorZ3JlcCBYRkY6 VEVTVFhGRiB2bG9nJFBPUlQxCisKKyMgY29uZmlybSB0aGF0IGZpcnN0IHNlcnZlciBjYW4ndCBy ZXNvbHZlIHN5bWxpbmtlZCBpbmZvIGluIEwvIGJ1dCBzZWNvbmQgY2FuCitCVUlMRElEPWBlbnYg TERfTElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9Ly4uL3NyYy9yZWFkZWxmIFwK KyAgICAgICAgIC1hIEwvZm9vIHwgZ3JlcCAnQnVpbGQgSUQnIHwgY3V0IC1kICcgJyAtZiA3YAor ZmlsZSBML2ZvbworZmlsZSAtTCBML2ZvbworZXhwb3J0IERFQlVHSU5GT0RfVVJMUz1odHRwOi8v MTI3LjAuMC4xOiRQT1JUMQorcm0gLXJmICRERUJVR0lORk9EX0NBQ0hFX1BBVEgKK3Rlc3RydW4g JHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8g JEJVSUxESUQgJiYgZmFsc2UgfHwgdHJ1ZQorcm0gLWYgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSC8k QlVJTERJRC9kZWJ1Z2luZm8gIyBkcm9wIDAwMC1wZXJtIG5lZ2F0aXZlLWhpdCBmaWxlCitleHBv cnQgREVCVUdJTkZPRF9VUkxTPWh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQyCit0ZXN0cnVuICR7YWJz X3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdpbmZvICRCVUlM RElECisKKyMgdGVzdCBhZ2FpbiB3aXRoIHNjaGVtZSBmcmVlIHVybAorZXhwb3J0IERFQlVHSU5G T0RfVVJMUz0xMjcuMC4wLjE6JFBPUlQxCitybSAtcmYgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSAor dGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRl YnVnaW5mbyAkQlVJTERJRCAmJiBmYWxzZSB8fCB0cnVlCitybSAtZiAkREVCVUdJTkZPRF9DQUNI RV9QQVRILyRCVUlMRElEL2RlYnVnaW5mbyAjIGRyb3AgMDAwLXBlcm0gbmVnYXRpdmUtaGl0IGZp bGUKK2V4cG9ydCBERUJVR0lORk9EX1VSTFM9MTI3LjAuMC4xOiRQT1JUMgordGVzdHJ1biAke2Fi c190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAkQlVJ TERJRAorIyB0ZXN0IHBhcmFsbGVsIHF1ZXJpZXMgaW4gY2xpZW50CitleHBvcnQgREVCVUdJTkZP RF9DQUNIRV9QQVRIPSR7UFdEfS8uY2xpZW50X2NhY2hlMworbWtkaXIgLXAgJERFQlVHSU5GT0Rf Q0FDSEVfUEFUSAorZXhwb3J0IERFQlVHSU5GT0RfVVJMUz0iQkFEIGh0dHA6Ly8xMjcuMC4wLjE6 JFBPUlQxIDEyNy4wLjAuMTokUE9SVDEgaHR0cDovLzEyNy4wLjAuMTokUE9SVDIgRE5FIgorCit0 ZXN0cnVuICR7YWJzX2J1aWxkZGlyfS9kZWJ1Z2luZm9kX2J1aWxkX2lkX2ZpbmQgLWUgRi9wcm9n IDEKKworIyBBbmQgZ2VuZXJhdGUgYSBmZXcgZXJyb3JzIGludG8gdGhlIHNlY29uZCBkZWJ1Z2lu Zm9kJ3MgbG9ncywgZm9yIGFuYWx5c2lzIGp1c3QgYmVsb3cKK2N1cmwgLXMgaHR0cDovLzEyNy4w LjAuMTokUE9SVDIvYmFkYXBpID4gL2Rldi9udWxsIHx8IHRydWUKK2N1cmwgLXMgaHR0cDovLzEy Ny4wLjAuMTokUE9SVDIvYnVpbGRpZC9kZWFkYmVlZi9kZWJ1Z2luZm8gPiAvZGV2L251bGwgfHwg dHJ1ZQorIyBOQjogdGhpcyBlcnJvciBpcyB1c2VkIHRvIHNlZWQgdGhlIDQwNCBmYWlsdXJlIGZv ciB0aGUgc3Vydml2ZS00MDQgdGVzdHMKKworIyBDb25maXJtIGJhZCBhcnRpZmFjdCB0eXBlcyBh cmUgcmVqZWN0ZWQgd2l0aG91dCBsZWF2aW5nIHRyYWNlCitjdXJsIC1zIGh0dHA6Ly8xMjcuMC4w LjE6JFBPUlQyL2J1aWxkaWQvZGVhZGJlZWYvYmFkdHlwZSA+IC9kZXYvbnVsbCB8fCB0cnVlCiso Y3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMi9tZXRyaWNzIHwgZ3JlcCAnYmFkdHlwZScp ICYmIGZhbHNlCisKKyMgRElTQUJMRSBWQUxHUklORCBjaGVja2luZyBiZWNhdXNlIHZhbGdyaW5k IG1pZ2h0IHVzZSBkZWJ1Z2luZm9kIGNsaWVudAorIyByZXF1ZXN0cyBpdHNlbGYsIGNhdXNpbmcg Y29uZnVzaW9uIGFib3V0IHdobyBwdXQgd2hhdCBpbiB0aGUgY2FjaGUuCisjIEl0IHN0YXlzIGRp c2FibGVkIHRpbGwgdGhlIGVuZCBvZiB0aGlzIHRlc3QuCit1bnNldCBWQUxHUklORF9DTUQKKwor IyBDb25maXJtIHRoYXQgcmV1c2VkIGN1cmwgY29ubmVjdGlvbnMgc3Vydml2ZSA0MDQgZXJyb3Jz LgorIyBUaGUgcm0ncyBmb3JjZSBhbiB1bmNhY2hlZCBmZXRjaAorcm0gLWYgJERFQlVHSU5GT0Rf Q0FDSEVfUEFUSC8kQlVJTERJRC9kZWJ1Z2luZm8gLmNsaWVudF9jYWNoZSovJEJVSUxESUQvZGVi dWdpbmZvCit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9k LWZpbmQgZGVidWdpbmZvICRCVUlMRElECitybSAtZiAkREVCVUdJTkZPRF9DQUNIRV9QQVRILyRC VUlMRElEL2RlYnVnaW5mbyAuY2xpZW50X2NhY2hlKi8kQlVJTERJRC9kZWJ1Z2luZm8KK3Rlc3Ry dW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2lu Zm8gJEJVSUxESUQKK3Rlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVn aW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESUQKK3Rlc3RydW4gJHthYnNfdG9wX2J1aWxkZGly fS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESUQKK3JtIC1mICRE RUJVR0lORk9EX0NBQ0hFX1BBVEgvJEJVSUxESUQvZGVidWdpbmZvIC5jbGllbnRfY2FjaGUqLyRC VUlMRElEL2RlYnVnaW5mbwordGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2Qv ZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAkQlVJTERJRAorIyBUcmlnZ2VyIGEgZmxvb2Qgb2Yg cmVxdWVzdHMgYWdhaW5zdCB0aGUgc2FtZSBhcmNoaXZlIGNvbnRlbnQgZmlsZS4KKyMgVXNlIGEg ZmlsZSB0aGF0IGhhc24ndCBiZWVuIHByZXZpb3VzbHkgZXh0cmFjdGVkIGluIHRvIG1ha2UgaXQK KyMgbGlrZWx5IHRoYXQgZXZlbiB0aGlzIHRlc3QgZGVidWdpbmZvZCB3aWxsIGV4cGVyaWVuY2Ug Y29uY3VycmVuY3kKKyMgYW5kIGltcG9zZSBzb21lICJhZnRlci15b3UiIGRlbGF5cy4KKyhmb3Ig aSBpbiBgc2VxIDEwMGA7IGRvCisgICAgY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMS9i dWlsZGlkLzg3YzA4ZDEyYzc4MTc0ZjEwODJiN2M4ODhiMzIzODIxOWIwZWIyNjUvZXhlY3V0YWJs ZSA+L2Rldi9udWxsICYKKyBkb25lOworIHdhaXQpCitjdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6 JFBPUlQxL21ldHJpY3MgfCBncmVwICdodHRwX3Jlc3BvbnNlc19hZnRlcl95b3UuKicKKyMgSWYg d2UgY291bGQgZ3VhcmFudGVlIHNvbWUgbWluaW11bSBudW1iZXIgb2Ygc2Vjb25kcyBvZiBDUFUg dGltZSwgd2UKKyMgY291bGQgYXNzZXJ0IHRoYXQgdGhlIGFmdGVyX3lvdSBtZXRyaWNzIHNob3cg c29tZSBub256ZXJvIGFtb3VudCBvZgorIyB3YWl0aW5nLiAgQSBmZXcgaHVuZHJlZCBtcyBpcyB0 eXBpY2FsIG9uIHRoaXMgZGV2ZWxvcGVyJ3Mgd29ya3N0YXRpb24uCisKKyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworIyBDb3JydXB0IHRoZSBzcWxpdGUgZGF0YWJhc2UgYW5kIGdldCBkZWJ1Z2luZm9kIHRvIHRy aXAgYWNyb3NzIGl0cyBlcnJvcnMKK2N1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDEvbWV0 cmljcyB8IGdyZXAgJ3NxbGl0ZTMuKnJlc2V0JworZGQgaWY9L2Rldi96ZXJvIG9mPSREQiBicz0x IGNvdW50PTEKKworIyB0cmlnZ2VyIHNvbWUgcmFuZG9tIGFjdGl2aXR5IHRoYXQncyBTdXJlIHRv IGdldCBzcWxpdGUzIHVwc2V0CitraWxsIC1VU1IxICRQSUQxCit3YWl0X3JlYWR5ICRQT1JUMSAn dGhyZWFkX3dvcmtfdG90YWx7cm9sZT0idHJhdmVyc2UifScgMgord2FpdF9yZWFkeSAkUE9SVDEg J3RocmVhZF93b3JrX3BlbmRpbmd7cm9sZT0ic2NhbiJ9JyAwCit3YWl0X3JlYWR5ICRQT1JUMSAn dGhyZWFkX2J1c3l7cm9sZT0ic2NhbiJ9JyAwCitraWxsIC1VU1IyICRQSUQxCit3YWl0X3JlYWR5 ICRQT1JUMSAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0iZ3Jvb20ifScgMQorY3VybCAtcyBodHRw Oi8vMTI3LjAuMC4xOiRQT1JUMS9idWlsZGlkL2JlZWZiZWVmYmVlZmQwMGRkMDBkL2RlYnVnaW5m byA+IC9kZXYvbnVsbCB8fCB0cnVlCitjdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL21l dHJpY3MgfCBncmVwICdlcnJvcl9jb3VudC4qc3FsaXRlJworIyBSdW4gdGhlIHRlc3RzIGFnYWlu IHdpdGhvdXQgdGhlIHNlcnZlcnMgcnVubmluZy4gVGhlIHRhcmdldCBmaWxlIHNob3VsZAorIyBi ZSBmb3VuZCBpbiB0aGUgY2FjaGUuCisKK2tpbGwgLUlOVCAkUElEMSAkUElEMgord2FpdCAkUElE MSAkUElEMgorUElEMT0wCitQSUQyPTAKK3RlbXBmaWxlcyAuZGVidWdpbmZvZF8qCisKK3Rlc3Ry dW4gJHthYnNfYnVpbGRkaXJ9L2RlYnVnaW5mb2RfYnVpbGRfaWRfZmluZCAtZSBGL3Byb2cgMQor CisjIGNoZWNrIG91dCB0aGUgZGVidWdpbmZvZCBsb2dzIGZvciB0aGUgbmV3IHN0eWxlIHN0YXR1 cyBsaW5lcworY2F0IHZsb2ckUE9SVDIKK2dyZXAgLXEgJ1VBOi4qWEZGOi4qR0VUIC9idWlsZGlk Ly4qIDIwMCAnIHZsb2ckUE9SVDIKK2dyZXAgLXEgJ1VBOi4qWEZGOi4qR0VUIC9tZXRyaWNzIDIw MCAnIHZsb2ckUE9SVDIKK2dyZXAgLXEgJ1VBOi4qWEZGOi4qR0VUIC9iYWRhcGkgNTAzICcgdmxv ZyRQT1JUMgorZ3JlcCAtcSAnVUE6LipYRkY6LipHRVQgL2J1aWxkaWQvZGVhZGJlZWYuKiA0MDQg JyB2bG9nJFBPUlQyCisKK2V4aXQgMApkaWZmIC0tZ2l0IGEvdGVzdHMvcnVuLWRlYnVnaW5mb2Qt ZmlsZS5zaCBiL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLWZpbGUuc2gKbmV3IGZpbGUgbW9kZSAxMDA3 NTUKaW5kZXggMDAwMDAwMDAuLjMxODdjOTJiCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcnVu LWRlYnVnaW5mb2QtZmlsZS5zaApAQCAtMCwwICsxLDM5IEBACisjIS91c3IvYmluL2VudiBiYXNo CisjCisjIENvcHlyaWdodCAoQykgMjAxOS0yMDIxIFJlZCBIYXQsIEluYy4KKyMgVGhpcyBmaWxl IGlzIHBhcnQgb2YgZWxmdXRpbHMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vu c2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIGVsZnV0 aWxzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1 dAorIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisuICRzcmNkaXIvdGVzdC1zdWJy LnNoICAjIGluY2x1ZGVzIHNldCAtZQorIyBmb3IgdGVzdCBjYXNlIGRlYnVnZ2luZywgdW5jb21t ZW50Ogorc2V0IC14Cit1bnNldCBWQUxHUklORF9DTUQKKworZXhwb3J0IERFQlVHSU5GT0RfVVJM Uz1odHRwOi8vMTI3LjAuMC4xOiRQT1JUMS8gICAjIG9yIHdpdGhvdXQgdHJhaWxpbmcgLworCisj IFRlc3QgZmV0Y2hpbmcgYSBmaWxlIHVzaW5nIGZpbGU6Ly8gLiBObyBkZWJ1Z2luZm9kIHNlcnZl ciBuZWVkcyB0byBiZSBydW4gZm9yCisjIHRoaXMgdGVzdC4KK2xvY2FsX2Rpcj0ke1BXRH0vbW9j a3RyZWUvYnVpbGRpZC9hYWFhYWFhYWFhYmJiYmJiYmJiYmNjY2NjY2NjY2NkZGRkZGRkZGRkL3Nv dXJjZS9teS9wYXRoCitta2RpciAtcCAke2xvY2FsX2Rpcn0KK2VjaG8gImludCBtYWluKCkgeyBy ZXR1cm4gMDsgfSIgPiAke2xvY2FsX2Rpcn0vbWFpbi5jCisjIGZpcnN0IHRlc3QgdGhhdCBpcyBk b2Vzbid0IHdvcmssIHdoZW4gbm8gREVCVUdJTkZPRF9VUkxTIGlzIHNldAorREVCVUdJTkZPRF9V UkxTPSIiCit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9k LWZpbmQgc291cmNlIGFhYWFhYWFhYWFiYmJiYmJiYmJiY2NjY2NjY2NjY2RkZGRkZGRkZGQgL215 L3BhdGgvbWFpbi5jICYmIGZhbHNlIHx8IHRydWUKKworIyBOb3cgdGVzdCBpcyB3aXRoIHByb3Bl ciBERUJVR0lORk9EX1VSTFMKK0RFQlVHSU5GT0RfVVJMUz0iZmlsZTovLyR7UFdEfS9tb2NrdHJl ZS8iCitmaWxlbmFtZT1gdGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVi dWdpbmZvZC1maW5kIHNvdXJjZSBhYWFhYWFhYWFhYmJiYmJiYmJiYmNjY2NjY2NjY2NkZGRkZGRk ZGRkIC9teS9wYXRoL21haW4uY2AKK2NtcCAkZmlsZW5hbWUgJHtsb2NhbF9kaXJ9L21haW4uYwor CitleGl0IDAKZGlmZiAtLWdpdCBhL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLWZpbmQuc2ggYi90ZXN0 cy9ydW4tZGVidWdpbmZvZC1maW5kLnNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA3 NTE1YjdjZC4uMDAwMDAwMDAKLS0tIGEvdGVzdHMvcnVuLWRlYnVnaW5mb2QtZmluZC5zaAorKysg L2Rldi9udWxsCkBAIC0xLDg1MiArMCwwIEBACi0jIS91c3IvYmluL2VudiBiYXNoCi0jCi0jIENv cHlyaWdodCAoQykgMjAxOS0yMDIxIFJlZCBIYXQsIEluYy4KLSMgVGhpcyBmaWxlIGlzIHBhcnQg b2YgZWxmdXRpbHMuCi0jCi0jIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0jIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0jIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0j IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0jCi0jIGVsZnV0aWxzIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAotIyBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0j IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKLSMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSMK LSMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKLSMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0KLS4gJHNyY2Rpci90ZXN0LXN1YnIuc2ggICMg aW5jbHVkZXMgc2V0IC1lCi0KLXR5cGUgY3VybCAyPi9kZXYvbnVsbCB8fCAoZWNobyAibmVlZCBj dXJsIjsgZXhpdCA3NykKLXR5cGUgcnBtMmNwaW8gMj4vZGV2L251bGwgfHwgKGVjaG8gIm5lZWQg cnBtMmNwaW8iOyBleGl0IDc3KQotdHlwZSBjcGlvIDI+L2Rldi9udWxsIHx8IChlY2hvICJuZWVk IGNwaW8iOyBleGl0IDc3KQotdHlwZSBiemNhdCAyPi9kZXYvbnVsbCB8fCAoZWNobyAibmVlZCBi emNhdCI7IGV4aXQgNzcpCi1ic2R0YXIgLS12ZXJzaW9uIHwgZ3JlcCAtcSB6c3RkICYmIHpzdGQ9 dHJ1ZSB8fCB6c3RkPWZhbHNlCi1lY2hvICJ6c3RkPSR6c3RkIGJzZHRhcj1gYnNkdGFyIC0tdmVy c2lvbmAiCi0KLSMgZm9yIHRlc3QgY2FzZSBkZWJ1Z2dpbmcsIHVuY29tbWVudDoKLXNldCAteAot VkVSQk9TRT0tdnZ2Ci0KLURCPSR7UFdEfS8uZGVidWdpbmZvZF90bXAuc3FsaXRlCi10ZW1wZmls ZXMgJERCCi1leHBvcnQgREVCVUdJTkZPRF9DQUNIRV9QQVRIPSR7UFdEfS8uY2xpZW50X2NhY2hl Ci0KLVBJRDE9MAotUElEMj0wCi1QSUQzPTAKLVBJRDQ9MAotUElENT0wCi1QSUQ2PTAKLQotY2xl YW51cCgpCi17Ci0gIGlmIFsgJFBJRDEgLW5lIDAgXTsgdGhlbiBraWxsICRQSUQxOyB3YWl0ICRQ SUQxOyBmaQotICBpZiBbICRQSUQyIC1uZSAwIF07IHRoZW4ga2lsbCAkUElEMjsgd2FpdCAkUElE MjsgZmkKLSAgaWYgWyAkUElEMyAtbmUgMCBdOyB0aGVuIGtpbGwgJFBJRDM7IHdhaXQgJFBJRDM7 IGZpCi0gIGlmIFsgJFBJRDQgLW5lIDAgXTsgdGhlbiBraWxsICRQSUQ0OyB3YWl0ICRQSUQ0OyBm aQotICBpZiBbICRQSUQ1IC1uZSAwIF07IHRoZW4ga2lsbCAkUElENTsgd2FpdCAkUElENTsgZmkK LSAgaWYgWyAkUElENiAtbmUgMCBdOyB0aGVuIGtpbGwgJFBJRDY7IHdhaXQgJFBJRDY7IGZpCi0g IHJtIC1yZiBGIFIgRCBMIFogJHtQV0R9L2Zvb2JhciAke1BXRH0vbW9ja3RyZWUgJHtQV0R9Ly5j bGllbnRfY2FjaGUqICR7UFdEfS90bXAqCi0gIGV4aXRfY2xlYW51cAotfQotCi0jIGNsZWFuIHVw IHRyYXNoIGlmIHdlIHdlcmUgYWJvcnRlZCBlYXJseQotdHJhcCBjbGVhbnVwIDAgMSAyIDMgNSA5 IDE1Ci0KLWVycmZpbGVzX2xpc3Q9Ci1lcnIoKSB7Ci0gICAgZWNobyBFUlJPUiBSRVBPUlRTCi0g ICAgZm9yIHBvcnRzIGluICRQT1JUMSAkUE9SVDIgJFBPUlQzICRQT1JUNCAkUE9SVDUKLSAgICBk bwotICAgICAgICBlY2hvIEVSUk9SIFJFUE9SVCAkcG9ydCBtZXRyaWNzCi0gICAgICAgIGN1cmwg LXMgaHR0cDovLzEyNy4wLjAuMTokcG9ydC9tZXRyaWNzCi0gICAgICAgIGVjaG8KLSAgICBkb25l Ci0gICAgZm9yIHggaW4gJGVycmZpbGVzX2xpc3QKLSAgICBkbwotICAgICAgICBlY2hvIEVSUk9S IFJFUE9SVCAiJHgiCi0gICAgICAgIGNhdCAkeAotICAgICAgICBlY2hvCi0gICAgZG9uZQotICAg IGZhbHNlICMgdHJpZ2dlciBzZXQgLWUKLX0KLXRyYXAgZXJyIEVSUgotCi1lcnJmaWxlcygpIHsK LSAgICBlcnJmaWxlc19saXN0PSIkZXJyZmlsZXNfbGlzdCAkKiIKLX0KLQotCi0jIGZpbmQgYW4g dW51c2VkIHBvcnQgbnVtYmVyCi13aGlsZSB0cnVlOyBkbwotICAgIFBPUlQxPWBleHByICcoJyAk UkFORE9NICUgMTAwMCAnKScgKyA5MDAwYAotICAgIHNzIC1hdG4gfCBmZ3JlcCAiOiRQT1JUMSIg fHwgYnJlYWsKLWRvbmUgICAgCi0KLSMgV2Ugd2FudCB0byBydW4gZGVidWdpbmZvZCBpbiB0aGUg YmFja2dyb3VuZC4gIFdlIGFsc28gd2FudCB0byBzdGFydAotIyBpdCB3aXRoIHRoZSBzYW1lIGNo ZWNrL2luc3RhbGxjaGVjay1zZW5zaXRpdmUgTERfTElCUkFSWV9QQVRIIHN0dWZmCi0jIHRoYXQg dGhlIHRlc3RydW4gYWxpYXMgc2V0cy4gIEJ1dDogd2UgaWYgd2UganVzdCB1c2UKLSMgICAgdGVz dHJ1biAuLi4vZGVidWdpbmZvZAotIyBpdCBydW5zIGluIGEgc3Vic2hlbGwsIHdpdGggZGlmZmVy ZW50IHBpZCwgc28gbm90IGhlbHBmdWwuCi0jCi0jIFNvIHdlIGdhdGhlciB0aGUgTERfTElCUkFS WV9QQVRIIHdpdGggdGhpcyBjdW5uaW5nIHRyaWNrOgotbGRwYXRoPWB0ZXN0cnVuIHNoIC1jICdl Y2hvICRMRF9MSUJSQVJZX1BBVEgnYAotCi1ta2RpciBGIFIgTCBEIFoKLSMgbm90IHRlbXBmaWxl cyBGIFIgTCBEIFogLSB0aGV5IGFyZSBkaXJlY3RvcmllcyB3aGljaCB3ZSBjbGVhbiB1cCBtYW51 YWxseQotbG4gLXMgJHthYnNfYnVpbGRkaXJ9L2R3ZmxsaW5lcyBML2ZvbyAgICMgYW55IHByb2dy YW0gbm90IHVzZWQgZWxzZXdoZXJlIGluIHRoaXMgdGVzdAotCi13YWl0X3JlYWR5KCkKLXsKLSAg cG9ydD0kMTsKLSAgd2hhdD0kMjsKLSAgdmFsdWU9JDM7Ci0gIHRpbWVvdXQ9MjA7Ci0KLSAgZWNo byAiV2FpdCAkdGltZW91dCBzZWNvbmRzIG9uICRwb3J0IGZvciBtZXRyaWMgJHdoYXQgdG8gY2hh bmdlIHRvICR2YWx1ZSIKLSAgd2hpbGUgWyAkdGltZW91dCAtZ3QgMCBdOyBkbwotICAgIG12YWx1 ZT0iJChjdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JHBvcnQvbWV0cmljcyBcCi0gICAgICAgICAg ICAgIHwgZ3JlcCAiJHdoYXQiIHwgYXdrICd7cHJpbnQgJE5GfScpIgotICAgIGlmIFsgLXogIiRt dmFsdWUiIF07IHRoZW4gbXZhbHVlPTA7IGZpCi0gICAgICBlY2hvICJtZXRyaWMgJHdoYXQ6ICRt dmFsdWUiCi0gICAgICBpZiBbICIkbXZhbHVlIiAtZXEgIiR2YWx1ZSIgXTsgdGhlbgotICAgICAg ICBicmVhazsKLSAgICBmaQotICAgIHNsZWVwIDAuNTsKLSAgICAoKHRpbWVvdXQtLSkpOwotICBk b25lOwotCi0gIGlmIFsgJHRpbWVvdXQgLWVxIDAgXTsgdGhlbgotICAgIGVjaG8gIm1ldHJpYyAk d2hhdCBuZXZlciBjaGFuZ2VkIHRvICR2YWx1ZSBvbiBwb3J0ICRwb3J0IgotICAgIGVycgotICBm aQotfQotCi1GRENBQ0hFX0ZEUz01MAotRkRDQUNIRV9NQlM9MTkwCi1QUkVGRVRDSF9GRFM9MTAK LVBSRUZFVENIX01CUz0xMjAKLSMgY3JlYXRlIGEgYm9ndXMgLnJwbSBmaWxlIHRvIGV2b2tlIGEg bWV0cmljLXZpc2libGUgZXJyb3IKLSMgVXNlIGEgY3ljbGljIHN5bWxpbmsgaW5zdGVhZCBvZiBj aG1vZCAwMDAgdG8gbWFrZSBzdXJlIGV2ZW4gcm9vdAotIyB3b3VsZCBzZWUgYW4gZXJyb3IgKHJ1 bm5pbmcgdGhlIHRlc3RzdWl0ZSB1bmRlciByb290IGlzIE5PVCBlbmNvdXJhZ2VkKS4KLWxuIC1z IFIvbm90aGluZy5ycG0gUi9ub3RoaW5nLnJwbQotZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRo IERFQlVHSU5GT0RfVVJMUz0gJHthYnNfYnVpbGRkaXJ9Ly4uL2RlYnVnaW5mb2QvZGVidWdpbmZv ZCAkVkVSQk9TRSAtRiAtUiAtZCAkREIgLXAgJFBPUlQxIC10MCAtZzAgLS1mZGNhY2hlLW1icz0k RkRDQUNIRV9NQlMgLS1mZGNhY2hlLWZkcz0kRkRDQUNIRV9GRFMgLS1mZGNhY2hlLXByZWZldGNo LW1icz0kUFJFRkVUQ0hfTUJTIC0tZmRjYWNoZS1wcmVmZXRjaC1mZHM9JFBSRUZFVENIX0ZEUyAt LWZkY2FjaGUtbWludG1wIDAgLVogLnRhci54eiAtWiAudGFyLmJ6Mj1iemNhdCAtdiBSIEYgWiBM ID4gdmxvZyRQT1JUMSAyPiYxICYKLVBJRDE9JCEKLXRlbXBmaWxlcyB2bG9nJFBPUlQxCi1lcnJm aWxlcyB2bG9nJFBPUlQxCi0jIFNlcnZlciBtdXN0IGJlY29tZSByZWFkeQotd2FpdF9yZWFkeSAk UE9SVDEgJ3JlYWR5JyAxCi1leHBvcnQgREVCVUdJTkZPRF9VUkxTPWh0dHA6Ly8xMjcuMC4wLjE6 JFBPUlQxLyAgICMgb3Igd2l0aG91dCB0cmFpbGluZyAvCi0KLSMgQmUgcGF0aWVudCB3aGVuIHJ1 biBvbiBhIGJ1c3kgbWFjaGluZSB0aGluZ3MgbWlnaHQgdGFrZSBhIGJpdC4KLWV4cG9ydCBERUJV R0lORk9EX1RJTUVPVVQ9MTAKLQotIyBDaGVjayB0aHJlYWQgY29tbSBuYW1lcwotcHMgLXEgJFBJ RDEgLWUgLUwgLW8gJyVwICVjICVhJyB8IGdyZXAgZ3Jvb20KLXBzIC1xICRQSUQxIC1lIC1MIC1v ICclcCAlYyAlYScgfCBncmVwIHNjYW4KLXBzIC1xICRQSUQxIC1lIC1MIC1vICclcCAlYyAlYScg fCBncmVwIHRyYXZlcnNlCi0KLSMgV2UgdXNlIC10MCBhbmQgLWcwIGhlcmUgdG8gdHVybiBvZmYg dGltZS1iYXNlZCBzY2FubmluZyAmIGdyb29taW5nLgotIyBGb3IgdGVzdGluZyBwdXJwb3Nlcywg d2UganVzdCBzaWMgU0lHVVNSMSAvIFNJR1VTUjIgYXQgdGhlIHByb2Nlc3MuCi0KLSMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwotCi0jIENvbXBpbGUgYSBzaW1wbGUgcHJvZ3JhbSwgc3RyaXAgaXRzIGRlYnVnaW5m byBhbmQgc2F2ZSB0aGUgYnVpbGQtaWQuCi0jIEFsc28gbW92ZSB0aGUgZGVidWdpbmZvIGludG8g YW5vdGhlciBkaXJlY3Rvcnkgc28gdGhhdCBlbGZ1dGlscwotIyBjYW5ub3QgZmluZCBpdCB3aXRo b3V0IGRlYnVnaW5mb2QuCi1lY2hvICJpbnQgbWFpbigpIHsgcmV0dXJuIDA7IH0iID4gJHtQV0R9 L3ArciVvXCRnLmMKLXRlbXBmaWxlcyBwK3Ilb1wkZy5jCi0jIENyZWF0ZSBhIHN1YmRpcmVjdG9y eSB0byBjb25mb3VuZCBzb3VyY2UgcGF0aCBuYW1lcwotbWtkaXIgZm9vYmFyCi1nY2MgLVdsLC0t YnVpbGQtaWQgLWcgLW8gcCtyJW9cJGcgJHtQV0R9L2Zvb2Jhci8vLy4vLi4vcCtyJW9cJGcuYwot dGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L3NyYy9zdHJpcCAtZyAtZiBwK3Ilb1wkZy5kZWJ1 ZyAke1BXRH0vcCtyJW9cJGcKLUJVSUxESUQ9YGVudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCAk e2Fic19idWlsZGRpcn0vLi4vc3JjL3JlYWRlbGYgXAotICAgICAgICAgIC1hIHArciVvXFwkZyB8 IGdyZXAgJ0J1aWxkIElEJyB8IGN1dCAtZCAnICcgLWYgN2AKLQotd2FpdF9yZWFkeSAkUE9SVDEg J3RocmVhZF93b3JrX3RvdGFse3JvbGU9InRyYXZlcnNlIn0nIDEKLW12IHArciVvXCRnIEYKLW12 IHArciVvXCRnLmRlYnVnIEYKLWtpbGwgLVVTUjEgJFBJRDEKLSMgV2FpdCB0aWxsIGJvdGggZmls ZXMgYXJlIGluIHRoZSBpbmRleC4KLXdhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya190b3Rh bHtyb2xlPSJ0cmF2ZXJzZSJ9JyAyCi13YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfcGVu ZGluZ3tyb2xlPSJzY2FuIn0nIDAKLXdhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xl PSJzY2FuIn0nIDAKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMgVGVzdCB3aGV0aGVyIGVsZnV0aWxz LCB2aWEgdGhlIGRlYnVnaW5mb2QgY2xpZW50IGxpYnJhcnkgZGxvcGVuIGhvb2tzLAotIyBpcyBh YmxlIHRvIGZldGNoIGRlYnVnaW5mbyBmcm9tIHRoZSBsb2NhbCBkZWJ1Z2luZm9kLgotdGVzdHJ1 biAke2Fic19idWlsZGRpcn0vZGVidWdpbmZvZF9idWlsZF9pZF9maW5kIC1lIEYvcCtyJW9cJGcg MQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMjIFBSMjc4OTIKLSMgRW5zdXJlIERFQlVHSU5GT0RfTUFY U0laRSBpcyBmdW5jdGlvbmFsIGFuZCBzZW5kcyBiYWNrIHRoZSBjb3JyZWN0IGh0dHAKLSMgY29k ZQotZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoIERFQlVHSU5GT0RfUkVUUllfTElNSVQ9MSBE RUJVR0lORk9EX1VSTFM9Imh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxLyIgREVCVUdJTkZPRF9NQVhT SVpFPTEgXAotICAgICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZp bmQgLXYgZGVidWdpbmZvIEYvcCtyJW9cJGcuZGVidWcgMj4gZmluZC12bG9nJFBPUlQxIHx8IHRy dWUKLXRlbXBmaWxlcyBmaW5kLXZsb2ckUE9SVDEKLSMgd2FpdCBmb3IgdGhlIHNlcnZlciB0byBm YWlsIHRoZSBzYW1lIG51bWJlciBvZiB0aW1lcyB0aGUgcXVlcnkgaXMgcmV0cmllZC4KLXdhaXRf cmVhZHkgJFBPUlQxICdodHRwX3Jlc3BvbnNlc19hZnRlcl95b3VfbWlsbGlzZWNvbmRzX2NvdW50 e2NvZGU9IjQwNiJ9JyAxCi0jIGVuc3VyZSBhbGwgcmVwb3J0aW5nIGlzIGZ1bmN0aW9uYWwKLWdy ZXAgJ3NlcnZpbmcgZmlsZSAnJChyZWFscGF0aCAke1BXRH0pJy9GL3ArciVvXCRnLmRlYnVnJyB2 bG9nJFBPUlQxCi1ncmVwICdGaWxlIHRvbyBsYXJnZScgdmxvZyRQT1JUMQotZ3JlcCAndXNpbmcg bWF4IHNpemUgMUInIGZpbmQtdmxvZyRQT1JUMQotaWYgWyAtZiAke0RFQlVHSU5GT0RfQ0FDSEVf UEFUSH0vJHtCVUlMRElEfSBdOyB0aGVuCi0gIGVjaG8gIkZpbGUgY2FjaGVkIGFmdGVyIG1heHNp emUgY2hlY2siCi0gIGVycgotZmkKLQotIyBFbnN1cmUgREVCVUdJTkZPRF9NQVhUSU1FIGlzIGZ1 bmN0aW9uYWwKLWVudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCBERUJVR0lORk9EX1VSTFM9Imh0 dHA6Ly8xMjcuMC4wLjE6ODAwMi8iIERFQlVHSU5GT0RfTUFYVElNRT0xIFwKLSAgICAke2Fic190 b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIC12IGRlYnVnaW5mbyBGL3Ar ciVvXCRnLmRlYnVnIDI+IGZpbmQtdmxvZyRQT1JUMSB8fCB0cnVlCi1ncmVwICd1c2luZyBtYXgg dGltZScgZmluZC12bG9nJFBPUlQxCi0jIEVuc3VyZSBwK3Ilb1wkZy5kZWJ1ZyBpcyBOT1QgY2Fj aGVkCi1pZiBbIC1mICR7REVCVUdJTkZPRF9DQUNIRV9QQVRIfS8ke0JVSUxESUR9IF07IHRoZW4K LSAgZWNobyAiRmlsZSBjYWNoZWQgYWZ0ZXIgbWF4dGltZSBjaGVjayIKLSAgZXJyCi1maQotIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCi0jIFBSMjU2MjgKLXJtIC1yZiAkREVCVUdJTkZPRF9DQUNIRV9QQVRIICMg Y2xlYW4gaXQgZnJvbSBwcmV2aW91cyB0ZXN0cwotCi0jIFRoZSBxdWVyeSBpcyBkZXNpZ25lZCB0 byBmYWlsLCB3aGlsZSB0aGUgMDAwLXBlcm1pc3Npb24gZmlsZSBzaG91bGQgYmUgY3JlYXRlZC4K LXRlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBk ZWJ1Z2luZm8gMDEyMzQ1NjcgfHwgdHJ1ZQotaWYgWyAhIC1mICRERUJVR0lORk9EX0NBQ0hFX1BB VEgvMDEyMzQ1NjcvZGVidWdpbmZvIF07IHRoZW4KLSAgZWNobyAiY291bGQgbm90IGZpbmQgY2Fj aGUgaW4gJERFQlVHSU5GT0RfQ0FDSEVfUEFUSCIKLSAgZXJyCi1maQotCi1pZiBbIC1yICRERUJV R0lORk9EX0NBQ0hFX1BBVEgvMDEyMzQ1NjcvZGVidWdpbmZvIF07IHRoZW4KLSAgZWNobyAiVGhl IGNhY2hlICRERUJVR0lORk9EX0NBQ0hFX1BBVEgvMDEyMzQ1NjcvZGVidWdpbmZvIGlzIHJlYWRh YmxlIgotICBlcnIKLWZpCi0KLWJ5dGVjb3VudF9iZWZvcmU9YGN1cmwgLXMgaHR0cDovLzEyNy4w LjAuMTokUE9SVDEvbWV0cmljcyB8IGdyZXAgJ2h0dHBfcmVzcG9uc2VzX3RyYW5zZmVyX2J5dGVz X2NvdW50e2NvZGU9IjQwNCJ9J2AKLXRlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2lu Zm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gMDEyMzQ1NjcgfHwgdHJ1ZQotYnl0ZWNvdW50 X2FmdGVyPWBjdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL21ldHJpY3MgfCBncmVwICdo dHRwX3Jlc3BvbnNlc190cmFuc2Zlcl9ieXRlc19jb3VudHtjb2RlPSI0MDQifSdgCi1pZiBbICIk Ynl0ZWNvdW50X2JlZm9yZSIgIT0gIiRieXRlY291bnRfYWZ0ZXIiIF07IHRoZW4KLSAgZWNobyAi aHR0cF9yZXNwb25zZXNfdHJhbnNmZXJfYnl0ZXNfY291bnR7Y29kZT0iNDA0In0gaGFzIGNoYW5n ZWQuIgotICBlcnIKLWZpCi0KLSMgc2V0IGNhY2hlX21pc3NfcyB0byAwIGFuZCBzbGVlcCAxIHRv IG1ha2UgdGhlIG10aW1lIGV4cGlyZS4KLWVjaG8gMCA+ICRERUJVR0lORk9EX0NBQ0hFX1BBVEgv Y2FjaGVfbWlzc19zCi1zbGVlcCAxCi1ieXRlY291bnRfYmVmb3JlPWBjdXJsIC1zIGh0dHA6Ly8x MjcuMC4wLjE6JFBPUlQxL21ldHJpY3MgfCBncmVwICdodHRwX3Jlc3BvbnNlc190cmFuc2Zlcl9i eXRlc19jb3VudHtjb2RlPSI0MDQifSdgCi10ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVi dWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdpbmZvIDAxMjM0NTY3IHx8IHRydWUKLWJ5dGVj b3VudF9hZnRlcj1gY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMS9tZXRyaWNzIHwgZ3Jl cCAnaHR0cF9yZXNwb25zZXNfdHJhbnNmZXJfYnl0ZXNfY291bnR7Y29kZT0iNDA0In0nYAotaWYg WyAiJGJ5dGVjb3VudF9iZWZvcmUiID09ICIkYnl0ZWNvdW50X2FmdGVyIiBdOyB0aGVuCi0gIGVj aG8gImh0dHBfcmVzcG9uc2VzX3RyYW5zZmVyX2J5dGVzX2NvdW50e2NvZGU9IjQwNCJ9IHNob3Vs ZCBiZSBpbmNyZW1lbnRlZC4iCi0gIGVycgotZmkKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIFRlc3Qg d2hldGhlciBkZWJ1Z2luZm9kLWZpbmQgaXMgYWJsZSB0byBmZXRjaCB0aG9zZSBmaWxlcy4KLXJt IC1yZiAkREVCVUdJTkZPRF9DQUNIRV9QQVRIICMgY2xlYW4gaXQgZnJvbSBwcmV2aW91cyB0ZXN0 cwotZmlsZW5hbWU9YHRlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVn aW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESURgCi1jbXAgJGZpbGVuYW1lIEYvcCtyJW9cJGcu ZGVidWcKLWlmIFsgLXcgJGZpbGVuYW1lIF07IHRoZW4KLSAgICBlY2hvICJjYWNoZSBmaWxlIHdy aXRhYmxlLCBib28iCi0gICAgZXJyCi1maQotCi1maWxlbmFtZT1gdGVzdHJ1biAke2Fic190b3Bf YnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGV4ZWN1dGFibGUgRi9wK3Ilb1xc JGdgCi1jbXAgJGZpbGVuYW1lIEYvcCtyJW9cJGcKLQotIyByYXcgc291cmNlIGZpbGVuYW1lCi1m aWxlbmFtZT1gdGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZv ZC1maW5kIHNvdXJjZSAkQlVJTERJRCAke1BXRH0vZm9vYmFyLy8vLi8uLi9wK3Ilb1xcJGcuY2AK LWNtcCAkZmlsZW5hbWUgICR7UFdEfS9wK3Ilb1wkZy5jCi0KLSMgYW5kIGFsc28gdGhlIGNhbm9u aWNhbGl6ZWQgb25lCi1maWxlbmFtZT1gdGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVn aW5mb2QvZGVidWdpbmZvZC1maW5kIHNvdXJjZSAkQlVJTERJRCAke1BXRH0vcCtyJW9cXCRnLmNg Ci1jbXAgJGZpbGVuYW1lICAke1BXRH0vcCtyJW9cJGcuYwotCi0KLSMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwot Ci0jIFRlc3Qgd2hldGhlciB0aGUgY2FjaGUgZGVmYXVsdCBsb2NhdGlvbnMgYXJlIGNvcnJlY3QK LQotbWtkaXIgdG1waG9tZQotCi0jICRIT01FLy5jYWNoZSBzaG91bGQgYmUgY3JlYXRlZC4KLXRl c3RydW4gZW52IEhPTUU9JFBXRC90bXBob21lIFhER19DQUNIRV9IT01FPSBERUJVR0lORk9EX0NB Q0hFX1BBVEg9ICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQg ZGVidWdpbmZvICRCVUlMRElECi1pZiBbICEgLWYgJFBXRC90bXBob21lLy5jYWNoZS9kZWJ1Z2lu Zm9kX2NsaWVudC8kQlVJTERJRC9kZWJ1Z2luZm8gXTsgdGhlbgotICBlY2hvICJjb3VsZCBub3Qg ZmluZCBjYWNoZSBpbiAkUFdEL3RtcGhvbWUvLmNhY2hlIgotICBlcnIKLWZpCi0KLSMgJEhPTUUv LmNhY2hlIHNob3VsZCBiZSBmb3VuZC4KLXRlc3RydW4gZW52IEhPTUU9JFBXRC90bXBob21lIFhE R19DQUNIRV9IT01FPSBERUJVR0lORk9EX0NBQ0hFX1BBVEg9ICR7YWJzX3RvcF9idWlsZGRpcn0v ZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZXhlY3V0YWJsZSAkQlVJTERJRAotaWYgWyAhIC1m ICRQV0QvdG1waG9tZS8uY2FjaGUvZGVidWdpbmZvZF9jbGllbnQvJEJVSUxESUQvZXhlY3V0YWJs ZSBdOyB0aGVuCi0gIGVjaG8gImNvdWxkIG5vdCBmaW5kIGNhY2hlIGluICRQV0QvdG1waG9tZS8u Y2FjaGUiCi0gIGVycgotZmkKLQotIyAkWERHX0NBQ0hFX0hPTUUgc2hvdWxkIHRha2UgcHJpb3Jp dHkgb3ZlciAkSE9NRS5jYWNoZS4KLXRlc3RydW4gZW52IEhPTUU9JFBXRC90bXBob21lIFhER19D QUNIRV9IT01FPSRQV0QvdG1weGRnIERFQlVHSU5GT0RfQ0FDSEVfUEFUSD0gJHthYnNfdG9wX2J1 aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESUQKLWlm IFsgISAtZiAkUFdEL3RtcHhkZy9kZWJ1Z2luZm9kX2NsaWVudC8kQlVJTERJRC9kZWJ1Z2luZm8g XTsgdGhlbgotICBlY2hvICJjb3VsZCBub3QgZmluZCBjYWNoZSBpbiAkUFdEL3RtcHhkZy8iCi0g IGVycgotZmkKLQotIyBBIGNhY2hlIGF0IHRoZSBvbGQgZGVmYXVsdCBsb2NhdGlvbiAoJEhPTUUv LmRlYnVnaW5mb2RfY2xpZW50X2NhY2hlKSBzaG91bGQgdGFrZQotIyBwcmlvcml0eSBvdmVyICRI T01FLy5jYWNoZSwgJFhER19DQUNIRV9IT01FLgotY3AgLXZyICRERUJVR0lORk9EX0NBQ0hFX1BB VEggdG1waG9tZS8uZGVidWdpbmZvZF9jbGllbnRfY2FjaGUgfHwgdHJ1ZQotIyB8fHRydWUgaXMg Zm9yIHRvbGVyYXRpbmcgZXJyb3JzLCBzdWNoIGEgdmFsZ3JpbmQgb3Igc29tZXRoaW5nIGVsc2UK LSMgICAgICAgIGxlYXZpbmcgMDAwLXBlcm0gZmlsZXMgaW4gdGhlcmUKLQotIyBBZGQgYSBmaWxl IHRoYXQgZG9lc24ndCBleGlzdCBpbiAkSE9NRS8uY2FjaGUsICRYREdfQ0FDSEVfSE9NRS4KLW1r ZGlyIHRtcGhvbWUvLmRlYnVnaW5mb2RfY2xpZW50X2NhY2hlL2RlYWRiZWVmCi1lY2hvIEVMRi4u LiA+IHRtcGhvbWUvLmRlYnVnaW5mb2RfY2xpZW50X2NhY2hlL2RlYWRiZWVmL2RlYnVnaW5mbwot ZmlsZW5hbWU9YHRlc3RydW4gZW52IEhPTUU9JFBXRC90bXBob21lIFhER19DQUNIRV9IT01FPSRQ V0QvdG1weGRnIERFQlVHSU5GT0RfQ0FDSEVfUEFUSD0gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1 Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gZGVhZGJlZWZgCi1jbXAgJGZpbGVuYW1l IHRtcGhvbWUvLmRlYnVnaW5mb2RfY2xpZW50X2NhY2hlL2RlYWRiZWVmL2RlYnVnaW5mbwotCi0j ICRERUJVR0lORk9fQ0FDSEVfUEFUSCBzaG91bGQgdGFrZSBwcmlvcml0eSBvdmVyIGFsbCBlbHNl LgotdGVzdHJ1biBlbnYgSE9NRT0kUFdEL3RtcGhvbWUgWERHX0NBQ0hFX0hPTUU9JFBXRC90bXB4 ZGcgREVCVUdJTkZPRF9DQUNIRV9QQVRIPSRQV0QvdG1wY2FjaGUgJHthYnNfdG9wX2J1aWxkZGly fS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESUQKLWlmIFsgISAt ZiAkUFdEL3RtcGNhY2hlLyRCVUlMRElEL2RlYnVnaW5mbyBdOyB0aGVuCi0gIGVjaG8gImNvdWxk IG5vdCBmaW5kIGNhY2hlIGluICRQV0QvdG1wY2FjaGUvIgotICBlcnIKLWZpCi0KLSMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwotCi0jIEFkZCBhcnRpZmFjdHMgdG8gdGhlIHNlYXJjaCBwYXRocyBhbmQgdGVzdCB3 aGV0aGVyIGRlYnVnaW5mb2QgZmluZHMgdGhlbSB3aGlsZSBhbHJlYWR5IHJ1bm5pbmcuCi0KLSMg QnVpbGQgYW5vdGhlciwgbm9uLXN0cmlwcGVkIGJpbmFyeQotZWNobyAiaW50IG1haW4oKSB7IHJl dHVybiAwOyB9IiA+ICR7UFdEfS9wcm9nMi5jCi10ZW1wZmlsZXMgcHJvZzIuYwotZ2NjIC1XbCwt LWJ1aWxkLWlkIC1nIC1vIHByb2cyICR7UFdEfS9wcm9nMi5jCi1CVUlMRElEMj1gZW52IExEX0xJ QlJBUllfUEFUSD0kbGRwYXRoICR7YWJzX2J1aWxkZGlyfS8uLi9zcmMvcmVhZGVsZiBcCi0gICAg ICAgICAgLWEgcHJvZzIgfCBncmVwICdCdWlsZCBJRCcgfCBjdXQgLWQgJyAnIC1mIDdgCi0KLW12 IHByb2cyIEYKLWtpbGwgLVVTUjEgJFBJRDEKLSMgTm93IHRoZXJlIHNob3VsZCBiZSAzIGZpbGVz IGluIHRoZSBpbmRleAotd2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3RvdGFse3JvbGU9 InRyYXZlcnNlIn0nIDMKLXdhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya19wZW5kaW5ne3Jv bGU9InNjYW4ifScgMAotd2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF9idXN5e3JvbGU9InNjYW4i fScgMAotY3AgJERCICREQi5iYWNrdXAKLXRlbXBmaWxlcyAkREIuYmFja3VwCi0jIFJlcnVuIHNh bWUgdGVzdHMgZm9yIHRoZSBwcm9nMiBiaW5hcnkKLWZpbGVuYW1lPWB0ZXN0cnVuICR7YWJzX3Rv cF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgLXYgZGVidWdpbmZvICRCVUlM RElEMiAyPnZsb2dgCi1jbXAgJGZpbGVuYW1lIEYvcHJvZzIKLWNhdCB2bG9nCi1ncmVwIC1xIFBy b2dyZXNzIHZsb2cKLWdyZXAgLXEgRG93bmxvYWRlZC5mcm9tIHZsb2cKLXRlbXBmaWxlcyB2bG9n Ci1maWxlbmFtZT1gdGVzdHJ1biBlbnYgREVCVUdJTkZPRF9QUk9HUkVTUz0xICR7YWJzX3RvcF9i dWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZXhlY3V0YWJsZSAkQlVJTERJRDIg Mj52bG9nMmAKLWNtcCAkZmlsZW5hbWUgRi9wcm9nMgotY2F0IHZsb2cyCi1ncmVwIC1xICdEb3du bG9hZGluZy4qaHR0cCcgdmxvZzIKLXRlbXBmaWxlcyB2bG9nMgotZmlsZW5hbWU9YHRlc3RydW4g JHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBzb3VyY2UgJEJV SUxESUQyICR7UFdEfS9wcm9nMi5jYAotY21wICRmaWxlbmFtZSAke1BXRH0vcHJvZzIuYwotCi1j cCAtcnZwICR7YWJzX3NyY2Rpcn0vZGVidWdpbmZvZC1ycG1zIFIKLWlmIFsgIiR6c3RkIiA9ICJm YWxzZSIgXTsgdGhlbiAgIyBudWtlIHRoZSB6c3RkIGZlZG9yYSAzMSBvbmVzCi0gICAgcm0gLXZy ZiBSL2RlYnVnaW5mb2QtcnBtcy9mZWRvcmEzMQotZmkKLQotY3AgLXJ2cCAke2Fic19zcmNkaXJ9 L2RlYnVnaW5mb2QtdGFycyBaCi1raWxsIC1VU1IxICRQSUQxCi0jIFdhaXQgdGlsbCBib3RoIGZp bGVzIGFyZSBpbiB0aGUgaW5kZXggYW5kIHNjYW4vaW5kZXggZnVsbHkgZmluaXNoZWQKLXdhaXRf cmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9JyA0Ci13YWl0 X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2FuIn0nIDAKLXdhaXRf cmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKLQotIyBBbGwgcnBtcyBu ZWVkIHRvIGJlIGluIHRoZSBpbmRleCwgZXhjZXB0IHRoZSBkdW1teSBwZXJtaXNzaW9uLTAwMCBv bmUKLXJwbXM9JChmaW5kIFIgLW5hbWUgXCpycG0gfCBncmVwIC12IG5vdGhpbmcgfCB3YyAtbCkK LXdhaXRfcmVhZHkgJFBPUlQxICdzY2FubmVkX2ZpbGVzX3RvdGFse3NvdXJjZT0iLnJwbSBhcmNo aXZlIn0nICRycG1zCi10eHo9JChmaW5kIFogLW5hbWUgXCp0YXIueHogfCB3YyAtbCkKLXdhaXRf cmVhZHkgJFBPUlQxICdzY2FubmVkX2ZpbGVzX3RvdGFse3NvdXJjZT0iLnRhci54eiBhcmNoaXZl In0nICR0eHoKLXRiMj0kKGZpbmQgWiAtbmFtZSBcKnRhci5iejIgfCB3YyAtbCkKLXdhaXRfcmVh ZHkgJFBPUlQxICdzY2FubmVkX2ZpbGVzX3RvdGFse3NvdXJjZT0iLnRhci5iejIgYXJjaGl2ZSJ9 JyAkdGIyCi0KLWtpbGwgLVVTUjEgJFBJRDEgICMgdHdvIGhpdHMgb2YgU0lHVVNSMSBtYXkgYmUg bmVlZGVkIHRvIHJlc29sdmUgLmRlYnVnLT5kd3otPnNyZWZzCi0jIFdhaXQgdGlsbCBib3RoIGZp bGVzIGFyZSBpbiB0aGUgaW5kZXggYW5kIHNjYW4vaW5kZXggZnVsbHkgZmluaXNoZWQKLXdhaXRf cmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9JyA1Ci13YWl0 X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2FuIn0nIDAKLXdhaXRf cmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKLQotIyBFeHBlY3QgYWxs IHNvdXJjZSBmaWxlcyBmb3VuZCBpbiB0aGUgcnBtcyAodGhleSBhcmUgYWxsIGNhbGxlZCBoZWxs by5jIDopCi0jIFdlIHdpbGwgbmVlZCB0byBleHRyYWN0IGFsbCBycG1zIChpbiB0aGVpciBvd24g ZGlyZWN0b3J5KSBhbmQgY291bGQgYWxsCi0jIHNvdXJjZXMgcmVmZXJlbmNlZCBpbiB0aGUgLmRl YnVnIGZpbGVzLgotbWtkaXIgZXh0cmFjdGVkCi1jZCBleHRyYWN0ZWQKLXN1YmRpcj0wOwotbmV3 cnBtcz0kKGZpbmQgLi4vUiAtbmFtZSBcKlwucnBtIHwgZ3JlcCAtdiBub3RoaW5nKQotZm9yIGkg aW4gJG5ld3JwbXM7IGRvCi0gICAgc3ViZGlyPSRbJHN1YmRpcisxXTsKLSAgICBta2RpciAkc3Vi ZGlyOwotICAgIGNkICRzdWJkaXI7Ci0gICAgbHMgLWxhaCAuLi8kaQotICAgIHJwbTJjcGlvIC4u LyRpIHwgY3BpbyAtaXZkOwotICAgIGNkIC4uOwotZG9uZQotc291cmNlZmlsZXM9JChmaW5kIC1u YW1lIFwqXFwuZGVidWcgXAotCSAgICAgIHwgZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoIHhh cmdzIFwKLQkJJHthYnNfdG9wX2J1aWxkZGlyfS9zcmMvcmVhZGVsZiAtLWRlYnVnLWR1bXA9ZGVj b2RlZGxpbmUgXAotCSAgICAgIHwgZ3JlcCBtdGltZTogfCB3YyAtLWxpbmVzKQotY2QgLi4KLXJt IC1yZiBleHRyYWN0ZWQKLQotd2FpdF9yZWFkeSAkUE9SVDEgJ2ZvdW5kX3NvdXJjZXJlZnNfdG90 YWx7c291cmNlPSIucnBtIGFyY2hpdmUifScgJHNvdXJjZWZpbGVzCi0KLSMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IwotIyBQUjI3OTgzIGVuc3VyZSBubyBkdXBsaWNhdGUgdXJscyBhcmUgdXNlZCBpbiB3aGVuIHF1 ZXJ5aW5nIHNlcnZlcnMgZm9yIGZpbGVzCi1ybSAtcmYgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSCAj IGNsZWFuIGl0IGZyb20gcHJldmlvdXMgdGVzdHMKLWVudiBERUJVR0lORk9EX1VSTFM9Imh0dHA6 Ly8xMjcuMC4wLjE6JFBPUlQxIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxIGh0dHA6Ly8xMjcuMC4w LjE6JFBPUlQxIGh0dHA6MTI3LjAuMC4xOjc5OTkiIFwKLSBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0 aCAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIC12IGV4ZWN1 dGFibGUgJEJVSUxESUQyID4gdmxvZzQgMj4mMSB8fCB0cnVlCi10ZW1wZmlsZXMgdmxvZzQKLWlm IFsgJCggZ3JlcCAtYyAnZHVwbGljYXRlIHVybDogaHR0cDovLzEyNy4wLjAuMTonJFBPUlQxJy4q JyB2bG9nNCApIC1uZSAyIF07IHRoZW4KLSAgZWNobyAiRHVwbGljYXRlZCBzZXJ2ZXJzIHJlbWFp biI7Ci0gIGVycgotZmkKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBSdW4gYSBiYW5rIG9mIHF1ZXJpZXMg YWdhaW5zdCB0aGUgZGVidWdpbmZvZC1ycG1zIC8gZGVidWdpbmZvZC1kZWJzIHRlc3QgY2FzZXMK LQotYXJjaGl2ZV90ZXN0KCkgewotICAgIF9fQlVJTERJRD0kMQotICAgIF9fU09VUkNFUEFUSD0k MgotICAgIF9fU09VUkNFU0hBMT0kMwotICAgIAotICAgIGZpbGVuYW1lPWB0ZXN0cnVuICR7YWJz X3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZXhlY3V0YWJsZSAkX19C VUlMRElEYAotICAgIGJ1aWxkaWQ9YGVudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCAke2Fic19i dWlsZGRpcn0vLi4vc3JjL3JlYWRlbGYgXAotICAgICAgICAgICAgIC1hICRmaWxlbmFtZSB8IGdy ZXAgJ0J1aWxkIElEJyB8IGN1dCAtZCAnICcgLWYgN2AKLSAgICB0ZXN0ICRfX0JVSUxESUQgPSAk YnVpbGRpZAotICAgICMgY2hlY2sgdGhhdCB0aW1lc3RhbXBzIGFyZSBwbGF1c2libGUgLSBvbGRl ciB0aGFuIHRoZSBuZWFyLXByZXNlbnQgKHRtcGRpciBtdGltZSkKLSAgICB0ZXN0ICRmaWxlbmFt ZSAtb3QgYHB3ZGAKLQotICAgICMgcnVuIGFnYWluIHRvIGFzc3VyZSB0aGF0IGZkY2FjaGUgaXMg YmVpbmcgZW5qb3llZAotICAgIGZpbGVuYW1lPWB0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0v ZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZXhlY3V0YWJsZSAkX19CVUlMRElEYAotICAgIGJ1 aWxkaWQ9YGVudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCAke2Fic19idWlsZGRpcn0vLi4vc3Jj L3JlYWRlbGYgXAotICAgICAgICAgICAgIC1hICRmaWxlbmFtZSB8IGdyZXAgJ0J1aWxkIElEJyB8 IGN1dCAtZCAnICcgLWYgN2AKLSAgICB0ZXN0ICRfX0JVSUxESUQgPSAkYnVpbGRpZAotICAgIHRl c3QgJGZpbGVuYW1lIC1vdCBgcHdkYAotCi0gICAgZmlsZW5hbWU9YHRlc3RydW4gJHthYnNfdG9w X2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJF9fQlVJTERJ RGAKLSAgICBidWlsZGlkPWBlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNfYnVpbGRk aXJ9Ly4uL3NyYy9yZWFkZWxmIFwKLSAgICAgICAgICAgICAtYSAkZmlsZW5hbWUgfCBncmVwICdC dWlsZCBJRCcgfCBjdXQgLWQgJyAnIC1mIDdgCi0gICAgdGVzdCAkX19CVUlMRElEID0gJGJ1aWxk aWQKLSAgICB0ZXN0ICRmaWxlbmFtZSAtb3QgYHB3ZGAKLQotICAgIGlmIHRlc3QgIngkX19TT1VS Q0VQQVRIIiAhPSAieCI7IHRoZW4KLSAgICAgICAgZmlsZW5hbWU9YHRlc3RydW4gJHthYnNfdG9w X2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBzb3VyY2UgJF9fQlVJTERJRCAk X19TT1VSQ0VQQVRIYAotICAgICAgICBoYXNoPWBjYXQgJGZpbGVuYW1lIHwgc2hhMXN1bSB8IGF3 ayAne3ByaW50ICQxfSdgCi0gICAgICAgIHRlc3QgJF9fU09VUkNFU0hBMSA9ICRoYXNoCi0gICAg ICAgIHRlc3QgJGZpbGVuYW1lIC1vdCBgcHdkYAotICAgIGZpCi19Ci0KLQotIyBjb21tb24gc291 cmNlIGZpbGUgc2hhMQotU0hBPWY0YTFhODA2MmJlOTk4YWU5M2I4ZjFjZDc0NGEzOThjNmRlNmRi YjEKLSMgZmVkb3JhMzEKLWlmIFsgJHpzdGQgPSB0cnVlIF07IHRoZW4KLSAgICAjIGZlZG9yYTMx IHVzZXMgenN0ZCBjb21wcmVzc2lvbiBvbiBycG1zLCBvbGRlciBycG0yY3Bpby9saWJhcmNoaXZl IGNhbid0IGhhbmRsZSBpdAotICAgICMgYW5kIHdlJ3JlIG5vdCB1c2luZyB0aGUgZmFuY3kgLVog Jy5ycG09KHJwbTJjcGlvfHpzdGRjYXQpPCcgd29ya2Fyb3VuZCBpbiB0aGlzIHRlc3RzdWl0ZQot ICAgIGFyY2hpdmVfdGVzdCA0MjBlOWUzMzA4OTcxZjRiODE3Y2M1YmY4MzkyOGI0MWE2OTA5ZDg4 IC91c3Ivc3JjL2RlYnVnL2hlbGxvMy0xLjAtMi54ODZfNjQvZm9vYmFyLy8vLy4vLi4vaGVsbG8u YyAkU0hBCi0gICAgYXJjaGl2ZV90ZXN0IDg3YzA4ZDEyYzc4MTc0ZjEwODJiN2M4ODhiMzIzODIx OWIwZWIyNjUgL3Vzci9zcmMvZGVidWcvaGVsbG8zLTEuMC0yLng4Nl82NC8vL2Zvb2Jhci8uLy4u Ly9oZWxsby5jICRTSEEKLWZpCi0jIGZlZG9yYTMwCi1hcmNoaXZlX3Rlc3QgYzM2NzA4YTc4NjE4 ZDU5N2RlZTE1ZDBkYzk4OWYwOTNjYTVmOTEyMCAvdXNyL3NyYy9kZWJ1Zy9oZWxsbzItMS4wLTIu eDg2XzY0L2hlbGxvLmMgJFNIQQotYXJjaGl2ZV90ZXN0IDQxYTIzNmViNjY3YzM2MmExYzQxOTYw MThjYzQ1ODFlMDk3MjJiMWIgL3Vzci9zcmMvZGVidWcvaGVsbG8yLTEuMC0yLng4Nl82NC9oZWxs by5jICRTSEEKLSMgcmhlbDcKLWFyY2hpdmVfdGVzdCBiYzFmZWJmZDAzY2EwNWUwMzBmMGQyMDVm NzY1OWRiMjlmOGE0YjMwIC91c3Ivc3JjL2RlYnVnL2hlbGxvLTEuMC9oZWxsby5jICRTSEEKLWFy Y2hpdmVfdGVzdCBmMGFhMTViOGFiYTRmM2MyOGNhYzNjMmE3MzgwMWZlZmE2NDRhOWYyIC91c3Iv c3JjL2RlYnVnL2hlbGxvLTEuMC9oZWxsby5jICRTSEEKLSMgcmhlbDYKLWFyY2hpdmVfdGVzdCBi YmJmOTJlYmVlNTIyODMxMGUzOTg2MDljMjNjMmQ3ZDUzZjZlMmY5IC91c3Ivc3JjL2RlYnVnL2hl bGxvLTEuMC9oZWxsby5jICRTSEEKLWFyY2hpdmVfdGVzdCBkNDRkNDJjYmQ3ZDkxNWJjOTM4Yzgx MzMzYTIxZTM1NWE2MDIyZmI3IC91c3Ivc3JjL2RlYnVnL2hlbGxvLTEuMC9oZWxsby5jICRTSEEK LSMgYXJjaAotYXJjaGl2ZV90ZXN0IGNlZTEzYjJlYTUwNWE3ZjM3YmQyMGQyNzFjNmJjN2U1Zjhk MmRmY2IgL3Vzci9zcmMvZGVidWcvaGVsbG8uYyA3YTEzMzRlMDg2Yjk3ZTVmMTI0MDAzYTZjZmIz ZWQ3OTJkMTBjZGY0Ci0KLVJQTV9CVUlMRElEPWQ0NGQ0MmNiZDdkOTE1YmM5MzhjODEzMzNhMjFl MzU1YTYwMjJmYjcgIyBpbiByaGVsNi8gc3ViZGlyLCBmb3IgYSBsYXRlciB0ZXN0Ci0KLQotIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCi0KLSMgRHJvcCBzb21lIG9mIHRoZSBhcnRpZmFjdHMsIHJ1biBhIGdyb29t IGN5Y2xlOyBjb25maXJtIHRoYXQKLSMgZGVidWdpbmZvZCBoYXMgZm9yZ290dGVuIHRoZW0sIGJ1 dCByZW1lbWJlcnMgb3RoZXJzCi0KLXJtIC1yIFIvZGVidWdpbmZvZC1ycG1zL3JoZWw2LyoKLWtp bGwgLVVTUjIgJFBJRDEgICMgZ3Jvb20gY3ljbGUKLSMgMSBncm9vbSBjeWNsZSBhbHJlYWR5IHRv b2sgcGxhY2UgYXQvc29vbi1hZnRlciBzdGFydHVwLCBzbyAtVVNSMiBtYWtlcyAyCi13YWl0X3Jl YWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0iZ3Jvb20ifScgMgotIyBFeHBlY3Qg NCBycG1zIGNvbnRhaW5pbmcgMiBidWlsZGlkcyB0byBiZSBkZWxldGVkIGJ5IHRoZSBncm9vbQot d2FpdF9yZWFkeSAkUE9SVDEgJ2dyb29tZWRfdG90YWx7ZGVjaXNpb249InN0YWxlIn0nIDQKLQot cm0gLXJmICRERUJVR0lORk9EX0NBQ0hFX1BBVEggIyBjbGVhbiBpdCBmcm9tIHByZXZpb3VzIHRl c3RzCi0KLSMgdGhpcyBpcyBvbmUgb2YgdGhlIGJ1aWxkaWRzIGZyb20gdGhlIGdyb29tLWRlbGV0 ZWQgcnBtcwotdGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZv ZC1maW5kIGV4ZWN1dGFibGUgJFJQTV9CVUlMRElEICYmIGZhbHNlIHx8IHRydWUKLSMgYnV0IHRo aXMgb25lIHdhcyBub3QgZGVsZXRlZCBzbyBzaG91bGQgYmUgc3RpbGwgYXJvdW5kCi10ZXN0cnVu ICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZXhlY3V0YWJs ZSAkQlVJTERJRDIKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMgUFIyNjgxMDogTm93IHJlbmFtZSBz b21lIGZpbGVzIGluIHRoZSBSIGRpcmVjdG9yeSwgdGhlbiByZXNjYW4sIHNvCi0jIHRoZXJlIGFy ZSB0d28gY29waWVzIG9mIHRoZSBzYW1lIGJ1aWxkaWQgaW4gdGhlIGluZGV4LCBvbmUgZm9yIHRo ZQotIyBuby1sb25nZXItZXhpc3RpbmcgZmlsZSBuYW1lLCBhbmQgb25lIHVuZGVyIHRoZSBuZXcg bmFtZS4KLQotIyBydW4gYSBncm9vbSBjeWNsZSB0byBmb3JjZSBzZXJ2ZXIgdG8gZHJvcCBpdHMg ZmRjYWNoZQota2lsbCAtVVNSMiAkUElEMSAgIyBncm9vbSBjeWNsZQotd2FpdF9yZWFkeSAkUE9S VDEgJ3RocmVhZF93b3JrX3RvdGFse3JvbGU9Imdyb29tIn0nIDMKLSMgbW92ZSBpdCBhcm91bmQg YSBjb3VwbGUgb2YgdGltZXMgdG8gbWFrZSBpdCBsaWtlbHkgdG8gaGl0IGEgbm9uZXhpc3RlbnQg ZW50cnkgZHVyaW5nIGl0ZXJhdGlvbgotbXYgUi9kZWJ1Z2luZm9kLXJwbXMvcmhlbDcgUi9kZWJ1 Z2luZm9kLXJwbXMvcmhlbDdyZW5hbWVkCi1raWxsIC1VU1IxICRQSUQxICAjIHNjYW4gY3ljbGUK LXdhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9JyA2 Ci13YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2FuIn0nIDAK LXdhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKLW12IFIvZGVi dWdpbmZvZC1ycG1zL3JoZWw3cmVuYW1lZCBSL2RlYnVnaW5mb2QtcnBtcy9yaGVsN3JlbmFtZWQy Ci1raWxsIC1VU1IxICRQSUQxICAjIHNjYW4gY3ljbGUKLXdhaXRfcmVhZHkgJFBPUlQxICd0aHJl YWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9JyA3Ci13YWl0X3JlYWR5ICRQT1JUMSAndGhy ZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2FuIn0nIDAKLXdhaXRfcmVhZHkgJFBPUlQxICd0aHJl YWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKLW12IFIvZGVidWdpbmZvZC1ycG1zL3JoZWw3cmVuYW1l ZDIgUi9kZWJ1Z2luZm9kLXJwbXMvcmhlbDdyZW5hbWVkMwota2lsbCAtVVNSMSAkUElEMSAgIyBz Y2FuIGN5Y2xlCi13YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0idHJh dmVyc2UifScgOAotd2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3BlbmRpbmd7cm9sZT0i c2NhbiJ9JyAwCi13YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX2J1c3l7cm9sZT0ic2NhbiJ9JyAw Ci0KLSMgcmV0ZXN0IHJoZWw3Ci1hcmNoaXZlX3Rlc3QgYmMxZmViZmQwM2NhMDVlMDMwZjBkMjA1 Zjc2NTlkYjI5ZjhhNGIzMCAvdXNyL3NyYy9kZWJ1Zy9oZWxsby0xLjAvaGVsbG8uYyAkU0hBCi1h cmNoaXZlX3Rlc3QgZjBhYTE1YjhhYmE0ZjNjMjhjYWMzYzJhNzM4MDFmZWZhNjQ0YTlmMiAvdXNy L3NyYy9kZWJ1Zy9oZWxsby0xLjAvaGVsbG8uYyAkU0hBCi0KLWVncmVwICcobGliYy5lcnJvci4q cmhlbDcpfChiYzFmZWJmZDAzY2EpfChmMGFhMTViOGFiYSknIHZsb2ckUE9SVDEKLQotIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCi0jIyBQUjI1OTc4Ci0jIEVuc3VyZSB0aGF0IHRoZSBmZGNhY2hlIG9wdGlvbnMg YXJlIHdvcmtpbmcuCi1ncmVwICJwcmVmZXRjaCBmZHMiIHZsb2ckUE9SVDEKLWdyZXAgInByZWZl dGNoIG1icyIgdmxvZyRQT1JUMQotZ3JlcCAiZmRjYWNoZSBmZHMiIHZsb2ckUE9SVDEKLWdyZXAg ImZkY2FjaGUgbWJzIiB2bG9nJFBPUlQxCi0jIHNlYXJjaCB0aGUgdmxvZyB0byBmaW5kIHdoYXQg bWV0cmljIGNvdW50cyBzaG91bGQgYmUgYW5kIGNoZWNrIHRoZSBjb3JyZWN0IG1ldHJpY3MKLSMg d2VyZSBpbmNyaW1lbnRlZAotd2FpdF9yZWFkeSAkUE9SVDEgJ2ZkY2FjaGVfb3BfY291bnR7b3A9 ImVucXVldWUifScgJCggZ3JlcCAtYyAnaW50ZXJuZWQuKmZyb250PTEnIHZsb2ckUE9SVDEgKQot d2FpdF9yZWFkeSAkUE9SVDEgJ2ZkY2FjaGVfb3BfY291bnR7b3A9ImV2aWN0In0nICQoIGdyZXAg LWMgJ2V2aWN0ZWQgYT0uKicgdmxvZyRQT1JUMSApCi13YWl0X3JlYWR5ICRQT1JUMSAnZmRjYWNo ZV9vcF9jb3VudHtvcD0icHJlZmV0Y2hfZW5xdWV1ZSJ9JyAkKCBncmVwIC1jICdpbnRlcm5lZC4q ZnJvbnQ9MCcgdmxvZyRQT1JUMSApCi13YWl0X3JlYWR5ICRQT1JUMSAnZmRjYWNoZV9vcF9jb3Vu dHtvcD0icHJlZmV0Y2hfZXZpY3QifScgJCggZ3JlcCAtYyAnZXZpY3RlZCBmcm9tIHByZWZldGNo IGE9Lipmcm9udD0wJyB2bG9nJFBPUlQxIHx8IHRydWUgKQotIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMg RmVkZXJhdGlvbiBtb2RlCi0KLSMgZmluZCBhbm90aGVyIHVudXNlZCBwb3J0Ci13aGlsZSB0cnVl OyBkbwotICAgIFBPUlQyPWBleHByICcoJyAkUkFORE9NICUgMTAwMCAnKScgKyA5MDAwYAotICAg IHNzIC1hdG4gfCBmZ3JlcCAiOiRQT1JUMiIgfHwgYnJlYWsKLWRvbmUKLQotZXhwb3J0IERFQlVH SU5GT0RfQ0FDSEVfUEFUSD0ke1BXRH0vLmNsaWVudF9jYWNoZTIKLW1rZGlyIC1wICRERUJVR0lO Rk9EX0NBQ0hFX1BBVEgKLSMgTkI6IGluaGVyaXRzIHRoZSBERUJVR0lORk9EX1VSTFMgdG8gdGhl IGZpcnN0IHNlcnZlcgotIyBOQjogcnVuIGluIC1MIHN5bWxpbmstZm9sbG93aW5nIG1vZGUgZm9y IHRoZSBMIHN1YmRpcgotZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoICR7YWJzX2J1aWxkZGly fS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QgJFZFUkJPU0UgLUYgLVUgLWQgJHtEQn1fMiAtcCAk UE9SVDIgLUwgTCBEID4gdmxvZyRQT1JUMiAyPiYxICYKLVBJRDI9JCEKLXRlbXBmaWxlcyB2bG9n JFBPUlQyCi1lcnJmaWxlcyB2bG9nJFBPUlQyCi10ZW1wZmlsZXMgJHtEQn1fMgotd2FpdF9yZWFk eSAkUE9SVDIgJ3JlYWR5JyAxCi13YWl0X3JlYWR5ICRQT1JUMiAndGhyZWFkX3dvcmtfdG90YWx7 cm9sZT0idHJhdmVyc2UifScgMQotd2FpdF9yZWFkeSAkUE9SVDIgJ3RocmVhZF93b3JrX3BlbmRp bmd7cm9sZT0ic2NhbiJ9JyAwCi13YWl0X3JlYWR5ICRQT1JUMiAndGhyZWFkX2J1c3l7cm9sZT0i c2NhbiJ9JyAwCi0KLXdhaXRfcmVhZHkgJFBPUlQyICd0aHJlYWRfYnVzeXtyb2xlPSJodHRwLWJ1 aWxkaWQifScgMAotd2FpdF9yZWFkeSAkUE9SVDIgJ3RocmVhZF9idXN5e3JvbGU9Imh0dHAtbWV0 cmljcyJ9JyAxCi0KLSMgaGF2ZSBjbGllbnRzIGNvbnRhY3QgdGhlIG5ldyBzZXJ2ZXIKLWV4cG9y dCBERUJVR0lORk9EX1VSTFM9aHR0cDovLzEyNy4wLjAuMTokUE9SVDIKLQotaWYgdHlwZSBic2R0 YXIgMj4vZGV2L251bGw7IHRoZW4KLSAgICAjIGNvcHkgaW4gdGhlIGRlYiBmaWxlcwotICAgIGNw IC1ydnAgJHthYnNfc3JjZGlyfS9kZWJ1Z2luZm9kLWRlYnMvKmRlYiBECi0gICAga2lsbCAtVVNS MSAkUElEMgotICAgIHdhaXRfcmVhZHkgJFBPUlQyICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0 cmF2ZXJzZSJ9JyAyCi0gICAgd2FpdF9yZWFkeSAkUE9SVDIgJ3RocmVhZF93b3JrX3BlbmRpbmd7 cm9sZT0ic2NhbiJ9JyAwCi0gICAgd2FpdF9yZWFkeSAkUE9SVDIgJ3RocmVhZF9idXN5e3JvbGU9 InNjYW4ifScgMAotCi0gICAgIyBBbGwgZGVicyBuZWVkIHRvIGJlIGluIHRoZSBpbmRleAotICAg IGRlYnM9JChmaW5kIEQgLW5hbWUgXCouZGViIHwgd2MgLWwpCi0gICAgd2FpdF9yZWFkeSAkUE9S VDIgJ3NjYW5uZWRfZmlsZXNfdG90YWx7c291cmNlPSIuZGViIGFyY2hpdmUifScgYGV4cHIgJGRl YnNgCi0gICAgZGRlYnM9JChmaW5kIEQgLW5hbWUgXCouZGRlYiB8IHdjIC1sKQotICAgIHdhaXRf cmVhZHkgJFBPUlQyICdzY2FubmVkX2ZpbGVzX3RvdGFse3NvdXJjZT0iLmRkZWIgYXJjaGl2ZSJ9 JyBgZXhwciAkZGRlYnNgCi0KLSAgICAjIHVidW50dQotICAgIGFyY2hpdmVfdGVzdCBmMTdhMjli NWEyNWJkNDk2MDUzMWQ4MmFhNmIwN2M4YWJlODRmYTY2ICIiICIiCi1maQotCi1ybSAtcmYgJERF QlVHSU5GT0RfQ0FDSEVfUEFUSAotdGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5m b2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAkQlVJTERJRAotCi0jIHNlbmQgYSByZXF1ZXN0 IHRvIHN0cmVzcyBYRkYgYW5kIFVzZXItQWdlbnQgZmVkZXJhdGlvbiByZWxheTsKLSMgd2UnbGwg Z3JlcCBmb3IgdGhlIHR3byBwYXR0ZXJucyBpbiB2bG9nJFBPUlQxCi1jdXJsIC1zIC1IICdVc2Vy LUFnZW50OiBURVNUQ1VSTCcgLUggJ1gtRm9yd2FyZGVkLUZvcjogVEVTVFhGRicgJERFQlVHSU5G T0RfVVJMUy9idWlsZGlkL2RlYWRkZWFkYmVlZjAwMDAwMDAwL2RlYnVnaW5mbyAtbyAvZGV2L251 bGwgfHwgdHJ1ZQotCi1ncmVwIFVBOlRFU1RDVVJMIHZsb2ckUE9SVDEKLWdyZXAgWEZGOlRFU1RY RkYgdmxvZyRQT1JUMQotCi0KLSMgY29uZmlybSB0aGF0IGZpcnN0IHNlcnZlciBjYW4ndCByZXNv bHZlIHN5bWxpbmtlZCBpbmZvIGluIEwvIGJ1dCBzZWNvbmQgY2FuCi1CVUlMRElEPWBlbnYgTERf TElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9Ly4uL3NyYy9yZWFkZWxmIFwKLSAg ICAgICAgIC1hIEwvZm9vIHwgZ3JlcCAnQnVpbGQgSUQnIHwgY3V0IC1kICcgJyAtZiA3YAotZmls ZSBML2ZvbwotZmlsZSAtTCBML2ZvbwotZXhwb3J0IERFQlVHSU5GT0RfVVJMUz1odHRwOi8vMTI3 LjAuMC4xOiRQT1JUMQotcm0gLXJmICRERUJVR0lORk9EX0NBQ0hFX1BBVEgKLXRlc3RydW4gJHth YnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJV SUxESUQgJiYgZmFsc2UgfHwgdHJ1ZQotcm0gLWYgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSC8kQlVJ TERJRC9kZWJ1Z2luZm8gIyBkcm9wIDAwMC1wZXJtIG5lZ2F0aXZlLWhpdCBmaWxlCi1leHBvcnQg REVCVUdJTkZPRF9VUkxTPWh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQyCi10ZXN0cnVuICR7YWJzX3Rv cF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdpbmZvICRCVUlMRElE Ci0KLSMgdGVzdCBhZ2FpbiB3aXRoIHNjaGVtZSBmcmVlIHVybAotZXhwb3J0IERFQlVHSU5GT0Rf VVJMUz0xMjcuMC4wLjE6JFBPUlQxCi1ybSAtcmYgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSAotdGVz dHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVn aW5mbyAkQlVJTERJRCAmJiBmYWxzZSB8fCB0cnVlCi1ybSAtZiAkREVCVUdJTkZPRF9DQUNIRV9Q QVRILyRCVUlMRElEL2RlYnVnaW5mbyAjIGRyb3AgMDAwLXBlcm0gbmVnYXRpdmUtaGl0IGZpbGUK LWV4cG9ydCBERUJVR0lORk9EX1VSTFM9MTI3LjAuMC4xOiRQT1JUMgotdGVzdHJ1biAke2Fic190 b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAkQlVJTERJ RAotCi0jIHRlc3QgcGFyYWxsZWwgcXVlcmllcyBpbiBjbGllbnQKLWV4cG9ydCBERUJVR0lORk9E X0NBQ0hFX1BBVEg9JHtQV0R9Ly5jbGllbnRfY2FjaGUzCi1ta2RpciAtcCAkREVCVUdJTkZPRF9D QUNIRV9QQVRICi1leHBvcnQgREVCVUdJTkZPRF9VUkxTPSJCQUQgaHR0cDovLzEyNy4wLjAuMTok UE9SVDEgMTI3LjAuMC4xOiRQT1JUMSBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMiBETkUiCi0KLXRl c3RydW4gJHthYnNfYnVpbGRkaXJ9L2RlYnVnaW5mb2RfYnVpbGRfaWRfZmluZCAtZSBGL3Byb2cy IDEKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMgRmV0Y2ggc29tZSBtZXRyaWNzCi1jdXJsIC1zIGh0 dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL2JhZGFwaQotY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQ T1JUMS9tZXRyaWNzCi1jdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQyL21ldHJpY3MKLWN1 cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDEvbWV0cmljcyB8IGdyZXAgLXEgJ2h0dHBfcmVz cG9uc2VzX3RvdGFsLipyZXN1bHQuKmVycm9yJwotY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQ T1JUMS9tZXRyaWNzIHwgZ3JlcCAtcSAnaHR0cF9yZXNwb25zZXNfdG90YWwuKnJlc3VsdC4qZmRj YWNoZScKLWN1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDIvbWV0cmljcyB8IGdyZXAgLXEg J2h0dHBfcmVzcG9uc2VzX3RvdGFsLipyZXN1bHQuKnVwc3RyZWFtJwotY3VybCAtcyBodHRwOi8v MTI3LjAuMC4xOiRQT1JUMS9tZXRyaWNzIHwgZ3JlcCAnaHR0cF9yZXNwb25zZXNfZHVyYXRpb25f bWlsbGlzZWNvbmRzX2NvdW50JwotY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMS9tZXRy aWNzIHwgZ3JlcCAnaHR0cF9yZXNwb25zZXNfZHVyYXRpb25fbWlsbGlzZWNvbmRzX3N1bScKLWN1 cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDEvbWV0cmljcyB8IGdyZXAgJ2h0dHBfcmVzcG9u c2VzX3RyYW5zZmVyX2J5dGVzX2NvdW50JwotY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JU MS9tZXRyaWNzIHwgZ3JlcCAnaHR0cF9yZXNwb25zZXNfdHJhbnNmZXJfYnl0ZXNfc3VtJwotY3Vy bCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMS9tZXRyaWNzIHwgZ3JlcCAnZmRjYWNoZV8nCi1j dXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL21ldHJpY3MgfCBncmVwICdlcnJvcl9jb3Vu dCcKLWN1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDEvbWV0cmljcyB8IGdyZXAgJ3RyYXZl cnNlZF90b3RhbCcKLWN1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDEvbWV0cmljcyB8IGdy ZXAgJ3NjYW5uZWRfYnl0ZXNfdG90YWwnCi0KLSMgQW5kIGdlbmVyYXRlIGEgZmV3IGVycm9ycyBp bnRvIHRoZSBzZWNvbmQgZGVidWdpbmZvZCdzIGxvZ3MsIGZvciBhbmFseXNpcyBqdXN0IGJlbG93 Ci1jdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQyL2JhZGFwaSA+IC9kZXYvbnVsbCB8fCB0 cnVlCi1jdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQyL2J1aWxkaWQvZGVhZGJlZWYvZGVi dWdpbmZvID4gL2Rldi9udWxsIHx8IHRydWUgIAotIyBOQjogdGhpcyBlcnJvciBpcyB1c2VkIHRv IHNlZWQgdGhlIDQwNCBmYWlsdXJlIGZvciB0aGUgc3Vydml2ZS00MDQgdGVzdHMKLQotIyBDb25m aXJtIGJhZCBhcnRpZmFjdCB0eXBlcyBhcmUgcmVqZWN0ZWQgd2l0aG91dCBsZWF2aW5nIHRyYWNl Ci1jdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQyL2J1aWxkaWQvZGVhZGJlZWYvYmFkdHlw ZSA+IC9kZXYvbnVsbCB8fCB0cnVlCi0oY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMi9t ZXRyaWNzIHwgZ3JlcCAnYmFkdHlwZScpICYmIGZhbHNlCi0KLSMgRElTQUJMRSBWQUxHUklORCBj aGVja2luZyBiZWNhdXNlIHZhbGdyaW5kIG1pZ2h0IHVzZSBkZWJ1Z2luZm9kIGNsaWVudAotIyBy ZXF1ZXN0cyBpdHNlbGYsIGNhdXNpbmcgY29uZnVzaW9uIGFib3V0IHdobyBwdXQgd2hhdCBpbiB0 aGUgY2FjaGUuCi0jIEl0IHN0YXlzIGRpc2FibGVkIHRpbGwgdGhlIGVuZCBvZiB0aGlzIHRlc3Qu Ci11bnNldCBWQUxHUklORF9DTUQKLQotIyBDb25maXJtIHRoYXQgcmV1c2VkIGN1cmwgY29ubmVj dGlvbnMgc3Vydml2ZSA0MDQgZXJyb3JzLgotIyBUaGUgcm0ncyBmb3JjZSBhbiB1bmNhY2hlZCBm ZXRjaAotcm0gLWYgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSC8kQlVJTERJRC9kZWJ1Z2luZm8gLmNs aWVudF9jYWNoZSovJEJVSUxESUQvZGVidWdpbmZvCi10ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRp cn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdpbmZvICRCVUlMRElECi1ybSAtZiAk REVCVUdJTkZPRF9DQUNIRV9QQVRILyRCVUlMRElEL2RlYnVnaW5mbyAuY2xpZW50X2NhY2hlKi8k QlVJTERJRC9kZWJ1Z2luZm8KLXRlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9k L2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESUQKLXRlc3RydW4gJHthYnNfdG9wX2J1 aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESUQKLXRl c3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1 Z2luZm8gJEJVSUxESUQKLXJtIC1mICRERUJVR0lORk9EX0NBQ0hFX1BBVEgvJEJVSUxESUQvZGVi dWdpbmZvIC5jbGllbnRfY2FjaGUqLyRCVUlMRElEL2RlYnVnaW5mbwotdGVzdHJ1biAke2Fic190 b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAkQlVJTERJ RAotCi0jIENvbmZpcm0gdGhhdCBzb21lIGRlYnVnaW5mb2QgY2xpZW50IHBvb2xzIGFyZSBiZWlu ZyB1c2VkCi1jdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQyL21ldHJpY3MgfCBncmVwICdk Y19wb29sX29wLipyZXVzZScKLQotIyBUcmlnZ2VyIGEgZmxvb2Qgb2YgcmVxdWVzdHMgYWdhaW5z dCB0aGUgc2FtZSBhcmNoaXZlIGNvbnRlbnQgZmlsZS4KLSMgVXNlIGEgZmlsZSB0aGF0IGhhc24n dCBiZWVuIHByZXZpb3VzbHkgZXh0cmFjdGVkIGluIHRvIG1ha2UgaXQKLSMgbGlrZWx5IHRoYXQg ZXZlbiB0aGlzIHRlc3QgZGVidWdpbmZvZCB3aWxsIGV4cGVyaWVuY2UgY29uY3VycmVuY3kKLSMg YW5kIGltcG9zZSBzb21lICJhZnRlci15b3UiIGRlbGF5cy4KLShmb3IgaSBpbiBgc2VxIDEwMGA7 IGRvCi0gICAgY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMS9idWlsZGlkLzg3YzA4ZDEy Yzc4MTc0ZjEwODJiN2M4ODhiMzIzODIxOWIwZWIyNjUvZXhlY3V0YWJsZSA+L2Rldi9udWxsICYK LSBkb25lOwotIHdhaXQpCi1jdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL21ldHJpY3Mg fCBncmVwICdodHRwX3Jlc3BvbnNlc19hZnRlcl95b3UuKicKLSMgSWYgd2UgY291bGQgZ3VhcmFu dGVlIHNvbWUgbWluaW11bSBudW1iZXIgb2Ygc2Vjb25kcyBvZiBDUFUgdGltZSwgd2UKLSMgY291 bGQgYXNzZXJ0IHRoYXQgdGhlIGFmdGVyX3lvdSBtZXRyaWNzIHNob3cgc29tZSBub256ZXJvIGFt b3VudCBvZgotIyB3YWl0aW5nLiAgQSBmZXcgaHVuZHJlZCBtcyBpcyB0eXBpY2FsIG9uIHRoaXMg ZGV2ZWxvcGVyJ3Mgd29ya3N0YXRpb24uCi0KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIENvcnJ1cHQg dGhlIHNxbGl0ZSBkYXRhYmFzZSBhbmQgZ2V0IGRlYnVnaW5mb2QgdG8gdHJpcCBhY3Jvc3MgaXRz IGVycm9ycwotCi1jdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL21ldHJpY3MgfCBncmVw ICdzcWxpdGUzLipyZXNldCcKLWxzIC1hbCAkREIKLWRkIGlmPS9kZXYvemVybyBvZj0kREIgYnM9 MSBjb3VudD0xCi1scyAtYWwgJERCCi0jIHRyaWdnZXIgc29tZSByYW5kb20gYWN0aXZpdHkgdGhh dCdzIFN1cmUgdG8gZ2V0IHNxbGl0ZTMgdXBzZXQKLWtpbGwgLVVTUjEgJFBJRDEKLXdhaXRfcmVh ZHkgJFBPUlQxICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9JyA5Ci13YWl0X3Jl YWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2FuIn0nIDAKLXdhaXRfcmVh ZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKLWtpbGwgLVVTUjIgJFBJRDEK LXdhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJncm9vbSJ9JyA0Ci1j dXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL2J1aWxkaWQvYmVlZmJlZWZiZWVmZDAwZGQw MGQvZGVidWdpbmZvID4gL2Rldi9udWxsIHx8IHRydWUKLWN1cmwgLXMgaHR0cDovLzEyNy4wLjAu MTokUE9SVDEvbWV0cmljcyB8IGdyZXAgJ2Vycm9yX2NvdW50LipzcWxpdGUnCi0KLSMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwotCi0jIFJ1biB0aGUgdGVzdHMgYWdhaW4gd2l0aG91dCB0aGUgc2VydmVycyBydW5u aW5nLiBUaGUgdGFyZ2V0IGZpbGUgc2hvdWxkCi0jIGJlIGZvdW5kIGluIHRoZSBjYWNoZS4KLQot a2lsbCAtSU5UICRQSUQxICRQSUQyCi13YWl0ICRQSUQxICRQSUQyCi1QSUQxPTAKLVBJRDI9MAot dGVtcGZpbGVzIC5kZWJ1Z2luZm9kXyoKLQotdGVzdHJ1biAke2Fic19idWlsZGRpcn0vZGVidWdp bmZvZF9idWlsZF9pZF9maW5kIC1lIEYvcHJvZzIgMQotCi0jIGNoZWNrIG91dCB0aGUgZGVidWdp bmZvZCBsb2dzIGZvciB0aGUgbmV3IHN0eWxlIHN0YXR1cyBsaW5lcwotIyBjYXQgdmxvZyRQT1JU MgotZ3JlcCAtcSAnVUE6LipYRkY6LipHRVQgL2J1aWxkaWQvLiogMjAwICcgdmxvZyRQT1JUMgot Z3JlcCAtcSAnVUE6LipYRkY6LipHRVQgL21ldHJpY3MgMjAwICcgdmxvZyRQT1JUMgotZ3JlcCAt cSAnVUE6LipYRkY6LipHRVQgL2JhZGFwaSA1MDMgJyB2bG9nJFBPUlQyCi1ncmVwIC1xICdVQTou KlhGRjouKkdFVCAvYnVpbGRpZC9kZWFkYmVlZi4qIDQwNCAnIHZsb2ckUE9SVDIKLQotIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCi0KLSMgQWRkIHNvbWUgZmlsZXMgdG8gdGhlIGNhY2hlIHRoYXQgZG8gbm90IGZp dCBpdHMgbmFtaW5nIGZvcm1hdC4KLSMgVGhleSBzaG91bGQgc3Vydml2ZSBjYWNoZSBjbGVhbmlu Zy4KLW1rZGlyICRERUJVR0lORk9EX0NBQ0hFX1BBVEgvbWFsZm9ybWVkCi10b3VjaCAkREVCVUdJ TkZPRF9DQUNIRV9QQVRIL21hbGZvcm1lZDAKLXRvdWNoICRERUJVR0lORk9EX0NBQ0hFX1BBVEgv bWFsZm9ybWVkL21hbGZvcm1lZDEKLQotIyBBIHZhbGlkIGZvcm1hdCBmb3IgYW4gZW1wdHkgYnVp bGRpZCBzdWJkaXJlY3RvcnkKLW1rZGlyICRERUJVR0lORk9EX0NBQ0hFX1BBVEgvMDAwMDAwMDAK LXRvdWNoIC1kICcxOTcwLTAxLTAxJyAkREVCVUdJTkZPRF9DQUNIRV9QQVRILzAwMDAwMDAwICMg b2xkIGVub3VnaCB0byBndWFyYW50ZWUgbnVrYWdlCi0KLSMgVHJpZ2dlciBhIGNhY2hlIGNsZWFu IGFuZCBydW4gdGhlIHRlc3RzIGFnYWluLiBUaGUgY2xpZW50cyBzaG91bGQgYmUgdW5hYmxlIHRv Ci0jIGZpbmQgdGhlIHRhcmdldC4KLWVjaG8gMCA+ICRERUJVR0lORk9EX0NBQ0hFX1BBVEgvY2Fj aGVfY2xlYW5faW50ZXJ2YWxfcwotZWNobyAwID4gJERFQlVHSU5GT0RfQ0FDSEVfUEFUSC9tYXhf dW51c2VkX2FnZV9zCi0KLXRlc3RydW4gJHthYnNfYnVpbGRkaXJ9L2RlYnVnaW5mb2RfYnVpbGRf aWRfZmluZCAtZSBGL3ArciVvXCRnIDEKLQotdGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2Rl YnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAkQlVJTERJRDIgJiYgZmFsc2UgfHwg dHJ1ZQotCi1pZiBbICEgLWYgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSC9tYWxmb3JtZWQwIF0gXAot ICAgIHx8IFsgISAtZiAkREVCVUdJTkZPRF9DQUNIRV9QQVRIL21hbGZvcm1lZC9tYWxmb3JtZWQx IF07IHRoZW4KLSAgZWNobyAidW5yZWxhdGVkIGZpbGVzIGRpZCBub3Qgc3Vydml2ZSBjYWNoZSBj bGVhbmluZyIKLSAgZXJyCi1maQotCi1pZiBbIC1kICRERUJVR0lORk9EX0NBQ0hFX1BBVEgvMDAw MDAwMDAgXTsgdGhlbgotICAgIGVjaG8gImZhaWxlZCB0byBybWRpciBvbGQgY2FjaGUgZGlyIgot ICAgIGVycgotZmkKLQotIyBUZXN0IGRlYnVnaW5mb2Qgd2l0aG91dCBhIHBhdGggbGlzdDsgcmV1 c2UgJFBPUlQxCi1lbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9Ly4u L2RlYnVnaW5mb2QvZGVidWdpbmZvZCAkVkVSQk9TRSAtRiAtVSAtZCA6bWVtb3J5OiAtcCAkUE9S VDEgLUwgLUYgJgotUElEMz0kIQotd2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3RvdGFs e3JvbGU9InRyYXZlcnNlIn0nIDEKLXdhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya19wZW5k aW5ne3JvbGU9InNjYW4ifScgMAotd2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF9idXN5e3JvbGU9 InNjYW4ifScgMAota2lsbCAtaW50ICRQSUQzCi13YWl0ICRQSUQzCi1QSUQzPTAKLQotIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCi0jIFRlc3QgZmV0Y2hpbmcgYSBmaWxlIHVzaW5nIGZpbGU6Ly8gLiBObyBkZWJ1 Z2luZm9kIHNlcnZlciBuZWVkcyB0byBiZSBydW4gZm9yCi0jIHRoaXMgdGVzdC4KLWxvY2FsX2Rp cj0ke1BXRH0vbW9ja3RyZWUvYnVpbGRpZC9hYWFhYWFhYWFhYmJiYmJiYmJiYmNjY2NjY2NjY2Nk ZGRkZGRkZGRkL3NvdXJjZS9teS9wYXRoCi1ta2RpciAtcCAke2xvY2FsX2Rpcn0KLWVjaG8gImlu dCBtYWluKCkgeyByZXR1cm4gMDsgfSIgPiAke2xvY2FsX2Rpcn0vbWFpbi5jCi0KLSMgZmlyc3Qg dGVzdCB0aGF0IGlzIGRvZXNuJ3Qgd29yaywgd2hlbiBubyBERUJVR0lORk9EX1VSTFMgaXMgc2V0 Ci1ERUJVR0lORk9EX1VSTFM9IiIKLXRlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2lu Zm9kL2RlYnVnaW5mb2QtZmluZCBzb3VyY2UgYWFhYWFhYWFhYWJiYmJiYmJiYmJjY2NjY2NjY2Nj ZGRkZGRkZGRkZCAvbXkvcGF0aC9tYWluLmMgJiYgZmFsc2UgfHwgdHJ1ZQotCi0jIE5vdyB0ZXN0 IGlzIHdpdGggcHJvcGVyIERFQlVHSU5GT0RfVVJMUwotREVCVUdJTkZPRF9VUkxTPSJmaWxlOi8v JHtQV0R9L21vY2t0cmVlLyIKLWZpbGVuYW1lPWB0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0v ZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgc291cmNlIGFhYWFhYWFhYWFiYmJiYmJiYmJiY2Nj Y2NjY2NjY2RkZGRkZGRkZGQgL215L3BhdGgvbWFpbi5jYAotY21wICRmaWxlbmFtZSAke2xvY2Fs X2Rpcn0vbWFpbi5jCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyMgUFIyNzcxMQotIyBUZXN0IHRvIGVu c3VyZSB0aGF0IHRoZSAtLWluY2x1ZGU9Il4kIiAtLWV4Y2x1ZGU9Ii4qIiBvcHRpb25zIHJlbW92 ZSBhbGwgZmlsZXMgZnJvbSBhIGRhdGFiYXNlIGJhY2t1cAotd2hpbGUgdHJ1ZTsgZG8KLSAgICBQ T1JUMz1gZXhwciAnKCcgJFJBTkRPTSAlIDEwMDAgJyknICsgOTAwMGAKLSAgICBzcyAtYXRuIHwg ZmdyZXAgIjokUE9SVDMiIHx8IGJyZWFrCi1kb25lCi1lbnYgTERfTElCUkFSWV9QQVRIPSRsZHBh dGggREVCVUdJTkZPRF9VUkxTPSJodHRwOi8vMTI3LjAuMC4xOiRQT1JUMy8iICR7YWJzX2J1aWxk ZGlyfS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QgJFZFUkJPU0UgLXAgJFBPUlQzIC10MCAtZzAg LS1yZWdleC1ncm9vbSAtLWluY2x1ZGU9Il4kIiAtLWV4Y2x1ZGU9Ii4qIiAgLWQgJERCLmJhY2t1 cCA+IHZsb2ckUE9SVDMgMj4mMSAmCi1QSUQ0PSQhCi13YWl0X3JlYWR5ICRQT1JUMyAncmVhZHkn IDEKLXRlbXBmaWxlcyB2bG9nJFBPUlQzCi1lcnJmaWxlcyB2bG9nJFBPUlQzCi0KLWtpbGwgLVVT UjIgJFBJRDQKLXdhaXRfcmVhZHkgJFBPUlQzICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJncm9v bSJ9JyAxCi13YWl0X3JlYWR5ICRQT1JUMyAnZ3Jvb217c3RhdGlzdGljPSJhcmNoaXZlIGQvZSJ9 JyAgMAotd2FpdF9yZWFkeSAkUE9SVDMgJ2dyb29te3N0YXRpc3RpYz0iYXJjaGl2ZSBzZGVmIn0n IDAKLXdhaXRfcmVhZHkgJFBPUlQzICdncm9vbXtzdGF0aXN0aWM9ImFyY2hpdmUgc3JlZiJ9JyAw Ci13YWl0X3JlYWR5ICRQT1JUMyAnZ3Jvb217c3RhdGlzdGljPSJidWlsZGlkcyJ9JyAwCi13YWl0 X3JlYWR5ICRQT1JUMyAnZ3Jvb217c3RhdGlzdGljPSJmaWxlIGQvZSJ9JyAwCi13YWl0X3JlYWR5 ICRQT1JUMyAnZ3Jvb217c3RhdGlzdGljPSJmaWxlIHMifScgMAotd2FpdF9yZWFkeSAkUE9SVDMg J2dyb29te3N0YXRpc3RpYz0iZmlsZXMgc2Nhbm5lZCAoIykifScgMAotd2FpdF9yZWFkeSAkUE9S VDMgJ2dyb29te3N0YXRpc3RpYz0iZmlsZXMgc2Nhbm5lZCAobWIpIn0nIDAKLQota2lsbCAkUElE NAotd2FpdCAkUElENAotUElEND0wCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBzZXQgdXAgdGVzdHMg Zm9yIHJldHJ5aW5nIGZhaWxlZCBxdWVyaWVzLgotcmV0cnlfYXR0ZW1wdHM9YCh0ZXN0cnVuIGVu diBERUJVR0lORk9EX1VSTFM9aHR0cDovLzI1NS4yNTUuMjU1LjI1NS9KVU5LSlVOSyBERUJVR0lO Rk9EX1JFVFJZX0xJTUlUPTEwIERFQlVHSU5GT0RfVkVSQk9TRT0xIFwKLQkke2Fic190b3BfYnVp bGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAvYmluL2xzIHx8IHRy dWUpIDI+JjEgPi9kZXYvbnVsbCBcCi0JfCBncmVwIC1jICdSZXRyeSBmYWlsZWQgcXVlcnknYAot aWYgWyAkcmV0cnlfYXR0ZW1wdHMgLW5lIDEwIF07IHRoZW4KLSAgICBlY2hvICJyZXRyeSBtZWNo YW5pc20gZmFpbGVkLiIKLSAgICBleGl0IDE7Ci0gIGZpCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0j IFRlc3Qgd2hlbiBkZWJ1Z2luZm9kIGhpdHRpbmcgWC1Gb3J3YXJkZWQtRm9yIGhvcHMgbGltaXQu Ci0jIFRoaXMgdGVzdCB3aWxsIHN0YXJ0IHR3byBzZXJ2ZXJzIChhcyBhIGxvb3ApIHdpdGggdHdv IGRpZmZlcmVudCBob3AgbGltaXRzLgotCi13aGlsZSB0cnVlOyBkbwotICAgIFBPUlQ0PWBleHBy ICcoJyAkUkFORE9NICUgMTAwMCAnKScgKyA5MDAwYAotICAgIFBPUlQ1PWBleHByICcoJyAkUkFO RE9NICUgMTAwMCAnKScgKyA5MDAwYAotICAgIHNzIC1hdG4gfCBmZ3JlcCAtZSAiOiRQT1JUNCIg LWUgIjokUE9SVDUifHwgYnJlYWsKLWRvbmUKLQotIyBNYWtlIHN1cmUgdGhlIHZsb2dzIGFyZSBj bGVhbmVkIHVwIGFmdGVyIHRoZSB0ZXN0Ci0jIGFuZCB0aGF0IHRoZXkgYXJlIHByaW50ZWQgb24g ZXJyb3IuCi10ZW1wZmlsZXMgdmxvZyRQT1JUNCB2bG9nJFBPUlQ1Ci1lcnJmaWxlcyB2bG9nJFBP UlQ0IHZsb2ckUE9SVDUKLQotZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoIERFQlVHSU5GT0Rf VVJMUz1odHRwOi8vMTI3LjAuMC4xOiRQT1JUNSAke2Fic19idWlsZGRpcn0vLi4vZGVidWdpbmZv ZC9kZWJ1Z2luZm9kICRWRVJCT1NFIC1kIDptZW1vcnk6IC0tZm9yd2FyZGVkLXR0bC1saW1pdCAw IC1wICRQT1JUNCA+IHZsb2ckUE9SVDQgMj4mMSAmCi1QSUQ1PSQhCi0KLWVudiBMRF9MSUJSQVJZ X1BBVEg9JGxkcGF0aCBERUJVR0lORk9EX1VSTFM9aHR0cDovLzEyNy4wLjAuMTokUE9SVDQgJHth YnNfYnVpbGRkaXJ9Ly4uL2RlYnVnaW5mb2QvZGVidWdpbmZvZCAkVkVSQk9TRSAtZCA6bWVtb3J5 OiAtLWZvcndhcmRlZC10dGwtbGltaXQgMSAtcCAkUE9SVDUgPiB2bG9nJFBPUlQ1IDI+JjEgJgot UElENj0kIQotCi13YWl0X3JlYWR5ICRQT1JUNCAncmVhZHknIDEKLXdhaXRfcmVhZHkgJFBPUlQ1 ICdyZWFkeScgMQotCi1leHBvcnQgREVCVUdJTkZPRF9VUkxTPSJodHRwOi8vMTI3LjAuMC4xOiRQ T1JUNC8iCi10ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9k LWZpbmQgZGVidWdpbmZvIDAxMjM0NTY3IHx8IHRydWUKLQotIyBVc2UgYSBkaWZmZXJlbnQgYnVp bGRpZCB0byBhdm9pZCB1c2luZyBzYW1lIGNhY2hlLgotZXhwb3J0IERFQlVHSU5GT0RfVVJMUz0i aHR0cDovLzEyNy4wLjAuMTokUE9SVDUvIgotdGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2Rl YnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAxMTIzNDU2NyB8fCB0cnVlCi0KLWdy ZXAgImZvcndhcmVkLXR0bC1saW1pdCByZWFjaGVkIGFuZCB3aWxsIG5vdCBxdWVyeSB0aGUgdXBz dHJlYW0gc2VydmVycyIgdmxvZyRQT1JUNAotZ3JlcCAtdiAiZm9yd2FyZWQtdHRsLWxpbWl0IHJl YWNoZWQgYW5kIHdpbGwgbm90IHF1ZXJ5IHRoZSB1cHN0cmVhbSBzZXJ2ZXJzIiB2bG9nJFBPUlQ1 IHwgZ3JlcCAibm90IGZvdW5kIiB2bG9nJFBPUlQ1Ci0KLWtpbGwgJFBJRDUgJFBJRDYKLXdhaXQg JFBJRDUgJFBJRDYKLQotUElENT0wCi1QSUQ2PTAKLQotZXhpdCAwCmRpZmYgLS1naXQgYS90ZXN0 cy9ydW4tZGVidWdpbmZvZC1tYWxmb3JtZWQuc2ggYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1tYWxm b3JtZWQuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAuLmI0MjBhNDViCi0t LSAvZGV2L251bGwKKysrIGIvdGVzdHMvcnVuLWRlYnVnaW5mb2QtbWFsZm9ybWVkLnNoCkBAIC0w LDAgKzEsMTA3IEBACisjIS91c3IvYmluL2VudiBiYXNoCisjCisjIENvcHlyaWdodCAoQykgMjAx OS0yMDIxIFJlZCBIYXQsIEluYy4KKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgZWxmdXRpbHMuCisj CisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIGVsZnV0aWxzIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorIyBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uCisKKy4gJHNyY2Rpci90ZXN0LXN1YnIuc2ggICMgaW5jbHVkZXMgc2V0IC1l CisKKyMgZm9yIHRlc3QgY2FzZSBkZWJ1Z2dpbmcsIHVuY29tbWVudDoKK3NldCAteAordW5zZXQg VkFMR1JJTkRfQ01ECisKKyMgZmluZCBhbiB1bnVzZWQgcG9ydCBudW1iZXIKK2dldF9wb3J0cwor REI9JHtQV0R9Ly5kZWJ1Z2luZm9kX3RtcC5zcWxpdGUKK2V4cG9ydCBERUJVR0lORk9EX0NBQ0hF X1BBVEg9JHtQV0R9Ly5jbGllbnRfY2FjaGUKK21rZGlyIEYKK21rZGlyIC1wICRERUJVR0lORk9E X0NBQ0hFX1BBVEgKKworZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoIERFQlVHSU5GT0RfVVJM Uz0gJHthYnNfYnVpbGRkaXJ9Ly4uL2RlYnVnaW5mb2QvZGVidWdpbmZvZCAkVkVSQk9TRSAtRiAt cCAkUE9SVDEgXAorICAgIC10MCAtZzAgLXYgRiA+IHZsb2ckUE9SVDEgMj4mMSAmCitQSUQxPSQh Cit0ZW1wZmlsZXMgdmxvZyRQT1JUMQorZXJyZmlsZXMgdmxvZyRQT1JUMQorIyBTZXJ2ZXIgbXVz dCBiZWNvbWUgcmVhZHkKK3dhaXRfcmVhZHkgJFBPUlQxICdyZWFkeScgMQorZXhwb3J0IERFQlVH SU5GT0RfVVJMUz1odHRwOi8vMTI3LjAuMC4xOiRQT1JUMS8gICAjIG9yIHdpdGhvdXQgdHJhaWxp bmcgLworCisjIEJlIHBhdGllbnQgd2hlbiBydW4gb24gYSBidXN5IG1hY2hpbmUgdGhpbmdzIG1p Z2h0IHRha2UgYSBiaXQuCitleHBvcnQgREVCVUdJTkZPRF9USU1FT1VUPTEwCisKKyMgQ2hlY2sg dGhyZWFkIGNvbW0gbmFtZXMKK3BzIC1xICRQSUQxIC1lIC1MIC1vICclcCAlYyAlYScgfCBncmVw IGdyb29tCitwcyAtcSAkUElEMSAtZSAtTCAtbyAnJXAgJWMgJWEnIHwgZ3JlcCBzY2FuCitwcyAt cSAkUElEMSAtZSAtTCAtbyAnJXAgJWMgJWEnIHwgZ3JlcCB0cmF2ZXJzZQorCisjIFdlIHVzZSAt dDAgYW5kIC1nMCBoZXJlIHRvIHR1cm4gb2ZmIHRpbWUtYmFzZWQgc2Nhbm5pbmcgJiBncm9vbWlu Zy4KKyMgRm9yIHRlc3RpbmcgcHVycG9zZXMsIHdlIGp1c3Qgc2ljIFNJR1VTUjEgLyBTSUdVU1Iy IGF0IHRoZSBwcm9jZXNzLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMgQ29tcGlsZSBhIHNpbXBsZSBw cm9ncmFtLCBzdHJpcCBpdHMgZGVidWdpbmZvIGFuZCBzYXZlIHRoZSBidWlsZC1pZC4KKyMgQWxz byBtb3ZlIHRoZSBkZWJ1Z2luZm8gaW50byBhbm90aGVyIGRpcmVjdG9yeSBzbyB0aGF0IGVsZnV0 aWxzCisjIGNhbm5vdCBmaW5kIGl0IHdpdGhvdXQgZGVidWdpbmZvZC4KK2VjaG8gImludCBtYWlu KCkgeyByZXR1cm4gMDsgfSIgPiAke1BXRH0vcCtyJW9cJGcuYwordGVtcGZpbGVzIHArciVvXCRn LmMKKyMgQ3JlYXRlIGEgc3ViZGlyZWN0b3J5IHRvIGNvbmZvdW5kIHNvdXJjZSBwYXRoIG5hbWVz Citta2RpciBmb29iYXIKK2djYyAtV2wsLS1idWlsZC1pZCAtZyAtbyBwK3Ilb1wkZyAke1BXRH0v Zm9vYmFyLy8vLi8uLi9wK3Ilb1wkZy5jCit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vc3Jj L3N0cmlwIC1nIC1mIHArciVvXCRnLmRlYnVnICR7UFdEfS9wK3Ilb1wkZworQlVJTERJRD1gZW52 IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoICR7YWJzX2J1aWxkZGlyfS8uLi9zcmMvcmVhZGVsZiBc CisgICAgICAgICAgLWEgcCtyJW9cXCRnIHwgZ3JlcCAnQnVpbGQgSUQnIHwgY3V0IC1kICcgJyAt ZiA3YAorCittdiBwK3Ilb1wkZyBGCittdiBwK3Ilb1wkZy5kZWJ1ZyBGCitraWxsIC1VU1IxICRQ SUQxCisjIFdhaXQgdGlsbCBib3RoIGZpbGVzIGFyZSBpbiB0aGUgaW5kZXguCit3YWl0X3JlYWR5 ICRQT1JUMSAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0idHJhdmVyc2UifScgMQord2FpdF9yZWFk eSAkUE9SVDEgJ3RocmVhZF93b3JrX3BlbmRpbmd7cm9sZT0ic2NhbiJ9JyAwCit3YWl0X3JlYWR5 ICRQT1JUMSAndGhyZWFkX2J1c3l7cm9sZT0ic2NhbiJ9JyAwCisKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IyBBZGQgc29tZSBmaWxlcyB0byB0aGUgY2FjaGUgdGhhdCBkbyBub3QgZml0IGl0cyBuYW1pbmcg Zm9ybWF0LgorIyBUaGV5IHNob3VsZCBzdXJ2aXZlIGNhY2hlIGNsZWFuaW5nLgorbWtkaXIgJERF QlVHSU5GT0RfQ0FDSEVfUEFUSC9tYWxmb3JtZWQKK3RvdWNoICRERUJVR0lORk9EX0NBQ0hFX1BB VEgvbWFsZm9ybWVkMAordG91Y2ggJERFQlVHSU5GT0RfQ0FDSEVfUEFUSC9tYWxmb3JtZWQvbWFs Zm9ybWVkMQorCisjIEEgdmFsaWQgZm9ybWF0IGZvciBhbiBlbXB0eSBidWlsZGlkIHN1YmRpcmVj dG9yeQorbWtkaXIgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSC8wMDAwMDAwMAordG91Y2ggLWQgJzE5 NzAtMDEtMDEnICRERUJVR0lORk9EX0NBQ0hFX1BBVEgvMDAwMDAwMDAgIyBvbGQgZW5vdWdoIHRv IGd1YXJhbnRlZSBudWthZ2UKKworIyBUcmlnZ2VyIGEgY2FjaGUgY2xlYW4gYW5kIHJ1biB0aGUg dGVzdHMgYWdhaW4uIFRoZSBjbGllbnRzIHNob3VsZCBiZSB1bmFibGUgdG8KKyMgZmluZCB0aGUg dGFyZ2V0LgorZWNobyAwID4gJERFQlVHSU5GT0RfQ0FDSEVfUEFUSC9jYWNoZV9jbGVhbl9pbnRl cnZhbF9zCitlY2hvIDAgPiAkREVCVUdJTkZPRF9DQUNIRV9QQVRIL21heF91bnVzZWRfYWdlX3MK KwordGVzdHJ1biAke2Fic19idWlsZGRpcn0vZGVidWdpbmZvZF9idWlsZF9pZF9maW5kIC1lIEYv cCtyJW9cJGcgMQorCit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1 Z2luZm9kLWZpbmQgZGVidWdpbmZvICRCVUlMRElEICYmIGZhbHNlIHx8IHRydWUKKworaWYgWyAh IC1mICRERUJVR0lORk9EX0NBQ0hFX1BBVEgvbWFsZm9ybWVkMCBdIFwKKyAgICB8fCBbICEgLWYg JERFQlVHSU5GT0RfQ0FDSEVfUEFUSC9tYWxmb3JtZWQvbWFsZm9ybWVkMSBdOyB0aGVuCisgIGVj aG8gInVucmVsYXRlZCBmaWxlcyBkaWQgbm90IHN1cnZpdmUgY2FjaGUgY2xlYW5pbmciCisgIGVy cgorZmkKKworaWYgWyAtZCAkREVCVUdJTkZPRF9DQUNIRV9QQVRILzAwMDAwMDAwIF07IHRoZW4K KyAgICBlY2hvICJmYWlsZWQgdG8gcm1kaXIgb2xkIGNhY2hlIGRpciIKKyAgICBlcnIKK2ZpCisK K2tpbGwgJFBJRDEKK3dhaXQgJFBJRDEKK1BJRDE9MAorZXhpdCAwCmRpZmYgLS1naXQgYS90ZXN0 cy9ydW4tZGVidWdpbmZvZC1uby11cmxzLnNoIGIvdGVzdHMvcnVuLWRlYnVnaW5mb2Qtbm8tdXJs cy5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMC4uNTNjMjlmNGMKLS0tIC9k ZXYvbnVsbAorKysgYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1uby11cmxzLnNoCkBAIC0wLDAgKzEs MzggQEAKKyMhL3Vzci9iaW4vZW52IGJhc2gKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjEg UmVkIEhhdCwgSW5jLgorIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBlbGZ1dGlscy4KKyMKKyMgVGhp cyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKyMKKyMgZWxmdXRpbHMgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4KKworLiAkc3JjZGlyL3Rlc3Qtc3Vici5zaCAgIyBpbmNsdWRlcyBzZXQgLWUKKworIyBm b3IgdGVzdCBjYXNlIGRlYnVnZ2luZywgdW5jb21tZW50Ogorc2V0IC14Cit1bnNldCBWQUxHUklO RF9DTUQKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFRlc3QgZGVidWdpbmZvZCB3aXRob3V0IGEgcGF0 aCBsaXN0CitnZXRfcG9ydHMKKworZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoICR7YWJzX2J1 aWxkZGlyfS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QgJFZFUkJPU0UgLUYgLVUgLWQgOm1lbW9y eTogLXAgJFBPUlQxIC1MIC1GICYKK1BJRDE9JCEKKword2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVh ZF93b3JrX3RvdGFse3JvbGU9InRyYXZlcnNlIn0nIDEKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJl YWRfd29ya19wZW5kaW5ne3JvbGU9InNjYW4ifScgMAord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVh ZF9idXN5e3JvbGU9InNjYW4ifScgMAora2lsbCAtaW50ICRQSUQxCit3YWl0ICRQSUQxCitQSUQx PTAKK2V4aXQgMApkaWZmIC0tZ2l0IGEvdGVzdHMvcnVuLWRlYnVnaW5mb2QtcXVlcnktcmV0cnku c2ggYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1xdWVyeS1yZXRyeS5zaApuZXcgZmlsZSBtb2RlIDEw MDc1NQppbmRleCAwMDAwMDAwMC4uOTE4YzY4MDEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9y dW4tZGVidWdpbmZvZC1xdWVyeS1yZXRyeS5zaApAQCAtMCwwICsxLDM0IEBACisjIS91c3IvYmlu L2VudiBiYXNoCisjCisjIENvcHlyaWdodCAoQykgMjAxOS0yMDIxIFJlZCBIYXQsIEluYy4KKyMg VGhpcyBmaWxlIGlzIHBhcnQgb2YgZWxmdXRpbHMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisj CisjIGVsZnV0aWxzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsIGJ1dAorIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0u ICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKy4gJHNyY2Rp ci90ZXN0LXN1YnIuc2ggICMgaW5jbHVkZXMgc2V0IC1lCisjIGZvciB0ZXN0IGNhc2UgZGVidWdn aW5nLCB1bmNvbW1lbnQ6CitzZXQgLXgKK3Vuc2V0IFZBTEdSSU5EX0NNRAorCisjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMgc2V0IHVwIHRlc3RzIGZvciByZXRyeWluZyBmYWlsZWQgcXVlcmllcy4KK3JldHJ5 X2F0dGVtcHRzPWAodGVzdHJ1biBlbnYgREVCVUdJTkZPRF9VUkxTPWh0dHA6Ly8yNTUuMjU1LjI1 NS4yNTUvSlVOS0pVTksgREVCVUdJTkZPRF9SRVRSWV9MSU1JVD0xMCBERUJVR0lORk9EX1ZFUkJP U0U9MSBcCisgICAgICAgICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9k LWZpbmQgZGVidWdpbmZvIC9iaW4vbHMgfHwgdHJ1ZSkgMj4mMSA+L2Rldi9udWxsIFwKKyAgICAg ICAgfCBncmVwIC1jICdSZXRyeSBmYWlsZWQgcXVlcnknYAoraWYgWyAkcmV0cnlfYXR0ZW1wdHMg LW5lIDEwIF07IHRoZW4KKyAgICBlY2hvICJyZXRyeSBtZWNoYW5pc20gZmFpbGVkLiIKKyAgICBl eGl0IDE7CitmaQorCitleGl0IDA7CmRpZmYgLS1naXQgYS90ZXN0cy9ydW4tZGVidWdpbmZvZC1y ZWdleC5zaCBiL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLXJlZ2V4LnNoCm5ldyBmaWxlIG1vZGUgMTAw NzU1CmluZGV4IDAwMDAwMDAwLi5lMzZkOGY1ZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3J1 bi1kZWJ1Z2luZm9kLXJlZ2V4LnNoCkBAIC0wLDAgKzEsOTUgQEAKKyMhL3Vzci9iaW4vZW52IGJh c2gKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjEgUmVkIEhhdCwgSW5jLgorIyBUaGlzIGZp bGUgaXMgcGFydCBvZiBlbGZ1dGlscy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGlj ZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgZWxm dXRpbHMgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg YnV0CisjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworLiAkc3JjZGlyL3Rlc3Qt c3Vici5zaCAgIyBpbmNsdWRlcyBzZXQgLWUKKyMgZm9yIHRlc3QgY2FzZSBkZWJ1Z2dpbmcsIHVu Y29tbWVudDoKK3NldCAteAordW5zZXQgVkFMR1JJTkRfQ01ECisKK21rZGlyIEYKKworREI9JHtQ V0R9Ly5kZWJ1Z2luZm9kX3RtcC5zcWxpdGUKK3RlbXBmaWxlcyAkREIKKworZXhwb3J0IERFQlVH SU5GT0RfQ0FDSEVfUEFUSD0ke1BXRH0vLmNsaWVudF9jYWNoZQorCitnZXRfcG9ydHMKK2VudiBM RF9MSUJSQVJZX1BBVEg9JGxkcGF0aCAke2Fic19idWlsZGRpcn0vLi4vZGVidWdpbmZvZC9kZWJ1 Z2luZm9kIFwKKyAgICAkVkVSQk9TRSAtRiAtcCAkUE9SVDEgLXQwIC1nMCAtZCAke0RCfSBGID4g dmxvZyRQT1JUMSAyPiYxICYKK1BJRDE9JCEKK3RlbXBmaWxlcyB2bG9nJFBPUlQxCitlcnJmaWxl cyB2bG9nJFBPUlQxCit3YWl0X3JlYWR5ICRQT1JUMSAncmVhZHknIDEKKworIyBDb21waWxlIGEg c2ltcGxlIHByb2dyYW0sIHN0cmlwIGl0cyBkZWJ1Z2luZm8gYW5kIHNhdmUgdGhlIGJ1aWxkLWlk LgorIyBBbHNvIG1vdmUgdGhlIGRlYnVnaW5mbyBpbnRvIGFub3RoZXIgZGlyZWN0b3J5IHNvIHRo YXQgZWxmdXRpbHMKKyMgY2Fubm90IGZpbmQgaXQgd2l0aG91dCBkZWJ1Z2luZm9kLgorZWNobyAi aW50IG1haW4oKSB7IHJldHVybiAwOyB9IiA+ICR7UFdEfS9wcm9nLmMKK3RlbXBmaWxlcyBwcm9n LmMKKyMgQ3JlYXRlIGEgc3ViZGlyZWN0b3J5IHRvIGNvbmZvdW5kIHNvdXJjZSBwYXRoIG5hbWVz Citta2RpciBmb29iYXIKK2djYyAtV2wsLS1idWlsZC1pZCAtZyAtbyBwcm9nICR7UFdEfS9mb29i YXIvLy8uLy4uL3Byb2cuYwordGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L3NyYy9zdHJpcCAt ZyAtZiBwcm9nLmRlYnVnICR7UFdEfS9wcm9nCisKK212IHByb2cgRgorbXYgcHJvZy5kZWJ1ZyBG Cit0ZW1wZmlsZXMgRi9wcm9nLmRlYnVnIEYvcHJvZworCitraWxsIC1VU1IxICRQSUQxCisjIFdh aXQgdGlsbCBib3RoIGZpbGVzIGFyZSBpbiB0aGUgaW5kZXguCit3YWl0X3JlYWR5ICRQT1JUMSAn dGhyZWFkX3dvcmtfdG90YWx7cm9sZT0idHJhdmVyc2UifScgMQord2FpdF9yZWFkeSAkUE9SVDEg J3RocmVhZF93b3JrX3BlbmRpbmd7cm9sZT0ic2NhbiJ9JyAwCit3YWl0X3JlYWR5ICRQT1JUMSAn dGhyZWFkX2J1c3l7cm9sZT0ic2NhbiJ9JyAwCitjcCAke0RCfSAke0RCfS5iYWNrdXAKK3RlbXBm aWxlcyAke0RCfS5iYWNrdXAKKwora2lsbCAkUElEMQord2FpdCAkUElEMQorUElEMT0wCisKKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisjIyBQUjI3NzExCisjIFRlc3QgdG8gZW5zdXJlIHRoYXQgdGhlIC0taW5j bHVkZT0iXiQiIC0tZXhjbHVkZT0iLioiIG9wdGlvbnMgcmVtb3ZlIGFsbCBmaWxlcyBmcm9tIGEg ZGF0YWJhc2UgYmFja3VwCisjCitlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNfYnVp bGRkaXJ9Ly4uL2RlYnVnaW5mb2QvZGVidWdpbmZvZCBcCisgICAgJFZFUkJPU0UgLXAgJFBPUlQy IC10MCAtZzAgLS1yZWdleC1ncm9vbSAtLWluY2x1ZGU9Il4kIiAtLWV4Y2x1ZGU9Ii4qIiAtZCAk e0RCfS5iYWNrdXAgPiB2bG9nJFBPUlQyIDI+JjEgJgorCisjcmV1c2UgUElEMQorUElEMT0kIQor dGVtcGZpbGVzIHZsb2ckUE9SVDIKK2VycmZpbGVzIHZsb2ckUE9SVDIKKyMgU2VydmVyIG11c3Qg YmVjb21lIHJlYWR5Cit3YWl0X3JlYWR5ICRQT1JUMiAncmVhZHknIDEKKwora2lsbCAtVVNSMiAk UElEMQord2FpdF9yZWFkeSAkUE9SVDIgJ3RocmVhZF93b3JrX3RvdGFse3JvbGU9Imdyb29tIn0n IDEKK3dhaXRfcmVhZHkgJFBPUlQyICdncm9vbXtzdGF0aXN0aWM9ImFyY2hpdmUgZC9lIn0nICAw Cit3YWl0X3JlYWR5ICRQT1JUMiAnZ3Jvb217c3RhdGlzdGljPSJhcmNoaXZlIHNkZWYifScgMAor d2FpdF9yZWFkeSAkUE9SVDIgJ2dyb29te3N0YXRpc3RpYz0iYXJjaGl2ZSBzcmVmIn0nIDAKK3dh aXRfcmVhZHkgJFBPUlQyICdncm9vbXtzdGF0aXN0aWM9ImJ1aWxkaWRzIn0nIDAKK3dhaXRfcmVh ZHkgJFBPUlQyICdncm9vbXtzdGF0aXN0aWM9ImZpbGUgZC9lIn0nIDAKK3dhaXRfcmVhZHkgJFBP UlQyICdncm9vbXtzdGF0aXN0aWM9ImZpbGUgcyJ9JyAwCit3YWl0X3JlYWR5ICRQT1JUMiAnZ3Jv b217c3RhdGlzdGljPSJmaWxlcyBzY2FubmVkICgjKSJ9JyAwCit3YWl0X3JlYWR5ICRQT1JUMiAn Z3Jvb217c3RhdGlzdGljPSJmaWxlcyBzY2FubmVkIChtYikifScgMAorCitraWxsICRQSUQxCit3 YWl0ICRQSUQxCitQSUQxPTAKKworZXhpdCAwOworCmRpZmYgLS1naXQgYS90ZXN0cy9ydW4tZGVi dWdpbmZvZC1zaXpldGltZS5zaCBiL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLXNpemV0aW1lLnNoCm5l dyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwLi5lZGY0Y2NlNQotLS0gL2Rldi9udWxs CisrKyBiL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLXNpemV0aW1lLnNoCkBAIC0wLDAgKzEsNzUgQEAK KyMhL3Vzci9iaW4vZW52IGJhc2gKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjEgUmVkIEhh dCwgSW5jLgorIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBlbGZ1dGlscy4KKyMKKyMgVGhpcyBmaWxl IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK KyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl cnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKyMKKyMgZWxmdXRpbHMgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K KworLiAkc3JjZGlyL3Rlc3Qtc3Vici5zaCAgIyBpbmNsdWRlcyBzZXQgLWUKK3NldCAteAordW5z ZXQgVkFMR1JJTkRfQ01ECisKK2dldF9wb3J0cworCitlY2hvICJpbnQgbWFpbigpIHsgcmV0dXJu IDA7IH0iID4gJHtQV0R9L3Byb2cuYworIyBDcmVhdGUgYSBzdWJkaXJlY3RvcnkgdG8gY29uZm91 bmQgc291cmNlIHBhdGggbmFtZXMKK21rZGlyIGZvb2JhcgorZ2NjIC1XbCwtLWJ1aWxkLWlkIC1n IC1vIHByb2cgJHtQV0R9L2Zvb2Jhci8vLy4vLi4vcHJvZy5jCit0ZXN0cnVuICR7YWJzX3RvcF9i dWlsZGRpcn0vc3JjL3N0cmlwIC1nIC1mIHByb2cuZGVidWcgJHtQV0R9L3Byb2cKK3RlbXBmaWxl cyBwcm9nIHByb2cuZGVidWcgcHJvZy5jCitCVUlMRElEPWBlbnYgTERfTElCUkFSWV9QQVRIPSRs ZHBhdGggJHthYnNfYnVpbGRkaXJ9Ly4uL3NyYy9yZWFkZWxmIFwKKyAgICAgICAgICAtYSBwcm9n IHwgZ3JlcCAnQnVpbGQgSUQnIHwgY3V0IC1kICcgJyAtZiA3YAorCitlbnYgTERfTElCUkFSWV9Q QVRIPSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9Ly4uL2RlYnVnaW5mb2QvZGVidWdpbmZvZCAkVkVS Qk9TRSAtRiAtcCAkUE9SVDEgLXQwIC1nMCAke1BXRH0gPiB2bG9nJFBPUlQxIDI+JjEgJgorUElE MT0kIQordGVtcGZpbGVzIHZsb2ckUE9SVDEKK2VycmZpbGVzICB2bG9nJFBPUlQxCit3YWl0X3Jl YWR5ICRQT1JUMSAncmVhZHknIDEKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya190b3Rh bHtyb2xlPSJ0cmF2ZXJzZSJ9JyAxCit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfcGVu ZGluZ3tyb2xlPSJzY2FuIn0nIDAKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xl PSJzY2FuIn0nIDAKKworIyMgUFIyNzg5MgorIyBFbnN1cmUgREVCVUdJTkZPRF9NQVhTSVpFIGlz IGZ1bmN0aW9uYWwgYW5kIHNlbmRzIGJhY2sgdGhlIGNvcnJlY3QgaHR0cAorIyBjb2RlCitlbnYg TERfTElCUkFSWV9QQVRIPSRsZHBhdGggREVCVUdJTkZPRF9SRVRSWV9MSU1JVD0xIERFQlVHSU5G T0RfVVJMUz0iaHR0cDovLzEyNy4wLjAuMTokUE9SVDEvIiBERUJVR0lORk9EX01BWFNJWkU9MSBc CisgICAgJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCAtdiBl eGVjdXRhYmxlICR7UFdEfS9wcm9nIDI+IGZpbmQtdmxvZyRQT1JUMSB8fCB0cnVlCit0ZW1wZmls ZXMgZmluZC12bG9nJFBPUlQxIAorZXJyZmlsZXMgIGZpbmQtdmxvZyRQT1JUMQorZWNobyAiQ2hl Y2tpbmcgbWF4c2l6ZSIKK2dyZXAgInVzaW5nIG1heCBzaXplIDFCIiBmaW5kLXZsb2ckUE9SVDEK K2VjaG8gIkNoZWNraW5nIG1heHNpemUiCitncmVwICdzZXJ2aW5nIGZpbGUgJyQocmVhbHBhdGgg JHtQV0R9KScvcHJvZycgdmxvZyRQT1JUMQorZWNobyAiQ2hlY2tpbmcgbWF4c2l6ZSIKK2dyZXAg J0ZpbGUgdG9vIGxhcmdlJyB2bG9nJFBPUlQxCitpZiBbIC1mICR7REVCVUdJTkZPRF9DQUNIRV9Q QVRIfS8ke0JVSUxESUR9IF07IHRoZW4KKyAgZWNobyAiRmlsZSBjYWNoZWQgYWZ0ZXIgbWF4c2l6 ZSBjaGVjayIKKyAgZXJyCitmaQorIyBFbnN1cmUgbm8gZmlsZSBpcyBkb3dubG9hZGVkIGZvciBs b25nZXIgdGhhbiBERUJVR0lORk9EX01BWFRJTUUKK2VudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0 aCBERUJVR0lORk9EX1VSTFM9Imh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxLyIgREVCVUdJTkZPRF9N QVhUSU1FPTEgXAorICAgICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9k LWZpbmQgLXYgZGVidWdpbmZvICR7UFdEfS9wcm9nLmRlYnVnIDI+IGZpbmQtdmxvZyRQT1JUMSB8 fCB0cnVlCit0ZW1wZmlsZXMgZmluZC12bG9nJFBPUlQxCitncmVwICd1c2luZyBtYXggdGltZScg ZmluZC12bG9nJFBPUlQxCisjIEVuc3VyZSBwK3Ilb1wkZy5kZWJ1ZyBpcyBOT1QgY2FjaGVkCitp ZiBbIC1mICR7REVCVUdJTkZPRF9DQUNIRV9QQVRIfS8ke0JVSUxESUR9IF07IHRoZW4KKyAgZWNo byAiRmlsZSBjYWNoZWQgYWZ0ZXIgbWF4dGltZSBjaGVjayIKKyAgZXJyCitmaQorCitraWxsICRQ SUQxCit3YWl0ICRQSUQxCitQSUQxPTAKKworZXhpdCAwOwpkaWZmIC0tZ2l0IGEvdGVzdHMvcnVu LWRlYnVnaW5mb2QtdG1wLWhvbWUuc2ggYi90ZXN0cy9ydW4tZGVidWdpbmZvZC10bXAtaG9tZS5z aApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMC4uMGYyZjJkNTMKLS0tIC9kZXYv bnVsbAorKysgYi90ZXN0cy9ydW4tZGVidWdpbmZvZC10bXAtaG9tZS5zaApAQCAtMCwwICsxLDEy MiBAQAorIyEvdXNyL2Jpbi9lbnYgYmFzaAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBS ZWQgSGF0LCBJbmMuCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGVsZnV0aWxzLgorIworIyBUaGlz IGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorIworIyBlbGZ1dGlscyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LgorCisuICRzcmNkaXIvdGVzdC1zdWJyLnNoICAjIGluY2x1ZGVzIHNldCAtZQorIyBmb3Ig dGVzdCBjYXNlIGRlYnVnZ2luZywgdW5jb21tZW50Ogorc2V0IC14Cit1bnNldCBWQUxHUklORF9D TUQKKworREI9JHtQV0R9Ly5kZWJ1Z2luZm9kX3RtcC5zcWxpdGUKK2V4cG9ydCBERUJVR0lORk9E X0NBQ0hFX1BBVEg9JHtQV0R9Ly5jbGllbnRfY2FjaGUKKworbWtkaXIgRgorbWtkaXIgLXAgJERF QlVHSU5GT0RfQ0FDSEVfUEFUSAorCitnZXRfcG9ydHMKKworZW52IExEX0xJQlJBUllfUEFUSD0k bGRwYXRoIERFQlVHSU5GT0RfVVJMUz0gJHthYnNfYnVpbGRkaXJ9Ly4uL2RlYnVnaW5mb2QvZGVi dWdpbmZvZCAkVkVSQk9TRSAtRiAtcCAkUE9SVDEgXAorICAgIC10MCAtZzAgLXYgRiA+IHZsb2ck UE9SVDEgMj4mMSAmCitQSUQxPSQhCit0ZW1wZmlsZXMgdmxvZyRQT1JUMQorZXJyZmlsZXMgdmxv ZyRQT1JUMQorIyBTZXJ2ZXIgbXVzdCBiZWNvbWUgcmVhZHkKK3dhaXRfcmVhZHkgJFBPUlQxICdy ZWFkeScgMQorZXhwb3J0IERFQlVHSU5GT0RfVVJMUz1odHRwOi8vMTI3LjAuMC4xOiRQT1JUMS8g ICAjIG9yIHdpdGhvdXQgdHJhaWxpbmcgLworCisjIEJlIHBhdGllbnQgd2hlbiBydW4gb24gYSBi dXN5IG1hY2hpbmUgdGhpbmdzIG1pZ2h0IHRha2UgYSBiaXQuCitleHBvcnQgREVCVUdJTkZPRF9U SU1FT1VUPTEwCisKKyMgQ2hlY2sgdGhyZWFkIGNvbW0gbmFtZXMKK3BzIC1xICRQSUQxIC1lIC1M IC1vICclcCAlYyAlYScgfCBncmVwIGdyb29tCitwcyAtcSAkUElEMSAtZSAtTCAtbyAnJXAgJWMg JWEnIHwgZ3JlcCBzY2FuCitwcyAtcSAkUElEMSAtZSAtTCAtbyAnJXAgJWMgJWEnIHwgZ3JlcCB0 cmF2ZXJzZQorCisjIFdlIHVzZSAtdDAgYW5kIC1nMCBoZXJlIHRvIHR1cm4gb2ZmIHRpbWUtYmFz ZWQgc2Nhbm5pbmcgJiBncm9vbWluZy4KKyMgRm9yIHRlc3RpbmcgcHVycG9zZXMsIHdlIGp1c3Qg c2ljIFNJR1VTUjEgLyBTSUdVU1IyIGF0IHRoZSBwcm9jZXNzLgorCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KworIyBDb21waWxlIGEgc2ltcGxlIHByb2dyYW0sIHN0cmlwIGl0cyBkZWJ1Z2luZm8gYW5kIHNh dmUgdGhlIGJ1aWxkLWlkLgorIyBBbHNvIG1vdmUgdGhlIGRlYnVnaW5mbyBpbnRvIGFub3RoZXIg ZGlyZWN0b3J5IHNvIHRoYXQgZWxmdXRpbHMKKyMgY2Fubm90IGZpbmQgaXQgd2l0aG91dCBkZWJ1 Z2luZm9kLgorZWNobyAiaW50IG1haW4oKSB7IHJldHVybiAwOyB9IiA+ICR7UFdEfS9wK3Ilb1wk Zy5jCit0ZW1wZmlsZXMgcCtyJW9cJGcuYworIyBDcmVhdGUgYSBzdWJkaXJlY3RvcnkgdG8gY29u Zm91bmQgc291cmNlIHBhdGggbmFtZXMKK21rZGlyIGZvb2JhcgorZ2NjIC1XbCwtLWJ1aWxkLWlk IC1nIC1vIHArciVvXCRnICR7UFdEfS9mb29iYXIvLy8uLy4uL3ArciVvXCRnLmMKK3Rlc3RydW4g JHthYnNfdG9wX2J1aWxkZGlyfS9zcmMvc3RyaXAgLWcgLWYgcCtyJW9cJGcuZGVidWcgJHtQV0R9 L3ArciVvXCRnCitCVUlMRElEPWBlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNfYnVp bGRkaXJ9Ly4uL3NyYy9yZWFkZWxmIFwKKyAgICAgICAgICAtYSBwK3Ilb1xcJGcgfCBncmVwICdC dWlsZCBJRCcgfCBjdXQgLWQgJyAnIC1mIDdgCisKK212IHArciVvXCRnIEYKK212IHArciVvXCRn LmRlYnVnIEYKK2tpbGwgLVVTUjEgJFBJRDEKKyMgV2FpdCB0aWxsIGJvdGggZmlsZXMgYXJlIGlu IHRoZSBpbmRleC4KK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0 cmF2ZXJzZSJ9JyAxCit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xl PSJzY2FuIn0nIDAKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0n IDAKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMgVGVzdCB3aGV0aGVyIHRoZSBjYWNoZSBkZWZhdWx0 IGxvY2F0aW9ucyBhcmUgY29ycmVjdAorbWtkaXIgdG1waG9tZQorCisjICRIT01FLy5jYWNoZSBz aG91bGQgYmUgY3JlYXRlZC4KK3Rlc3RydW4gZW52IEhPTUU9JFBXRC90bXBob21lIFhER19DQUNI RV9IT01FPSBERUJVR0lORk9EX0NBQ0hFX1BBVEg9ICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdp bmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdpbmZvICRCVUlMRElECitpZiBbICEgLWYgJFBXRC90 bXBob21lLy5jYWNoZS9kZWJ1Z2luZm9kX2NsaWVudC8kQlVJTERJRC9kZWJ1Z2luZm8gXTsgdGhl bgorICBlY2hvICJjb3VsZCBub3QgZmluZCBjYWNoZSBpbiAkUFdEL3RtcGhvbWUvLmNhY2hlIgor ICBlcnIKK2ZpCisKKyMgJEhPTUUvLmNhY2hlIHNob3VsZCBiZSBmb3VuZC4KK3Rlc3RydW4gZW52 IEhPTUU9JFBXRC90bXBob21lIFhER19DQUNIRV9IT01FPSBERUJVR0lORk9EX0NBQ0hFX1BBVEg9 ICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZXhlY3V0YWJs ZSAkQlVJTERJRAoraWYgWyAhIC1mICRQV0QvdG1waG9tZS8uY2FjaGUvZGVidWdpbmZvZF9jbGll bnQvJEJVSUxESUQvZXhlY3V0YWJsZSBdOyB0aGVuCisgIGVjaG8gImNvdWxkIG5vdCBmaW5kIGNh Y2hlIGluICRQV0QvdG1waG9tZS8uY2FjaGUiCisgIGVycgorZmkKKyMgJFhER19DQUNIRV9IT01F IHNob3VsZCB0YWtlIHByaW9yaXR5IG92ZXIgJEhPTUUuY2FjaGUuCit0ZXN0cnVuIGVudiBIT01F PSRQV0QvdG1waG9tZSBYREdfQ0FDSEVfSE9NRT0kUFdEL3RtcHhkZyBERUJVR0lORk9EX0NBQ0hF X1BBVEg9ICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVi dWdpbmZvICRCVUlMRElECitpZiBbICEgLWYgJFBXRC90bXB4ZGcvZGVidWdpbmZvZF9jbGllbnQv JEJVSUxESUQvZGVidWdpbmZvIF07IHRoZW4KKyAgZWNobyAiY291bGQgbm90IGZpbmQgY2FjaGUg aW4gJFBXRC90bXB4ZGcvIgorICBlcnIKK2ZpCisKKyMgQSBjYWNoZSBhdCB0aGUgb2xkIGRlZmF1 bHQgbG9jYXRpb24gKCRIT01FLy5kZWJ1Z2luZm9kX2NsaWVudF9jYWNoZSkgc2hvdWxkIHRha2UK KyMgcHJpb3JpdHkgb3ZlciAkSE9NRS8uY2FjaGUsICRYREdfQ0FDSEVfSE9NRS4KK2NwIC12ciAk REVCVUdJTkZPRF9DQUNIRV9QQVRIIHRtcGhvbWUvLmRlYnVnaW5mb2RfY2xpZW50X2NhY2hlIHx8 IHRydWUKKyMgfHx0cnVlIGlzIGZvciB0b2xlcmF0aW5nIGVycm9ycywgc3VjaCBhIHZhbGdyaW5k IG9yIHNvbWV0aGluZyBlbHNlCisjICAgICAgICBsZWF2aW5nIDAwMC1wZXJtIGZpbGVzIGluIHRo ZXJlCisKKyMgQWRkIGEgZmlsZSB0aGF0IGRvZXNuJ3QgZXhpc3QgaW4gJEhPTUUvLmNhY2hlLCAk WERHX0NBQ0hFX0hPTUUuCitta2RpciB0bXBob21lLy5kZWJ1Z2luZm9kX2NsaWVudF9jYWNoZS9k ZWFkYmVlZgorZWNobyBFTEYuLi4gPiB0bXBob21lLy5kZWJ1Z2luZm9kX2NsaWVudF9jYWNoZS9k ZWFkYmVlZi9kZWJ1Z2luZm8KK2ZpbGVuYW1lPWB0ZXN0cnVuIGVudiBIT01FPSRQV0QvdG1waG9t ZSBYREdfQ0FDSEVfSE9NRT0kUFdEL3RtcHhkZyBERUJVR0lORk9EX0NBQ0hFX1BBVEg9ICR7YWJz X3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdpbmZvIGRlYWRi ZWVmYAorY21wICRmaWxlbmFtZSB0bXBob21lLy5kZWJ1Z2luZm9kX2NsaWVudF9jYWNoZS9kZWFk YmVlZi9kZWJ1Z2luZm8KKworIyAkREVCVUdJTkZPX0NBQ0hFX1BBVEggc2hvdWxkIHRha2UgcHJp b3JpdHkgb3ZlciBhbGwgZWxzZS4KK3Rlc3RydW4gZW52IEhPTUU9JFBXRC90bXBob21lIFhER19D QUNIRV9IT01FPSRQV0QvdG1weGRnIERFQlVHSU5GT0RfQ0FDSEVfUEFUSD0kUFdEL3RtcGNhY2hl ICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdpbmZv ICRCVUlMRElECitpZiBbICEgLWYgJFBXRC90bXBjYWNoZS8kQlVJTERJRC9kZWJ1Z2luZm8gXTsg dGhlbgorICBlY2hvICJjb3VsZCBub3QgZmluZCBjYWNoZSBpbiAkUFdEL3RtcGNhY2hlLyIKKyAg ZXJyCitmaQorcm0gLXJmICR7UFdEfS90bXBob21lLyAke1BXRH0vdG1weGRnICR7UFdEfS90bXBj YWNoZQorCitraWxsICRQSUQxCit3YWl0ICRQSUQxCitQSUQxPTAKK2V4aXQgMApkaWZmIC0tZ2l0 IGEvdGVzdHMvcnVuLWRlYnVnaW5mb2Qtd3JpdGFibGUuc2ggYi90ZXN0cy9ydW4tZGVidWdpbmZv ZC13cml0YWJsZS5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMC4uZWRlYzkz NTcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9ydW4tZGVidWdpbmZvZC13cml0YWJsZS5zaApA QCAtMCwwICsxLDgyIEBACisjIS91c3IvYmluL2VudiBiYXNoCisjCisjIENvcHlyaWdodCAoQykg MjAxOS0yMDIxIFJlZCBIYXQsIEluYy4KKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgZWxmdXRpbHMu CisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIGVsZnV0aWxzIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorIyBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK KyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCisKKy4gJHNyY2Rpci90ZXN0LXN1YnIuc2ggICMgaW5jbHVkZXMgc2V0 IC1lCisKKyMgZm9yIHRlc3QgY2FzZSBkZWJ1Z2dpbmcsIHVuY29tbWVudDoKK3NldCAteAordW5z ZXQgVkFMR1JJTkRfQ01ECisKK21rZGlyIEYKKworZ2V0X3BvcnRzCisKK2VudiBMRF9MSUJSQVJZ X1BBVEg9JGxkcGF0aCBERUJVR0lORk9EX1VSTFM9ICR7YWJzX2J1aWxkZGlyfS8uLi9kZWJ1Z2lu Zm9kL2RlYnVnaW5mb2QgJFZFUkJPU0UgLUYgLXAgJFBPUlQxIFwKKyAgICAtdDAgLWcwIC12IEYg PiB2bG9nJFBPUlQxIDI+JjEgJgorUElEMT0kIQordGVtcGZpbGVzIHZsb2ckUE9SVDEKK2VycmZp bGVzIHZsb2ckUE9SVDEKKyMgU2VydmVyIG11c3QgYmVjb21lIHJlYWR5Cit3YWl0X3JlYWR5ICRQ T1JUMSAncmVhZHknIDEKK2V4cG9ydCBERUJVR0lORk9EX1VSTFM9aHR0cDovLzEyNy4wLjAuMTok UE9SVDEvICAgIyBvciB3aXRob3V0IHRyYWlsaW5nIC8KKworIyBCZSBwYXRpZW50IHdoZW4gcnVu IG9uIGEgYnVzeSBtYWNoaW5lIHRoaW5ncyBtaWdodCB0YWtlIGEgYml0LgorZXhwb3J0IERFQlVH SU5GT0RfVElNRU9VVD0xMAorCisjIENoZWNrIHRocmVhZCBjb21tIG5hbWVzCitwcyAtcSAkUElE MSAtZSAtTCAtbyAnJXAgJWMgJWEnIHwgZ3JlcCBncm9vbQorcHMgLXEgJFBJRDEgLWUgLUwgLW8g JyVwICVjICVhJyB8IGdyZXAgc2NhbgorcHMgLXEgJFBJRDEgLWUgLUwgLW8gJyVwICVjICVhJyB8 IGdyZXAgdHJhdmVyc2UKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMgQ29tcGlsZSBhIHNpbXBsZSBw cm9ncmFtLCBzdHJpcCBpdHMgZGVidWdpbmZvIGFuZCBzYXZlIHRoZSBidWlsZC1pZC4KKyMgQWxz byBtb3ZlIHRoZSBkZWJ1Z2luZm8gaW50byBhbm90aGVyIGRpcmVjdG9yeSBzbyB0aGF0IGVsZnV0 aWxzCisjIGNhbm5vdCBmaW5kIGl0IHdpdGhvdXQgZGVidWdpbmZvZC4KK2VjaG8gImludCBtYWlu KCkgeyByZXR1cm4gMDsgfSIgPiAke1BXRH0vcCtyJW9cJGcuYwordGVtcGZpbGVzIHArciVvXCRn LmMKKyMgQ3JlYXRlIGEgc3ViZGlyZWN0b3J5IHRvIGNvbmZvdW5kIHNvdXJjZSBwYXRoIG5hbWVz Citta2RpciBmb29iYXIKK2djYyAtV2wsLS1idWlsZC1pZCAtZyAtbyBwK3Ilb1wkZyAke1BXRH0v Zm9vYmFyLy8vLi8uLi9wK3Ilb1wkZy5jCit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vc3Jj L3N0cmlwIC1nIC1mIHArciVvXCRnLmRlYnVnICR7UFdEfS9wK3Ilb1wkZworQlVJTERJRD1gZW52 IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoICR7YWJzX2J1aWxkZGlyfS8uLi9zcmMvcmVhZGVsZiBc CisgICAgICAgICAgLWEgcCtyJW9cXCRnIHwgZ3JlcCAnQnVpbGQgSUQnIHwgY3V0IC1kICcgJyAt ZiA3YAorCittdiBwK3Ilb1wkZyBGCittdiBwK3Ilb1wkZy5kZWJ1ZyBGCitraWxsIC1VU1IxICRQ SUQxCisjIFdhaXQgdGlsbCBib3RoIGZpbGVzIGFyZSBpbiB0aGUgaW5kZXguCit3YWl0X3JlYWR5 ICRQT1JUMSAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0idHJhdmVyc2UifScgMQord2FpdF9yZWFk eSAkUE9SVDEgJ3RocmVhZF93b3JrX3BlbmRpbmd7cm9sZT0ic2NhbiJ9JyAwCit3YWl0X3JlYWR5 ICRQT1JUMSAndGhyZWFkX2J1c3l7cm9sZT0ic2NhbiJ9JyAwCisKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisj IFRlc3Qgd2hldGhlciBkZWJ1Z2luZm9kLWZpbmQgaXMgYWJsZSB0byBmZXRjaCB0aG9zZSBmaWxl cy4KK3JtIC1yZiAkREVCVUdJTkZPRF9DQUNIRV9QQVRIICMgY2xlYW4gaXQgZnJvbSBwcmV2aW91 cyB0ZXN0cworZmlsZW5hbWU9YHRlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9k L2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESURgCitjbXAgJGZpbGVuYW1lIEYvcCty JW9cJGcuZGVidWcKK2lmIFsgLXcgJGZpbGVuYW1lIF07IHRoZW4KKyAgICBlY2hvICJjYWNoZSBm aWxlIHdyaXRhYmxlLCBib28iCisgICAgZXJyCitmaQorCitraWxsICRQSUQxCit3YWl0ICRQSUQx CitQSUQxPTAKKworZXhpdCAwCmRpZmYgLS1naXQgYS90ZXN0cy9ydW4tZGVidWdpbmZvZC14LWZv cndhcmRlZC1mb3Iuc2ggYi90ZXN0cy9ydW4tZGVidWdpbmZvZC14LWZvcndhcmRlZC1mb3Iuc2gK bmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAuLmQzNzllNDEwCi0tLSAvZGV2L251 bGwKKysrIGIvdGVzdHMvcnVuLWRlYnVnaW5mb2QteC1mb3J3YXJkZWQtZm9yLnNoCkBAIC0wLDAg KzEsNjAgQEAKKyMhL3Vzci9iaW4vZW52IGJhc2gKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDIxIFJl ZCBIYXQsIEluYy4KKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgZWxmdXRpbHMuCisjCisjIFRoaXMg ZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisjCisjIGVsZnV0aWxzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uCisKKy4gJHNyY2Rpci90ZXN0LXN1YnIuc2ggICMgaW5jbHVkZXMgc2V0IC1lCisjIGZvciB0 ZXN0IGNhc2UgZGVidWdnaW5nLCB1bmNvbW1lbnQ6CitzZXQgLXgKK3Vuc2V0IFZBTEdSSU5EX0NN RAorCitleHBvcnQgREVCVUdJTkZPRF9DQUNIRV9QQVRIPSR7UFdEfS8uY2xpZW50X2NhY2hlCisK K2dldF9wb3J0cworCisjIFRlc3Qgd2hlbiBkZWJ1Z2luZm9kIGhpdHRpbmcgWC1Gb3J3YXJkZWQt Rm9yIGhvcHMgbGltaXQuCisjIFRoaXMgdGVzdCB3aWxsIHN0YXJ0IHR3byBzZXJ2ZXJzIChhcyBh IGxvb3ApIHdpdGggdHdvIGRpZmZlcmVudCBob3AgbGltaXRzLgorCit0ZW1wZmlsZXMgdmxvZyRQ T1JUMQorZXJyZmlsZXMgdmxvZyRQT1JUMQorZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoIERF QlVHSU5GT0RfVVJMUz1odHRwOi8vMTI3LjAuMC4xOiRQT1JUMiAke2Fic19idWlsZGRpcn0vLi4v ZGVidWdpbmZvZC9kZWJ1Z2luZm9kICRWRVJCT1NFIC1kIDptZW1vcnk6IC0tZm9yd2FyZGVkLXR0 bC1saW1pdCAwIC1wICRQT1JUMSA+IHZsb2ckUE9SVDEgMj4mMSAmCitQSUQxPSQhCisKK3RlbXBm aWxlcyB2bG9nJFBPUlQyCitlcnJmaWxlcyB2bG9nJFBPUlQyCitlbnYgTERfTElCUkFSWV9QQVRI PSRsZHBhdGggREVCVUdJTkZPRF9VUkxTPWh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxICR7YWJzX2J1 aWxkZGlyfS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QgJFZFUkJPU0UgLWQgOm1lbW9yeTogLS1m b3J3YXJkZWQtdHRsLWxpbWl0IDEgLXAgJFBPUlQyID4gdmxvZyRQT1JUMiAyPiYxICYKK1BJRDI9 JCEKKword2FpdF9yZWFkeSAkUE9SVDEgJ3JlYWR5JyAxCit3YWl0X3JlYWR5ICRQT1JUMiAncmVh ZHknIDEKKworZXhwb3J0IERFQlVHSU5GT0RfVVJMUz0iaHR0cDovLzEyNy4wLjAuMTokUE9SVDEv IgordGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5k IGRlYnVnaW5mbyAwMTIzNDU2NyB8fCB0cnVlCisKKyMgVXNlIGEgZGlmZmVyZW50IGJ1aWxkaWQg dG8gYXZvaWQgdXNpbmcgc2FtZSBjYWNoZS4KK2V4cG9ydCBERUJVR0lORk9EX1VSTFM9Imh0dHA6 Ly8xMjcuMC4wLjE6JFBPUlQyLyIKK3Rlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2lu Zm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gMTEyMzQ1NjcgfHwgdHJ1ZQorCitncmVwICJm b3J3YXJlZC10dGwtbGltaXQgcmVhY2hlZCBhbmQgd2lsbCBub3QgcXVlcnkgdGhlIHVwc3RyZWFt IHNlcnZlcnMiIHZsb2ckUE9SVDEKK2dyZXAgLXYgImZvcndhcmVkLXR0bC1saW1pdCByZWFjaGVk IGFuZCB3aWxsIG5vdCBxdWVyeSB0aGUgdXBzdHJlYW0gc2VydmVycyIgdmxvZyRQT1JUMiB8IGdy ZXAgIm5vdCBmb3VuZCIgdmxvZyRQT1JUMgorCitraWxsICRQSUQxICRQSUQyCit3YWl0ICRQSUQx ICRQSUQyCisKK1BJRDE9MAorUElEMj0wCisKK2V4aXQgMApkaWZmIC0tZ2l0IGEvdGVzdHMvdGVz dC1zdWJyLnNoIGIvdGVzdHMvdGVzdC1zdWJyLnNoCmluZGV4IDQxMWU1ZjI4Li40MWU5NWUzMSAx MDA2NDQKLS0tIGEvdGVzdHMvdGVzdC1zdWJyLnNoCisrKyBiL3Rlc3RzL3Rlc3Qtc3Vici5zaApA QCAtMjcsNiArMjcsMTMgQEAgdGVzdF9kaXI9InRlc3QtJCQiCiBta2RpciAtcCAiJHRlc3RfZGly IgogY2QgIiR0ZXN0X2RpciIKIAordHlwZSBjdXJsIDI+L2Rldi9udWxsIHx8IChlY2hvICJuZWVk IGN1cmwiOyBleGl0IDc3KQordHlwZSBycG0yY3BpbyAyPi9kZXYvbnVsbCB8fCAoZWNobyAibmVl ZCBycG0yY3BpbyI7IGV4aXQgNzcpCit0eXBlIGNwaW8gMj4vZGV2L251bGwgfHwgKGVjaG8gIm5l ZWQgY3BpbyI7IGV4aXQgNzcpCit0eXBlIGJ6Y2F0IDI+L2Rldi9udWxsIHx8IChlY2hvICJuZWVk IGJ6Y2F0IjsgZXhpdCA3NykKK2JzZHRhciAtLXZlcnNpb24gfCBncmVwIC1xIHpzdGQgJiYgenN0 ZD10cnVlIHx8IHpzdGQ9ZmFsc2UKK2VjaG8gInpzdGQ9JHpzdGQgYnNkdGFyPWBic2R0YXIgLS12 ZXJzaW9uYCIKKwogI0xDX0FMTD1DCiAjZXhwb3J0IExDX0FMTAogCkBAIC0zNSw3ICs0MiwxMSBA QCByZW1vdmVfZmlsZXM9CiAjIFRlc3RzIHRoYXQgdHJhcCBFWElUICgwKSB0aGVtc2VsdmVzIHNo b3VsZCBjYWxsIHRoaXMgZXhwbGljaXRseS4KIGV4aXRfY2xlYW51cCgpCiB7Ci0gIHJtIC1mICRy ZW1vdmVfZmlsZXM7IGNkIC4uOyBybWRpciAkdGVzdF9kaXIKKyAgcm0gLXJmICR7UFdEfS8uY2xp ZW50X2NhY2hlKgorICBybSAtZiAkcmVtb3ZlX2ZpbGVzOyAKKyAgbHMgLWEgJHtQV0R9CisgIGNk IC4uOyAKKyAgcm1kaXIgJHRlc3RfZGlyCiB9CiB0cmFwIGV4aXRfY2xlYW51cCAwCiAKQEAgLTIx MiwzICsyMjMsMTE0IEBAIHRlc3RydW5fb25fc2VsZl9xdWlldCgpCiAgICMgT25seSBleGl0IGlm IHNvbWV0aGluZyBmYWlsZWQKICAgaWYgdGVzdCAkZXhpdF9zdGF0dXMgIT0gMDsgdGhlbiBleGl0 ICRleGl0X3N0YXR1czsgZmkKIH0KKworY2xlYW51cCgpCit7CisgIGlmIFsgJFBJRDEgLW5lIDAg XTsgdGhlbiBraWxsICRQSUQxOyB3YWl0ICRQSUQxOyBmaQorICBpZiBbICRQSUQyIC1uZSAwIF07 IHRoZW4ga2lsbCAkUElEMjsgd2FpdCAkUElEMjsgZmkKKyAgcm0gLXJmICR7UFdEfS8uY2xpZW50 X2NhY2hlIEYgUiBEIEwgWiAke1BXRH0vZm9vYmFyICR7UFdEfS9tb2NrdHJlZSAKKyAgZXhpdF9j bGVhbnVwCit9Cit0cmFwIGNsZWFudXAgMCAxIDIgMyA1IDkgMTUKK2VycmZpbGVzX2xpc3Q9Citl cnIoKSB7CisgICAgZWNobyBFUlJPUiBSRVBPUlRTCisgICAgZm9yIHBvcnRzIGluICRQT1JUMSAk UE9SVDIKKyAgICBkbworICAgICAgICBlY2hvIEVSUk9SIFJFUE9SVCAkcG9ydCBtZXRyaWNzCisg ICAgICAgIGN1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokcG9ydC9tZXRyaWNzCisgICAgICAgIGVj aG8KKyAgICBkb25lCisgICAgZm9yIHggaW4gJGVycmZpbGVzX2xpc3QKKyAgICBkbworICAgICAg ICBlY2hvIEVSUk9SIFJFUE9SVCAiJHgiCisgICAgICAgIGNhdCAkeAorICAgICAgICBlY2hvCisg ICAgZG9uZQorICAgIGZhbHNlICMgdHJpZ2dlciBzZXQgLWUKK30KK3RyYXAgZXJyIEVSUgorCitl cnJmaWxlcygpIHsKKyAgICBlcnJmaWxlc19saXN0PSIkZXJyZmlsZXNfbGlzdCAkKiIKK30KKwor d2FpdF9yZWFkeSgpCit7CisgIHBvcnQ9JDE7CisgIHdoYXQ9JDI7CisgIHZhbHVlPSQzOworICB0 aW1lb3V0PTIwOworCisgIGVjaG8gIldhaXQgJHRpbWVvdXQgc2Vjb25kcyBvbiAkcG9ydCBmb3Ig bWV0cmljICR3aGF0IHRvIGNoYW5nZSB0byAkdmFsdWUiCisgIHdoaWxlIFsgJHRpbWVvdXQgLWd0 IDAgXTsgZG8KKyAgICBtdmFsdWU9IiQoY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRwb3J0L21l dHJpY3MgXAorICAgICAgICAgICAgICB8IGdyZXAgIiR3aGF0IiB8IGF3ayAne3ByaW50ICRORn0n KSIKKyAgICBpZiBbIC16ICIkbXZhbHVlIiBdOyB0aGVuIG12YWx1ZT0wOyBmaQorICAgICAgZWNo byAibWV0cmljICR3aGF0OiAkbXZhbHVlIgorICAgICAgaWYgWyAiJG12YWx1ZSIgLWVxICIkdmFs dWUiIF07IHRoZW4KKyAgICAgICAgYnJlYWs7CisgICAgZmkKKyAgICBzbGVlcCAwLjU7CisgICAg KCh0aW1lb3V0LS0pKTsKKyAgZG9uZTsKKworICBpZiBbICR0aW1lb3V0IC1lcSAwIF07IHRoZW4K KyAgICBlY2hvICJtZXRyaWMgJHdoYXQgbmV2ZXIgY2hhbmdlZCB0byAkdmFsdWUgb24gcG9ydCAk cG9ydCIKKyAgICBlcnIKKyAgZmkKK30KKworYXJjaGl2ZV90ZXN0KCkgeworICAgIF9fQlVJTERJ RD0kMQorICAgIF9fU09VUkNFUEFUSD0kMgorICAgIF9fU09VUkNFU0hBMT0kMworCisgICAgZmls ZW5hbWU9YHRlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2Qt ZmluZCBleGVjdXRhYmxlICRfX0JVSUxESURgCisgICAgYnVpbGRpZD1gZW52IExEX0xJQlJBUllf UEFUSD0kbGRwYXRoICR7YWJzX2J1aWxkZGlyfS8uLi9zcmMvcmVhZGVsZiBcCisgICAgICAgICAg ICAgLWEgJGZpbGVuYW1lIHwgZ3JlcCAnQnVpbGQgSUQnIHwgY3V0IC1kICcgJyAtZiA3YAorICAg IHRlc3QgJF9fQlVJTERJRCA9ICRidWlsZGlkCisgICAgIyBjaGVjayB0aGF0IHRpbWVzdGFtcHMg YXJlIHBsYXVzaWJsZSAtIG9sZGVyIHRoYW4gdGhlIG5lYXItcHJlc2VudCAodG1wZGlyIG10aW1l KQorICAgIHRlc3QgJGZpbGVuYW1lIC1vdCBgcHdkYAorCisgICAgIyBydW4gYWdhaW4gdG8gYXNz dXJlIHRoYXQgZmRjYWNoZSBpcyBiZWluZyBlbmpveWVkCisgICAgZmlsZW5hbWU9YHRlc3RydW4g JHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBleGVjdXRhYmxl ICRfX0JVSUxESURgCisgICAgYnVpbGRpZD1gZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoICR7 YWJzX2J1aWxkZGlyfS8uLi9zcmMvcmVhZGVsZiBcCisgICAgICAgICAgICAgLWEgJGZpbGVuYW1l IHwgZ3JlcCAnQnVpbGQgSUQnIHwgY3V0IC1kICcgJyAtZiA3YAorICAgIHRlc3QgJF9fQlVJTERJ RCA9ICRidWlsZGlkCisgICAgdGVzdCAkZmlsZW5hbWUgLW90IGBwd2RgCisKKyAgICBmaWxlbmFt ZT1gdGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5k IGRlYnVnaW5mbyAkX19CVUlMRElEYAorICAgIGJ1aWxkaWQ9YGVudiBMRF9MSUJSQVJZX1BBVEg9 JGxkcGF0aCAke2Fic19idWlsZGRpcn0vLi4vc3JjL3JlYWRlbGYgXAorICAgICAgICAgICAgIC1h ICRmaWxlbmFtZSB8IGdyZXAgJ0J1aWxkIElEJyB8IGN1dCAtZCAnICcgLWYgN2AKKyAgICB0ZXN0 ICRfX0JVSUxESUQgPSAkYnVpbGRpZAorICAgIHRlc3QgJGZpbGVuYW1lIC1vdCBgcHdkYAorCisg ICAgaWYgdGVzdCAieCRfX1NPVVJDRVBBVEgiICE9ICJ4IjsgdGhlbgorICAgICAgICBmaWxlbmFt ZT1gdGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5k IHNvdXJjZSAkX19CVUlMRElEICRfX1NPVVJDRVBBVEhgCisgICAgICAgIGhhc2g9YGNhdCAkZmls ZW5hbWUgfCBzaGExc3VtIHwgYXdrICd7cHJpbnQgJDF9J2AKKyAgICAgICAgdGVzdCAkX19TT1VS Q0VTSEExID0gJGhhc2gKKyAgICAgICAgdGVzdCAkZmlsZW5hbWUgLW90IGBwd2RgCisgICAgZmkK K30KKworZ2V0X3BvcnRzKCkgeworICB3aGlsZSB0cnVlOyBkbworICAgIFBPUlQxPWBleHByICco JyAkUkFORE9NICUgMTAwMCAnKScgKyA5MDAwYAorICAgIHNzIC1hdG4gfCBmZ3JlcCAiOiRQT1JU MSIgfHwgYnJlYWsKKyAgZG9uZQorIyBTb21lIHRlc3RzIHdpbGwgdXNlIHR3byBzZXJ2ZXJzLCBz byBhc3NpZ24gdGhlIHNlY29uZCB2YXIKKyAgd2hpbGUgdHJ1ZTsgZG8KKyAgICBQT1JUMj1gZXhw ciAnKCcgJFJBTkRPTSAlIDEwMDAgJyknICsgOTAwMGAKKyAgICBzcyAtYXRuIHwgZmdyZXAgIjok UE9SVDIiICYmICRQT1JUMSAtbmUgJFBPUlQyIHx8IGJyZWFrCisgIGRvbmUKKworfQorCitWRVJC T1NFPS12dnYKKyMgV2UgZ2F0aGVyIHRoZSBMRF9MSUJSQVJZX1BBVEggd2l0aCB0aGlzIGN1bm5p bmcgdHJpY2s6CitsZHBhdGg9YHRlc3RydW4gc2ggLWMgJ2VjaG8gJExEX0xJQlJBUllfUEFUSCdg CitQT1JUMT0wCitQT1JUMj0wCitQSUQxPTAKK1BJRDI9MAotLSAKMi4xOC40Cgo= --=-efxqUxaaqY9A3hjDw+Fo--