From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTP id E4AE83858003 for ; Mon, 23 Aug 2021 14:01:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E4AE83858003 Received: from mail-io1-f69.google.com (mail-io1-f69.google.com [209.85.166.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-204-fJrNxw2eMD2rtjpuIgfhXw-1; Mon, 23 Aug 2021 10:01:37 -0400 X-MC-Unique: fJrNxw2eMD2rtjpuIgfhXw-1 Received: by mail-io1-f69.google.com with SMTP id l4-20020a6bd104000000b005bb1bd35b3eso5782543iob.18 for ; Mon, 23 Aug 2021 07:01:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=GyxMXQEgpgmcsgU3d7oKtF39IZ6Tpit1lm0nRqcI2bA=; b=MOyWIAju9jSJUUGat7oNKVSq22Chu2HHF9F00eCv33VL+KJz37fPKfS/r1kRZ2nRYk QcsUP3bzlrTiiO/+LHSwjoVkPFEewaesTXXqVBgfsL1NI4j5Atd0E4j6RQRTzDEFLZ2H y9IxTwcUEdDEjP5Hih8YEgGK2wJqdGlAEtpeN2Q21OY98sbYKA5AAdDacJHj7Sc9/Ef3 azaeaGihDFwhXm/rtGsULfO3dFeFsJOIjBbWJLZNx8SDpHrKtco/9pj9IlykeH3iMI4W 2ykt1Zed7TpeTmv8ax5bRTEKDpo9JyZOFtjCgfe5zP5hoG01/wYN3dBpv6DwCUSbQDlc OFdw== X-Gm-Message-State: AOAM533YgjHtzbeyH0OcvcrtPXZDCLA7yGj4vnrs4p2V47gN4mZNJMdF Bwg+7wFw5orLDB7nMEWrq46I2rYzMFtSEq5i0W8WdC0Y2Pxygv9pgBNCOzTCH++gYYgDWg3VHgh NVrTDtUjl01fuv3ESLkgCBRRnNsa4M++y+D2rfrpX6A== X-Received: by 2002:a05:6e02:b4b:: with SMTP id f11mr573272ilu.3.1629727296393; Mon, 23 Aug 2021 07:01:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwdduLq8KG+E0eJ7kvbA//aMbuWf3odfo1qadcfKqpqFK66hs7gKoBvqA4emW1R+r78tKyAXwS+C2Fk2fEtDfM= X-Received: by 2002:a05:6e02:b4b:: with SMTP id f11mr573237ilu.3.1629727295889; Mon, 23 Aug 2021 07:01:35 -0700 (PDT) MIME-Version: 1.0 From: Noah Sanci Date: Mon, 23 Aug 2021 10:01:24 -0400 Message-ID: Subject: debuginfod: Fracture tests/run-debuginfod-find.sh into specific tests To: elfutils-devel@sourceware.org X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="0000000000008e5b1b05ca3a741a" X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_BADIPHTTP, KAM_LOTSOFHASH, KAM_SHORT, NUMERIC_HTTP_ADDR, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SCC_5_SHORT_WORD_LINES, SPF_HELO_NONE, SPF_NONE, 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: Mon, 23 Aug 2021 14:01:50 -0000 --0000000000008e5b1b05ca3a741a Content-Type: text/plain; charset="UTF-8" Hello, tests/run-debuginfod-find.sh was a massive test script with many broadly varying tests. This caused the test script to fail when any number of things went wrong and because of its intertwined nature, detecting the source of a failure could be difficult. The size of the test script also meant many unrelated tests were run making the testing process unnecessarily lengthy. This patch fractures tests/run-debuginfod-find.sh into smaller, more manageable individual test script files. This ensures that when failure occurs, a programmer can easily determine where their patch went wrong. It also allows programmers to specify exactly which tests to run, making testing more efficient. Redundancies are also reduced by placing code in tests/test-subr.sh. Please find the patch attached. Noah Sanci --0000000000008e5b1b05ca3a741a Content-Type: text/x-patch; charset="US-ASCII"; name="0001-debuginfod-Fracture-tests-run-debuginfod-find.sh-int.patch" Content-Disposition: attachment; filename="0001-debuginfod-Fracture-tests-run-debuginfod-find.sh-int.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ksopielx0 RnJvbSBiODU0N2I5NGEyYjJiMWZhYzYzZDk2MzRiNGRkM2Y1MTllMjcwMGNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FoIFNhbmNpIDxuc2FuY2lAcmVkaGF0LmNvbT4KRGF0ZTog VHVlLCAxMCBBdWcgMjAyMSAxMToyMTozNSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIGRlYnVnaW5m b2Q6IEZyYWN0dXJlIHRlc3RzL3J1bi1kZWJ1Z2luZm9kLWZpbmQuc2ggaW50bwogc3BlY2lmaWMg dGVzdHMKCnRlc3RzL3J1bi1kZWJ1Z2luZm9kLWZpbmQuc2ggd2FzIGEgbWFzc2l2ZSB0ZXN0IHNj cmlwdCB3aXRoIG1hbnkgYnJvYWRseQp2YXJ5aW5nIHRlc3RzLiBUaGlzIGNhdXNlZCB0aGUgdGVz dCBzY3JpcHQgdG8gZmFpbCB3aGVuIGFueSBudW1iZXIgb2YKdGhpbmdzIHdlbnQgd3JvbmcgYW5k IGJlY2F1c2Ugb2YgaXRzIGludGVydHdpbmVkIG5hdHVyZSwgZGV0ZWN0aW5nIHRoZQpzb3VyY2Ug b2YgYSBmYWlsdXJlIGNvdWxkIGJlIGRpZmZpY3VsdC4gVGhlIHNpemUgb2YgdGhlIHRlc3Qgc2Ny aXB0CmFsc28gbWVhbnQgbWFueSB1bnJlbGF0ZWQgdGVzdHMgd2VyZSBydW4gbWFraW5nIHRoZSB0 ZXN0aW5nIHByb2Nlc3MKdW5uZWNlc3NhcmlseSBsZW5ndGh5LgoKVGhpcyBwYXRjaCBmcmFjdHVy ZXMgdGVzdHMvcnVuLWRlYnVnaW5mb2QtZmluZC5zaCBpbnRvIHNtYWxsZXIsIG1vcmUKbWFuYWdl YWJsZSBpbmRpdmlkdWFsIHRlc3Qgc2NyaXB0IGZpbGVzLiBUaGlzIGVuc3VyZXMgdGhhdCB3aGVu IGZhaWx1cmUKb2NjdXJzLCBhIHByb2dyYW1tZXIgY2FuIGVhc2lseSBkZXRlcm1pbmUgd2hlcmUg dGhlaXIgcGF0Y2ggd2VudAp3cm9uZy4gSXQgYWxzbyBhbGxvd3MgcHJvZ3JhbW1lcnMgdG8gc3Bl Y2lmeSBleGFjdGx5IHdoaWNoIHRlc3RzIHRvCnJ1biwgbWFraW5nIHRlc3RpbmcgbW9yZSBlZmZp Y2llbnQuIFJlZHVuZGFuY2llcyBhcmUgYWxzbyByZWR1Y2VkIGJ5CnBsYWNpbmcgY29kZSBpbiB0 ZXN0cy90ZXN0LXN1YnIuc2guCgpTaWduZWQtb2ZmLWJ5OiBOb2FoIFNhbmNpIDxuc2FuY2lAcmVk aGF0LmNvbT4KLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDMgKwogTWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy ICstCiB0ZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjYgKwog dGVzdHMvTWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMzICstCiB0ZXN0 cy9ydW4tZGVidWdpbmZvZC0wMDAtcGVybWlzc2lvbi5zaCAgICAgfCAgODIgKysrCiB0ZXN0cy9y dW4tZGVidWdpbmZvZC1hcmNoaXZlLWdyb29tLnNoICAgICAgfCAxNTEgKysrKwogdGVzdHMvcnVu LWRlYnVnaW5mb2QtYXJjaGl2ZS1yZW5hbWUuc2ggICAgIHwgIDkyICsrKwogdGVzdHMvcnVuLWRl YnVnaW5mb2QtYXJjaGl2ZS10ZXN0LnNoICAgICAgIHwgIDgwICsrCiB0ZXN0cy9ydW4tZGVidWdp bmZvZC1hcnRpZmFjdC1ydW5uaW5nLnNoICAgfCAxMTggKysrCiB0ZXN0cy9ydW4tZGVidWdpbmZv ZC1kbG9wZW4uc2ggICAgICAgICAgICAgfCAgODAgKysKIHRlc3RzL3J1bi1kZWJ1Z2luZm9kLWR1 cGxpY2F0ZS11cmxzLnNoICAgICB8ICA0NyArKwogdGVzdHMvcnVuLWRlYnVnaW5mb2QtZXh0cmFj dGlvbi5zaCAgICAgICAgIHwgIDk4ICsrKwogdGVzdHMvcnVuLWRlYnVnaW5mb2QtZmQtcHJlZmV0 Y2gtY2FjaGVzLnNoIHwgIDU1ICsrCiB0ZXN0cy9ydW4tZGVidWdpbmZvZC1mZWRlcmF0aW9uLWxp bmsuc2ggICAgfCAxNTggKysrKwogdGVzdHMvcnVuLWRlYnVnaW5mb2QtZmVkZXJhdGlvbi1tZXRy aWNzLnNoIHwgMjExICsrKysrKwogdGVzdHMvcnVuLWRlYnVnaW5mb2QtZmVkZXJhdGlvbi1zcWxp dGUuc2ggIHwgMTk5ICsrKysrCiB0ZXN0cy9ydW4tZGVidWdpbmZvZC1maWxlLnNoICAgICAgICAg ICAgICAgfCAgMzggKwogdGVzdHMvcnVuLWRlYnVnaW5mb2QtZmluZC5zaCAgICAgICAgICAgICAg IHwgODA3IC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogdGVzdHMvcnVuLWRlYnVnaW5mb2QtbWFsZm9y bWVkLnNoICAgICAgICAgIHwgMTA2ICsrKwogdGVzdHMvcnVuLWRlYnVnaW5mb2Qtbm8tdXJscy5z aCAgICAgICAgICAgIHwgIDM3ICsKIHRlc3RzL3J1bi1kZWJ1Z2luZm9kLXF1ZXJ5LXJldHJ5LnNo ICAgICAgICB8ICAzMyArCiB0ZXN0cy9ydW4tZGVidWdpbmZvZC1yZWdleC5zaCAgICAgICAgICAg ICAgfCAgOTQgKysrCiB0ZXN0cy9ydW4tZGVidWdpbmZvZC1zaXpldGltZS5zaCAgICAgICAgICAg fCAgNzQgKysKIHRlc3RzL3J1bi1kZWJ1Z2luZm9kLXRtcC1ob21lLnNoICAgICAgICAgICB8IDEy MSArKysKIHRlc3RzL3J1bi1kZWJ1Z2luZm9kLXdyaXRhYmxlLnNoICAgICAgICAgICB8ICA4MSAr KysKIHRlc3RzL3Rlc3Qtc3Vici5zaCAgICAgICAgICAgICAgICAgICAgICAgICB8IDEzMiArKyst CiAyNiBmaWxlcyBjaGFuZ2VkLCAyMTQ2IGluc2VydGlvbnMoKyksIDgxMiBkZWxldGlvbnMoLSkK IGNyZWF0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9ydW4tZGVidWdpbmZvZC0wMDAtcGVybWlzc2lvbi5z aAogY3JlYXRlIG1vZGUgMTAwNzU1IHRlc3RzL3J1bi1kZWJ1Z2luZm9kLWFyY2hpdmUtZ3Jvb20u c2gKIGNyZWF0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9ydW4tZGVidWdpbmZvZC1hcmNoaXZlLXJlbmFt ZS5zaAogY3JlYXRlIG1vZGUgMTAwNzU1IHRlc3RzL3J1bi1kZWJ1Z2luZm9kLWFyY2hpdmUtdGVz dC5zaAogY3JlYXRlIG1vZGUgMTAwNzU1IHRlc3RzL3J1bi1kZWJ1Z2luZm9kLWFydGlmYWN0LXJ1 bm5pbmcuc2gKIGNyZWF0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9ydW4tZGVidWdpbmZvZC1kbG9wZW4u c2gKIGNyZWF0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9ydW4tZGVidWdpbmZvZC1kdXBsaWNhdGUtdXJs cy5zaAogY3JlYXRlIG1vZGUgMTAwNzU1IHRlc3RzL3J1bi1kZWJ1Z2luZm9kLWV4dHJhY3Rpb24u c2gKIGNyZWF0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9ydW4tZGVidWdpbmZvZC1mZC1wcmVmZXRjaC1j YWNoZXMuc2gKIGNyZWF0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9ydW4tZGVidWdpbmZvZC1mZWRlcmF0 aW9uLWxpbmsuc2gKIGNyZWF0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9ydW4tZGVidWdpbmZvZC1mZWRl cmF0aW9uLW1ldHJpY3Muc2gKIGNyZWF0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9ydW4tZGVidWdpbmZv ZC1mZWRlcmF0aW9uLXNxbGl0ZS5zaAogY3JlYXRlIG1vZGUgMTAwNzU1IHRlc3RzL3J1bi1kZWJ1 Z2luZm9kLWZpbGUuc2gKIGRlbGV0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9ydW4tZGVidWdpbmZvZC1m aW5kLnNoCiBjcmVhdGUgbW9kZSAxMDA3NTUgdGVzdHMvcnVuLWRlYnVnaW5mb2QtbWFsZm9ybWVk LnNoCiBjcmVhdGUgbW9kZSAxMDA3NTUgdGVzdHMvcnVuLWRlYnVnaW5mb2Qtbm8tdXJscy5zaAog Y3JlYXRlIG1vZGUgMTAwNzU1IHRlc3RzL3J1bi1kZWJ1Z2luZm9kLXF1ZXJ5LXJldHJ5LnNoCiBj cmVhdGUgbW9kZSAxMDA3NTUgdGVzdHMvcnVuLWRlYnVnaW5mb2QtcmVnZXguc2gKIGNyZWF0ZSBt b2RlIDEwMDc1NSB0ZXN0cy9ydW4tZGVidWdpbmZvZC1zaXpldGltZS5zaAogY3JlYXRlIG1vZGUg MTAwNzU1IHRlc3RzL3J1bi1kZWJ1Z2luZm9kLXRtcC1ob21lLnNoCiBjcmVhdGUgbW9kZSAxMDA3 NTUgdGVzdHMvcnVuLWRlYnVnaW5mb2Qtd3JpdGFibGUuc2gKCmRpZmYgLS1naXQgYS9DaGFuZ2VM b2cgYi9DaGFuZ2VMb2cKaW5kZXggMTJiOGY0MDMuLjBhZWFjMTc1IDEwMDY0NAotLS0gYS9DaGFu Z2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNiBAQAorMjAyMS0wOC0yMyAgTm9haCBT YW5jaSAgPG5zYW5jaUByZWRoYXQuY29tCisJKiBDaGFuZ2VMb2c6IHJlbW92ZWQgLS1zaWduIGZs YWcgb24gcnBtYnVpbGQKKwogMjAyMS0wNy0yOCAgTWFyayBXaWVsYWFyZCAgPG1hcmtAa2xvbXAu b3JnPgogCiAJKiBjb25maWd1cmUuYWMgKEFDX0NIRUNLX0RFQ0xTKTogQWRkIHJlYWxsb2NhcnJh eSBjaGVjay4KZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KaW5kZXggOWM0 N2FmYTkuLjNkZmVmYTlmIDEwMDY0NAotLS0gYS9NYWtlZmlsZS5hbQorKysgYi9NYWtlZmlsZS5h bQpAQCAtNDUsNyArNDUsNyBAQCBkaXN0Y2hlY2staG9vazoKIAljaG1vZCAtUiB1K3cgJChkaXN0 ZGlyKQogCiBycG06IGRpc3QKLQlycG1idWlsZCAtdHMgLS1zaWduIGVsZnV0aWxzLUBQQUNLQUdF X1ZFUlNJT05ALnRhci5iejIKKwlycG1idWlsZCAtdHMgZWxmdXRpbHMtQFBBQ0tBR0VfVkVSU0lP TkAudGFyLmJ6MgogCiBpZiBHQ09WCiAKZGlmZiAtLWdpdCBhL3Rlc3RzL0NoYW5nZUxvZyBiL3Rl c3RzL0NoYW5nZUxvZwppbmRleCAzYmZkMWNhMi4uMjJjNTA3NzMgMTAwNjQ0Ci0tLSBhL3Rlc3Rz L0NoYW5nZUxvZworKysgYi90ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAyMS0w OC0yMCAgTm9haCBTYW5jaSAgPG5zYW5jaUByZWRoYXQuY29tPgorCisJKiBkZWJ1Z2luZm9kLWZp bmQuc2g6IFNlcGFyYXRlZCBmaWxlIGludG8gCisJcnVuLWRlYnVnaW5mb2QtMDAwLXBlcm1pc3Np b24uc2gsIAorCXJ1bi1kZWJ1Z2luZm9kLWFyY2hpdmUtZ3Jvb20uc2gsCisJcnVuLWRlYnVnaW5m b2QtYXJjaGl2ZS1yZW5hbWUuc2gsCisJcnVuLWRlYnVnaW5mb2QtYXJjaGl2ZS10ZXN0LnNoLAor CXJ1bi1kZWJ1Z2luZm9kLWFydGlmYWN0LXJ1bm5pbmcuc2gsCisJcnVuLWRlYnVnaW5mb2QtZGxv cGVuLnNoLAorCXJ1bi1kZWJ1Z2luZm9kLWR1cGxpY2F0ZS11cmxzLnNoLAorCXJ1bi1kZWJ1Z2lu Zm9kLWV4dHJhY3Rpb24uc2gsCisJcnVuLWRlYnVnaW5mb2QtZmQtcHJlZmV0Y2gtY2FjaGVzLnNo LAorCXJ1bi1kZWJ1Z2luZm9kLWZlZGVyYXRpb24tbGluay5zaCwKKwlydW4tZGVidWdpbmZvZC1m ZWRlcmF0aW9uLW1ldHJpY3Muc2gsCisJcnVuLWRlYnVnaW5mb2QtZmVkZXJhdGlvbi1zcWxpdGUu c2gsCisJcnVuLWRlYnVnaW5mb2QtZmlsZS5zaCwKKwlydW4tZGVidWdpbmZvZC1tYWxmb3JtZWQu c2gsCisJcnVuLWRlYnVnaW5mb2Qtbm8tdXJscy5zaCwKKwlydW4tZGVidWdpbmZvZC1xdWVyeS1y ZXRyeS5zaCwKKwlydW4tZGVidWdpbmZvZC1yZWdleC5zaCwKKwlydW4tZGVidWdpbmZvZC1zaXpl dGltZS5zaCwKKwlydW4tZGVidWdpbmZvZC10bXAtaG9tZS5zaCwgYW5kCisJcnVuLWRlYnVnaW5m b2Qtd3JpdGFibGUuc2gKKwkqIHRlc3RzL01ha2VmaWxlLmFtOiBBZGRlZCB0aGUgYWJvdmUgbmV3 IGZpbGVzIHRvIHRoZSB0ZXN0IHN1aXRlCisJKiB0ZXN0cy90ZXN0LXN1YnIuc2g6IEFkZGVkIHNv bWUgZ2VuZXJhbCBmdW5jdGlvbnMgZm9yIGFib3ZlIHRlc3RzCisKIDIwMjEtMDgtMDQgIE1hcmsg V2llbGFhcmQgIDxtYXJrQGtsb21wLm9yZz4KIAogCVBSMjgxOTAKZGlmZiAtLWdpdCBhL3Rlc3Rz L01ha2VmaWxlLmFtIGIvdGVzdHMvTWFrZWZpbGUuYW0KaW5kZXggNDI5NjQ5ZjQuLjQ2ZmZlMzAx IDEwMDY0NAotLS0gYS90ZXN0cy9NYWtlZmlsZS5hbQorKysgYi90ZXN0cy9NYWtlZmlsZS5hbQpA QCAtMjExLDcgKzIxMSwxNiBAQCBpZiBERUJVR0lORk9ECiBjaGVja19QUk9HUkFNUyArPSBkZWJ1 Z2luZm9kX2J1aWxkX2lkX2ZpbmQKICMgV2l0aCB0aGUgZHVtbXkgZGVsZWdhdGlvbiBkb2Vzbid0 IHdvcmsKIGlmICFEVU1NWV9MSUJERUJVR0lORk9ECi1URVNUUyArPSBydW4tZGVidWdpbmZvZC1m aW5kLnNoCitURVNUUyArPSBydW4tZGVidWdpbmZvZC1kbG9wZW4uc2ggICAgICAgICAgICAgcnVu LWRlYnVnaW5mb2QtYXJ0aWZhY3QtcnVubmluZy5zaCBcCisgICAgICAgICBydW4tZGVidWdpbmZv ZC1mZC1wcmVmZXRjaC1jYWNoZXMuc2ggcnVuLWRlYnVnaW5mb2QtcmVnZXguc2ggXAorICAgICAg ICAgcnVuLWRlYnVnaW5mb2QtZHVwbGljYXRlLXVybHMuc2ggICAgIHJ1bi1kZWJ1Z2luZm9kLWZp bGUuc2ggXAorICAgICAgICAgcnVuLWRlYnVnaW5mb2Qtc2l6ZXRpbWUuc2ggICAgICAgICAgIHJ1 bi1kZWJ1Z2luZm9kLW1hbGZvcm1lZC5zaCBcCisgICAgICAgICBydW4tZGVidWdpbmZvZC0wMDAt cGVybWlzc2lvbi5zaCAgICAgcnVuLWRlYnVnaW5mb2QtdG1wLWhvbWUuc2ggXAorICAgICAgICAg cnVuLWRlYnVnaW5mb2Qtd3JpdGFibGUuc2ggICAgICAgICAgIHJ1bi1kZWJ1Z2luZm9kLW5vLXVy bHMuc2ggXAorICAgICAgICAgcnVuLWRlYnVnaW5mb2QtcXVlcnktcmV0cnkuc2ggICAgICAgIHJ1 bi1kZWJ1Z2luZm9kLWV4dHJhY3Rpb24uc2ggXAorICAgICAgICAgcnVuLWRlYnVnaW5mb2QtYXJj aGl2ZS1ncm9vbS5zaCAgICAgIHJ1bi1kZWJ1Z2luZm9kLWFyY2hpdmUtcmVuYW1lLnNoIFwKKyAg ICAgICAgIHJ1bi1kZWJ1Z2luZm9kLWFyY2hpdmUtdGVzdC5zaCAgICAgICBydW4tZGVidWdpbmZv ZC1mZWRlcmF0aW9uLXNxbGl0ZS5zaCBcCisgICAgICAgICBydW4tZGVidWdpbmZvZC1mZWRlcmF0 aW9uLWxpbmsuc2ggICAgcnVuLWRlYnVnaW5mb2QtZmVkZXJhdGlvbi1tZXRyaWNzLnNoIAogZW5k aWYKIGVuZGlmCiAKQEAgLTQ3NCw4ICs0ODMsMjYgQEAgRVhUUkFfRElTVCA9IHJ1bi1hcmV4dHJh Y3Quc2ggcnVuLWFyc3ltdGVzdC5zaCBydW4tYXIuc2ggXAogCSAgICAgcnVuLWVsZmNsYXNzaWZ5 LnNoIHJ1bi1lbGZjbGFzc2lmeS1zZWxmLnNoIFwKIAkgICAgIHJ1bi1kaXNhc20tcmlzY3Y2NC5z aCBcCiAJICAgICB0ZXN0ZmlsZS1yaXNjdjY0LWRpczEuby5iejIgdGVzdGZpbGUtcmlzY3Y2NC1k aXMxLmV4cGVjdC5iejIgXAotICAgICAgICAgICAgIHJ1bi1kZWJ1Z2luZm9kLWZpbmQuc2ggXAot CSAgICAgZGVidWdpbmZvZC1ycG1zL2ZlZG9yYTMwL2hlbGxvMi0xLjAtMi5zcmMucnBtIFwKKyAg ICAgICAgICAgICBydW4tZGVidWdpbmZvZC1mZC1wcmVmZXRjaC1jYWNoZXMuc2ggXAorICAgICAg ICAgICAgIHJ1bi1kZWJ1Z2luZm9kLXJlZ2V4LnNoIFwKKyAgICAgICAgICAgICBydW4tZGVidWdp bmZvZC1kdXBsaWNhdGUtdXJscy5zaCBcCisgICAgICAgICAgICAgcnVuLWRlYnVnaW5mb2QtZmls ZS5zaCBcCisgICAgICAgICAgICAgcnVuLWRlYnVnaW5mb2Qtc2l6ZXRpbWUuc2ggXAorICAgICAg ICAgICAgIHJ1bi1kZWJ1Z2luZm9kLWRsb3Blbi5zaCBcCisgICAgICAgICAgICAgcnVuLWRlYnVn aW5mb2QtbWFsZm9ybWVkLnNoIFwKKyAgICAgICAgICAgICBydW4tZGVidWdpbmZvZC0wMDAtcGVy bWlzc2lvbi5zaCBcCisgICAgICAgICAgICAgcnVuLWRlYnVnaW5mb2QtdG1wLWhvbWUuc2ggXAor ICAgICAgICAgICAgIHJ1bi1kZWJ1Z2luZm9kLXdyaXRhYmxlLnNoIFwKKyAgICAgICAgICAgICBy dW4tZGVidWdpbmZvZC1uby11cmxzLnNoIFwKKyAgICAgICAgICAgICBydW4tZGVidWdpbmZvZC1x dWVyeS1yZXRyeS5zaCBcCisgICAgICAgICAgICAgcnVuLWRlYnVnaW5mb2QtYXJjaGl2ZS1ncm9v bS5zaCBcCisgICAgICAgICAgICAgcnVuLWRlYnVnaW5mb2QtZXh0cmFjdGlvbi5zaCBcCisgICAg ICAgICAgICAgcnVuLWRlYnVnaW5mb2QtYXJjaGl2ZS1yZW5hbWUuc2ggXAorICAgICAgICAgICAg IHJ1bi1kZWJ1Z2luZm9kLWZlZGVyYXRpb24tbGluay5zaCBcCisgICAgICAgICAgICAgcnVuLWRl YnVnaW5mb2QtZmVkZXJhdGlvbi1tZXRyaWNzLnNoIFwKKyAgICAgICAgICAgICBydW4tZGVidWdp bmZvZC1hcnRpZmFjdC1ydW5uaW5nLnNoIFwKKyAgICAgICAgICAgICBydW4tZGVidWdpbmZvZC1m ZWRlcmF0aW9uLXNxbGl0ZS5zaCBcCisgICAgICAgICAgICAgZGVidWdpbmZvZC1ycG1zL2ZlZG9y YTMwL2hlbGxvMi0xLjAtMi5zcmMucnBtIFwKIAkgICAgIGRlYnVnaW5mb2QtcnBtcy9mZWRvcmEz MC9oZWxsbzItMS4wLTIueDg2XzY0LnJwbSBcCiAJICAgICBkZWJ1Z2luZm9kLXJwbXMvZmVkb3Jh MzAvaGVsbG8yLWRlYnVnaW5mby0xLjAtMi54ODZfNjQucnBtIFwKIAkgICAgIGRlYnVnaW5mb2Qt cnBtcy9mZWRvcmEzMC9oZWxsbzItZGVidWdzb3VyY2UtMS4wLTIueDg2XzY0LnJwbSBcCmRpZmYg LS1naXQgYS90ZXN0cy9ydW4tZGVidWdpbmZvZC0wMDAtcGVybWlzc2lvbi5zaCBiL3Rlc3RzL3J1 bi1kZWJ1Z2luZm9kLTAwMC1wZXJtaXNzaW9uLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4 IDAwMDAwMDAwLi4yZWI0YzUxZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3J1bi1kZWJ1Z2lu Zm9kLTAwMC1wZXJtaXNzaW9uLnNoCkBAIC0wLDAgKzEsODIgQEAKKyMhL3Vzci9iaW4vZW52IGJh c2gKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjEgUmVkIEhhdCwgSW5jLgorIyBUaGlzIGZp bGUgaXMgcGFydCBvZiBlbGZ1dGlscy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGlj ZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgZWxm dXRpbHMgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg YnV0CisjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworLiAkc3JjZGlyL3Rlc3Qt c3Vici5zaCAgIyBpbmNsdWRlcyBzZXQgLWUKKworIyBmb3IgdGVzdCBjYXNlIGRlYnVnZ2luZywg dW5jb21tZW50Ogorc2V0IC14CisKK0RCPSR7UFdEfS8uZGVidWdpbmZvZF90bXAuc3FsaXRlCitl eHBvcnQgREVCVUdJTkZPRF9DQUNIRV9QQVRIPSR7UFdEfS8uY2xpZW50X2NhY2hlCitnZXRfcG9y dHMKK2VudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCBERUJVR0lORk9EX1VSTFM9ICR7YWJzX2J1 aWxkZGlyfS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QgJFZFUkJPU0UgLUYgLXAgJFBPUlQxIFwK KyAgICAtdDAgLWcwIC12ICR7UFdEfSA+IHZsb2ckUE9SVDEgMj4mMSAmCitQSUQxPSQhCit0ZW1w ZmlsZXMgdmxvZyRQT1JUMQorZXJyZmlsZXMgdmxvZyRQT1JUMQorIyBTZXJ2ZXIgbXVzdCBiZWNv bWUgcmVhZHkKK3dhaXRfcmVhZHkgJFBPUlQxICdyZWFkeScgMQorZXhwb3J0IERFQlVHSU5GT0Rf VVJMUz1odHRwOi8vMTI3LjAuMC4xOiRQT1JUMS8gICAjIG9yIHdpdGhvdXQgdHJhaWxpbmcgLwor CisjIEJlIHBhdGllbnQgd2hlbiBydW4gb24gYSBidXN5IG1hY2hpbmUgdGhpbmdzIG1pZ2h0IHRh a2UgYSBiaXQuCitleHBvcnQgREVCVUdJTkZPRF9USU1FT1VUPTEwCisKKyMgQ2hlY2sgdGhyZWFk IGNvbW0gbmFtZXMKK3BzIC1xICRQSUQxIC1lIC1MIC1vICclcCAlYyAlYScgfCBncmVwIGdyb29t CitwcyAtcSAkUElEMSAtZSAtTCAtbyAnJXAgJWMgJWEnIHwgZ3JlcCBzY2FuCitwcyAtcSAkUElE MSAtZSAtTCAtbyAnJXAgJWMgJWEnIHwgZ3JlcCB0cmF2ZXJzZQorCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KyMgUFIyNTYyOAorcm0gLXJmICRERUJVR0lORk9EX0NBQ0hFX1BBVEggIyBjbGVhbiBpdCBmcm9t IHByZXZpb3VzIHRlc3RzCisKKyMgVGhlIHF1ZXJ5IGlzIGRlc2lnbmVkIHRvIGZhaWwsIHdoaWxl IHRoZSAwMDAtcGVybWlzc2lvbiBmaWxlIHNob3VsZCBiZSBjcmVhdGVkLgordGVzdHJ1biAke2Fi c190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAwMTIz NDU2NyB8fCB0cnVlCitpZiBbICEgLWYgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSC8wMTIzNDU2Ny9k ZWJ1Z2luZm8gXTsgdGhlbgorICBlY2hvICJjb3VsZCBub3QgZmluZCBjYWNoZSBpbiAkREVCVUdJ TkZPRF9DQUNIRV9QQVRIIgorICBlcnIKK2ZpCisKK2lmIFsgLXIgJERFQlVHSU5GT0RfQ0FDSEVf UEFUSC8wMTIzNDU2Ny9kZWJ1Z2luZm8gXTsgdGhlbgorICBlY2hvICJUaGUgY2FjaGUgJERFQlVH SU5GT0RfQ0FDSEVfUEFUSC8wMTIzNDU2Ny9kZWJ1Z2luZm8gaXMgcmVhZGFibGUiCisgIGVycgor ZmkKKworYnl0ZWNvdW50X2JlZm9yZT1gY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMS9t ZXRyaWNzIHwgZ3JlcCAnaHR0cF9yZXNwb25zZXNfdHJhbnNmZXJfYnl0ZXNfY291bnR7Y29kZT0i NDA0In0nYAordGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZv ZC1maW5kIGRlYnVnaW5mbyAwMTIzNDU2NyB8fCB0cnVlCitieXRlY291bnRfYWZ0ZXI9YGN1cmwg LXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDEvbWV0cmljcyB8IGdyZXAgJ2h0dHBfcmVzcG9uc2Vz X3RyYW5zZmVyX2J5dGVzX2NvdW50e2NvZGU9IjQwNCJ9J2AKK2lmIFsgIiRieXRlY291bnRfYmVm b3JlIiAhPSAiJGJ5dGVjb3VudF9hZnRlciIgXTsgdGhlbgorICBlY2hvICJodHRwX3Jlc3BvbnNl c190cmFuc2Zlcl9ieXRlc19jb3VudHtjb2RlPSI0MDQifSBoYXMgY2hhbmdlZC4iCisgIGVycgor ZmkKKworIyBzZXQgY2FjaGVfbWlzc19zIHRvIDAgYW5kIHNsZWVwIDEgdG8gbWFrZSB0aGUgbXRp bWUgZXhwaXJlLgorZWNobyAwID4gJERFQlVHSU5GT0RfQ0FDSEVfUEFUSC9jYWNoZV9taXNzX3MK K3NsZWVwIDEKK2J5dGVjb3VudF9iZWZvcmU9YGN1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9S VDEvbWV0cmljcyB8IGdyZXAgJ2h0dHBfcmVzcG9uc2VzX3RyYW5zZmVyX2J5dGVzX2NvdW50e2Nv ZGU9IjQwNCJ9J2AKK3Rlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVn aW5mb2QtZmluZCBkZWJ1Z2luZm8gMDEyMzQ1NjcgfHwgdHJ1ZQorYnl0ZWNvdW50X2FmdGVyPWBj dXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL21ldHJpY3MgfCBncmVwICdodHRwX3Jlc3Bv bnNlc190cmFuc2Zlcl9ieXRlc19jb3VudHtjb2RlPSI0MDQifSdgCitpZiBbICIkYnl0ZWNvdW50 X2JlZm9yZSIgPT0gIiRieXRlY291bnRfYWZ0ZXIiIF07IHRoZW4KKyAgZWNobyAiaHR0cF9yZXNw b25zZXNfdHJhbnNmZXJfYnl0ZXNfY291bnR7Y29kZT0iNDA0In0gc2hvdWxkIGJlIGluY3JlbWVu dGVkLiIKKyAgZXJyCitmaQorCitraWxsICRQSUQxCit3YWl0ICRQSUQxCitQSUQxPTAKK2V4aXQg MApkaWZmIC0tZ2l0IGEvdGVzdHMvcnVuLWRlYnVnaW5mb2QtYXJjaGl2ZS1ncm9vbS5zaCBiL3Rl c3RzL3J1bi1kZWJ1Z2luZm9kLWFyY2hpdmUtZ3Jvb20uc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUK aW5kZXggMDAwMDAwMDAuLjFhYjAyMDZkCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcnVuLWRl YnVnaW5mb2QtYXJjaGl2ZS1ncm9vbS5zaApAQCAtMCwwICsxLDE1MSBAQAorIyEvdXNyL2Jpbi9l bnYgYmFzaAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBSZWQgSGF0LCBJbmMuCisjIFRo aXMgZmlsZSBpcyBwYXJ0IG9mIGVsZnV0aWxzLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRo ZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIwor IyBlbGZ1dGlscyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLCBidXQKKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisuICRzcmNkaXIv dGVzdC1zdWJyLnNoICAjIGluY2x1ZGVzIHNldCAtZQorIyBmb3IgdGVzdCBjYXNlIGRlYnVnZ2lu ZywgdW5jb21tZW50Ogorc2V0IC14CisjIGZpbmQgYW4gdW51c2VkIHBvcnQgbnVtYmVyCisKK2dl dF9wb3J0cworREI9JHtQV0R9Ly5kZWJ1Z2luZm9kX3RtcC5zcWxpdGUKK2V4cG9ydCBERUJVR0lO Rk9EX0NBQ0hFX1BBVEg9JHtQV0R9Ly5jbGllbnRfY2FjaGUKK2V4cG9ydCBERUJVR0lORk9EX1RJ TUVPVVQ9MTAKK2V4cG9ydCBERUJVR0lORk9EX1VSTFM9J2h0dHA6Ly8xMjcuMC4wLjE6JyRQT1JU MQorCisjIENsZWFuIG9sZCBkaXJpY3RvcmllcworbWtkaXIgUiAke1BXRH0vRgorZW52IExEX0xJ QlJBUllfUEFUSD0kbGRwYXRoICR7YWJzX2J1aWxkZGlyfS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5m b2QgJFZFUkJPU0UgXAorICAgIC1GIC1SIC1kICREQiAtcCAkUE9SVDEgLXQwIC1nMCAtdiBSICR7 UFdEfS9GID4gdmxvZyRQT1JUMSAyPiYxICYKK1BJRDE9JCEKK3RlbXBmaWxlcyB2bG9nJFBPUlQx CitlcnJmaWxlcyB2bG9nJFBPUlQxCisjIFNlcnZlciBtdXN0IGJlY29tZSByZWFkeQord2FpdF9y ZWFkeSAkUE9SVDEgJ3JlYWR5JyAxCisjIEJlIHBhdGllbnQgd2hlbiBydW4gb24gYSBidXN5IG1h Y2hpbmUgdGhpbmdzIG1pZ2h0IHRha2UgYSBiaXQuCisKKyMgQ2hlY2sgdGhyZWFkIGNvbW0gbmFt ZXMKK3BzIC1xICRQSUQxIC1lIC1MIC1vICclcCAlYyAlYScgfCBncmVwIGdyb29tCitwcyAtcSAk UElEMSAtZSAtTCAtbyAnJXAgJWMgJWEnIHwgZ3JlcCBzY2FuCitwcyAtcSAkUElEMSAtZSAtTCAt byAnJXAgJWMgJWEnIHwgZ3JlcCB0cmF2ZXJzZQorCisjIEJ1aWxkIGEgbm9uLXN0cmlwcGVkIGJp bmFyeQorZWNobyAiaW50IG1haW4oKSB7IHJldHVybiAwOyB9IiA+ICR7UFdEfS9GL3Byb2cuYwor Z2NjIC1XbCwtLWJ1aWxkLWlkIC1nIC1vICR7UFdEfS9GL3Byb2cgJHtQV0R9L0YvcHJvZy5jCitC VUlMRElEPWBlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9Ly4uL3Ny Yy9yZWFkZWxmIFwKKyAgICAgICAgICAtYSAke1BXRH0vRi9wcm9nIHwgZ3JlcCAnQnVpbGQgSUQn IHwgY3V0IC1kICcgJyAtZiA3YAordGVtcGZpbGVzICR7UFdEfS9GL3Byb2cgJHtQV0R9L0YvcHJv Zy5jCisKK2NwIC1ydnAgJHthYnNfc3JjZGlyfS9kZWJ1Z2luZm9kLXJwbXMgUgoraWYgWyAiJHpz dGQiID0gImZhbHNlIiBdOyB0aGVuICAjIG51a2UgdGhlIHpzdGQgZmVkb3JhIDMxIG9uZXMKKyAg ICBybSAtdnJmIFIvZGVidWdpbmZvZC1ycG1zL2ZlZG9yYTMxCitmaQora2lsbCAtVVNSMSAkUElE MQorIyBOb3cgdGhlcmUgc2hvdWxkIGJlIDEgZmlsZXMgaW4gdGhlIGluZGV4Cit3YWl0X3JlYWR5 ICRQT1JUMSAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0idHJhdmVyc2UifScgMQord2FpdF9yZWFk eSAkUE9SVDEgJ3RocmVhZF93b3JrX3BlbmRpbmd7cm9sZT0ic2NhbiJ9JyAwCit3YWl0X3JlYWR5 ICRQT1JUMSAndGhyZWFkX2J1c3l7cm9sZT0ic2NhbiJ9JyAwCisKK2NwIC1ydnAgJHthYnNfc3Jj ZGlyfS9kZWJ1Z2luZm9kLXJwbXMgUgoraWYgWyAiJHpzdGQiID0gImZhbHNlIiBdOyB0aGVuICAj IG51a2UgdGhlIHpzdGQgZmVkb3JhIDMxIG9uZXMKKyAgICBybSAtdnJmIFIvZGVidWdpbmZvZC1y cG1zL2ZlZG9yYTMxCitmaQorCit0ZW1wZmlsZXMgdmxvZzMgJERCCitjcCAtcnZwICR7YWJzX3Ny Y2Rpcn0vZGVidWdpbmZvZC10YXJzIFoKK2tpbGwgLVVTUjEgJFBJRDEKKyMgV2FpdCB0aWxsIGJv dGggZmlsZXMgYXJlIGluIHRoZSBpbmRleCBhbmQgc2Nhbi9pbmRleCBmdWxseSBmaW5pc2hlZAor d2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3RvdGFse3JvbGU9InRyYXZlcnNlIn0nIDIK K3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya19wZW5kaW5ne3JvbGU9InNjYW4ifScgMAor d2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF9idXN5e3JvbGU9InNjYW4ifScgMAorIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisjIEFsbCBycG1zIG5lZWQgdG8gYmUgaW4gdGhlIGluZGV4LCBleGNlcHQgdGhlIGR1 bW15IHBlcm1pc3Npb24tMDAwIG9uZQorcnBtcz0kKGZpbmQgUiAtbmFtZSBcKnJwbSB8IGdyZXAg LXYgbm90aGluZyB8IHdjIC1sKQord2FpdF9yZWFkeSAkUE9SVDEgJ3NjYW5uZWRfZmlsZXNfdG90 YWx7c291cmNlPSIucnBtIGFyY2hpdmUifScgJHJwbXMKK3R4ej0kKGZpbmQgWiAtbmFtZSBcKnRh ci54eiB8IHdjIC1sKQorCitraWxsIC1VU1IxICRQSUQxICAjIHR3byBoaXRzIG9mIFNJR1VTUjEg bWF5IGJlIG5lZWRlZCB0byByZXNvbHZlIC5kZWJ1Zy0+ZHd6LT5zcmVmcworIyBXYWl0IHRpbGwg Ym90aCBmaWxlcyBhcmUgaW4gdGhlIGluZGV4IGFuZCBzY2FuL2luZGV4IGZ1bGx5IGZpbmlzaGVk Cit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0idHJhdmVyc2UifScg Mword2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3BlbmRpbmd7cm9sZT0ic2NhbiJ9JyAw Cit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX2J1c3l7cm9sZT0ic2NhbiJ9JyAwCisKKyMgRXhw ZWN0IGFsbCBzb3VyY2UgZmlsZXMgZm91bmQgaW4gdGhlIHJwbXMgKHRoZXkgYXJlIGFsbCBjYWxs ZWQgaGVsbG8uYyA6KQorIyBXZSB3aWxsIG5lZWQgdG8gZXh0cmFjdCBhbGwgcnBtcyAoaW4gdGhl aXIgb3duIGRpcmVjdG9yeSkgYW5kIGNvdWxkIGFsbAorIyBzb3VyY2VzIHJlZmVyZW5jZWQgaW4g dGhlIC5kZWJ1ZyBmaWxlcy4KK21rZGlyIGV4dHJhY3RlZAorY2QgZXh0cmFjdGVkCitzdWJkaXI9 MDsKK25ld3JwbXM9JChmaW5kIC4uL1IgLW5hbWUgXCpcLnJwbSB8IGdyZXAgLXYgbm90aGluZykK K2ZvciBpIGluICRuZXdycG1zOyBkbworICAgIHN1YmRpcj0kWyRzdWJkaXIrMV07CisgICAgbWtk aXIgJHN1YmRpcjsKKyAgICBjZCAkc3ViZGlyOworICAgIGxzIC1sYWggLi4vJGkKKyAgICBycG0y Y3BpbyAuLi8kaSB8IGNwaW8gLWl2ZDsKKyAgICBjZCAuLjsKK2RvbmUKK3NvdXJjZWZpbGVzPSQo ZmluZCAtbmFtZSBcKlxcLmRlYnVnIFwKKyAgICAgICAgICAgICAgfCBlbnYgTERfTElCUkFSWV9Q QVRIPSRsZHBhdGggeGFyZ3MgXAorICAgICAgICAgICAgICAgICR7YWJzX3RvcF9idWlsZGRpcn0v c3JjL3JlYWRlbGYgLS1kZWJ1Zy1kdW1wPWRlY29kZWRsaW5lIFwKKyAgICAgICAgICAgICAgfCBn cmVwIG10aW1lOiB8IHdjIC0tbGluZXMpCitjZCAuLgorcm0gLXJmIGV4dHJhY3RlZAorCit3YWl0 X3JlYWR5ICRQT1JUMSAnZm91bmRfc291cmNlcmVmc190b3RhbHtzb3VyY2U9Ii5ycG0gYXJjaGl2 ZSJ9JyAkc291cmNlZmlsZXMKKworIyBjb21tb24gc291cmNlIGZpbGUgc2hhMQorU0hBPWY0YTFh ODA2MmJlOTk4YWU5M2I4ZjFjZDc0NGEzOThjNmRlNmRiYjEKKyMgZmVkb3JhMzEKK2lmIFsgJHpz dGQgPSB0cnVlIF07IHRoZW4KKyAgICAjIGZlZG9yYTMxIHVzZXMgenN0ZCBjb21wcmVzc2lvbiBv biBycG1zLCBvbGRlciBycG0yY3Bpby9saWJhcmNoaXZlIGNhbid0IGhhbmRsZSBpdAorICAgICMg YW5kIHdlJ3JlIG5vdCB1c2luZyB0aGUgZmFuY3kgLVogJy5ycG09KHJwbTJjcGlvfHpzdGRjYXQp PCcgd29ya2Fyb3VuZCBpbiB0aGlzIHRlc3RzdWl0ZQorICAgIGFyY2hpdmVfdGVzdCA0MjBlOWUz MzA4OTcxZjRiODE3Y2M1YmY4MzkyOGI0MWE2OTA5ZDg4IC91c3Ivc3JjL2RlYnVnL2hlbGxvMy0x LjAtMi54ODZfNjQvZm9vYmFyLy8vLy4vLi4vaGVsbG8uYyAkU0hBCisgICAgYXJjaGl2ZV90ZXN0 IDg3YzA4ZDEyYzc4MTc0ZjEwODJiN2M4ODhiMzIzODIxOWIwZWIyNjUgL3Vzci9zcmMvZGVidWcv aGVsbG8zLTEuMC0yLng4Nl82NC8vL2Zvb2Jhci8uLy4uLy9oZWxsby5jICRTSEEKK2ZpCisjIGZl ZG9yYTMwCithcmNoaXZlX3Rlc3QgYzM2NzA4YTc4NjE4ZDU5N2RlZTE1ZDBkYzk4OWYwOTNjYTVm OTEyMCAvdXNyL3NyYy9kZWJ1Zy9oZWxsbzItMS4wLTIueDg2XzY0L2hlbGxvLmMgJFNIQQorYXJj aGl2ZV90ZXN0IDQxYTIzNmViNjY3YzM2MmExYzQxOTYwMThjYzQ1ODFlMDk3MjJiMWIgL3Vzci9z cmMvZGVidWcvaGVsbG8yLTEuMC0yLng4Nl82NC9oZWxsby5jICRTSEEKKyMgcmhlbDcKK2FyY2hp dmVfdGVzdCBiYzFmZWJmZDAzY2EwNWUwMzBmMGQyMDVmNzY1OWRiMjlmOGE0YjMwIC91c3Ivc3Jj L2RlYnVnL2hlbGxvLTEuMC9oZWxsby5jICRTSEEKK2FyY2hpdmVfdGVzdCBmMGFhMTViOGFiYTRm M2MyOGNhYzNjMmE3MzgwMWZlZmE2NDRhOWYyIC91c3Ivc3JjL2RlYnVnL2hlbGxvLTEuMC9oZWxs by5jICRTSEEKKyMgcmhlbDYKK2FyY2hpdmVfdGVzdCBiYmJmOTJlYmVlNTIyODMxMGUzOTg2MDlj MjNjMmQ3ZDUzZjZlMmY5IC91c3Ivc3JjL2RlYnVnL2hlbGxvLTEuMC9oZWxsby5jICRTSEEKK2Fy Y2hpdmVfdGVzdCBkNDRkNDJjYmQ3ZDkxNWJjOTM4YzgxMzMzYTIxZTM1NWE2MDIyZmI3IC91c3Iv c3JjL2RlYnVnL2hlbGxvLTEuMC9oZWxsby5jICRTSEEKK1JQTV9CVUlMRElEPWQ0NGQ0MmNiZDdk OTE1YmM5MzhjODEzMzNhMjFlMzU1YTYwMjJmYjcgIyBpbiByaGVsNi8gc3ViZGlyCisKKyMgRHJv cCBzb21lIG9mIHRoZSBhcnRpZmFjdHMsIHJ1biBhIGdyb29tIGN5Y2xlOyBjb25maXJtIHRoYXQK KyMgZGVidWdpbmZvZCBoYXMgZm9yZ290dGVuIHRoZW0sIGJ1dCByZW1lbWJlcnMgb3RoZXJzCity bSAtciBSL2RlYnVnaW5mb2QtcnBtcy9yaGVsNi8qCitraWxsIC1VU1IyICRQSUQxICAjIGdyb29t IGN5Y2xlCisjIyAxIGdyb29tIGN5Y2xlIGFscmVhZHkgdG9vayBwbGFjZSBhdC9zb29uLWFmdGVy IHN0YXJ0dXAsIHNvIC1VU1IyIG1ha2VzIDIKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29y a190b3RhbHtyb2xlPSJncm9vbSJ9JyAxCisjIEV4cGVjdCA0IHJwbXMgY29udGFpbmluZyAyIGJ1 aWxkaWRzIHRvIGJlIGRlbGV0ZWQgYnkgdGhlIGdyb29tCit3YWl0X3JlYWR5ICRQT1JUMSAnZ3Jv b21lZF90b3RhbHtkZWNpc2lvbj0ic3RhbGUifScgNAorCitybSAtcmYgJERFQlVHSU5GT0RfQ0FD SEVfUEFUSCAjIGNsZWFuIGl0IGZyb20gcHJldmlvdXMgdGVzdHMKKworIyB0aGlzIGlzIG9uZSBv ZiB0aGUgYnVpbGRpZHMgZnJvbSB0aGUgZ3Jvb20tZGVsZXRlZCBycG1zCit0ZXN0cnVuICR7YWJz X3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZXhlY3V0YWJsZSAkUlBN X0JVSUxESUQgJiYgZmFsc2UgfHwgdHJ1ZQorCisjIGJ1dCB0aGlzIG9uZSB3YXMgbm90IGRlbGV0 ZWQgc28gc2hvdWxkIGJlIHN0aWxsIGFyb3VuZAordGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9 L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGV4ZWN1dGFibGUgJEJVSUxESUQgfHwgdHJ1ZQor CitraWxsICRQSUQxCit3YWl0ICRQSUQxCitQSUQxPTAKK2V4aXQgMApkaWZmIC0tZ2l0IGEvdGVz dHMvcnVuLWRlYnVnaW5mb2QtYXJjaGl2ZS1yZW5hbWUuc2ggYi90ZXN0cy9ydW4tZGVidWdpbmZv ZC1hcmNoaXZlLXJlbmFtZS5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMC4u NTRhNTEzYTkKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1hcmNoaXZl LXJlbmFtZS5zaApAQCAtMCwwICsxLDkyIEBACisjIS91c3IvYmluL2VudiBiYXNoCisjCisjIENv cHlyaWdodCAoQykgMjAxOS0yMDIxIFJlZCBIYXQsIEluYy4KKyMgVGhpcyBmaWxlIGlzIHBhcnQg b2YgZWxmdXRpbHMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisj IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIGVsZnV0aWxzIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorIyBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisj IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMK KyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKy4gJHNyY2Rpci90ZXN0LXN1YnIuc2ggICMg aW5jbHVkZXMgc2V0IC1lCisjIGZvciB0ZXN0IGNhc2UgZGVidWdnaW5nLCB1bmNvbW1lbnQ6Citz ZXQgLXgKKworZ2V0X3BvcnRzCitEQj0ke1BXRH0vLmRlYnVnaW5mb2RfdG1wLnNxbGl0ZQorZXhw b3J0IERFQlVHSU5GT0RfQ0FDSEVfUEFUSD0ke1BXRH0vLmNsaWVudF9jYWNoZQorZXhwb3J0IERF QlVHSU5GT0RfVElNRU9VVD0xMAorZXhwb3J0IERFQlVHSU5GT0RfVVJMUz0naHR0cDovLzEyNy4w LjAuMTonJFBPUlQxCit0ZW1wZmlsZXMgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSCAkREIKKyMgQ2xl YW4gb2xkIGRpcmljdG9yaWVzCitta2RpciBSICR7UFdEfS9GCitlbnYgTERfTElCUkFSWV9QQVRI PSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9Ly4uL2RlYnVnaW5mb2QvZGVidWdpbmZvZCAkVkVSQk9T RSBcCisgICAgLUYgLVIgLWQgJERCIC1wICRQT1JUMSAtdDAgLWcwIC12IFIgJHtQV0R9L0YgPiB2 bG9nJFBPUlQxIDI+JjEgJgorCitQSUQxPSQhCit0ZW1wZmlsZXMgdmxvZyRQT1JUMQorZXJyZmls ZXMgdmxvZyRQT1JUMQorIyBTZXJ2ZXIgbXVzdCBiZWNvbWUgcmVhZHkKK3dhaXRfcmVhZHkgJFBP UlQxICdyZWFkeScgMQorIyBDaGVjayB0aHJlYWQgY29tbSBuYW1lcworcHMgLXEgJFBJRDEgLWUg LUwgLW8gJyVwICVjICVhJyB8IGdyZXAgZ3Jvb20KK3BzIC1xICRQSUQxIC1lIC1MIC1vICclcCAl YyAlYScgfCBncmVwIHNjYW4KK3BzIC1xICRQSUQxIC1lIC1MIC1vICclcCAlYyAlYScgfCBncmVw IHRyYXZlcnNlCisKK2NwIC1ydnAgJHthYnNfc3JjZGlyfS9kZWJ1Z2luZm9kLXJwbXMgUgoraWYg WyAiJHpzdGQiID0gImZhbHNlIiBdOyB0aGVuICAjIG51a2UgdGhlIHpzdGQgZmVkb3JhIDMxIG9u ZXMKKyAgICBybSAtdnJmIFIvZGVidWdpbmZvZC1ycG1zL2ZlZG9yYTMxCitmaQorCitraWxsIC1V U1IxICRQSUQxCisjIE5vdyB0aGVyZSBzaG91bGQgYmUgMSBmaWxlcyBpbiB0aGUgaW5kZXgKK3dh aXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9JyAxCit3 YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2FuIn0nIDAKK3dh aXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKKworIyBjb21tb24g c291cmNlIGZpbGUgc2hhMQorU0hBPWY0YTFhODA2MmJlOTk4YWU5M2I4ZjFjZDc0NGEzOThjNmRl NmRiYjEKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyBQUjI2ODEwOiBOb3cgcmVuYW1lIHNvbWUgZmls ZXMgaW4gdGhlIFIgZGlyZWN0b3J5LCB0aGVuIHJlc2Nhbiwgc28KKyMgdGhlcmUgYXJlIHR3byBj b3BpZXMgb2YgdGhlIHNhbWUgYnVpbGRpZCBpbiB0aGUgaW5kZXgsIG9uZSBmb3IgdGhlCisjIG5v LWxvbmdlci1leGlzdGluZyBmaWxlIG5hbWUsIGFuZCBvbmUgdW5kZXIgdGhlIG5ldyBuYW1lLgor CisjIHJ1biBhIGdyb29tIGN5Y2xlIHRvIGZvcmNlIHNlcnZlciB0byBkcm9wIGl0cyBmZGNhY2hl CitraWxsIC1VU1IyICRQSUQxICAjIGdyb29tIGN5Y2xlCit3YWl0X3JlYWR5ICRQT1JUMSAndGhy ZWFkX3dvcmtfdG90YWx7cm9sZT0iZ3Jvb20ifScgMgorIyBtb3ZlIGl0IGFyb3VuZCBhIGNvdXBs ZSBvZiB0aW1lcyB0byBtYWtlIGl0IGxpa2VseSB0byBoaXQgYSBub25leGlzdGVudCBlbnRyeSBk dXJpbmcgaXRlcmF0aW9uCittdiBSL2RlYnVnaW5mb2QtcnBtcy9yaGVsNyBSL2RlYnVnaW5mb2Qt cnBtcy9yaGVsN3JlbmFtZWQKK2tpbGwgLVVTUjEgJFBJRDEgICMgc2NhbiBjeWNsZQord2FpdF9y ZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3RvdGFse3JvbGU9InRyYXZlcnNlIn0nIDIKK3dhaXRf cmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya19wZW5kaW5ne3JvbGU9InNjYW4ifScgMAord2FpdF9y ZWFkeSAkUE9SVDEgJ3RocmVhZF9idXN5e3JvbGU9InNjYW4ifScgMAorbXYgUi9kZWJ1Z2luZm9k LXJwbXMvcmhlbDdyZW5hbWVkIFIvZGVidWdpbmZvZC1ycG1zL3JoZWw3cmVuYW1lZDIKK2tpbGwg LVVTUjEgJFBJRDEgICMgc2NhbiBjeWNsZQord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3Jr X3RvdGFse3JvbGU9InRyYXZlcnNlIn0nIDMKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29y a19wZW5kaW5ne3JvbGU9InNjYW4ifScgMAord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF9idXN5 e3JvbGU9InNjYW4ifScgMAorbXYgUi9kZWJ1Z2luZm9kLXJwbXMvcmhlbDdyZW5hbWVkMiBSL2Rl YnVnaW5mb2QtcnBtcy9yaGVsN3JlbmFtZWQzCitraWxsIC1VU1IxICRQSUQxICAjIHNjYW4gY3lj bGUKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9 JyA0Cit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2FuIn0n IDAKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKKworIyBy ZXRlc3QgcmhlbDcKK2FyY2hpdmVfdGVzdCBiYzFmZWJmZDAzY2EwNWUwMzBmMGQyMDVmNzY1OWRi MjlmOGE0YjMwIC91c3Ivc3JjL2RlYnVnL2hlbGxvLTEuMC9oZWxsby5jICRTSEEKK2FyY2hpdmVf dGVzdCBmMGFhMTViOGFiYTRmM2MyOGNhYzNjMmE3MzgwMWZlZmE2NDRhOWYyIC91c3Ivc3JjL2Rl YnVnL2hlbGxvLTEuMC9oZWxsby5jICRTSEEKKworZWdyZXAgJyhsaWJjLmVycm9yLipyaGVsNyl8 KGJjMWZlYmZkMDNjYSl8KGYwYWExNWI4YWJhKScgdmxvZyRQT1JUMQorCitraWxsICRQSUQxCit3 YWl0ICRQSUQxCitQSUQxPTAKK2V4aXQgMDsKZGlmZiAtLWdpdCBhL3Rlc3RzL3J1bi1kZWJ1Z2lu Zm9kLWFyY2hpdmUtdGVzdC5zaCBiL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLWFyY2hpdmUtdGVzdC5z aApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMC4uODk3NzJmMWYKLS0tIC9kZXYv bnVsbAorKysgYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1hcmNoaXZlLXRlc3Quc2gKQEAgLTAsMCAr MSw4MCBAQAorIyEvdXNyL2Jpbi9lbnYgYmFzaAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAy MSBSZWQgSGF0LCBJbmMuCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGVsZnV0aWxzLgorIworIyBU aGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorIworIyBlbGZ1dGlscyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LgorCisuICRzcmNkaXIvdGVzdC1zdWJyLnNoICAjIGluY2x1ZGVzIHNldCAtZQorCisj IGZvciB0ZXN0IGNhc2UgZGVidWdnaW5nLCB1bmNvbW1lbnQ6CitzZXQgLXgKKworIyBmaW5kIGFu IHVudXNlZCBwb3J0IG51bWJlcgorbWtkaXIgUgorCitnZXRfcG9ydHMKKworZW52IExEX0xJQlJB UllfUEFUSD0kbGRwYXRoICR7YWJzX2J1aWxkZGlyfS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2Qg JFZFUkJPU0UgLVIgLXAgJFBPUlQxIC10MCAtZzAgLXYgUiA+IHZsb2ckUE9SVDEgMj4mMSAmCitQ SUQxPSQhCit0ZW1wZmlsZXMgdmxvZyRQT1JUMQorZXJyZmlsZXMgdmxvZyRQT1JUMQorIyBTZXJ2 ZXIgbXVzdCBiZWNvbWUgcmVhZHkKK3dhaXRfcmVhZHkgJFBPUlQxICdyZWFkeScgMQorCisjIEJl IHBhdGllbnQgd2hlbiBydW4gb24gYSBidXN5IG1hY2hpbmUgdGhpbmdzIG1pZ2h0IHRha2UgYSBi aXQuCitleHBvcnQgREVCVUdJTkZPRF9USU1FT1VUPTEwCitleHBvcnQgREVCVUdJTkZPRF9VUkxT PSdodHRwOi8vMTI3LjAuMC4xOickUE9SVDEKKworIyBDaGVjayB0aHJlYWQgY29tbSBuYW1lcwor cHMgLXEgJFBJRDEgLWUgLUwgLW8gJyVwICVjICVhJyB8IGdyZXAgZ3Jvb20KK3BzIC1xICRQSUQx IC1lIC1MIC1vICclcCAlYyAlYScgfCBncmVwIHNjYW4KK3BzIC1xICRQSUQxIC1lIC1MIC1vICcl cCAlYyAlYScgfCBncmVwIHRyYXZlcnNlCisKK2NwIC1ydnAgJHthYnNfc3JjZGlyfS9kZWJ1Z2lu Zm9kLXJwbXMgUgoraWYgWyAiJHpzdGQiID0gImZhbHNlIiBdOyB0aGVuICAjIG51a2UgdGhlIHpz dGQgZmVkb3JhIDMxIG9uZXMKKyAgICBybSAtdnJmIFIvZGVidWdpbmZvZC1ycG1zL2ZlZG9yYTMx CitmaQorCitraWxsIC1VU1IxICRQSUQxCisjIFdhaXQgdGlsbCBib3RoIGZpbGVzIGFyZSBpbiB0 aGUgaW5kZXggYW5kIHNjYW4vaW5kZXggZnVsbHkgZmluaXNoZWQKK3dhaXRfcmVhZHkgJFBPUlQx ICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9JyAxCit3YWl0X3JlYWR5ICRQT1JU MSAndGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2FuIn0nIDAKK3dhaXRfcmVhZHkgJFBPUlQx ICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKKworIyBjb21tb24gc291cmNlIGZpbGUgc2hh MQorU0hBPWY0YTFhODA2MmJlOTk4YWU5M2I4ZjFjZDc0NGEzOThjNmRlNmRiYjEKKyMgZmVkb3Jh MzEKK2lmIFsgJHpzdGQgPSB0cnVlIF07IHRoZW4KKyAgICAjIGZlZG9yYTMxIHVzZXMgenN0ZCBj b21wcmVzc2lvbiBvbiBycG1zLCBvbGRlciBycG0yY3Bpby9saWJhcmNoaXZlIGNhbid0IGhhbmRs ZSBpdAorICAgICMgYW5kIHdlJ3JlIG5vdCB1c2luZyB0aGUgZmFuY3kgLVogJy5ycG09KHJwbTJj cGlvfHpzdGRjYXQpPCcgd29ya2Fyb3VuZCBpbiB0aGlzIHRlc3RzdWl0ZQorICAgIGFyY2hpdmVf dGVzdCA0MjBlOWUzMzA4OTcxZjRiODE3Y2M1YmY4MzkyOGI0MWE2OTA5ZDg4IC91c3Ivc3JjL2Rl YnVnL2hlbGxvMy0xLjAtMi54ODZfNjQvZm9vYmFyLy8vLy4vLi4vaGVsbG8uYyAkU0hBCisgICAg YXJjaGl2ZV90ZXN0IDg3YzA4ZDEyYzc4MTc0ZjEwODJiN2M4ODhiMzIzODIxOWIwZWIyNjUgL3Vz ci9zcmMvZGVidWcvaGVsbG8zLTEuMC0yLng4Nl82NC8vL2Zvb2Jhci8uLy4uLy9oZWxsby5jICRT SEEKK2ZpCisjIGZlZG9yYTMwCithcmNoaXZlX3Rlc3QgYzM2NzA4YTc4NjE4ZDU5N2RlZTE1ZDBk Yzk4OWYwOTNjYTVmOTEyMCAvdXNyL3NyYy9kZWJ1Zy9oZWxsbzItMS4wLTIueDg2XzY0L2hlbGxv LmMgJFNIQQorYXJjaGl2ZV90ZXN0IDQxYTIzNmViNjY3YzM2MmExYzQxOTYwMThjYzQ1ODFlMDk3 MjJiMWIgL3Vzci9zcmMvZGVidWcvaGVsbG8yLTEuMC0yLng4Nl82NC9oZWxsby5jICRTSEEKKyMg cmhlbDcKK2FyY2hpdmVfdGVzdCBiYzFmZWJmZDAzY2EwNWUwMzBmMGQyMDVmNzY1OWRiMjlmOGE0 YjMwIC91c3Ivc3JjL2RlYnVnL2hlbGxvLTEuMC9oZWxsby5jICRTSEEKK2FyY2hpdmVfdGVzdCBm MGFhMTViOGFiYTRmM2MyOGNhYzNjMmE3MzgwMWZlZmE2NDRhOWYyIC91c3Ivc3JjL2RlYnVnL2hl bGxvLTEuMC9oZWxsby5jICRTSEEKKyMgcmhlbDYKK2FyY2hpdmVfdGVzdCBiYmJmOTJlYmVlNTIy ODMxMGUzOTg2MDljMjNjMmQ3ZDUzZjZlMmY5IC91c3Ivc3JjL2RlYnVnL2hlbGxvLTEuMC9oZWxs by5jICRTSEEKK2FyY2hpdmVfdGVzdCBkNDRkNDJjYmQ3ZDkxNWJjOTM4YzgxMzMzYTIxZTM1NWE2 MDIyZmI3IC91c3Ivc3JjL2RlYnVnL2hlbGxvLTEuMC9oZWxsby5jICRTSEEKKyMgYXJjaAorI2Fy Y2hpdmVfdGVzdCBjZWUxM2IyZWE1MDVhN2YzN2JkMjBkMjcxYzZiYzdlNWY4ZDJkZmNiIC91c3Iv c3JjL2RlYnVnL2hlbGxvLmMgN2ExMzM0ZTA4NmI5N2U1ZjEyNDAwM2E2Y2ZiM2VkNzkyZDEwY2Rm NAorCitraWxsICRQSUQxCit3YWl0ICRQSUQxCitQSUQxPTAKK2V4aXQgMApkaWZmIC0tZ2l0IGEv dGVzdHMvcnVuLWRlYnVnaW5mb2QtYXJ0aWZhY3QtcnVubmluZy5zaCBiL3Rlc3RzL3J1bi1kZWJ1 Z2luZm9kLWFydGlmYWN0LXJ1bm5pbmcuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAw MDAwMDAuLjU5ZDVhMjdlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcnVuLWRlYnVnaW5mb2Qt YXJ0aWZhY3QtcnVubmluZy5zaApAQCAtMCwwICsxLDExOCBAQAorIyEvdXNyL2Jpbi9lbnYgYmFz aAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBSZWQgSGF0LCBJbmMuCisjIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIGVsZnV0aWxzLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNl bnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBlbGZ1 dGlscyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBi dXQKKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisuICRzcmNkaXIvdGVzdC1z dWJyLnNoICAjIGluY2x1ZGVzIHNldCAtZQorCisjIGZvciB0ZXN0IGNhc2UgZGVidWdnaW5nLCB1 bmNvbW1lbnQ6CitzZXQgLXgKK2dldF9wb3J0cworbWtkaXIgRgorCitEQj0ke1BXRH0vLmRlYnVn aW5mb2RfdG1wLnNxbGl0ZQordGVtcGZpbGVzICREQgorZXhwb3J0IERFQlVHSU5GT0RfQ0FDSEVf UEFUSD0ke1BXRH0vLmNsaWVudF9jYWNoZQorCitlY2hvICdpbnQgbWFpbihpbnQgYXJnYywgY2hh ciAqIGFyZ3YpeyByZXR1cm4gMDsgfScgPiAke1BXRH0vcHJvZy5jCitnY2MgLVdsLC0tYnVpbGQt aWQgLWcgLW8gcHJvZyAke1BXRH0vcHJvZy5jCit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0v c3JjL3N0cmlwIC1nIC1mIHByb2cuZGVidWcgJHtQV0R9L3Byb2cKK3RlbXBmaWxlcyBwcm9nIHBy b2cuZGVidWcgcHJvZy5jCitCVUlMRElEPWBlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggJHth YnNfYnVpbGRkaXJ9Ly4uL3NyYy9yZWFkZWxmIFwKKyAgICAgICAgICAtYSBwcm9nIHwgZ3JlcCAn QnVpbGQgSUQnIHwgY3V0IC1kICcgJyAtZiA3YAorZXhwb3J0IERFQlVHSU5GT0RfVVJMUz1odHRw Oi8vMTI3LjAuMC4xOiRQT1JUMQorZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoICR7YWJzX2J1 aWxkZGlyfS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QgJFZFUkJPU0UgLWQgJERCIC1GIC1wICRQ T1JUMSAtdDAgLWcwIC12IEYgPiB2bG9nJFBPUlQxIDI+JjEgJgorUElEMT0kIQordGVtcGZpbGVz IHZsb2ckUE9SVDEKK2VycmZpbGVzIHZsb2ckUE9SVDEKK212IHByb2cgRgorbXYgcHJvZy5kZWJ1 ZyBGCit0ZW1wZmlsZXMgcHJvZy9GCisKKyMgQmUgcGF0aWVudCB3aGVuIHJ1biBvbiBhIGJ1c3kg bWFjaGluZSB0aGluZ3MgbWlnaHQgdGFrZSBhIGJpdC4KK2V4cG9ydCBERUJVR0lORk9EX1RJTUVP VVQ9MTAKKworIyBTZXJ2ZXIgbXVzdCBiZWNvbWUgcmVhZHkKK3dhaXRfcmVhZHkgJFBPUlQxICdy ZWFkeScgMQora2lsbCAtVVNSMSAkUElEMQorCit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dv cmtfdG90YWx7cm9sZT0idHJhdmVyc2UifScgMQord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93 b3JrX3BlbmRpbmd7cm9sZT0ic2NhbiJ9JyAwCit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX2J1 c3l7cm9sZT0ic2NhbiJ9JyAwCisKKyMgQ2hlY2sgdGhyZWFkIGNvbW0gbmFtZXMKK3BzIC1xICRQ SUQxIC1lIC1MIC1vICclcCAlYyAlYScgfCBncmVwIGdyb29tCitwcyAtcSAkUElEMSAtZSAtTCAt byAnJXAgJWMgJWEnIHwgZ3JlcCBzY2FuCitwcyAtcSAkUElEMSAtZSAtTCAtbyAnJXAgJWMgJWEn IHwgZ3JlcCB0cmF2ZXJzZQorCisjIEFkZCBhcnRpZmFjdHMgdG8gdGhlIHNlYXJjaCBwYXRocyBh bmQgdGVzdCB3aGV0aGVyIGRlYnVnaW5mb2QgZmluZHMgdGhlbSB3aGlsZSBhbHJlYWR5IHJ1bm5p bmcuCisjIEJ1aWxkIGFub3RoZXIsIG5vbi1zdHJpcHBlZCBiaW5hcnkKK2VjaG8gImludCBtYWlu KCkgeyByZXR1cm4gMDsgfSIgPiAke1BXRH0vcHJvZzIuYwordGVtcGZpbGVzIHByb2cyLmMKK2dj YyAtV2wsLS1idWlsZC1pZCAtZyAtbyBwcm9nMiAke1BXRH0vcHJvZzIuYworI3Rlc3RydW4gJHth YnNfdG9wX2J1aWxkZGlyfS9zcmMvc3RyaXAgLWcgLWYgcHJvZy5kZWJ1ZyAke1BXRH0vcHJvZwor QlVJTERJRDI9YGVudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCAke2Fic19idWlsZGRpcn0vLi4v c3JjL3JlYWRlbGYgXAorICAgICAgICAgIC1hIHByb2cyIHwgZ3JlcCAnQnVpbGQgSUQnIHwgY3V0 IC1kICcgJyAtZiA3YAorbXYgcHJvZzIgRgorI212IHByb2cyLmRlYnVnIEYKK3RlbXBmaWxlcyBG L3Byb2cyIEYvcHJvZzIuZGVidWcKKwora2lsbCAtVVNSMSAkUElEMQorIyBOb3cgdGhlcmUgc2hv dWxkIGJlIDMgZmlsZXMgaW4gdGhlIGluZGV4Cit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dv cmtfdG90YWx7cm9sZT0idHJhdmVyc2UifScgMgord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93 b3JrX3BlbmRpbmd7cm9sZT0ic2NhbiJ9JyAwCit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX2J1 c3l7cm9sZT0ic2NhbiJ9JyAwCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIFRlc3Qgd2hldGhlciBk ZWJ1Z2luZm9kLWZpbmQgaXMgYWJsZSB0byBmZXRjaCB0aG9zZSBmaWxlcy4KK3JtIC1yZiAkREVC VUdJTkZPRF9DQUNIRV9QQVRIICMgY2xlYW4gaXQgZnJvbSBwcmV2aW91cyB0ZXN0cworZmlsZW5h bWU9YHRlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmlu ZCBkZWJ1Z2luZm8gJEJVSUxESURgCitjbXAgJGZpbGVuYW1lIEYvcHJvZy5kZWJ1ZworaWYgWyAt dyAkZmlsZW5hbWUgXTsgdGhlbgorICAgIGVjaG8gImNhY2hlIGZpbGUgd3JpdGFibGUsIGJvbyIK KyAgICBlcnIKK2ZpCisKK2ZpbGVuYW1lPWB0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVi dWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZXhlY3V0YWJsZSBGL3Byb2dgCitjbXAgJGZpbGVuYW1l IEYvcHJvZworCisjIHJhdyBzb3VyY2UgZmlsZW5hbWUKK2ZpbGVuYW1lPWB0ZXN0cnVuICR7YWJz X3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgc291cmNlICRCVUlMRElE ICR7UFdEfS9mb29iYXIvLy8uLy4uL3Byb2cuY2AKK2NtcCAkZmlsZW5hbWUgICR7UFdEfS9wcm9n LmMKKworIyBhbmQgYWxzbyB0aGUgY2Fub25pY2FsaXplZCBvbmUKK2ZpbGVuYW1lPWB0ZXN0cnVu ICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgc291cmNlICRC VUlMRElEICR7UFdEfS9wcm9nLmNgCitjbXAgJGZpbGVuYW1lICAke1BXRH0vcHJvZy5jCisKKyMg UmVydW4gc2FtZSB0ZXN0cyBmb3IgdGhlIHByb2cyIGJpbmFyeQorZmlsZW5hbWU9YHRlc3RydW4g JHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCAtdiBkZWJ1Z2lu Zm8gJEJVSUxESUQyIDI+dmxvZ2AKK2NtcCAkZmlsZW5hbWUgRi9wcm9nMgorZ3JlcCAtcSBQcm9n cmVzcyB2bG9nCitncmVwIC1xIERvd25sb2FkZWQuZnJvbSB2bG9nCit0ZW1wZmlsZXMgdmxvZwor ZmlsZW5hbWU9YHRlc3RydW4gZW52IERFQlVHSU5GT0RfUFJPR1JFU1M9MSAke2Fic190b3BfYnVp bGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGV4ZWN1dGFibGUgJEJVSUxESUQyIDI+ dmxvZzJgCitjbXAgJGZpbGVuYW1lIEYvcHJvZzIKK2dyZXAgLXEgJ0Rvd25sb2FkaW5nLipodHRw JyB2bG9nMgordGVtcGZpbGVzIHZsb2cyCitmaWxlbmFtZT1gdGVzdHJ1biAke2Fic190b3BfYnVp bGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIHNvdXJjZSAkQlVJTERJRDIgJHtQV0R9 L3Byb2cyLmNgCitjbXAgJGZpbGVuYW1lICR7UFdEfS9wcm9nMi5jCisKKwora2lsbCAkUElEMQor d2FpdCAkUElEMQorUElEMT0wCitleGl0IDAKZGlmZiAtLWdpdCBhL3Rlc3RzL3J1bi1kZWJ1Z2lu Zm9kLWRsb3Blbi5zaCBiL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLWRsb3Blbi5zaApuZXcgZmlsZSBt b2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMC4uNmM3MTAzZTQKLS0tIC9kZXYvbnVsbAorKysgYi90 ZXN0cy9ydW4tZGVidWdpbmZvZC1kbG9wZW4uc2gKQEAgLTAsMCArMSw4MCBAQAorIyEvdXNyL2Jp bi9lbnYgYmFzaAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBSZWQgSGF0LCBJbmMuCisj IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGVsZnV0aWxzLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9m IHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor IworIyBlbGZ1dGlscyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLCBidXQKKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisuICRzcmNk aXIvdGVzdC1zdWJyLnNoICAjIGluY2x1ZGVzIHNldCAtZQorCisjIGZvciB0ZXN0IGNhc2UgZGVi dWdnaW5nLCB1bmNvbW1lbnQ6CitzZXQgLXgKKworbWtkaXIgRgorZ2V0X3BvcnRzCitlbnYgTERf TElCUkFSWV9QQVRIPSRsZHBhdGggREVCVUdJTkZPRF9VUkxTPSAke2Fic19idWlsZGRpcn0vLi4v ZGVidWdpbmZvZC9kZWJ1Z2luZm9kIC1GIC1SICRWRVJCT1NFIC1wICRQT1JUMSBcCisgICAgLXQw IC1nMCAtdiBGID4gdmxvZyRQT1JUMSAyPiYxICYKK1BJRDE9JCEKK3RlbXBmaWxlcyB2bG9nJFBP UlQxCitlcnJmaWxlcyB2bG9nJFBPUlQxCisKKyMgU2VydmVyIG11c3QgYmVjb21lIHJlYWR5Cit3 YWl0X3JlYWR5ICRQT1JUMSAncmVhZHknIDEKK2V4cG9ydCBERUJVR0lORk9EX1VSTFM9aHR0cDov LzEyNy4wLjAuMTokUE9SVDEvICAgIyBvciB3aXRob3V0IHRyYWlsaW5nIC8KKworIyBCZSBwYXRp ZW50IHdoZW4gcnVuIG9uIGEgYnVzeSBtYWNoaW5lIHRoaW5ncyBtaWdodCB0YWtlIGEgYml0Lgor ZXhwb3J0IERFQlVHSU5GT0RfVElNRU9VVD0xMAorCisjIENoZWNrIHRocmVhZCBjb21tIG5hbWVz CitwcyAtcSAkUElEMSAtZSAtTCAtbyAnJXAgJWMgJWEnIAorcHMgLXEgJFBJRDEgLWUgLUwgLW8g JyVwICVjICVhJyB8IGdyZXAgZ3Jvb20KK3BzIC1xICRQSUQxIC1lIC1MIC1vICclcCAlYyAlYScg fCBncmVwIHNjYW4KK3BzIC1xICRQSUQxIC1lIC1MIC1vICclcCAlYyAlYScgfCBncmVwIHRyYXZl cnNlCisKKyMgV2UgdXNlIC10MCBhbmQgLWcwIGhlcmUgdG8gdHVybiBvZmYgdGltZS1iYXNlZCBz Y2FubmluZyAmIGdyb29taW5nLgorIyBGb3IgdGVzdGluZyBwdXJwb3Nlcywgd2UganVzdCBzaWMg U0lHVVNSMSAvIFNJR1VTUjIgYXQgdGhlIHByb2Nlc3MuCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisj IENvbXBpbGUgYSBzaW1wbGUgcHJvZ3JhbSwgc3RyaXAgaXRzIGRlYnVnaW5mbyBhbmQgc2F2ZSB0 aGUgYnVpbGQtaWQuCisjIEFsc28gbW92ZSB0aGUgZGVidWdpbmZvIGludG8gYW5vdGhlciBkaXJl Y3Rvcnkgc28gdGhhdCBlbGZ1dGlscworIyBjYW5ub3QgZmluZCBpdCB3aXRob3V0IGRlYnVnaW5m b2QuCitlY2hvICJpbnQgbWFpbigpIHsgcmV0dXJuIDA7IH0iID4gJHtQV0R9L3ArciVvXCRnLmMK K3RlbXBmaWxlcyBwK3Ilb1wkZy5jCisjIENyZWF0ZSBhIHN1YmRpcmVjdG9yeSB0byBjb25mb3Vu ZCBzb3VyY2UgcGF0aCBuYW1lcworbWtkaXIgZm9vYmFyCitnY2MgLVdsLC0tYnVpbGQtaWQgLWcg LW8gcCtyJW9cJGcgJHtQV0R9L2Zvb2Jhci8vLy4vLi4vcCtyJW9cJGcuYwordGVzdHJ1biAke2Fi c190b3BfYnVpbGRkaXJ9L3NyYy9zdHJpcCAtZyAtZiBwK3Ilb1wkZy5kZWJ1ZyAke1BXRH0vcCty JW9cJGcKK0JVSUxESUQ9YGVudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCAke2Fic19idWlsZGRp cn0vLi4vc3JjL3JlYWRlbGYgXAorICAgICAgICAgIC1hIHArciVvXFwkZyB8IGdyZXAgJ0J1aWxk IElEJyB8IGN1dCAtZCAnICcgLWYgN2AKKworbXYgcCtyJW9cJGcgRgorbXYgcCtyJW9cJGcuZGVi dWcgRgora2lsbCAtVVNSMSAkUElEMQorIyBXYWl0IHRpbGwgYm90aCBmaWxlcyBhcmUgaW4gdGhl IGluZGV4Lgord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3RvdGFse3JvbGU9InRyYXZl cnNlIn0nIDEKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya19wZW5kaW5ne3JvbGU9InNj YW4ifScgMAord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF9idXN5e3JvbGU9InNjYW4ifScgMAor CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKworIyBUZXN0IHdoZXRoZXIgZWxmdXRpbHMsIHZpYSB0aGUgZGVi dWdpbmZvZCBjbGllbnQgbGlicmFyeSBkbG9wZW4gaG9va3MsCisjIGlzIGFibGUgdG8gZmV0Y2gg ZGVidWdpbmZvIGZyb20gdGhlIGxvY2FsIGRlYnVnaW5mb2QuCit0ZXN0cnVuICR7YWJzX2J1aWxk ZGlyfS9kZWJ1Z2luZm9kX2J1aWxkX2lkX2ZpbmQgLWUgRi9wK3Ilb1wkZyAxCisKK2tpbGwgJFBJ RDEKK3dhaXQgJFBJRDEKK1BJRDE9MAorCitleGl0IDAKZGlmZiAtLWdpdCBhL3Rlc3RzL3J1bi1k ZWJ1Z2luZm9kLWR1cGxpY2F0ZS11cmxzLnNoIGIvdGVzdHMvcnVuLWRlYnVnaW5mb2QtZHVwbGlj YXRlLXVybHMuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAuLmYwMTQyZTVi Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcnVuLWRlYnVnaW5mb2QtZHVwbGljYXRlLXVybHMu c2gKQEAgLTAsMCArMSw0NyBAQAorIyEvdXNyL2Jpbi9lbnYgYmFzaAorIworIyBDb3B5cmlnaHQg KEMpIDIwMTktMjAyMSBSZWQgSGF0LCBJbmMuCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGVsZnV0 aWxzLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBlbGZ1dGlscyBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisj IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LgorCisuICRzcmNkaXIvdGVzdC1zdWJyLnNoICAjIGluY2x1ZGVz IHNldCAtZQorIyBmb3IgdGVzdCBjYXNlIGRlYnVnZ2luZywgdW5jb21tZW50Ogorc2V0IC14CisK K2dldF9wb3J0cworCitlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9 Ly4uL2RlYnVnaW5mb2QvZGVidWdpbmZvZCBcCisgICAgJFZFUkJPU0UgLUYgLXAgJFBPUlQxIC10 MCAtZzAgLWQgJHtEQn0gRiA+IHZsb2ckUE9SVDEgMj4mMSAmCitQSUQxPSQhCit0ZW1wZmlsZXMg dmxvZyRQT1JUMQorZXJyZmlsZXMgdmxvZyRQT1JUMQord2FpdF9yZWFkeSAkUE9SVDEgJ3JlYWR5 JyAxCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMgUFIyNzk4MyAKKyMgRW5zdXJlIG5vIGR1cGxpY2F0 ZSB1cmxzIGFyZSB1c2VkIGluIHdoZW4gcXVlcnlpbmcgc2VydmVycyBmb3IgZmlsZXMKK3JtIC1y ZiAkREVCVUdJTkZPRF9DQUNIRV9QQVRIICMgY2xlYW4gaXQgZnJvbSBwcmV2aW91cyB0ZXN0cwor ZW52IERFQlVHSU5GT0RfVVJMUz0iaHR0cDovLzEyNy4wLjAuMTokUE9SVDEgaHR0cDovLzEyNy4w LjAuMTokUE9SVDEgaHR0cDovLzEyNy4wLjAuMTokUE9SVDEgaHR0cDovLzEyNy4wLjAuMTo3OTk5 IiBcCisgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2lu Zm9kL2RlYnVnaW5mb2QtZmluZCAtdiBleGVjdXRhYmxlIDAgPiB2bG9nMSAyPiYxIHx8IHRydWUK K3RlbXBmaWxlcyB2bG9nMQoraWYgWyAkKCBncmVwIC1jICdkdXBsaWNhdGUgdXJsOiBodHRwOi8v MTI3LjAuMC4xOickUE9SVDEnLionIHZsb2cxICkgLW5lIDIgXTsgdGhlbgorICBlY2hvICJEdXBs aWNhdGUgc2VydmVycyByZW1haW4iOworICBlcnIKK2ZpCisKK2tpbGwgJFBJRDEKK3dhaXQgJFBJ RDEKK1BJRDE9MAorZXhpdCAwCmRpZmYgLS1naXQgYS90ZXN0cy9ydW4tZGVidWdpbmZvZC1leHRy YWN0aW9uLnNoIGIvdGVzdHMvcnVuLWRlYnVnaW5mb2QtZXh0cmFjdGlvbi5zaApuZXcgZmlsZSBt b2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMC4uN2ZmNTA5ZDQKLS0tIC9kZXYvbnVsbAorKysgYi90 ZXN0cy9ydW4tZGVidWdpbmZvZC1leHRyYWN0aW9uLnNoCkBAIC0wLDAgKzEsOTggQEAKKyMhL3Vz ci9iaW4vZW52IGJhc2gKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjEgUmVkIEhhdCwgSW5j LgorIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBlbGZ1dGlscy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKyMKKyMgZWxmdXRpbHMgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwgYnV0CisjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworLiAk c3JjZGlyL3Rlc3Qtc3Vici5zaCAgIyBpbmNsdWRlcyBzZXQgLWUKKworIyBmb3IgdGVzdCBjYXNl IGRlYnVnZ2luZywgdW5jb21tZW50Ogorc2V0IC14CisKK21rZGlyIFIgWgorCitnZXRfcG9ydHMK KworZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoICR7YWJzX2J1aWxkZGlyfS8uLi9kZWJ1Z2lu Zm9kL2RlYnVnaW5mb2QgJFZFUkJPU0UgLUYgLVIgLVogLnRhci54eiAtWiAudGFyLmJ6Mj1iemNh dCAtcCAkUE9SVDEgLXQwIC1nMCAtdiBSIFogPiB2bG9nJFBPUlQxIDI+JjEgJgorUElEMT0kIQor dGVtcGZpbGVzIHZsb2ckUE9SVDEKK2VycmZpbGVzIHZsb2ckUE9SVDEKKyMgU2VydmVyIG11c3Qg YmVjb21lIHJlYWR5Cit3YWl0X3JlYWR5ICRQT1JUMSAncmVhZHknIDEKKworIyBCZSBwYXRpZW50 IHdoZW4gcnVuIG9uIGEgYnVzeSBtYWNoaW5lIHRoaW5ncyBtaWdodCB0YWtlIGEgYml0LgorZXhw b3J0IERFQlVHSU5GT0RfVElNRU9VVD0xMAorCisjIENoZWNrIHRocmVhZCBjb21tIG5hbWVzCitw cyAtcSAkUElEMSAtZSAtTCAtbyAnJXAgJWMgJWEnIHwgZ3JlcCBncm9vbQorcHMgLXEgJFBJRDEg LWUgLUwgLW8gJyVwICVjICVhJyB8IGdyZXAgc2NhbgorcHMgLXEgJFBJRDEgLWUgLUwgLW8gJyVw ICVjICVhJyB8IGdyZXAgdHJhdmVyc2UKKworY3AgLXJ2cCAke2Fic19zcmNkaXJ9L2RlYnVnaW5m b2QtcnBtcyBSCitpZiBbICIkenN0ZCIgPSAiZmFsc2UiIF07IHRoZW4gICMgbnVrZSB0aGUgenN0 ZCBmZWRvcmEgMzEgb25lcworICAgIHJtIC12cmYgUi9kZWJ1Z2luZm9kLXJwbXMvZmVkb3JhMzEK K2ZpCisKK2NwIC1ydnAgJHthYnNfc3JjZGlyfS9kZWJ1Z2luZm9kLXRhcnMgWgorCitraWxsIC1V U1IxICRQSUQxCisjIFdhaXQgdGlsbCBib3RoIGZpbGVzIGFyZSBpbiB0aGUgaW5kZXggYW5kIHNj YW4vaW5kZXggZnVsbHkgZmluaXNoZWQKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya190 b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9JyAxCit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtf cGVuZGluZ3tyb2xlPSJzY2FuIn0nIDAKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXty b2xlPSJzY2FuIn0nIDAKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIEFsbCBycG1zIG5lZWQgdG8gYmUg aW4gdGhlIGluZGV4LCBleGNlcHQgdGhlIGR1bW15IHBlcm1pc3Npb24tMDAwIG9uZQorcnBtcz0k KGZpbmQgUiAtbmFtZSBcKnJwbSB8IGdyZXAgLXYgbm90aGluZyB8IHdjIC1sKQord2FpdF9yZWFk eSAkUE9SVDEgJ3NjYW5uZWRfZmlsZXNfdG90YWx7c291cmNlPSIucnBtIGFyY2hpdmUifScgJHJw bXMKK3R4ej0kKGZpbmQgWiAtbmFtZSBcKnRhci54eiB8IHdjIC1sKQord2FpdF9yZWFkeSAkUE9S VDEgJ3NjYW5uZWRfZmlsZXNfdG90YWx7c291cmNlPSIudGFyLnh6IGFyY2hpdmUifScgJHR4egor dGIyPSQoZmluZCBaIC1uYW1lIFwqdGFyLmJ6MiB8IHdjIC1sKQord2FpdF9yZWFkeSAkUE9SVDEg J3NjYW5uZWRfZmlsZXNfdG90YWx7c291cmNlPSIudGFyLmJ6MiBhcmNoaXZlIn0nICR0YjIKKwor a2lsbCAtVVNSMSAkUElEMSAgIyB0d28gaGl0cyBvZiBTSUdVU1IxIG1heSBiZSBuZWVkZWQgdG8g cmVzb2x2ZSAuZGVidWctPmR3ei0+c3JlZnMKKyMgV2FpdCB0aWxsIGJvdGggZmlsZXMgYXJlIGlu IHRoZSBpbmRleCBhbmQgc2Nhbi9pbmRleCBmdWxseSBmaW5pc2hlZAord2FpdF9yZWFkeSAkUE9S VDEgJ3RocmVhZF93b3JrX3RvdGFse3JvbGU9InRyYXZlcnNlIn0nIDIKK3dhaXRfcmVhZHkgJFBP UlQxICd0aHJlYWRfd29ya19wZW5kaW5ne3JvbGU9InNjYW4ifScgMAord2FpdF9yZWFkeSAkUE9S VDEgJ3RocmVhZF9idXN5e3JvbGU9InNjYW4ifScgMAorCisjIEV4cGVjdCBhbGwgc291cmNlIGZp bGVzIGZvdW5kIGluIHRoZSBycG1zICh0aGV5IGFyZSBhbGwgY2FsbGVkIGhlbGxvLmMgOikKKyMg V2Ugd2lsbCBuZWVkIHRvIGV4dHJhY3QgYWxsIHJwbXMgKGluIHRoZWlyIG93biBkaXJlY3Rvcnkp IGFuZCBjb3VsZCBhbGwKKyMgc291cmNlcyByZWZlcmVuY2VkIGluIHRoZSAuZGVidWcgZmlsZXMu Citta2RpciBleHRyYWN0ZWQKK2NkIGV4dHJhY3RlZAorc3ViZGlyPTA7CituZXdycG1zPSQoZmlu ZCAuLi9SIC1uYW1lIFwqXC5ycG0gfCBncmVwIC12IG5vdGhpbmcpCitmb3IgaSBpbiAkbmV3cnBt czsgZG8KKyAgICBzdWJkaXI9JFskc3ViZGlyKzFdOworICAgIG1rZGlyICRzdWJkaXI7CisgICAg Y2QgJHN1YmRpcjsKKyAgICBscyAtbGFoIC4uLyRpCisgICAgcnBtMmNwaW8gLi4vJGkgfCBjcGlv IC1pdmQ7CisgICAgY2QgLi47Citkb25lCitzb3VyY2VmaWxlcz0kKGZpbmQgLW5hbWUgXCpcXC5k ZWJ1ZyBcCisgICAgICAgICAgICAgIHwgZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoIHhhcmdz IFwKKyAgICAgICAgICAgICAgICAke2Fic190b3BfYnVpbGRkaXJ9L3NyYy9yZWFkZWxmIC0tZGVi dWctZHVtcD1kZWNvZGVkbGluZSBcCisgICAgICAgICAgICAgIHwgZ3JlcCBtdGltZTogfCB3YyAt LWxpbmVzKQorY2QgLi4KK3JtIC1yZiBleHRyYWN0ZWQKKword2FpdF9yZWFkeSAkUE9SVDEgJ2Zv dW5kX3NvdXJjZXJlZnNfdG90YWx7c291cmNlPSIucnBtIGFyY2hpdmUifScgJHNvdXJjZWZpbGVz CisKK2tpbGwgJFBJRDEKK3dhaXQgJFBJRDEKK1BJRDE9MAorZXhpdCAwCmRpZmYgLS1naXQgYS90 ZXN0cy9ydW4tZGVidWdpbmZvZC1mZC1wcmVmZXRjaC1jYWNoZXMuc2ggYi90ZXN0cy9ydW4tZGVi dWdpbmZvZC1mZC1wcmVmZXRjaC1jYWNoZXMuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXgg MDAwMDAwMDAuLjA1OTg2NmRlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcnVuLWRlYnVnaW5m b2QtZmQtcHJlZmV0Y2gtY2FjaGVzLnNoCkBAIC0wLDAgKzEsNTUgQEAKKyMhL3Vzci9iaW4vZW52 IGJhc2gKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjEgUmVkIEhhdCwgSW5jLgorIyBUaGlz IGZpbGUgaXMgcGFydCBvZiBlbGZ1dGlscy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkK KyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMg ZWxmdXRpbHMgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwgYnV0CisjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElm IG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworLiAkc3JjZGlyL3Rl c3Qtc3Vici5zaCAgIyBpbmNsdWRlcyBzZXQgLWUKKyMgZm9yIHRlc3QgY2FzZSBkZWJ1Z2dpbmcs IHVuY29tbWVudDoKK3NldCAteAorCit0eXBlIGN1cmwgMj4vZGV2L251bGwgfHwgKGVjaG8gIm5l ZWQgY3VybCI7IGV4aXQgNzcpCisKK0ZEQ0FDSEVfRkRTPTEwMAorRkRDQUNIRV9NQlM9MTAwCitQ UkVGRVRDSF9GRFM9MTAwCitQUkVGRVRDSF9NQlM9MTAwCitnZXRfcG9ydHMKKworZWNobyAkUE9S VDEKK2VudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCBERUJVR0lORk9EX1VSTFM9ICR7YWJzX2J1 aWxkZGlyfS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QgJFZFUkJPU0UgLXAgJFBPUlQxIFwKKyAg ICAtLWZkY2FjaGUtbWJzPSRGRENBQ0hFX01EUyAtLWZkY2FjaGUtZmRzPSRGRENBQ0hFX0ZEUyAt LWZkY2FjaGUtcHJlZmV0Y2gtbWJzPSRQUkVGRVRDSF9NQlMgXAorICAgIC0tZmRjYWNoZS1wcmVm ZXRjaC1mZHM9JFBSRUZFVENIX0ZEUyAtLWZkY2FjaGUtbWludG1wIDAgLXYgLUYgRiA+IHZsb2ck UE9SVDEgMj4mMSAmCitQSUQxPSQhCit0ZW1wZmlsZXMgdmxvZyRQT1JUMQorZXJyZmlsZXMgdmxv ZyRQT1JUMQorIyBTZXJ2ZXIgbXVzdCBiZWNvbWUgcmVhZHkKK3dhaXRfcmVhZHkgJFBPUlQxICdy ZWFkeScgMQorCitncmVwICdmZGNhY2hlIGZkcyAnIHZsb2ckUE9SVDEgIyRGRENBQ0hFX0ZEUwor Z3JlcCAnZmRjYWNoZSBtYnMgJyB2bG9nJFBPUlQxICMkRkRDQUNIRV9NQlMKK2dyZXAgJ3ByZWZl dGNoIGZkcyAnIHZsb2ckUE9SVDEgIyRQUkVGRVRDSF9GRFMKK2dyZXAgJ3ByZWZldGNoIG1icyAn IHZsb2ckUE9SVDEgIyRQUkVGRVRDSF9NQlMKKyMgc2VhcmNoIHRoZSB2bG9nIHRvIGZpbmQgd2hh dCBtZXRyaWMgY291bnRzIHNob3VsZCBiZSBhbmQgY2hlY2sgdGhlIGNvcnJlY3QgbWV0cmljcwor IyB3ZXJlIGluY3JpbWVudGVkCit3YWl0X3JlYWR5ICRQT1JUMSAnZmRjYWNoZV9vcF9jb3VudHtv cD0iZW5xdWV1ZSJ9JyAkKCBncmVwIC1jICdpbnRlcm5lZC4qZnJvbnQ9MScgdmxvZyRQT1JUMSAp Cit3YWl0X3JlYWR5ICRQT1JUMSAnZmRjYWNoZV9vcF9jb3VudHtvcD0iZXZpY3QifScgJCggZ3Jl cCAtYyAnZXZpY3RlZCBhPS4qJyB2bG9nJFBPUlQxICkKK3dhaXRfcmVhZHkgJFBPUlQxICdmZGNh Y2hlX29wX2NvdW50e29wPSJwcmVmZXRjaF9lbnF1ZXVlIn0nICQoIGdyZXAgLWMgJ2ludGVybmVk Lipmcm9udD0wJyB2bG9nJFBPUlQxICkKK3dhaXRfcmVhZHkgJFBPUlQxICdmZGNhY2hlX29wX2Nv dW50e29wPSJwcmVmZXRjaF9ldmljdCJ9JyAkKCBncmVwIC1jICdldmljdGVkIGZyb20gcHJlZmV0 Y2ggYT0uKmZyb250PTAnIHZsb2ckUE9SVDEgfHwgdHJ1ZSApCisKK2tpbGwgJFBJRDEKK3dhaXQg JFBJRDEKK1BJRDE9MAorZXhpdCAwCmRpZmYgLS1naXQgYS90ZXN0cy9ydW4tZGVidWdpbmZvZC1m ZWRlcmF0aW9uLWxpbmsuc2ggYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1mZWRlcmF0aW9uLWxpbmsu c2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAuLjM4ZGYyYTY4Ci0tLSAvZGV2 L251bGwKKysrIGIvdGVzdHMvcnVuLWRlYnVnaW5mb2QtZmVkZXJhdGlvbi1saW5rLnNoCkBAIC0w LDAgKzEsMTU4IEBACisjIS91c3IvYmluL2VudiBiYXNoCisjCisjIENvcHlyaWdodCAoQykgMjAx OS0yMDIxIFJlZCBIYXQsIEluYy4KKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgZWxmdXRpbHMuCisj CisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIGVsZnV0aWxzIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorIyBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uCisKKy4gJHNyY2Rpci90ZXN0LXN1YnIuc2ggICMgaW5jbHVkZXMgc2V0IC1l CisKKyMgZm9yIHRlc3QgY2FzZSBkZWJ1Z2dpbmcsIHVuY29tbWVudDoKK3NldCAteAorCitEQj0k e1BXRH0vLmRlYnVnaW5mb2RfdG1wLnNxbGl0ZQorZXhwb3J0IERFQlVHSU5GT0RfQ0FDSEVfUEFU SD0ke1BXRH0vLmNsaWVudF9jYWNoZQorZXhwb3J0IERFQlVHSU5GT0RfVElNRU9VVD0xMAorZXhw b3J0IERFQlVHSU5GT0RfVVJMUz0naHR0cDovLzEyNy4wLjAuMTonJFBPUlQxCit0ZW1wZmlsZXMg JERCCisKKyMgQ2xlYW4gb2xkIGRpcmljdG9yaWVzCitta2RpciBEIEwgRgorbWtkaXIgLXAgJERF QlVHSU5GT0RfQ0FDSEVfUEFUSAorIyBub3QgdGVtcGZpbGVzIEYgUiBMIEQgWiAtIHRoZXkgYXJl IGRpcmVjdG9yaWVzIHdoaWNoIHdlIGNsZWFuIHVwIG1hbnVhbGx5CitsbiAtcyAke2Fic19idWls ZGRpcn0vZHdmbGxpbmVzIEwvZm9vICAgIyBhbnkgcHJvZ3JhbSBub3QgdXNlZCBlbHNld2hlcmUg aW4gdGhpcyB0ZXN0CisKK2dldF9wb3J0cworIyBMYXVuY2ggc2VydmVyIHdoaWNoIHdpbGwgYmUg dW5hYmxlIHRvIGZvbGxvdyBzeW1saW5rcworZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoICR7 YWJzX2J1aWxkZGlyfS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QgJFZFUkJPU0UgLWQgJHtEQn0g LUYgLVUgLXQwIC1nMCAtcCAkUE9SVDEgTCBEIEYgPiB2bG9nJFBPUlQxIDI+JjEgJgorUElEMT0k IQordGVtcGZpbGVzIHZsb2ckUE9SVDEKK2VycmZpbGVzIHZsb2ckUE9SVDEKKword2FpdF9yZWFk eSAkUE9SVDEgJ3JlYWR5JyAxCit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfdG90YWx7 cm9sZT0idHJhdmVyc2UifScgMQord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3BlbmRp bmd7cm9sZT0ic2NhbiJ9JyAwCit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX2J1c3l7cm9sZT0i c2NhbiJ9JyAwCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb21waWxlIGEgc2ltcGxlIHByb2dyYW0s IHN0cmlwIGl0cyBkZWJ1Z2luZm8gYW5kIHNhdmUgdGhlIGJ1aWxkLWlkLgorIyBBbHNvIG1vdmUg dGhlIGRlYnVnaW5mbyBpbnRvIGFub3RoZXIgZGlyZWN0b3J5IHNvIHRoYXQgZWxmdXRpbHMKKyMg Y2Fubm90IGZpbmQgaXQgd2l0aG91dCBkZWJ1Z2luZm9kLgorZWNobyAiaW50IG1haW4oKSB7IHJl dHVybiAwOyB9IiA+ICR7UFdEfS9wcm9nLmMKK3RlbXBmaWxlcyBwcm9nLmMKKyMgQ3JlYXRlIGEg c3ViZGlyZWN0b3J5IHRvIGNvbmZvdW5kIHNvdXJjZSBwYXRoIG5hbWVzCitta2RpciBmb29iYXIK K2djYyAtV2wsLS1idWlsZC1pZCAtZyAtbyBwcm9nICR7UFdEfS9mb29iYXIvLy8uLy4uL3Byb2cu YwordGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L3NyYy9zdHJpcCAtZyAtZiBwcm9nLmRlYnVn ICR7UFdEfS9wcm9nCitCVUlMRElEPWBlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNf YnVpbGRkaXJ9Ly4uL3NyYy9yZWFkZWxmIFwKKyAgICAgICAgICAtYSBwcm9nIHwgZ3JlcCAnQnVp bGQgSUQnIHwgY3V0IC1kICcgJyAtZiA3YAorCittdiBwcm9nIEYKK212IHByb2cuZGVidWcgRgor a2lsbCAtVVNSMSAkUElEMQorIyBXYWl0IHRpbGwgYm90aCBmaWxlcyBhcmUgaW4gdGhlIGluZGV4 Lgord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3RvdGFse3JvbGU9InRyYXZlcnNlIn0n IDIKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya19wZW5kaW5ne3JvbGU9InNjYW4ifScg MAord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF9idXN5e3JvbGU9InNjYW4ifScgMAorCit3YWl0 X3JlYWR5ICRQT1JUMSAndGhyZWFkX2J1c3l7cm9sZT0iaHR0cC1idWlsZGlkIn0nIDAKK3dhaXRf cmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xlPSJodHRwLW1ldHJpY3MifScgMQorCitleHBv cnQgREVCVUdJTkZPRF9DQUNIRV9QQVRIPSR7UFdEfS8uY2xpZW50X2NhY2hlMgorbWtkaXIgLXAg JERFQlVHSU5GT0RfQ0FDSEVfUEFUSAorCisjIE5COiBydW4gaW4gLUwgc3ltbGluay1mb2xsb3dp bmcgbW9kZSBmb3IgdGhlIEwgc3ViZGlyCitlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggREVC VUdJTkZPRF9VUkxTPWh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxICR7YWJzX2J1aWxkZGlyfS8uLi9k ZWJ1Z2luZm9kL2RlYnVnaW5mb2QgJFZFUkJPU0UgLWQgJHtEQn1fMiAtRiAtVSAtcCAkUE9SVDIg LUwgTCBEID4gdmxvZyRQT1JUMiAyPiYxICYKK1BJRDI9JCEKK3RlbXBmaWxlcyB2bG9nJFBPUlQy CitlcnJmaWxlcyB2bG9nJFBPUlQyCit0ZW1wZmlsZXMgJHtEQn1fMgorCit3YWl0X3JlYWR5ICRQ T1JUMiAncmVhZHknIDEKKwora2lsbCAtVVNSMSAkUElEMgorIyBXYWl0IHRpbGwgYm90aCBmaWxl cyBhcmUgaW4gdGhlIGluZGV4Lgord2FpdF9yZWFkeSAkUE9SVDIgJ3RocmVhZF93b3JrX3RvdGFs e3JvbGU9InRyYXZlcnNlIn0nIDEKK3dhaXRfcmVhZHkgJFBPUlQyICd0aHJlYWRfd29ya19wZW5k aW5ne3JvbGU9InNjYW4ifScgMAord2FpdF9yZWFkeSAkUE9SVDIgJ3RocmVhZF9idXN5e3JvbGU9 InNjYW4ifScgMAorCit3YWl0X3JlYWR5ICRQT1JUMiAndGhyZWFkX2J1c3l7cm9sZT0iaHR0cC1i dWlsZGlkIn0nIDAKK3dhaXRfcmVhZHkgJFBPUlQyICd0aHJlYWRfYnVzeXtyb2xlPSJodHRwLW1l dHJpY3MifScgMQorCisjIGhhdmUgY2xpZW50cyBjb250YWN0IHRoZSBuZXcgc2VydmVyCitleHBv cnQgREVCVUdJTkZPRF9VUkxTPWh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQyCisKK2lmIHR5cGUgYnNk dGFyIDI+L2Rldi9udWxsOyB0aGVuCisgICAgIyBjb3B5IGluIHRoZSBkZWIgZmlsZXMKKyAgICBj cCAtcnZwICR7YWJzX3NyY2Rpcn0vZGVidWdpbmZvZC1kZWJzLypkZWIgRAorICAgIGtpbGwgLVVT UjEgJFBJRDIKKyAgICB3YWl0X3JlYWR5ICRQT1JUMiAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0i dHJhdmVyc2UifScgMgorICAgIHdhaXRfcmVhZHkgJFBPUlQyICd0aHJlYWRfd29ya19wZW5kaW5n e3JvbGU9InNjYW4ifScgMAorICAgIHdhaXRfcmVhZHkgJFBPUlQyICd0aHJlYWRfYnVzeXtyb2xl PSJzY2FuIn0nIDAKKworICAgICMgQWxsIGRlYnMgbmVlZCB0byBiZSBpbiB0aGUgaW5kZXgKKyAg ICBkZWJzPSQoZmluZCBEIC1uYW1lIFwqLmRlYiB8IHdjIC1sKQorICAgIHdhaXRfcmVhZHkgJFBP UlQyICdzY2FubmVkX2ZpbGVzX3RvdGFse3NvdXJjZT0iLmRlYiBhcmNoaXZlIn0nIGBleHByICRk ZWJzYAorICAgIGRkZWJzPSQoZmluZCBEIC1uYW1lIFwqLmRkZWIgfCB3YyAtbCkKKyAgICB3YWl0 X3JlYWR5ICRQT1JUMiAnc2Nhbm5lZF9maWxlc190b3RhbHtzb3VyY2U9Ii5kZGViIGFyY2hpdmUi fScgYGV4cHIgJGRkZWJzYAorCisgICAgIyB1YnVudHUKKyAgICBhcmNoaXZlX3Rlc3QgZjE3YTI5 YjVhMjViZDQ5NjA1MzFkODJhYTZiMDdjOGFiZTg0ZmE2NiAiIiAiIgorZmkKKworcm0gLXJmICRE RUJVR0lORk9EX0NBQ0hFX1BBVEgKK3Rlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2lu Zm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESUQKKworIyBzZW5kIGEgcmVxdWVz dCB0byBzdHJlc3MgWEZGIGFuZCBVc2VyLUFnZW50IGZlZGVyYXRpb24gcmVsYXk7CisjIHdlJ2xs IGdyZXAgZm9yIHRoZSB0d28gcGF0dGVybnMgaW4gdmxvZyRQT1JUMQorY3VybCAtcyAtSCAnVXNl ci1BZ2VudDogVEVTVENVUkwnIC1IICdYLUZvcndhcmRlZC1Gb3I6IFRFU1RYRkYnICRERUJVR0lO Rk9EX1VSTFMvYnVpbGRpZC9kZWFkZGVhZGJlZWYwMDAwMDAwMC9kZWJ1Z2luZm8gLW8gL2Rldi9u dWxsIHx8IHRydWUKKworZ3JlcCBVQTpURVNUQ1VSTCB2bG9nJFBPUlQxCitncmVwIFhGRjpURVNU WEZGIHZsb2ckUE9SVDEKKworIyBjb25maXJtIHRoYXQgZmlyc3Qgc2VydmVyIGNhbid0IHJlc29s dmUgc3ltbGlua2VkIGluZm8gaW4gTC8gYnV0IHNlY29uZCBjYW4KK0JVSUxESUQ9YGVudiBMRF9M SUJSQVJZX1BBVEg9JGxkcGF0aCAke2Fic19idWlsZGRpcn0vLi4vc3JjL3JlYWRlbGYgXAorICAg ICAgICAgLWEgTC9mb28gfCBncmVwICdCdWlsZCBJRCcgfCBjdXQgLWQgJyAnIC1mIDdgCitmaWxl IEwvZm9vCitmaWxlIC1MIEwvZm9vCitleHBvcnQgREVCVUdJTkZPRF9VUkxTPWh0dHA6Ly8xMjcu MC4wLjE6JFBPUlQxCitybSAtcmYgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSAordGVzdHJ1biAke2Fi c190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAkQlVJ TERJRCAmJiBmYWxzZSB8fCB0cnVlCitybSAtZiAkREVCVUdJTkZPRF9DQUNIRV9QQVRILyRCVUlM RElEL2RlYnVnaW5mbyAjIGRyb3AgMDAwLXBlcm0gbmVnYXRpdmUtaGl0IGZpbGUKK2V4cG9ydCBE RUJVR0lORk9EX1VSTFM9aHR0cDovLzEyNy4wLjAuMTokUE9SVDIKK3Rlc3RydW4gJHthYnNfdG9w X2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESUQK KworIyB0ZXN0IGFnYWluIHdpdGggc2NoZW1lIGZyZWUgdXJsCitleHBvcnQgREVCVUdJTkZPRF9V UkxTPTEyNy4wLjAuMTokUE9SVDEKK3JtIC1yZiAkREVCVUdJTkZPRF9DQUNIRV9QQVRICit0ZXN0 cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdp bmZvICRCVUlMRElEICYmIGZhbHNlIHx8IHRydWUKK3JtIC1mICRERUJVR0lORk9EX0NBQ0hFX1BB VEgvJEJVSUxESUQvZGVidWdpbmZvICMgZHJvcCAwMDAtcGVybSBuZWdhdGl2ZS1oaXQgZmlsZQor ZXhwb3J0IERFQlVHSU5GT0RfVVJMUz0xMjcuMC4wLjE6JFBPUlQyCit0ZXN0cnVuICR7YWJzX3Rv cF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdpbmZvICRCVUlMRElE CisKKyMgdGVzdCBwYXJhbGxlbCBxdWVyaWVzIGluIGNsaWVudAorZXhwb3J0IERFQlVHSU5GT0Rf Q0FDSEVfUEFUSD0ke1BXRH0vLmNsaWVudF9jYWNoZTMKK21rZGlyIC1wICRERUJVR0lORk9EX0NB Q0hFX1BBVEgKK2V4cG9ydCBERUJVR0lORk9EX1VSTFM9IkJBRCBodHRwOi8vMTI3LjAuMC4xOiRQ T1JUMSAxMjcuMC4wLjE6JFBPUlQxIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQyIERORSIKKwordGVz dHJ1biAke2Fic19idWlsZGRpcn0vZGVidWdpbmZvZF9idWlsZF9pZF9maW5kIC1lIEYvcHJvZyAx CisKK2tpbGwgJFBJRDEKK2tpbGwgJFBJRDIKK3dhaXQgJFBJRDEKK3dhaXQgJFBJRDIKK1BJRDE9 MAorUElEMj0wCisKK2V4aXQgMApkaWZmIC0tZ2l0IGEvdGVzdHMvcnVuLWRlYnVnaW5mb2QtZmVk ZXJhdGlvbi1tZXRyaWNzLnNoIGIvdGVzdHMvcnVuLWRlYnVnaW5mb2QtZmVkZXJhdGlvbi1tZXRy aWNzLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwLi5hOWQ0OTg0NgotLS0g L2Rldi9udWxsCisrKyBiL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLWZlZGVyYXRpb24tbWV0cmljcy5z aApAQCAtMCwwICsxLDIxMSBAQAorIyEvdXNyL2Jpbi9lbnYgYmFzaAorIworIyBDb3B5cmlnaHQg KEMpIDIwMTktMjAyMSBSZWQgSGF0LCBJbmMuCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGVsZnV0 aWxzLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBlbGZ1dGlscyBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisj IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LgorCisuICRzcmNkaXIvdGVzdC1zdWJyLnNoICAjIGluY2x1ZGVz IHNldCAtZQorCisjIGZvciB0ZXN0IGNhc2UgZGVidWdnaW5nLCB1bmNvbW1lbnQ6CitzZXQgLXgK KworZ2V0X3BvcnRzCitEQj0ke1BXRH0vLmRlYnVnaW5mb2RfdG1wLnNxbGl0ZQorZXhwb3J0IERF QlVHSU5GT0RfQ0FDSEVfUEFUSD0ke1BXRH0vLmNsaWVudF9jYWNoZQorZXhwb3J0IERFQlVHSU5G T0RfVElNRU9VVD0xMAorZXhwb3J0IERFQlVHSU5GT0RfVVJMUz0naHR0cDovLzEyNy4wLjAuMTon JFBPUlQxCit0ZW1wZmlsZXMgJERCCisjIENsZWFuIG9sZCBkaXJpY3RvcmllcworbWtkaXIgRCBM IEYKKworIyBub3QgdGVtcGZpbGVzIEYgUiBMIEQgWiAtIHRoZXkgYXJlIGRpcmVjdG9yaWVzIHdo aWNoIHdlIGNsZWFuIHVwIG1hbnVhbGx5CitsbiAtcyAke2Fic19idWlsZGRpcn0vZHdmbGxpbmVz IEwvZm9vICAgIyBhbnkgcHJvZ3JhbSBub3QgdXNlZCBlbHNld2hlcmUgaW4gdGhpcyB0ZXN0CisK K2dldF9wb3J0cworCisjIExhdW5jaCBzZXJ2ZXIgd2hpY2ggd2lsbCBiZSB1bmFibGUgdG8gZm9s bG93IHN5bWxpbmtzCitlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9 Ly4uL2RlYnVnaW5mb2QvZGVidWdpbmZvZCAkVkVSQk9TRSAtZCAke0RCfSAtRiAtVSAtdDAgLWcw IC1wICRQT1JUMSBMIEQgRiA+IHZsb2ckUE9SVDEgMj4mMSAmCitQSUQxPSQhCit0ZW1wZmlsZXMg dmxvZyRQT1JUMQorZXJyZmlsZXMgdmxvZyRQT1JUMQorCit3YWl0X3JlYWR5ICRQT1JUMSAncmVh ZHknIDEKKwora2lsbCAtVVNSMSAkUElEMQord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3Jr X3RvdGFse3JvbGU9InRyYXZlcnNlIn0nIDEKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29y a19wZW5kaW5ne3JvbGU9InNjYW4ifScgMAord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF9idXN5 e3JvbGU9InNjYW4ifScgMAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIENvbXBpbGUgYSBzaW1wbGUgcHJv Z3JhbSwgc3RyaXAgaXRzIGRlYnVnaW5mbyBhbmQgc2F2ZSB0aGUgYnVpbGQtaWQuCisjIEFsc28g bW92ZSB0aGUgZGVidWdpbmZvIGludG8gYW5vdGhlciBkaXJlY3Rvcnkgc28gdGhhdCBlbGZ1dGls cworIyBjYW5ub3QgZmluZCBpdCB3aXRob3V0IGRlYnVnaW5mb2QuCitlY2hvICJpbnQgbWFpbigp IHsgcmV0dXJuIDA7IH0iID4gJHtQV0R9L3Byb2cuYwordGVtcGZpbGVzIHByb2cuYworIyBDcmVh dGUgYSBzdWJkaXJlY3RvcnkgdG8gY29uZm91bmQgc291cmNlIHBhdGggbmFtZXMKK21rZGlyIGZv b2JhcgorZ2NjIC1XbCwtLWJ1aWxkLWlkIC1nIC1vIHByb2cgJHtQV0R9L2Zvb2Jhci8vLy4vLi4v cHJvZy5jCit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vc3JjL3N0cmlwIC1nIC1mIHByb2cu ZGVidWcgJHtQV0R9L3Byb2cKK0JVSUxESUQ9YGVudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCAk e2Fic19idWlsZGRpcn0vLi4vc3JjL3JlYWRlbGYgXAorICAgICAgICAgIC1hIHByb2cgfCBncmVw ICdCdWlsZCBJRCcgfCBjdXQgLWQgJyAnIC1mIDdgCisKK212IHByb2cgRgorbXYgcHJvZy5kZWJ1 ZyBGCitraWxsIC1VU1IxICRQSUQxCisjIFdhaXQgdGlsbCBib3RoIGZpbGVzIGFyZSBpbiB0aGUg aW5kZXguCit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0idHJhdmVy c2UifScgMgord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3BlbmRpbmd7cm9sZT0ic2Nh biJ9JyAwCit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX2J1c3l7cm9sZT0ic2NhbiJ9JyAwCisK K3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xlPSJodHRwLWJ1aWxkaWQifScgMAor d2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF9idXN5e3JvbGU9Imh0dHAtbWV0cmljcyJ9JyAxCisK K2V4cG9ydCBERUJVR0lORk9EX0NBQ0hFX1BBVEg9JHtQV0R9Ly5jbGllbnRfY2FjaGUyCitta2Rp ciAtcCAkREVCVUdJTkZPRF9DQUNIRV9QQVRICisjIE5COiBydW4gaW4gLUwgc3ltbGluay1mb2xs b3dpbmcgbW9kZSBmb3IgdGhlIEwgc3ViZGlyCitlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGgg REVCVUdJTkZPRF9VUkxTPWh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxICR7YWJzX2J1aWxkZGlyfS8u Li9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QgJFZFUkJPU0UgLWQgJHtEQn1fMiAtRiAtVSAtcCAkUE9S VDIgLUwgTCBEID4gdmxvZyRQT1JUMiAyPiYxICYKK1BJRDI9JCEKK3RlbXBmaWxlcyB2bG9nJFBP UlQyCitlcnJmaWxlcyB2bG9nJFBPUlQyCit0ZW1wZmlsZXMgJHtEQn1fMgorCit3YWl0X3JlYWR5 ICRQT1JUMiAncmVhZHknIDEKK3dhaXRfcmVhZHkgJFBPUlQyICd0aHJlYWRfd29ya190b3RhbHty b2xlPSJ0cmF2ZXJzZSJ9JyAxCit3YWl0X3JlYWR5ICRQT1JUMiAndGhyZWFkX3dvcmtfcGVuZGlu Z3tyb2xlPSJzY2FuIn0nIDAKK3dhaXRfcmVhZHkgJFBPUlQyICd0aHJlYWRfYnVzeXtyb2xlPSJz Y2FuIn0nIDAKKword2FpdF9yZWFkeSAkUE9SVDIgJ3RocmVhZF9idXN5e3JvbGU9Imh0dHAtYnVp bGRpZCJ9JyAwCit3YWl0X3JlYWR5ICRQT1JUMiAndGhyZWFkX2J1c3l7cm9sZT0iaHR0cC1tZXRy aWNzIn0nIDEKKworIyBoYXZlIGNsaWVudHMgY29udGFjdCB0aGUgbmV3IHNlcnZlcgorZXhwb3J0 IERFQlVHSU5GT0RfVVJMUz1odHRwOi8vMTI3LjAuMC4xOiRQT1JUMgoraWYgdHlwZSBic2R0YXIg Mj4vZGV2L251bGw7IHRoZW4KKyAgICAjIGNvcHkgaW4gdGhlIGRlYiBmaWxlcworICAgIGNwIC1y dnAgJHthYnNfc3JjZGlyfS9kZWJ1Z2luZm9kLWRlYnMvKmRlYiBECisgICAga2lsbCAtVVNSMSAk UElEMgorICAgIHdhaXRfcmVhZHkgJFBPUlQyICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0cmF2 ZXJzZSJ9JyAyCisgICAgd2FpdF9yZWFkeSAkUE9SVDIgJ3RocmVhZF93b3JrX3BlbmRpbmd7cm9s ZT0ic2NhbiJ9JyAwCisgICAgd2FpdF9yZWFkeSAkUE9SVDIgJ3RocmVhZF9idXN5e3JvbGU9InNj YW4ifScgMAorCisgICAgIyBBbGwgZGVicyBuZWVkIHRvIGJlIGluIHRoZSBpbmRleAorICAgIGRl YnM9JChmaW5kIEQgLW5hbWUgXCouZGViIHwgd2MgLWwpCisgICAgd2FpdF9yZWFkeSAkUE9SVDIg J3NjYW5uZWRfZmlsZXNfdG90YWx7c291cmNlPSIuZGViIGFyY2hpdmUifScgYGV4cHIgJGRlYnNg CisgICAgZGRlYnM9JChmaW5kIEQgLW5hbWUgXCouZGRlYiB8IHdjIC1sKQorICAgIHdhaXRfcmVh ZHkgJFBPUlQyICdzY2FubmVkX2ZpbGVzX3RvdGFse3NvdXJjZT0iLmRkZWIgYXJjaGl2ZSJ9JyBg ZXhwciAkZGRlYnNgCisKKyAgICAjIHVidW50dQorICAgIGFyY2hpdmVfdGVzdCBmMTdhMjliNWEy NWJkNDk2MDUzMWQ4MmFhNmIwN2M4YWJlODRmYTY2ICIiICIiCitmaQorCitybSAtcmYgJERFQlVH SU5GT0RfQ0FDSEVfUEFUSAordGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2Qv ZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAkQlVJTERJRAorCisjIHNlbmQgYSByZXF1ZXN0IHRv IHN0cmVzcyBYRkYgYW5kIFVzZXItQWdlbnQgZmVkZXJhdGlvbiByZWxheTsKKyMgd2UnbGwgZ3Jl cCBmb3IgdGhlIHR3byBwYXR0ZXJucyBpbiB2bG9nJFBPUlQxCitjdXJsIC1zIC1IICdVc2VyLUFn ZW50OiBURVNUQ1VSTCcgLUggJ1gtRm9yd2FyZGVkLUZvcjogVEVTVFhGRicgJERFQlVHSU5GT0Rf VVJMUy9idWlsZGlkL2RlYWRkZWFkYmVlZjAwMDAwMDAwL2RlYnVnaW5mbyAtbyAvZGV2L251bGwg fHwgdHJ1ZQorCitncmVwIFVBOlRFU1RDVVJMIHZsb2ckUE9SVDEKK2dyZXAgWEZGOlRFU1RYRkYg dmxvZyRQT1JUMQorCisjIGNvbmZpcm0gdGhhdCBmaXJzdCBzZXJ2ZXIgY2FuJ3QgcmVzb2x2ZSBz eW1saW5rZWQgaW5mbyBpbiBMLyBidXQgc2Vjb25kIGNhbgorQlVJTERJRD1gZW52IExEX0xJQlJB UllfUEFUSD0kbGRwYXRoICR7YWJzX2J1aWxkZGlyfS8uLi9zcmMvcmVhZGVsZiBcCisgICAgICAg ICAtYSBML2ZvbyB8IGdyZXAgJ0J1aWxkIElEJyB8IGN1dCAtZCAnICcgLWYgN2AKK2ZpbGUgTC9m b28KK2ZpbGUgLUwgTC9mb28KK2V4cG9ydCBERUJVR0lORk9EX1VSTFM9aHR0cDovLzEyNy4wLjAu MTokUE9SVDEKK3JtIC1yZiAkREVCVUdJTkZPRF9DQUNIRV9QQVRICit0ZXN0cnVuICR7YWJzX3Rv cF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdpbmZvICRCVUlMRElE ICYmIGZhbHNlIHx8IHRydWUKK3JtIC1mICRERUJVR0lORk9EX0NBQ0hFX1BBVEgvJEJVSUxESUQv ZGVidWdpbmZvICMgZHJvcCAwMDAtcGVybSBuZWdhdGl2ZS1oaXQgZmlsZQorZXhwb3J0IERFQlVH SU5GT0RfVVJMUz1odHRwOi8vMTI3LjAuMC4xOiRQT1JUMgordGVzdHJ1biAke2Fic190b3BfYnVp bGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAkQlVJTERJRAorCisj IHRlc3QgYWdhaW4gd2l0aCBzY2hlbWUgZnJlZSB1cmwKK2V4cG9ydCBERUJVR0lORk9EX1VSTFM9 MTI3LjAuMC4xOiRQT1JUMQorcm0gLXJmICRERUJVR0lORk9EX0NBQ0hFX1BBVEgKK3Rlc3RydW4g JHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8g JEJVSUxESUQgJiYgZmFsc2UgfHwgdHJ1ZQorcm0gLWYgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSC8k QlVJTERJRC9kZWJ1Z2luZm8gIyBkcm9wIDAwMC1wZXJtIG5lZ2F0aXZlLWhpdCBmaWxlCitleHBv cnQgREVCVUdJTkZPRF9VUkxTPTEyNy4wLjAuMTokUE9SVDIKK3Rlc3RydW4gJHthYnNfdG9wX2J1 aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESUQKKyMg dGVzdCBwYXJhbGxlbCBxdWVyaWVzIGluIGNsaWVudAorZXhwb3J0IERFQlVHSU5GT0RfQ0FDSEVf UEFUSD0ke1BXRH0vLmNsaWVudF9jYWNoZTMKK21rZGlyIC1wICRERUJVR0lORk9EX0NBQ0hFX1BB VEgKK2V4cG9ydCBERUJVR0lORk9EX1VSTFM9IkJBRCBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMSAx MjcuMC4wLjE6JFBPUlQxIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQyIERORSIKKwordGVzdHJ1biAk e2Fic19idWlsZGRpcn0vZGVidWdpbmZvZF9idWlsZF9pZF9maW5kIC1lIEYvcHJvZyAxCisKKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIyBGZXRjaCBzb21lIG1ldHJpY3MKK2N1cmwgLXMgaHR0cDovLzEyNy4w LjAuMTokUE9SVDEvYmFkYXBpCitjdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL21ldHJp Y3MKK2N1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDIvbWV0cmljcworY3VybCAtcyBodHRw Oi8vMTI3LjAuMC4xOiRQT1JUMS9tZXRyaWNzIHwgZ3JlcCAtcSAnaHR0cF9yZXNwb25zZXNfdG90 YWwuKnJlc3VsdC4qZXJyb3InCitjdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQyL21ldHJp Y3MgfCBncmVwIC1xICdodHRwX3Jlc3BvbnNlc190b3RhbC4qcmVzdWx0Lip1cHN0cmVhbScKK2N1 cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDEvbWV0cmljcyB8IGdyZXAgJ2h0dHBfcmVzcG9u c2VzX2R1cmF0aW9uX21pbGxpc2Vjb25kc19jb3VudCcKK2N1cmwgLXMgaHR0cDovLzEyNy4wLjAu MTokUE9SVDEvbWV0cmljcyB8IGdyZXAgJ2h0dHBfcmVzcG9uc2VzX2R1cmF0aW9uX21pbGxpc2Vj b25kc19zdW0nCitjdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL21ldHJpY3MgfCBncmVw ICdodHRwX3Jlc3BvbnNlc190cmFuc2Zlcl9ieXRlc19jb3VudCcKK2N1cmwgLXMgaHR0cDovLzEy Ny4wLjAuMTokUE9SVDEvbWV0cmljcyB8IGdyZXAgJ2h0dHBfcmVzcG9uc2VzX3RyYW5zZmVyX2J5 dGVzX3N1bScKK2N1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDEvbWV0cmljcyB8IGdyZXAg J2ZkY2FjaGVfJworY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMS9tZXRyaWNzIHwgZ3Jl cCAnZXJyb3JfY291bnQnCitjdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL21ldHJpY3Mg fCBncmVwICd0cmF2ZXJzZWRfdG90YWwnCitjdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQx L21ldHJpY3MgfCBncmVwICdzY2FubmVkX2J5dGVzX3RvdGFsJworCisjIEFuZCBnZW5lcmF0ZSBh IGZldyBlcnJvcnMgaW50byB0aGUgc2Vjb25kIGRlYnVnaW5mb2QncyBsb2dzLCBmb3IgYW5hbHlz aXMganVzdCBiZWxvdworY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMi9iYWRhcGkgPiAv ZGV2L251bGwgfHwgdHJ1ZQorY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMi9idWlsZGlk L2RlYWRiZWVmL2RlYnVnaW5mbyA+IC9kZXYvbnVsbCB8fCB0cnVlCisjIE5COiB0aGlzIGVycm9y IGlzIHVzZWQgdG8gc2VlZCB0aGUgNDA0IGZhaWx1cmUgZm9yIHRoZSBzdXJ2aXZlLTQwNCB0ZXN0 cworCisjIENvbmZpcm0gYmFkIGFydGlmYWN0IHR5cGVzIGFyZSByZWplY3RlZCB3aXRob3V0IGxl YXZpbmcgdHJhY2UKK2N1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDIvYnVpbGRpZC9kZWFk YmVlZi9iYWR0eXBlID4gL2Rldi9udWxsIHx8IHRydWUKKyhjdXJsIC1zIGh0dHA6Ly8xMjcuMC4w LjE6JFBPUlQyL21ldHJpY3MgfCBncmVwICdiYWR0eXBlJykgJiYgZmFsc2UKKworIyBESVNBQkxF IFZBTEdSSU5EIGNoZWNraW5nIGJlY2F1c2UgdmFsZ3JpbmQgbWlnaHQgdXNlIGRlYnVnaW5mb2Qg Y2xpZW50CisjIHJlcXVlc3RzIGl0c2VsZiwgY2F1c2luZyBjb25mdXNpb24gYWJvdXQgd2hvIHB1 dCB3aGF0IGluIHRoZSBjYWNoZS4KKyMgSXQgc3RheXMgZGlzYWJsZWQgdGlsbCB0aGUgZW5kIG9m IHRoaXMgdGVzdC4KK3Vuc2V0IFZBTEdSSU5EX0NNRAorCisjIENvbmZpcm0gdGhhdCByZXVzZWQg Y3VybCBjb25uZWN0aW9ucyBzdXJ2aXZlIDQwNCBlcnJvcnMuCisjIFRoZSBybSdzIGZvcmNlIGFu IHVuY2FjaGVkIGZldGNoCitybSAtZiAkREVCVUdJTkZPRF9DQUNIRV9QQVRILyRCVUlMRElEL2Rl YnVnaW5mbyAuY2xpZW50X2NhY2hlKi8kQlVJTERJRC9kZWJ1Z2luZm8KK3Rlc3RydW4gJHthYnNf dG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxE SUQKK3JtIC1mICRERUJVR0lORk9EX0NBQ0hFX1BBVEgvJEJVSUxESUQvZGVidWdpbmZvIC5jbGll bnRfY2FjaGUqLyRCVUlMRElEL2RlYnVnaW5mbwordGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9 L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAkQlVJTERJRAordGVzdHJ1biAk e2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAk QlVJTERJRAordGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZv ZC1maW5kIGRlYnVnaW5mbyAkQlVJTERJRAorcm0gLWYgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSC8k QlVJTERJRC9kZWJ1Z2luZm8gLmNsaWVudF9jYWNoZSovJEJVSUxESUQvZGVidWdpbmZvCit0ZXN0 cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdp bmZvICRCVUlMRElECisKKyMgQ29uZmlybSB0aGF0IHNvbWUgZGVidWdpbmZvZCBjbGllbnQgcG9v bHMgYXJlIGJlaW5nIHVzZWQKK2N1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDIvbWV0cmlj cyB8IGdyZXAgJ2RjX3Bvb2xfb3AuKnJldXNlJworCisjIFRyaWdnZXIgYSBmbG9vZCBvZiByZXF1 ZXN0cyBhZ2FpbnN0IHRoZSBzYW1lIGFyY2hpdmUgY29udGVudCBmaWxlLgorIyBVc2UgYSBmaWxl IHRoYXQgaGFzbid0IGJlZW4gcHJldmlvdXNseSBleHRyYWN0ZWQgaW4gdG8gbWFrZSBpdAorIyBs aWtlbHkgdGhhdCBldmVuIHRoaXMgdGVzdCBkZWJ1Z2luZm9kIHdpbGwgZXhwZXJpZW5jZSBjb25j dXJyZW5jeQorIyBhbmQgaW1wb3NlIHNvbWUgImFmdGVyLXlvdSIgZGVsYXlzLgorKGZvciBpIGlu IGBzZXEgMTAwYDsgZG8KKyAgICBjdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL2J1aWxk aWQvODdjMDhkMTJjNzgxNzRmMTA4MmI3Yzg4OGIzMjM4MjE5YjBlYjI2NS9leGVjdXRhYmxlID4v ZGV2L251bGwgJgorIGRvbmU7Cisgd2FpdCkKK2N1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9S VDEvbWV0cmljcyB8IGdyZXAgJ2h0dHBfcmVzcG9uc2VzX2FmdGVyX3lvdS4qJworIyBJZiB3ZSBj b3VsZCBndWFyYW50ZWUgc29tZSBtaW5pbXVtIG51bWJlciBvZiBzZWNvbmRzIG9mIENQVSB0aW1l LCB3ZQorIyBjb3VsZCBhc3NlcnQgdGhhdCB0aGUgYWZ0ZXJfeW91IG1ldHJpY3Mgc2hvdyBzb21l IG5vbnplcm8gYW1vdW50IG9mCisjIHdhaXRpbmcuICBBIGZldyBodW5kcmVkIG1zIGlzIHR5cGlj YWwgb24gdGhpcyBkZXZlbG9wZXIncyB3b3Jrc3RhdGlvbi4KKwora2lsbCAkUElEMQora2lsbCAk UElEMgord2FpdCAkUElEMQord2FpdCAkUElEMgorUElEMT0wCitQSUQyPTAKK2V4aXQgMAorCmRp ZmYgLS1naXQgYS90ZXN0cy9ydW4tZGVidWdpbmZvZC1mZWRlcmF0aW9uLXNxbGl0ZS5zaCBiL3Rl c3RzL3J1bi1kZWJ1Z2luZm9kLWZlZGVyYXRpb24tc3FsaXRlLnNoCm5ldyBmaWxlIG1vZGUgMTAw NzU1CmluZGV4IDAwMDAwMDAwLi4xNWJlNTIyYgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3J1 bi1kZWJ1Z2luZm9kLWZlZGVyYXRpb24tc3FsaXRlLnNoCkBAIC0wLDAgKzEsMTk5IEBACisjIS91 c3IvYmluL2VudiBiYXNoCisjCisjIENvcHlyaWdodCAoQykgMjAxOS0yMDIxIFJlZCBIYXQsIElu Yy4KKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgZWxmdXRpbHMuCisjCisjIFRoaXMgZmlsZSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCisjCisjIGVsZnV0aWxzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsIGJ1dAorIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisuICRz cmNkaXIvdGVzdC1zdWJyLnNoICAjIGluY2x1ZGVzIHNldCAtZQorCisjIGZvciB0ZXN0IGNhc2Ug ZGVidWdnaW5nLCB1bmNvbW1lbnQ6CitzZXQgLXgKKworZ2V0X3BvcnRzCitEQj0ke1BXRH0vLmRl YnVnaW5mb2RfdG1wLnNxbGl0ZQorZXhwb3J0IERFQlVHSU5GT0RfQ0FDSEVfUEFUSD0ke1BXRH0v LmNsaWVudF9jYWNoZQorZXhwb3J0IERFQlVHSU5GT0RfVElNRU9VVD0xMAorZXhwb3J0IERFQlVH SU5GT0RfVVJMUz0naHR0cDovLzEyNy4wLjAuMTonJFBPUlQxCit0ZW1wZmlsZXMgJERCCisKKyMg Q2xlYW4gb2xkIGRpcmljdG9yaWVzCitta2RpciBEIEwgRgorIyBub3QgdGVtcGZpbGVzIEYgUiBM IEQgWiAtIHRoZXkgYXJlIGRpcmVjdG9yaWVzIHdoaWNoIHdlIGNsZWFuIHVwIG1hbnVhbGx5Cits biAtcyAke2Fic19idWlsZGRpcn0vZHdmbGxpbmVzIEwvZm9vICAgIyBhbnkgcHJvZ3JhbSBub3Qg dXNlZCBlbHNld2hlcmUgaW4gdGhpcyB0ZXN0CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb21waWxl IGEgc2ltcGxlIHByb2dyYW0sIHN0cmlwIGl0cyBkZWJ1Z2luZm8gYW5kIHNhdmUgdGhlIGJ1aWxk LWlkLgorIyBBbHNvIG1vdmUgdGhlIGRlYnVnaW5mbyBpbnRvIGFub3RoZXIgZGlyZWN0b3J5IHNv IHRoYXQgZWxmdXRpbHMKKyMgY2Fubm90IGZpbmQgaXQgd2l0aG91dCBkZWJ1Z2luZm9kLgorZWNo byAiaW50IG1haW4oKSB7IHJldHVybiAwOyB9IiA+ICR7UFdEfS9wcm9nLmMKK3RlbXBmaWxlcyBw cm9nLmMKKyMgQ3JlYXRlIGEgc3ViZGlyZWN0b3J5IHRvIGNvbmZvdW5kIHNvdXJjZSBwYXRoIG5h bWVzCitta2RpciBmb29iYXIKK2djYyAtV2wsLS1idWlsZC1pZCAtZyAtbyBwcm9nICR7UFdEfS9m b29iYXIvLy8uLy4uL3Byb2cuYwordGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L3NyYy9zdHJp cCAtZyAtZiBwcm9nLmRlYnVnICR7UFdEfS9wcm9nCitCVUlMRElEPWBlbnYgTERfTElCUkFSWV9Q QVRIPSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9Ly4uL3NyYy9yZWFkZWxmIFwKKyAgICAgICAgICAt YSBwcm9nIHwgZ3JlcCAnQnVpbGQgSUQnIHwgY3V0IC1kICcgJyAtZiA3YAorCittdiBwcm9nIEYK K212IHByb2cuZGVidWcgRgorCitnZXRfcG9ydHMKKyMgTGF1bmNoIHNlcnZlciB3aGljaCB3aWxs IGJlIHVuYWJsZSB0byBmb2xsb3cgc3ltbGlua3MKK2VudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0 aCAke2Fic19idWlsZGRpcn0vLi4vZGVidWdpbmZvZC9kZWJ1Z2luZm9kICRWRVJCT1NFIC1kICR7 REJ9IC1GIC1VIC10MCAtZzAgLXAgJFBPUlQxIEwgRCBGID4gdmxvZyRQT1JUMSAyPiYxICYKK1BJ RDE9JCEKK3RlbXBmaWxlcyB2bG9nJFBPUlQxCitlcnJmaWxlcyB2bG9nJFBPUlQxCisKK3dhaXRf cmVhZHkgJFBPUlQxICdyZWFkeScgMQorCitraWxsIC1VU1IxICRQSUQxCit3YWl0X3JlYWR5ICRQ T1JUMSAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0idHJhdmVyc2UifScgMQord2FpdF9yZWFkeSAk UE9SVDEgJ3RocmVhZF93b3JrX3BlbmRpbmd7cm9sZT0ic2NhbiJ9JyAwCit3YWl0X3JlYWR5ICRQ T1JUMSAndGhyZWFkX2J1c3l7cm9sZT0ic2NhbiJ9JyAwCisKK2V4cG9ydCBERUJVR0lORk9EX0NB Q0hFX1BBVEg9JHtQV0R9Ly5jbGllbnRfY2FjaGUyCitta2RpciAtcCAkREVCVUdJTkZPRF9DQUNI RV9QQVRICisjIE5COiBydW4gaW4gLUwgc3ltbGluay1mb2xsb3dpbmcgbW9kZSBmb3IgdGhlIEwg c3ViZGlyCitlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggREVCVUdJTkZPRF9VUkxTPWh0dHA6 Ly8xMjcuMC4wLjE6JFBPUlQxICR7YWJzX2J1aWxkZGlyfS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5m b2QgJFZFUkJPU0UgLWQgJHtEQn1fMiAtRiAtVSAtcCAkUE9SVDIgLUwgTCBEIEYgPiB2bG9nJFBP UlQyIDI+JjEgJgorUElEMj0kIQordGVtcGZpbGVzIHZsb2ckUE9SVDIKK2VycmZpbGVzIHZsb2ck UE9SVDIKK3RlbXBmaWxlcyAke0RCfV8yCit3YWl0X3JlYWR5ICRQT1JUMiAncmVhZHknIDEKKwor ZXhwb3J0IERFQlVHSU5GT0RfVVJMUz0naHR0cDovLzEyNy4wLjAuMTonJFBPUlQyIAoraWYgdHlw ZSBic2R0YXIgMj4vZGV2L251bGw7IHRoZW4KKyAgICAjIGNvcHkgaW4gdGhlIGRlYiBmaWxlcwor ICAgIGNwIC1ydnAgJHthYnNfc3JjZGlyfS9kZWJ1Z2luZm9kLWRlYnMvKmRlYiBECisgICAga2ls bCAtVVNSMSAkUElEMgorICAgIHdhaXRfcmVhZHkgJFBPUlQyICd0aHJlYWRfd29ya190b3RhbHty b2xlPSJ0cmF2ZXJzZSJ9JyAxCisgICAgd2FpdF9yZWFkeSAkUE9SVDIgJ3RocmVhZF93b3JrX3Bl bmRpbmd7cm9sZT0ic2NhbiJ9JyAwCisgICAgd2FpdF9yZWFkeSAkUE9SVDIgJ3RocmVhZF9idXN5 e3JvbGU9InNjYW4ifScgMAorCisgICAgIyBBbGwgZGVicyBuZWVkIHRvIGJlIGluIHRoZSBpbmRl eAorICAgIGRlYnM9JChmaW5kIEQgLW5hbWUgXCouZGViIHwgd2MgLWwpCisgICAgd2FpdF9yZWFk eSAkUE9SVDIgJ3NjYW5uZWRfZmlsZXNfdG90YWx7c291cmNlPSIuZGViIGFyY2hpdmUifScgYGV4 cHIgJGRlYnNgCisgICAgZGRlYnM9JChmaW5kIEQgLW5hbWUgXCouZGRlYiB8IHdjIC1sKQorICAg IHdhaXRfcmVhZHkgJFBPUlQyICdzY2FubmVkX2ZpbGVzX3RvdGFse3NvdXJjZT0iLmRkZWIgYXJj aGl2ZSJ9JyBgZXhwciAkZGRlYnNgCisKKyAgICAjIHVidW50dQorICAgIGFyY2hpdmVfdGVzdCBm MTdhMjliNWEyNWJkNDk2MDUzMWQ4MmFhNmIwN2M4YWJlODRmYTY2ICIiICIiCitmaQorCitybSAt cmYgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSAordGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2Rl YnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAkQlVJTERJRAorCisjIHNlbmQgYSBy ZXF1ZXN0IHRvIHN0cmVzcyBYRkYgYW5kIFVzZXItQWdlbnQgZmVkZXJhdGlvbiByZWxheTsKKyMg d2UnbGwgZ3JlcCBmb3IgdGhlIHR3byBwYXR0ZXJucyBpbiB2bG9nJFBPUlQxCitjdXJsIC1zIC1I ICdVc2VyLUFnZW50OiBURVNUQ1VSTCcgLUggJ1gtRm9yd2FyZGVkLUZvcjogVEVTVFhGRicgJERF QlVHSU5GT0RfVVJMUy9idWlsZGlkL2RlYWRkZWFkYmVlZjAwMDAwMDAwL2RlYnVnaW5mbyAtbyAv ZGV2L251bGwgfHwgdHJ1ZQorCitncmVwIFVBOlRFU1RDVVJMIHZsb2ckUE9SVDEKK2dyZXAgWEZG OlRFU1RYRkYgdmxvZyRQT1JUMQorCisjIGNvbmZpcm0gdGhhdCBmaXJzdCBzZXJ2ZXIgY2FuJ3Qg cmVzb2x2ZSBzeW1saW5rZWQgaW5mbyBpbiBMLyBidXQgc2Vjb25kIGNhbgorQlVJTERJRD1gZW52 IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoICR7YWJzX2J1aWxkZGlyfS8uLi9zcmMvcmVhZGVsZiBc CisgICAgICAgICAtYSBML2ZvbyB8IGdyZXAgJ0J1aWxkIElEJyB8IGN1dCAtZCAnICcgLWYgN2AK K2ZpbGUgTC9mb28KK2ZpbGUgLUwgTC9mb28KK2V4cG9ydCBERUJVR0lORk9EX1VSTFM9aHR0cDov LzEyNy4wLjAuMTokUE9SVDEKK3JtIC1yZiAkREVCVUdJTkZPRF9DQUNIRV9QQVRICit0ZXN0cnVu ICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdpbmZv ICRCVUlMRElEICYmIGZhbHNlIHx8IHRydWUKK3JtIC1mICRERUJVR0lORk9EX0NBQ0hFX1BBVEgv JEJVSUxESUQvZGVidWdpbmZvICMgZHJvcCAwMDAtcGVybSBuZWdhdGl2ZS1oaXQgZmlsZQorZXhw b3J0IERFQlVHSU5GT0RfVVJMUz1odHRwOi8vMTI3LjAuMC4xOiRQT1JUMgordGVzdHJ1biAke2Fi c190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAkQlVJ TERJRAorCisjIHRlc3QgYWdhaW4gd2l0aCBzY2hlbWUgZnJlZSB1cmwKK2V4cG9ydCBERUJVR0lO Rk9EX1VSTFM9MTI3LjAuMC4xOiRQT1JUMQorcm0gLXJmICRERUJVR0lORk9EX0NBQ0hFX1BBVEgK K3Rlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBk ZWJ1Z2luZm8gJEJVSUxESUQgJiYgZmFsc2UgfHwgdHJ1ZQorcm0gLWYgJERFQlVHSU5GT0RfQ0FD SEVfUEFUSC8kQlVJTERJRC9kZWJ1Z2luZm8gIyBkcm9wIDAwMC1wZXJtIG5lZ2F0aXZlLWhpdCBm aWxlCitleHBvcnQgREVCVUdJTkZPRF9VUkxTPTEyNy4wLjAuMTokUE9SVDIKK3Rlc3RydW4gJHth YnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJV SUxESUQKKyMgdGVzdCBwYXJhbGxlbCBxdWVyaWVzIGluIGNsaWVudAorZXhwb3J0IERFQlVHSU5G T0RfQ0FDSEVfUEFUSD0ke1BXRH0vLmNsaWVudF9jYWNoZTMKK21rZGlyIC1wICRERUJVR0lORk9E X0NBQ0hFX1BBVEgKK2V4cG9ydCBERUJVR0lORk9EX1VSTFM9IkJBRCBodHRwOi8vMTI3LjAuMC4x OiRQT1JUMSAxMjcuMC4wLjE6JFBPUlQxIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQyIERORSIKKwor dGVzdHJ1biAke2Fic19idWlsZGRpcn0vZGVidWdpbmZvZF9idWlsZF9pZF9maW5kIC1lIEYvcHJv ZyAxCisKKyMgQW5kIGdlbmVyYXRlIGEgZmV3IGVycm9ycyBpbnRvIHRoZSBzZWNvbmQgZGVidWdp bmZvZCdzIGxvZ3MsIGZvciBhbmFseXNpcyBqdXN0IGJlbG93CitjdXJsIC1zIGh0dHA6Ly8xMjcu MC4wLjE6JFBPUlQyL2JhZGFwaSA+IC9kZXYvbnVsbCB8fCB0cnVlCitjdXJsIC1zIGh0dHA6Ly8x MjcuMC4wLjE6JFBPUlQyL2J1aWxkaWQvZGVhZGJlZWYvZGVidWdpbmZvID4gL2Rldi9udWxsIHx8 IHRydWUKKyMgTkI6IHRoaXMgZXJyb3IgaXMgdXNlZCB0byBzZWVkIHRoZSA0MDQgZmFpbHVyZSBm b3IgdGhlIHN1cnZpdmUtNDA0IHRlc3RzCisKKyMgQ29uZmlybSBiYWQgYXJ0aWZhY3QgdHlwZXMg YXJlIHJlamVjdGVkIHdpdGhvdXQgbGVhdmluZyB0cmFjZQorY3VybCAtcyBodHRwOi8vMTI3LjAu MC4xOiRQT1JUMi9idWlsZGlkL2RlYWRiZWVmL2JhZHR5cGUgPiAvZGV2L251bGwgfHwgdHJ1ZQor KGN1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDIvbWV0cmljcyB8IGdyZXAgJ2JhZHR5cGUn KSAmJiBmYWxzZQorCisjIERJU0FCTEUgVkFMR1JJTkQgY2hlY2tpbmcgYmVjYXVzZSB2YWxncmlu ZCBtaWdodCB1c2UgZGVidWdpbmZvZCBjbGllbnQKKyMgcmVxdWVzdHMgaXRzZWxmLCBjYXVzaW5n IGNvbmZ1c2lvbiBhYm91dCB3aG8gcHV0IHdoYXQgaW4gdGhlIGNhY2hlLgorIyBJdCBzdGF5cyBk aXNhYmxlZCB0aWxsIHRoZSBlbmQgb2YgdGhpcyB0ZXN0LgordW5zZXQgVkFMR1JJTkRfQ01ECisK KyMgQ29uZmlybSB0aGF0IHJldXNlZCBjdXJsIGNvbm5lY3Rpb25zIHN1cnZpdmUgNDA0IGVycm9y cy4KKyMgVGhlIHJtJ3MgZm9yY2UgYW4gdW5jYWNoZWQgZmV0Y2gKK3JtIC1mICRERUJVR0lORk9E X0NBQ0hFX1BBVEgvJEJVSUxESUQvZGVidWdpbmZvIC5jbGllbnRfY2FjaGUqLyRCVUlMRElEL2Rl YnVnaW5mbwordGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZv ZC1maW5kIGRlYnVnaW5mbyAkQlVJTERJRAorcm0gLWYgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSC8k QlVJTERJRC9kZWJ1Z2luZm8gLmNsaWVudF9jYWNoZSovJEJVSUxESUQvZGVidWdpbmZvCit0ZXN0 cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdp bmZvICRCVUlMRElECit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1 Z2luZm9kLWZpbmQgZGVidWdpbmZvICRCVUlMRElECit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRp cn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdpbmZvICRCVUlMRElECitybSAtZiAk REVCVUdJTkZPRF9DQUNIRV9QQVRILyRCVUlMRElEL2RlYnVnaW5mbyAuY2xpZW50X2NhY2hlKi8k QlVJTERJRC9kZWJ1Z2luZm8KK3Rlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9k L2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESUQKKyMgVHJpZ2dlciBhIGZsb29kIG9m IHJlcXVlc3RzIGFnYWluc3QgdGhlIHNhbWUgYXJjaGl2ZSBjb250ZW50IGZpbGUuCisjIFVzZSBh IGZpbGUgdGhhdCBoYXNuJ3QgYmVlbiBwcmV2aW91c2x5IGV4dHJhY3RlZCBpbiB0byBtYWtlIGl0 CisjIGxpa2VseSB0aGF0IGV2ZW4gdGhpcyB0ZXN0IGRlYnVnaW5mb2Qgd2lsbCBleHBlcmllbmNl IGNvbmN1cnJlbmN5CisjIGFuZCBpbXBvc2Ugc29tZSAiYWZ0ZXIteW91IiBkZWxheXMuCisoZm9y IGkgaW4gYHNlcSAxMDBgOyBkbworICAgIGN1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDEv YnVpbGRpZC84N2MwOGQxMmM3ODE3NGYxMDgyYjdjODg4YjMyMzgyMTliMGViMjY1L2V4ZWN1dGFi bGUgPi9kZXYvbnVsbCAmCisgZG9uZTsKKyB3YWl0KQorY3VybCAtcyBodHRwOi8vMTI3LjAuMC4x OiRQT1JUMS9tZXRyaWNzIHwgZ3JlcCAnaHR0cF9yZXNwb25zZXNfYWZ0ZXJfeW91LionCisjIElm IHdlIGNvdWxkIGd1YXJhbnRlZSBzb21lIG1pbmltdW0gbnVtYmVyIG9mIHNlY29uZHMgb2YgQ1BV IHRpbWUsIHdlCisjIGNvdWxkIGFzc2VydCB0aGF0IHRoZSBhZnRlcl95b3UgbWV0cmljcyBzaG93 IHNvbWUgbm9uemVybyBhbW91bnQgb2YKKyMgd2FpdGluZy4gIEEgZmV3IGh1bmRyZWQgbXMgaXMg dHlwaWNhbCBvbiB0aGlzIGRldmVsb3BlcidzIHdvcmtzdGF0aW9uLgorCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMgQ29ycnVwdCB0aGUgc3FsaXRlIGRhdGFiYXNlIGFuZCBnZXQgZGVidWdpbmZvZCB0byB0 cmlwIGFjcm9zcyBpdHMgZXJyb3JzCitjdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL21l dHJpY3MgfCBncmVwICdzcWxpdGUzLipyZXNldCcKK2RkIGlmPS9kZXYvemVybyBvZj0kREIgYnM9 MSBjb3VudD0xCisKKyMgdHJpZ2dlciBzb21lIHJhbmRvbSBhY3Rpdml0eSB0aGF0J3MgU3VyZSB0 byBnZXQgc3FsaXRlMyB1cHNldAora2lsbCAtVVNSMSAkUElEMQord2FpdF9yZWFkeSAkUE9SVDEg J3RocmVhZF93b3JrX3RvdGFse3JvbGU9InRyYXZlcnNlIn0nIDIKK3dhaXRfcmVhZHkgJFBPUlQx ICd0aHJlYWRfd29ya19wZW5kaW5ne3JvbGU9InNjYW4ifScgMAord2FpdF9yZWFkeSAkUE9SVDEg J3RocmVhZF9idXN5e3JvbGU9InNjYW4ifScgMAora2lsbCAtVVNSMiAkUElEMQord2FpdF9yZWFk eSAkUE9SVDEgJ3RocmVhZF93b3JrX3RvdGFse3JvbGU9Imdyb29tIn0nIDEKK2N1cmwgLXMgaHR0 cDovLzEyNy4wLjAuMTokUE9SVDEvYnVpbGRpZC9iZWVmYmVlZmJlZWZkMDBkZDAwZC9kZWJ1Z2lu Zm8gPiAvZGV2L251bGwgfHwgdHJ1ZQorY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMS9t ZXRyaWNzIHwgZ3JlcCAnZXJyb3JfY291bnQuKnNxbGl0ZScKKyMgUnVuIHRoZSB0ZXN0cyBhZ2Fp biB3aXRob3V0IHRoZSBzZXJ2ZXJzIHJ1bm5pbmcuIFRoZSB0YXJnZXQgZmlsZSBzaG91bGQKKyMg YmUgZm91bmQgaW4gdGhlIGNhY2hlLgorCitraWxsIC1JTlQgJFBJRDEgJFBJRDIKK3dhaXQgJFBJ RDEgJFBJRDIKK1BJRDE9MAorUElEMj0wCit0ZW1wZmlsZXMgLmRlYnVnaW5mb2RfKgorCit0ZXN0 cnVuICR7YWJzX2J1aWxkZGlyfS9kZWJ1Z2luZm9kX2J1aWxkX2lkX2ZpbmQgLWUgRi9wcm9nIDEK KworIyBjaGVjayBvdXQgdGhlIGRlYnVnaW5mb2QgbG9ncyBmb3IgdGhlIG5ldyBzdHlsZSBzdGF0 dXMgbGluZXMKK2NhdCB2bG9nJFBPUlQyCitncmVwIC1xICdVQTouKlhGRjouKkdFVCAvYnVpbGRp ZC8uKiAyMDAgJyB2bG9nJFBPUlQyCitncmVwIC1xICdVQTouKlhGRjouKkdFVCAvbWV0cmljcyAy MDAgJyB2bG9nJFBPUlQyCitncmVwIC1xICdVQTouKlhGRjouKkdFVCAvYmFkYXBpIDUwMyAnIHZs b2ckUE9SVDIKK2dyZXAgLXEgJ1VBOi4qWEZGOi4qR0VUIC9idWlsZGlkL2RlYWRiZWVmLiogNDA0 ICcgdmxvZyRQT1JUMgorCitleGl0IDAKZGlmZiAtLWdpdCBhL3Rlc3RzL3J1bi1kZWJ1Z2luZm9k LWZpbGUuc2ggYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1maWxlLnNoCm5ldyBmaWxlIG1vZGUgMTAw NzU1CmluZGV4IDAwMDAwMDAwLi40MzVjMjE1NgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3J1 bi1kZWJ1Z2luZm9kLWZpbGUuc2gKQEAgLTAsMCArMSwzOCBAQAorIyEvdXNyL2Jpbi9lbnYgYmFz aAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBSZWQgSGF0LCBJbmMuCisjIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIGVsZnV0aWxzLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNl bnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBlbGZ1 dGlscyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBi dXQKKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorLiAkc3JjZGlyL3Rlc3Qtc3Vi ci5zaCAgIyBpbmNsdWRlcyBzZXQgLWUKKyMgZm9yIHRlc3QgY2FzZSBkZWJ1Z2dpbmcsIHVuY29t bWVudDoKK3NldCAteAorCitleHBvcnQgREVCVUdJTkZPRF9VUkxTPWh0dHA6Ly8xMjcuMC4wLjE6 JFBPUlQxLyAgICMgb3Igd2l0aG91dCB0cmFpbGluZyAvCisKKyMgVGVzdCBmZXRjaGluZyBhIGZp bGUgdXNpbmcgZmlsZTovLyAuIE5vIGRlYnVnaW5mb2Qgc2VydmVyIG5lZWRzIHRvIGJlIHJ1biBm b3IKKyMgdGhpcyB0ZXN0LgorbG9jYWxfZGlyPSR7UFdEfS9tb2NrdHJlZS9idWlsZGlkL2FhYWFh YWFhYWFiYmJiYmJiYmJiY2NjY2NjY2NjY2RkZGRkZGRkZGQvc291cmNlL215L3BhdGgKK21rZGly IC1wICR7bG9jYWxfZGlyfQorZWNobyAiaW50IG1haW4oKSB7IHJldHVybiAwOyB9IiA+ICR7bG9j YWxfZGlyfS9tYWluLmMKKyMgZmlyc3QgdGVzdCB0aGF0IGlzIGRvZXNuJ3Qgd29yaywgd2hlbiBu byBERUJVR0lORk9EX1VSTFMgaXMgc2V0CitERUJVR0lORk9EX1VSTFM9IiIKK3Rlc3RydW4gJHth YnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBzb3VyY2UgYWFhYWFh YWFhYWJiYmJiYmJiYmJjY2NjY2NjY2NjZGRkZGRkZGRkZCAvbXkvcGF0aC9tYWluLmMgJiYgZmFs c2UgfHwgdHJ1ZQorCisjIE5vdyB0ZXN0IGlzIHdpdGggcHJvcGVyIERFQlVHSU5GT0RfVVJMUwor REVCVUdJTkZPRF9VUkxTPSJmaWxlOi8vJHtQV0R9L21vY2t0cmVlLyIKK2ZpbGVuYW1lPWB0ZXN0 cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgc291cmNl IGFhYWFhYWFhYWFiYmJiYmJiYmJiY2NjY2NjY2NjY2RkZGRkZGRkZGQgL215L3BhdGgvbWFpbi5j YAorY21wICRmaWxlbmFtZSAke2xvY2FsX2Rpcn0vbWFpbi5jCisKK2V4aXQgMApkaWZmIC0tZ2l0 IGEvdGVzdHMvcnVuLWRlYnVnaW5mb2QtZmluZC5zaCBiL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLWZp bmQuc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDk5MWQxZGM1Li4wMDAwMDAwMAot LS0gYS90ZXN0cy9ydW4tZGVidWdpbmZvZC1maW5kLnNoCisrKyAvZGV2L251bGwKQEAgLTEsODA3 ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IGJhc2gKLSMKLSMgQ29weXJpZ2h0IChDKSAyMDE5LTIw MjEgUmVkIEhhdCwgSW5jLgotIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBlbGZ1dGlscy4KLSMKLSMg VGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKLSMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSMgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KLSMKLSMgZWxmdXRpbHMgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Ci0jIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSMgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotIyBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotIwotIyBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotIyBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4KLQotLiAkc3JjZGlyL3Rlc3Qtc3Vici5zaCAgIyBpbmNsdWRlcyBzZXQgLWUKLQot dHlwZSBjdXJsIDI+L2Rldi9udWxsIHx8IChlY2hvICJuZWVkIGN1cmwiOyBleGl0IDc3KQotdHlw ZSBycG0yY3BpbyAyPi9kZXYvbnVsbCB8fCAoZWNobyAibmVlZCBycG0yY3BpbyI7IGV4aXQgNzcp Ci10eXBlIGNwaW8gMj4vZGV2L251bGwgfHwgKGVjaG8gIm5lZWQgY3BpbyI7IGV4aXQgNzcpCi10 eXBlIGJ6Y2F0IDI+L2Rldi9udWxsIHx8IChlY2hvICJuZWVkIGJ6Y2F0IjsgZXhpdCA3NykKLWJz ZHRhciAtLXZlcnNpb24gfCBncmVwIC1xIHpzdGQgJiYgenN0ZD10cnVlIHx8IHpzdGQ9ZmFsc2UK LWVjaG8gInpzdGQ9JHpzdGQgYnNkdGFyPWBic2R0YXIgLS12ZXJzaW9uYCIKLQotIyBmb3IgdGVz dCBjYXNlIGRlYnVnZ2luZywgdW5jb21tZW50Ogotc2V0IC14Ci1WRVJCT1NFPS12dnYKLQotREI9 JHtQV0R9Ly5kZWJ1Z2luZm9kX3RtcC5zcWxpdGUKLXRlbXBmaWxlcyAkREIKLWV4cG9ydCBERUJV R0lORk9EX0NBQ0hFX1BBVEg9JHtQV0R9Ly5jbGllbnRfY2FjaGUKLQotUElEMT0wCi1QSUQyPTAK LVBJRDM9MAotUElEND0wCi0KLWNsZWFudXAoKQotewotICBpZiBbICRQSUQxIC1uZSAwIF07IHRo ZW4ga2lsbCAkUElEMTsgd2FpdCAkUElEMTsgZmkKLSAgaWYgWyAkUElEMiAtbmUgMCBdOyB0aGVu IGtpbGwgJFBJRDI7IHdhaXQgJFBJRDI7IGZpCi0gIGlmIFsgJFBJRDMgLW5lIDAgXTsgdGhlbiBr aWxsICRQSUQzOyB3YWl0ICRQSUQzOyBmaQotICBpZiBbICRQSUQ0IC1uZSAwIF07IHRoZW4ga2ls bCAkUElENDsgd2FpdCAkUElENDsgZmkKLSAgcm0gLXJmIEYgUiBEIEwgWiAke1BXRH0vZm9vYmFy ICR7UFdEfS9tb2NrdHJlZSAke1BXRH0vLmNsaWVudF9jYWNoZSogJHtQV0R9L3RtcCoKLSAgZXhp dF9jbGVhbnVwCi19Ci0KLSMgY2xlYW4gdXAgdHJhc2ggaWYgd2Ugd2VyZSBhYm9ydGVkIGVhcmx5 Ci10cmFwIGNsZWFudXAgMCAxIDIgMyA1IDkgMTUKLQotZXJyZmlsZXNfbGlzdD0KLWVycigpIHsK LSAgICBlY2hvIEVSUk9SIFJFUE9SVFMKLSAgICBmb3IgcG9ydHMgaW4gJFBPUlQxICRQT1JUMiAk UE9SVDMKLSAgICBkbwotICAgICAgICBlY2hvIEVSUk9SIFJFUE9SVCAkcG9ydCBtZXRyaWNzCi0g ICAgICAgIGN1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokcG9ydC9tZXRyaWNzCi0gICAgICAgIGVj aG8KLSAgICBkb25lCi0gICAgZm9yIHggaW4gJGVycmZpbGVzX2xpc3QKLSAgICBkbwotICAgICAg ICBlY2hvIEVSUk9SIFJFUE9SVCAiJHgiCi0gICAgICAgIGNhdCAkeAotICAgICAgICBlY2hvCi0g ICAgZG9uZQotICAgIGZhbHNlICMgdHJpZ2dlciBzZXQgLWUKLX0KLXRyYXAgZXJyIEVSUgotCi1l cnJmaWxlcygpIHsKLSAgICBlcnJmaWxlc19saXN0PSIkZXJyZmlsZXNfbGlzdCAkKiIKLX0KLQot Ci0jIGZpbmQgYW4gdW51c2VkIHBvcnQgbnVtYmVyCi13aGlsZSB0cnVlOyBkbwotICAgIFBPUlQx PWBleHByICcoJyAkUkFORE9NICUgMTAwMCAnKScgKyA5MDAwYAotICAgIHNzIC1hdG4gfCBmZ3Jl cCAiOiRQT1JUMSIgfHwgYnJlYWsKLWRvbmUgICAgCi0KLSMgV2Ugd2FudCB0byBydW4gZGVidWdp bmZvZCBpbiB0aGUgYmFja2dyb3VuZC4gIFdlIGFsc28gd2FudCB0byBzdGFydAotIyBpdCB3aXRo IHRoZSBzYW1lIGNoZWNrL2luc3RhbGxjaGVjay1zZW5zaXRpdmUgTERfTElCUkFSWV9QQVRIIHN0 dWZmCi0jIHRoYXQgdGhlIHRlc3RydW4gYWxpYXMgc2V0cy4gIEJ1dDogd2UgaWYgd2UganVzdCB1 c2UKLSMgICAgdGVzdHJ1biAuLi4vZGVidWdpbmZvZAotIyBpdCBydW5zIGluIGEgc3Vic2hlbGws IHdpdGggZGlmZmVyZW50IHBpZCwgc28gbm90IGhlbHBmdWwuCi0jCi0jIFNvIHdlIGdhdGhlciB0 aGUgTERfTElCUkFSWV9QQVRIIHdpdGggdGhpcyBjdW5uaW5nIHRyaWNrOgotbGRwYXRoPWB0ZXN0 cnVuIHNoIC1jICdlY2hvICRMRF9MSUJSQVJZX1BBVEgnYAotCi1ta2RpciBGIFIgTCBEIFoKLSMg bm90IHRlbXBmaWxlcyBGIFIgTCBEIFogLSB0aGV5IGFyZSBkaXJlY3RvcmllcyB3aGljaCB3ZSBj bGVhbiB1cCBtYW51YWxseQotbG4gLXMgJHthYnNfYnVpbGRkaXJ9L2R3ZmxsaW5lcyBML2ZvbyAg ICMgYW55IHByb2dyYW0gbm90IHVzZWQgZWxzZXdoZXJlIGluIHRoaXMgdGVzdAotCi13YWl0X3Jl YWR5KCkKLXsKLSAgcG9ydD0kMTsKLSAgd2hhdD0kMjsKLSAgdmFsdWU9JDM7Ci0gIHRpbWVvdXQ9 MjA7Ci0KLSAgZWNobyAiV2FpdCAkdGltZW91dCBzZWNvbmRzIG9uICRwb3J0IGZvciBtZXRyaWMg JHdoYXQgdG8gY2hhbmdlIHRvICR2YWx1ZSIKLSAgd2hpbGUgWyAkdGltZW91dCAtZ3QgMCBdOyBk bwotICAgIG12YWx1ZT0iJChjdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JHBvcnQvbWV0cmljcyBc Ci0gICAgICAgICAgICAgIHwgZ3JlcCAiJHdoYXQiIHwgYXdrICd7cHJpbnQgJE5GfScpIgotICAg IGlmIFsgLXogIiRtdmFsdWUiIF07IHRoZW4gbXZhbHVlPTA7IGZpCi0gICAgICBlY2hvICJtZXRy aWMgJHdoYXQ6ICRtdmFsdWUiCi0gICAgICBpZiBbICIkbXZhbHVlIiAtZXEgIiR2YWx1ZSIgXTsg dGhlbgotICAgICAgICBicmVhazsKLSAgICBmaQotICAgIHNsZWVwIDAuNTsKLSAgICAoKHRpbWVv dXQtLSkpOwotICBkb25lOwotCi0gIGlmIFsgJHRpbWVvdXQgLWVxIDAgXTsgdGhlbgotICAgIGVj aG8gIm1ldHJpYyAkd2hhdCBuZXZlciBjaGFuZ2VkIHRvICR2YWx1ZSBvbiBwb3J0ICRwb3J0Igot ICAgIGVycgotICBmaQotfQotCi1GRENBQ0hFX0ZEUz01MAotRkRDQUNIRV9NQlM9MTkwCi1QUkVG RVRDSF9GRFM9MTAKLVBSRUZFVENIX01CUz0xMjAKLSMgY3JlYXRlIGEgYm9ndXMgLnJwbSBmaWxl IHRvIGV2b2tlIGEgbWV0cmljLXZpc2libGUgZXJyb3IKLSMgVXNlIGEgY3ljbGljIHN5bWxpbmsg aW5zdGVhZCBvZiBjaG1vZCAwMDAgdG8gbWFrZSBzdXJlIGV2ZW4gcm9vdAotIyB3b3VsZCBzZWUg YW4gZXJyb3IgKHJ1bm5pbmcgdGhlIHRlc3RzdWl0ZSB1bmRlciByb290IGlzIE5PVCBlbmNvdXJh Z2VkKS4KLWxuIC1zIFIvbm90aGluZy5ycG0gUi9ub3RoaW5nLnJwbQotZW52IExEX0xJQlJBUllf UEFUSD0kbGRwYXRoIERFQlVHSU5GT0RfVVJMUz0gJHthYnNfYnVpbGRkaXJ9Ly4uL2RlYnVnaW5m b2QvZGVidWdpbmZvZCAkVkVSQk9TRSAtRiAtUiAtZCAkREIgLXAgJFBPUlQxIC10MCAtZzAgLS1m ZGNhY2hlLW1icz0kRkRDQUNIRV9NQlMgLS1mZGNhY2hlLWZkcz0kRkRDQUNIRV9GRFMgLS1mZGNh Y2hlLXByZWZldGNoLW1icz0kUFJFRkVUQ0hfTUJTIC0tZmRjYWNoZS1wcmVmZXRjaC1mZHM9JFBS RUZFVENIX0ZEUyAtLWZkY2FjaGUtbWludG1wIDAgLVogLnRhci54eiAtWiAudGFyLmJ6Mj1iemNh dCAtdiBSIEYgWiBMID4gdmxvZyRQT1JUMSAyPiYxICYKLVBJRDE9JCEKLXRlbXBmaWxlcyB2bG9n JFBPUlQxCi1lcnJmaWxlcyB2bG9nJFBPUlQxCi0jIFNlcnZlciBtdXN0IGJlY29tZSByZWFkeQot d2FpdF9yZWFkeSAkUE9SVDEgJ3JlYWR5JyAxCi1leHBvcnQgREVCVUdJTkZPRF9VUkxTPWh0dHA6 Ly8xMjcuMC4wLjE6JFBPUlQxLyAgICMgb3Igd2l0aG91dCB0cmFpbGluZyAvCi0KLSMgQmUgcGF0 aWVudCB3aGVuIHJ1biBvbiBhIGJ1c3kgbWFjaGluZSB0aGluZ3MgbWlnaHQgdGFrZSBhIGJpdC4K LWV4cG9ydCBERUJVR0lORk9EX1RJTUVPVVQ9MTAKLQotIyBDaGVjayB0aHJlYWQgY29tbSBuYW1l cwotcHMgLXEgJFBJRDEgLWUgLUwgLW8gJyVwICVjICVhJyB8IGdyZXAgZ3Jvb20KLXBzIC1xICRQ SUQxIC1lIC1MIC1vICclcCAlYyAlYScgfCBncmVwIHNjYW4KLXBzIC1xICRQSUQxIC1lIC1MIC1v ICclcCAlYyAlYScgfCBncmVwIHRyYXZlcnNlCi0KLSMgV2UgdXNlIC10MCBhbmQgLWcwIGhlcmUg dG8gdHVybiBvZmYgdGltZS1iYXNlZCBzY2FubmluZyAmIGdyb29taW5nLgotIyBGb3IgdGVzdGlu ZyBwdXJwb3Nlcywgd2UganVzdCBzaWMgU0lHVVNSMSAvIFNJR1VTUjIgYXQgdGhlIHByb2Nlc3Mu Ci0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIENvbXBpbGUgYSBzaW1wbGUgcHJvZ3JhbSwgc3RyaXAg aXRzIGRlYnVnaW5mbyBhbmQgc2F2ZSB0aGUgYnVpbGQtaWQuCi0jIEFsc28gbW92ZSB0aGUgZGVi dWdpbmZvIGludG8gYW5vdGhlciBkaXJlY3Rvcnkgc28gdGhhdCBlbGZ1dGlscwotIyBjYW5ub3Qg ZmluZCBpdCB3aXRob3V0IGRlYnVnaW5mb2QuCi1lY2hvICJpbnQgbWFpbigpIHsgcmV0dXJuIDA7 IH0iID4gJHtQV0R9L3ArciVvXCRnLmMKLXRlbXBmaWxlcyBwK3Ilb1wkZy5jCi0jIENyZWF0ZSBh IHN1YmRpcmVjdG9yeSB0byBjb25mb3VuZCBzb3VyY2UgcGF0aCBuYW1lcwotbWtkaXIgZm9vYmFy Ci1nY2MgLVdsLC0tYnVpbGQtaWQgLWcgLW8gcCtyJW9cJGcgJHtQV0R9L2Zvb2Jhci8vLy4vLi4v cCtyJW9cJGcuYwotdGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L3NyYy9zdHJpcCAtZyAtZiBw K3Ilb1wkZy5kZWJ1ZyAke1BXRH0vcCtyJW9cJGcKLUJVSUxESUQ9YGVudiBMRF9MSUJSQVJZX1BB VEg9JGxkcGF0aCAke2Fic19idWlsZGRpcn0vLi4vc3JjL3JlYWRlbGYgXAotICAgICAgICAgIC1h IHArciVvXFwkZyB8IGdyZXAgJ0J1aWxkIElEJyB8IGN1dCAtZCAnICcgLWYgN2AKLQotd2FpdF9y ZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3RvdGFse3JvbGU9InRyYXZlcnNlIn0nIDEKLW12IHAr ciVvXCRnIEYKLW12IHArciVvXCRnLmRlYnVnIEYKLWtpbGwgLVVTUjEgJFBJRDEKLSMgV2FpdCB0 aWxsIGJvdGggZmlsZXMgYXJlIGluIHRoZSBpbmRleC4KLXdhaXRfcmVhZHkgJFBPUlQxICd0aHJl YWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9JyAyCi13YWl0X3JlYWR5ICRQT1JUMSAndGhy ZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2FuIn0nIDAKLXdhaXRfcmVhZHkgJFBPUlQxICd0aHJl YWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMgVGVzdCB3aGV0 aGVyIGVsZnV0aWxzLCB2aWEgdGhlIGRlYnVnaW5mb2QgY2xpZW50IGxpYnJhcnkgZGxvcGVuIGhv b2tzLAotIyBpcyBhYmxlIHRvIGZldGNoIGRlYnVnaW5mbyBmcm9tIHRoZSBsb2NhbCBkZWJ1Z2lu Zm9kLgotdGVzdHJ1biAke2Fic19idWlsZGRpcn0vZGVidWdpbmZvZF9idWlsZF9pZF9maW5kIC1l IEYvcCtyJW9cJGcgMQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMjIFBSMjc4OTIKLSMgRW5zdXJlIERF QlVHSU5GT0RfTUFYU0laRSBpcyBmdW5jdGlvbmFsIGFuZCBzZW5kcyBiYWNrIHRoZSBjb3JyZWN0 IGh0dHAKLSMgY29kZQotZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoIERFQlVHSU5GT0RfUkVU UllfTElNSVQ9MSBERUJVR0lORk9EX1VSTFM9Imh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxLyIgREVC VUdJTkZPRF9NQVhTSVpFPTEgXAotICAgICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9k ZWJ1Z2luZm9kLWZpbmQgLXYgZGVidWdpbmZvIEYvcCtyJW9cJGcuZGVidWcgMj4gZmluZC12bG9n JFBPUlQxIHx8IHRydWUKLXRlbXBmaWxlcyBmaW5kLXZsb2ckUE9SVDEKLSMgd2FpdCBmb3IgdGhl IHNlcnZlciB0byBmYWlsIHRoZSBzYW1lIG51bWJlciBvZiB0aW1lcyB0aGUgcXVlcnkgaXMgcmV0 cmllZC4KLXdhaXRfcmVhZHkgJFBPUlQxICdodHRwX3Jlc3BvbnNlc19hZnRlcl95b3VfbWlsbGlz ZWNvbmRzX2NvdW50e2NvZGU9IjQwNiJ9JyAxCi0jIGVuc3VyZSBhbGwgcmVwb3J0aW5nIGlzIGZ1 bmN0aW9uYWwKLWdyZXAgJ3NlcnZpbmcgZmlsZSAnJChyZWFscGF0aCAke1BXRH0pJy9GL3ArciVv XCRnLmRlYnVnJyB2bG9nJFBPUlQxCi1ncmVwICdGaWxlIHRvbyBsYXJnZScgdmxvZyRQT1JUMQot Z3JlcCAndXNpbmcgbWF4IHNpemUgMUInIGZpbmQtdmxvZyRQT1JUMQotaWYgWyAtZiAke0RFQlVH SU5GT0RfQ0FDSEVfUEFUSH0vJHtCVUlMRElEfSBdOyB0aGVuCi0gIGVjaG8gIkZpbGUgY2FjaGVk IGFmdGVyIG1heHNpemUgY2hlY2siCi0gIGVycgotZmkKLQotIyBFbnN1cmUgREVCVUdJTkZPRF9N QVhUSU1FIGlzIGZ1bmN0aW9uYWwKLWVudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCBERUJVR0lO Rk9EX1VSTFM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMi8iIERFQlVHSU5GT0RfTUFYVElNRT0xIFwK LSAgICAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIC12IGRl YnVnaW5mbyBGL3ArciVvXCRnLmRlYnVnIDI+IGZpbmQtdmxvZyRQT1JUMSB8fCB0cnVlCi1ncmVw ICd1c2luZyBtYXggdGltZScgZmluZC12bG9nJFBPUlQxCi0jIEVuc3VyZSBwK3Ilb1wkZy5kZWJ1 ZyBpcyBOT1QgY2FjaGVkCi1pZiBbIC1mICR7REVCVUdJTkZPRF9DQUNIRV9QQVRIfS8ke0JVSUxE SUR9IF07IHRoZW4KLSAgZWNobyAiRmlsZSBjYWNoZWQgYWZ0ZXIgbWF4dGltZSBjaGVjayIKLSAg ZXJyCi1maQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIFBSMjU2MjgKLXJtIC1yZiAkREVCVUdJTkZPRF9D QUNIRV9QQVRIICMgY2xlYW4gaXQgZnJvbSBwcmV2aW91cyB0ZXN0cwotCi0jIFRoZSBxdWVyeSBp cyBkZXNpZ25lZCB0byBmYWlsLCB3aGlsZSB0aGUgMDAwLXBlcm1pc3Npb24gZmlsZSBzaG91bGQg YmUgY3JlYXRlZC4KLXRlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVn aW5mb2QtZmluZCBkZWJ1Z2luZm8gMDEyMzQ1NjcgfHwgdHJ1ZQotaWYgWyAhIC1mICRERUJVR0lO Rk9EX0NBQ0hFX1BBVEgvMDEyMzQ1NjcvZGVidWdpbmZvIF07IHRoZW4KLSAgZWNobyAiY291bGQg bm90IGZpbmQgY2FjaGUgaW4gJERFQlVHSU5GT0RfQ0FDSEVfUEFUSCIKLSAgZXJyCi1maQotCi1p ZiBbIC1yICRERUJVR0lORk9EX0NBQ0hFX1BBVEgvMDEyMzQ1NjcvZGVidWdpbmZvIF07IHRoZW4K LSAgZWNobyAiVGhlIGNhY2hlICRERUJVR0lORk9EX0NBQ0hFX1BBVEgvMDEyMzQ1NjcvZGVidWdp bmZvIGlzIHJlYWRhYmxlIgotICBlcnIKLWZpCi0KLWJ5dGVjb3VudF9iZWZvcmU9YGN1cmwgLXMg aHR0cDovLzEyNy4wLjAuMTokUE9SVDEvbWV0cmljcyB8IGdyZXAgJ2h0dHBfcmVzcG9uc2VzX3Ry YW5zZmVyX2J5dGVzX2NvdW50e2NvZGU9IjQwNCJ9J2AKLXRlc3RydW4gJHthYnNfdG9wX2J1aWxk ZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gMDEyMzQ1NjcgfHwgdHJ1 ZQotYnl0ZWNvdW50X2FmdGVyPWBjdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL21ldHJp Y3MgfCBncmVwICdodHRwX3Jlc3BvbnNlc190cmFuc2Zlcl9ieXRlc19jb3VudHtjb2RlPSI0MDQi fSdgCi1pZiBbICIkYnl0ZWNvdW50X2JlZm9yZSIgIT0gIiRieXRlY291bnRfYWZ0ZXIiIF07IHRo ZW4KLSAgZWNobyAiaHR0cF9yZXNwb25zZXNfdHJhbnNmZXJfYnl0ZXNfY291bnR7Y29kZT0iNDA0 In0gaGFzIGNoYW5nZWQuIgotICBlcnIKLWZpCi0KLSMgc2V0IGNhY2hlX21pc3NfcyB0byAwIGFu ZCBzbGVlcCAxIHRvIG1ha2UgdGhlIG10aW1lIGV4cGlyZS4KLWVjaG8gMCA+ICRERUJVR0lORk9E X0NBQ0hFX1BBVEgvY2FjaGVfbWlzc19zCi1zbGVlcCAxCi1ieXRlY291bnRfYmVmb3JlPWBjdXJs IC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL21ldHJpY3MgfCBncmVwICdodHRwX3Jlc3BvbnNl c190cmFuc2Zlcl9ieXRlc19jb3VudHtjb2RlPSI0MDQifSdgCi10ZXN0cnVuICR7YWJzX3RvcF9i dWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdpbmZvIDAxMjM0NTY3IHx8 IHRydWUKLWJ5dGVjb3VudF9hZnRlcj1gY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMS9t ZXRyaWNzIHwgZ3JlcCAnaHR0cF9yZXNwb25zZXNfdHJhbnNmZXJfYnl0ZXNfY291bnR7Y29kZT0i NDA0In0nYAotaWYgWyAiJGJ5dGVjb3VudF9iZWZvcmUiID09ICIkYnl0ZWNvdW50X2FmdGVyIiBd OyB0aGVuCi0gIGVjaG8gImh0dHBfcmVzcG9uc2VzX3RyYW5zZmVyX2J5dGVzX2NvdW50e2NvZGU9 IjQwNCJ9IHNob3VsZCBiZSBpbmNyZW1lbnRlZC4iCi0gIGVycgotZmkKLSMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IwotCi0jIFRlc3Qgd2hldGhlciBkZWJ1Z2luZm9kLWZpbmQgaXMgYWJsZSB0byBmZXRjaCB0aG9z ZSBmaWxlcy4KLXJtIC1yZiAkREVCVUdJTkZPRF9DQUNIRV9QQVRIICMgY2xlYW4gaXQgZnJvbSBw cmV2aW91cyB0ZXN0cwotZmlsZW5hbWU9YHRlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1 Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESURgCi1jbXAgJGZpbGVuYW1l IEYvcCtyJW9cJGcuZGVidWcKLWlmIFsgLXcgJGZpbGVuYW1lIF07IHRoZW4KLSAgICBlY2hvICJj YWNoZSBmaWxlIHdyaXRhYmxlLCBib28iCi0gICAgZXJyCi1maQotCi1maWxlbmFtZT1gdGVzdHJ1 biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGV4ZWN1dGFi bGUgRi9wK3Ilb1xcJGdgCi1jbXAgJGZpbGVuYW1lIEYvcCtyJW9cJGcKLQotIyByYXcgc291cmNl IGZpbGVuYW1lCi1maWxlbmFtZT1gdGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5m b2QvZGVidWdpbmZvZC1maW5kIHNvdXJjZSAkQlVJTERJRCAke1BXRH0vZm9vYmFyLy8vLi8uLi9w K3Ilb1xcJGcuY2AKLWNtcCAkZmlsZW5hbWUgICR7UFdEfS9wK3Ilb1wkZy5jCi0KLSMgYW5kIGFs c28gdGhlIGNhbm9uaWNhbGl6ZWQgb25lCi1maWxlbmFtZT1gdGVzdHJ1biAke2Fic190b3BfYnVp bGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIHNvdXJjZSAkQlVJTERJRCAke1BXRH0v cCtyJW9cXCRnLmNgCi1jbXAgJGZpbGVuYW1lICAke1BXRH0vcCtyJW9cJGcuYwotCi0KLSMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwotCi0jIFRlc3Qgd2hldGhlciB0aGUgY2FjaGUgZGVmYXVsdCBsb2NhdGlvbnMg YXJlIGNvcnJlY3QKLQotbWtkaXIgdG1waG9tZQotCi0jICRIT01FLy5jYWNoZSBzaG91bGQgYmUg Y3JlYXRlZC4KLXRlc3RydW4gZW52IEhPTUU9JFBXRC90bXBob21lIFhER19DQUNIRV9IT01FPSBE RUJVR0lORk9EX0NBQ0hFX1BBVEg9ICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1 Z2luZm9kLWZpbmQgZGVidWdpbmZvICRCVUlMRElECi1pZiBbICEgLWYgJFBXRC90bXBob21lLy5j YWNoZS9kZWJ1Z2luZm9kX2NsaWVudC8kQlVJTERJRC9kZWJ1Z2luZm8gXTsgdGhlbgotICBlY2hv ICJjb3VsZCBub3QgZmluZCBjYWNoZSBpbiAkUFdEL3RtcGhvbWUvLmNhY2hlIgotICBlcnIKLWZp Ci0KLSMgJEhPTUUvLmNhY2hlIHNob3VsZCBiZSBmb3VuZC4KLXRlc3RydW4gZW52IEhPTUU9JFBX RC90bXBob21lIFhER19DQUNIRV9IT01FPSBERUJVR0lORk9EX0NBQ0hFX1BBVEg9ICR7YWJzX3Rv cF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZXhlY3V0YWJsZSAkQlVJTERJ RAotaWYgWyAhIC1mICRQV0QvdG1waG9tZS8uY2FjaGUvZGVidWdpbmZvZF9jbGllbnQvJEJVSUxE SUQvZXhlY3V0YWJsZSBdOyB0aGVuCi0gIGVjaG8gImNvdWxkIG5vdCBmaW5kIGNhY2hlIGluICRQ V0QvdG1waG9tZS8uY2FjaGUiCi0gIGVycgotZmkKLQotIyAkWERHX0NBQ0hFX0hPTUUgc2hvdWxk IHRha2UgcHJpb3JpdHkgb3ZlciAkSE9NRS5jYWNoZS4KLXRlc3RydW4gZW52IEhPTUU9JFBXRC90 bXBob21lIFhER19DQUNIRV9IT01FPSRQV0QvdG1weGRnIERFQlVHSU5GT0RfQ0FDSEVfUEFUSD0g JHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8g JEJVSUxESUQKLWlmIFsgISAtZiAkUFdEL3RtcHhkZy9kZWJ1Z2luZm9kX2NsaWVudC8kQlVJTERJ RC9kZWJ1Z2luZm8gXTsgdGhlbgotICBlY2hvICJjb3VsZCBub3QgZmluZCBjYWNoZSBpbiAkUFdE L3RtcHhkZy8iCi0gIGVycgotZmkKLQotIyBBIGNhY2hlIGF0IHRoZSBvbGQgZGVmYXVsdCBsb2Nh dGlvbiAoJEhPTUUvLmRlYnVnaW5mb2RfY2xpZW50X2NhY2hlKSBzaG91bGQgdGFrZQotIyBwcmlv cml0eSBvdmVyICRIT01FLy5jYWNoZSwgJFhER19DQUNIRV9IT01FLgotY3AgLXZyICRERUJVR0lO Rk9EX0NBQ0hFX1BBVEggdG1waG9tZS8uZGVidWdpbmZvZF9jbGllbnRfY2FjaGUgfHwgdHJ1ZQot IyB8fHRydWUgaXMgZm9yIHRvbGVyYXRpbmcgZXJyb3JzLCBzdWNoIGEgdmFsZ3JpbmQgb3Igc29t ZXRoaW5nIGVsc2UKLSMgICAgICAgIGxlYXZpbmcgMDAwLXBlcm0gZmlsZXMgaW4gdGhlcmUKLQot IyBBZGQgYSBmaWxlIHRoYXQgZG9lc24ndCBleGlzdCBpbiAkSE9NRS8uY2FjaGUsICRYREdfQ0FD SEVfSE9NRS4KLW1rZGlyIHRtcGhvbWUvLmRlYnVnaW5mb2RfY2xpZW50X2NhY2hlL2RlYWRiZWVm Ci1lY2hvIEVMRi4uLiA+IHRtcGhvbWUvLmRlYnVnaW5mb2RfY2xpZW50X2NhY2hlL2RlYWRiZWVm L2RlYnVnaW5mbwotZmlsZW5hbWU9YHRlc3RydW4gZW52IEhPTUU9JFBXRC90bXBob21lIFhER19D QUNIRV9IT01FPSRQV0QvdG1weGRnIERFQlVHSU5GT0RfQ0FDSEVfUEFUSD0gJHthYnNfdG9wX2J1 aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gZGVhZGJlZWZgCi1j bXAgJGZpbGVuYW1lIHRtcGhvbWUvLmRlYnVnaW5mb2RfY2xpZW50X2NhY2hlL2RlYWRiZWVmL2Rl YnVnaW5mbwotCi0jICRERUJVR0lORk9fQ0FDSEVfUEFUSCBzaG91bGQgdGFrZSBwcmlvcml0eSBv dmVyIGFsbCBlbHNlLgotdGVzdHJ1biBlbnYgSE9NRT0kUFdEL3RtcGhvbWUgWERHX0NBQ0hFX0hP TUU9JFBXRC90bXB4ZGcgREVCVUdJTkZPRF9DQUNIRV9QQVRIPSRQV0QvdG1wY2FjaGUgJHthYnNf dG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxE SUQKLWlmIFsgISAtZiAkUFdEL3RtcGNhY2hlLyRCVUlMRElEL2RlYnVnaW5mbyBdOyB0aGVuCi0g IGVjaG8gImNvdWxkIG5vdCBmaW5kIGNhY2hlIGluICRQV0QvdG1wY2FjaGUvIgotICBlcnIKLWZp Ci0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIEFkZCBhcnRpZmFjdHMgdG8gdGhlIHNlYXJjaCBwYXRo cyBhbmQgdGVzdCB3aGV0aGVyIGRlYnVnaW5mb2QgZmluZHMgdGhlbSB3aGlsZSBhbHJlYWR5IHJ1 bm5pbmcuCi0KLSMgQnVpbGQgYW5vdGhlciwgbm9uLXN0cmlwcGVkIGJpbmFyeQotZWNobyAiaW50 IG1haW4oKSB7IHJldHVybiAwOyB9IiA+ICR7UFdEfS9wcm9nMi5jCi10ZW1wZmlsZXMgcHJvZzIu YwotZ2NjIC1XbCwtLWJ1aWxkLWlkIC1nIC1vIHByb2cyICR7UFdEfS9wcm9nMi5jCi1CVUlMRElE Mj1gZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoICR7YWJzX2J1aWxkZGlyfS8uLi9zcmMvcmVh ZGVsZiBcCi0gICAgICAgICAgLWEgcHJvZzIgfCBncmVwICdCdWlsZCBJRCcgfCBjdXQgLWQgJyAn IC1mIDdgCi0KLW12IHByb2cyIEYKLWtpbGwgLVVTUjEgJFBJRDEKLSMgTm93IHRoZXJlIHNob3Vs ZCBiZSAzIGZpbGVzIGluIHRoZSBpbmRleAotd2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3Jr X3RvdGFse3JvbGU9InRyYXZlcnNlIn0nIDMKLXdhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29y a19wZW5kaW5ne3JvbGU9InNjYW4ifScgMAotd2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF9idXN5 e3JvbGU9InNjYW4ifScgMAotY3AgJERCICREQi5iYWNrdXAKLXRlbXBmaWxlcyAkREIuYmFja3Vw Ci0jIFJlcnVuIHNhbWUgdGVzdHMgZm9yIHRoZSBwcm9nMiBiaW5hcnkKLWZpbGVuYW1lPWB0ZXN0 cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgLXYgZGVi dWdpbmZvICRCVUlMRElEMiAyPnZsb2dgCi1jbXAgJGZpbGVuYW1lIEYvcHJvZzIKLWNhdCB2bG9n Ci1ncmVwIC1xIFByb2dyZXNzIHZsb2cKLWdyZXAgLXEgRG93bmxvYWRlZC5mcm9tIHZsb2cKLXRl bXBmaWxlcyB2bG9nCi1maWxlbmFtZT1gdGVzdHJ1biBlbnYgREVCVUdJTkZPRF9QUk9HUkVTUz0x ICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZXhlY3V0YWJs ZSAkQlVJTERJRDIgMj52bG9nMmAKLWNtcCAkZmlsZW5hbWUgRi9wcm9nMgotY2F0IHZsb2cyCi1n cmVwIC1xICdEb3dubG9hZGluZy4qaHR0cCcgdmxvZzIKLXRlbXBmaWxlcyB2bG9nMgotZmlsZW5h bWU9YHRlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmlu ZCBzb3VyY2UgJEJVSUxESUQyICR7UFdEfS9wcm9nMi5jYAotY21wICRmaWxlbmFtZSAke1BXRH0v cHJvZzIuYwotCi1jcCAtcnZwICR7YWJzX3NyY2Rpcn0vZGVidWdpbmZvZC1ycG1zIFIKLWlmIFsg IiR6c3RkIiA9ICJmYWxzZSIgXTsgdGhlbiAgIyBudWtlIHRoZSB6c3RkIGZlZG9yYSAzMSBvbmVz Ci0gICAgcm0gLXZyZiBSL2RlYnVnaW5mb2QtcnBtcy9mZWRvcmEzMQotZmkKLQotY3AgLXJ2cCAk e2Fic19zcmNkaXJ9L2RlYnVnaW5mb2QtdGFycyBaCi1raWxsIC1VU1IxICRQSUQxCi0jIFdhaXQg dGlsbCBib3RoIGZpbGVzIGFyZSBpbiB0aGUgaW5kZXggYW5kIHNjYW4vaW5kZXggZnVsbHkgZmlu aXNoZWQKLXdhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJz ZSJ9JyA0Ci13YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2Fu In0nIDAKLXdhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKLQot IyBBbGwgcnBtcyBuZWVkIHRvIGJlIGluIHRoZSBpbmRleCwgZXhjZXB0IHRoZSBkdW1teSBwZXJt aXNzaW9uLTAwMCBvbmUKLXJwbXM9JChmaW5kIFIgLW5hbWUgXCpycG0gfCBncmVwIC12IG5vdGhp bmcgfCB3YyAtbCkKLXdhaXRfcmVhZHkgJFBPUlQxICdzY2FubmVkX2ZpbGVzX3RvdGFse3NvdXJj ZT0iLnJwbSBhcmNoaXZlIn0nICRycG1zCi10eHo9JChmaW5kIFogLW5hbWUgXCp0YXIueHogfCB3 YyAtbCkKLXdhaXRfcmVhZHkgJFBPUlQxICdzY2FubmVkX2ZpbGVzX3RvdGFse3NvdXJjZT0iLnRh ci54eiBhcmNoaXZlIn0nICR0eHoKLXRiMj0kKGZpbmQgWiAtbmFtZSBcKnRhci5iejIgfCB3YyAt bCkKLXdhaXRfcmVhZHkgJFBPUlQxICdzY2FubmVkX2ZpbGVzX3RvdGFse3NvdXJjZT0iLnRhci5i ejIgYXJjaGl2ZSJ9JyAkdGIyCi0KLWtpbGwgLVVTUjEgJFBJRDEgICMgdHdvIGhpdHMgb2YgU0lH VVNSMSBtYXkgYmUgbmVlZGVkIHRvIHJlc29sdmUgLmRlYnVnLT5kd3otPnNyZWZzCi0jIFdhaXQg dGlsbCBib3RoIGZpbGVzIGFyZSBpbiB0aGUgaW5kZXggYW5kIHNjYW4vaW5kZXggZnVsbHkgZmlu aXNoZWQKLXdhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJz ZSJ9JyA1Ci13YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2Fu In0nIDAKLXdhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKLQot IyBFeHBlY3QgYWxsIHNvdXJjZSBmaWxlcyBmb3VuZCBpbiB0aGUgcnBtcyAodGhleSBhcmUgYWxs IGNhbGxlZCBoZWxsby5jIDopCi0jIFdlIHdpbGwgbmVlZCB0byBleHRyYWN0IGFsbCBycG1zIChp biB0aGVpciBvd24gZGlyZWN0b3J5KSBhbmQgY291bGQgYWxsCi0jIHNvdXJjZXMgcmVmZXJlbmNl ZCBpbiB0aGUgLmRlYnVnIGZpbGVzLgotbWtkaXIgZXh0cmFjdGVkCi1jZCBleHRyYWN0ZWQKLXN1 YmRpcj0wOwotbmV3cnBtcz0kKGZpbmQgLi4vUiAtbmFtZSBcKlwucnBtIHwgZ3JlcCAtdiBub3Ro aW5nKQotZm9yIGkgaW4gJG5ld3JwbXM7IGRvCi0gICAgc3ViZGlyPSRbJHN1YmRpcisxXTsKLSAg ICBta2RpciAkc3ViZGlyOwotICAgIGNkICRzdWJkaXI7Ci0gICAgbHMgLWxhaCAuLi8kaQotICAg IHJwbTJjcGlvIC4uLyRpIHwgY3BpbyAtaXZkOwotICAgIGNkIC4uOwotZG9uZQotc291cmNlZmls ZXM9JChmaW5kIC1uYW1lIFwqXFwuZGVidWcgXAotCSAgICAgIHwgZW52IExEX0xJQlJBUllfUEFU SD0kbGRwYXRoIHhhcmdzIFwKLQkJJHthYnNfdG9wX2J1aWxkZGlyfS9zcmMvcmVhZGVsZiAtLWRl YnVnLWR1bXA9ZGVjb2RlZGxpbmUgXAotCSAgICAgIHwgZ3JlcCBtdGltZTogfCB3YyAtLWxpbmVz KQotY2QgLi4KLXJtIC1yZiBleHRyYWN0ZWQKLQotd2FpdF9yZWFkeSAkUE9SVDEgJ2ZvdW5kX3Nv dXJjZXJlZnNfdG90YWx7c291cmNlPSIucnBtIGFyY2hpdmUifScgJHNvdXJjZWZpbGVzCi0KLSMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIwotIyBQUjI3OTgzIGVuc3VyZSBubyBkdXBsaWNhdGUgdXJscyBhcmUgdXNl ZCBpbiB3aGVuIHF1ZXJ5aW5nIHNlcnZlcnMgZm9yIGZpbGVzCi1ybSAtcmYgJERFQlVHSU5GT0Rf Q0FDSEVfUEFUSCAjIGNsZWFuIGl0IGZyb20gcHJldmlvdXMgdGVzdHMKLWVudiBERUJVR0lORk9E X1VSTFM9Imh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxIGh0 dHA6Ly8xMjcuMC4wLjE6JFBPUlQxIGh0dHA6MTI3LjAuMC4xOjc5OTkiIFwKLSBMRF9MSUJSQVJZ X1BBVEg9JGxkcGF0aCAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1m aW5kIC12IGV4ZWN1dGFibGUgJEJVSUxESUQyID4gdmxvZzQgMj4mMSB8fCB0cnVlCi10ZW1wZmls ZXMgdmxvZzQKLWlmIFsgJCggZ3JlcCAtYyAnZHVwbGljYXRlIHVybDogaHR0cDovLzEyNy4wLjAu MTonJFBPUlQxJy4qJyB2bG9nNCApIC1uZSAyIF07IHRoZW4KLSAgZWNobyAiRHVwbGljYXRlZCBz ZXJ2ZXJzIHJlbWFpbiI7Ci0gIGVycgotZmkKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBSdW4gYSBiYW5r IG9mIHF1ZXJpZXMgYWdhaW5zdCB0aGUgZGVidWdpbmZvZC1ycG1zIC8gZGVidWdpbmZvZC1kZWJz IHRlc3QgY2FzZXMKLQotYXJjaGl2ZV90ZXN0KCkgewotICAgIF9fQlVJTERJRD0kMQotICAgIF9f U09VUkNFUEFUSD0kMgotICAgIF9fU09VUkNFU0hBMT0kMwotICAgIAotICAgIGZpbGVuYW1lPWB0 ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZXhl Y3V0YWJsZSAkX19CVUlMRElEYAotICAgIGJ1aWxkaWQ9YGVudiBMRF9MSUJSQVJZX1BBVEg9JGxk cGF0aCAke2Fic19idWlsZGRpcn0vLi4vc3JjL3JlYWRlbGYgXAotICAgICAgICAgICAgIC1hICRm aWxlbmFtZSB8IGdyZXAgJ0J1aWxkIElEJyB8IGN1dCAtZCAnICcgLWYgN2AKLSAgICB0ZXN0ICRf X0JVSUxESUQgPSAkYnVpbGRpZAotICAgICMgY2hlY2sgdGhhdCB0aW1lc3RhbXBzIGFyZSBwbGF1 c2libGUgLSBvbGRlciB0aGFuIHRoZSBuZWFyLXByZXNlbnQgKHRtcGRpciBtdGltZSkKLSAgICB0 ZXN0ICRmaWxlbmFtZSAtb3QgYHB3ZGAKLQotICAgICMgcnVuIGFnYWluIHRvIGFzc3VyZSB0aGF0 IGZkY2FjaGUgaXMgYmVpbmcgZW5qb3llZAotICAgIGZpbGVuYW1lPWB0ZXN0cnVuICR7YWJzX3Rv cF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZXhlY3V0YWJsZSAkX19CVUlM RElEYAotICAgIGJ1aWxkaWQ9YGVudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCAke2Fic19idWls ZGRpcn0vLi4vc3JjL3JlYWRlbGYgXAotICAgICAgICAgICAgIC1hICRmaWxlbmFtZSB8IGdyZXAg J0J1aWxkIElEJyB8IGN1dCAtZCAnICcgLWYgN2AKLSAgICB0ZXN0ICRfX0JVSUxESUQgPSAkYnVp bGRpZAotICAgIHRlc3QgJGZpbGVuYW1lIC1vdCBgcHdkYAotCi0gICAgZmlsZW5hbWU9YHRlc3Ry dW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2lu Zm8gJF9fQlVJTERJRGAKLSAgICBidWlsZGlkPWBlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGgg JHthYnNfYnVpbGRkaXJ9Ly4uL3NyYy9yZWFkZWxmIFwKLSAgICAgICAgICAgICAtYSAkZmlsZW5h bWUgfCBncmVwICdCdWlsZCBJRCcgfCBjdXQgLWQgJyAnIC1mIDdgCi0gICAgdGVzdCAkX19CVUlM RElEID0gJGJ1aWxkaWQKLSAgICB0ZXN0ICRmaWxlbmFtZSAtb3QgYHB3ZGAKLQotICAgIGlmIHRl c3QgIngkX19TT1VSQ0VQQVRIIiAhPSAieCI7IHRoZW4KLSAgICAgICAgZmlsZW5hbWU9YHRlc3Ry dW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBzb3VyY2Ug JF9fQlVJTERJRCAkX19TT1VSQ0VQQVRIYAotICAgICAgICBoYXNoPWBjYXQgJGZpbGVuYW1lIHwg c2hhMXN1bSB8IGF3ayAne3ByaW50ICQxfSdgCi0gICAgICAgIHRlc3QgJF9fU09VUkNFU0hBMSA9 ICRoYXNoCi0gICAgICAgIHRlc3QgJGZpbGVuYW1lIC1vdCBgcHdkYAotICAgIGZpCi19Ci0KLQot IyBjb21tb24gc291cmNlIGZpbGUgc2hhMQotU0hBPWY0YTFhODA2MmJlOTk4YWU5M2I4ZjFjZDc0 NGEzOThjNmRlNmRiYjEKLSMgZmVkb3JhMzEKLWlmIFsgJHpzdGQgPSB0cnVlIF07IHRoZW4KLSAg ICAjIGZlZG9yYTMxIHVzZXMgenN0ZCBjb21wcmVzc2lvbiBvbiBycG1zLCBvbGRlciBycG0yY3Bp by9saWJhcmNoaXZlIGNhbid0IGhhbmRsZSBpdAotICAgICMgYW5kIHdlJ3JlIG5vdCB1c2luZyB0 aGUgZmFuY3kgLVogJy5ycG09KHJwbTJjcGlvfHpzdGRjYXQpPCcgd29ya2Fyb3VuZCBpbiB0aGlz IHRlc3RzdWl0ZQotICAgIGFyY2hpdmVfdGVzdCA0MjBlOWUzMzA4OTcxZjRiODE3Y2M1YmY4Mzky OGI0MWE2OTA5ZDg4IC91c3Ivc3JjL2RlYnVnL2hlbGxvMy0xLjAtMi54ODZfNjQvZm9vYmFyLy8v Ly4vLi4vaGVsbG8uYyAkU0hBCi0gICAgYXJjaGl2ZV90ZXN0IDg3YzA4ZDEyYzc4MTc0ZjEwODJi N2M4ODhiMzIzODIxOWIwZWIyNjUgL3Vzci9zcmMvZGVidWcvaGVsbG8zLTEuMC0yLng4Nl82NC8v L2Zvb2Jhci8uLy4uLy9oZWxsby5jICRTSEEKLWZpCi0jIGZlZG9yYTMwCi1hcmNoaXZlX3Rlc3Qg YzM2NzA4YTc4NjE4ZDU5N2RlZTE1ZDBkYzk4OWYwOTNjYTVmOTEyMCAvdXNyL3NyYy9kZWJ1Zy9o ZWxsbzItMS4wLTIueDg2XzY0L2hlbGxvLmMgJFNIQQotYXJjaGl2ZV90ZXN0IDQxYTIzNmViNjY3 YzM2MmExYzQxOTYwMThjYzQ1ODFlMDk3MjJiMWIgL3Vzci9zcmMvZGVidWcvaGVsbG8yLTEuMC0y Lng4Nl82NC9oZWxsby5jICRTSEEKLSMgcmhlbDcKLWFyY2hpdmVfdGVzdCBiYzFmZWJmZDAzY2Ew NWUwMzBmMGQyMDVmNzY1OWRiMjlmOGE0YjMwIC91c3Ivc3JjL2RlYnVnL2hlbGxvLTEuMC9oZWxs by5jICRTSEEKLWFyY2hpdmVfdGVzdCBmMGFhMTViOGFiYTRmM2MyOGNhYzNjMmE3MzgwMWZlZmE2 NDRhOWYyIC91c3Ivc3JjL2RlYnVnL2hlbGxvLTEuMC9oZWxsby5jICRTSEEKLSMgcmhlbDYKLWFy Y2hpdmVfdGVzdCBiYmJmOTJlYmVlNTIyODMxMGUzOTg2MDljMjNjMmQ3ZDUzZjZlMmY5IC91c3Iv c3JjL2RlYnVnL2hlbGxvLTEuMC9oZWxsby5jICRTSEEKLWFyY2hpdmVfdGVzdCBkNDRkNDJjYmQ3 ZDkxNWJjOTM4YzgxMzMzYTIxZTM1NWE2MDIyZmI3IC91c3Ivc3JjL2RlYnVnL2hlbGxvLTEuMC9o ZWxsby5jICRTSEEKLSMgYXJjaAotYXJjaGl2ZV90ZXN0IGNlZTEzYjJlYTUwNWE3ZjM3YmQyMGQy NzFjNmJjN2U1ZjhkMmRmY2IgL3Vzci9zcmMvZGVidWcvaGVsbG8uYyA3YTEzMzRlMDg2Yjk3ZTVm MTI0MDAzYTZjZmIzZWQ3OTJkMTBjZGY0Ci0KLVJQTV9CVUlMRElEPWQ0NGQ0MmNiZDdkOTE1YmM5 MzhjODEzMzNhMjFlMzU1YTYwMjJmYjcgIyBpbiByaGVsNi8gc3ViZGlyLCBmb3IgYSBsYXRlciB0 ZXN0Ci0KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMgRHJvcCBzb21lIG9mIHRoZSBhcnRpZmFjdHMs IHJ1biBhIGdyb29tIGN5Y2xlOyBjb25maXJtIHRoYXQKLSMgZGVidWdpbmZvZCBoYXMgZm9yZ290 dGVuIHRoZW0sIGJ1dCByZW1lbWJlcnMgb3RoZXJzCi0KLXJtIC1yIFIvZGVidWdpbmZvZC1ycG1z L3JoZWw2LyoKLWtpbGwgLVVTUjIgJFBJRDEgICMgZ3Jvb20gY3ljbGUKLSMgMSBncm9vbSBjeWNs ZSBhbHJlYWR5IHRvb2sgcGxhY2UgYXQvc29vbi1hZnRlciBzdGFydHVwLCBzbyAtVVNSMiBtYWtl cyAyCi13YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0iZ3Jvb20ifScg MgotIyBFeHBlY3QgNCBycG1zIGNvbnRhaW5pbmcgMiBidWlsZGlkcyB0byBiZSBkZWxldGVkIGJ5 IHRoZSBncm9vbQotd2FpdF9yZWFkeSAkUE9SVDEgJ2dyb29tZWRfdG90YWx7ZGVjaXNpb249InN0 YWxlIn0nIDQKLQotcm0gLXJmICRERUJVR0lORk9EX0NBQ0hFX1BBVEggIyBjbGVhbiBpdCBmcm9t IHByZXZpb3VzIHRlc3RzCi0KLSMgdGhpcyBpcyBvbmUgb2YgdGhlIGJ1aWxkaWRzIGZyb20gdGhl IGdyb29tLWRlbGV0ZWQgcnBtcwotdGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5m b2QvZGVidWdpbmZvZC1maW5kIGV4ZWN1dGFibGUgJFJQTV9CVUlMRElEICYmIGZhbHNlIHx8IHRy dWUKLSMgYnV0IHRoaXMgb25lIHdhcyBub3QgZGVsZXRlZCBzbyBzaG91bGQgYmUgc3RpbGwgYXJv dW5kCi10ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZp bmQgZXhlY3V0YWJsZSAkQlVJTERJRDIKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMgUFIyNjgxMDog Tm93IHJlbmFtZSBzb21lIGZpbGVzIGluIHRoZSBSIGRpcmVjdG9yeSwgdGhlbiByZXNjYW4sIHNv Ci0jIHRoZXJlIGFyZSB0d28gY29waWVzIG9mIHRoZSBzYW1lIGJ1aWxkaWQgaW4gdGhlIGluZGV4 LCBvbmUgZm9yIHRoZQotIyBuby1sb25nZXItZXhpc3RpbmcgZmlsZSBuYW1lLCBhbmQgb25lIHVu ZGVyIHRoZSBuZXcgbmFtZS4KLQotIyBydW4gYSBncm9vbSBjeWNsZSB0byBmb3JjZSBzZXJ2ZXIg dG8gZHJvcCBpdHMgZmRjYWNoZQota2lsbCAtVVNSMiAkUElEMSAgIyBncm9vbSBjeWNsZQotd2Fp dF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3RvdGFse3JvbGU9Imdyb29tIn0nIDMKLSMgbW92 ZSBpdCBhcm91bmQgYSBjb3VwbGUgb2YgdGltZXMgdG8gbWFrZSBpdCBsaWtlbHkgdG8gaGl0IGEg bm9uZXhpc3RlbnQgZW50cnkgZHVyaW5nIGl0ZXJhdGlvbgotbXYgUi9kZWJ1Z2luZm9kLXJwbXMv cmhlbDcgUi9kZWJ1Z2luZm9kLXJwbXMvcmhlbDdyZW5hbWVkCi1raWxsIC1VU1IxICRQSUQxICAj IHNjYW4gY3ljbGUKLXdhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0 cmF2ZXJzZSJ9JyA2Ci13YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xl PSJzY2FuIn0nIDAKLXdhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0n IDAKLW12IFIvZGVidWdpbmZvZC1ycG1zL3JoZWw3cmVuYW1lZCBSL2RlYnVnaW5mb2QtcnBtcy9y aGVsN3JlbmFtZWQyCi1raWxsIC1VU1IxICRQSUQxICAjIHNjYW4gY3ljbGUKLXdhaXRfcmVhZHkg JFBPUlQxICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9JyA3Ci13YWl0X3JlYWR5 ICRQT1JUMSAndGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2FuIn0nIDAKLXdhaXRfcmVhZHkg JFBPUlQxICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKLW12IFIvZGVidWdpbmZvZC1ycG1z L3JoZWw3cmVuYW1lZDIgUi9kZWJ1Z2luZm9kLXJwbXMvcmhlbDdyZW5hbWVkMwota2lsbCAtVVNS MSAkUElEMSAgIyBzY2FuIGN5Y2xlCi13YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfdG90 YWx7cm9sZT0idHJhdmVyc2UifScgOAotd2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3Bl bmRpbmd7cm9sZT0ic2NhbiJ9JyAwCi13YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX2J1c3l7cm9s ZT0ic2NhbiJ9JyAwCi0KLSMgcmV0ZXN0IHJoZWw3Ci1hcmNoaXZlX3Rlc3QgYmMxZmViZmQwM2Nh MDVlMDMwZjBkMjA1Zjc2NTlkYjI5ZjhhNGIzMCAvdXNyL3NyYy9kZWJ1Zy9oZWxsby0xLjAvaGVs bG8uYyAkU0hBCi1hcmNoaXZlX3Rlc3QgZjBhYTE1YjhhYmE0ZjNjMjhjYWMzYzJhNzM4MDFmZWZh NjQ0YTlmMiAvdXNyL3NyYy9kZWJ1Zy9oZWxsby0xLjAvaGVsbG8uYyAkU0hBCi0KLWVncmVwICco bGliYy5lcnJvci4qcmhlbDcpfChiYzFmZWJmZDAzY2EpfChmMGFhMTViOGFiYSknIHZsb2ckUE9S VDEKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIyBQUjI1OTc4Ci0jIEVuc3VyZSB0aGF0IHRoZSBmZGNh Y2hlIG9wdGlvbnMgYXJlIHdvcmtpbmcuCi1ncmVwICJwcmVmZXRjaCBmZHMiIHZsb2ckUE9SVDEK LWdyZXAgInByZWZldGNoIG1icyIgdmxvZyRQT1JUMQotZ3JlcCAiZmRjYWNoZSBmZHMiIHZsb2ck UE9SVDEKLWdyZXAgImZkY2FjaGUgbWJzIiB2bG9nJFBPUlQxCi0jIHNlYXJjaCB0aGUgdmxvZyB0 byBmaW5kIHdoYXQgbWV0cmljIGNvdW50cyBzaG91bGQgYmUgYW5kIGNoZWNrIHRoZSBjb3JyZWN0 IG1ldHJpY3MKLSMgd2VyZSBpbmNyaW1lbnRlZAotd2FpdF9yZWFkeSAkUE9SVDEgJ2ZkY2FjaGVf b3BfY291bnR7b3A9ImVucXVldWUifScgJCggZ3JlcCAtYyAnaW50ZXJuZWQuKmZyb250PTEnIHZs b2ckUE9SVDEgKQotd2FpdF9yZWFkeSAkUE9SVDEgJ2ZkY2FjaGVfb3BfY291bnR7b3A9ImV2aWN0 In0nICQoIGdyZXAgLWMgJ2V2aWN0ZWQgYT0uKicgdmxvZyRQT1JUMSApCi13YWl0X3JlYWR5ICRQ T1JUMSAnZmRjYWNoZV9vcF9jb3VudHtvcD0icHJlZmV0Y2hfZW5xdWV1ZSJ9JyAkKCBncmVwIC1j ICdpbnRlcm5lZC4qZnJvbnQ9MCcgdmxvZyRQT1JUMSApCi13YWl0X3JlYWR5ICRQT1JUMSAnZmRj YWNoZV9vcF9jb3VudHtvcD0icHJlZmV0Y2hfZXZpY3QifScgJCggZ3JlcCAtYyAnZXZpY3RlZCBm cm9tIHByZWZldGNoIGE9Lipmcm9udD0wJyB2bG9nJFBPUlQxIHx8IHRydWUgKQotIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCi0KLSMgRmVkZXJhdGlvbiBtb2RlCi0KLSMgZmluZCBhbm90aGVyIHVudXNlZCBwb3J0 Ci13aGlsZSB0cnVlOyBkbwotICAgIFBPUlQyPWBleHByICcoJyAkUkFORE9NICUgMTAwMCAnKScg KyA5MDAwYAotICAgIHNzIC1hdG4gfCBmZ3JlcCAiOiRQT1JUMiIgfHwgYnJlYWsKLWRvbmUKLQot ZXhwb3J0IERFQlVHSU5GT0RfQ0FDSEVfUEFUSD0ke1BXRH0vLmNsaWVudF9jYWNoZTIKLW1rZGly IC1wICRERUJVR0lORk9EX0NBQ0hFX1BBVEgKLSMgTkI6IGluaGVyaXRzIHRoZSBERUJVR0lORk9E X1VSTFMgdG8gdGhlIGZpcnN0IHNlcnZlcgotIyBOQjogcnVuIGluIC1MIHN5bWxpbmstZm9sbG93 aW5nIG1vZGUgZm9yIHRoZSBMIHN1YmRpcgotZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoICR7 YWJzX2J1aWxkZGlyfS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QgJFZFUkJPU0UgLUYgLVUgLWQg JHtEQn1fMiAtcCAkUE9SVDIgLUwgTCBEID4gdmxvZyRQT1JUMiAyPiYxICYKLVBJRDI9JCEKLXRl bXBmaWxlcyB2bG9nJFBPUlQyCi1lcnJmaWxlcyB2bG9nJFBPUlQyCi10ZW1wZmlsZXMgJHtEQn1f Mgotd2FpdF9yZWFkeSAkUE9SVDIgJ3JlYWR5JyAxCi13YWl0X3JlYWR5ICRQT1JUMiAndGhyZWFk X3dvcmtfdG90YWx7cm9sZT0idHJhdmVyc2UifScgMQotd2FpdF9yZWFkeSAkUE9SVDIgJ3RocmVh ZF93b3JrX3BlbmRpbmd7cm9sZT0ic2NhbiJ9JyAwCi13YWl0X3JlYWR5ICRQT1JUMiAndGhyZWFk X2J1c3l7cm9sZT0ic2NhbiJ9JyAwCi0KLXdhaXRfcmVhZHkgJFBPUlQyICd0aHJlYWRfYnVzeXty b2xlPSJodHRwLWJ1aWxkaWQifScgMAotd2FpdF9yZWFkeSAkUE9SVDIgJ3RocmVhZF9idXN5e3Jv bGU9Imh0dHAtbWV0cmljcyJ9JyAxCi0KLSMgaGF2ZSBjbGllbnRzIGNvbnRhY3QgdGhlIG5ldyBz ZXJ2ZXIKLWV4cG9ydCBERUJVR0lORk9EX1VSTFM9aHR0cDovLzEyNy4wLjAuMTokUE9SVDIKLQot aWYgdHlwZSBic2R0YXIgMj4vZGV2L251bGw7IHRoZW4KLSAgICAjIGNvcHkgaW4gdGhlIGRlYiBm aWxlcwotICAgIGNwIC1ydnAgJHthYnNfc3JjZGlyfS9kZWJ1Z2luZm9kLWRlYnMvKmRlYiBECi0g ICAga2lsbCAtVVNSMSAkUElEMgotICAgIHdhaXRfcmVhZHkgJFBPUlQyICd0aHJlYWRfd29ya190 b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9JyAyCi0gICAgd2FpdF9yZWFkeSAkUE9SVDIgJ3RocmVhZF93 b3JrX3BlbmRpbmd7cm9sZT0ic2NhbiJ9JyAwCi0gICAgd2FpdF9yZWFkeSAkUE9SVDIgJ3RocmVh ZF9idXN5e3JvbGU9InNjYW4ifScgMAotCi0gICAgIyBBbGwgZGVicyBuZWVkIHRvIGJlIGluIHRo ZSBpbmRleAotICAgIGRlYnM9JChmaW5kIEQgLW5hbWUgXCouZGViIHwgd2MgLWwpCi0gICAgd2Fp dF9yZWFkeSAkUE9SVDIgJ3NjYW5uZWRfZmlsZXNfdG90YWx7c291cmNlPSIuZGViIGFyY2hpdmUi fScgYGV4cHIgJGRlYnNgCi0gICAgZGRlYnM9JChmaW5kIEQgLW5hbWUgXCouZGRlYiB8IHdjIC1s KQotICAgIHdhaXRfcmVhZHkgJFBPUlQyICdzY2FubmVkX2ZpbGVzX3RvdGFse3NvdXJjZT0iLmRk ZWIgYXJjaGl2ZSJ9JyBgZXhwciAkZGRlYnNgCi0KLSAgICAjIHVidW50dQotICAgIGFyY2hpdmVf dGVzdCBmMTdhMjliNWEyNWJkNDk2MDUzMWQ4MmFhNmIwN2M4YWJlODRmYTY2ICIiICIiCi1maQot Ci1ybSAtcmYgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSAotdGVzdHJ1biAke2Fic190b3BfYnVpbGRk aXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAkQlVJTERJRAotCi0jIHNl bmQgYSByZXF1ZXN0IHRvIHN0cmVzcyBYRkYgYW5kIFVzZXItQWdlbnQgZmVkZXJhdGlvbiByZWxh eTsKLSMgd2UnbGwgZ3JlcCBmb3IgdGhlIHR3byBwYXR0ZXJucyBpbiB2bG9nJFBPUlQxCi1jdXJs IC1zIC1IICdVc2VyLUFnZW50OiBURVNUQ1VSTCcgLUggJ1gtRm9yd2FyZGVkLUZvcjogVEVTVFhG RicgJERFQlVHSU5GT0RfVVJMUy9idWlsZGlkL2RlYWRkZWFkYmVlZjAwMDAwMDAwL2RlYnVnaW5m byAtbyAvZGV2L251bGwgfHwgdHJ1ZQotCi1ncmVwIFVBOlRFU1RDVVJMIHZsb2ckUE9SVDEKLWdy ZXAgWEZGOlRFU1RYRkYgdmxvZyRQT1JUMQotCi0KLSMgY29uZmlybSB0aGF0IGZpcnN0IHNlcnZl ciBjYW4ndCByZXNvbHZlIHN5bWxpbmtlZCBpbmZvIGluIEwvIGJ1dCBzZWNvbmQgY2FuCi1CVUlM RElEPWBlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9Ly4uL3NyYy9y ZWFkZWxmIFwKLSAgICAgICAgIC1hIEwvZm9vIHwgZ3JlcCAnQnVpbGQgSUQnIHwgY3V0IC1kICcg JyAtZiA3YAotZmlsZSBML2ZvbwotZmlsZSAtTCBML2ZvbwotZXhwb3J0IERFQlVHSU5GT0RfVVJM Uz1odHRwOi8vMTI3LjAuMC4xOiRQT1JUMQotcm0gLXJmICRERUJVR0lORk9EX0NBQ0hFX1BBVEgK LXRlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBk ZWJ1Z2luZm8gJEJVSUxESUQgJiYgZmFsc2UgfHwgdHJ1ZQotcm0gLWYgJERFQlVHSU5GT0RfQ0FD SEVfUEFUSC8kQlVJTERJRC9kZWJ1Z2luZm8gIyBkcm9wIDAwMC1wZXJtIG5lZ2F0aXZlLWhpdCBm aWxlCi1leHBvcnQgREVCVUdJTkZPRF9VUkxTPWh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQyCi10ZXN0 cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdp bmZvICRCVUlMRElECi0KLSMgdGVzdCBhZ2FpbiB3aXRoIHNjaGVtZSBmcmVlIHVybAotZXhwb3J0 IERFQlVHSU5GT0RfVVJMUz0xMjcuMC4wLjE6JFBPUlQxCi1ybSAtcmYgJERFQlVHSU5GT0RfQ0FD SEVfUEFUSAotdGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZv ZC1maW5kIGRlYnVnaW5mbyAkQlVJTERJRCAmJiBmYWxzZSB8fCB0cnVlCi1ybSAtZiAkREVCVUdJ TkZPRF9DQUNIRV9QQVRILyRCVUlMRElEL2RlYnVnaW5mbyAjIGRyb3AgMDAwLXBlcm0gbmVnYXRp dmUtaGl0IGZpbGUKLWV4cG9ydCBERUJVR0lORk9EX1VSTFM9MTI3LjAuMC4xOiRQT1JUMgotdGVz dHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVn aW5mbyAkQlVJTERJRAotCi0jIHRlc3QgcGFyYWxsZWwgcXVlcmllcyBpbiBjbGllbnQKLWV4cG9y dCBERUJVR0lORk9EX0NBQ0hFX1BBVEg9JHtQV0R9Ly5jbGllbnRfY2FjaGUzCi1ta2RpciAtcCAk REVCVUdJTkZPRF9DQUNIRV9QQVRICi1leHBvcnQgREVCVUdJTkZPRF9VUkxTPSJCQUQgaHR0cDov LzEyNy4wLjAuMTokUE9SVDEgMTI3LjAuMC4xOiRQT1JUMSBodHRwOi8vMTI3LjAuMC4xOiRQT1JU MiBETkUiCi0KLXRlc3RydW4gJHthYnNfYnVpbGRkaXJ9L2RlYnVnaW5mb2RfYnVpbGRfaWRfZmlu ZCAtZSBGL3Byb2cyIDEKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMgRmV0Y2ggc29tZSBtZXRyaWNz Ci1jdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL2JhZGFwaQotY3VybCAtcyBodHRwOi8v MTI3LjAuMC4xOiRQT1JUMS9tZXRyaWNzCi1jdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQy L21ldHJpY3MKLWN1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDEvbWV0cmljcyB8IGdyZXAg LXEgJ2h0dHBfcmVzcG9uc2VzX3RvdGFsLipyZXN1bHQuKmVycm9yJwotY3VybCAtcyBodHRwOi8v MTI3LjAuMC4xOiRQT1JUMS9tZXRyaWNzIHwgZ3JlcCAtcSAnaHR0cF9yZXNwb25zZXNfdG90YWwu KnJlc3VsdC4qZmRjYWNoZScKLWN1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDIvbWV0cmlj cyB8IGdyZXAgLXEgJ2h0dHBfcmVzcG9uc2VzX3RvdGFsLipyZXN1bHQuKnVwc3RyZWFtJwotY3Vy bCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMS9tZXRyaWNzIHwgZ3JlcCAnaHR0cF9yZXNwb25z ZXNfZHVyYXRpb25fbWlsbGlzZWNvbmRzX2NvdW50JwotY3VybCAtcyBodHRwOi8vMTI3LjAuMC4x OiRQT1JUMS9tZXRyaWNzIHwgZ3JlcCAnaHR0cF9yZXNwb25zZXNfZHVyYXRpb25fbWlsbGlzZWNv bmRzX3N1bScKLWN1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDEvbWV0cmljcyB8IGdyZXAg J2h0dHBfcmVzcG9uc2VzX3RyYW5zZmVyX2J5dGVzX2NvdW50JwotY3VybCAtcyBodHRwOi8vMTI3 LjAuMC4xOiRQT1JUMS9tZXRyaWNzIHwgZ3JlcCAnaHR0cF9yZXNwb25zZXNfdHJhbnNmZXJfYnl0 ZXNfc3VtJwotY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMS9tZXRyaWNzIHwgZ3JlcCAn ZmRjYWNoZV8nCi1jdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL21ldHJpY3MgfCBncmVw ICdlcnJvcl9jb3VudCcKLWN1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDEvbWV0cmljcyB8 IGdyZXAgJ3RyYXZlcnNlZF90b3RhbCcKLWN1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTokUE9SVDEv bWV0cmljcyB8IGdyZXAgJ3NjYW5uZWRfYnl0ZXNfdG90YWwnCi0KLSMgQW5kIGdlbmVyYXRlIGEg ZmV3IGVycm9ycyBpbnRvIHRoZSBzZWNvbmQgZGVidWdpbmZvZCdzIGxvZ3MsIGZvciBhbmFseXNp cyBqdXN0IGJlbG93Ci1jdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQyL2JhZGFwaSA+IC9k ZXYvbnVsbCB8fCB0cnVlCi1jdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQyL2J1aWxkaWQv ZGVhZGJlZWYvZGVidWdpbmZvID4gL2Rldi9udWxsIHx8IHRydWUgIAotIyBOQjogdGhpcyBlcnJv ciBpcyB1c2VkIHRvIHNlZWQgdGhlIDQwNCBmYWlsdXJlIGZvciB0aGUgc3Vydml2ZS00MDQgdGVz dHMKLQotIyBDb25maXJtIGJhZCBhcnRpZmFjdCB0eXBlcyBhcmUgcmVqZWN0ZWQgd2l0aG91dCBs ZWF2aW5nIHRyYWNlCi1jdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQyL2J1aWxkaWQvZGVh ZGJlZWYvYmFkdHlwZSA+IC9kZXYvbnVsbCB8fCB0cnVlCi0oY3VybCAtcyBodHRwOi8vMTI3LjAu MC4xOiRQT1JUMi9tZXRyaWNzIHwgZ3JlcCAnYmFkdHlwZScpICYmIGZhbHNlCi0KLSMgRElTQUJM RSBWQUxHUklORCBjaGVja2luZyBiZWNhdXNlIHZhbGdyaW5kIG1pZ2h0IHVzZSBkZWJ1Z2luZm9k IGNsaWVudAotIyByZXF1ZXN0cyBpdHNlbGYsIGNhdXNpbmcgY29uZnVzaW9uIGFib3V0IHdobyBw dXQgd2hhdCBpbiB0aGUgY2FjaGUuCi0jIEl0IHN0YXlzIGRpc2FibGVkIHRpbGwgdGhlIGVuZCBv ZiB0aGlzIHRlc3QuCi11bnNldCBWQUxHUklORF9DTUQKLQotIyBDb25maXJtIHRoYXQgcmV1c2Vk IGN1cmwgY29ubmVjdGlvbnMgc3Vydml2ZSA0MDQgZXJyb3JzLgotIyBUaGUgcm0ncyBmb3JjZSBh biB1bmNhY2hlZCBmZXRjaAotcm0gLWYgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSC8kQlVJTERJRC9k ZWJ1Z2luZm8gLmNsaWVudF9jYWNoZSovJEJVSUxESUQvZGVidWdpbmZvCi10ZXN0cnVuICR7YWJz X3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgZGVidWdpbmZvICRCVUlM RElECi1ybSAtZiAkREVCVUdJTkZPRF9DQUNIRV9QQVRILyRCVUlMRElEL2RlYnVnaW5mbyAuY2xp ZW50X2NhY2hlKi8kQlVJTERJRC9kZWJ1Z2luZm8KLXRlc3RydW4gJHthYnNfdG9wX2J1aWxkZGly fS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESUQKLXRlc3RydW4g JHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBkZWJ1Z2luZm8g JEJVSUxESUQKLXRlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5m b2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESUQKLXJtIC1mICRERUJVR0lORk9EX0NBQ0hFX1BBVEgv JEJVSUxESUQvZGVidWdpbmZvIC5jbGllbnRfY2FjaGUqLyRCVUlMRElEL2RlYnVnaW5mbwotdGVz dHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVn aW5mbyAkQlVJTERJRAotCi0jIENvbmZpcm0gdGhhdCBzb21lIGRlYnVnaW5mb2QgY2xpZW50IHBv b2xzIGFyZSBiZWluZyB1c2VkCi1jdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQyL21ldHJp Y3MgfCBncmVwICdkY19wb29sX29wLipyZXVzZScKLQotIyBUcmlnZ2VyIGEgZmxvb2Qgb2YgcmVx dWVzdHMgYWdhaW5zdCB0aGUgc2FtZSBhcmNoaXZlIGNvbnRlbnQgZmlsZS4KLSMgVXNlIGEgZmls ZSB0aGF0IGhhc24ndCBiZWVuIHByZXZpb3VzbHkgZXh0cmFjdGVkIGluIHRvIG1ha2UgaXQKLSMg bGlrZWx5IHRoYXQgZXZlbiB0aGlzIHRlc3QgZGVidWdpbmZvZCB3aWxsIGV4cGVyaWVuY2UgY29u Y3VycmVuY3kKLSMgYW5kIGltcG9zZSBzb21lICJhZnRlci15b3UiIGRlbGF5cy4KLShmb3IgaSBp biBgc2VxIDEwMGA7IGRvCi0gICAgY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRQT1JUMS9idWls ZGlkLzg3YzA4ZDEyYzc4MTc0ZjEwODJiN2M4ODhiMzIzODIxOWIwZWIyNjUvZXhlY3V0YWJsZSA+ L2Rldi9udWxsICYKLSBkb25lOwotIHdhaXQpCi1jdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBP UlQxL21ldHJpY3MgfCBncmVwICdodHRwX3Jlc3BvbnNlc19hZnRlcl95b3UuKicKLSMgSWYgd2Ug Y291bGQgZ3VhcmFudGVlIHNvbWUgbWluaW11bSBudW1iZXIgb2Ygc2Vjb25kcyBvZiBDUFUgdGlt ZSwgd2UKLSMgY291bGQgYXNzZXJ0IHRoYXQgdGhlIGFmdGVyX3lvdSBtZXRyaWNzIHNob3cgc29t ZSBub256ZXJvIGFtb3VudCBvZgotIyB3YWl0aW5nLiAgQSBmZXcgaHVuZHJlZCBtcyBpcyB0eXBp Y2FsIG9uIHRoaXMgZGV2ZWxvcGVyJ3Mgd29ya3N0YXRpb24uCi0KLQotIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj Ci0jIENvcnJ1cHQgdGhlIHNxbGl0ZSBkYXRhYmFzZSBhbmQgZ2V0IGRlYnVnaW5mb2QgdG8gdHJp cCBhY3Jvc3MgaXRzIGVycm9ycwotCi1jdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL21l dHJpY3MgfCBncmVwICdzcWxpdGUzLipyZXNldCcKLWxzIC1hbCAkREIKLWRkIGlmPS9kZXYvemVy byBvZj0kREIgYnM9MSBjb3VudD0xCi1scyAtYWwgJERCCi0jIHRyaWdnZXIgc29tZSByYW5kb20g YWN0aXZpdHkgdGhhdCdzIFN1cmUgdG8gZ2V0IHNxbGl0ZTMgdXBzZXQKLWtpbGwgLVVTUjEgJFBJ RDEKLXdhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9 JyA5Ci13YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2FuIn0n IDAKLXdhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKLWtpbGwg LVVTUjIgJFBJRDEKLXdhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJn cm9vbSJ9JyA0Ci1jdXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxL2J1aWxkaWQvYmVlZmJl ZWZiZWVmZDAwZGQwMGQvZGVidWdpbmZvID4gL2Rldi9udWxsIHx8IHRydWUKLWN1cmwgLXMgaHR0 cDovLzEyNy4wLjAuMTokUE9SVDEvbWV0cmljcyB8IGdyZXAgJ2Vycm9yX2NvdW50LipzcWxpdGUn Ci0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIFJ1biB0aGUgdGVzdHMgYWdhaW4gd2l0aG91dCB0aGUg c2VydmVycyBydW5uaW5nLiBUaGUgdGFyZ2V0IGZpbGUgc2hvdWxkCi0jIGJlIGZvdW5kIGluIHRo ZSBjYWNoZS4KLQota2lsbCAtSU5UICRQSUQxICRQSUQyCi13YWl0ICRQSUQxICRQSUQyCi1QSUQx PTAKLVBJRDI9MAotdGVtcGZpbGVzIC5kZWJ1Z2luZm9kXyoKLQotdGVzdHJ1biAke2Fic19idWls ZGRpcn0vZGVidWdpbmZvZF9idWlsZF9pZF9maW5kIC1lIEYvcHJvZzIgMQotCi0jIGNoZWNrIG91 dCB0aGUgZGVidWdpbmZvZCBsb2dzIGZvciB0aGUgbmV3IHN0eWxlIHN0YXR1cyBsaW5lcwotIyBj YXQgdmxvZyRQT1JUMgotZ3JlcCAtcSAnVUE6LipYRkY6LipHRVQgL2J1aWxkaWQvLiogMjAwICcg dmxvZyRQT1JUMgotZ3JlcCAtcSAnVUE6LipYRkY6LipHRVQgL21ldHJpY3MgMjAwICcgdmxvZyRQ T1JUMgotZ3JlcCAtcSAnVUE6LipYRkY6LipHRVQgL2JhZGFwaSA1MDMgJyB2bG9nJFBPUlQyCi1n cmVwIC1xICdVQTouKlhGRjouKkdFVCAvYnVpbGRpZC9kZWFkYmVlZi4qIDQwNCAnIHZsb2ckUE9S VDIKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMgQWRkIHNvbWUgZmlsZXMgdG8gdGhlIGNhY2hlIHRo YXQgZG8gbm90IGZpdCBpdHMgbmFtaW5nIGZvcm1hdC4KLSMgVGhleSBzaG91bGQgc3Vydml2ZSBj YWNoZSBjbGVhbmluZy4KLW1rZGlyICRERUJVR0lORk9EX0NBQ0hFX1BBVEgvbWFsZm9ybWVkCi10 b3VjaCAkREVCVUdJTkZPRF9DQUNIRV9QQVRIL21hbGZvcm1lZDAKLXRvdWNoICRERUJVR0lORk9E X0NBQ0hFX1BBVEgvbWFsZm9ybWVkL21hbGZvcm1lZDEKLQotIyBBIHZhbGlkIGZvcm1hdCBmb3Ig YW4gZW1wdHkgYnVpbGRpZCBzdWJkaXJlY3RvcnkKLW1rZGlyICRERUJVR0lORk9EX0NBQ0hFX1BB VEgvMDAwMDAwMDAKLXRvdWNoIC1kICcxOTcwLTAxLTAxJyAkREVCVUdJTkZPRF9DQUNIRV9QQVRI LzAwMDAwMDAwICMgb2xkIGVub3VnaCB0byBndWFyYW50ZWUgbnVrYWdlCi0KLSMgVHJpZ2dlciBh IGNhY2hlIGNsZWFuIGFuZCBydW4gdGhlIHRlc3RzIGFnYWluLiBUaGUgY2xpZW50cyBzaG91bGQg YmUgdW5hYmxlIHRvCi0jIGZpbmQgdGhlIHRhcmdldC4KLWVjaG8gMCA+ICRERUJVR0lORk9EX0NB Q0hFX1BBVEgvY2FjaGVfY2xlYW5faW50ZXJ2YWxfcwotZWNobyAwID4gJERFQlVHSU5GT0RfQ0FD SEVfUEFUSC9tYXhfdW51c2VkX2FnZV9zCi0KLXRlc3RydW4gJHthYnNfYnVpbGRkaXJ9L2RlYnVn aW5mb2RfYnVpbGRfaWRfZmluZCAtZSBGL3ArciVvXCRnIDEKLQotdGVzdHJ1biAke2Fic190b3Bf YnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAkQlVJTERJRDIg JiYgZmFsc2UgfHwgdHJ1ZQotCi1pZiBbICEgLWYgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSC9tYWxm b3JtZWQwIF0gXAotICAgIHx8IFsgISAtZiAkREVCVUdJTkZPRF9DQUNIRV9QQVRIL21hbGZvcm1l ZC9tYWxmb3JtZWQxIF07IHRoZW4KLSAgZWNobyAidW5yZWxhdGVkIGZpbGVzIGRpZCBub3Qgc3Vy dml2ZSBjYWNoZSBjbGVhbmluZyIKLSAgZXJyCi1maQotCi1pZiBbIC1kICRERUJVR0lORk9EX0NB Q0hFX1BBVEgvMDAwMDAwMDAgXTsgdGhlbgotICAgIGVjaG8gImZhaWxlZCB0byBybWRpciBvbGQg Y2FjaGUgZGlyIgotICAgIGVycgotZmkKLQotIyBUZXN0IGRlYnVnaW5mb2Qgd2l0aG91dCBhIHBh dGggbGlzdDsgcmV1c2UgJFBPUlQxCi1lbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNf YnVpbGRkaXJ9Ly4uL2RlYnVnaW5mb2QvZGVidWdpbmZvZCAkVkVSQk9TRSAtRiAtVSAtZCA6bWVt b3J5OiAtcCAkUE9SVDEgLUwgLUYgJgotUElEMz0kIQotd2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVh ZF93b3JrX3RvdGFse3JvbGU9InRyYXZlcnNlIn0nIDEKLXdhaXRfcmVhZHkgJFBPUlQxICd0aHJl YWRfd29ya19wZW5kaW5ne3JvbGU9InNjYW4ifScgMAotd2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVh ZF9idXN5e3JvbGU9InNjYW4ifScgMAota2lsbCAtaW50ICRQSUQzCi13YWl0ICRQSUQzCi1QSUQz PTAKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIFRlc3QgZmV0Y2hpbmcgYSBmaWxlIHVzaW5nIGZpbGU6 Ly8gLiBObyBkZWJ1Z2luZm9kIHNlcnZlciBuZWVkcyB0byBiZSBydW4gZm9yCi0jIHRoaXMgdGVz dC4KLWxvY2FsX2Rpcj0ke1BXRH0vbW9ja3RyZWUvYnVpbGRpZC9hYWFhYWFhYWFhYmJiYmJiYmJi YmNjY2NjY2NjY2NkZGRkZGRkZGRkL3NvdXJjZS9teS9wYXRoCi1ta2RpciAtcCAke2xvY2FsX2Rp cn0KLWVjaG8gImludCBtYWluKCkgeyByZXR1cm4gMDsgfSIgPiAke2xvY2FsX2Rpcn0vbWFpbi5j Ci0KLSMgZmlyc3QgdGVzdCB0aGF0IGlzIGRvZXNuJ3Qgd29yaywgd2hlbiBubyBERUJVR0lORk9E X1VSTFMgaXMgc2V0Ci1ERUJVR0lORk9EX1VSTFM9IiIKLXRlc3RydW4gJHthYnNfdG9wX2J1aWxk ZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBzb3VyY2UgYWFhYWFhYWFhYWJiYmJiYmJi YmJjY2NjY2NjY2NjZGRkZGRkZGRkZCAvbXkvcGF0aC9tYWluLmMgJiYgZmFsc2UgfHwgdHJ1ZQot Ci0jIE5vdyB0ZXN0IGlzIHdpdGggcHJvcGVyIERFQlVHSU5GT0RfVVJMUwotREVCVUdJTkZPRF9V UkxTPSJmaWxlOi8vJHtQV0R9L21vY2t0cmVlLyIKLWZpbGVuYW1lPWB0ZXN0cnVuICR7YWJzX3Rv cF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgc291cmNlIGFhYWFhYWFhYWFi YmJiYmJiYmJiY2NjY2NjY2NjY2RkZGRkZGRkZGQgL215L3BhdGgvbWFpbi5jYAotY21wICRmaWxl bmFtZSAke2xvY2FsX2Rpcn0vbWFpbi5jCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyMgUFIyNzcxMQot IyBUZXN0IHRvIGVuc3VyZSB0aGF0IHRoZSAtLWluY2x1ZGU9Il4kIiAtLWV4Y2x1ZGU9Ii4qIiBv cHRpb25zIHJlbW92ZSBhbGwgZmlsZXMgZnJvbSBhIGRhdGFiYXNlIGJhY2t1cAotd2hpbGUgdHJ1 ZTsgZG8KLSAgICBQT1JUMz1gZXhwciAnKCcgJFJBTkRPTSAlIDEwMDAgJyknICsgOTAwMGAKLSAg ICBzcyAtYXRuIHwgZmdyZXAgIjokUE9SVDMiIHx8IGJyZWFrCi1kb25lCi1lbnYgTERfTElCUkFS WV9QQVRIPSRsZHBhdGggREVCVUdJTkZPRF9VUkxTPSJodHRwOi8vMTI3LjAuMC4xOiRQT1JUMy8i ICR7YWJzX2J1aWxkZGlyfS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QgJFZFUkJPU0UgLXAgJFBP UlQzIC10MCAtZzAgLS1yZWdleC1ncm9vbSAtLWluY2x1ZGU9Il4kIiAtLWV4Y2x1ZGU9Ii4qIiAg LWQgJERCLmJhY2t1cCA+IHZsb2ckUE9SVDMgMj4mMSAmCi1QSUQ0PSQhCi13YWl0X3JlYWR5ICRQ T1JUMyAncmVhZHknIDEKLXRlbXBmaWxlcyB2bG9nJFBPUlQzCi1lcnJmaWxlcyB2bG9nJFBPUlQz Ci0KLWtpbGwgLVVTUjIgJFBJRDQKLXdhaXRfcmVhZHkgJFBPUlQzICd0aHJlYWRfd29ya190b3Rh bHtyb2xlPSJncm9vbSJ9JyAxCi13YWl0X3JlYWR5ICRQT1JUMyAnZ3Jvb217c3RhdGlzdGljPSJh cmNoaXZlIGQvZSJ9JyAgMAotd2FpdF9yZWFkeSAkUE9SVDMgJ2dyb29te3N0YXRpc3RpYz0iYXJj aGl2ZSBzZGVmIn0nIDAKLXdhaXRfcmVhZHkgJFBPUlQzICdncm9vbXtzdGF0aXN0aWM9ImFyY2hp dmUgc3JlZiJ9JyAwCi13YWl0X3JlYWR5ICRQT1JUMyAnZ3Jvb217c3RhdGlzdGljPSJidWlsZGlk cyJ9JyAwCi13YWl0X3JlYWR5ICRQT1JUMyAnZ3Jvb217c3RhdGlzdGljPSJmaWxlIGQvZSJ9JyAw Ci13YWl0X3JlYWR5ICRQT1JUMyAnZ3Jvb217c3RhdGlzdGljPSJmaWxlIHMifScgMAotd2FpdF9y ZWFkeSAkUE9SVDMgJ2dyb29te3N0YXRpc3RpYz0iZmlsZXMgc2Nhbm5lZCAoIykifScgMAotd2Fp dF9yZWFkeSAkUE9SVDMgJ2dyb29te3N0YXRpc3RpYz0iZmlsZXMgc2Nhbm5lZCAobWIpIn0nIDAK LQota2lsbCAkUElENAotd2FpdCAkUElENAotUElEND0wCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBz ZXQgdXAgdGVzdHMgZm9yIHJldHJ5aW5nIGZhaWxlZCBxdWVyaWVzLgotcmV0cnlfYXR0ZW1wdHM9 YCh0ZXN0cnVuIGVudiBERUJVR0lORk9EX1VSTFM9aHR0cDovLzI1NS4yNTUuMjU1LjI1NS9KVU5L SlVOSyBERUJVR0lORk9EX1JFVFJZX0xJTUlUPTEwIERFQlVHSU5GT0RfVkVSQk9TRT0xIFwKLQkk e2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAv YmluL2xzIHx8IHRydWUpIDI+JjEgPi9kZXYvbnVsbCBcCi0JfCBncmVwIC1jICdSZXRyeSBmYWls ZWQgcXVlcnknYAotaWYgWyAkcmV0cnlfYXR0ZW1wdHMgLW5lIDEwIF07IHRoZW4KLSAgICBlY2hv ICJyZXRyeSBtZWNoYW5pc20gZmFpbGVkLiIKLSAgICBleGl0IDE7Ci0gIGZpCi0KLWV4aXQgMApk aWZmIC0tZ2l0IGEvdGVzdHMvcnVuLWRlYnVnaW5mb2QtbWFsZm9ybWVkLnNoIGIvdGVzdHMvcnVu LWRlYnVnaW5mb2QtbWFsZm9ybWVkLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAw MDAwLi44YTJkOWM0NgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLW1h bGZvcm1lZC5zaApAQCAtMCwwICsxLDEwNiBAQAorIyEvdXNyL2Jpbi9lbnYgYmFzaAorIworIyBD b3B5cmlnaHQgKEMpIDIwMTktMjAyMSBSZWQgSGF0LCBJbmMuCisjIFRoaXMgZmlsZSBpcyBwYXJ0 IG9mIGVsZnV0aWxzLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgor IyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBlbGZ1dGlscyBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor IyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisj CisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisuICRzcmNkaXIvdGVzdC1zdWJyLnNoICAj IGluY2x1ZGVzIHNldCAtZQorCisjIGZvciB0ZXN0IGNhc2UgZGVidWdnaW5nLCB1bmNvbW1lbnQ6 CitzZXQgLXgKKworIyBmaW5kIGFuIHVudXNlZCBwb3J0IG51bWJlcgorZ2V0X3BvcnRzCitEQj0k e1BXRH0vLmRlYnVnaW5mb2RfdG1wLnNxbGl0ZQorZXhwb3J0IERFQlVHSU5GT0RfQ0FDSEVfUEFU SD0ke1BXRH0vLmNsaWVudF9jYWNoZQorbWtkaXIgRgorbWtkaXIgLXAgJERFQlVHSU5GT0RfQ0FD SEVfUEFUSAorCitlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggREVCVUdJTkZPRF9VUkxTPSAk e2Fic19idWlsZGRpcn0vLi4vZGVidWdpbmZvZC9kZWJ1Z2luZm9kICRWRVJCT1NFIC1GIC1wICRQ T1JUMSBcCisgICAgLXQwIC1nMCAtdiBGID4gdmxvZyRQT1JUMSAyPiYxICYKK1BJRDE9JCEKK3Rl bXBmaWxlcyB2bG9nJFBPUlQxCitlcnJmaWxlcyB2bG9nJFBPUlQxCisjIFNlcnZlciBtdXN0IGJl Y29tZSByZWFkeQord2FpdF9yZWFkeSAkUE9SVDEgJ3JlYWR5JyAxCitleHBvcnQgREVCVUdJTkZP RF9VUkxTPWh0dHA6Ly8xMjcuMC4wLjE6JFBPUlQxLyAgICMgb3Igd2l0aG91dCB0cmFpbGluZyAv CisKKyMgQmUgcGF0aWVudCB3aGVuIHJ1biBvbiBhIGJ1c3kgbWFjaGluZSB0aGluZ3MgbWlnaHQg dGFrZSBhIGJpdC4KK2V4cG9ydCBERUJVR0lORk9EX1RJTUVPVVQ9MTAKKworIyBDaGVjayB0aHJl YWQgY29tbSBuYW1lcworcHMgLXEgJFBJRDEgLWUgLUwgLW8gJyVwICVjICVhJyB8IGdyZXAgZ3Jv b20KK3BzIC1xICRQSUQxIC1lIC1MIC1vICclcCAlYyAlYScgfCBncmVwIHNjYW4KK3BzIC1xICRQ SUQxIC1lIC1MIC1vICclcCAlYyAlYScgfCBncmVwIHRyYXZlcnNlCisKKyMgV2UgdXNlIC10MCBh bmQgLWcwIGhlcmUgdG8gdHVybiBvZmYgdGltZS1iYXNlZCBzY2FubmluZyAmIGdyb29taW5nLgor IyBGb3IgdGVzdGluZyBwdXJwb3Nlcywgd2UganVzdCBzaWMgU0lHVVNSMSAvIFNJR1VTUjIgYXQg dGhlIHByb2Nlc3MuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBDb21waWxlIGEgc2ltcGxlIHByb2dy YW0sIHN0cmlwIGl0cyBkZWJ1Z2luZm8gYW5kIHNhdmUgdGhlIGJ1aWxkLWlkLgorIyBBbHNvIG1v dmUgdGhlIGRlYnVnaW5mbyBpbnRvIGFub3RoZXIgZGlyZWN0b3J5IHNvIHRoYXQgZWxmdXRpbHMK KyMgY2Fubm90IGZpbmQgaXQgd2l0aG91dCBkZWJ1Z2luZm9kLgorZWNobyAiaW50IG1haW4oKSB7 IHJldHVybiAwOyB9IiA+ICR7UFdEfS9wK3Ilb1wkZy5jCit0ZW1wZmlsZXMgcCtyJW9cJGcuYwor IyBDcmVhdGUgYSBzdWJkaXJlY3RvcnkgdG8gY29uZm91bmQgc291cmNlIHBhdGggbmFtZXMKK21r ZGlyIGZvb2JhcgorZ2NjIC1XbCwtLWJ1aWxkLWlkIC1nIC1vIHArciVvXCRnICR7UFdEfS9mb29i YXIvLy8uLy4uL3ArciVvXCRnLmMKK3Rlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9zcmMvc3Ry aXAgLWcgLWYgcCtyJW9cJGcuZGVidWcgJHtQV0R9L3ArciVvXCRnCitCVUlMRElEPWBlbnYgTERf TElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9Ly4uL3NyYy9yZWFkZWxmIFwKKyAg ICAgICAgICAtYSBwK3Ilb1xcJGcgfCBncmVwICdCdWlsZCBJRCcgfCBjdXQgLWQgJyAnIC1mIDdg CisKK212IHArciVvXCRnIEYKK212IHArciVvXCRnLmRlYnVnIEYKK2tpbGwgLVVTUjEgJFBJRDEK KyMgV2FpdCB0aWxsIGJvdGggZmlsZXMgYXJlIGluIHRoZSBpbmRleC4KK3dhaXRfcmVhZHkgJFBP UlQxICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9JyAxCit3YWl0X3JlYWR5ICRQ T1JUMSAndGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2FuIn0nIDAKK3dhaXRfcmVhZHkgJFBP UlQxICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIEFk ZCBzb21lIGZpbGVzIHRvIHRoZSBjYWNoZSB0aGF0IGRvIG5vdCBmaXQgaXRzIG5hbWluZyBmb3Jt YXQuCisjIFRoZXkgc2hvdWxkIHN1cnZpdmUgY2FjaGUgY2xlYW5pbmcuCitta2RpciAkREVCVUdJ TkZPRF9DQUNIRV9QQVRIL21hbGZvcm1lZAordG91Y2ggJERFQlVHSU5GT0RfQ0FDSEVfUEFUSC9t YWxmb3JtZWQwCit0b3VjaCAkREVCVUdJTkZPRF9DQUNIRV9QQVRIL21hbGZvcm1lZC9tYWxmb3Jt ZWQxCisKKyMgQSB2YWxpZCBmb3JtYXQgZm9yIGFuIGVtcHR5IGJ1aWxkaWQgc3ViZGlyZWN0b3J5 Citta2RpciAkREVCVUdJTkZPRF9DQUNIRV9QQVRILzAwMDAwMDAwCit0b3VjaCAtZCAnMTk3MC0w MS0wMScgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSC8wMDAwMDAwMCAjIG9sZCBlbm91Z2ggdG8gZ3Vh cmFudGVlIG51a2FnZQorCisjIFRyaWdnZXIgYSBjYWNoZSBjbGVhbiBhbmQgcnVuIHRoZSB0ZXN0 cyBhZ2Fpbi4gVGhlIGNsaWVudHMgc2hvdWxkIGJlIHVuYWJsZSB0bworIyBmaW5kIHRoZSB0YXJn ZXQuCitlY2hvIDAgPiAkREVCVUdJTkZPRF9DQUNIRV9QQVRIL2NhY2hlX2NsZWFuX2ludGVydmFs X3MKK2VjaG8gMCA+ICRERUJVR0lORk9EX0NBQ0hFX1BBVEgvbWF4X3VudXNlZF9hZ2VfcworCit0 ZXN0cnVuICR7YWJzX2J1aWxkZGlyfS9kZWJ1Z2luZm9kX2J1aWxkX2lkX2ZpbmQgLWUgRi9wK3Il b1wkZyAxCisKK3Rlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5m b2QtZmluZCBkZWJ1Z2luZm8gJEJVSUxESUQgJiYgZmFsc2UgfHwgdHJ1ZQorCitpZiBbICEgLWYg JERFQlVHSU5GT0RfQ0FDSEVfUEFUSC9tYWxmb3JtZWQwIF0gXAorICAgIHx8IFsgISAtZiAkREVC VUdJTkZPRF9DQUNIRV9QQVRIL21hbGZvcm1lZC9tYWxmb3JtZWQxIF07IHRoZW4KKyAgZWNobyAi dW5yZWxhdGVkIGZpbGVzIGRpZCBub3Qgc3Vydml2ZSBjYWNoZSBjbGVhbmluZyIKKyAgZXJyCitm aQorCitpZiBbIC1kICRERUJVR0lORk9EX0NBQ0hFX1BBVEgvMDAwMDAwMDAgXTsgdGhlbgorICAg IGVjaG8gImZhaWxlZCB0byBybWRpciBvbGQgY2FjaGUgZGlyIgorICAgIGVycgorZmkKKwora2ls bCAkUElEMQord2FpdCAkUElEMQorUElEMT0wCitleGl0IDAKZGlmZiAtLWdpdCBhL3Rlc3RzL3J1 bi1kZWJ1Z2luZm9kLW5vLXVybHMuc2ggYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1uby11cmxzLnNo Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwLi43NWQxMTZlOAotLS0gL2Rldi9u dWxsCisrKyBiL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLW5vLXVybHMuc2gKQEAgLTAsMCArMSwzNyBA QAorIyEvdXNyL2Jpbi9lbnYgYmFzaAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBSZWQg SGF0LCBJbmMuCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGVsZnV0aWxzLgorIworIyBUaGlzIGZp bGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorIworIyBlbGZ1dGlscyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LgorCisuICRzcmNkaXIvdGVzdC1zdWJyLnNoICAjIGluY2x1ZGVzIHNldCAtZQorCisjIGZvciB0 ZXN0IGNhc2UgZGVidWdnaW5nLCB1bmNvbW1lbnQ6CitzZXQgLXgKKworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisjIFRlc3QgZGVidWdpbmZvZCB3aXRob3V0IGEgcGF0aCBsaXN0CitnZXRfcG9ydHMKKworZW52 IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoICR7YWJzX2J1aWxkZGlyfS8uLi9kZWJ1Z2luZm9kL2Rl YnVnaW5mb2QgJFZFUkJPU0UgLUYgLVUgLWQgOm1lbW9yeTogLXAgJFBPUlQxIC1MIC1GICYKK1BJ RDE9JCEKKword2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3RvdGFse3JvbGU9InRyYXZl cnNlIn0nIDEKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya19wZW5kaW5ne3JvbGU9InNj YW4ifScgMAord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF9idXN5e3JvbGU9InNjYW4ifScgMAor a2lsbCAtaW50ICRQSUQxCit3YWl0ICRQSUQxCitQSUQxPTAKK2V4aXQgMApkaWZmIC0tZ2l0IGEv dGVzdHMvcnVuLWRlYnVnaW5mb2QtcXVlcnktcmV0cnkuc2ggYi90ZXN0cy9ydW4tZGVidWdpbmZv ZC1xdWVyeS1yZXRyeS5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMC4uMzNm YjMzOGIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1xdWVyeS1yZXRy eS5zaApAQCAtMCwwICsxLDMzIEBACisjIS91c3IvYmluL2VudiBiYXNoCisjCisjIENvcHlyaWdo dCAoQykgMjAxOS0yMDIxIFJlZCBIYXQsIEluYy4KKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgZWxm dXRpbHMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIGVsZnV0aWxzIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorIyBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK KyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKy4gJHNyY2Rpci90ZXN0LXN1YnIuc2ggICMgaW5jbHVk ZXMgc2V0IC1lCisjIGZvciB0ZXN0IGNhc2UgZGVidWdnaW5nLCB1bmNvbW1lbnQ6CitzZXQgLXgK KworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisjIHNldCB1cCB0ZXN0cyBmb3IgcmV0cnlpbmcgZmFpbGVkIHF1 ZXJpZXMuCityZXRyeV9hdHRlbXB0cz1gKHRlc3RydW4gZW52IERFQlVHSU5GT0RfVVJMUz1odHRw Oi8vMjU1LjI1NS4yNTUuMjU1L0pVTktKVU5LIERFQlVHSU5GT0RfUkVUUllfTElNSVQ9MTAgREVC VUdJTkZPRF9WRVJCT1NFPTEgXAorICAgICAgICAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5m b2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAvYmluL2xzIHx8IHRydWUpIDI+JjEgPi9kZXYv bnVsbCBcCisgICAgICAgIHwgZ3JlcCAtYyAnUmV0cnkgZmFpbGVkIHF1ZXJ5J2AKK2lmIFsgJHJl dHJ5X2F0dGVtcHRzIC1uZSAxMCBdOyB0aGVuCisgICAgZWNobyAicmV0cnkgbWVjaGFuaXNtIGZh aWxlZC4iCisgICAgZXhpdCAxOworZmkKKworZXhpdCAwOwpkaWZmIC0tZ2l0IGEvdGVzdHMvcnVu LWRlYnVnaW5mb2QtcmVnZXguc2ggYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1yZWdleC5zaApuZXcg ZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMC4uNWJjMDVkMWQKLS0tIC9kZXYvbnVsbAor KysgYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1yZWdleC5zaApAQCAtMCwwICsxLDk0IEBACisjIS91 c3IvYmluL2VudiBiYXNoCisjCisjIENvcHlyaWdodCAoQykgMjAxOS0yMDIxIFJlZCBIYXQsIElu Yy4KKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgZWxmdXRpbHMuCisjCisjIFRoaXMgZmlsZSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCisjCisjIGVsZnV0aWxzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsIGJ1dAorIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKy4g JHNyY2Rpci90ZXN0LXN1YnIuc2ggICMgaW5jbHVkZXMgc2V0IC1lCisjIGZvciB0ZXN0IGNhc2Ug ZGVidWdnaW5nLCB1bmNvbW1lbnQ6CitzZXQgLXgKKworbWtkaXIgRgorCitEQj0ke1BXRH0vLmRl YnVnaW5mb2RfdG1wLnNxbGl0ZQordGVtcGZpbGVzICREQgorCitleHBvcnQgREVCVUdJTkZPRF9D QUNIRV9QQVRIPSR7UFdEfS8uY2xpZW50X2NhY2hlCisKK2dldF9wb3J0cworZW52IExEX0xJQlJB UllfUEFUSD0kbGRwYXRoICR7YWJzX2J1aWxkZGlyfS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2Qg XAorICAgICRWRVJCT1NFIC1GIC1wICRQT1JUMSAtdDAgLWcwIC1kICR7REJ9IEYgPiB2bG9nJFBP UlQxIDI+JjEgJgorUElEMT0kIQordGVtcGZpbGVzIHZsb2ckUE9SVDEKK2VycmZpbGVzIHZsb2ck UE9SVDEKK3dhaXRfcmVhZHkgJFBPUlQxICdyZWFkeScgMQorCisjIENvbXBpbGUgYSBzaW1wbGUg cHJvZ3JhbSwgc3RyaXAgaXRzIGRlYnVnaW5mbyBhbmQgc2F2ZSB0aGUgYnVpbGQtaWQuCisjIEFs c28gbW92ZSB0aGUgZGVidWdpbmZvIGludG8gYW5vdGhlciBkaXJlY3Rvcnkgc28gdGhhdCBlbGZ1 dGlscworIyBjYW5ub3QgZmluZCBpdCB3aXRob3V0IGRlYnVnaW5mb2QuCitlY2hvICJpbnQgbWFp bigpIHsgcmV0dXJuIDA7IH0iID4gJHtQV0R9L3Byb2cuYwordGVtcGZpbGVzIHByb2cuYworIyBD cmVhdGUgYSBzdWJkaXJlY3RvcnkgdG8gY29uZm91bmQgc291cmNlIHBhdGggbmFtZXMKK21rZGly IGZvb2JhcgorZ2NjIC1XbCwtLWJ1aWxkLWlkIC1nIC1vIHByb2cgJHtQV0R9L2Zvb2Jhci8vLy4v Li4vcHJvZy5jCit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vc3JjL3N0cmlwIC1nIC1mIHBy b2cuZGVidWcgJHtQV0R9L3Byb2cKKworbXYgcHJvZyBGCittdiBwcm9nLmRlYnVnIEYKK3RlbXBm aWxlcyBGL3Byb2cuZGVidWcgRi9wcm9nCisKK2tpbGwgLVVTUjEgJFBJRDEKKyMgV2FpdCB0aWxs IGJvdGggZmlsZXMgYXJlIGluIHRoZSBpbmRleC4KK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRf d29ya190b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9JyAxCit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFk X3dvcmtfcGVuZGluZ3tyb2xlPSJzY2FuIn0nIDAKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRf YnVzeXtyb2xlPSJzY2FuIn0nIDAKK2NwICR7REJ9ICR7REJ9LmJhY2t1cAordGVtcGZpbGVzICR7 REJ9LmJhY2t1cAorCitraWxsICRQSUQxCit3YWl0ICRQSUQxCitQSUQxPTAKKworIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMjIFBSMjc3MTEKKyMgVGVzdCB0byBlbnN1cmUgdGhhdCB0aGUgLS1pbmNsdWRlPSJe JCIgLS1leGNsdWRlPSIuKiIgb3B0aW9ucyByZW1vdmUgYWxsIGZpbGVzIGZyb20gYSBkYXRhYmFz ZSBiYWNrdXAKKyMKK2VudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCAke2Fic19idWlsZGRpcn0v Li4vZGVidWdpbmZvZC9kZWJ1Z2luZm9kIFwKKyAgICAkVkVSQk9TRSAtcCAkUE9SVDIgLXQwIC1n MCAtLXJlZ2V4LWdyb29tIC0taW5jbHVkZT0iXiQiIC0tZXhjbHVkZT0iLioiIC1kICR7REJ9LmJh Y2t1cCA+IHZsb2ckUE9SVDIgMj4mMSAmCisKKyNyZXVzZSBQSUQxCitQSUQxPSQhCit0ZW1wZmls ZXMgdmxvZyRQT1JUMgorZXJyZmlsZXMgdmxvZyRQT1JUMgorIyBTZXJ2ZXIgbXVzdCBiZWNvbWUg cmVhZHkKK3dhaXRfcmVhZHkgJFBPUlQyICdyZWFkeScgMQorCitraWxsIC1VU1IyICRQSUQxCit3 YWl0X3JlYWR5ICRQT1JUMiAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0iZ3Jvb20ifScgMQord2Fp dF9yZWFkeSAkUE9SVDIgJ2dyb29te3N0YXRpc3RpYz0iYXJjaGl2ZSBkL2UifScgIDAKK3dhaXRf cmVhZHkgJFBPUlQyICdncm9vbXtzdGF0aXN0aWM9ImFyY2hpdmUgc2RlZiJ9JyAwCit3YWl0X3Jl YWR5ICRQT1JUMiAnZ3Jvb217c3RhdGlzdGljPSJhcmNoaXZlIHNyZWYifScgMAord2FpdF9yZWFk eSAkUE9SVDIgJ2dyb29te3N0YXRpc3RpYz0iYnVpbGRpZHMifScgMAord2FpdF9yZWFkeSAkUE9S VDIgJ2dyb29te3N0YXRpc3RpYz0iZmlsZSBkL2UifScgMAord2FpdF9yZWFkeSAkUE9SVDIgJ2dy b29te3N0YXRpc3RpYz0iZmlsZSBzIn0nIDAKK3dhaXRfcmVhZHkgJFBPUlQyICdncm9vbXtzdGF0 aXN0aWM9ImZpbGVzIHNjYW5uZWQgKCMpIn0nIDAKK3dhaXRfcmVhZHkgJFBPUlQyICdncm9vbXtz dGF0aXN0aWM9ImZpbGVzIHNjYW5uZWQgKG1iKSJ9JyAwCisKK2tpbGwgJFBJRDEKK3dhaXQgJFBJ RDEKK1BJRDE9MAorCitleGl0IDA7CisKZGlmZiAtLWdpdCBhL3Rlc3RzL3J1bi1kZWJ1Z2luZm9k LXNpemV0aW1lLnNoIGIvdGVzdHMvcnVuLWRlYnVnaW5mb2Qtc2l6ZXRpbWUuc2gKbmV3IGZpbGUg bW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAuLmU3ZDYzMjRlCi0tLSAvZGV2L251bGwKKysrIGIv dGVzdHMvcnVuLWRlYnVnaW5mb2Qtc2l6ZXRpbWUuc2gKQEAgLTAsMCArMSw3NCBAQAorIyEvdXNy L2Jpbi9lbnYgYmFzaAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBSZWQgSGF0LCBJbmMu CisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGVsZnV0aWxzLgorIworIyBUaGlzIGZpbGUgaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorIworIyBlbGZ1dGlscyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLCBidXQKKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisuICRz cmNkaXIvdGVzdC1zdWJyLnNoICAjIGluY2x1ZGVzIHNldCAtZQorc2V0IC14CisKK2dldF9wb3J0 cworCitlY2hvICJpbnQgbWFpbigpIHsgcmV0dXJuIDA7IH0iID4gJHtQV0R9L3Byb2cuYworIyBD cmVhdGUgYSBzdWJkaXJlY3RvcnkgdG8gY29uZm91bmQgc291cmNlIHBhdGggbmFtZXMKK21rZGly IGZvb2JhcgorZ2NjIC1XbCwtLWJ1aWxkLWlkIC1nIC1vIHByb2cgJHtQV0R9L2Zvb2Jhci8vLy4v Li4vcHJvZy5jCit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vc3JjL3N0cmlwIC1nIC1mIHBy b2cuZGVidWcgJHtQV0R9L3Byb2cKK3RlbXBmaWxlcyBwcm9nIHByb2cuZGVidWcgcHJvZy5jCitC VUlMRElEPWBlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9Ly4uL3Ny Yy9yZWFkZWxmIFwKKyAgICAgICAgICAtYSBwcm9nIHwgZ3JlcCAnQnVpbGQgSUQnIHwgY3V0IC1k ICcgJyAtZiA3YAorCitlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9 Ly4uL2RlYnVnaW5mb2QvZGVidWdpbmZvZCAkVkVSQk9TRSAtRiAtcCAkUE9SVDEgLXQwIC1nMCAk e1BXRH0gPiB2bG9nJFBPUlQxIDI+JjEgJgorUElEMT0kIQordGVtcGZpbGVzIHZsb2ckUE9SVDEK K2VycmZpbGVzICB2bG9nJFBPUlQxCit3YWl0X3JlYWR5ICRQT1JUMSAncmVhZHknIDEKK3dhaXRf cmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9JyAxCit3YWl0 X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2FuIn0nIDAKK3dhaXRf cmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKKworIyMgUFIyNzg5Mgor IyBFbnN1cmUgREVCVUdJTkZPRF9NQVhTSVpFIGlzIGZ1bmN0aW9uYWwgYW5kIHNlbmRzIGJhY2sg dGhlIGNvcnJlY3QgaHR0cAorIyBjb2RlCitlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggREVC VUdJTkZPRF9SRVRSWV9MSU1JVD0xIERFQlVHSU5GT0RfVVJMUz0iaHR0cDovLzEyNy4wLjAuMTok UE9SVDEvIiBERUJVR0lORk9EX01BWFNJWkU9MSBcCisgICAgJHthYnNfdG9wX2J1aWxkZGlyfS9k ZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCAtdiBleGVjdXRhYmxlICR7UFdEfS9wcm9nIDI+IGZp bmQtdmxvZyRQT1JUMSB8fCB0cnVlCit0ZW1wZmlsZXMgZmluZC12bG9nJFBPUlQxIAorZXJyZmls ZXMgIGZpbmQtdmxvZyRQT1JUMQorZWNobyAiQ2hlY2tpbmcgbWF4c2l6ZSIKK2dyZXAgInVzaW5n IG1heCBzaXplIDFCIiBmaW5kLXZsb2ckUE9SVDEKK2VjaG8gIkNoZWNraW5nIG1heHNpemUiCitn cmVwICdzZXJ2aW5nIGZpbGUgJyQocmVhbHBhdGggJHtQV0R9KScvcHJvZycgdmxvZyRQT1JUMQor ZWNobyAiQ2hlY2tpbmcgbWF4c2l6ZSIKK2dyZXAgJ0ZpbGUgdG9vIGxhcmdlJyB2bG9nJFBPUlQx CitpZiBbIC1mICR7REVCVUdJTkZPRF9DQUNIRV9QQVRIfS8ke0JVSUxESUR9IF07IHRoZW4KKyAg ZWNobyAiRmlsZSBjYWNoZWQgYWZ0ZXIgbWF4c2l6ZSBjaGVjayIKKyAgZXJyCitmaQorIyBFbnN1 cmUgbm8gZmlsZSBpcyBkb3dubG9hZGVkIGZvciBsb25nZXIgdGhhbiBERUJVR0lORk9EX01BWFRJ TUUKK2VudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCBERUJVR0lORk9EX1VSTFM9Imh0dHA6Ly8x MjcuMC4wLjE6JFBPUlQxLyIgREVCVUdJTkZPRF9NQVhUSU1FPTEgXAorICAgICR7YWJzX3RvcF9i dWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZpbmQgLXYgZGVidWdpbmZvICR7UFdEfS9w cm9nLmRlYnVnIDI+IGZpbmQtdmxvZyRQT1JUMSB8fCB0cnVlCit0ZW1wZmlsZXMgZmluZC12bG9n JFBPUlQxCitncmVwICd1c2luZyBtYXggdGltZScgZmluZC12bG9nJFBPUlQxCisjIEVuc3VyZSBw K3Ilb1wkZy5kZWJ1ZyBpcyBOT1QgY2FjaGVkCitpZiBbIC1mICR7REVCVUdJTkZPRF9DQUNIRV9Q QVRIfS8ke0JVSUxESUR9IF07IHRoZW4KKyAgZWNobyAiRmlsZSBjYWNoZWQgYWZ0ZXIgbWF4dGlt ZSBjaGVjayIKKyAgZXJyCitmaQorCitraWxsICRQSUQxCit3YWl0ICRQSUQxCitQSUQxPTAKKwor ZXhpdCAwOwpkaWZmIC0tZ2l0IGEvdGVzdHMvcnVuLWRlYnVnaW5mb2QtdG1wLWhvbWUuc2ggYi90 ZXN0cy9ydW4tZGVidWdpbmZvZC10bXAtaG9tZS5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRl eCAwMDAwMDAwMC4uMTIwMzI1ZDIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9ydW4tZGVidWdp bmZvZC10bXAtaG9tZS5zaApAQCAtMCwwICsxLDEyMSBAQAorIyEvdXNyL2Jpbi9lbnYgYmFzaAor IworIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBSZWQgSGF0LCBJbmMuCisjIFRoaXMgZmlsZSBp cyBwYXJ0IG9mIGVsZnV0aWxzLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNl LCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBlbGZ1dGls cyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQK KyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisuICRzcmNkaXIvdGVzdC1zdWJy LnNoICAjIGluY2x1ZGVzIHNldCAtZQorIyBmb3IgdGVzdCBjYXNlIGRlYnVnZ2luZywgdW5jb21t ZW50Ogorc2V0IC14CisKK0RCPSR7UFdEfS8uZGVidWdpbmZvZF90bXAuc3FsaXRlCitleHBvcnQg REVCVUdJTkZPRF9DQUNIRV9QQVRIPSR7UFdEfS8uY2xpZW50X2NhY2hlCisKK21rZGlyIEYKK21r ZGlyIC1wICRERUJVR0lORk9EX0NBQ0hFX1BBVEgKKworZ2V0X3BvcnRzCisKK2VudiBMRF9MSUJS QVJZX1BBVEg9JGxkcGF0aCBERUJVR0lORk9EX1VSTFM9ICR7YWJzX2J1aWxkZGlyfS8uLi9kZWJ1 Z2luZm9kL2RlYnVnaW5mb2QgJFZFUkJPU0UgLUYgLXAgJFBPUlQxIFwKKyAgICAtdDAgLWcwIC12 IEYgPiB2bG9nJFBPUlQxIDI+JjEgJgorUElEMT0kIQordGVtcGZpbGVzIHZsb2ckUE9SVDEKK2Vy cmZpbGVzIHZsb2ckUE9SVDEKKyMgU2VydmVyIG11c3QgYmVjb21lIHJlYWR5Cit3YWl0X3JlYWR5 ICRQT1JUMSAncmVhZHknIDEKK2V4cG9ydCBERUJVR0lORk9EX1VSTFM9aHR0cDovLzEyNy4wLjAu MTokUE9SVDEvICAgIyBvciB3aXRob3V0IHRyYWlsaW5nIC8KKworIyBCZSBwYXRpZW50IHdoZW4g cnVuIG9uIGEgYnVzeSBtYWNoaW5lIHRoaW5ncyBtaWdodCB0YWtlIGEgYml0LgorZXhwb3J0IERF QlVHSU5GT0RfVElNRU9VVD0xMAorCisjIENoZWNrIHRocmVhZCBjb21tIG5hbWVzCitwcyAtcSAk UElEMSAtZSAtTCAtbyAnJXAgJWMgJWEnIHwgZ3JlcCBncm9vbQorcHMgLXEgJFBJRDEgLWUgLUwg LW8gJyVwICVjICVhJyB8IGdyZXAgc2NhbgorcHMgLXEgJFBJRDEgLWUgLUwgLW8gJyVwICVjICVh JyB8IGdyZXAgdHJhdmVyc2UKKworIyBXZSB1c2UgLXQwIGFuZCAtZzAgaGVyZSB0byB0dXJuIG9m ZiB0aW1lLWJhc2VkIHNjYW5uaW5nICYgZ3Jvb21pbmcuCisjIEZvciB0ZXN0aW5nIHB1cnBvc2Vz LCB3ZSBqdXN0IHNpYyBTSUdVU1IxIC8gU0lHVVNSMiBhdCB0aGUgcHJvY2Vzcy4KKworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisKKyMgQ29tcGlsZSBhIHNpbXBsZSBwcm9ncmFtLCBzdHJpcCBpdHMgZGVidWdp bmZvIGFuZCBzYXZlIHRoZSBidWlsZC1pZC4KKyMgQWxzbyBtb3ZlIHRoZSBkZWJ1Z2luZm8gaW50 byBhbm90aGVyIGRpcmVjdG9yeSBzbyB0aGF0IGVsZnV0aWxzCisjIGNhbm5vdCBmaW5kIGl0IHdp dGhvdXQgZGVidWdpbmZvZC4KK2VjaG8gImludCBtYWluKCkgeyByZXR1cm4gMDsgfSIgPiAke1BX RH0vcCtyJW9cJGcuYwordGVtcGZpbGVzIHArciVvXCRnLmMKKyMgQ3JlYXRlIGEgc3ViZGlyZWN0 b3J5IHRvIGNvbmZvdW5kIHNvdXJjZSBwYXRoIG5hbWVzCitta2RpciBmb29iYXIKK2djYyAtV2ws LS1idWlsZC1pZCAtZyAtbyBwK3Ilb1wkZyAke1BXRH0vZm9vYmFyLy8vLi8uLi9wK3Ilb1wkZy5j Cit0ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vc3JjL3N0cmlwIC1nIC1mIHArciVvXCRnLmRl YnVnICR7UFdEfS9wK3Ilb1wkZworQlVJTERJRD1gZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRo ICR7YWJzX2J1aWxkZGlyfS8uLi9zcmMvcmVhZGVsZiBcCisgICAgICAgICAgLWEgcCtyJW9cXCRn IHwgZ3JlcCAnQnVpbGQgSUQnIHwgY3V0IC1kICcgJyAtZiA3YAorCittdiBwK3Ilb1wkZyBGCitt diBwK3Ilb1wkZy5kZWJ1ZyBGCitraWxsIC1VU1IxICRQSUQxCisjIFdhaXQgdGlsbCBib3RoIGZp bGVzIGFyZSBpbiB0aGUgaW5kZXguCit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfdG90 YWx7cm9sZT0idHJhdmVyc2UifScgMQord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3Bl bmRpbmd7cm9sZT0ic2NhbiJ9JyAwCit3YWl0X3JlYWR5ICRQT1JUMSAndGhyZWFkX2J1c3l7cm9s ZT0ic2NhbiJ9JyAwCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIFRlc3Qgd2hldGhlciB0aGUgY2Fj aGUgZGVmYXVsdCBsb2NhdGlvbnMgYXJlIGNvcnJlY3QKK21rZGlyIHRtcGhvbWUKKworIyAkSE9N RS8uY2FjaGUgc2hvdWxkIGJlIGNyZWF0ZWQuCit0ZXN0cnVuIGVudiBIT01FPSRQV0QvdG1waG9t ZSBYREdfQ0FDSEVfSE9NRT0gREVCVUdJTkZPRF9DQUNIRV9QQVRIPSAke2Fic190b3BfYnVpbGRk aXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAkQlVJTERJRAoraWYgWyAh IC1mICRQV0QvdG1waG9tZS8uY2FjaGUvZGVidWdpbmZvZF9jbGllbnQvJEJVSUxESUQvZGVidWdp bmZvIF07IHRoZW4KKyAgZWNobyAiY291bGQgbm90IGZpbmQgY2FjaGUgaW4gJFBXRC90bXBob21l Ly5jYWNoZSIKKyAgZXJyCitmaQorCisjICRIT01FLy5jYWNoZSBzaG91bGQgYmUgZm91bmQuCit0 ZXN0cnVuIGVudiBIT01FPSRQV0QvdG1waG9tZSBYREdfQ0FDSEVfSE9NRT0gREVCVUdJTkZPRF9D QUNIRV9QQVRIPSAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5k IGV4ZWN1dGFibGUgJEJVSUxESUQKK2lmIFsgISAtZiAkUFdEL3RtcGhvbWUvLmNhY2hlL2RlYnVn aW5mb2RfY2xpZW50LyRCVUlMRElEL2V4ZWN1dGFibGUgXTsgdGhlbgorICBlY2hvICJjb3VsZCBu b3QgZmluZCBjYWNoZSBpbiAkUFdEL3RtcGhvbWUvLmNhY2hlIgorICBlcnIKK2ZpCisjICRYREdf Q0FDSEVfSE9NRSBzaG91bGQgdGFrZSBwcmlvcml0eSBvdmVyICRIT01FLmNhY2hlLgordGVzdHJ1 biBlbnYgSE9NRT0kUFdEL3RtcGhvbWUgWERHX0NBQ0hFX0hPTUU9JFBXRC90bXB4ZGcgREVCVUdJ TkZPRF9DQUNIRV9QQVRIPSAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZv ZC1maW5kIGRlYnVnaW5mbyAkQlVJTERJRAoraWYgWyAhIC1mICRQV0QvdG1weGRnL2RlYnVnaW5m b2RfY2xpZW50LyRCVUlMRElEL2RlYnVnaW5mbyBdOyB0aGVuCisgIGVjaG8gImNvdWxkIG5vdCBm aW5kIGNhY2hlIGluICRQV0QvdG1weGRnLyIKKyAgZXJyCitmaQorCisjIEEgY2FjaGUgYXQgdGhl IG9sZCBkZWZhdWx0IGxvY2F0aW9uICgkSE9NRS8uZGVidWdpbmZvZF9jbGllbnRfY2FjaGUpIHNo b3VsZCB0YWtlCisjIHByaW9yaXR5IG92ZXIgJEhPTUUvLmNhY2hlLCAkWERHX0NBQ0hFX0hPTUUu CitjcCAtdnIgJERFQlVHSU5GT0RfQ0FDSEVfUEFUSCB0bXBob21lLy5kZWJ1Z2luZm9kX2NsaWVu dF9jYWNoZSB8fCB0cnVlCisjIHx8dHJ1ZSBpcyBmb3IgdG9sZXJhdGluZyBlcnJvcnMsIHN1Y2gg YSB2YWxncmluZCBvciBzb21ldGhpbmcgZWxzZQorIyAgICAgICAgbGVhdmluZyAwMDAtcGVybSBm aWxlcyBpbiB0aGVyZQorCisjIEFkZCBhIGZpbGUgdGhhdCBkb2Vzbid0IGV4aXN0IGluICRIT01F Ly5jYWNoZSwgJFhER19DQUNIRV9IT01FLgorbWtkaXIgdG1waG9tZS8uZGVidWdpbmZvZF9jbGll bnRfY2FjaGUvZGVhZGJlZWYKK2VjaG8gRUxGLi4uID4gdG1waG9tZS8uZGVidWdpbmZvZF9jbGll bnRfY2FjaGUvZGVhZGJlZWYvZGVidWdpbmZvCitmaWxlbmFtZT1gdGVzdHJ1biBlbnYgSE9NRT0k UFdEL3RtcGhvbWUgWERHX0NBQ0hFX0hPTUU9JFBXRC90bXB4ZGcgREVCVUdJTkZPRF9DQUNIRV9Q QVRIPSAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVn aW5mbyBkZWFkYmVlZmAKK2NtcCAkZmlsZW5hbWUgdG1waG9tZS8uZGVidWdpbmZvZF9jbGllbnRf Y2FjaGUvZGVhZGJlZWYvZGVidWdpbmZvCisKKyMgJERFQlVHSU5GT19DQUNIRV9QQVRIIHNob3Vs ZCB0YWtlIHByaW9yaXR5IG92ZXIgYWxsIGVsc2UuCit0ZXN0cnVuIGVudiBIT01FPSRQV0QvdG1w aG9tZSBYREdfQ0FDSEVfSE9NRT0kUFdEL3RtcHhkZyBERUJVR0lORk9EX0NBQ0hFX1BBVEg9JFBX RC90bXBjYWNoZSAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5k IGRlYnVnaW5mbyAkQlVJTERJRAoraWYgWyAhIC1mICRQV0QvdG1wY2FjaGUvJEJVSUxESUQvZGVi dWdpbmZvIF07IHRoZW4KKyAgZWNobyAiY291bGQgbm90IGZpbmQgY2FjaGUgaW4gJFBXRC90bXBj YWNoZS8iCisgIGVycgorZmkKK3JtIC1yZiAke1BXRH0vdG1waG9tZS8gJHtQV0R9L3RtcHhkZyAk e1BXRH0vdG1wY2FjaGUKKwora2lsbCAkUElEMQord2FpdCAkUElEMQorUElEMT0wCitleGl0IDAK ZGlmZiAtLWdpdCBhL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLXdyaXRhYmxlLnNoIGIvdGVzdHMvcnVu LWRlYnVnaW5mb2Qtd3JpdGFibGUuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAw MDAuLmE2M2RiM2ZmCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcnVuLWRlYnVnaW5mb2Qtd3Jp dGFibGUuc2gKQEAgLTAsMCArMSw4MSBAQAorIyEvdXNyL2Jpbi9lbnYgYmFzaAorIworIyBDb3B5 cmlnaHQgKEMpIDIwMTktMjAyMSBSZWQgSGF0LCBJbmMuCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9m IGVsZnV0aWxzLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBlbGZ1dGlscyBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisj IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisuICRzcmNkaXIvdGVzdC1zdWJyLnNoICAjIGlu Y2x1ZGVzIHNldCAtZQorCisjIGZvciB0ZXN0IGNhc2UgZGVidWdnaW5nLCB1bmNvbW1lbnQ6Citz ZXQgLXgKKworbWtkaXIgRgorCitnZXRfcG9ydHMKKworZW52IExEX0xJQlJBUllfUEFUSD0kbGRw YXRoIERFQlVHSU5GT0RfVVJMUz0gJHthYnNfYnVpbGRkaXJ9Ly4uL2RlYnVnaW5mb2QvZGVidWdp bmZvZCAkVkVSQk9TRSAtRiAtcCAkUE9SVDEgXAorICAgIC10MCAtZzAgLXYgRiA+IHZsb2ckUE9S VDEgMj4mMSAmCitQSUQxPSQhCit0ZW1wZmlsZXMgdmxvZyRQT1JUMQorZXJyZmlsZXMgdmxvZyRQ T1JUMQorIyBTZXJ2ZXIgbXVzdCBiZWNvbWUgcmVhZHkKK3dhaXRfcmVhZHkgJFBPUlQxICdyZWFk eScgMQorZXhwb3J0IERFQlVHSU5GT0RfVVJMUz1odHRwOi8vMTI3LjAuMC4xOiRQT1JUMS8gICAj IG9yIHdpdGhvdXQgdHJhaWxpbmcgLworCisjIEJlIHBhdGllbnQgd2hlbiBydW4gb24gYSBidXN5 IG1hY2hpbmUgdGhpbmdzIG1pZ2h0IHRha2UgYSBiaXQuCitleHBvcnQgREVCVUdJTkZPRF9USU1F T1VUPTEwCisKKyMgQ2hlY2sgdGhyZWFkIGNvbW0gbmFtZXMKK3BzIC1xICRQSUQxIC1lIC1MIC1v ICclcCAlYyAlYScgfCBncmVwIGdyb29tCitwcyAtcSAkUElEMSAtZSAtTCAtbyAnJXAgJWMgJWEn IHwgZ3JlcCBzY2FuCitwcyAtcSAkUElEMSAtZSAtTCAtbyAnJXAgJWMgJWEnIHwgZ3JlcCB0cmF2 ZXJzZQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBDb21waWxlIGEgc2ltcGxlIHByb2dyYW0sIHN0 cmlwIGl0cyBkZWJ1Z2luZm8gYW5kIHNhdmUgdGhlIGJ1aWxkLWlkLgorIyBBbHNvIG1vdmUgdGhl IGRlYnVnaW5mbyBpbnRvIGFub3RoZXIgZGlyZWN0b3J5IHNvIHRoYXQgZWxmdXRpbHMKKyMgY2Fu bm90IGZpbmQgaXQgd2l0aG91dCBkZWJ1Z2luZm9kLgorZWNobyAiaW50IG1haW4oKSB7IHJldHVy biAwOyB9IiA+ICR7UFdEfS9wK3Ilb1wkZy5jCit0ZW1wZmlsZXMgcCtyJW9cJGcuYworIyBDcmVh dGUgYSBzdWJkaXJlY3RvcnkgdG8gY29uZm91bmQgc291cmNlIHBhdGggbmFtZXMKK21rZGlyIGZv b2JhcgorZ2NjIC1XbCwtLWJ1aWxkLWlkIC1nIC1vIHArciVvXCRnICR7UFdEfS9mb29iYXIvLy8u Ly4uL3ArciVvXCRnLmMKK3Rlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9zcmMvc3RyaXAgLWcg LWYgcCtyJW9cJGcuZGVidWcgJHtQV0R9L3ArciVvXCRnCitCVUlMRElEPWBlbnYgTERfTElCUkFS WV9QQVRIPSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9Ly4uL3NyYy9yZWFkZWxmIFwKKyAgICAgICAg ICAtYSBwK3Ilb1xcJGcgfCBncmVwICdCdWlsZCBJRCcgfCBjdXQgLWQgJyAnIC1mIDdgCisKK212 IHArciVvXCRnIEYKK212IHArciVvXCRnLmRlYnVnIEYKK2tpbGwgLVVTUjEgJFBJRDEKKyMgV2Fp dCB0aWxsIGJvdGggZmlsZXMgYXJlIGluIHRoZSBpbmRleC4KK3dhaXRfcmVhZHkgJFBPUlQxICd0 aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9JyAxCit3YWl0X3JlYWR5ICRQT1JUMSAn dGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2FuIn0nIDAKK3dhaXRfcmVhZHkgJFBPUlQxICd0 aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVzdCB3aGV0 aGVyIGRlYnVnaW5mb2QtZmluZCBpcyBhYmxlIHRvIGZldGNoIHRob3NlIGZpbGVzLgorcm0gLXJm ICRERUJVR0lORk9EX0NBQ0hFX1BBVEggIyBjbGVhbiBpdCBmcm9tIHByZXZpb3VzIHRlc3RzCitm aWxlbmFtZT1gdGVzdHJ1biAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZv ZC1maW5kIGRlYnVnaW5mbyAkQlVJTERJRGAKK2NtcCAkZmlsZW5hbWUgRi9wK3Ilb1wkZy5kZWJ1 ZworaWYgWyAtdyAkZmlsZW5hbWUgXTsgdGhlbgorICAgIGVjaG8gImNhY2hlIGZpbGUgd3JpdGFi bGUsIGJvbyIKKyAgICBlcnIKK2ZpCisKK2tpbGwgJFBJRDEKK3dhaXQgJFBJRDEKK1BJRDE9MAor CitleGl0IDAKZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3Qtc3Vici5zaCBiL3Rlc3RzL3Rlc3Qtc3Vi ci5zaAppbmRleCA0MTFlNWYyOC4uNzk2NWE2OGQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3Rlc3Qtc3Vi ci5zaAorKysgYi90ZXN0cy90ZXN0LXN1YnIuc2gKQEAgLTI3LDYgKzI3LDEzIEBAIHRlc3RfZGly PSJ0ZXN0LSQkIgogbWtkaXIgLXAgIiR0ZXN0X2RpciIKIGNkICIkdGVzdF9kaXIiCiAKK3R5cGUg Y3VybCAyPi9kZXYvbnVsbCB8fCAoZWNobyAibmVlZCBjdXJsIjsgZXhpdCA3NykKK3R5cGUgcnBt MmNwaW8gMj4vZGV2L251bGwgfHwgKGVjaG8gIm5lZWQgcnBtMmNwaW8iOyBleGl0IDc3KQordHlw ZSBjcGlvIDI+L2Rldi9udWxsIHx8IChlY2hvICJuZWVkIGNwaW8iOyBleGl0IDc3KQordHlwZSBi emNhdCAyPi9kZXYvbnVsbCB8fCAoZWNobyAibmVlZCBiemNhdCI7IGV4aXQgNzcpCitic2R0YXIg LS12ZXJzaW9uIHwgZ3JlcCAtcSB6c3RkICYmIHpzdGQ9dHJ1ZSB8fCB6c3RkPWZhbHNlCitlY2hv ICJ6c3RkPSR6c3RkIGJzZHRhcj1gYnNkdGFyIC0tdmVyc2lvbmAiCisKICNMQ19BTEw9QwogI2V4 cG9ydCBMQ19BTEwKIApAQCAtMzUsNyArNDIsMTEgQEAgcmVtb3ZlX2ZpbGVzPQogIyBUZXN0cyB0 aGF0IHRyYXAgRVhJVCAoMCkgdGhlbXNlbHZlcyBzaG91bGQgY2FsbCB0aGlzIGV4cGxpY2l0bHku CiBleGl0X2NsZWFudXAoKQogewotICBybSAtZiAkcmVtb3ZlX2ZpbGVzOyBjZCAuLjsgcm1kaXIg JHRlc3RfZGlyCisgIHJtIC1yZiAke1BXRH0vLmNsaWVudF9jYWNoZSoKKyAgcm0gLWYgJHJlbW92 ZV9maWxlczsgCisgIGxzIC1hICR7UFdEfQorICBjZCAuLjsgCisgIHJtZGlyICR0ZXN0X2Rpcgog fQogdHJhcCBleGl0X2NsZWFudXAgMAogCkBAIC0yMTIsMyArMjIzLDEyMiBAQCB0ZXN0cnVuX29u X3NlbGZfcXVpZXQoKQogICAjIE9ubHkgZXhpdCBpZiBzb21ldGhpbmcgZmFpbGVkCiAgIGlmIHRl c3QgJGV4aXRfc3RhdHVzICE9IDA7IHRoZW4gZXhpdCAkZXhpdF9zdGF0dXM7IGZpCiB9CisKK2Ns ZWFudXAoKQoreworICBpZiBbICRQSUQxIC1uZSAwIF07IHRoZW4ga2lsbCAkUElEMTsgd2FpdCAk UElEMTsgZmkKKyAgaWYgWyAkUElEMiAtbmUgMCBdOyB0aGVuIGtpbGwgJFBJRDI7IHdhaXQgJFBJ RDI7IGZpCisgIHJtIC1yZiAke1BXRH0vLmNsaWVudF9jYWNoZSBGIFIgRCBMIFogJHtQV0R9L2Zv b2JhciAke1BXRH0vbW9ja3RyZWUgCisgIGV4aXRfY2xlYW51cAorfQordHJhcCBjbGVhbnVwIDAg MSAyIDMgNSA5IDE1CitlcnJmaWxlc19saXN0PQorZXJyKCkgeworICAgIGVjaG8gRVJST1IgUkVQ T1JUUworICAgIGZvciBwb3J0cyBpbiAkUE9SVDEgJFBPUlQyCisgICAgZG8KKyAgICAgICAgZWNo byBFUlJPUiBSRVBPUlQgJHBvcnQgbWV0cmljcworICAgICAgICBjdXJsIC1zIGh0dHA6Ly8xMjcu MC4wLjE6JHBvcnQvbWV0cmljcworICAgICAgICBlY2hvCisgICAgZG9uZQorICAgIGZvciB4IGlu ICRlcnJmaWxlc19saXN0CisgICAgZG8KKyAgICAgICAgZWNobyBFUlJPUiBSRVBPUlQgIiR4Igor ICAgICAgICBjYXQgJHgKKyAgICAgICAgZWNobworICAgIGRvbmUKKyAgICBmYWxzZSAjIHRyaWdn ZXIgc2V0IC1lCit9Cit0cmFwIGVyciBFUlIKKworZXJyZmlsZXMoKSB7CisgICAgZXJyZmlsZXNf bGlzdD0iJGVycmZpbGVzX2xpc3QgJCoiCit9CisKK2dldHBvcnQoKSB7CisgICAgIyBmaW5kIGFu IHVudXNlZCBwb3J0IG51bWJlcgorICAgIHdoaWxlIHRydWU7IGRvCisgICAgICAgIHBvcnQ9YGV4 cHIgJygnICRSQU5ET00gJSAxMDAwICcpJyArIDkwMDBgCisgICAgICAgIHNzIC1hdG4gfCBmZ3Jl cCAiOiRwb3J0IiB8fCBicmVhaworICAgIGRvbmUKK30KKword2FpdF9yZWFkeSgpCit7CisgIHBv cnQ9JDE7CisgIHdoYXQ9JDI7CisgIHZhbHVlPSQzOworICB0aW1lb3V0PTIwOworCisgIGVjaG8g IldhaXQgJHRpbWVvdXQgc2Vjb25kcyBvbiAkcG9ydCBmb3IgbWV0cmljICR3aGF0IHRvIGNoYW5n ZSB0byAkdmFsdWUiCisgIHdoaWxlIFsgJHRpbWVvdXQgLWd0IDAgXTsgZG8KKyAgICBtdmFsdWU9 IiQoY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRwb3J0L21ldHJpY3MgXAorICAgICAgICAgICAg ICB8IGdyZXAgIiR3aGF0IiB8IGF3ayAne3ByaW50ICRORn0nKSIKKyAgICBpZiBbIC16ICIkbXZh bHVlIiBdOyB0aGVuIG12YWx1ZT0wOyBmaQorICAgICAgZWNobyAibWV0cmljICR3aGF0OiAkbXZh bHVlIgorICAgICAgaWYgWyAiJG12YWx1ZSIgLWVxICIkdmFsdWUiIF07IHRoZW4KKyAgICAgICAg YnJlYWs7CisgICAgZmkKKyAgICBzbGVlcCAwLjU7CisgICAgKCh0aW1lb3V0LS0pKTsKKyAgZG9u ZTsKKworICBpZiBbICR0aW1lb3V0IC1lcSAwIF07IHRoZW4KKyAgICBlY2hvICJtZXRyaWMgJHdo YXQgbmV2ZXIgY2hhbmdlZCB0byAkdmFsdWUgb24gcG9ydCAkcG9ydCIKKyAgICBlcnIKKyAgZmkK K30KKworYXJjaGl2ZV90ZXN0KCkgeworICAgIF9fQlVJTERJRD0kMQorICAgIF9fU09VUkNFUEFU SD0kMgorICAgIF9fU09VUkNFU0hBMT0kMworCisgICAgZmlsZW5hbWU9YHRlc3RydW4gJHthYnNf dG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBleGVjdXRhYmxlICRfX0JV SUxESURgCisgICAgYnVpbGRpZD1gZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoICR7YWJzX2J1 aWxkZGlyfS8uLi9zcmMvcmVhZGVsZiBcCisgICAgICAgICAgICAgLWEgJGZpbGVuYW1lIHwgZ3Jl cCAnQnVpbGQgSUQnIHwgY3V0IC1kICcgJyAtZiA3YAorICAgIHRlc3QgJF9fQlVJTERJRCA9ICRi dWlsZGlkCisgICAgIyBjaGVjayB0aGF0IHRpbWVzdGFtcHMgYXJlIHBsYXVzaWJsZSAtIG9sZGVy IHRoYW4gdGhlIG5lYXItcHJlc2VudCAodG1wZGlyIG10aW1lKQorICAgIHRlc3QgJGZpbGVuYW1l IC1vdCBgcHdkYAorCisgICAgIyBydW4gYWdhaW4gdG8gYXNzdXJlIHRoYXQgZmRjYWNoZSBpcyBi ZWluZyBlbmpveWVkCisgICAgZmlsZW5hbWU9YHRlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9k ZWJ1Z2luZm9kL2RlYnVnaW5mb2QtZmluZCBleGVjdXRhYmxlICRfX0JVSUxESURgCisgICAgYnVp bGRpZD1gZW52IExEX0xJQlJBUllfUEFUSD0kbGRwYXRoICR7YWJzX2J1aWxkZGlyfS8uLi9zcmMv cmVhZGVsZiBcCisgICAgICAgICAgICAgLWEgJGZpbGVuYW1lIHwgZ3JlcCAnQnVpbGQgSUQnIHwg Y3V0IC1kICcgJyAtZiA3YAorICAgIHRlc3QgJF9fQlVJTERJRCA9ICRidWlsZGlkCisgICAgdGVz dCAkZmlsZW5hbWUgLW90IGBwd2RgCisKKyAgICBmaWxlbmFtZT1gdGVzdHJ1biAke2Fic190b3Bf YnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIGRlYnVnaW5mbyAkX19CVUlMRElE YAorICAgIGJ1aWxkaWQ9YGVudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCAke2Fic19idWlsZGRp cn0vLi4vc3JjL3JlYWRlbGYgXAorICAgICAgICAgICAgIC1hICRmaWxlbmFtZSB8IGdyZXAgJ0J1 aWxkIElEJyB8IGN1dCAtZCAnICcgLWYgN2AKKyAgICB0ZXN0ICRfX0JVSUxESUQgPSAkYnVpbGRp ZAorICAgIHRlc3QgJGZpbGVuYW1lIC1vdCBgcHdkYAorCisgICAgaWYgdGVzdCAieCRfX1NPVVJD RVBBVEgiICE9ICJ4IjsgdGhlbgorICAgICAgICBmaWxlbmFtZT1gdGVzdHJ1biAke2Fic190b3Bf YnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1maW5kIHNvdXJjZSAkX19CVUlMRElEICRf X1NPVVJDRVBBVEhgCisgICAgICAgIGhhc2g9YGNhdCAkZmlsZW5hbWUgfCBzaGExc3VtIHwgYXdr ICd7cHJpbnQgJDF9J2AKKyAgICAgICAgdGVzdCAkX19TT1VSQ0VTSEExID0gJGhhc2gKKyAgICAg ICAgdGVzdCAkZmlsZW5hbWUgLW90IGBwd2RgCisgICAgZmkKK30KKworZ2V0X3BvcnRzKCkgewor ICB3aGlsZSB0cnVlOyBkbworICAgIFBPUlQxPWBleHByICcoJyAkUkFORE9NICUgMTAwMCAnKScg KyA5MDAwYAorICAgIHNzIC1hdG4gfCBmZ3JlcCAiOiRQT1JUMSIgfHwgYnJlYWsKKyAgZG9uZQor IyBTb21lIHRlc3RzIHdpbGwgdXNlIHR3byBzZXJ2ZXJzLCBzbyBhc3NpZ24gdGhlIHNlY29uZCB2 YXIKKyAgd2hpbGUgdHJ1ZTsgZG8KKyAgICBQT1JUMj1gZXhwciAnKCcgJFJBTkRPTSAlIDEwMDAg JyknICsgOTAwMGAKKyAgICBzcyAtYXRuIHwgZmdyZXAgIjokUE9SVDIiICYmICRQT1JUMSAtbmUg JFBPUlQyIHx8IGJyZWFrCisgIGRvbmUKKworfQorCitWRVJCT1NFPS12dnYKKyMgV2UgZ2F0aGVy IHRoZSBMRF9MSUJSQVJZX1BBVEggd2l0aCB0aGlzIGN1bm5pbmcgdHJpY2s6CitsZHBhdGg9YHRl c3RydW4gc2ggLWMgJ2VjaG8gJExEX0xJQlJBUllfUEFUSCdgCitQT1JUMT0wCitQT1JUMj0wCitQ SUQxPTAKK1BJRDI9MAotLSAKMi4zMS4xCgo= --0000000000008e5b1b05ca3a741a--