Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1va08h-002GvF-0W for pgsql-hackers@arkaria.postgresql.org; Sun, 28 Dec 2025 23:25:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1va08f-00ERsT-32 for pgsql-hackers@arkaria.postgresql.org; Sun, 28 Dec 2025 23:25:30 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1va08f-00ERsL-0w for pgsql-hackers@lists.postgresql.org; Sun, 28 Dec 2025 23:25:30 +0000 Received: from mail-ej1-x632.google.com ([2a00:1450:4864:20::632]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1va08b-003J78-15 for pgsql-hackers@postgresql.org; Sun, 28 Dec 2025 23:25:29 +0000 Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-b83122f9d78so443024766b.0 for ; Sun, 28 Dec 2025 15:25:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1766964324; x=1767569124; darn=postgresql.org; h=in-reply-to:references:from:to:subject:cc:message-id:date :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=R4074Nre5RLOVBI2dh4OD8svUTPFwU2gLGe8Td6NXVo=; b=FIQt21BoSSVngBpowirokcRsJJ5YGSzRLd3NzdZXTAJQzAM2TcK2y8yPdLNE++40Ug I18R2R5PSlnsXZc2vGRd8l7pfGQgeLLi1iApo7ekmPz1QfYKuVPAvE1r2FrXl22B2Jym jD+aZ9bveDzyOgDubN10I0/Yw7uOVC7Gm1/WWM9TXqgjqHfEdcvtxrBcxfo6tdttwjuw 99s8GAMB3OU4C++voBzelTR13jFmFyZrJTmtrgd35aoRFUGEpk1G+T0CYMbiRKKaawFa +59QTNzk1w3X1L7V7nWjRvs3DmENHQLnzhk5IpT+E1wzdDSIwWRdfG3ZsJexksNbwHVG rpSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766964324; x=1767569124; h=in-reply-to:references:from:to:subject:cc:message-id:date :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=R4074Nre5RLOVBI2dh4OD8svUTPFwU2gLGe8Td6NXVo=; b=W5un8FHeLAbciHJkNBRrDp+i1Ew6lC8WuiDzlnWocDVKDtGEpsj7s+IyQjVuYywZws TKt1PEPjvG4+2jRVDKx3LJ/WhRrYYJYcpKAGmY4AG0gYMQGU8YINde+Kz3vzqNntPuyP fIs8gQ7UILL5nRVpv8TIU65f7ODe3NjjqqKSSP354C4vy+4fvvasQ5JMqt+c/Pw8+SoT 1IbiPyx6xYLXxYdkhLjy+ameg+6Zgq4lyfc5xJkgrEAd3jf3WDvRs+f07qq2vWszZKaJ SyjTI5cLpua6OTRaJzZeJG0q8pKQQn2Unz77z4lQAeY9ApYR9dwI0ZO9VD9fKar2fK0i ogVg== X-Forwarded-Encrypted: i=1; AJvYcCXO68y3Unl4KcxaZpXPoL6ggMXYU31DhrcP5TZalbmGNnmnJv59/YnO6wYaIS4OzQprSHlv2xIM5YftPuzO@postgresql.org X-Gm-Message-State: AOJu0YwurxUXJ9du54v7cG2YwTmQ4edw+5JcKf6koP84zeElWerieOyp gjfeLFRWRB+i+JY9ynlpXjBxnSLdoyj8PdULeIJPDVeyqNMEnQKq3J9H6b8+LwWV7sc= X-Gm-Gg: AY/fxX7CXGfIac/GipgTv1oOHy0qNpccWC3WSpGZXS153VNDpN2qgxGSi7phnHPZ9WJ DNnCVKDX7Yzt5Y7gk1DiA5q9WohhGSKrcUTwkfSiGMt5dw+HNKzt10bFQ1NOJAQrbsLX9HaBX+I EtbWv+gCynNJZua0e/NIqJGJ3w/2NEhH8MnxjzBj0mmO9uJNj6skjU9vz5YpTNofbrvTS4bmG8U 22B9ncp2I0b+q3tHicLRtpAhEnkzgPqKgUqib+vuedq43GnpZ6WMTj2QzQPLQOb1Nncj0dYNGiL 9dneuDd6RtPzNjpg4rbsfh09SNa7GAyv8lUdrwAfdJ4tgyO5MmVeO/z8+5b4UPFlRt94WUYYNct vJ8Y6ox1HdPTThjanN2jsyzALmrRiqjzEdpbwRR36yAQGaDq8xlAw3GbL8QP4gppiWwMTJvTPtv rhJQW71Va2gjbFa3YtfKHISk7GlHZFpOXja60= X-Google-Smtp-Source: AGHT+IGMF7LkwxUCDDTCkgGSChAIcEwlOpiiBgyetMePbsfqCiCXLiycSCFlHDxJlA+R7voX40VigQ== X-Received: by 2002:a17:906:730f:b0:b73:9937:e96b with SMTP id a640c23a62f3a-b8037183903mr3208700466b.52.1766964323893; Sun, 28 Dec 2025 15:25:23 -0800 (PST) Received: from localhost (145-53-221-196.fixed.kpn.net. [145.53.221.196]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8037de1421sm3177128266b.41.2025.12.28.15.25.22 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 28 Dec 2025 15:25:22 -0800 (PST) Content-Type: multipart/mixed; boundary=96ced96246521a62ba81864c53b3a5475cc189cbc0ad0bfdf74d8b032f52 Mime-Version: 1.0 Date: Mon, 29 Dec 2025 00:25:22 +0100 Message-Id: Cc: "Andres Freund" , "Jacob Champion" , "PostgreSQL Hackers" , "Robert Haas" , "Daniel Gustafsson" , "Tom Lane" , "Peter Eisentraut" , "Nazir Bilal Yavuz" Subject: Re: RFC: adding pytest as a supported test framework To: "Xuneng Zhou" From: "Jelte Fennema-Nio" X-Mailer: aerc 0.20.1-31-gf6db7c329ce0 References: <2302192.1718380169@sss.pgh.pa.us> In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --96ced96246521a62ba81864c53b3a5475cc189cbc0ad0bfdf74d8b032f52 Content-Type: multipart/alternative; boundary=ac6b4f883bfcb78cf0d185fdb6b96c0fe8dbf6ee48fdefb7591e8c24da63 --ac6b4f883bfcb78cf0d185fdb6b96c0fe8dbf6ee48fdefb7591e8c24da63 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed On Sat Dec 27, 2025 at 6:26 PM CET, Jelte Fennema-Nio wrote: > Attached is a version where I addressed all of those comemnts (the few > that I didn't or did in non-obvious ways are discussed at the end). I > also made a lot of improvements to the patchset: Rebased to resolve conflict with master. --ac6b4f883bfcb78cf0d185fdb6b96c0fe8dbf6ee48fdefb7591e8c24da63-- --96ced96246521a62ba81864c53b3a5475cc189cbc0ad0bfdf74d8b032f52 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v6-0001-meson-Include-TAP-tests-in-the-configuration-summ.patch Content-Type: text/x-patch; charset=utf-8; name=v6-0001-meson-Include-TAP-tests-in-the-configuration-summ.patch RnJvbSAzZTE4NTkxNGYyNTNkMjU4MDNjZTQ4NWU3NmNjOTA1YWQ5OTY2NGQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogRnJpLCA1IFNlcCAyMDI1IDE2OjM5OjA4IC0wNzAwClN1YmplY3Q6 IFtQQVRDSCB2NiAxLzddIG1lc29uOiBJbmNsdWRlIFRBUCB0ZXN0cyBpbiB0aGUgY29uZmlndXJh dGlvbiBzdW1tYXJ5CgouLi50byBtYWtlIGl0IG9idmlvdXMgd2hlbiB0aGV5J3ZlIGJlZW4gZW5h YmxlZC4gcHJvdmUgaXMgYWRkZWQgdG8gdGhlCmV4ZWN1dGFibGVzIGxpc3QgZm9yIGdvb2QgbWVh c3VyZS4KClRPRE86IGRvZXMgQXV0b2NvbmYgbmVlZCBzb21ldGhpbmcgc2ltaWxhcj8KClBlciBj b21wbGFpbnQgYnkgUGV0ZXIgRWlzZW50cmF1dC4KLS0tCiBtZXNvbi5idWlsZCB8IDkgKysrKysr KysrCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbWVzb24u YnVpbGQgYi9tZXNvbi5idWlsZAppbmRleCBkN2M1MTkzZDRjZS4uNTUxZTI3ZjVlYjMgMTAwNjQ0 Ci0tLSBhL21lc29uLmJ1aWxkCisrKyBiL21lc29uLmJ1aWxkCkBAIC0zOTgxLDYgKzM5ODEsNyBA QCBzdW1tYXJ5KAogICAgICdiaXNvbic6ICdAMEAgQDFAJy5mb3JtYXQoYmlzb24uZnVsbF9wYXRo KCksIGJpc29uX3ZlcnNpb24pLAogICAgICdkdHJhY2UnOiBkdHJhY2UsCiAgICAgJ2ZsZXgnOiAn QDBAIEAxQCcuZm9ybWF0KGZsZXguZnVsbF9wYXRoKCksIGZsZXhfdmVyc2lvbiksCisgICAgJ3By b3ZlJzogcHJvdmUsCiAgIH0sCiAgIHNlY3Rpb246ICdQcm9ncmFtcycsCiApCkBAIC00MDE3LDMg KzQwMTgsMTEgQEAgc3VtbWFyeSgKICAgc2VjdGlvbjogJ0V4dGVybmFsIGxpYnJhcmllcycsCiAg IGxpc3Rfc2VwOiAnICcsCiApCisKK3N1bW1hcnkoCisgIHsKKyAgICAndGFwJzogdGFwX3Rlc3Rz X2VuYWJsZWQsCisgIH0sCisgIHNlY3Rpb246ICdPdGhlciBmZWF0dXJlcycsCisgIGxpc3Rfc2Vw OiAnICcsCispCgpiYXNlLWNvbW1pdDogYjcwNTdlNDM0NjdmZjJkN2MwNGMzYWJjZjVlYzM1ZmNj N2RiOTYxMQotLSAKMi41Mi4wCgo= --96ced96246521a62ba81864c53b3a5475cc189cbc0ad0bfdf74d8b032f52 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v6-0002-Add-support-for-pytest-test-suites.patch Content-Type: text/x-patch; charset=utf-8; name=v6-0002-Add-support-for-pytest-test-suites.patch RnJvbSAxZjA5MWQ5NGE3NTIzYmU2MjMzY2U5M2UyODk1YzFmZDdlMTE5OGE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogV2VkLCAxMyBBdWcgMjAyNSAxMDo1ODo1NiAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggdjYgMi83XSBBZGQgc3VwcG9ydCBmb3IgcHl0ZXN0IHRlc3Qgc3VpdGVzCgpTcGVj aWZ5IC0tZW5hYmxlLXB5dGVzdC8tRHB5dGVzdD1lbmFibGVkIGF0IGNvbmZpZ3VyZSB0aW1lLiBU aGlzCmNvbnRhaW5zIG5vIFBvc3RncmVzIHRlc3QgbG9naWMgLS0gaXQgaXMganVzdCBhICJ2YW5p bGxhIiBweXRlc3QKc2tlbGV0b24uCgpJJ3ZlIHdyaXR0ZW4gYSBjdXN0b20gcGd0YXAgb3V0cHV0 IHBsdWdpbiwgdXNlZCBieSB0aGUgTWVzb24gbXRlc3QKcnVubmVyLCB0byBmdWxseSBjb250cm9s IHdoYXQgd2Ugc2VlIGR1cmluZyBDSSB0ZXN0IGZhaWx1cmVzLiBUaGUKcHl0ZXN0LXRhcCBwbHVn aW4gd291bGQgaGF2ZSBiZWVuIHByZWZlcmFibGUsIGJ1dCBpdCdzIG5vdyBpbgptYWludGVuYW5j ZSBtb2RlLCBhbmQgaXQgaGFzIHByb2JsZW1zIHdpdGggYWNjaWRlbnRhbGx5IHN1cHByZXNzaW5n CmltcG9ydGFudCBjb2xsZWN0aW9uIGZhaWx1cmVzLgoKVE9ET3M6Ci0gVGhlIENob2NvbGF0ZXkg Q0kgc2V0dXAgaXMgc3VicGFyLiBOZWVkIHRvIGZpbmQgYSB3YXkgdG8gYmxlc3MgdGhlCiAgZGVw ZW5kZW5jaWVzIGluIHVzZSByYXRoZXIgdGhhbiBwdWxsaW5nIGZyb20gcGlwLi4uIG9yIG1heWJl IHRoYXQgd2lsbAogIGJlIGRvbmUgYnkgdGhlIGltYWdlIGJha2VyLgoKQ28tYXV0aG9yZWQtYnk6 IEplbHRlIEZlbm5lbWEtTmlvIDxwb3N0Z3Jlc0BqZWx0ZWYubmw+Ci0tLQogLmNpcnJ1cy50YXNr cy55bWwgICAgICAgICAgIHwgIDM3ICsrKysrLS0KIC5naXRpZ25vcmUgICAgICAgICAgICAgICAg ICB8ICAgNCArCiBjb25maWd1cmUgICAgICAgICAgICAgICAgICAgfCAxNjYgKysrKysrKysrKysr KysrKysrKysrKysrKysrKystCiBjb25maWd1cmUuYWMgICAgICAgICAgICAgICAgfCAgMjkgKysr KystCiBtZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgfCAxMDcgKysrKysrKysrKysrKysrKysr KwogbWVzb25fb3B0aW9ucy50eHQgICAgICAgICAgIHwgICA4ICstCiBweXByb2plY3QudG9tbCAg ICAgICAgICAgICAgfCAgMjEgKysrKwogc3JjL01ha2VmaWxlLmdsb2JhbC5pbiAgICAgIHwgIDI5 ICsrKysrKwogc3JjL21ha2VmaWxlcy9tZXNvbi5idWlsZCAgIHwgICAyICsKIHNyYy90ZXN0L01h a2VmaWxlICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9tZXNvbi5idWlsZCAgICAgICAgfCAg IDEgKwogc3JjL3Rlc3QvcHl0ZXN0L01ha2VmaWxlICAgIHwgIDIwICsrKysKIHNyYy90ZXN0L3B5 dGVzdC9SRUFETUUgICAgICB8ICAgMSArCiBzcmMvdGVzdC9weXRlc3QvbWVzb24uYnVpbGQgfCAg MTYgKysrCiBzcmMvdGVzdC9weXRlc3QvcGd0YXAucHkgICAgfCAxOTggKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiBzcmMvdG9vbHMvdGVzdHdyYXAgICAgICAgICAgfCAgIDYg Ky0KIDE2IGZpbGVzIGNoYW5nZWQsIDYzMSBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCBweXByb2plY3QudG9tbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy90ZXN0L3B5dGVzdC9NYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVz dC9SRUFETUUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9weXRlc3QvbWVzb24uYnVpbGQK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9weXRlc3QvcGd0YXAucHkKCmRpZmYgLS1naXQg YS8uY2lycnVzLnRhc2tzLnltbCBiLy5jaXJydXMudGFza3MueW1sCmluZGV4IDAzOGQwNDNkMDBl Li5hODNhY2IzOWU5NyAxMDA2NDQKLS0tIGEvLmNpcnJ1cy50YXNrcy55bWwKKysrIGIvLmNpcnJ1 cy50YXNrcy55bWwKQEAgLTIxLDcgKzIxLDggQEAgZW52OgogCiAgICMgdGFyZ2V0IHRvIHRlc3Qs IGZvciBhbGwgYnV0IHdpbmRvd3MKICAgQ0hFQ0s6IGNoZWNrLXdvcmxkIFBST1ZFX0ZMQUdTPSRQ Uk9WRV9GTEFHUwotICBDSEVDS0ZMQUdTOiAtT3RhcmdldAorICAjIFRPRE8gd2VyZSB3ZSBhdm9p ZGluZyAtLWtlZXAtZ29pbmcgb24gcHVycG9zZT8KKyAgQ0hFQ0tGTEFHUzogLU90YXJnZXQgLS1r ZWVwLWdvaW5nCiAgIFBST1ZFX0ZMQUdTOiAtLXRpbWVyCiAgICMgQnVpbGQgdGVzdCBkZXBlbmRl bmNpZXMgYXMgcGFydCBvZiB0aGUgYnVpbGQgc3RlcCwgdG8gc2VlIGNvbXBpbGVyCiAgICMgZXJy b3JzL3dhcm5pbmdzIGluIG9uZSBwbGFjZS4KQEAgLTQ0LDYgKzQ1LDcgQEAgZW52OgogICAgIC1E bGRhcD1lbmFibGVkCiAgICAgLURzc2w9b3BlbnNzbAogICAgIC1EdGFwX3Rlc3RzPWVuYWJsZWQK KyAgICAtRHB5dGVzdD1lbmFibGVkCiAgICAgLURwbHBlcmw9ZW5hYmxlZAogICAgIC1EcGxweXRo b249ZW5hYmxlZAogICAgIC1EZG9jcz1lbmFibGVkCkBAIC0yMjUsNyArMjI3LDkgQEAgdGFzazoK ICAgICBjaG93biByb290OnBvc3RncmVzIC90bXAvY29yZXMKICAgICBzeXNjdGwga2Vybi5jb3Jl ZmlsZT0nL3RtcC9jb3Jlcy8lTi4lUC5jb3JlJwogICBzZXR1cF9hZGRpdGlvbmFsX3BhY2thZ2Vz X3NjcmlwdDogfAotICAgICNwa2cgaW5zdGFsbCAteSAuLi4KKyAgICBwa2cgaW5zdGFsbCAteSBc CisgICAgICBweTMxMS1wYWNrYWdpbmcgXAorICAgICAgcHkzMTEtcHl0ZXN0CiAKICAgIyBOQjog SW50ZW50aW9uYWxseSBidWlsZCB3aXRob3V0IC1EbGx2bS4gVGhlIGZyZWVic2QgaW1hZ2Ugc2l6 ZSBpcyBhbHJlYWR5CiAgICMgbGFyZ2UgZW5vdWdoIHRvIG1ha2UgVk0gc3RhcnR1cCBzbG93LCBh bmQgZXZlbiB3aXRob3V0IGxsdm0gZnJlZWJzZApAQCAtMzE3LDcgKzMyMSwxMCBAQCB0YXNrOgog ICAgICAgICAgIC1EcGFtPWVuYWJsZWQKIAogICAgICAgc2V0dXBfYWRkaXRpb25hbF9wYWNrYWdl c19zY3JpcHQ6IHwKLSAgICAgICAgI3BrZ2luIC15IGluc3RhbGwgLi4uCisgICAgICAgIHBrZ2lu IC15IGluc3RhbGwgXAorICAgICAgICAgIHB5MzEyLXBhY2thZ2luZyBcCisgICAgICAgICAgcHkz MTItdGVzdAorICAgICAgICBsbiAtcyAvdXNyL3BrZy9iaW4vcHl0ZXN0LTMuMTIgL3Vzci9wa2cv YmluL3B5dGVzdAogICAgICAgPDw6ICpuZXRic2RfdGFza190ZW1wbGF0ZQogCiAgICAgLSBuYW1l OiBPcGVuQlNEIC0gTWVzb24KQEAgLTMzNyw3ICszNDQsOSBAQCB0YXNrOgogICAgICAgICAgIC1E dXVpZD1lMmZzCiAKICAgICAgIHNldHVwX2FkZGl0aW9uYWxfcGFja2FnZXNfc2NyaXB0OiB8Ci0g ICAgICAgICNwa2dfYWRkIC1JIC4uLgorICAgICAgICBwa2dfYWRkIC1JIFwKKyAgICAgICAgICBw eTMtdGVzdCBcCisgICAgICAgICAgcHkzLXBhY2thZ2luZwogICAgICAgIyBBbHdheXMgY29yZSBk dW1wIHRvICR7Q09SRV9EVU1QX0RJUn0KICAgICAgIHNldF9jb3JlX2R1bXBfc2NyaXB0OiBzeXNj dGwgLXcga2Vybi5ub3N1aWRjb3JlZHVtcD0yCiAgICAgICA8PDogKm9wZW5ic2RfdGFza190ZW1w bGF0ZQpAQCAtNDk2LDggKzUwNSwxMCBAQCB0YXNrOgogICAgIEVPRgogCiAgIHNldHVwX2FkZGl0 aW9uYWxfcGFja2FnZXNfc2NyaXB0OiB8Ci0gICAgI2FwdC1nZXQgdXBkYXRlCi0gICAgI0RFQklB Tl9GUk9OVEVORD1ub25pbnRlcmFjdGl2ZSBhcHQtZ2V0IC15IGluc3RhbGwgLi4uCisgICAgYXB0 LWdldCB1cGRhdGUKKyAgICBERUJJQU5fRlJPTlRFTkQ9bm9uaW50ZXJhY3RpdmUgYXB0LWdldCAt eSBpbnN0YWxsIFwKKyAgICAgIHB5dGhvbjMtcHl0ZXN0IFwKKyAgICAgIHB5dGhvbjMtcGFja2Fn aW5nCiAKICAgbWF0cml4OgogICAgICMgU1BFQ0lBTDoKQEAgLTUyMSwxNCArNTMyLDE1IEBAIHRh c2s6CiAgICAgICAgICAgc2V0IC1lCiAgICAgICAgICAgLi9jb25maWd1cmUgXAogICAgICAgICAg ICAgLS1lbmFibGUtY2Fzc2VydCAtLWVuYWJsZS1pbmplY3Rpb24tcG9pbnRzIC0tZW5hYmxlLWRl YnVnIFwKLSAgICAgICAgICAgIC0tZW5hYmxlLXRhcC10ZXN0cyAtLWVuYWJsZS1ubHMgXAorICAg ICAgICAgICAgLS1lbmFibGUtdGFwLXRlc3RzIC0tZW5hYmxlLXB5dGVzdCAtLWVuYWJsZS1ubHMg XAogICAgICAgICAgICAgLS13aXRoLXNlZ3NpemUtYmxvY2tzPTYgXAogICAgICAgICAgICAgLS13 aXRoLWxpYm51bWEgXAogICAgICAgICAgICAgLS13aXRoLWxpYnVyaW5nIFwKICAgICAgICAgICAg IFwKICAgICAgICAgICAgICR7TElOVVhfQ09ORklHVVJFX0ZFQVRVUkVTfSBcCiAgICAgICAgICAg ICBcCi0gICAgICAgICAgICBDTEFORz0iY2NhY2hlIGNsYW5nIgorICAgICAgICAgICAgQ0xBTkc9 ImNjYWNoZSBjbGFuZyIgXAorICAgICAgICAgICAgUFlURVNUPSJlbnYgTERfUFJFTE9BRD0vbGli L3g4Nl82NC1saW51eC1nbnUvbGliYXNhbi5zby44IHB5dGVzdCIKICAgICAgICAgRU9GCiAgICAg ICBidWlsZF9zY3JpcHQ6IHN1IHBvc3RncmVzIC1jICJtYWtlIC1zIC1qJHtCVUlMRF9KT0JTfSB3 b3JsZC1iaW4iCiAgICAgICB1cGxvYWRfY2FjaGVzOiBjY2FjaGUKQEAgLTY2NSw2ICs2NzcsOCBA QCB0YXNrOgogICAgICAgcDUuMzQtaW8tdHR5CiAgICAgICBwNS4zNC1pcGMtcnVuCiAgICAgICBw eXRob24zMTIKKyAgICAgIHB5MzEyLXBhY2thZ2luZworICAgICAgcHkzMTItcHl0ZXN0CiAgICAg ICB0Y2wKICAgICAgIHpzdGQKIApAQCAtNzE0LDYgKzcyOCw3IEBAIHRhc2s6CiAgICAgc2ggc3Jj L3Rvb2xzL2NpL2NpX21hY3BvcnRzX3BhY2thZ2VzLnNoICRNQUNPU19QQUNLQUdFX0xJU1QKICAg ICAjIHN5c3RlbSBweXRob24gZG9lc24ndCBwcm92aWRlIGhlYWRlcnMKICAgICBzdWRvIC9vcHQv bG9jYWwvYmluL3BvcnQgc2VsZWN0IHB5dGhvbjMgcHl0aG9uMzEyCisgICAgc3VkbyAvb3B0L2xv Y2FsL2Jpbi9wb3J0IHNlbGVjdCBweXRlc3QgcHl0ZXN0MzEyCiAgICAgIyBNYWtlIG1hY3BvcnRz IGluc3RhbGwgdmlzaWJsZSBmb3Igc3Vic2VxdWVudCBzdGVwcwogICAgIGVjaG8gUEFUSD0vb3B0 L2xvY2FsL3NiaW4vOi9vcHQvbG9jYWwvYmluLzokUEFUSCA+PiAkQ0lSUlVTX0VOVgogICB1cGxv YWRfY2FjaGVzOiBtYWNwb3J0cwpAQCAtNzg3LDYgKzgwMiw4IEBAIHRhc2s6CiAgICAgICAtRGxk YXA9ZW5hYmxlZAogICAgICAgLURzc2w9b3BlbnNzbAogICAgICAgLUR0YXBfdGVzdHM9ZW5hYmxl ZAorICAgICAgLURweXRlc3Q9ZW5hYmxlZAorICAgICAgLURQWVRFU1Q9YzpcV2luZG93c1xzeXN0 ZW0zMlxjb25maWdcc3lzdGVtcHJvZmlsZVxBcHBEYXRhXFJvYW1pbmdcUHl0aG9uXFB5dGhvbjMx MFxTY3JpcHRzXHB5dGVzdC5leGUKICAgICAgIC1EcGxwZXJsPWVuYWJsZWQKICAgICAgIC1EcGxw eXRob249ZW5hYmxlZAogCkBAIC03OTUsOCArODEyLDEwIEBAIHRhc2s6CiAgIGRlcGVuZHNfb246 IFNhbml0eUNoZWNrCiAgIG9ubHlfaWY6ICRDSV9XSU5ET1dTX0VOQUJMRUQKIAorICAjIFhYWCBE b2VzIENob2NvbGF0ZXkgcmVhbGx5IG5vdCBoYXZlIGFueSBQeXRob24gcGFja2FnZSBpbnN0YWxs ZXJzPwogICBzZXR1cF9hZGRpdGlvbmFsX3BhY2thZ2VzX3NjcmlwdDogfAogICAgIFJFTSBjaG9j byBpbnN0YWxsIC15IC0tbm8tcHJvZ3Jlc3MgLi4uCisgICAgcGlwMyBpbnN0YWxsIC0tdXNlciBw YWNrYWdpbmcgcHl0ZXN0CiAKICAgc2V0dXBfaG9zdHNfZmlsZV9zY3JpcHQ6IHwKICAgICBlY2hv IDEyNy4wLjAuMSBwZy1sb2FkYmFsYW5jZXRlc3QgPj4gYzpcV2luZG93c1xTeXN0ZW0zMlxEcml2 ZXJzXGV0Y1xob3N0cwpAQCAtODU5LDcgKzg3OCw3IEBAIHRhc2s6CiAgICAgZm9sZGVyOiAke0ND QUNIRV9ESVJ9CiAKICAgc2V0dXBfYWRkaXRpb25hbF9wYWNrYWdlc19zY3JpcHQ6IHwKLSAgICBS RU0gQzpcbXN5czY0XHVzclxiaW5ccGFjbWFuLmV4ZSAtUyAtLW5vY29uZmlybSAuLi4KKyAgICBD Olxtc3lzNjRcdXNyXGJpblxwYWNtYW4uZXhlIC1TIC0tbm9jb25maXJtIG1pbmd3LXc2NC11Y3J0 LXg4Nl82NC1weXRob24tcHl0ZXN0CiAKICAgbWluZ3dfaW5mb19zY3JpcHQ6IHwKICAgICAlQkFT SCUgLWMgIndoZXJlIGdjYyIKZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmlu ZGV4IDRlOTExMzk1ZmUzLi5hOGM3M2JiYTliYSAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysg Yi8uZ2l0aWdub3JlCkBAIC0zMSw2ICszMSw4IEBAIHdpbjMydmVyLnJjCiAqLmV4ZQogbGliKmRs bC5kZWYKIGxpYioucGMKK19fcHljYWNoZV9fLworKi5lZ2ctaW5mby8KIAogIyBMb2NhbCBleGNs dWRlcyBpbiByb290IGRpcmVjdG9yeQogL0dOVW1ha2VmaWxlCkBAIC00MywzICs0NSw1IEBAIGxp YioucGMKIC9SZWxlYXNlLwogL3RtcF9pbnN0YWxsLwogL3BvcnRsb2NrLworLy52ZW52LworL3V2 LmxvY2sKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQppbmRleCAxNGFkMGE1MDA2 Zi4uZjI4ZGI0MjNjZDggMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQorKysgYi9jb25maWd1cmUKQEAg LTYzMCw2ICs2MzAsOCBAQCB2cGF0aF9idWlsZAogUEdfU1lTUk9PVAogUEdfVkVSU0lPTl9OVU0K IExERkxBR1NfRVhfQkUKK1VWCitQWVRFU1QKIFBST1ZFCiBEQlRPRVBVQgogRk9QCkBAIC03NzIs NiArNzc0LDcgQEAgQ0ZMQUdTCiBDQwogZW5hYmxlX2luamVjdGlvbl9wb2ludHMKIFBHX1RFU1Rf RVhUUkEKK2VuYWJsZV9weXRlc3QKIGVuYWJsZV90YXBfdGVzdHMKIGVuYWJsZV9kdHJhY2UKIERU UkFDRUZMQUdTCkBAIC04NTAsNiArODUzLDcgQEAgZW5hYmxlX3Byb2ZpbGluZwogZW5hYmxlX2Nv dmVyYWdlCiBlbmFibGVfZHRyYWNlCiBlbmFibGVfdGFwX3Rlc3RzCitlbmFibGVfcHl0ZXN0CiBl bmFibGVfaW5qZWN0aW9uX3BvaW50cwogd2l0aF9ibG9ja3NpemUKIHdpdGhfc2Vnc2l6ZQpAQCAt MTU1MCw3ICsxNTU0LDEwIEBAIE9wdGlvbmFsIEZlYXR1cmVzOgogICAtLWVuYWJsZS1wcm9maWxp bmcgICAgICBidWlsZCB3aXRoIHByb2ZpbGluZyBlbmFibGVkCiAgIC0tZW5hYmxlLWNvdmVyYWdl ICAgICAgIGJ1aWxkIHdpdGggY292ZXJhZ2UgdGVzdGluZyBpbnN0cnVtZW50YXRpb24KICAgLS1l bmFibGUtZHRyYWNlICAgICAgICAgYnVpbGQgd2l0aCBEVHJhY2Ugc3VwcG9ydAotICAtLWVuYWJs ZS10YXAtdGVzdHMgICAgICBlbmFibGUgVEFQIHRlc3RzIChyZXF1aXJlcyBQZXJsIGFuZCBJUEM6 OlJ1bikKKyAgLS1lbmFibGUtdGFwLXRlc3RzICAgICAgZW5hYmxlIChQZXJsLWJhc2VkKSBUQVAg dGVzdHMgKHJlcXVpcmVzIFBlcmwgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgIElQQzo6 UnVuKQorICAtLWVuYWJsZS1weXRlc3QgICAgICAgICBlbmFibGUgKFB5dGhvbi1iYXNlZCkgcHl0 ZXN0IHN1aXRlcyAocmVxdWlyZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUHl0aG9uKQog ICAtLWVuYWJsZS1pbmplY3Rpb24tcG9pbnRzCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu YWJsZSBpbmplY3Rpb24gcG9pbnRzIChmb3IgdGVzdGluZykKICAgLS1lbmFibGUtZGVwZW5kICAg ICAgICAgdHVybiBvbiBhdXRvbWF0aWMgZGVwZW5kZW5jeSB0cmFja2luZwpAQCAtMzYzMiw3ICsz NjM5LDcgQEAgZmkKIAogCiAjCi0jIFRBUCB0ZXN0cworIyBUZXN0IGZyYW1ld29ya3MKICMKIAog CkBAIC0zNjYwLDYgKzM2NjcsMzIgQEAgZmkKIAogCiAKKworIyBDaGVjayB3aGV0aGVyIC0tZW5h YmxlLXB5dGVzdCB3YXMgZ2l2ZW4uCitpZiB0ZXN0ICIke2VuYWJsZV9weXRlc3Qrc2V0fSIgPSBz ZXQ7IHRoZW4gOgorICBlbmFibGV2YWw9JGVuYWJsZV9weXRlc3Q7CisgIGNhc2UgJGVuYWJsZXZh bCBpbgorICAgIHllcykKKyAgICAgIDoKKyAgICAgIDs7CisgICAgbm8pCisgICAgICA6CisgICAg ICA7OworICAgICopCisgICAgICBhc19mbl9lcnJvciAkPyAibm8gYXJndW1lbnQgZXhwZWN0ZWQg Zm9yIC0tZW5hYmxlLXB5dGVzdCBvcHRpb24iICIkTElORU5PIiA1CisgICAgICA7OworICBlc2Fj CisKK2Vsc2UKKyAgZW5hYmxlX3B5dGVzdD1ubworCitmaQorCisKKworCisKKwogIwogIyBJbmpl Y3Rpb24gcG9pbnRzCiAjCkBAIC0xOTIyOSw2ICsxOTI2MiwxMzUgQEAgJGFzX2VjaG8gIiRtb2R1 bGVzdGRlcnIiID4mNjsgfQogICBmaQogZmkKIAoraWYgdGVzdCAiJGVuYWJsZV9weXRlc3QiID0g eWVzOyB0aGVuCisgIGlmIHRlc3QgLXogIiRQWVRFU1QiOyB0aGVuCisgIGZvciBhY19wcm9nIGlu IHB5dGVzdCBweS50ZXN0CitkbworICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19w cm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KK3NldCBkdW1teSAk YWNfcHJvZzsgYWNfd29yZD0kMgoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y ICRhY193b3JkLi4uICIgPiY2OyB9CitpZiAke2FjX2N2X3BhdGhfUFlURVNUKzp9IGZhbHNlOyB0 aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgY2FzZSAkUFlURVNU IGluCisgIFtcXC9dKiB8ID86W1xcL10qKQorICBhY19jdl9wYXRoX1BZVEVTVD0iJFBZVEVTVCIg IyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisgIDs7CisgICop CisgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4g JFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNf ZGlyPS4KKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9u czsgZG8KKyAgaWYgYXNfZm5fZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IjsgdGhlbgorICAgIGFjX2N2X3BhdGhfUFlURVNUPSIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IgorICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5k ICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorICAgIGJyZWFrIDIKKyAgZmkKK2Rv bmUKKyAgZG9uZQorSUZTPSRhc19zYXZlX0lGUworCisgIDs7Citlc2FjCitmaQorUFlURVNUPSRh Y19jdl9wYXRoX1BZVEVTVAoraWYgdGVzdCAtbiAiJFBZVEVTVCI7IHRoZW4KKyAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRQWVRFU1QiID4mNQorJGFz X2VjaG8gIiRQWVRFU1QiID4mNjsgfQorZWxzZQorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorJGFzX2VjaG8gIm5vIiA+JjY7IH0KK2Zp CisKKworICB0ZXN0IC1uICIkUFlURVNUIiAmJiBicmVhaworZG9uZQorCitlbHNlCisgICMgUmVw b3J0IHRoZSB2YWx1ZSBvZiBQWVRFU1QgaW4gY29uZmlndXJlJ3Mgb3V0cHV0IGluIGFsbCBjYXNl cy4KKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBm b3IgUFlURVNUIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBQWVRFU1QuLi4gIiA+JjY7 IH0KKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRQ WVRFU1QiID4mNQorJGFzX2VjaG8gIiRQWVRFU1QiID4mNjsgfQorZmkKKworICBpZiB0ZXN0IC16 ICIkUFlURVNUIjsgdGhlbgorICAgICMgSWYgcHl0ZXN0IG5vdCBmb3VuZCwgdHJ5IGluc3RhbGxp bmcgd2l0aCB1dgorICAgIGlmIHRlc3QgLXogIiRVViI7IHRoZW4KKyAgZm9yIGFjX3Byb2cgaW4g dXYKK2RvCisgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBj YW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorc2V0IGR1bW15ICRhY19wcm9nOyBhY193 b3JkPSQyCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5n IGZvciAkYWNfd29yZCIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4g IiA+JjY7IH0KK2lmICR7YWNfY3ZfcGF0aF9VVis6fSBmYWxzZTsgdGhlbiA6CisgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CitlbHNlCisgIGNhc2UgJFVWIGluCisgIFtcXC9dKiB8ID86W1xc L10qKQorICBhY19jdl9wYXRoX1VWPSIkVVYiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0 ZXN0IHdpdGggYSBwYXRoLgorICA7OworICAqKQorICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZT CisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgICAgZm9yIGFjX2V4ZWNfZXh0IGlu ICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisgIGlmIGFzX2ZuX2V4ZWN1dGFibGVf cCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KKyAgICBhY19jdl9wYXRoX1VW PSIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IgorICAgICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4m NQorICAgIGJyZWFrIDIKKyAgZmkKK2RvbmUKKyAgZG9uZQorSUZTPSRhc19zYXZlX0lGUworCisg IDs7Citlc2FjCitmaQorVVY9JGFjX2N2X3BhdGhfVVYKK2lmIHRlc3QgLW4gIiRVViI7IHRoZW4K KyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRVViIg PiY1CiskYXNfZWNobyAiJFVWIiA+JjY7IH0KK2Vsc2UKKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyRhc19lY2hvICJubyIgPiY2OyB9 CitmaQorCisKKyAgdGVzdCAtbiAiJFVWIiAmJiBicmVhaworZG9uZQorCitlbHNlCisgICMgUmVw b3J0IHRoZSB2YWx1ZSBvZiBVViBpbiBjb25maWd1cmUncyBvdXRwdXQgaW4gYWxsIGNhc2VzLgor ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBV ViIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3IgVVYuLi4gIiA+JjY7IH0KKyAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRVViIgPiY1CiskYXNf ZWNobyAiJFVWIiA+JjY7IH0KK2ZpCisKKyAgICBpZiB0ZXN0IC1uICIkVVYiOyB0aGVuCisgICAg ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRo ZXIgdXYgY2FuIGluc3RhbGwgcHl0ZXN0IGRlcGVuZGVuY2llcyIgPiY1CiskYXNfZWNob19uICJj aGVja2luZyB3aGV0aGVyIHV2IGNhbiBpbnN0YWxsIHB5dGVzdCBkZXBlbmRlbmNpZXMuLi4gIiA+ JjY7IH0KKyAgICAgIGlmICIkVVYiIHBpcCBpbnN0YWxsICIkc3JjZGlyIiA+JjUgMj4mMTsgdGhl bgorICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs dDogeWVzIiA+JjUKKyRhc19lY2hvICJ5ZXMiID4mNjsgfQorICAgICAgICBQWVRFU1Q9IiRVViBy dW4gcHl0ZXN0IgorICAgICAgZWxzZQorICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorJGFzX2VjaG8gIm5vIiA+JjY7IH0KKyAg ICAgICAgYXNfZm5fZXJyb3IgJD8gInB5dGVzdCBub3QgZm91bmQgYW5kIHV2IGZhaWxlZCB0byBp bnN0YWxsIGRlcGVuZGVuY2llcyIgIiRMSU5FTk8iIDUKKyAgICAgIGZpCisgICAgZWxzZQorICAg ICAgYXNfZm5fZXJyb3IgJD8gInB5dGVzdCBub3QgZm91bmQiICIkTElORU5PIiA1CisgICAgZmkK KyAgZmkKK2ZpCisKICMgSWYgY29tcGlsZXIgd2lsbCB0YWtlIC1XbCwtLWFzLW5lZWRlZCAob3Ig dmFyaW91cyBwbGF0Zm9ybS1zcGVjaWZpYwogIyBzcGVsbGluZ3MgdGhlcmVvZikgdGhlbiBhZGQg dGhhdCB0byBMREZMQUdTLiAgVGhpcyBpcyBtdWNoIGVhc2llciB0aGFuCiAjIHRyeWluZyB0byBm aWx0ZXIgTElCUyB0byB0aGUgbWluaW11bSBmb3IgZWFjaCBleGVjdXRhYmxlLgpkaWZmIC0tZ2l0 IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDAxYjNiYmMxYmU4Li44MjI2ZTJh MTM0MiAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtMjI1 LDExICsyMjUsMTYgQEAgQUNfU1VCU1QoRFRSQUNFRkxBR1MpXSkKIEFDX1NVQlNUKGVuYWJsZV9k dHJhY2UpCiAKICMKLSMgVEFQIHRlc3RzCisjIFRlc3QgZnJhbWV3b3JrcwogIwogUEdBQ19BUkdf Qk9PTChlbmFibGUsIHRhcC10ZXN0cywgbm8sCi0gICAgICAgICAgICAgIFtlbmFibGUgVEFQIHRl c3RzIChyZXF1aXJlcyBQZXJsIGFuZCBJUEM6OlJ1bildKQorICAgICAgICAgICAgICBbZW5hYmxl IChQZXJsLWJhc2VkKSBUQVAgdGVzdHMgKHJlcXVpcmVzIFBlcmwgYW5kIElQQzo6UnVuKV0pCiBB Q19TVUJTVChlbmFibGVfdGFwX3Rlc3RzKQorCitQR0FDX0FSR19CT09MKGVuYWJsZSwgcHl0ZXN0 LCBubywKKyAgICAgICAgICAgICAgW2VuYWJsZSAoUHl0aG9uLWJhc2VkKSBweXRlc3Qgc3VpdGVz IChyZXF1aXJlcyBQeXRob24pXSkKK0FDX1NVQlNUKGVuYWJsZV9weXRlc3QpCisKIEFDX0FSR19W QVIoUEdfVEVTVF9FWFRSQSwKICAgICAgICAgICAgW2VuYWJsZSBzZWxlY3RlZCBleHRyYSB0ZXN0 cyAob3ZlcnJpZGRlbiBhdCBydW50aW1lIGJ5IFBHX1RFU1RfRVhUUkEgZW52aXJvbm1lbnQgdmFy aWFibGUpXSkKIApAQCAtMjQxMiw2ICsyNDE3LDI2IEBAIGlmIHRlc3QgIiRlbmFibGVfdGFwX3Rl c3RzIiA9IHllczsgdGhlbgogICBmaQogZmkKIAoraWYgdGVzdCAiJGVuYWJsZV9weXRlc3QiID0g eWVzOyB0aGVuCisgIFBHQUNfUEFUSF9QUk9HUyhQWVRFU1QsIHB5dGVzdCBweS50ZXN0KQorICBp ZiB0ZXN0IC16ICIkUFlURVNUIjsgdGhlbgorICAgICMgSWYgcHl0ZXN0IG5vdCBmb3VuZCwgdHJ5 IGluc3RhbGxpbmcgd2l0aCB1dgorICAgIFBHQUNfUEFUSF9QUk9HUyhVViwgdXYpCisgICAgaWYg dGVzdCAtbiAiJFVWIjsgdGhlbgorICAgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHV2IGNh biBpbnN0YWxsIHB5dGVzdCBkZXBlbmRlbmNpZXNdKQorICAgICAgaWYgIiRVViIgcGlwIGluc3Rh bGwgIiRzcmNkaXIiID4mQVNfTUVTU0FHRV9MT0dfRkQgMj4mMTsgdGhlbgorICAgICAgICBBQ19N U0dfUkVTVUxUKFt5ZXNdKQorICAgICAgICBQWVRFU1Q9IiRVViBydW4gcHl0ZXN0IgorICAgICAg ZWxzZQorICAgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCisgICAgICAgIEFDX01TR19FUlJPUihb cHl0ZXN0IG5vdCBmb3VuZCBhbmQgdXYgZmFpbGVkIHRvIGluc3RhbGwgZGVwZW5kZW5jaWVzXSkK KyAgICAgIGZpCisgICAgZWxzZQorICAgICAgQUNfTVNHX0VSUk9SKFtweXRlc3Qgbm90IGZvdW5k XSkKKyAgICBmaQorICBmaQorZmkKKwogIyBJZiBjb21waWxlciB3aWxsIHRha2UgLVdsLC0tYXMt bmVlZGVkIChvciB2YXJpb3VzIHBsYXRmb3JtLXNwZWNpZmljCiAjIHNwZWxsaW5ncyB0aGVyZW9m KSB0aGVuIGFkZCB0aGF0IHRvIExERkxBR1MuICBUaGlzIGlzIG11Y2ggZWFzaWVyIHRoYW4KICMg dHJ5aW5nIHRvIGZpbHRlciBMSUJTIHRvIHRoZSBtaW5pbXVtIGZvciBlYWNoIGV4ZWN1dGFibGUu CmRpZmYgLS1naXQgYS9tZXNvbi5idWlsZCBiL21lc29uLmJ1aWxkCmluZGV4IDU1MWUyN2Y1ZWIz Li4yZWMxMjUxMTZhMiAxMDA2NDQKLS0tIGEvbWVzb24uYnVpbGQKKysrIGIvbWVzb24uYnVpbGQK QEAgLTE3MTEsNiArMTcxMSw0MSBAQCBlbmRpZgogCiAKIAorIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIExpYnJhcnk6IHB5 dGVzdAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisKK3B5dGVzdF9lbmFibGVkID0gZmFsc2UKK3B5dGVzdCA9IG5vdF9mb3Vu ZF9kZXAKK3V2ID0gbm90X2ZvdW5kX2RlcAordXNlX3V2ID0gZmFsc2UKKworcHl0ZXN0b3B0ID0g Z2V0X29wdGlvbigncHl0ZXN0JykKK2lmIG5vdCBweXRlc3RvcHQuZGlzYWJsZWQoKQorICBweXRl c3QgPSBmaW5kX3Byb2dyYW0oZ2V0X29wdGlvbignUFlURVNUJyksIG5hdGl2ZTogdHJ1ZSwgcmVx dWlyZWQ6IGZhbHNlKQorCisgICMgSWYgcHl0ZXN0IG5vdCBmb3VuZCwgdHJ5IGluc3RhbGxpbmcg d2l0aCB1dgorICBpZiBub3QgcHl0ZXN0LmZvdW5kKCkKKyAgICB1diA9IGZpbmRfcHJvZ3JhbSgn dXYnLCBuYXRpdmU6IHRydWUsIHJlcXVpcmVkOiBmYWxzZSkKKyAgICBpZiB1di5mb3VuZCgpCisg ICAgICBtZXNzYWdlKCdJbnN0YWxsaW5nIHB5dGVzdCBkZXBlbmRlbmNpZXMgd2l0aCB1di4uLicp CisgICAgICB1dl9pbnN0YWxsID0gcnVuX2NvbW1hbmQodXYsICdwaXAnLCAnaW5zdGFsbCcsIG1l c29uLnByb2plY3Rfc291cmNlX3Jvb3QoKSwgY2hlY2s6IGZhbHNlKQorICAgICAgaWYgdXZfaW5z dGFsbC5yZXR1cm5jb2RlKCkgPT0gMAorICAgICAgICB1c2VfdXYgPSB0cnVlCisgICAgICAgIHB5 dGVzdF9lbmFibGVkID0gdHJ1ZQorICAgICAgZW5kaWYKKyAgICBlbmRpZgorICBlbHNlCisgICAg cHl0ZXN0X2VuYWJsZWQgPSB0cnVlCisgIGVuZGlmCisKKyAgaWYgbm90IHB5dGVzdF9lbmFibGVk IGFuZCBweXRlc3RvcHQuZW5hYmxlZCgpCisgICAgZXJyb3IoJ3B5dGVzdCBub3QgZm91bmQnKQor ICBlbmRpZgorZW5kaWYKKworCisKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBMaWJyYXJ5OiB6c3RkCiAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKQEAg LTM4MDgsNiArMzg0Myw3NiBAQCBmb3JlYWNoIHRlc3RfZGlyIDogdGVzdHMKICAgICAgICAgKQog ICAgICAgZW5kZm9yZWFjaAogICAgICAgaW5zdGFsbF9zdWl0ZXMgKz0gdGVzdF9ncm91cAorICAg IGVsaWYga2luZCA9PSAncHl0ZXN0JworICAgICAgdGVzdHdyYXBfcHl0ZXN0ID0gdGVzdHdyYXBf YmFzZQorICAgICAgaWYgbm90IHB5dGVzdF9lbmFibGVkCisgICAgICAgIHRlc3R3cmFwX3B5dGVz dCArPSBbJy0tc2tpcCcsICdweXRlc3Qgbm90IGVuYWJsZWQnXQorICAgICAgZW5kaWYKKworICAg ICAgaWYgdXNlX3V2CisgICAgICAgIHRlc3RfY29tbWFuZCA9IFt1di5mdWxsX3BhdGgoKSwgJ3J1 bicsICdweXRlc3QnXQorICAgICAgZWxpZiBweXRlc3RfZW5hYmxlZAorICAgICAgICB0ZXN0X2Nv bW1hbmQgPSBbcHl0ZXN0LmZ1bGxfcGF0aCgpXQorICAgICAgZWxzZQorICAgICAgICAjIER1bW15 IHZhbHVlIC0gdGVzdCB3aWxsIGJlIHNraXBwZWQgYW55d2F5CisgICAgICAgIHRlc3RfY29tbWFu ZCA9IFsncHl0ZXN0J10KKyAgICAgIGVuZGlmCisgICAgICB0ZXN0X2NvbW1hbmQgKz0gWworICAg ICAgICAnLWMnLCBtZXNvbi5wcm9qZWN0X3NvdXJjZV9yb290KCkgLyAncHlwcm9qZWN0LnRvbWwn LAorICAgICAgICAnLS12ZXJib3NlJywKKyAgICAgICAgJy1wJywgJ3BndGFwJywgICMgZW5hYmxl IG91ciB0ZXN0IHJlcG9ydGVyIHBsdWdpbgorICAgICAgICAnLXJhJywgICMgc2hvdyBza2lwcGVk IGFuZCB4ZmFpbGVkIHRlc3RzIHRvbworICAgICAgXQorCisgICAgICAjIEFkZCB0ZW1wb3Jhcnkg aW5zdGFsbCwgdGhlIGJ1aWxkIGRpcmVjdG9yeSBmb3Igbm9uLWluc3RhbGxlZCBiaW5hcmllcyBh bmQKKyAgICAgICMgYWxzbyB0ZXN0LyBmb3Igbm9uLWluc3RhbGxlZCB0ZXN0IGJpbmFyaWVzIGJ1 aWx0IHNlcGFyYXRlbHkuCisgICAgICBlbnYgPSB0ZXN0X2VudgorICAgICAgZW52LnByZXBlbmQo J1BBVEgnLCB0ZW1wX2luc3RhbGxfYmluZGlyLCB0ZXN0X2RpclsnYmQnXSwgdGVzdF9kaXJbJ2Jk J10gLyAndGVzdCcpCisgICAgICB0ZW1wX2luc3RhbGxfZGF0YWRpciA9ICdAMEBAMUAnLmZvcm1h dCh0ZXN0X2luc3RhbGxfZGVzdGRpciwgZGlyX3ByZWZpeCAvIGRpcl9kYXRhKQorICAgICAgZW52 LnNldCgnc2hhcmVfY29udHJpYl9kaXInLCB0ZW1wX2luc3RhbGxfZGF0YWRpciAvICdjb250cmli JykKKyAgICAgICMgV2UgYWxzbyBjb25maWd1cmUgdGhlIHNhbWUgUFlUSE9OUEFUSCBpbiB0aGUg cHl0ZXN0IHNldHRpbmdzIGluCisgICAgICAjIHB5cHJvamVjdC50b21sLCBidXQgcHl0ZXN0IHZl cnNpb25zIGJlbG93IDguNCBvbmx5IGFjdHVhbGx5IHVzZSB0aGF0CisgICAgICAjIHZhbHVlIGFm dGVyIHBsdWdpbiBsb2FkaW5nLiBTbyB3ZSBuZWVkIHRvIGNvbmZpZ3VyZSBpdCBoZXJlIHRvby4g VGhpcworICAgICAgIyB3b24ndCBoZWxwIHBlb3BsZSBtYW51YWxseSBydW5uaW5nIHB5dGVzdCBv dXRzaWRlIG9mIG1lc29uL21ha2UsIGJ1dCB3ZQorICAgICAgIyBleHBlY3QgdGhvc2UgdG8gdXNl IGEgcmVjZW50IGVub3VnaCB2ZXJzaW9uIG9mIHB5dGVzdCBhbnl3YXkgKGFuZCBpZgorICAgICAg IyBub3QgdGhleSBjYW4gbWFudWFsbHkgY29uZmlndXJlIFBZVEhPTlBBVEggdG9vKS4KKyAgICAg IGVudi5wcmVwZW5kKCdQWVRIT05QQVRIJywgbWVzb24ucHJvamVjdF9zb3VyY2Vfcm9vdCgpIC8g J3NyYycgLyAndGVzdCcgLyAncHl0ZXN0JykKKworICAgICAgZm9yZWFjaCBuYW1lLCB2YWx1ZSA6 IHQuZ2V0KCdlbnYnLCB7fSkKKyAgICAgICAgZW52LnNldChuYW1lLCB2YWx1ZSkKKyAgICAgIGVu ZGZvcmVhY2gKKworICAgICAgdGVzdF9ncm91cCA9IHRlc3RfZGlyWyduYW1lJ10KKyAgICAgIHRl c3Rfa3dhcmdzID0geworICAgICAgICAncHJvdG9jb2wnOiAndGFwJywKKyAgICAgICAgJ3N1aXRl JzogdGVzdF9ncm91cCwKKyAgICAgICAgJ3RpbWVvdXQnOiAxMDAwLAorICAgICAgICAnZGVwZW5k cyc6IHRlc3RfZGVwcyArIHQuZ2V0KCdkZXBzJywgW10pLAorICAgICAgICAnZW52JzogZW52LAor ICAgICAgfSArIHQuZ2V0KCd0ZXN0X2t3YXJncycsIHt9KQorCisgICAgICBmb3JlYWNoIG9uZXRl c3QgOiB0Wyd0ZXN0cyddCisgICAgICAgICMgTWFrZSB0ZXN0IG5hbWVzIHByZXR0aWVyLCByZW1v dmUgcHl0LyBhbmQgLnB5CisgICAgICAgIG9uZXRlc3RfcCA9IG9uZXRlc3QKKyAgICAgICAgaWYg b25ldGVzdF9wLnN0YXJ0c3dpdGgoJ3B5dC8nKQorICAgICAgICAgIG9uZXRlc3RfcCA9IG9uZXRl c3Quc3BsaXQoJ3B5dC8nKVsxXQorICAgICAgICBlbmRpZgorICAgICAgICBpZiBvbmV0ZXN0X3Au ZW5kc3dpdGgoJy5weScpCisgICAgICAgICAgb25ldGVzdF9wID0gZnMuc3RlbShvbmV0ZXN0X3Ap CisgICAgICAgIGVuZGlmCisKKyAgICAgICAgdGVzdCh0ZXN0X2RpclsnbmFtZSddIC8gb25ldGVz dF9wLAorICAgICAgICAgIHB5dGhvbiwKKyAgICAgICAgICBrd2FyZ3M6IHRlc3Rfa3dhcmdzLAor ICAgICAgICAgIGFyZ3M6IHRlc3R3cmFwX3B5dGVzdCArIFsKKyAgICAgICAgICAgICctLXRlc3Rn cm91cCcsIHRlc3RfZGlyWyduYW1lJ10sCisgICAgICAgICAgICAnLS10ZXN0bmFtZScsIG9uZXRl c3RfcCwKKyAgICAgICAgICAgICctLScsIHRlc3RfY29tbWFuZCwKKyAgICAgICAgICAgIHRlc3Rf ZGlyWydzZCddIC8gb25ldGVzdCwKKyAgICAgICAgICBdLAorICAgICAgICApCisgICAgICBlbmRm b3JlYWNoCisgICAgICBpbnN0YWxsX3N1aXRlcyArPSB0ZXN0X2dyb3VwCiAgICAgZWxzZQogICAg ICAgZXJyb3IoJ3Vua25vd24ga2luZCBAMEAgb2YgdGVzdCBpbiBAMUAnLmZvcm1hdChraW5kLCB0 ZXN0X2Rpclsnc2QnXSkpCiAgICAgZW5kaWYKQEAgLTM5ODIsNiArNDA4Nyw3IEBAIHN1bW1hcnko CiAgICAgJ2R0cmFjZSc6IGR0cmFjZSwKICAgICAnZmxleCc6ICdAMEAgQDFAJy5mb3JtYXQoZmxl eC5mdWxsX3BhdGgoKSwgZmxleF92ZXJzaW9uKSwKICAgICAncHJvdmUnOiBwcm92ZSwKKyAgICAn cHl0ZXN0JzogcHl0ZXN0LAogICB9LAogICBzZWN0aW9uOiAnUHJvZ3JhbXMnLAogKQpAQCAtNDAy Miw2ICs0MTI4LDcgQEAgc3VtbWFyeSgKIHN1bW1hcnkoCiAgIHsKICAgICAndGFwJzogdGFwX3Rl c3RzX2VuYWJsZWQsCisgICAgJ3B5dGVzdCc6IHB5dGVzdF9lbmFibGVkLAogICB9LAogICBzZWN0 aW9uOiAnT3RoZXIgZmVhdHVyZXMnLAogICBsaXN0X3NlcDogJyAnLApkaWZmIC0tZ2l0IGEvbWVz b25fb3B0aW9ucy50eHQgYi9tZXNvbl9vcHRpb25zLnR4dAppbmRleCAwNmJmNTYyN2QzYy4uODhm MjJlNjk5ZDkgMTAwNjQ0Ci0tLSBhL21lc29uX29wdGlvbnMudHh0CisrKyBiL21lc29uX29wdGlv bnMudHh0CkBAIC00MSw3ICs0MSwxMCBAQCBvcHRpb24oJ2Nhc3NlcnQnLCB0eXBlOiAnYm9vbGVh bicsIHZhbHVlOiBmYWxzZSwKICAgZGVzY3JpcHRpb246ICdFbmFibGUgYXNzZXJ0aW9uIGNoZWNr cyAoZm9yIGRlYnVnZ2luZyknKQogCiBvcHRpb24oJ3RhcF90ZXN0cycsIHR5cGU6ICdmZWF0dXJl JywgdmFsdWU6ICdhdXRvJywKLSAgZGVzY3JpcHRpb246ICdFbmFibGUgVEFQIHRlc3RzJykKKyAg ZGVzY3JpcHRpb246ICdFbmFibGUgKFBlcmwtYmFzZWQpIFRBUCB0ZXN0cycpCisKK29wdGlvbign cHl0ZXN0JywgdHlwZTogJ2ZlYXR1cmUnLCB2YWx1ZTogJ2F1dG8nLAorICBkZXNjcmlwdGlvbjog J0VuYWJsZSAoUHl0aG9uLWJhc2VkKSBweXRlc3Qgc3VpdGVzJykKIAogb3B0aW9uKCdpbmplY3Rp b25fcG9pbnRzJywgdHlwZTogJ2Jvb2xlYW4nLCB2YWx1ZTogZmFsc2UsCiAgIGRlc2NyaXB0aW9u OiAnRW5hYmxlIGluamVjdGlvbiBwb2ludHMnKQpAQCAtMTk1LDYgKzE5OCw5IEBAIG9wdGlvbign UEVSTCcsIHR5cGU6ICdzdHJpbmcnLCB2YWx1ZTogJ3BlcmwnLAogb3B0aW9uKCdQUk9WRScsIHR5 cGU6ICdzdHJpbmcnLCB2YWx1ZTogJ3Byb3ZlJywKICAgZGVzY3JpcHRpb246ICdQYXRoIHRvIHBy b3ZlIGJpbmFyeScpCiAKK29wdGlvbignUFlURVNUJywgdHlwZTogJ2FycmF5JywgdmFsdWU6IFsn cHl0ZXN0JywgJ3B5LnRlc3QnXSwKKyAgZGVzY3JpcHRpb246ICdQYXRoIHRvIHB5dGVzdCBiaW5h cnknKQorCiBvcHRpb24oJ1BZVEhPTicsIHR5cGU6ICdhcnJheScsIHZhbHVlOiBbJ3B5dGhvbjMn LCAncHl0aG9uJ10sCiAgIGRlc2NyaXB0aW9uOiAnUGF0aCB0byBweXRob24gYmluYXJ5JykKIApk aWZmIC0tZ2l0IGEvcHlwcm9qZWN0LnRvbWwgYi9weXByb2plY3QudG9tbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjBhYmI0ZDA2NTUKLS0tIC9kZXYvbnVsbAorKysg Yi9weXByb2plY3QudG9tbApAQCAtMCwwICsxLDIxIEBACitbcHJvamVjdF0KK25hbWUgPSAicG9z dGdyZXNxbC1oYWNrZXJzLXRvb2xpbmciCit2ZXJzaW9uID0gIjAuMS4wIgorZGVzY3JpcHRpb24g PSAiUHl0ZXN0IGluZnJhc3RydWN0dXJlIGZvciBQb3N0Z3JlU1FMIgorcmVxdWlyZXMtcHl0aG9u ID0gIj49My42IgorZGVwZW5kZW5jaWVzID0gWworICAgICMgcHl0ZXN0IDcuMCB3YXMgdGhlIGxh c3QgdmVyc2lvbiB3aGljaCBzdXBwb3J0ZWQgUHl0aG9uIDMuNiwgYnV0IHRoZSBCU0RzCisgICAg IyBoYXZlIHN0YXJ0ZWQgcHV0dGluZyA4LnggaW50byBwb3J0cywgc28gd2Ugc3VwcG9ydCBib3Ro LiAocHl0ZXN0IDggY2FuIGJlCisgICAgIyB1c2VkIHRocm91Z2hvdXQgb25jZSB3ZSBkcm9wIHN1 cHBvcnQgZm9yIFB5dGhvbiAzLjcuKQorICAgICJweXRlc3QgPj0gNy4wLCA8IDEwIiwKKworICAg ICMgQW55IG90aGVyIGRlcGVuZGVuY2llcyBhcmUgZWZmZWN0aXZlbHkgb3B0aW9uYWwgKGFkZGVk IGJlbG93KS4gV2UgaW1wb3J0CisgICAgIyB0aGVzZSBsaWJyYXJpZXMgdXNpbmcgcHl0ZXN0Lmlt cG9ydG9yc2tpcCgpLiBTbyB0ZXN0cyB3aWxsIGJlIHNraXBwZWQgaWYKKyAgICAjIHRoZXkgYXJl IG5vdCBhdmFpbGFibGUuCitdCisKK1t0b29sLnB5dGVzdC5pbmlfb3B0aW9uc10KK21pbnZlcnNp b24gPSAiNy4wIgorCisjIENvbW1vbiB0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGhlcmUuCitweXRo b25wYXRoID0gWyJzcmMvdGVzdC9weXRlc3QiXQpkaWZmIC0tZ2l0IGEvc3JjL01ha2VmaWxlLmds b2JhbC5pbiBiL3NyYy9NYWtlZmlsZS5nbG9iYWwuaW4KaW5kZXggMzcxY2Q3ZWJhMmMuLjE2MGNk ZmZkNGYxIDEwMDY0NAotLS0gYS9zcmMvTWFrZWZpbGUuZ2xvYmFsLmluCisrKyBiL3NyYy9NYWtl ZmlsZS5nbG9iYWwuaW4KQEAgLTIxMSw2ICsyMTEsNyBAQCBlbmFibGVfZHRyYWNlCT0gQGVuYWJs ZV9kdHJhY2VACiBlbmFibGVfY292ZXJhZ2UJPSBAZW5hYmxlX2NvdmVyYWdlQAogZW5hYmxlX2lu amVjdGlvbl9wb2ludHMgPSBAZW5hYmxlX2luamVjdGlvbl9wb2ludHNACiBlbmFibGVfdGFwX3Rl c3RzCT0gQGVuYWJsZV90YXBfdGVzdHNACitlbmFibGVfcHl0ZXN0CT0gQGVuYWJsZV9weXRlc3RA CiAKIHB5dGhvbl9pbmNsdWRlc3BlYwk9IEBweXRob25faW5jbHVkZXNwZWNACiBweXRob25fbGli ZGlyCQk9IEBweXRob25fbGliZGlyQApAQCAtMzU0LDYgKzM1NSw3IEBAIE1TR0ZNVCAgPSBATVNH Rk1UQAogTVNHRk1UX0ZMQUdTID0gQE1TR0ZNVF9GTEFHU0AKIE1TR01FUkdFID0gQE1TR01FUkdF QAogT1BFTlNTTAk9IEBPUEVOU1NMQAorUFlURVNUCT0gQFBZVEVTVEAKIFBZVEhPTgk9IEBQWVRI T05ACiBUQVIJPSBAVEFSQAogWEdFVFRFWFQgPSBAWEdFVFRFWFRACkBAIC01MDgsNiArNTEwLDMz IEBAIHByb3ZlX2luc3RhbGxjaGVjayA9IEBlY2hvICJUQVAgdGVzdHMgbm90IGVuYWJsZWQuIFRy eSBjb25maWd1cmluZyB3aXRoIC0tZW5hYmxlCiBwcm92ZV9jaGVjayA9ICQocHJvdmVfaW5zdGFs bGNoZWNrKQogZW5kaWYKIAoraWZlcSAoJChlbmFibGVfcHl0ZXN0KSx5ZXMpCisKK3B5dGVzdF9p bnN0YWxsY2hlY2sgPSBAZWNobyAiSW5zdGFsbGNoZWNrIGlzIG5vdCBjdXJyZW50bHkgc3VwcG9y dGVkIGZvciBweXRlc3QuIgorCisjIFdlIGFsc28gY29uZmlndXJlIHRoZSBzYW1lIFBZVEhPTlBB VEggaW4gdGhlIHB5dGVzdCBzZXR0aW5ncyBpbgorIyBweXByb2plY3QudG9tbCwgYnV0IHB5dGVz dCB2ZXJzaW9ucyBiZWxvdyA4LjQgb25seSBhY3R1YWxseSB1c2UgdGhhdCB2YWx1ZQorIyBhZnRl ciBwbHVnaW4gbG9hZGluZy4gU28gd2UgbmVlZCB0byBjb25maWd1cmUgaXQgaGVyZSB0b28uIFRo aXMgd29uJ3QgaGVscAorIyBwZW9wbGUgbWFudWFsbHkgcnVubmluZyBweXRlc3Qgb3V0c2lkZSBv ZiBtZXNvbi9tYWtlLCBidXQgd2UgZXhwZWN0IHRob3NlIHRvCisjIHVzZSBhIHJlY2VudCBlbm91 Z2ggdmVyc2lvbiBvZiBweXRlc3QgYW55d2F5IChhbmQgaWYgbm90IHRoZXkgY2FuIG1hbnVhbGx5 CisjIGNvbmZpZ3VyZSBQWVRIT05QQVRIIHRvbykuCitkZWZpbmUgcHl0ZXN0X2NoZWNrCitlY2hv ICIjICsrKyBweXRlc3QgY2hlY2sgaW4gJChzdWJkaXIpICsrKyIgJiYgXAorcm0gLXJmICckKENV UkRJUiknL3RtcF9jaGVjayAmJiBcCiskKE1LRElSX1ApICckKENVUkRJUiknL3RtcF9jaGVjayAm JiBcCitjZCAkKHNyY2RpcikgJiYgXAorICAgVEVTVExPR0RJUj0nJChDVVJESVIpL3RtcF9jaGVj ay9sb2cnIFwKKyAgIFRFU1REQVRBRElSPSckKENVUkRJUikvdG1wX2NoZWNrJyBcCisgICBQWVRI T05QQVRIPSckKGFic190b3Bfc3JjZGlyKS9zcmMvdGVzdC9weXRlc3Q6JCRQWVRIT05QQVRIJyBc CisgICAkKHdpdGhfdGVtcF9pbnN0YWxsKSBcCisgICAkKFBZVEVTVCkgLWMgJyQoYWJzX3RvcF9z cmNkaXIpL3B5cHJvamVjdC50b21sJyAtLXZlcmJvc2UgLXJhIC4vcHl0LworZW5kZWYKKworZWxz ZQorcHl0ZXN0X2luc3RhbGxjaGVjayA9IEBlY2hvICJweXRlc3QgaXMgbm90IGVuYWJsZWQuIFRy eSBjb25maWd1cmluZyB3aXRoIC0tZW5hYmxlLXB5dGVzdCIKK3B5dGVzdF9jaGVjayA9ICQocHl0 ZXN0X2luc3RhbGxjaGVjaykKK2VuZGlmCisKICMgSW5zdGFsbGF0aW9uLgogCiBpbnN0YWxsX2Jp biA9IEBpbnN0YWxsX2JpbkAKZGlmZiAtLWdpdCBhL3NyYy9tYWtlZmlsZXMvbWVzb24uYnVpbGQg Yi9zcmMvbWFrZWZpbGVzL21lc29uLmJ1aWxkCmluZGV4IGM2ZWRmMTRlYzQ0Li41YjlhODA0YWE5 NCAxMDA2NDQKLS0tIGEvc3JjL21ha2VmaWxlcy9tZXNvbi5idWlsZAorKysgYi9zcmMvbWFrZWZp bGVzL21lc29uLmJ1aWxkCkBAIC01Niw2ICs1Niw3IEBAIHBneHNfa3YgPSB7CiAgICdlbmFibGVf bmxzJzogbGliaW50bC5mb3VuZCgpID8gJ3llcycgOiAnbm8nLAogICAnZW5hYmxlX2luamVjdGlv bl9wb2ludHMnOiBnZXRfb3B0aW9uKCdpbmplY3Rpb25fcG9pbnRzJykgPyAneWVzJyA6ICdubycs CiAgICdlbmFibGVfdGFwX3Rlc3RzJzogdGFwX3Rlc3RzX2VuYWJsZWQgPyAneWVzJyA6ICdubycs CisgICdlbmFibGVfcHl0ZXN0JzogcHl0ZXN0X2VuYWJsZWQgPyAneWVzJyA6ICdubycsCiAgICdl bmFibGVfZGVidWcnOiBnZXRfb3B0aW9uKCdkZWJ1ZycpID8gJ3llcycgOiAnbm8nLAogICAnZW5h YmxlX2NvdmVyYWdlJzogJ25vJywKICAgJ2VuYWJsZV9kdHJhY2UnOiBkdHJhY2UuZm91bmQoKSA/ ICd5ZXMnIDogJ25vJywKQEAgLTE0NSw2ICsxNDYsNyBAQCBwZ3hzX2JpbnMgPSB7CiAgICdPUEVO U1NMJzogb3BlbnNzbCwKICAgJ1BFUkwnOiBwZXJsLAogICAnUFJPVkUnOiBwcm92ZSwKKyAgJ1BZ VEVTVCc6IHB5dGVzdCwKICAgJ1BZVEhPTic6IHB5dGhvbiwKICAgJ1RBUic6IHRhciwKICAgJ1pT VEQnOiBwcm9ncmFtX3pzdGQsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9NYWtlZmlsZSBiL3NyYy90 ZXN0L01ha2VmaWxlCmluZGV4IDNlYjBhMDZhYmI0Li4wYmU5NzcxZDcxZiAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvTWFrZWZpbGUKKysrIGIvc3JjL3Rlc3QvTWFrZWZpbGUKQEAgLTE4LDYgKzE4LDcg QEAgU1VCRElSUyA9IFwKIAltb2R1bGVzIFwKIAlwZXJsIFwKIAlwb3N0bWFzdGVyIFwKKwlweXRl c3QgXAogCXJlY292ZXJ5IFwKIAlyZWdyZXNzIFwKIAlzdWJzY3JpcHRpb24KZGlmZiAtLWdpdCBh L3NyYy90ZXN0L21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvbWVzb24uYnVpbGQKaW5kZXggY2NjMzFk NmE4NmEuLmQwOGE2ZWY2MWMyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tZXNvbi5idWlsZAorKysg Yi9zcmMvdGVzdC9tZXNvbi5idWlsZApAQCAtNSw2ICs1LDcgQEAgc3ViZGlyKCdpc29sYXRpb24n KQogCiBzdWJkaXIoJ2F1dGhlbnRpY2F0aW9uJykKIHN1YmRpcigncG9zdG1hc3RlcicpCitzdWJk aXIoJ3B5dGVzdCcpCiBzdWJkaXIoJ3JlY292ZXJ5JykKIHN1YmRpcignc3Vic2NyaXB0aW9uJykK IHN1YmRpcignbW9kdWxlcycpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9weXRlc3QvTWFrZWZpbGUg Yi9zcmMvdGVzdC9weXRlc3QvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLjJiZGNhOTZjY2JlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcHl0ZXN0 L01ha2VmaWxlCkBAIC0wLDAgKzEsMjAgQEAKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjCisjIE1ha2Vm aWxlIGZvciBweXRlc3QKKyMKKyMgUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjUsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisjIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisjCisjIHNy Yy90ZXN0L3B5dGVzdC9NYWtlZmlsZQorIworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworc3ViZGlyID0g c3JjL3Rlc3QvcHl0ZXN0Cit0b3BfYnVpbGRkaXIgPSAuLi8uLi8uLgoraW5jbHVkZSAkKHRvcF9i dWlsZGRpcikvc3JjL01ha2VmaWxlLmdsb2JhbAorCitjaGVjazoKKwkkKHB5dGVzdF9jaGVjaykK KworY2xlYW4gZGlzdGNsZWFuIG1haW50YWluZXItY2xlYW46CisJcm0gLXJmIHRtcF9jaGVjawpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcHl0ZXN0L1JFQURNRSBiL3NyYy90ZXN0L3B5dGVzdC9SRUFE TUUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjEzMzNlZDc3YjdlCi0t LSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcHl0ZXN0L1JFQURNRQpAQCAtMCwwICsxIEBACitU T0RPCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9weXRlc3QvbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9w eXRlc3QvbWVzb24uYnVpbGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LmFiZDEyOGRmYTI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcHl0ZXN0L21lc29uLmJ1 aWxkCkBAIC0wLDAgKzEsMTYgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEds b2JhbCBEZXZlbG9wbWVudCBHcm91cAorCitpZiBub3QgcHl0ZXN0X2VuYWJsZWQKKyAgc3ViZGly X2RvbmUoKQorZW5kaWYKKwordGVzdHMgKz0geworICAnbmFtZSc6ICdweXRlc3QnLAorICAnc2Qn OiBtZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwKKyAgJ2JkJzogbWVzb24uY3VycmVudF9idWls ZF9kaXIoKSwKKyAgJ3B5dGVzdCc6IHsKKyAgICAndGVzdHMnOiBbCisgICAgICAncHl0L3Rlc3Rf c29tZXRoaW5nLnB5JywKKyAgICBdLAorICB9LAorfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcHl0 ZXN0L3BndGFwLnB5IGIvc3JjL3Rlc3QvcHl0ZXN0L3BndGFwLnB5Cm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jOTJjYWQ5OGQ5NQotLS0gL2Rldi9udWxsCisrKyBiL3Ny Yy90ZXN0L3B5dGVzdC9wZ3RhcC5weQpAQCAtMCwwICsxLDE5OCBAQAorIyBDb3B5cmlnaHQgKGMp IDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKK2ltcG9ydCBvcwor aW1wb3J0IHN5cworCitpbXBvcnQgcHl0ZXN0CisKKyMKKyMgSGVscGVycworIworCisKK2NsYXNz IFRBUDoKKyAgICAiIiIKKyAgICBBIGJhc2ljIEFQSSBmb3IgcmVwb3J0aW5nIHZpYSB0aGUgVEFQ IHByb3RvY29sLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBz ZWxmLmNvdW50ID0gMAorCisgICAgICAgICMgWFhYIGludGVyYWN0cyBwb29ybHkgd2l0aCB0ZXN0 d3JhcCdzIGJvaWxlcnBsYXRlIGRpYWdub3N0aWNzCisgICAgICAgICMgc2VsZi5wcmludCgiVEFQ IHZlcnNpb24gMTMiKQorCisgICAgZGVmIGV4cGVjdChzZWxmLCBudW06IGludCk6CisgICAgICAg IHNlbGYucHJpbnQoZiIxLi57bnVtfSIpCisKKyAgICBkZWYgcHJpbnQoc2VsZiwgKmFyZ3MpOgor ICAgICAgICBwcmludCgqYXJncywgZmlsZT1zeXMuX19zdGRvdXRfXykKKworICAgIGRlZiBvayhz ZWxmLCBuYW1lOiBzdHIpOgorICAgICAgICBzZWxmLmNvdW50ICs9IDEKKyAgICAgICAgc2VsZi5w cmludCgib2siLCBzZWxmLmNvdW50LCAiLSIsIG5hbWUpCisKKyAgICBkZWYgc2tpcChzZWxmLCBu YW1lOiBzdHIsIHJlYXNvbjogc3RyKToKKyAgICAgICAgc2VsZi5jb3VudCArPSAxCisgICAgICAg IHNlbGYucHJpbnQoIm9rIiwgc2VsZi5jb3VudCwgIi0iLCBuYW1lLCAiIyBza2lwIiwgcmVhc29u KQorCisgICAgZGVmIGZhaWwoc2VsZiwgbmFtZTogc3RyLCBkZXRhaWxzOiBzdHIpOgorICAgICAg ICBzZWxmLmNvdW50ICs9IDEKKyAgICAgICAgc2VsZi5wcmludCgibm90IG9rIiwgc2VsZi5jb3Vu dCwgIi0iLCBuYW1lKQorCisgICAgICAgICMgbXRlc3QgaGFzIHNvbWUgb2RkIGJlaGF2aW9yIGFy b3VuZCBUQVAgdGVzdHMgd2hlcmUgaXQgd29uJ3QgcHJpbnQKKyAgICAgICAgIyBkaWFnbm9zdGlj cyBvbiBmYWlsdXJlIGlmIHRoZXkncmUgcGFydCBvZiB0aGUgc3Rkb3V0IHN0cmVhbSwgc28gd2UK KyAgICAgICAgIyBtaWdodCBhcyB3ZWxsIGp1c3QgZHVtcCB0aGUgZGV0YWlscyBkaXJlY3RseSB0 byBzdGRlcnIgaW5zdGVhZC4KKyAgICAgICAgcHJpbnQoZGV0YWlscywgZmlsZT1zeXMuX19zdGRl cnJfXykKKworCit0YXAgPSBUQVAoKQorCisKK2NsYXNzIFRlc3ROb3RlczoKKyAgICAiIiIKKyAg ICBBbm5vdGF0aW9ucyBmb3IgYSBzaW5nbGUgdGVzdC4gVGhlIGV4aXN0aW5nIHB5dGVzdCBob29r cyBrZWVwIGludGVyZXN0aW5nCisgICAgaW5mb3JtYXRpb24gc29tZXdoYXQgc2VwYXJhdGVkIGFj cm9zcyB0aGUgZGlmZmVyZW50IHN0YWdlcworICAgIChzZXR1cC90ZXN0L3RlYXJkb3duKSwgc28g dGhpcyBjbGFzcyBpcyB1c2VkIHRvIGNvcnJlbGF0ZSB0aGVtLgorICAgICIiIgorCisgICAgc2tp cHBlZCA9IEZhbHNlCisgICAgc2tpcF9yZWFzb24gPSBOb25lCisKKyAgICBmYWlsZWQgPSBGYWxz ZQorICAgIGRldGFpbHMgPSAiIgorCisKKyMgUmVnaXN0ZXIgYSBjdXN0b20ga2V5IGluIHRoZSBz dGFzaCBkaWN0aW9uYXJ5IGZvciBrZWVwaW5nIG91ciBUZXN0Tm90ZXMuCitub3Rlc19rZXkgPSBw eXRlc3QuU3Rhc2hLZXlbVGVzdE5vdGVzXSgpCisKKworIworIyBIb29rIEltcGxlbWVudGF0aW9u cworIworCisKK0BweXRlc3QuaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKK2RlZiBweXRlc3RfY29u ZmlndXJlKGNvbmZpZyk6CisgICAgIiIiCisgICAgSGlqYWNrcyB0aGUgc3RhbmRhcmQgc3RyZWFt cyBhcyBzb29uIGFzIHBvc3NpYmxlIGR1cmluZyBweXRlc3Qgc3RhcnR1cC4gVGhlCisgICAgcHl0 ZXN0LWZvcm1hdHRlZCBvdXRwdXQgZ2V0cyBsb2dnZWQgdG8gZmlsZSBpbnN0ZWFkLCBhbmQgd2Un bGwgdXNlIHRoZQorICAgIG9yaWdpbmFsIHN5cy5fX3N0ZG91dF9fL19fc3RkZXJyX18gc3RyZWFt cyBmb3IgdGhlIFRBUCBwcm90b2NvbC4KKyAgICAiIiIKKyAgICBsb2dkaXIgPSBvcy5nZXRlbnYo IlRFU1RMT0dESVIiKQorICAgIGlmIG5vdCBsb2dkaXI6CisgICAgICAgIHJhaXNlIFJ1bnRpbWVF cnJvcigicGd0YXAgcmVxdWlyZXMgdGhlIFRFU1RMT0dESVIgZW52dmFyIHRvIGJlIHNldCIpCisK KyAgICBvcy5tYWtlZGlycyhsb2dkaXIpCisgICAgbG9ncGF0aCA9IG9zLnBhdGguam9pbihsb2dk aXIsICJweXRlc3QubG9nIikKKyAgICBzeXMuc3Rkb3V0ID0gc3lzLnN0ZGVyciA9IG9wZW4obG9n cGF0aCwgImEiLCBidWZmZXJpbmc9MSkKKworCitAcHl0ZXN0Lmhvb2tpbXBsKHRyeWxhc3Q9VHJ1 ZSkKK2RlZiBweXRlc3Rfc2Vzc2lvbmZpbmlzaChzZXNzaW9uLCBleGl0c3RhdHVzKToKKyAgICAi IiIKKyAgICBTdXBwcmVzc2VzIG5vbnplcm8gZXhpdCBjb2RlcyBkdWUgdG8gZmFpbGVkIHRlc3Rz LiAoSW4gdGhhdCBjYXNlLCB3ZSB3YW50CisgICAgTWVzb24gdG8gcmVwb3J0IGEgZmFpbHVyZSBj b3VudCwgbm90IGEgZ2VuZXJpYyBFUlJPUi4pCisgICAgIiIiCisgICAgaWYgZXhpdHN0YXR1cyA9 PSBweXRlc3QuRXhpdENvZGUuVEVTVFNfRkFJTEVEOgorICAgICAgICBzZXNzaW9uLmV4aXRzdGF0 dXMgPSBweXRlc3QuRXhpdENvZGUuT0sKKworCitAcHl0ZXN0Lmhvb2tpbXBsCitkZWYgcHl0ZXN0 X2NvbGxlY3RyZXBvcnQocmVwb3J0KToKKyAgICAjIEluY2x1ZGUgY29sbGVjdGlvbiBmYWlsdXJl cyBkaXJlY3RseSBpbiBNZXNvbiBlcnJvciBvdXRwdXQuCisgICAgaWYgcmVwb3J0LmZhaWxlZDoK KyAgICAgICAgcHJpbnQocmVwb3J0LmxvbmdyZXBydGV4dCwgZmlsZT1zeXMuX19zdGRlcnJfXykK KworCitAcHl0ZXN0Lmhvb2tpbXBsCitkZWYgcHl0ZXN0X2ludGVybmFsZXJyb3IoZXhjcmVwciwg ZXhjaW5mbyk6CisgICAgIyBJbmNsdWRlIGludGVybmFsIGVycm9ycyBkaXJlY3RseSBpbiBNZXNv biBlcnJvciBvdXRwdXQuCisgICAgcHJpbnQoZXhjcmVwciwgZmlsZT1zeXMuX19zdGRlcnJfXykK KworCisjCisjIEhvb2sgV3JhcHBlcnMKKyMKKyMgSW4gcHl0ZXN0IHBhcmxhbmNlLCBhICJ3cmFw cGVyIiBmb3IgYSBob29rIGNhbiBpbnNwZWN0IGFuZCBvcHRpb25hbGx5IG1vZGlmeQorIyBleGlz dGluZyBob29rcycgYmVoYXZpb3IsIGJ1dCBpdCBkb2VzIG5vdCByZXBsYWNlIHRoZSBob29rIGNo YWluLiBUaGlzIGlzIGRvbmUKKyMgdGhyb3VnaCBhIGdlbmVyYXRvci1zdHlsZSBBUEkgd2hpY2gg Y2hhaW5zIHRoZSBob29rcyB0b2dldGhlciAoc2VlIHRoZSB1c2Ugb2YKKyMgYHlpZWxkYCkuCisj CisKKworQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQorZGVmIHB5dGVzdF9jb2xs ZWN0aW9uKHNlc3Npb24pOgorICAgICIiIlJlcG9ydHMgdGhlIG51bWJlciBvZiBnYXRoZXJlZCB0 ZXN0cyBhZnRlciBjb2xsZWN0aW9uIGlzIGZpbmlzaGVkLiIiIgorICAgIHJlcyA9IHlpZWxkCisg ICAgdGFwLmV4cGVjdChzZXNzaW9uLnRlc3RzY29sbGVjdGVkKQorICAgIHJldHVybiByZXMKKwor CitAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCitkZWYgcHl0ZXN0X3J1bnRlc3Rf bWFrZXJlcG9ydChpdGVtLCBjYWxsKToKKyAgICAiIiIKKyAgICBBbm5vdGF0ZXMgYSB0ZXN0IGl0 ZW0gd2l0aCBvdXIgVGVzdE5vdGVzIGFuZCBncmFicyByZWxldmFudCBpbmZvcm1hdGlvbiBmb3IK KyAgICByZXBvcnRpbmcuCisKKyAgICBUaGlzIGlzIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBwZXIg dGVzdCwgc28gaXQncyBub3QgY29ycmVjdCB0byBwcmludCB0aGUgVEFQCisgICAgcmVzdWx0IGhl cmUuIChBIHRlc3QgYW5kIGl0cyB0ZWFyZG93biBzdGFnZSBjYW4gYm90aCBmYWlsLCBhbmQgd2Ug d2FudCB0bworICAgIHNlZSB0aGUgZGV0YWlscyBmb3IgYm90aC4pIFdlIGluc3RlYWQgY29tYmlu ZSBhbGwgdGhlIGluZm9ybWF0aW9uIGZvciB1c2UgYnkKKyAgICBvdXIgcHl0ZXN0X3J1bnRlc3Rf cHJvdG9jb2wgd3JhcHBlciBsYXRlciBvbi4KKyAgICAiIiIKKyAgICByZXMgPSB5aWVsZAorCisg ICAgaWYgbm90ZXNfa2V5IG5vdCBpbiBpdGVtLnN0YXNoOgorICAgICAgICBpdGVtLnN0YXNoW25v dGVzX2tleV0gPSBUZXN0Tm90ZXMoKQorICAgIG5vdGVzID0gaXRlbS5zdGFzaFtub3Rlc19rZXld CisKKyAgICByZXBvcnQgPSByZXMuZ2V0X3Jlc3VsdCgpCisgICAgaWYgcmVwb3J0LnBhc3NlZDoK KyAgICAgICAgcGFzcyAgIyBubyBhbm5vdGF0aW9uIG5lZWRlZAorCisgICAgZWxpZiByZXBvcnQu c2tpcHBlZDoKKyAgICAgICAgbm90ZXMuc2tpcHBlZCA9IFRydWUKKyAgICAgICAgXywgXywgbm90 ZXMuc2tpcF9yZWFzb24gPSByZXBvcnQubG9uZ3JlcHIKKworICAgIGVsaWYgcmVwb3J0LmZhaWxl ZDoKKyAgICAgICAgbm90ZXMuZmFpbGVkID0gVHJ1ZQorCisgICAgICAgIGlmIG5vdCBub3Rlcy5k ZXRhaWxzOgorICAgICAgICAgICAgbm90ZXMuZGV0YWlscyArPSAiezpfXjcyfVxuXG4iLmZvcm1h dChmIiB7cmVwb3J0LmhlYWRfbGluZX0gIikKKworICAgICAgICBpZiByZXBvcnQud2hlbiBpbiAo InNldHVwIiwgInRlYXJkb3duIik6CisgICAgICAgICAgICBub3Rlcy5kZXRhaWxzICs9ICJcbns6 X143Mn1cblxuIi5mb3JtYXQoCisgICAgICAgICAgICAgICAgZiIgRXJyb3IgZHVyaW5nIHtyZXBv cnQud2hlbn0gb2Yge3JlcG9ydC5oZWFkX2xpbmV9ICIKKyAgICAgICAgICAgICkKKworICAgICAg ICBub3Rlcy5kZXRhaWxzICs9IHJlcG9ydC5sb25ncmVwcnRleHQgKyAiXG4iCisKKyAgICAgICAg IyBJbmNsdWRlIGNhcHR1cmVkIHN0ZG91dC9zdGRlcnIvbG9nIGluIGZhaWx1cmUgb3V0cHV0Cisg ICAgICAgIGZvciBzZWN0aW9uX25hbWUsIHNlY3Rpb25fY29udGVudCBpbiByZXBvcnQuc2VjdGlv bnM6CisgICAgICAgICAgICBpZiBzZWN0aW9uX2NvbnRlbnQuc3RyaXAoKToKKyAgICAgICAgICAg ICAgICBub3Rlcy5kZXRhaWxzICs9ICJcbns6LV43Mn1cbiIuZm9ybWF0KGYiIHtzZWN0aW9uX25h bWV9ICIpCisgICAgICAgICAgICAgICAgbm90ZXMuZGV0YWlscyArPSBzZWN0aW9uX2NvbnRlbnQg KyAiXG4iCisKKyAgICBlbHNlOgorICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoInB5dGVzdF9y dW50ZXN0X21ha2VyZXBvcnQgcmVjZWl2ZWQgdW5rbm93biB0ZXN0IHN0YXR1cyIpCisKKyAgICBy ZXR1cm4gcmVzCisKKworQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQorZGVmIHB5 dGVzdF9ydW50ZXN0X3Byb3RvY29sKGl0ZW0sIG5leHRpdGVtKToKKyAgICAiIiIKKyAgICBSZXBv cnRzIHRoZSBUQVAgcmVzdWx0IGZvciB0aGlzIHRlc3QgaXRlbSB1c2luZyBvdXIgZ2F0aGVyZWQg VGVzdE5vdGVzLgorICAgICIiIgorICAgIHJlcyA9IHlpZWxkCisKKyAgICBhc3NlcnQgbm90ZXNf a2V5IGluIGl0ZW0uc3Rhc2gsICJwZ3RhcCBkaWRuJ3QgYW5ub3RhdGUgYSB0ZXN0IGl0ZW0/Igor ICAgIG5vdGVzID0gaXRlbS5zdGFzaFtub3Rlc19rZXldCisKKyAgICBpZiBub3Rlcy5mYWlsZWQ6 CisgICAgICAgIHRhcC5mYWlsKGl0ZW0ubm9kZWlkLCBub3Rlcy5kZXRhaWxzKQorICAgIGVsaWYg bm90ZXMuc2tpcHBlZDoKKyAgICAgICAgdGFwLnNraXAoaXRlbS5ub2RlaWQsIG5vdGVzLnNraXBf cmVhc29uKQorICAgIGVsc2U6CisgICAgICAgIHRhcC5vayhpdGVtLm5vZGVpZCkKKworICAgIHJl dHVybiByZXMKZGlmZiAtLWdpdCBhL3NyYy90b29scy90ZXN0d3JhcCBiL3NyYy90b29scy90ZXN0 d3JhcAppbmRleCBlOTEyOTZlY2QxNS4uMzQ2Zjg2YjhlYTMgMTAwNzU1Ci0tLSBhL3NyYy90b29s cy90ZXN0d3JhcAorKysgYi9zcmMvdG9vbHMvdGVzdHdyYXAKQEAgLTQyLDcgKzQyLDExIEBAIG9w ZW4ob3MucGF0aC5qb2luKHRlc3RkaXIsICd0ZXN0LnN0YXJ0JyksICd4JykKIAogZW52X2RpY3Qg PSB7Kipvcy5lbnZpcm9uLAogICAgICAgICAgICAgJ1RFU1REQVRBRElSJzogb3MucGF0aC5qb2lu KHRlc3RkaXIsICdkYXRhJyksCi0gICAgICAgICAgICAnVEVTVExPR0RJUic6IG9zLnBhdGguam9p bih0ZXN0ZGlyLCAnbG9nJyl9CisgICAgICAgICAgICAnVEVTVExPR0RJUic6IG9zLnBhdGguam9p bih0ZXN0ZGlyLCAnbG9nJyksCisgICAgICAgICAgICAjIFByZXZlbnQgZW1pdHRpbmcgdGVybWlu YWwgY2FwYWJpbGl0eSBzZXF1ZW5jZXMgdGhhdCBwb2xsdXRlIHRoZQorICAgICAgICAgICAgIyBU QVAgb3V0cHV0IHN0cmVhbSAoaS5lLlwwMzNbPzEwMzRoKS4gVGhpcyBoYXBwZW5zIG9uIE9wZW5C U0Qgd2l0aAorICAgICAgICAgICAgIyBweXRlc3QgZm9yIHVua25vd24gcmVhc29ucy4KKyAgICAg ICAgICAgICdURVJNJzogJyd9CiAKIAogIyBUaGUgY29uZmlndXJhdGlvbiB0aW1lIHZhbHVlIG9m IFBHX1RFU1RfRVhUUkEgaXMgc3VwcGxpZWQgdmlhIGFyZ3VtZW50Ci0tIAoyLjUyLjAKCg== --96ced96246521a62ba81864c53b3a5475cc189cbc0ad0bfdf74d8b032f52 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v6-0003-ci-Add-MTEST_SUITES-for-optional-test-tailoring.patch Content-Type: text/x-patch; charset=utf-8; name=v6-0003-ci-Add-MTEST_SUITES-for-optional-test-tailoring.patch RnJvbSA2YjU4M2JhNmY2Njk3ZDdlYWZiMjU0ZWY1NDBiNzU4M2UxMjg5OTBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogVHVlLCAyIFNlcCAyMDI1IDE1OjM3OjUzIC0wNzAwClN1YmplY3Q6 IFtQQVRDSCB2NiAzLzddIGNpOiBBZGQgTVRFU1RfU1VJVEVTIGZvciBvcHRpb25hbCB0ZXN0IHRh aWxvcmluZwoKU2hvdWxkIG1ha2UgaXQgZWFzaWVyIHRvIGNvbnRyb2wgdGhlIHRlc3QgY3ljbGUg dGltZSBmb3IgQ2lycnVzLiBBZGQgdGhlCmRlc2lyZWQgc3VpdGVzIChyZW1lbWJlcmluZyBgLS1z dWl0ZSBzZXR1cGAhKSB0byB0aGUgdG9wLWxldmVsIGVudnZhci4KLS0tCiAuY2lycnVzLnRhc2tz LnltbCB8IDE1ICsrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygr KSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS8uY2lycnVzLnRhc2tzLnltbCBiLy5jaXJy dXMudGFza3MueW1sCmluZGV4IGE4M2FjYjM5ZTk3Li5hMmMzZmViYzMwYyAxMDA2NDQKLS0tIGEv LmNpcnJ1cy50YXNrcy55bWwKKysrIGIvLmNpcnJ1cy50YXNrcy55bWwKQEAgLTI4LDYgKzI4LDcg QEAgZW52OgogICAjIGVycm9ycy93YXJuaW5ncyBpbiBvbmUgcGxhY2UuCiAgIE1CVUlMRF9UQVJH RVQ6IGFsbCB0ZXN0cHJlcAogICBNVEVTVF9BUkdTOiAtLXByaW50LWVycm9ybG9ncyAtLW5vLXJl YnVpbGQgLUMgYnVpbGQKKyAgTVRFU1RfU1VJVEVTOiAjIC0tc3VpdGUgc2V0dXAgLS1zdWl0ZSBz c2wgLS1zdWl0ZSAuLi4KICAgUEdDVExUSU1FT1VUOiAxMjAgIyBhdm9pZHMgc3B1cmlvdXMgZmFp bHVyZXMgZHVyaW5nIHBhcmFsbGVsIHRlc3RzCiAgIFRFTVBfQ09ORklHOiAke0NJUlJVU19XT1JL SU5HX0RJUn0vc3JjL3Rvb2xzL2NpL3BnX2NpX2Jhc2UuY29uZgogICBQR19URVNUX0VYVFJBOiBr ZXJiZXJvcyBsZGFwIHNzbCBsaWJwcV9lbmNyeXB0aW9uIGxvYWRfYmFsYW5jZSBvYXV0aApAQCAt MjUxLDcgKzI1Miw3IEBAIHRhc2s6CiAgICAgc3UgcG9zdGdyZXMgPDwtRU9GCiAgICAgICBzZXQg LWUKICAgICAgIHVsaW1pdCAtYyB1bmxpbWl0ZWQKLSAgICAgIG1lc29uIHRlc3QgJE1URVNUX0FS R1MgLS1udW0tcHJvY2Vzc2VzICR7VEVTVF9KT0JTfQorICAgICAgbWVzb24gdGVzdCAkTVRFU1Rf QVJHUyAtLW51bS1wcm9jZXNzZXMgJHtURVNUX0pPQlN9ICR7TVRFU1RfU1VJVEVTfQogICAgIEVP RgogCiAgICMgdGVzdCBydW5uaW5nY2hlY2ssIGZyZWVic2QgY2hvc2VuIGJlY2F1c2UgaXQncyBj dXJyZW50bHkgZmFzdCBlbm91Z2gKQEAgLTM5Niw3ICszOTcsNyBAQCB0YXNrOgogICAgICAgIyBP dGhlcndpc2UgdGVzdHMgd2lsbCBmYWlsIG9uIE9wZW5CU0QsIGR1ZSB0byBpbmFiaWxpdHkgdG8g c3RhcnQgZW5vdWdoCiAgICAgICAjIHByb2Nlc3Nlcy4KICAgICAgIHVsaW1pdCAtcCAyNTYKLSAg ICAgIG1lc29uIHRlc3QgJE1URVNUX0FSR1MgLS1udW0tcHJvY2Vzc2VzICR7VEVTVF9KT0JTfQor ICAgICAgbWVzb24gdGVzdCAkTVRFU1RfQVJHUyAtLW51bS1wcm9jZXNzZXMgJHtURVNUX0pPQlN9 ICR7TVRFU1RfU1VJVEVTfQogICAgIEVPRgogCiAgIG9uX2ZhaWx1cmU6CkBAIC02MTQsNyArNjE1 LDcgQEAgdGFzazoKICAgICAgICAgc3UgcG9zdGdyZXMgPDwtRU9GCiAgICAgICAgICAgc2V0IC1l CiAgICAgICAgICAgdWxpbWl0IC1jIHVubGltaXRlZAotICAgICAgICAgIG1lc29uIHRlc3QgJE1U RVNUX0FSR1MgLS1udW0tcHJvY2Vzc2VzICR7VEVTVF9KT0JTfQorICAgICAgICAgIG1lc29uIHRl c3QgJE1URVNUX0FSR1MgLS1udW0tcHJvY2Vzc2VzICR7VEVTVF9KT0JTfSAke01URVNUX1NVSVRF U30KICAgICAgICAgRU9GCiAgICAgICAgICMgc28gdGhhdCB3ZSBkb24ndCB1cGxvYWQgNjRiaXQg bG9ncyBpZiAzMmJpdCBmYWlscwogICAgICAgICBybSAtcmYgYnVpbGQvCkBAIC02MjcsNyArNjI4 LDcgQEAgdGFzazoKICAgICAgICAgc3UgcG9zdGdyZXMgPDwtRU9GCiAgICAgICAgICAgc2V0IC1l CiAgICAgICAgICAgdWxpbWl0IC1jIHVubGltaXRlZAotICAgICAgICAgIFBZVEhPTkNPRVJDRUNM T0NBTEU9MCBMQU5HPUMgbWVzb24gdGVzdCAkTVRFU1RfQVJHUyAtQyBidWlsZC0zMiAtLW51bS1w cm9jZXNzZXMgJHtURVNUX0pPQlN9CisgICAgICAgICAgUFlUSE9OQ09FUkNFQ0xPQ0FMRT0wIExB Tkc9QyBtZXNvbiB0ZXN0ICRNVEVTVF9BUkdTIC1DIGJ1aWxkLTMyIC0tbnVtLXByb2Nlc3NlcyAk e1RFU1RfSk9CU30gJHtNVEVTVF9TVUlURVN9CiAgICAgICAgIEVPRgogCiAgICAgICBvbl9mYWls dXJlOgpAQCAtNzUxLDcgKzc1Miw3IEBAIHRhc2s6CiAgIHRlc3Rfd29ybGRfc2NyaXB0OiB8CiAg ICAgdWxpbWl0IC1jIHVubGltaXRlZCAjIGRlZmF1bHQgaXMgMAogICAgIHVsaW1pdCAtbiAxMDI0 ICMgZGVmYXVsdCBpcyAyNTYsIHByZXR0eSBsb3cKLSAgICBtZXNvbiB0ZXN0ICRNVEVTVF9BUkdT IC0tbnVtLXByb2Nlc3NlcyAke1RFU1RfSk9CU30KKyAgICBtZXNvbiB0ZXN0ICRNVEVTVF9BUkdT IC0tbnVtLXByb2Nlc3NlcyAke1RFU1RfSk9CU30gJHtNVEVTVF9TVUlURVN9CiAKICAgb25fZmFp bHVyZToKICAgICA8PDogKm9uX2ZhaWx1cmVfbWVzb24KQEAgLTgzNCw3ICs4MzUsNyBAQCB0YXNr OgogCiAgIGNoZWNrX3dvcmxkX3NjcmlwdDogfAogICAgIHZjdmFyc2FsbCB4NjQKLSAgICBtZXNv biB0ZXN0ICVNVEVTVF9BUkdTJSAtLW51bS1wcm9jZXNzZXMgJVRFU1RfSk9CUyUKKyAgICBtZXNv biB0ZXN0ICVNVEVTVF9BUkdTJSAtLW51bS1wcm9jZXNzZXMgJVRFU1RfSk9CUyUgJU1URVNUX1NV SVRFUyUKIAogICBvbl9mYWlsdXJlOgogICAgIDw8OiAqb25fZmFpbHVyZV9tZXNvbgpAQCAtODk1 LDcgKzg5Niw3IEBAIHRhc2s6CiAgIHVwbG9hZF9jYWNoZXM6IGNjYWNoZQogCiAgIHRlc3Rfd29y bGRfc2NyaXB0OiB8Ci0gICAgJUJBU0glIC1jICJtZXNvbiB0ZXN0ICVNVEVTVF9BUkdTJSAtLW51 bS1wcm9jZXNzZXMgJVRFU1RfSk9CUyUiCisgICAgJUJBU0glIC1jICJtZXNvbiB0ZXN0ICVNVEVT VF9BUkdTJSAtLW51bS1wcm9jZXNzZXMgJVRFU1RfSk9CUyUgJU1URVNUX1NVSVRFUyUiCiAKICAg b25fZmFpbHVyZToKICAgICA8PDogKm9uX2ZhaWx1cmVfbWVzb24KLS0gCjIuNTIuMAoK --96ced96246521a62ba81864c53b3a5475cc189cbc0ad0bfdf74d8b032f52 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v6-0004-Add-pytest-infrastructure-to-interact-with-Postgr.patch Content-Type: text/x-patch; charset=utf-8; name=v6-0004-Add-pytest-infrastructure-to-interact-with-Postgr.patch RnJvbSAyOWNiMTU4NDY3M2YwNzhlZTM4YjZiY2I2MGUxN2RiMTM4OWEyMThjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBUdWUsIDE2IERlYyAyMDI1IDA5OjI1OjQ4ICswMTAwClN1YmplY3Q6IFtQQVRDSCB2 NiA0LzddIEFkZCBweXRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gaW50ZXJhY3Qgd2l0aCBQb3N0Z3Jl U1FMCiBzZXJ2ZXJzCgpUaGlzIGFkZHMgZnVuY3Rpb25hbGl0eSB0byB0aGUgcHl0ZXN0IGluZnJh c3RydWN0dXJlIHRoYXQgYWxsb3dzIHRlc3RzCnRvIGRvIGNvbW1vbiB0aGluZ3Mgd2l0aCBQb3N0 Z3JlU1FMIHNlcnZlcnMgbGlrZToKLSBjcmVhdGluZwotIHN0YXJ0aW5nCi0gc3RvcHBpbmcKLSBj b25uZWN0aW5nCi0gcnVubmluZyBxdWVyaWVzCi0gaGFuZGxpbmcgZXJyb3JzCgpUaGUgZ29hbCBv ZiB0aGlzIGluZnJhc3RydWN0dXJlIGlzIHRvIGJlIHNvIGVhc3kgdG8gdXNlIHRoYXQgdGhlIGFj dHVhbAp0ZXN0cyByZWFsbHkgb25seSBjb250YWluIHRoZSBsb2dpYyB0byB0ZXN0IHRoZSBiZWhh dmlvdXIgdGhhdCB0aGUgdGVzdHMKYXJlIHRlc3RpbmcsIGFzIG9wcG9zZWQgdG8gYSBidW5jaCBv ZiBib2lsZXJwbGF0ZS4gRXhhbXBsZXMgb2YgdGhpcyBhcmU6CgpUeXBlcyBnZXQgY29udmVydGVk IHRvIHRoZWlyIFB5dGhvbiBjb3VudGVyIHBhcnRzIGF1dG9tYXRpY2FsbHkuIEVycm9ycwpiZWNv bWUgYWN0dWFsIFB5dGhvbiBleGNlcHRpb25zLiBSZXN1bHRzIG9mIHF1ZXJpZXMgdGhhdCBvbmx5 IHJldHVybiBhCnNpbmdsZSByb3cgb3IgY2VsbCBhcmUgdW5wYWNrZWQgYXV0b21hdGljYWxseSwg c28geW91IGRvbid0IGhhdmUgdG8gZG8Kcm93c1swXVswXSBpZiB0aGUgcXVlcnkgb25seSByZXR1 cm5zIGEgc2luZ2xlIGNlbGwuCgpUaGUgb25seSBuZXcgdGVzdHMgdGhhdCBhcmUgcGFydCBvZiB0 aGlzIGNvbW1pdCBhcmUgdGVzdHMgdGhhdCBjb3Zlcgp0aGlzIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1 cmUgaXRzZWxmLiBJdCdzIGRlYmF0YWJsZSB3aGV0aGVyIHN1Y2ggdGVzdHMKYXJlIHVzZWZ1bCBs b25nIHRlcm0sIGJlY2F1c2UgYW55IGluZnJhc3RydWN0dXJlIHRoYXQncyB1bnVzZWQgYnkgYWN0 dWFsCnRlc3RzIHNob3VsZCBwcm9iYWJseSBub3QgZXhpc3QuIEZvciBub3cgaXQgc2VlbXMgZ29v ZCB0byB0ZXN0IHRoaXMKYmFzaWMgZnVuY3Rpb25hbGl0eSB0aG91Z2gsIGJvdGggdG8gbWFrZSBz dXJlIHdlIGRvbid0IGJyZWFrIGl0IGJlZm9yZQpjb21taXR0aW5nIGFjdHVhbCB0ZXN0cyB0aGF0 IHVzZSBpdCwgYW5kIGFsc28gYXMgYW4gZXhhbXBsZSBmb3IgcGVvcGxlCndyaXRpbmcgbmV3IHRl c3RzLgotLS0KIGRvYy9zcmMvc2dtbC9yZWdyZXNzLnNnbWwgICAgICAgICAgICAgICAgICB8ICAg NTQgKy0KIHB5cHJvamVjdC50b21sICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMg Kwogc3JjL2JhY2tlbmQvdXRpbHMvZXJyY29kZXMudHh0ICAgICAgICAgICAgIHwgICAgNSArCiBz cmMvdGVzdC9weXRlc3QvUkVBRE1FICAgICAgICAgICAgICAgICAgICAgfCAgMTQwICstCiBzcmMv dGVzdC9weXRlc3QvbGlicHEvX19pbml0X18ucHkgICAgICAgICAgfCAgIDM2ICsKIHNyYy90ZXN0 L3B5dGVzdC9saWJwcS9fY29yZS5weSAgICAgICAgICAgICB8ICA0ODkgKysrKysKIHNyYy90ZXN0 L3B5dGVzdC9saWJwcS9fZXJyb3JfYmFzZS5weSAgICAgICB8ICAgNzQgKwogc3JjL3Rlc3QvcHl0 ZXN0L2xpYnBxL19nZW5lcmF0ZWRfZXJyb3JzLnB5IHwgMjExNiArKysrKysrKysrKysrKysrKysr Kwogc3JjL3Rlc3QvcHl0ZXN0L2xpYnBxL2Vycm9ycy5weSAgICAgICAgICAgIHwgICAzOSArCiBz cmMvdGVzdC9weXRlc3QvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgfCAgICA1ICstCiBzcmMv dGVzdC9weXRlc3QvcHlwZy9fX2luaXRfXy5weSAgICAgICAgICAgfCAgIDEwICsKIHNyYy90ZXN0 L3B5dGVzdC9weXBnL19lbnYucHkgICAgICAgICAgICAgICB8ICAgNzIgKwogc3JjL3Rlc3QvcHl0 ZXN0L3B5cGcvZml4dHVyZXMucHkgICAgICAgICAgIHwgIDMzNSArKysrCiBzcmMvdGVzdC9weXRl c3QvcHlwZy9zZXJ2ZXIucHkgICAgICAgICAgICAgfCAgNDcwICsrKysrCiBzcmMvdGVzdC9weXRl c3QvcHlwZy91dGlsLnB5ICAgICAgICAgICAgICAgfCAgIDQyICsKIHNyYy90ZXN0L3B5dGVzdC9w eXQvY29uZnRlc3QucHkgICAgICAgICAgICB8ICAgIDEgKwogc3JjL3Rlc3QvcHl0ZXN0L3B5dC90 ZXN0X2Vycm9ycy5weSAgICAgICAgIHwgICAzNCArCiBzcmMvdGVzdC9weXRlc3QvcHl0L3Rlc3Rf bGlicHEucHkgICAgICAgICAgfCAgMTcyICsrCiBzcmMvdGVzdC9weXRlc3QvcHl0L3Rlc3RfbXVs dGlfc2VydmVyLnB5ICAgfCAgIDQ2ICsKIHNyYy90ZXN0L3B5dGVzdC9weXQvdGVzdF9xdWVyeV9o ZWxwZXJzLnB5ICB8ICAzNDcgKysrKwogc3JjL3Rvb2xzL2dlbmVyYXRlX3B5dGVzdF9saWJwcV9l cnJvcnMucHkgIHwgIDE0NyArKwogMjEgZmlsZXMgY2hhbmdlZCwgNDYzNCBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9saWJw cS9fX2luaXRfXy5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9saWJwcS9f Y29yZS5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9saWJwcS9fZXJyb3Jf YmFzZS5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9saWJwcS9fZ2VuZXJh dGVkX2Vycm9ycy5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9saWJwcS9l cnJvcnMucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9weXRlc3QvcHlwZy9fX2luaXRf Xy5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9weXBnL19lbnYucHkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9weXRlc3QvcHlwZy9maXh0dXJlcy5weQogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9weXBnL3NlcnZlci5weQogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9weXBnL3V0aWwucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvdGVzdC9weXRlc3QvcHl0L2NvbmZ0ZXN0LnB5CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rl c3QvcHl0ZXN0L3B5dC90ZXN0X2Vycm9ycy5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0 L3B5dGVzdC9weXQvdGVzdF9saWJwcS5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5 dGVzdC9weXQvdGVzdF9tdWx0aV9zZXJ2ZXIucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVz dC9weXRlc3QvcHl0L3Rlc3RfcXVlcnlfaGVscGVycy5weQogY3JlYXRlIG1vZGUgMTAwNzU1IHNy Yy90b29scy9nZW5lcmF0ZV9weXRlc3RfbGlicHFfZXJyb3JzLnB5CgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3JlZ3Jlc3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWdyZXNzLnNnbWwKaW5kZXgg ZDgwZGQ0NmM1ZmQuLjE0NDA4MTViMjNhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVncmVz cy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWdyZXNzLnNnbWwKQEAgLTg0MCw3ICs4NDAsNyBA QCBmbG9hdDQ6b3V0Oi4qLS4qLWN5Z3dpbi4qPWZsb2F0NC1taXNyb3VuZGVkLWlucHV0Lm91dAog ICA8L3NlY3QxPgogCiAgIDxzZWN0MSBpZD0icmVncmVzcy10YXAiPgotICAgPHRpdGxlPlRBUCBU ZXN0czwvdGl0bGU+CisgICA8dGl0bGU+UGVybCBUQVAgVGVzdHM8L3RpdGxlPgogCiAgICA8cGFy YT4KICAgICBWYXJpb3VzIHRlc3RzLCBwYXJ0aWN1bGFybHkgdGhlIGNsaWVudCBwcm9ncmFtIHRl c3RzCkBAIC05MjksNiArOTI5LDU4IEBAIFBHX1RFU1RfTk9DTEVBTj0xIG1ha2UgLUMgc3JjL2Jp bi9wZ19kdW1wIGNoZWNrCiAKICAgPC9zZWN0MT4KIAorICA8c2VjdDEgaWQ9InJlZ3Jlc3MtcHl0 ZXN0Ij4KKyAgIDx0aXRsZT5QeXRlc3QgVGVzdHM8L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBU ZXN0cyBpbiA8ZmlsZW5hbWU+cHl0PC9maWxlbmFtZT4gZGlyZWN0b3JpZXMgdXNlIHRoZSBQeXRo b24KKyAgICA8YXBwbGljYXRpb24+cHl0ZXN0PC9hcHBsaWNhdGlvbj4gZnJhbWV3b3JrLiBUaGVz ZSB0ZXN0cyBwcm92aWRlIGEKKyAgICBjb252ZW5pZW50IHdheSB0byB0ZXN0IGxpYnBxIGNsaWVu dCBmdW5jdGlvbmFsaXR5IGFuZCBzY2VuYXJpb3MgcmVxdWlyaW5nCisgICAgbXVsdGlwbGUgUG9z dGdyZVNRTCBzZXJ2ZXIgaW5zdGFuY2VzLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBU aGUgcHl0ZXN0IHRlc3RzIHJlcXVpcmUgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3Ru YW1lPiB0byBiZQorICAgIGNvbmZpZ3VyZWQgd2l0aCB0aGUgb3B0aW9uIDxvcHRpb24+LS1lbmFi bGUtcHl0ZXN0PC9vcHRpb24+IChvcgorICAgIDxvcHRpb24+LURweXRlc3Q9ZW5hYmxlZDwvb3B0 aW9uPiBmb3IgTWVzb24gYnVpbGRzKS4gWW91IGFsc28gbmVlZCBlaXRoZXIKKyAgICA8YXBwbGlj YXRpb24+cHl0ZXN0PC9hcHBsaWNhdGlvbj4gb3IgPGFwcGxpY2F0aW9uPnV2PC9hcHBsaWNhdGlv bj4KKyAgICBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0uCisgICA8L3BhcmE+CisKKyAgIDxwYXJh PgorICAgIFdpdGggTWVzb24gYnVpbGRzLCB5b3UgY2FuIHJ1biB0aGUgcHl0ZXN0IHRlc3RzIHVz aW5nOgorPHByb2dyYW1saXN0aW5nPgorbWVzb24gdGVzdCAtLXN1aXRlIHB5dGVzdAorPC9wcm9n cmFtbGlzdGluZz4KKyAgICBXaXRoIGF1dG9jb25mLWJhc2VkIGJ1aWxkcywgeW91IGNhbiBydW4g dGhlbSBmcm9tIHRoZQorICAgIDxmaWxlbmFtZT5zcmMvdGVzdC9weXRlc3Q8L2ZpbGVuYW1lPiBk aXJlY3RvcnkgdXNpbmc6Cis8cHJvZ3JhbWxpc3Rpbmc+CittYWtlIGNoZWNrCis8L3Byb2dyYW1s aXN0aW5nPgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBZb3UgY2FuIGFsc28gcnVuIHNw ZWNpZmljIHRlc3QgZmlsZXMgZGlyZWN0bHkgdXNpbmcgcHl0ZXN0OgorPHByb2dyYW1saXN0aW5n PgorcHl0ZXN0IHNyYy90ZXN0L3B5dGVzdC9weXQvdGVzdF9saWJwcS5weQorcHl0ZXN0IC1rICJ0 ZXN0X2Nvbm5zdHIiCis8L3Byb2dyYW1saXN0aW5nPgorICAgPC9wYXJhPgorCisgICA8cGFyYT4K KyAgICBNYW55IG9wZXJhdGlvbnMgaW4gdGhlIHRlc3Qgc3VpdGVzIHVzZSBhIDE4MC1zZWNvbmQg dGltZW91dCwgd2hpY2ggb24gc2xvdworICAgIGhvc3RzIG1heSBsZWFkIHRvIGxvYWQtaW5kdWNl ZCB0aW1lb3V0cy4gIFNldHRpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlCisgICAgPHZhcm5h bWU+UEdfVEVTVF9USU1FT1VUX0RFRkFVTFQ8L3Zhcm5hbWU+IHRvIGEgaGlnaGVyIG51bWJlciB3 aWxsIGNoYW5nZQorICAgIHRoZSBkZWZhdWx0IHRvIGF2b2lkIHRoaXMuCisgICA8L3BhcmE+CisK KyAgIDxwYXJhPgorICAgIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHdyaXRpbmcgcHl0ZXN0IHRl c3RzLCBzZWUgdGhlCisgICAgPGZpbGVuYW1lPnNyYy90ZXN0L3B5dGVzdC9SRUFETUU8L2ZpbGVu YW1lPiBmaWxlLgorICAgPC9wYXJhPgorCisgIDwvc2VjdDE+CisKICAgPHNlY3QxIGlkPSJyZWdy ZXNzLWNvdmVyYWdlIj4KICAgIDx0aXRsZT5UZXN0IENvdmVyYWdlIEV4YW1pbmF0aW9uPC90aXRs ZT4KIApkaWZmIC0tZ2l0IGEvcHlwcm9qZWN0LnRvbWwgYi9weXByb2plY3QudG9tbAppbmRleCA2 MGFiYjRkMDY1NS4uNDYyOGQyMjc0ZTAgMTAwNjQ0Ci0tLSBhL3B5cHJvamVjdC50b21sCisrKyBi L3B5cHJvamVjdC50b21sCkBAIC0xOSwzICsxOSw2IEBAIG1pbnZlcnNpb24gPSAiNy4wIgogCiAj IENvbW1vbiB0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGhlcmUuCiBweXRob25wYXRoID0gWyJzcmMv dGVzdC9weXRlc3QiXQorCisjIExvYWQgdGhlIHNoYXJlZCBmaXh0dXJlcyBwbHVnaW4KK2FkZG9w dHMgPSBbIi1wIiwgInB5cGcuZml4dHVyZXMiXQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvZXJyY29kZXMudHh0IGIvc3JjL2JhY2tlbmQvdXRpbHMvZXJyY29kZXMudHh0CmluZGV4IGM5 NmFhN2M0OWVmLi40MGM3NTU1MDQ3ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJy Y29kZXMudHh0CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2VycmNvZGVzLnR4dApAQCAtMjEsNiAr MjEsMTEgQEAKICMgICBkb2Mvc3JjL3NnbWwvZXJyY29kZXMtdGFibGUuc2dtbAogIyAgICAgIGEg U0dNTCB0YWJsZSBvZiBlcnJvciBjb2RlcyBmb3IgaW5jbHVzaW9uIGluIHRoZSBkb2N1bWVudGF0 aW9uCiAjCisjICAgc3JjL3Rlc3QvcHl0ZXN0L2xpYnBxL19nZW5lcmF0ZWRfZXJyb3JzLnB5Cisj ICAgICAgUHl0aG9uIGV4Y2VwdGlvbiBjbGFzc2VzIGZvciB0aGUgcHl0ZXN0IGxpYnBxIHdyYXBw ZXIKKyMgICAgICBOb3RlOiBUaGlzIG5lZWRzIHRvIGJlIG1hbnVhbGx5IHJlZ2VuZXJhdGVkIGJ5 IHJ1bm5pbmcKKyMgICAgICBzcmMvdG9vbHMvZ2VuZXJhdGVfcHl0ZXN0X2xpYnBxX2Vycm9ycy5w eQorIwogIyBUaGUgZm9ybWF0IG9mIHRoaXMgZmlsZSBpcyBvbmUgZXJyb3IgY29kZSBwZXIgbGlu ZSwgd2l0aCB0aGUgZm9sbG93aW5nCiAjIHdoaXRlc3BhY2Utc2VwYXJhdGVkIGZpZWxkczoKICMK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVzdC9SRUFETUUgYi9zcmMvdGVzdC9weXRlc3QvUkVB RE1FCmluZGV4IDEzMzNlZDc3YjdlLi45ZGM1MGNhMTExZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cHl0ZXN0L1JFQURNRQorKysgYi9zcmMvdGVzdC9weXRlc3QvUkVBRE1FCkBAIC0xICsxLDEzOSBA QAotVE9ETworc3JjL3Rlc3QvcHl0ZXN0L1JFQURNRQorCitQeXRlc3QtYmFzZWQgdGVzdHMKKz09 PT09PT09PT09PT09PT09PQorCitUaGlzIGRpcmVjdG9yeSBjb250YWlucyBpbmZyYXN0cnVjdHVy ZSBmb3IgUHl0aG9uLWJhc2VkIHRlc3RzIHVzaW5nIHB5dGVzdCwKK2Fsb25nIHdpdGggc29tZSBj b3JlIHRlc3RzIGZvciB0aGUgcHl0ZXN0IGluZnJhc3RydWN0dXJlIGl0c2VsZi4gVGhlIGZyYW1l d29yaworcHJvdmlkZXMgZml4dHVyZXMgZm9yIG1hbmFnaW5nIFBvc3RncmVTUUwgc2VydmVyIGlu c3RhbmNlcyBhbmQgY29ubmVjdGluZyB0bwordGhlbSB2aWEgbGlicHEuCisKKworUnVubmluZyB0 aGUgdGVzdHMKKz09PT09PT09PT09PT09PT09CisKK05PVEU6IFlvdSBtdXN0IGhhdmUgZ2l2ZW4g dGhlIC0tZW5hYmxlLXB5dGVzdCBhcmd1bWVudCB0byBjb25maWd1cmUgKG9yCistRHB5dGVzdD1l bmFibGVkIGZvciBNZXNvbiBidWlsZHMpLiBZb3UgYWxzbyBuZWVkIHRvIGhhdmUgZWl0aGVyIHB5 dGVzdCBvciB1dgorYWxyZWFkeSBpbnN0YWxsZWQuCisKK1dpdGggTWVzb24gYnVpbGRzLCB5b3Ug Y2FuIHJ1bjoKKyAgICBtZXNvbiB0ZXN0IC0tc3VpdGUgcHl0ZXN0CisKK1dpdGggYXV0b2NvbmYg YmFzZWQgYnVpbGRzLCB5b3UgY2FuIHJ1bjoKKyAgICBtYWtlIGNoZWNrCitvcgorICAgIG1ha2Ug aW5zdGFsbGNoZWNrCisKK1lvdSBjYW4gcnVuIHNwZWNpZmljIHRlc3QgZmlsZXMgYW5kL29yIHVz ZSBweXRlc3QncyAtayBvcHRpb24gdG8gc2VsZWN0IHRlc3RzOgorICAgIHB5dGVzdCBzcmMvdGVz dC9weXRlc3QvcHl0L3Rlc3RfbGlicHEucHkKKyAgICBweXRlc3QgLWsgInRlc3RfY29ubnN0ciIK KworCitEaXJlY3Rvcnkgc3RydWN0dXJlCis9PT09PT09PT09PT09PT09PT09CisKK3B5cGcvCisg ICAgUHl0aG9uIGxpYnJhcnkgcHJvdmlkaW5nIGNvbW1vbiBmdW5jdGlvbnMgYW5kIHB5dGVzdCBm aXh0dXJlcyB0aGF0IGNhbiBiZQorICAgIHVzZWQgaW4gdGVzdHMuCisKK2xpYnBxLworICAgIEEg c2ltcGxlIGJ1dCB1c2VyLWZyaWVuZGx5IHB5dGhvbiB3cmFwcGVyIGFyb3VuZCBsaWJwcQorCitw eXQvCisgICAgVGVzdHMgZm9yIHRoZSBweXRlc3QgaW5mcmFzdHJ1Y3R1cmUgaXRzZWxmCisKK3Bn dGFwLnB5CisgICAgQSBweXRlc3QgcGx1Z2luIHRvIG91dHB1dCByZXN1bHRzIGluIFRBUCBmb3Jt YXQKKworCitXcml0aW5nIHRlc3RzCis9PT09PT09PT09PT09CisKK1Rlc3RzIHVzZSBweXRlc3Qg Zml4dHVyZXMgdG8gbWFuYWdlIHNlcnZlciBpbnN0YW5jZXMgYW5kIGNvbm5lY3Rpb25zLiBUaGUK K21vc3QgY29tbW9ubHkgdXNlZCBmaXh0dXJlcyBhcmU6CisKK3BnCisgICAgQSBQb3N0Z3Jlc1Nl cnZlciBpbnN0YW5jZSBjb25maWd1cmVkIGZvciB0aGUgY3VycmVudCB0ZXN0LiBVc2UgdGhpcyBm b3IKKyAgICBjcmVhdGluZyB0ZXN0IHVzZXJzL2RhdGFiYXNlcyBvciBtb2RpZnlpbmcgc2VydmVy IGNvbmZpZ3VyYXRpb24uIENoYW5nZXMKKyAgICBhcmUgYXV0b21hdGljYWxseSByb2xsZWQgYmFj ayBhZnRlciB0aGUgdGVzdC4KKworY29ubgorICAgIEEgY29ubmVjdGVkIFBHY29ubiBpbnN0YW5j ZSB0byB0aGUgdGVzdCBzZXJ2ZXIuIEF1dG9tYXRpY2FsbHkgY2xlYW5lZCB1cAorICAgIGFmdGVy IHRoZSB0ZXN0LgorCitjb25uZWN0CisgICAgQSBmdW5jdGlvbiB0byBjcmVhdGUgYWRkaXRpb25h bCBjb25uZWN0aW9ucyB3aXRoIGN1c3RvbSBvcHRpb25zLgorCitjcmVhdGVfcGcKKyAgICBBIGZh Y3RvcnkgZnVuY3Rpb24gdG8gY3JlYXRlIGFkZGl0aW9uYWwgUG9zdGdyZVNRTCBzZXJ2ZXJzIHdp dGhpbiBhIHRlc3QuCisgICAgU2VydmVycyBhcmUgYXV0b21hdGljYWxseSBjbGVhbmVkIHVwIGF0 IHRoZSBlbmQgb2YgdGhlIHRlc3QuIFVzZWZ1bCBmb3IKKyAgICB0ZXN0aW5nIHNjZW5hcmlvcyB0 aGF0IHJlcXVpcmUgbXVsdGlwbGUgaW5kZXBlbmRlbnQgc2VydmVycy4KKworY3JlYXRlX3BnX21v ZHVsZQorICAgIExpa2UgY3JlYXRlX3BnLCBidXQgc2VydmVycyBwZXJzaXN0IGZvciB0aGUgZW50 aXJlIHRlc3QgbW9kdWxlLiBVc2UgdGhpcworICAgIHdoZW4gbXVsdGlwbGUgdGVzdHMgaW4gYSBt b2R1bGUgY2FuIHNoYXJlIHRoZSBzYW1lIHNlcnZlcnMsIHdoaWNoIGlzCisgICAgZmFzdGVyIHRo YW4gY3JlYXRpbmcgbmV3IHNlcnZlcnMgZm9yIGVhY2ggdGVzdC4KKworCitFeGFtcGxlIHRlc3Q6 CisKKyAgICBkZWYgdGVzdF9zaW1wbGVfcXVlcnkoY29ubik6CisgICAgICAgIHJlc3VsdCA9IGNv bm4uc3FsKCJTRUxFQ1QgMSArIDEiKQorICAgICAgICBhc3NlcnQgcmVzdWx0ID09IDIKKworICAg IGRlZiB0ZXN0X3dpdGhfdXNlcihwZyk6CisgICAgICAgIHVzZXJzID0gcGcuY3JlYXRlX3VzZXJz KCJ0ZXN0IikKKyAgICAgICAgd2l0aCBwZy5yZWxvYWRpbmcoKSBhcyBzOgorICAgICAgICAgICAg cy5oYmEucHJlcGVuZChbImxvY2FsIiwgImFsbCIsIHVzZXJzWyJ0ZXN0Il0sICJ0cnVzdCJdKQor CisgICAgICAgIGNvbm4gPSBwZy5jb25uZWN0KHVzZXI9dXNlcnNbInRlc3QiXSkKKyAgICAgICAg YXNzZXJ0IGNvbm4uc3FsKCJTRUxFQ1QgY3VycmVudF91c2VyIikgPT0gdXNlcnNbInRlc3QiXQor CisgICAgZGVmIHRlc3RfbXVsdGlwbGVfc2VydmVycyhjcmVhdGVfcGcpOgorICAgICAgICBub2Rl MSA9IGNyZWF0ZV9wZygicHJpbWFyeSIpCisgICAgICAgIG5vZGUyID0gY3JlYXRlX3BnKCJzZWNv bmRhcnkiKQorCisgICAgICAgIGNvbm4xID0gbm9kZTEuY29ubmVjdCgpCisgICAgICAgIGNvbm4y ID0gbm9kZTIuY29ubmVjdCgpCisKKyAgICAgICAgIyBFYWNoIHNlcnZlciBpcyBpbmRlcGVuZGVu dAorICAgICAgICBhc3NlcnQgbm9kZTEucG9ydCAhPSBub2RlMi5wb3J0CisKKworU2VydmVyIGNv bmZpZ3VyYXRpb24KKz09PT09PT09PT09PT09PT09PT09CisKK1Rlc3RzIGNhbiB0ZW1wb3Jhcmls eSBtb2RpZnkgc2VydmVyIGNvbmZpZ3VyYXRpb24gdXNpbmcgY29udGV4dCBtYW5hZ2VyczoKKwor ICAgIHdpdGggcGcucmVsb2FkaW5nKCkgYXMgczoKKyAgICAgICAgcy5jb25mLnNldChsb2dfY29u bmVjdGlvbnM9Im9uIikKKyAgICAgICAgcy5oYmEucHJlcGVuZCgibG9jYWwgYWxsIGFsbCB0cnVz dCIpCisgICAgICAgICMgU2VydmVyIGlzIHJlbG9hZGVkIGhlcmUKKyAgICAjIEFmdGVyIHRoZSB0 ZXN0IGZpbmlzaGVkIHRoZSBvcmlnaW5hbCBjb25maWd1cmF0aW9uIGlzIHJlc3RvcmVkIGFuZAor ICAgICMgdGhlIHNlcnZlciBpcyByZWxvYWRlZCBhZ2FpbgorCitVc2UgcGcucmVzdGFydGluZygp IGluc3RlYWQgaWYgdGhlIGNvbmZpZ3VyYXRpb24gY2hhbmdlIHJlcXVpcmVzIGEgcmVzdGFydC4K KworCitUaW1lb3V0cworPT09PT09PT0KKworVGVzdHMgaW5oZXJpdCB0aGUgUEdfVEVTVF9USU1F T1VUX0RFRkFVTFQgZW52aXJvbm1lbnQgdmFyaWFibGUgKGRlZmF1bHRpbmcKK3RvIDE4MCBzZWNv bmRzKS4gVGhlIHJlbWFpbmluZ190aW1lb3V0IGZpeHR1cmUgcHJvdmlkZXMgYSBmdW5jdGlvbiB0 aGF0CityZXR1cm5zIGhvdyBtdWNoIHRpbWUgcmVtYWlucyBmb3IgdGhlIGN1cnJlbnQgdGVzdC4K KworCitFbnZpcm9ubWVudCB2YXJpYWJsZXMKKz09PT09PT09PT09PT09PT09PT09PQorCitQR19U RVNUX1RJTUVPVVRfREVGQVVMVAorICAgIFBlci10ZXN0IHRpbWVvdXQgaW4gc2Vjb25kcyAoZGVm YXVsdDogMTgwKQorCitQR19DT05GSUcKKyAgICBQYXRoIHRvIHBnX2NvbmZpZyAoZGVmYXVsdDog dXNlcyBQQVRIKQorCitURVNUREFUQURJUgorICAgIERpcmVjdG9yeSBmb3IgdGVzdCBkYXRhIChk ZWZhdWx0OiBweXRlc3QgdGVtcCBkaXJlY3RvcnkpCisKK1BHX1RFU1RfRVhUUkEKKyAgICBTcGFj ZS1zZXBhcmF0ZWQgbGlzdCBvZiBvcHRpb25hbCB0ZXN0IGNhdGVnb3JpZXMgdG8gcnVuIChlLmcu LCAic3NsIikKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVzdC9saWJwcS9fX2luaXRfXy5weSBi L3NyYy90ZXN0L3B5dGVzdC9saWJwcS9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uY2I0ZDE4YjYyMDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVz dC9weXRlc3QvbGlicHEvX19pbml0X18ucHkKQEAgLTAsMCArMSwzNiBAQAorIyBDb3B5cmlnaHQg KGMpIDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKKyIiIgorbGli cHEgdGVzdGluZyB1dGlsaXRpZXMgLSBjdHlwZXMgYmluZGluZ3MgYW5kIGhlbHBlcnMgZm9yIFBv c3RncmVTUUwncyBsaWJwcSBsaWJyYXJ5LgorCitUaGlzIG1vZHVsZSBwcm92aWRlcyBQeXRob24g d3JhcHBlcnMgYXJvdW5kIGxpYnBxIGZvciB1c2UgaW4gcHl0ZXN0IHRlc3RzLgorIiIiCisKK2Zy b20gLiBpbXBvcnQgZXJyb3JzCitmcm9tIC5lcnJvcnMgaW1wb3J0IExpYnBxRXJyb3IsIExpYnBx V2FybmluZworZnJvbSAuX2NvcmUgaW1wb3J0ICgKKyAgICBDb25uZWN0aW9uU3RhdHVzLAorICAg IERpYWdGaWVsZCwKKyAgICBFeGVjU3RhdHVzLAorICAgIFBHY29ubiwKKyAgICBQR3Jlc3VsdCwK KyAgICBjb25uZWN0LAorICAgIGNvbm5zdHIsCisgICAgbG9hZF9saWJwcV9oYW5kbGUsCisgICAg cmVnaXN0ZXJfdHlwZV9pbmZvLAorKQorCitfX2FsbF9fID0gWworICAgICJlcnJvcnMiLAorICAg ICJMaWJwcUVycm9yIiwKKyAgICAiTGlicHFXYXJuaW5nIiwKKyAgICAiQ29ubmVjdGlvblN0YXR1 cyIsCisgICAgIkRpYWdGaWVsZCIsCisgICAgIkV4ZWNTdGF0dXMiLAorICAgICJQR2Nvbm4iLAor ICAgICJQR3Jlc3VsdCIsCisgICAgImNvbm5lY3QiLAorICAgICJjb25uc3RyIiwKKyAgICAibG9h ZF9saWJwcV9oYW5kbGUiLAorICAgICJyZWdpc3Rlcl90eXBlX2luZm8iLAorXQpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcHl0ZXN0L2xpYnBxL19jb3JlLnB5IGIvc3JjL3Rlc3QvcHl0ZXN0L2xpYnBx L19jb3JlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZDc3OTk2 ZDU3MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3B5dGVzdC9saWJwcS9fY29yZS5weQpA QCAtMCwwICsxLDQ4OSBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjUsIFBvc3RncmVTUUwgR2xvYmFs IERldmVsb3BtZW50IEdyb3VwCisKKyIiIgorQ29yZSBsaWJwcSBmdW5jdGlvbmFsaXR5IC0gY3R5 cGVzIGJpbmRpbmdzIGFuZCBjb25uZWN0aW9uIGhhbmRsaW5nLgorIiIiCisKK2ltcG9ydCBjb250 ZXh0bGliCitpbXBvcnQgY3R5cGVzCitpbXBvcnQgZGF0ZXRpbWUKK2ltcG9ydCBkZWNpbWFsCitp bXBvcnQgZW51bQoraW1wb3J0IGpzb24KK2ltcG9ydCBwbGF0Zm9ybQoraW1wb3J0IG9zCitpbXBv cnQgdXVpZAorZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2FsbGFibGUsIERpY3QsIE9wdGlvbmFs CisKK2Zyb20gLmVycm9ycyBpbXBvcnQgTGlicHFFcnJvciwgbWFrZV9lcnJvcgorCisKKyMgUEdf RElBRyBmaWVsZCBpZGVudGlmaWVycyBmcm9tIHBvc3RncmVzX2V4dC5oCitjbGFzcyBEaWFnRmll bGQoZW51bS5JbnRFbnVtKToKKyAgICBTRVZFUklUWSA9IG9yZCgiUyIpCisgICAgU0VWRVJJVFlf Tk9OTE9DQUxJWkVEID0gb3JkKCJWIikKKyAgICBTUUxTVEFURSA9IG9yZCgiQyIpCisgICAgTUVT U0FHRV9QUklNQVJZID0gb3JkKCJNIikKKyAgICBNRVNTQUdFX0RFVEFJTCA9IG9yZCgiRCIpCisg ICAgTUVTU0FHRV9ISU5UID0gb3JkKCJIIikKKyAgICBTVEFURU1FTlRfUE9TSVRJT04gPSBvcmQo IlAiKQorICAgIElOVEVSTkFMX1BPU0lUSU9OID0gb3JkKCJwIikKKyAgICBJTlRFUk5BTF9RVUVS WSA9IG9yZCgicSIpCisgICAgQ09OVEVYVCA9IG9yZCgiVyIpCisgICAgU0NIRU1BX05BTUUgPSBv cmQoInMiKQorICAgIFRBQkxFX05BTUUgPSBvcmQoInQiKQorICAgIENPTFVNTl9OQU1FID0gb3Jk KCJjIikKKyAgICBEQVRBVFlQRV9OQU1FID0gb3JkKCJkIikKKyAgICBDT05TVFJBSU5UX05BTUUg PSBvcmQoIm4iKQorICAgIFNPVVJDRV9GSUxFID0gb3JkKCJGIikKKyAgICBTT1VSQ0VfTElORSA9 IG9yZCgiTCIpCisgICAgU09VUkNFX0ZVTkNUSU9OID0gb3JkKCJSIikKKworCitjbGFzcyBDb25u ZWN0aW9uU3RhdHVzKGVudW0uSW50RW51bSk6CisgICAgIiIiUG9zdGdyZVNRTCBjb25uZWN0aW9u IHN0YXR1cyBjb2RlcyBmcm9tIGxpYnBxLiIiIgorCisgICAgQ09OTkVDVElPTl9PSyA9IDAKKyAg ICBDT05ORUNUSU9OX0JBRCA9IDEKKworCitjbGFzcyBFeGVjU3RhdHVzKGVudW0uSW50RW51bSk6 CisgICAgIiIiUG9zdGdyZVNRTCByZXN1bHQgc3RhdHVzIGNvZGVzIGZyb20gUFFyZXN1bHRTdGF0 dXMuIiIiCisKKyAgICBQR1JFU19FTVBUWV9RVUVSWSA9IDAKKyAgICBQR1JFU19DT01NQU5EX09L ID0gMQorICAgIFBHUkVTX1RVUExFU19PSyA9IDIKKyAgICBQR1JFU19DT1BZX09VVCA9IDMKKyAg ICBQR1JFU19DT1BZX0lOID0gNAorICAgIFBHUkVTX0JBRF9SRVNQT05TRSA9IDUKKyAgICBQR1JF U19OT05GQVRBTF9FUlJPUiA9IDYKKyAgICBQR1JFU19GQVRBTF9FUlJPUiA9IDcKKyAgICBQR1JF U19DT1BZX0JPVEggPSA4CisgICAgUEdSRVNfU0lOR0xFX1RVUExFID0gOQorICAgIFBHUkVTX1BJ UEVMSU5FX1NZTkMgPSAxMAorICAgIFBHUkVTX1BJUEVMSU5FX0FCT1JURUQgPSAxMQorCisKK2Ns YXNzIF9QR2Nvbm4oY3R5cGVzLlN0cnVjdHVyZSk6CisgICAgcGFzcworCisKK2NsYXNzIF9QR3Jl c3VsdChjdHlwZXMuU3RydWN0dXJlKToKKyAgICBwYXNzCisKKworX1BHY29ubl9wID0gY3R5cGVz LlBPSU5URVIoX1BHY29ubikKK19QR3Jlc3VsdF9wID0gY3R5cGVzLlBPSU5URVIoX1BHcmVzdWx0 KQorCisKK2RlZiBsb2FkX2xpYnBxX2hhbmRsZShsaWJkaXIsIGJpbmRpcik6CisgICAgIiIiCisg ICAgTG9hZHMgYSBjdHlwZXMgaGFuZGxlIGZvciBsaWJwcS4gU29tZSBjb21tb24gZnVuY3Rpb24g cHJvdG90eXBlcyBhcmUKKyAgICBpbml0aWFsaXplZCBmb3IgZ2VuZXJhbCB1c2UuCisgICAgIiIi CisgICAgc3lzdGVtID0gcGxhdGZvcm0uc3lzdGVtKCkKKworICAgIGlmIHN5c3RlbSBpbiAoIkxp bnV4IiwgIkZyZWVCU0QiLCAiTmV0QlNEIiwgIk9wZW5CU0QiKToKKyAgICAgICAgbmFtZSA9ICJs aWJwcS5zby41IgorICAgIGVsaWYgc3lzdGVtID09ICJEYXJ3aW4iOgorICAgICAgICBuYW1lID0g ImxpYnBxLjUuZHlsaWIiCisgICAgZWxpZiBzeXN0ZW0gPT0gIldpbmRvd3MiOgorICAgICAgICBu YW1lID0gImxpYnBxLmRsbCIKKyAgICBlbHNlOgorICAgICAgICBhc3NlcnQgRmFsc2UsIGYidGhl IGxpYnBxIGZpeHR1cmUgbXVzdCBiZSB1cGRhdGVkIGZvciB7c3lzdGVtfSIKKworICAgIGlmIHN5 c3RlbSA9PSAiV2luZG93cyI6CisgICAgICAgICMgT24gV2luZG93cywgbGlicHEuZGxsIGlzIGNv bmZ1c2luZ2x5IGluIGJpbmRpciwgbm90IGxpYmRpci4gQW5kIHdlCisgICAgICAgICMgbmVlZCB0 byBhZGQgdGhpcyBkaXJlY3RvcnkgdGhlIHRoZSBzZWFyY2ggcGF0aC4KKyAgICAgICAgbGlicHFf cGF0aCA9IG9zLnBhdGguam9pbihiaW5kaXIsIG5hbWUpCisgICAgICAgIGxpYiA9IGN0eXBlcy5D RExMKGxpYnBxX3BhdGgpCisgICAgZWxzZToKKyAgICAgICAgbGlicHFfcGF0aCA9IG9zLnBhdGgu am9pbihsaWJkaXIsIG5hbWUpCisgICAgICAgIGxpYiA9IGN0eXBlcy5DRExMKGxpYnBxX3BhdGgp CisKKyAgICAjCisgICAgIyBGdW5jdGlvbiBQcm90b3R5cGVzCisgICAgIworCisgICAgbGliLlBR Y29ubmVjdGRiLnJlc3R5cGUgPSBfUEdjb25uX3AKKyAgICBsaWIuUFFjb25uZWN0ZGIuYXJndHlw ZXMgPSBbY3R5cGVzLmNfY2hhcl9wXQorCisgICAgbGliLlBRc3RhdHVzLnJlc3R5cGUgPSBjdHlw ZXMuY19pbnQKKyAgICBsaWIuUFFzdGF0dXMuYXJndHlwZXMgPSBbX1BHY29ubl9wXQorCisgICAg bGliLlBRZXhlYy5yZXN0eXBlID0gX1BHcmVzdWx0X3AKKyAgICBsaWIuUFFleGVjLmFyZ3R5cGVz ID0gW19QR2Nvbm5fcCwgY3R5cGVzLmNfY2hhcl9wXQorCisgICAgbGliLlBRcmVzdWx0U3RhdHVz LnJlc3R5cGUgPSBjdHlwZXMuY19pbnQKKyAgICBsaWIuUFFyZXN1bHRTdGF0dXMuYXJndHlwZXMg PSBbX1BHcmVzdWx0X3BdCisKKyAgICBsaWIuUFFjbGVhci5yZXN0eXBlID0gTm9uZQorICAgIGxp Yi5QUWNsZWFyLmFyZ3R5cGVzID0gW19QR3Jlc3VsdF9wXQorCisgICAgbGliLlBRZXJyb3JNZXNz YWdlLnJlc3R5cGUgPSBjdHlwZXMuY19jaGFyX3AKKyAgICBsaWIuUFFlcnJvck1lc3NhZ2UuYXJn dHlwZXMgPSBbX1BHY29ubl9wXQorCisgICAgbGliLlBRZmluaXNoLnJlc3R5cGUgPSBOb25lCisg ICAgbGliLlBRZmluaXNoLmFyZ3R5cGVzID0gW19QR2Nvbm5fcF0KKworICAgIGxpYi5QUXJlc3Vs dEVycm9yTWVzc2FnZS5yZXN0eXBlID0gY3R5cGVzLmNfY2hhcl9wCisgICAgbGliLlBRcmVzdWx0 RXJyb3JNZXNzYWdlLmFyZ3R5cGVzID0gW19QR3Jlc3VsdF9wXQorCisgICAgbGliLlBRbnR1cGxl cy5yZXN0eXBlID0gY3R5cGVzLmNfaW50CisgICAgbGliLlBRbnR1cGxlcy5hcmd0eXBlcyA9IFtf UEdyZXN1bHRfcF0KKworICAgIGxpYi5QUW5maWVsZHMucmVzdHlwZSA9IGN0eXBlcy5jX2ludAor ICAgIGxpYi5QUW5maWVsZHMuYXJndHlwZXMgPSBbX1BHcmVzdWx0X3BdCisKKyAgICBsaWIuUFFn ZXR2YWx1ZS5yZXN0eXBlID0gY3R5cGVzLmNfY2hhcl9wCisgICAgbGliLlBRZ2V0dmFsdWUuYXJn dHlwZXMgPSBbX1BHcmVzdWx0X3AsIGN0eXBlcy5jX2ludCwgY3R5cGVzLmNfaW50XQorCisgICAg bGliLlBRZ2V0aXNudWxsLnJlc3R5cGUgPSBjdHlwZXMuY19pbnQKKyAgICBsaWIuUFFnZXRpc251 bGwuYXJndHlwZXMgPSBbX1BHcmVzdWx0X3AsIGN0eXBlcy5jX2ludCwgY3R5cGVzLmNfaW50XQor CisgICAgbGliLlBRZnR5cGUucmVzdHlwZSA9IGN0eXBlcy5jX3VpbnQKKyAgICBsaWIuUFFmdHlw ZS5hcmd0eXBlcyA9IFtfUEdyZXN1bHRfcCwgY3R5cGVzLmNfaW50XQorCisgICAgbGliLlBRcmVz dWx0RXJyb3JGaWVsZC5yZXN0eXBlID0gY3R5cGVzLmNfY2hhcl9wCisgICAgbGliLlBRcmVzdWx0 RXJyb3JGaWVsZC5hcmd0eXBlcyA9IFtfUEdyZXN1bHRfcCwgY3R5cGVzLmNfaW50XQorCisgICAg cmV0dXJuIGxpYgorCisKKyMgUG9zdGdyZVNRTCB0eXBlIE9JRHMgYW5kIGNvbnZlcnNpb24gc3lz dGVtCisjIFR5cGUgcmVnaXN0cnkgLSBtYXBzIE9JRCB0byBjb252ZXJ0ZXIgZnVuY3Rpb24KK190 eXBlX2NvbnZlcnRlcnM6IERpY3RbaW50LCBDYWxsYWJsZVtbc3RyXSwgQW55XV0gPSB7fQorX2Fy cmF5X3RvX2VsZW1fbWFwOiBEaWN0W2ludCwgaW50XSA9IHt9CisKKworZGVmIHJlZ2lzdGVyX3R5 cGVfaW5mbygKKyAgICBuYW1lOiBzdHIsIG9pZDogaW50LCBhcnJheV9vaWQ6IGludCwgY29udmVy dGVyOiBDYWxsYWJsZVtbc3RyXSwgQW55XQorKToKKyAgICAiIiIKKyAgICBSZWdpc3RlciBhIFBv c3RncmVTUUwgdHlwZSB3aXRoIGl0cyBPSUQsIGFycmF5IE9JRCwgYW5kIGNvbnZlcnNpb24gZnVu Y3Rpb24uCisKKyAgICBVc2FnZToKKyAgICAgICAgcmVnaXN0ZXJfdHlwZV9pbmZvKCJib29sIiwg MTYsIDEwMDAsIGxhbWJkYSB2OiB2ID09ICJ0IikKKyAgICAiIiIKKyAgICBfdHlwZV9jb252ZXJ0 ZXJzW29pZF0gPSBjb252ZXJ0ZXIKKyAgICBpZiBhcnJheV9vaWQgaXMgbm90IE5vbmU6CisgICAg ICAgIF9hcnJheV90b19lbGVtX21hcFthcnJheV9vaWRdID0gb2lkCisKKworZGVmIF9wYXJzZV9h cnJheSh2YWx1ZTogc3RyLCBlbGVtX29pZDogaW50KToKKyAgICAiIiJQYXJzZSBQb3N0Z3JlU1FM IGFycmF5IHN5bnRheCBpbnRvIG5lc3RlZCBQeXRob24gbGlzdHMuIiIiCisgICAgc3RhY2s6IGxp c3RbbGlzdF0gPSBbXQorICAgIGN1cnJlbnRfZWxlbWVudDogbGlzdFtzdHJdID0gW10KKyAgICBp bl9xdW90ZXMgPSBGYWxzZQorICAgIHdhc19xdW90ZWQgPSBGYWxzZQorICAgIHBvcyA9IDAKKwor ICAgIHdoaWxlIHBvcyA8IGxlbih2YWx1ZSk6CisgICAgICAgIGNoYXIgPSB2YWx1ZVtwb3NdCisK KyAgICAgICAgaWYgaW5fcXVvdGVzOgorICAgICAgICAgICAgaWYgY2hhciA9PSAiXFwiOgorICAg ICAgICAgICAgICAgIG5leHRfY2hhciA9IHZhbHVlW3BvcyArIDFdCisgICAgICAgICAgICAgICAg aWYgbmV4dF9jaGFyIG5vdCBpbiAnIlxcJzoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgTm90 SW1wbGVtZW50ZWRFcnJvcignT25seSBcXCIgYW5kIFxcXFwgZXNjYXBlcyBhcmUgc3VwcG9ydGVk JykKKyAgICAgICAgICAgICAgICBjdXJyZW50X2VsZW1lbnQuYXBwZW5kKG5leHRfY2hhcikKKyAg ICAgICAgICAgICAgICBwb3MgKz0gMgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAg ICAgICBlbGlmIGNoYXIgPT0gJyInOgorICAgICAgICAgICAgICAgIGluX3F1b3RlcyA9IEZhbHNl CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGN1cnJlbnRfZWxlbWVudC5hcHBl bmQoY2hhcikKKyAgICAgICAgZWxpZiBjaGFyID09ICciJzoKKyAgICAgICAgICAgIGluX3F1b3Rl cyA9IFRydWUKKyAgICAgICAgICAgIHdhc19xdW90ZWQgPSBUcnVlCisgICAgICAgIGVsaWYgY2hh ciA9PSAieyI6CisgICAgICAgICAgICBzdGFjay5hcHBlbmQoW10pCisgICAgICAgIGVsaWYgY2hh ciBpbiAiLH0iOgorICAgICAgICAgICAgaWYgY3VycmVudF9lbGVtZW50IG9yIHdhc19xdW90ZWQ6 CisgICAgICAgICAgICAgICAgZWxlbSA9ICIiLmpvaW4oY3VycmVudF9lbGVtZW50KQorICAgICAg ICAgICAgICAgIGlmIG5vdCB3YXNfcXVvdGVkIGFuZCBlbGVtID09ICJOVUxMIjoKKyAgICAgICAg ICAgICAgICAgICAgc3RhY2tbLTFdLmFwcGVuZChOb25lKQorICAgICAgICAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgICAgICAgIHN0YWNrWy0xXS5hcHBlbmQoX2NvbnZlcnRfcGdfdmFsdWUo ZWxlbSwgZWxlbV9vaWQpKQorICAgICAgICAgICAgICAgIGN1cnJlbnRfZWxlbWVudCA9IFtdCisg ICAgICAgICAgICAgICAgd2FzX3F1b3RlZCA9IEZhbHNlCisgICAgICAgICAgICBpZiBjaGFyID09 ICJ9IjoKKyAgICAgICAgICAgICAgICBjb21wbGV0ZWQgPSBzdGFjay5wb3AoKQorICAgICAgICAg ICAgICAgIGlmIG5vdCBzdGFjazoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRl ZAorICAgICAgICAgICAgICAgIHN0YWNrWy0xXS5hcHBlbmQoY29tcGxldGVkKQorICAgICAgICBl bGlmIGNoYXIgIT0gIiAiOgorICAgICAgICAgICAgY3VycmVudF9lbGVtZW50LmFwcGVuZChjaGFy KQorICAgICAgICBwb3MgKz0gMQorCisgICAgcmFpc2UgVmFsdWVFcnJvcihmIk1hbGZvcm1lZCBh cnJheSBsaXRlcmFsOiB7dmFsdWV9IikKKworCisjIFJlZ2lzdGVyIHN0YW5kYXJkIFBvc3RncmVT UUwgdHlwZXMgdGhhdCB3ZSdsbCBsaWtlbHkgZW5jb3VudGVyIGluIHRlc3RzCityZWdpc3Rlcl90 eXBlX2luZm8oImJvb2wiLCAxNiwgMTAwMCwgbGFtYmRhIHY6IHYgPT0gInQiKQorcmVnaXN0ZXJf dHlwZV9pbmZvKCJpbnQyIiwgMjEsIDEwMDUsIGludCkKK3JlZ2lzdGVyX3R5cGVfaW5mbygiaW50 NCIsIDIzLCAxMDA3LCBpbnQpCityZWdpc3Rlcl90eXBlX2luZm8oImludDgiLCAyMCwgMTAxNiwg aW50KQorcmVnaXN0ZXJfdHlwZV9pbmZvKCJmbG9hdDQiLCA3MDAsIDEwMjEsIGZsb2F0KQorcmVn aXN0ZXJfdHlwZV9pbmZvKCJmbG9hdDgiLCA3MDEsIDEwMjIsIGZsb2F0KQorcmVnaXN0ZXJfdHlw ZV9pbmZvKCJudW1lcmljIiwgMTcwMCwgMTIzMSwgZGVjaW1hbC5EZWNpbWFsKQorcmVnaXN0ZXJf dHlwZV9pbmZvKCJ0ZXh0IiwgMjUsIDEwMDksIHN0cikKK3JlZ2lzdGVyX3R5cGVfaW5mbygidmFy Y2hhciIsIDEwNDMsIDEwMTUsIHN0cikKK3JlZ2lzdGVyX3R5cGVfaW5mbygiZGF0ZSIsIDEwODIs IDExODIsIGRhdGV0aW1lLmRhdGUuZnJvbWlzb2Zvcm1hdCkKK3JlZ2lzdGVyX3R5cGVfaW5mbygi dGltZSIsIDEwODMsIDExODMsIGRhdGV0aW1lLnRpbWUuZnJvbWlzb2Zvcm1hdCkKK3JlZ2lzdGVy X3R5cGVfaW5mbygidGltZXN0YW1wIiwgMTExNCwgMTExNSwgZGF0ZXRpbWUuZGF0ZXRpbWUuZnJv bWlzb2Zvcm1hdCkKK3JlZ2lzdGVyX3R5cGVfaW5mbygidGltZXN0YW1wdHoiLCAxMTg0LCAxMTg1 LCBkYXRldGltZS5kYXRldGltZS5mcm9taXNvZm9ybWF0KQorcmVnaXN0ZXJfdHlwZV9pbmZvKCJ1 dWlkIiwgMjk1MCwgMjk1MSwgdXVpZC5VVUlEKQorcmVnaXN0ZXJfdHlwZV9pbmZvKCJqc29uIiwg MTE0LCAxOTksIGpzb24ubG9hZHMpCityZWdpc3Rlcl90eXBlX2luZm8oImpzb25iIiwgMzgwMiwg MzgwNywganNvbi5sb2FkcykKKworCitkZWYgX2NvbnZlcnRfcGdfdmFsdWUodmFsdWU6IHN0ciwg dHlwZV9vaWQ6IGludCkgLT4gQW55OgorICAgICIiIgorICAgIENvbnZlcnQgUG9zdGdyZVNRTCBz dHJpbmcgdmFsdWUgdG8gYXBwcm9wcmlhdGUgUHl0aG9uIHR5cGUgYmFzZWQgb24gT0lELgorICAg IFVzZXMgdGhlIHJlZ2lzdGVyZWQgdHlwZSBjb252ZXJ0ZXJzIGZyb20gcmVnaXN0ZXJfdHlwZV9p bmZvKCkuCisgICAgIiIiCisgICAgIyBDaGVjayBpZiBpdCdzIGFuIGFycmF5IHR5cGUKKyAgICBp ZiB0eXBlX29pZCBpbiBfYXJyYXlfdG9fZWxlbV9tYXA6CisgICAgICAgIGVsZW1fb2lkID0gX2Fy cmF5X3RvX2VsZW1fbWFwW3R5cGVfb2lkXQorICAgICAgICByZXR1cm4gX3BhcnNlX2FycmF5KHZh bHVlLCBlbGVtX29pZCkKKworICAgICMgVXNlIHJlZ2lzdGVyZWQgY29udmVydGVyIGlmIGF2YWls YWJsZQorICAgIGNvbnZlcnRlciA9IF90eXBlX2NvbnZlcnRlcnMuZ2V0KHR5cGVfb2lkKQorICAg IGlmIGNvbnZlcnRlcjoKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRlcih2YWx1ZSkKKworICAgICMg VW5rbm93biB0eXBlcyAtIHJldHVybiBhcyBzdHJpbmcKKyAgICByZXR1cm4gdmFsdWUKKworCitk ZWYgc2ltcGxpZnlfcXVlcnlfcmVzdWx0cyhyZXN1bHRzKSAtPiBBbnk6CisgICAgIiIiCisgICAg U2ltcGxpZnkgdGhlIHJlc3VsdHMgb2YgYSBxdWVyeSBzbyB0aGF0IHRoZSBjYWxsZXIgZG9lc24n dCBoYXZlIHRvIHVucGFjaworICAgIGxpc3RzIGFuZCB0dXBsZXMgb2YgbGVuZ3RoIDEuCisgICAg IiIiCisgICAgaWYgbGVuKHJlc3VsdHMpID09IDE6CisgICAgICAgIHJvdyA9IHJlc3VsdHNbMF0K KyAgICAgICAgaWYgbGVuKHJvdykgPT0gMToKKyAgICAgICAgICAgICMgSWYgdGhlcmUncyBvbmx5 IGEgc2luZ2xlIGNlbGwsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZQorICAgICAgICAgICAgcmV0dXJu IHJvd1swXQorICAgICAgICAjIElmIHRoZXJlJ3Mgb25seSBhIHNpbmdsZSByb3csIGp1c3QgcmV0 dXJuIHRoYXQgcm93CisgICAgICAgIHJldHVybiByb3cKKworICAgIGlmIGxlbihyZXN1bHRzKSAh PSAwIGFuZCBsZW4ocmVzdWx0c1swXSkgPT0gMToKKyAgICAgICAgIyBJZiB0aGVyZSdzIG9ubHkg YSBzaW5nbGUgY29sdW1uLCByZXR1cm4gYW4gYXJyYXkgb2YgdmFsdWVzCisgICAgICAgIHJldHVy biBbcm93WzBdIGZvciByb3cgaW4gcmVzdWx0c10KKworICAgICMgaWYgdGhlcmUgYXJlIG11bHRp cGxlIHJvd3MgYW5kIGNvbHVtbnMsIHJldHVybiB0aGUgcmVzdWx0cyBhcyBpcworICAgIHJldHVy biByZXN1bHRzCisKKworY2xhc3MgUEdyZXN1bHQoY29udGV4dGxpYi5BYnN0cmFjdENvbnRleHRN YW5hZ2VyKToKKyAgICAiIiJXcmFwcyBhIHJhdyBfUEdyZXN1bHRfcCB3aXRoIGEgbW9yZSBmcmll bmRseSBpbnRlcmZhY2UuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbGliOiBjdHlwZXMu Q0RMTCwgcmVzOiBfUEdyZXN1bHRfcCk6CisgICAgICAgIHNlbGYuX2xpYiA9IGxpYgorICAgICAg ICBzZWxmLl9yZXMgPSByZXMKKworICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqZXhjKToKKyAgICAg ICAgc2VsZi5fbGliLlBRY2xlYXIoc2VsZi5fcmVzKQorICAgICAgICBzZWxmLl9yZXMgPSBOb25l CisKKyAgICBkZWYgc3RhdHVzKHNlbGYpIC0+IEV4ZWNTdGF0dXM6CisgICAgICAgIHJldHVybiBF eGVjU3RhdHVzKHNlbGYuX2xpYi5QUXJlc3VsdFN0YXR1cyhzZWxmLl9yZXMpKQorCisgICAgZGVm IGVycm9yX21lc3NhZ2Uoc2VsZik6CisgICAgICAgICIiIlJldHVybnMgdGhlIGVycm9yIG1lc3Nh Z2UgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVzdWx0LiIiIgorICAgICAgICBtc2cgPSBzZWxmLl9s aWIuUFFyZXN1bHRFcnJvck1lc3NhZ2Uoc2VsZi5fcmVzKQorICAgICAgICByZXR1cm4gbXNnLmRl Y29kZSgpIGlmIG1zZyBlbHNlICIiCisKKyAgICBkZWYgX2dldF9lcnJvcl9maWVsZChzZWxmLCBm aWVsZDogRGlhZ0ZpZWxkKSAtPiBPcHRpb25hbFtzdHJdOgorICAgICAgICAiIiJHZXQgYW4gZXJy b3IgZmllbGQgZnJvbSB0aGUgcmVzdWx0IHVzaW5nIFBRcmVzdWx0RXJyb3JGaWVsZC4iIiIKKyAg ICAgICAgdmFsID0gc2VsZi5fbGliLlBRcmVzdWx0RXJyb3JGaWVsZChzZWxmLl9yZXMsIGludChm aWVsZCkpCisgICAgICAgIHJldHVybiB2YWwuZGVjb2RlKCkgaWYgdmFsIGVsc2UgTm9uZQorCisg ICAgZGVmIHJhaXNlX2Vycm9yKHNlbGYpIC0+IE5vbmU6CisgICAgICAgICIiIgorICAgICAgICBS YWlzZXMgYW4gYXBwcm9wcmlhdGUgTGlicHFFcnJvciBzdWJjbGFzcyBiYXNlZCBvbiB0aGUgZXJy b3IgZmllbGRzLgorICAgICAgICBFeHRyYWN0cyBTUUxTVEFURSBhbmQgb3RoZXIgZGlhZ25vc3Rp YyBpbmZvcm1hdGlvbiBmcm9tIHRoZSByZXN1bHQuCisgICAgICAgICIiIgorICAgICAgICBpZiBu b3Qgc2VsZi5fcmVzOgorICAgICAgICAgICAgcmFpc2UgTGlicHFFcnJvcigicXVlcnkgZmFpbGVk OiBvdXQgb2YgbWVtb3J5IG9yIGNvbm5lY3Rpb24gbG9zdCIpCisKKyAgICAgICAgc3Fsc3RhdGUg PSBzZWxmLl9nZXRfZXJyb3JfZmllbGQoRGlhZ0ZpZWxkLlNRTFNUQVRFKQorICAgICAgICBwcmlt YXJ5ID0gc2VsZi5fZ2V0X2Vycm9yX2ZpZWxkKERpYWdGaWVsZC5NRVNTQUdFX1BSSU1BUlkpCisg ICAgICAgIGRldGFpbCA9IHNlbGYuX2dldF9lcnJvcl9maWVsZChEaWFnRmllbGQuTUVTU0FHRV9E RVRBSUwpCisgICAgICAgIGhpbnQgPSBzZWxmLl9nZXRfZXJyb3JfZmllbGQoRGlhZ0ZpZWxkLk1F U1NBR0VfSElOVCkKKyAgICAgICAgc2V2ZXJpdHkgPSBzZWxmLl9nZXRfZXJyb3JfZmllbGQoRGlh Z0ZpZWxkLlNFVkVSSVRZKQorICAgICAgICBzY2hlbWFfbmFtZSA9IHNlbGYuX2dldF9lcnJvcl9m aWVsZChEaWFnRmllbGQuU0NIRU1BX05BTUUpCisgICAgICAgIHRhYmxlX25hbWUgPSBzZWxmLl9n ZXRfZXJyb3JfZmllbGQoRGlhZ0ZpZWxkLlRBQkxFX05BTUUpCisgICAgICAgIGNvbHVtbl9uYW1l ID0gc2VsZi5fZ2V0X2Vycm9yX2ZpZWxkKERpYWdGaWVsZC5DT0xVTU5fTkFNRSkKKyAgICAgICAg ZGF0YXR5cGVfbmFtZSA9IHNlbGYuX2dldF9lcnJvcl9maWVsZChEaWFnRmllbGQuREFUQVRZUEVf TkFNRSkKKyAgICAgICAgY29uc3RyYWludF9uYW1lID0gc2VsZi5fZ2V0X2Vycm9yX2ZpZWxkKERp YWdGaWVsZC5DT05TVFJBSU5UX05BTUUpCisgICAgICAgIGNvbnRleHQgPSBzZWxmLl9nZXRfZXJy b3JfZmllbGQoRGlhZ0ZpZWxkLkNPTlRFWFQpCisKKyAgICAgICAgcG9zaXRpb25fc3RyID0gc2Vs Zi5fZ2V0X2Vycm9yX2ZpZWxkKERpYWdGaWVsZC5TVEFURU1FTlRfUE9TSVRJT04pCisgICAgICAg IHBvc2l0aW9uID0gaW50KHBvc2l0aW9uX3N0cikgaWYgcG9zaXRpb25fc3RyIGVsc2UgTm9uZQor CisgICAgICAgIHJhaXNlIG1ha2VfZXJyb3IoCisgICAgICAgICAgICBwcmltYXJ5IG9yIHNlbGYu ZXJyb3JfbWVzc2FnZSgpLAorICAgICAgICAgICAgc3Fsc3RhdGU9c3Fsc3RhdGUsCisgICAgICAg ICAgICBzZXZlcml0eT1zZXZlcml0eSwKKyAgICAgICAgICAgIHByaW1hcnk9cHJpbWFyeSwKKyAg ICAgICAgICAgIGRldGFpbD1kZXRhaWwsCisgICAgICAgICAgICBoaW50PWhpbnQsCisgICAgICAg ICAgICBzY2hlbWFfbmFtZT1zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgIHRhYmxlX25hbWU9dGFi bGVfbmFtZSwKKyAgICAgICAgICAgIGNvbHVtbl9uYW1lPWNvbHVtbl9uYW1lLAorICAgICAgICAg ICAgZGF0YXR5cGVfbmFtZT1kYXRhdHlwZV9uYW1lLAorICAgICAgICAgICAgY29uc3RyYWludF9u YW1lPWNvbnN0cmFpbnRfbmFtZSwKKyAgICAgICAgICAgIHBvc2l0aW9uPXBvc2l0aW9uLAorICAg ICAgICAgICAgY29udGV4dD1jb250ZXh0LAorICAgICAgICApCisKKyAgICBkZWYgZmV0Y2hfYWxs KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgRmV0Y2ggYWxsIHJvd3MgYW5kIGNvbnZlcnQg dG8gUHl0aG9uIHR5cGVzLgorICAgICAgICBSZXR1cm5zIGEgbGlzdCBvZiB0dXBsZXMsIHdpdGgg dmFsdWVzIGNvbnZlcnRlZCBiYXNlZCBvbiB0aGVpciBQb3N0Z3JlU1FMIHR5cGUuCisgICAgICAg ICIiIgorICAgICAgICBucm93cyA9IHNlbGYuX2xpYi5QUW50dXBsZXMoc2VsZi5fcmVzKQorICAg ICAgICBuY29scyA9IHNlbGYuX2xpYi5QUW5maWVsZHMoc2VsZi5fcmVzKQorCisgICAgICAgICMg R2V0IHR5cGUgT0lEcyBmb3IgZWFjaCBjb2x1bW4KKyAgICAgICAgdHlwZV9vaWRzID0gW3NlbGYu X2xpYi5QUWZ0eXBlKHNlbGYuX3JlcywgY29sKSBmb3IgY29sIGluIHJhbmdlKG5jb2xzKV0KKwor ICAgICAgICByZXN1bHRzID0gW10KKyAgICAgICAgZm9yIHJvdyBpbiByYW5nZShucm93cyk6Cisg ICAgICAgICAgICByb3dfZGF0YSA9IFtdCisgICAgICAgICAgICBmb3IgY29sIGluIHJhbmdlKG5j b2xzKToKKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9saWIuUFFnZXRpc251bGwoc2VsZi5fcmVz LCByb3csIGNvbCk6CisgICAgICAgICAgICAgICAgICAgIHJvd19kYXRhLmFwcGVuZChOb25lKQor ICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2VsZi5f bGliLlBRZ2V0dmFsdWUoc2VsZi5fcmVzLCByb3csIGNvbCkuZGVjb2RlKCkKKyAgICAgICAgICAg ICAgICAgICAgcm93X2RhdGEuYXBwZW5kKF9jb252ZXJ0X3BnX3ZhbHVlKHZhbHVlLCB0eXBlX29p ZHNbY29sXSkpCisgICAgICAgICAgICByZXN1bHRzLmFwcGVuZCh0dXBsZShyb3dfZGF0YSkpCisK KyAgICAgICAgcmV0dXJuIHJlc3VsdHMKKworCitjbGFzcyBQR2Nvbm4oY29udGV4dGxpYi5BYnN0 cmFjdENvbnRleHRNYW5hZ2VyKToKKyAgICAiIiIKKyAgICBXcmFwcyBhIHJhdyBfUEdjb25uX3Ag d2l0aCBhIG1vcmUgZnJpZW5kbHkgaW50ZXJmYWNlLiBUaGlzIGlzIGp1c3QgYQorICAgIHN0dWI7 IGl0J3MgZXhwZWN0ZWQgdG8gZ3Jvdy4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXygKKyAg ICAgICAgc2VsZiwKKyAgICAgICAgbGliOiBjdHlwZXMuQ0RMTCwKKyAgICAgICAgaGFuZGxlOiBf UEdjb25uX3AsCisgICAgICAgIHN0YWNrOiBjb250ZXh0bGliLkV4aXRTdGFjaywKKyAgICApOgor ICAgICAgICBzZWxmLl9saWIgPSBsaWIKKyAgICAgICAgc2VsZi5faGFuZGxlID0gaGFuZGxlCisg ICAgICAgIHNlbGYuX3N0YWNrID0gc3RhY2sKKworICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqZXhj KToKKyAgICAgICAgc2VsZi5fbGliLlBRZmluaXNoKHNlbGYuX2hhbmRsZSkKKyAgICAgICAgc2Vs Zi5faGFuZGxlID0gTm9uZQorCisgICAgZGVmIGV4ZWMoc2VsZiwgcXVlcnk6IHN0cik6CisgICAg ICAgICIiIgorICAgICAgICBFeGVjdXRlcyBhIHF1ZXJ5IHZpYSBQUWV4ZWMoKSBhbmQgcmV0dXJu cyBhIFBHcmVzdWx0LgorICAgICAgICAiIiIKKyAgICAgICAgcmVzID0gc2VsZi5fbGliLlBRZXhl YyhzZWxmLl9oYW5kbGUsIHF1ZXJ5LmVuY29kZSgpKQorICAgICAgICByZXR1cm4gc2VsZi5fc3Rh Y2suZW50ZXJfY29udGV4dChQR3Jlc3VsdChzZWxmLl9saWIsIHJlcykpCisKKyAgICBkZWYgc3Fs KHNlbGYsIHF1ZXJ5OiBzdHIpOgorICAgICAgICAiIiIKKyAgICAgICAgRXhlY3V0ZXMgYSBxdWVy eSBhbmQgcmFpc2VzIGFuIGV4Y2VwdGlvbiBpZiBpdCBmYWlscy4KKyAgICAgICAgUmV0dXJucyB0 aGUgcXVlcnkgcmVzdWx0cyB3aXRoIGF1dG9tYXRpYyB0eXBlIGNvbnZlcnNpb24gYW5kIHNpbXBs aWZpY2F0aW9uLgorICAgICAgICBGb3IgY29tbWFuZHMgdGhhdCBkb24ndCByZXR1cm4gZGF0YSAo SU5TRVJULCBVUERBVEUsIGV0Yy4pLCByZXR1cm5zIE5vbmUuCisKKyAgICAgICAgRXhhbXBsZXM6 CisgICAgICAgIC0gU0VMRUNUIDEgLT4gMQorICAgICAgICAtIFNFTEVDVCAxLCAyIC0+ICgxLCAy KQorICAgICAgICAtIFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMpIC0+IFsxLCAy LCAzXQorICAgICAgICAtIFNFTEVDVCAqIEZST00gKFZBTFVFUyAoMSwgJ2EnKSwgKDIsICdiJykp IHQgLT4gWygxLCAnYScpLCAoMiwgJ2InKV0KKyAgICAgICAgLSBDUkVBVEUgVEFCTEUgLi4uIC0+ IE5vbmUKKyAgICAgICAgLSBJTlNFUlQgSU5UTyAuLi4gLT4gTm9uZQorICAgICAgICAiIiIKKyAg ICAgICAgcmVzID0gc2VsZi5leGVjKHF1ZXJ5KQorICAgICAgICBzdGF0dXMgPSByZXMuc3RhdHVz KCkKKworICAgICAgICBpZiBzdGF0dXMgPT0gRXhlY1N0YXR1cy5QR1JFU19GQVRBTF9FUlJPUjoK KyAgICAgICAgICAgIHJlcy5yYWlzZV9lcnJvcigpCisgICAgICAgIGVsaWYgc3RhdHVzID09IEV4 ZWNTdGF0dXMuUEdSRVNfQ09NTUFORF9PSzoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAg ICAgIGVsaWYgc3RhdHVzID09IEV4ZWNTdGF0dXMuUEdSRVNfVFVQTEVTX09LOgorICAgICAgICAg ICAgcmVzdWx0cyA9IHJlcy5mZXRjaF9hbGwoKQorICAgICAgICAgICAgcmV0dXJuIHNpbXBsaWZ5 X3F1ZXJ5X3Jlc3VsdHMocmVzdWx0cykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlcy5y YWlzZV9lcnJvcigpCisKKworZGVmIGNvbm5zdHIob3B0czogRGljdFtzdHIsIEFueV0pIC0+IHN0 cjoKKyAgICAiIiIKKyAgICBGbGF0dGVucyB0aGUgcHJvdmlkZWQgb3B0aW9ucyBpbnRvIGEgbGli cHEgY29ubmVjdGlvbiBzdHJpbmcuIFZhbHVlcworICAgIGFyZSBjb252ZXJ0ZWQgdG8gc3RyIGFu ZCBxdW90ZWQvZXNjYXBlZCBhcyBuZWNlc3NhcnkuCisgICAgIiIiCisgICAgc2V0dGluZ3MgPSBb XQorCisgICAgZm9yIGssIHYgaW4gb3B0cy5pdGVtcygpOgorICAgICAgICB2ID0gc3RyKHYpCisg ICAgICAgIGlmIG5vdCB2OgorICAgICAgICAgICAgdiA9ICInJyIKKyAgICAgICAgZWxzZToKKyAg ICAgICAgICAgIHYgPSB2LnJlcGxhY2UoIlxcIiwgIlxcXFwiKQorICAgICAgICAgICAgdiA9IHYu cmVwbGFjZSgiJyIsICJcXCciKQorCisgICAgICAgICAgICBpZiAiICIgaW4gdjoKKyAgICAgICAg ICAgICAgICB2ID0gZiIne3Z9JyIKKworICAgICAgICBzZXR0aW5ncy5hcHBlbmQoZiJ7a309e3Z9 IikKKworICAgIHJldHVybiAiICIuam9pbihzZXR0aW5ncykKKworCitkZWYgY29ubmVjdCgKKyAg ICBsaWJwcV9oYW5kbGU6IGN0eXBlcy5DRExMLAorICAgIHN0YWNrOiBjb250ZXh0bGliLkV4aXRT dGFjaywKKyAgICByZW1haW5pbmdfdGltZW91dF9mbjogQ2FsbGFibGVbW10sIGZsb2F0XSwKKyAg ICAqKm9wdHMsCispIC0+IFBHY29ubjoKKyAgICAiIiIKKyAgICBDb25uZWN0cyB0byBhIHNlcnZl ciwgdXNpbmcgdGhlIGdpdmVuIGNvbm5lY3Rpb24gb3B0aW9ucywgYW5kCisgICAgcmV0dXJucyBh IFBHY29ubiBvYmplY3Qgd3JhcHBpbmcgdGhlIGNvbm5lY3Rpb24gaGFuZGxlLiBBCisgICAgZmFp bHVyZSB3aWxsIHJhaXNlIExpYnBxRXJyb3IuCisKKyAgICBDb25uZWN0aW9ucyBob25vciBQR19U RVNUX1RJTUVPVVRfREVGQVVMVCB1bmxlc3MgY29ubmVjdF90aW1lb3V0IGlzCisgICAgZXhwbGlj aXRseSBvdmVycmlkZGVuIGluIG9wdHMuCisKKyAgICBBcmdzOgorICAgICAgICBsaWJwcV9oYW5k bGU6IGN0eXBlcy5DRExMIGhhbmRsZSB0byBsaWJwcSBsaWJyYXJ5CisgICAgICAgIHN0YWNrOiBF eGl0U3RhY2sgZm9yIG1hbmFnaW5nIGNvbm5lY3Rpb24gY2xlYW51cAorICAgICAgICByZW1haW5p bmdfdGltZW91dF9mbjogRnVuY3Rpb24gdGhhdCByZXR1cm5zIHJlbWFpbmluZyB0aW1lb3V0IGlu IHNlY29uZHMKKyAgICAgICAgKipvcHRzOiBDb25uZWN0aW9uIG9wdGlvbnMgKGhvc3QsIHBvcnQs IGRibmFtZSwgZXRjLikKKworICAgIFJldHVybnM6CisgICAgICAgIFBHY29ubjogQ29ubmVjdGVk IGRhdGFiYXNlIGNvbm5lY3Rpb24KKworICAgIFJhaXNlczoKKyAgICAgICAgTGlicHFFcnJvcjog SWYgY29ubmVjdGlvbiBmYWlscworICAgICIiIgorCisgICAgaWYgImNvbm5lY3RfdGltZW91dCIg bm90IGluIG9wdHM6CisgICAgICAgIHQgPSBpbnQocmVtYWluaW5nX3RpbWVvdXRfZm4oKSkKKyAg ICAgICAgb3B0c1siY29ubmVjdF90aW1lb3V0Il0gPSBtYXgodCwgMSkKKworICAgIGNvbm5fcCA9 IGxpYnBxX2hhbmRsZS5QUWNvbm5lY3RkYihjb25uc3RyKG9wdHMpLmVuY29kZSgpKQorCisgICAg IyBDaGVjayBjb25uZWN0aW9uIHN0YXR1cyBiZWZvcmUgYWRkaW5nIHRvIHN0YWNrCisgICAgaWYg bGlicHFfaGFuZGxlLlBRc3RhdHVzKGNvbm5fcCkgIT0gQ29ubmVjdGlvblN0YXR1cy5DT05ORUNU SU9OX09LOgorICAgICAgICBlcnJvcl9tc2cgPSBsaWJwcV9oYW5kbGUuUFFlcnJvck1lc3NhZ2Uo Y29ubl9wKS5kZWNvZGUoKQorICAgICAgICAjIE1hbnVhbGx5IGNsb3NlIHRoZSBmYWlsZWQgY29u bmVjdGlvbgorICAgICAgICBsaWJwcV9oYW5kbGUuUFFmaW5pc2goY29ubl9wKQorICAgICAgICBy YWlzZSBMaWJwcUVycm9yKGVycm9yX21zZykKKworICAgICMgQ29ubmVjdGlvbiBzdWNjZWVkZWQg LSBhZGQgdG8gc3RhY2sgZm9yIGNsZWFudXAKKyAgICBjb25uID0gc3RhY2suZW50ZXJfY29udGV4 dChQR2Nvbm4obGlicHFfaGFuZGxlLCBjb25uX3AsIHN0YWNrPXN0YWNrKSkKKyAgICByZXR1cm4g Y29ubgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcHl0ZXN0L2xpYnBxL19lcnJvcl9iYXNlLnB5IGIv c3JjL3Rlc3QvcHl0ZXN0L2xpYnBxL19lcnJvcl9iYXNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi41YzcwYzA3NzE5MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90 ZXN0L3B5dGVzdC9saWJwcS9fZXJyb3JfYmFzZS5weQpAQCAtMCwwICsxLDc0IEBACisjIENvcHly aWdodCAoYykgMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIiIi CitCYXNlIGV4Y2VwdGlvbiBjbGFzc2VzIGZvciBsaWJwcSBlcnJvcnMgYW5kIHdhcm5pbmdzLgor IiIiCisKK2Zyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbAorCisKK2NsYXNzIExpYnBxRXhjZXB0 aW9uTWl4aW46CisgICAgIiIiTWl4aW4gcHJvdmlkaW5nIFBvc3RncmVTUUwgZXJyb3IgZmllbGQg YXR0cmlidXRlcy4iIiIKKworICAgIHNxbHN0YXRlOiBPcHRpb25hbFtzdHJdCisgICAgc2V2ZXJp dHk6IE9wdGlvbmFsW3N0cl0KKyAgICBwcmltYXJ5OiBPcHRpb25hbFtzdHJdCisgICAgZGV0YWls OiBPcHRpb25hbFtzdHJdCisgICAgaGludDogT3B0aW9uYWxbc3RyXQorICAgIHNjaGVtYV9uYW1l OiBPcHRpb25hbFtzdHJdCisgICAgdGFibGVfbmFtZTogT3B0aW9uYWxbc3RyXQorICAgIGNvbHVt bl9uYW1lOiBPcHRpb25hbFtzdHJdCisgICAgZGF0YXR5cGVfbmFtZTogT3B0aW9uYWxbc3RyXQor ICAgIGNvbnN0cmFpbnRfbmFtZTogT3B0aW9uYWxbc3RyXQorICAgIHBvc2l0aW9uOiBPcHRpb25h bFtpbnRdCisgICAgY29udGV4dDogT3B0aW9uYWxbc3RyXQorCisgICAgZGVmIF9faW5pdF9fKAor ICAgICAgICBzZWxmLAorICAgICAgICBtZXNzYWdlOiBzdHIsCisgICAgICAgICosCisgICAgICAg IHNxbHN0YXRlOiBPcHRpb25hbFtzdHJdID0gTm9uZSwKKyAgICAgICAgc2V2ZXJpdHk6IE9wdGlv bmFsW3N0cl0gPSBOb25lLAorICAgICAgICBwcmltYXJ5OiBPcHRpb25hbFtzdHJdID0gTm9uZSwK KyAgICAgICAgZGV0YWlsOiBPcHRpb25hbFtzdHJdID0gTm9uZSwKKyAgICAgICAgaGludDogT3B0 aW9uYWxbc3RyXSA9IE5vbmUsCisgICAgICAgIHNjaGVtYV9uYW1lOiBPcHRpb25hbFtzdHJdID0g Tm9uZSwKKyAgICAgICAgdGFibGVfbmFtZTogT3B0aW9uYWxbc3RyXSA9IE5vbmUsCisgICAgICAg IGNvbHVtbl9uYW1lOiBPcHRpb25hbFtzdHJdID0gTm9uZSwKKyAgICAgICAgZGF0YXR5cGVfbmFt ZTogT3B0aW9uYWxbc3RyXSA9IE5vbmUsCisgICAgICAgIGNvbnN0cmFpbnRfbmFtZTogT3B0aW9u YWxbc3RyXSA9IE5vbmUsCisgICAgICAgIHBvc2l0aW9uOiBPcHRpb25hbFtpbnRdID0gTm9uZSwK KyAgICAgICAgY29udGV4dDogT3B0aW9uYWxbc3RyXSA9IE5vbmUsCisgICAgKToKKyAgICAgICAg c3VwZXIoKS5fX2luaXRfXyhtZXNzYWdlKQorICAgICAgICBzZWxmLnNxbHN0YXRlID0gc3Fsc3Rh dGUKKyAgICAgICAgc2VsZi5zZXZlcml0eSA9IHNldmVyaXR5CisgICAgICAgIHNlbGYucHJpbWFy eSA9IHByaW1hcnkKKyAgICAgICAgc2VsZi5kZXRhaWwgPSBkZXRhaWwKKyAgICAgICAgc2VsZi5o aW50ID0gaGludAorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX25hbWUKKyAgICAg ICAgc2VsZi50YWJsZV9uYW1lID0gdGFibGVfbmFtZQorICAgICAgICBzZWxmLmNvbHVtbl9uYW1l ID0gY29sdW1uX25hbWUKKyAgICAgICAgc2VsZi5kYXRhdHlwZV9uYW1lID0gZGF0YXR5cGVfbmFt ZQorICAgICAgICBzZWxmLmNvbnN0cmFpbnRfbmFtZSA9IGNvbnN0cmFpbnRfbmFtZQorICAgICAg ICBzZWxmLnBvc2l0aW9uID0gcG9zaXRpb24KKyAgICAgICAgc2VsZi5jb250ZXh0ID0gY29udGV4 dAorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHNxbHN0YXRlX2NsYXNzKHNlbGYpIC0+IE9wdGlv bmFsW3N0cl06CisgICAgICAgICIiIlJldHVybnMgdGhlIDItY2hhcmFjdGVyIFNRTFNUQVRFIGNs YXNzLiIiIgorICAgICAgICBpZiBzZWxmLnNxbHN0YXRlIGFuZCBsZW4oc2VsZi5zcWxzdGF0ZSkg Pj0gMjoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnNxbHN0YXRlWzoyXQorICAgICAgICByZXR1 cm4gTm9uZQorCisKK2NsYXNzIExpYnBxRXJyb3IoTGlicHFFeGNlcHRpb25NaXhpbiwgUnVudGlt ZUVycm9yKToKKyAgICAiIiJCYXNlIGV4Y2VwdGlvbiBmb3IgbGlicHEgZXJyb3JzLiIiIgorCisg ICAgcGFzcworCisKK2NsYXNzIExpYnBxV2FybmluZyhMaWJwcUV4Y2VwdGlvbk1peGluLCBVc2Vy V2FybmluZyk6CisgICAgIiIiQmFzZSBleGNlcHRpb24gZm9yIGxpYnBxIHdhcm5pbmdzLiIiIgor CisgICAgcGFzcwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcHl0ZXN0L2xpYnBxL19nZW5lcmF0ZWRf ZXJyb3JzLnB5IGIvc3JjL3Rlc3QvcHl0ZXN0L2xpYnBxL19nZW5lcmF0ZWRfZXJyb3JzLnB5Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNTBmMzE0MzU4MAotLS0gL2Rl di9udWxsCisrKyBiL3NyYy90ZXN0L3B5dGVzdC9saWJwcS9fZ2VuZXJhdGVkX2Vycm9ycy5weQpA QCAtMCwwICsxLDIxMTYgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorIyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IHNyYy90b29s cy9nZW5lcmF0ZV9weXRlc3RfbGlicHFfZXJyb3JzLnB5IC0gZG8gbm90IGVkaXQgZGlyZWN0bHku CisKKyIiIgorR2VuZXJhdGVkIFBvc3RncmVTUUwgZXJyb3IgY2xhc3NlcyBtYXBwZWQgZnJvbSBT UUxTVEFURSBjb2Rlcy4KKyIiIgorCitmcm9tIHR5cGluZyBpbXBvcnQgRGljdAorCitmcm9tIC5f ZXJyb3JfYmFzZSBpbXBvcnQgTGlicHFFcnJvciwgTGlicHFXYXJuaW5nCisKKworY2xhc3MgU3Vj Y2Vzc2Z1bENvbXBsZXRpb24oTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgMDAwMDAgLSBz dWNjZXNzZnVsIGNvbXBsZXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgV2FybmluZyhM aWJwcVdhcm5pbmcpOgorICAgICIiIlNRTFNUQVRFIDAxMDAwIC0gd2FybmluZy4iIiIKKworICAg IHBhc3MKKworCitjbGFzcyBEeW5hbWljUmVzdWx0U2V0c1JldHVybmVkV2FybmluZyhXYXJuaW5n KToKKyAgICAiIiJTUUxTVEFURSAwMTAwQyAtIGR5bmFtaWMgcmVzdWx0IHNldHMgcmV0dXJuZWQu IiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW1wbGljaXRaZXJvQml0UGFkZGluZ1dhcm5pbmco V2FybmluZyk6CisgICAgIiIiU1FMU1RBVEUgMDEwMDggLSBpbXBsaWNpdCB6ZXJvIGJpdCBwYWRk aW5nLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIE51bGxWYWx1ZUVsaW1pbmF0ZWRJblNldEZ1 bmN0aW9uV2FybmluZyhXYXJuaW5nKToKKyAgICAiIiJTUUxTVEFURSAwMTAwMyAtIG51bGwgdmFs dWUgZWxpbWluYXRlZCBpbiBzZXQgZnVuY3Rpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg UHJpdmlsZWdlTm90R3JhbnRlZFdhcm5pbmcoV2FybmluZyk6CisgICAgIiIiU1FMU1RBVEUgMDEw MDcgLSBwcml2aWxlZ2Ugbm90IGdyYW50ZWQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgUHJp dmlsZWdlTm90UmV2b2tlZFdhcm5pbmcoV2FybmluZyk6CisgICAgIiIiU1FMU1RBVEUgMDEwMDYg LSBwcml2aWxlZ2Ugbm90IHJldm9rZWQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgU3RyaW5n RGF0YVJpZ2h0VHJ1bmNhdGlvbldhcm5pbmcoV2FybmluZyk6CisgICAgIiIiU1FMU1RBVEUgMDEw MDQgLSBzdHJpbmcgZGF0YSByaWdodCB0cnVuY2F0aW9uLiIiIgorCisgICAgcGFzcworCisKK2Ns YXNzIERlcHJlY2F0ZWRGZWF0dXJlV2FybmluZyhXYXJuaW5nKToKKyAgICAiIiJTUUxTVEFURSAw MVAwMSAtIGRlcHJlY2F0ZWQgZmVhdHVyZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBOb0Rh dGEoTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgMDIwMDAgLSBubyBkYXRhLiIiIgorCisg ICAgcGFzcworCisKK2NsYXNzIE5vQWRkaXRpb25hbER5bmFtaWNSZXN1bHRTZXRzUmV0dXJuZWQo Tm9EYXRhKToKKyAgICAiIiJTUUxTVEFURSAwMjAwMSAtIG5vIGFkZGl0aW9uYWwgZHluYW1pYyBy ZXN1bHQgc2V0cyByZXR1cm5lZC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBTUUxTdGF0ZW1l bnROb3RZZXRDb21wbGV0ZShMaWJwcUVycm9yKToKKyAgICAiIiJTUUxTVEFURSAwMzAwMCAtIHNx bCBzdGF0ZW1lbnQgbm90IHlldCBjb21wbGV0ZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBD b25uZWN0aW9uRXhjZXB0aW9uKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDA4MDAwIC0g Y29ubmVjdGlvbiBleGNlcHRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgQ29ubmVjdGlv bkRvZXNOb3RFeGlzdChDb25uZWN0aW9uRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAwODAw MyAtIGNvbm5lY3Rpb24gZG9lcyBub3QgZXhpc3QuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg Q29ubmVjdGlvbkZhaWx1cmUoQ29ubmVjdGlvbkV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUg MDgwMDYgLSBjb25uZWN0aW9uIGZhaWx1cmUuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgU1FM Q2xpZW50VW5hYmxlVG9Fc3RhYmxpc2hTUUxDb25uZWN0aW9uKENvbm5lY3Rpb25FeGNlcHRpb24p OgorICAgICIiIlNRTFNUQVRFIDA4MDAxIC0gc3FsY2xpZW50IHVuYWJsZSB0byBlc3RhYmxpc2gg c3FsY29ubmVjdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBTUUxTZXJ2ZXJSZWplY3Rl ZEVzdGFibGlzaG1lbnRPZlNRTENvbm5lY3Rpb24oQ29ubmVjdGlvbkV4Y2VwdGlvbik6CisgICAg IiIiU1FMU1RBVEUgMDgwMDQgLSBzcWxzZXJ2ZXIgcmVqZWN0ZWQgZXN0YWJsaXNobWVudCBvZiBz cWxjb25uZWN0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFRyYW5zYWN0aW9uUmVzb2x1 dGlvblVua25vd24oQ29ubmVjdGlvbkV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMDgwMDcg LSB0cmFuc2FjdGlvbiByZXNvbHV0aW9uIHVua25vd24uIiIiCisKKyAgICBwYXNzCisKKworY2xh c3MgUHJvdG9jb2xWaW9sYXRpb24oQ29ubmVjdGlvbkV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RB VEUgMDhQMDEgLSBwcm90b2NvbCB2aW9sYXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg VHJpZ2dlcmVkQWN0aW9uRXhjZXB0aW9uKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDA5 MDAwIC0gdHJpZ2dlcmVkIGFjdGlvbiBleGNlcHRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xh c3MgRmVhdHVyZU5vdFN1cHBvcnRlZChMaWJwcUVycm9yKToKKyAgICAiIiJTUUxTVEFURSAwQTAw MCAtIGZlYXR1cmUgbm90IHN1cHBvcnRlZC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZh bGlkVHJhbnNhY3Rpb25Jbml0aWF0aW9uKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDBC MDAwIC0gaW52YWxpZCB0cmFuc2FjdGlvbiBpbml0aWF0aW9uLiIiIgorCisgICAgcGFzcworCisK K2NsYXNzIExvY2F0b3JFeGNlcHRpb24oTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgMEYw MDAgLSBsb2NhdG9yIGV4Y2VwdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlk TG9jYXRvclNwZWNpZmljYXRpb24oTG9jYXRvckV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUg MEYwMDEgLSBpbnZhbGlkIGxvY2F0b3Igc3BlY2lmaWNhdGlvbi4iIiIKKworICAgIHBhc3MKKwor CitjbGFzcyBJbnZhbGlkR3JhbnRvcihMaWJwcUVycm9yKToKKyAgICAiIiJTUUxTVEFURSAwTDAw MCAtIGludmFsaWQgZ3JhbnRvci4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkR3Jh bnRPcGVyYXRpb24oSW52YWxpZEdyYW50b3IpOgorICAgICIiIlNRTFNUQVRFIDBMUDAxIC0gaW52 YWxpZCBncmFudCBvcGVyYXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZFJv bGVTcGVjaWZpY2F0aW9uKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDBQMDAwIC0gaW52 YWxpZCByb2xlIHNwZWNpZmljYXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRGlhZ25v c3RpY3NFeGNlcHRpb24oTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgMFowMDAgLSBkaWFn bm9zdGljcyBleGNlcHRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgU3RhY2tlZERpYWdu b3N0aWNzQWNjZXNzZWRXaXRob3V0QWN0aXZlSGFuZGxlcihEaWFnbm9zdGljc0V4Y2VwdGlvbik6 CisgICAgIiIiU1FMU1RBVEUgMFowMDIgLSBzdGFja2VkIGRpYWdub3N0aWNzIGFjY2Vzc2VkIHdp dGhvdXQgYWN0aXZlIGhhbmRsZXIuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZEFy Z3VtZW50Rm9yWHF1ZXJ5KExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDEwNjA4IC0gaW52 YWxpZCBhcmd1bWVudCBmb3IgeHF1ZXJ5LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIENhc2VO b3RGb3VuZChMaWJwcUVycm9yKToKKyAgICAiIiJTUUxTVEFURSAyMDAwMCAtIGNhc2Ugbm90IGZv dW5kLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIENhcmRpbmFsaXR5VmlvbGF0aW9uKExpYnBx RXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDIxMDAwIC0gY2FyZGluYWxpdHkgdmlvbGF0aW9uLiIi IgorCisgICAgcGFzcworCisKK2NsYXNzIERhdGFFeGNlcHRpb24oTGlicHFFcnJvcik6CisgICAg IiIiU1FMU1RBVEUgMjIwMDAgLSBkYXRhIGV4Y2VwdGlvbi4iIiIKKworICAgIHBhc3MKKworCitj bGFzcyBBcnJheVN1YnNjcmlwdEVycm9yKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRF IDIyMDJFIC0gYXJyYXkgc3Vic2NyaXB0IGVycm9yLiIiIgorCisgICAgcGFzcworCisKK2NsYXNz IENoYXJhY3Rlck5vdEluUmVwZXJ0b2lyZShEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFU RSAyMjAyMSAtIGNoYXJhY3RlciBub3QgaW4gcmVwZXJ0b2lyZS4iIiIKKworICAgIHBhc3MKKwor CitjbGFzcyBEYXRldGltZUZpZWxkT3ZlcmZsb3coRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FM U1RBVEUgMjIwMDggLSBkYXRldGltZSBmaWVsZCBvdmVyZmxvdy4iIiIKKworICAgIHBhc3MKKwor CitjbGFzcyBEaXZpc2lvbkJ5WmVybyhEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAy MjAxMiAtIGRpdmlzaW9uIGJ5IHplcm8uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRXJyb3JJ bkFzc2lnbm1lbnQoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMDUgLSBlcnJv ciBpbiBhc3NpZ25tZW50LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEVzY2FwZUNoYXJhY3Rl ckNvbmZsaWN0KERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDBCIC0gZXNjYXBl IGNoYXJhY3RlciBjb25mbGljdC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbmRpY2F0b3JP dmVyZmxvdyhEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAyMiAtIGluZGljYXRv ciBvdmVyZmxvdy4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnRlcnZhbEZpZWxkT3ZlcmZs b3coRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMTUgLSBpbnRlcnZhbCBmaWVs ZCBvdmVyZmxvdy4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkQXJndW1lbnRGb3JM b2dhcml0aG0oRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMUUgLSBpbnZhbGlk IGFyZ3VtZW50IGZvciBsb2dhcml0aG0uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxp ZEFyZ3VtZW50Rm9yTnRpbGVGdW5jdGlvbihEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFU RSAyMjAxNCAtIGludmFsaWQgYXJndW1lbnQgZm9yIG50aWxlIGZ1bmN0aW9uLiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIEludmFsaWRBcmd1bWVudEZvck50aFZhbHVlRnVuY3Rpb24oRGF0YUV4 Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMTYgLSBpbnZhbGlkIGFyZ3VtZW50IGZvciBu dGggdmFsdWUgZnVuY3Rpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZEFyZ3Vt ZW50Rm9yUG93ZXJGdW5jdGlvbihEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAx RiAtIGludmFsaWQgYXJndW1lbnQgZm9yIHBvd2VyIGZ1bmN0aW9uLiIiIgorCisgICAgcGFzcwor CisKK2NsYXNzIEludmFsaWRBcmd1bWVudEZvcldpZHRoQnVja2V0RnVuY3Rpb24oRGF0YUV4Y2Vw dGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMUcgLSBpbnZhbGlkIGFyZ3VtZW50IGZvciB3aWR0 aCBidWNrZXQgZnVuY3Rpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZENoYXJh Y3RlclZhbHVlRm9yQ2FzdChEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAxOCAt IGludmFsaWQgY2hhcmFjdGVyIHZhbHVlIGZvciBjYXN0LiIiIgorCisgICAgcGFzcworCisKK2Ns YXNzIEludmFsaWREYXRldGltZUZvcm1hdChEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFU RSAyMjAwNyAtIGludmFsaWQgZGF0ZXRpbWUgZm9ybWF0LiIiIgorCisgICAgcGFzcworCisKK2Ns YXNzIEludmFsaWRFc2NhcGVDaGFyYWN0ZXIoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RB VEUgMjIwMTkgLSBpbnZhbGlkIGVzY2FwZSBjaGFyYWN0ZXIuIiIiCisKKyAgICBwYXNzCisKKwor Y2xhc3MgSW52YWxpZEVzY2FwZU9jdGV0KERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRF IDIyMDBEIC0gaW52YWxpZCBlc2NhcGUgb2N0ZXQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg SW52YWxpZEVzY2FwZVNlcXVlbmNlKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIy MDI1IC0gaW52YWxpZCBlc2NhcGUgc2VxdWVuY2UuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg Tm9uc3RhbmRhcmRVc2VPZkVzY2FwZUNoYXJhY3RlcihEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJT UUxTVEFURSAyMlAwNiAtIG5vbnN0YW5kYXJkIHVzZSBvZiBlc2NhcGUgY2hhcmFjdGVyLiIiIgor CisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRJbmRpY2F0b3JQYXJhbWV0ZXJWYWx1ZShEYXRh RXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAxMCAtIGludmFsaWQgaW5kaWNhdG9yIHBh cmFtZXRlciB2YWx1ZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkUGFyYW1ldGVy VmFsdWUoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMjMgLSBpbnZhbGlkIHBh cmFtZXRlciB2YWx1ZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkUHJlY2VkaW5n T3JGb2xsb3dpbmdTaXplKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDEzIC0g aW52YWxpZCBwcmVjZWRpbmcgb3IgZm9sbG93aW5nIHNpemUuIiIiCisKKyAgICBwYXNzCisKKwor Y2xhc3MgSW52YWxpZFJlZ3VsYXJFeHByZXNzaW9uKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNR TFNUQVRFIDIyMDFCIC0gaW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb24uIiIiCisKKyAgICBwYXNz CisKKworY2xhc3MgSW52YWxpZFJvd0NvdW50SW5MaW1pdENsYXVzZShEYXRhRXhjZXB0aW9uKToK KyAgICAiIiJTUUxTVEFURSAyMjAxVyAtIGludmFsaWQgcm93IGNvdW50IGluIGxpbWl0IGNsYXVz ZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkUm93Q291bnRJblJlc3VsdE9mZnNl dENsYXVzZShEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAxWCAtIGludmFsaWQg cm93IGNvdW50IGluIHJlc3VsdCBvZmZzZXQgY2xhdXNlLiIiIgorCisgICAgcGFzcworCisKK2Ns YXNzIEludmFsaWRUYWJsZXNhbXBsZUFyZ3VtZW50KERhdGFFeGNlcHRpb24pOgorICAgICIiIlNR TFNUQVRFIDIyMDJIIC0gaW52YWxpZCB0YWJsZXNhbXBsZSBhcmd1bWVudC4iIiIKKworICAgIHBh c3MKKworCitjbGFzcyBJbnZhbGlkVGFibGVzYW1wbGVSZXBlYXQoRGF0YUV4Y2VwdGlvbik6Cisg ICAgIiIiU1FMU1RBVEUgMjIwMkcgLSBpbnZhbGlkIHRhYmxlc2FtcGxlIHJlcGVhdC4iIiIKKwor ICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkVGltZVpvbmVEaXNwbGFjZW1lbnRWYWx1ZShEYXRh RXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAwOSAtIGludmFsaWQgdGltZSB6b25lIGRp c3BsYWNlbWVudCB2YWx1ZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkVXNlT2ZF c2NhcGVDaGFyYWN0ZXIoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMEMgLSBp bnZhbGlkIHVzZSBvZiBlc2NhcGUgY2hhcmFjdGVyLiIiIgorCisgICAgcGFzcworCisKK2NsYXNz IE1vc3RTcGVjaWZpY1R5cGVNaXNtYXRjaChEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFU RSAyMjAwRyAtIG1vc3Qgc3BlY2lmaWMgdHlwZSBtaXNtYXRjaC4iIiIKKworICAgIHBhc3MKKwor CitjbGFzcyBOdWxsVmFsdWVOb3RBbGxvd2VkKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNU QVRFIDIyMDA0IC0gbnVsbCB2YWx1ZSBub3QgYWxsb3dlZC4iIiIKKworICAgIHBhc3MKKworCitj bGFzcyBOdWxsVmFsdWVOb0luZGljYXRvclBhcmFtZXRlcihEYXRhRXhjZXB0aW9uKToKKyAgICAi IiJTUUxTVEFURSAyMjAwMiAtIG51bGwgdmFsdWUgbm8gaW5kaWNhdG9yIHBhcmFtZXRlci4iIiIK KworICAgIHBhc3MKKworCitjbGFzcyBOdW1lcmljVmFsdWVPdXRPZlJhbmdlKERhdGFFeGNlcHRp b24pOgorICAgICIiIlNRTFNUQVRFIDIyMDAzIC0gbnVtZXJpYyB2YWx1ZSBvdXQgb2YgcmFuZ2Uu IiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgU2VxdWVuY2VHZW5lcmF0b3JMaW1pdEV4Y2VlZGVk KERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDBIIC0gc2VxdWVuY2UgZ2VuZXJh dG9yIGxpbWl0IGV4Y2VlZGVkLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFN0cmluZ0RhdGFM ZW5ndGhNaXNtYXRjaChEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAyNiAtIHN0 cmluZyBkYXRhIGxlbmd0aCBtaXNtYXRjaC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBTdHJp bmdEYXRhUmlnaHRUcnVuY2F0aW9uKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIy MDAxIC0gc3RyaW5nIGRhdGEgcmlnaHQgdHJ1bmNhdGlvbi4iIiIKKworICAgIHBhc3MKKworCitj bGFzcyBTdWJzdHJpbmdFcnJvcihEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAx MSAtIHN1YnN0cmluZyBlcnJvci4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBUcmltRXJyb3Io RGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMjcgLSB0cmltIGVycm9yLiIiIgor CisgICAgcGFzcworCisKK2NsYXNzIFVudGVybWluYXRlZENTdHJpbmcoRGF0YUV4Y2VwdGlvbik6 CisgICAgIiIiU1FMU1RBVEUgMjIwMjQgLSB1bnRlcm1pbmF0ZWQgYyBzdHJpbmcuIiIiCisKKyAg ICBwYXNzCisKKworY2xhc3MgWmVyb0xlbmd0aENoYXJhY3RlclN0cmluZyhEYXRhRXhjZXB0aW9u KToKKyAgICAiIiJTUUxTVEFURSAyMjAwRiAtIHplcm8gbGVuZ3RoIGNoYXJhY3RlciBzdHJpbmcu IiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRmxvYXRpbmdQb2ludEV4Y2VwdGlvbihEYXRhRXhj ZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMlAwMSAtIGZsb2F0aW5nIHBvaW50IGV4Y2VwdGlv bi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkVGV4dFJlcHJlc2VudGF0aW9uKERh dGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyUDAyIC0gaW52YWxpZCB0ZXh0IHJlcHJl c2VudGF0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRCaW5hcnlSZXByZXNl bnRhdGlvbihEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMlAwMyAtIGludmFsaWQg YmluYXJ5IHJlcHJlc2VudGF0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEJhZENvcHlG aWxlRm9ybWF0KERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyUDA0IC0gYmFkIGNv cHkgZmlsZSBmb3JtYXQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgVW50cmFuc2xhdGFibGVD aGFyYWN0ZXIoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjJQMDUgLSB1bnRyYW5z bGF0YWJsZSBjaGFyYWN0ZXIuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgTm90QW5YbWxEb2N1 bWVudChEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAwTCAtIG5vdCBhbiB4bWwg ZG9jdW1lbnQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZFhtbERvY3VtZW50KERh dGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDBNIC0gaW52YWxpZCB4bWwgZG9jdW1l bnQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZFhtbENvbnRlbnQoRGF0YUV4Y2Vw dGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwME4gLSBpbnZhbGlkIHhtbCBjb250ZW50LiIiIgor CisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRYbWxDb21tZW50KERhdGFFeGNlcHRpb24pOgor ICAgICIiIlNRTFNUQVRFIDIyMDBTIC0gaW52YWxpZCB4bWwgY29tbWVudC4iIiIKKworICAgIHBh c3MKKworCitjbGFzcyBJbnZhbGlkWG1sUHJvY2Vzc2luZ0luc3RydWN0aW9uKERhdGFFeGNlcHRp b24pOgorICAgICIiIlNRTFNUQVRFIDIyMDBUIC0gaW52YWxpZCB4bWwgcHJvY2Vzc2luZyBpbnN0 cnVjdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBEdXBsaWNhdGVKc29uT2JqZWN0S2V5 VmFsdWUoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMzAgLSBkdXBsaWNhdGUg anNvbiBvYmplY3Qga2V5IHZhbHVlLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRB cmd1bWVudEZvclNRTEpzb25EYXRldGltZUZ1bmN0aW9uKERhdGFFeGNlcHRpb24pOgorICAgICIi IlNRTFNUQVRFIDIyMDMxIC0gaW52YWxpZCBhcmd1bWVudCBmb3Igc3FsIGpzb24gZGF0ZXRpbWUg ZnVuY3Rpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZEpzb25UZXh0KERhdGFF eGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDMyIC0gaW52YWxpZCBqc29uIHRleHQuIiIi CisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZFNRTEpzb25TdWJzY3JpcHQoRGF0YUV4Y2Vw dGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMzMgLSBpbnZhbGlkIHNxbCBqc29uIHN1YnNjcmlw dC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBNb3JlVGhhbk9uZVNRTEpzb25JdGVtKERhdGFF eGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDM0IC0gbW9yZSB0aGFuIG9uZSBzcWwganNv biBpdGVtLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIE5vU1FMSnNvbkl0ZW0oRGF0YUV4Y2Vw dGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMzUgLSBubyBzcWwganNvbiBpdGVtLiIiIgorCisg ICAgcGFzcworCisKK2NsYXNzIE5vbk51bWVyaWNTUUxKc29uSXRlbShEYXRhRXhjZXB0aW9uKToK KyAgICAiIiJTUUxTVEFURSAyMjAzNiAtIG5vbiBudW1lcmljIHNxbCBqc29uIGl0ZW0uIiIiCisK KyAgICBwYXNzCisKKworY2xhc3MgTm9uVW5pcXVlS2V5c0luQUpzb25PYmplY3QoRGF0YUV4Y2Vw dGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMzcgLSBub24gdW5pcXVlIGtleXMgaW4gYSBqc29u IG9iamVjdC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBTaW5nbGV0b25TUUxKc29uSXRlbVJl cXVpcmVkKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDM4IC0gc2luZ2xldG9u IHNxbCBqc29uIGl0ZW0gcmVxdWlyZWQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgU1FMSnNv bkFycmF5Tm90Rm91bmQoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMzkgLSBz cWwganNvbiBhcnJheSBub3QgZm91bmQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgU1FMSnNv bk1lbWJlck5vdEZvdW5kKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDNBIC0g c3FsIGpzb24gbWVtYmVyIG5vdCBmb3VuZC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBTUUxK c29uTnVtYmVyTm90Rm91bmQoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwM0Ig LSBzcWwganNvbiBudW1iZXIgbm90IGZvdW5kLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFNR TEpzb25PYmplY3ROb3RGb3VuZChEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAz QyAtIHNxbCBqc29uIG9iamVjdCBub3QgZm91bmQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg VG9vTWFueUpzb25BcnJheUVsZW1lbnRzKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRF IDIyMDNEIC0gdG9vIG1hbnkganNvbiBhcnJheSBlbGVtZW50cy4iIiIKKworICAgIHBhc3MKKwor CitjbGFzcyBUb29NYW55SnNvbk9iamVjdE1lbWJlcnMoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIi U1FMU1RBVEUgMjIwM0UgLSB0b28gbWFueSBqc29uIG9iamVjdCBtZW1iZXJzLiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIFNRTEpzb25TY2FsYXJSZXF1aXJlZChEYXRhRXhjZXB0aW9uKToKKyAg ICAiIiJTUUxTVEFURSAyMjAzRiAtIHNxbCBqc29uIHNjYWxhciByZXF1aXJlZC4iIiIKKworICAg IHBhc3MKKworCitjbGFzcyBTUUxKc29uSXRlbUNhbm5vdEJlQ2FzdFRvVGFyZ2V0VHlwZShEYXRh RXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAzRyAtIHNxbCBqc29uIGl0ZW0gY2Fubm90 IGJlIGNhc3QgdG8gdGFyZ2V0IHR5cGUuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW50ZWdy aXR5Q29uc3RyYWludFZpb2xhdGlvbihMaWJwcUVycm9yKToKKyAgICAiIiJTUUxTVEFURSAyMzAw MCAtIGludGVncml0eSBjb25zdHJhaW50IHZpb2xhdGlvbi4iIiIKKworICAgIHBhc3MKKworCitj bGFzcyBSZXN0cmljdFZpb2xhdGlvbihJbnRlZ3JpdHlDb25zdHJhaW50VmlvbGF0aW9uKToKKyAg ICAiIiJTUUxTVEFURSAyMzAwMSAtIHJlc3RyaWN0IHZpb2xhdGlvbi4iIiIKKworICAgIHBhc3MK KworCitjbGFzcyBOb3ROdWxsVmlvbGF0aW9uKEludGVncml0eUNvbnN0cmFpbnRWaW9sYXRpb24p OgorICAgICIiIlNRTFNUQVRFIDIzNTAyIC0gbm90IG51bGwgdmlvbGF0aW9uLiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIEZvcmVpZ25LZXlWaW9sYXRpb24oSW50ZWdyaXR5Q29uc3RyYWludFZp b2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjM1MDMgLSBmb3JlaWduIGtleSB2aW9sYXRpb24u IiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgVW5pcXVlVmlvbGF0aW9uKEludGVncml0eUNvbnN0 cmFpbnRWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDIzNTA1IC0gdW5pcXVlIHZpb2xhdGlv bi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBDaGVja1Zpb2xhdGlvbihJbnRlZ3JpdHlDb25z dHJhaW50VmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMzUxNCAtIGNoZWNrIHZpb2xhdGlv bi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBFeGNsdXNpb25WaW9sYXRpb24oSW50ZWdyaXR5 Q29uc3RyYWludFZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjNQMDEgLSBleGNsdXNpb24g dmlvbGF0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRDdXJzb3JTdGF0ZShM aWJwcUVycm9yKToKKyAgICAiIiJTUUxTVEFURSAyNDAwMCAtIGludmFsaWQgY3Vyc29yIHN0YXRl LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRUcmFuc2FjdGlvblN0YXRlKExpYnBx RXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDI1MDAwIC0gaW52YWxpZCB0cmFuc2FjdGlvbiBzdGF0 ZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBBY3RpdmVTUUxUcmFuc2FjdGlvbihJbnZhbGlk VHJhbnNhY3Rpb25TdGF0ZSk6CisgICAgIiIiU1FMU1RBVEUgMjUwMDEgLSBhY3RpdmUgc3FsIHRy YW5zYWN0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEJyYW5jaFRyYW5zYWN0aW9uQWxy ZWFkeUFjdGl2ZShJbnZhbGlkVHJhbnNhY3Rpb25TdGF0ZSk6CisgICAgIiIiU1FMU1RBVEUgMjUw MDIgLSBicmFuY2ggdHJhbnNhY3Rpb24gYWxyZWFkeSBhY3RpdmUuIiIiCisKKyAgICBwYXNzCisK KworY2xhc3MgSGVsZEN1cnNvclJlcXVpcmVzU2FtZUlzb2xhdGlvbkxldmVsKEludmFsaWRUcmFu c2FjdGlvblN0YXRlKToKKyAgICAiIiJTUUxTVEFURSAyNTAwOCAtIGhlbGQgY3Vyc29yIHJlcXVp cmVzIHNhbWUgaXNvbGF0aW9uIGxldmVsLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEluYXBw cm9wcmlhdGVBY2Nlc3NNb2RlRm9yQnJhbmNoVHJhbnNhY3Rpb24oSW52YWxpZFRyYW5zYWN0aW9u U3RhdGUpOgorICAgICIiIlNRTFNUQVRFIDI1MDAzIC0gaW5hcHByb3ByaWF0ZSBhY2Nlc3MgbW9k ZSBmb3IgYnJhbmNoIHRyYW5zYWN0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEluYXBw cm9wcmlhdGVJc29sYXRpb25MZXZlbEZvckJyYW5jaFRyYW5zYWN0aW9uKEludmFsaWRUcmFuc2Fj dGlvblN0YXRlKToKKyAgICAiIiJTUUxTVEFURSAyNTAwNCAtIGluYXBwcm9wcmlhdGUgaXNvbGF0 aW9uIGxldmVsIGZvciBicmFuY2ggdHJhbnNhY3Rpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xh c3MgTm9BY3RpdmVTUUxUcmFuc2FjdGlvbkZvckJyYW5jaFRyYW5zYWN0aW9uKEludmFsaWRUcmFu c2FjdGlvblN0YXRlKToKKyAgICAiIiJTUUxTVEFURSAyNTAwNSAtIG5vIGFjdGl2ZSBzcWwgdHJh bnNhY3Rpb24gZm9yIGJyYW5jaCB0cmFuc2FjdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFz cyBSZWFkT25seVNRTFRyYW5zYWN0aW9uKEludmFsaWRUcmFuc2FjdGlvblN0YXRlKToKKyAgICAi IiJTUUxTVEFURSAyNTAwNiAtIHJlYWQgb25seSBzcWwgdHJhbnNhY3Rpb24uIiIiCisKKyAgICBw YXNzCisKKworY2xhc3MgU2NoZW1hQW5kRGF0YVN0YXRlbWVudE1peGluZ05vdFN1cHBvcnRlZChJ bnZhbGlkVHJhbnNhY3Rpb25TdGF0ZSk6CisgICAgIiIiU1FMU1RBVEUgMjUwMDcgLSBzY2hlbWEg YW5kIGRhdGEgc3RhdGVtZW50IG1peGluZyBub3Qgc3VwcG9ydGVkLiIiIgorCisgICAgcGFzcwor CisKK2NsYXNzIE5vQWN0aXZlU1FMVHJhbnNhY3Rpb24oSW52YWxpZFRyYW5zYWN0aW9uU3RhdGUp OgorICAgICIiIlNRTFNUQVRFIDI1UDAxIC0gbm8gYWN0aXZlIHNxbCB0cmFuc2FjdGlvbi4iIiIK KworICAgIHBhc3MKKworCitjbGFzcyBJbkZhaWxlZFNRTFRyYW5zYWN0aW9uKEludmFsaWRUcmFu c2FjdGlvblN0YXRlKToKKyAgICAiIiJTUUxTVEFURSAyNVAwMiAtIGluIGZhaWxlZCBzcWwgdHJh bnNhY3Rpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSWRsZUluVHJhbnNhY3Rpb25TZXNz aW9uVGltZW91dChJbnZhbGlkVHJhbnNhY3Rpb25TdGF0ZSk6CisgICAgIiIiU1FMU1RBVEUgMjVQ MDMgLSBpZGxlIGluIHRyYW5zYWN0aW9uIHNlc3Npb24gdGltZW91dC4iIiIKKworICAgIHBhc3MK KworCitjbGFzcyBUcmFuc2FjdGlvblRpbWVvdXQoSW52YWxpZFRyYW5zYWN0aW9uU3RhdGUpOgor ICAgICIiIlNRTFNUQVRFIDI1UDA0IC0gdHJhbnNhY3Rpb24gdGltZW91dC4iIiIKKworICAgIHBh c3MKKworCitjbGFzcyBJbnZhbGlkU1FMU3RhdGVtZW50TmFtZShMaWJwcUVycm9yKToKKyAgICAi IiJTUUxTVEFURSAyNjAwMCAtIGludmFsaWQgc3FsIHN0YXRlbWVudCBuYW1lLiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIFRyaWdnZXJlZERhdGFDaGFuZ2VWaW9sYXRpb24oTGlicHFFcnJvcik6 CisgICAgIiIiU1FMU1RBVEUgMjcwMDAgLSB0cmlnZ2VyZWQgZGF0YSBjaGFuZ2UgdmlvbGF0aW9u LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRBdXRob3JpemF0aW9uU3BlY2lmaWNh dGlvbihMaWJwcUVycm9yKToKKyAgICAiIiJTUUxTVEFURSAyODAwMCAtIGludmFsaWQgYXV0aG9y aXphdGlvbiBzcGVjaWZpY2F0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRQ YXNzd29yZChJbnZhbGlkQXV0aG9yaXphdGlvblNwZWNpZmljYXRpb24pOgorICAgICIiIlNRTFNU QVRFIDI4UDAxIC0gaW52YWxpZCBwYXNzd29yZC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBE ZXBlbmRlbnRQcml2aWxlZ2VEZXNjcmlwdG9yc1N0aWxsRXhpc3QoTGlicHFFcnJvcik6CisgICAg IiIiU1FMU1RBVEUgMkIwMDAgLSBkZXBlbmRlbnQgcHJpdmlsZWdlIGRlc2NyaXB0b3JzIHN0aWxs IGV4aXN0LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIERlcGVuZGVudE9iamVjdHNTdGlsbEV4 aXN0KERlcGVuZGVudFByaXZpbGVnZURlc2NyaXB0b3JzU3RpbGxFeGlzdCk6CisgICAgIiIiU1FM U1RBVEUgMkJQMDEgLSBkZXBlbmRlbnQgb2JqZWN0cyBzdGlsbCBleGlzdC4iIiIKKworICAgIHBh c3MKKworCitjbGFzcyBJbnZhbGlkVHJhbnNhY3Rpb25UZXJtaW5hdGlvbihMaWJwcUVycm9yKToK KyAgICAiIiJTUUxTVEFURSAyRDAwMCAtIGludmFsaWQgdHJhbnNhY3Rpb24gdGVybWluYXRpb24u IiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgU1FMUm91dGluZUV4Y2VwdGlvbihMaWJwcUVycm9y KToKKyAgICAiIiJTUUxTVEFURSAyRjAwMCAtIHNxbCByb3V0aW5lIGV4Y2VwdGlvbi4iIiIKKwor ICAgIHBhc3MKKworCitjbGFzcyBGdW5jdGlvbkV4ZWN1dGVkTm9SZXR1cm5TdGF0ZW1lbnQoU1FM Um91dGluZUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMkYwMDUgLSBmdW5jdGlvbiBleGVj dXRlZCBubyByZXR1cm4gc3RhdGVtZW50LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFNSRU1v ZGlmeWluZ1NRTERhdGFOb3RQZXJtaXR0ZWQoU1FMUm91dGluZUV4Y2VwdGlvbik6CisgICAgIiIi U1FMU1RBVEUgMkYwMDIgLSBtb2RpZnlpbmcgc3FsIGRhdGEgbm90IHBlcm1pdHRlZC4iIiIKKwor ICAgIHBhc3MKKworCitjbGFzcyBTUkVQcm9oaWJpdGVkU1FMU3RhdGVtZW50QXR0ZW1wdGVkKFNR TFJvdXRpbmVFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDJGMDAzIC0gcHJvaGliaXRlZCBz cWwgc3RhdGVtZW50IGF0dGVtcHRlZC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBTUkVSZWFk aW5nU1FMRGF0YU5vdFBlcm1pdHRlZChTUUxSb3V0aW5lRXhjZXB0aW9uKToKKyAgICAiIiJTUUxT VEFURSAyRjAwNCAtIHJlYWRpbmcgc3FsIGRhdGEgbm90IHBlcm1pdHRlZC4iIiIKKworICAgIHBh c3MKKworCitjbGFzcyBJbnZhbGlkQ3Vyc29yTmFtZShMaWJwcUVycm9yKToKKyAgICAiIiJTUUxT VEFURSAzNDAwMCAtIGludmFsaWQgY3Vyc29yIG5hbWUuIiIiCisKKyAgICBwYXNzCisKKworY2xh c3MgRXh0ZXJuYWxSb3V0aW5lRXhjZXB0aW9uKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRF IDM4MDAwIC0gZXh0ZXJuYWwgcm91dGluZSBleGNlcHRpb24uIiIiCisKKyAgICBwYXNzCisKKwor Y2xhc3MgQ29udGFpbmluZ1NRTE5vdFBlcm1pdHRlZChFeHRlcm5hbFJvdXRpbmVFeGNlcHRpb24p OgorICAgICIiIlNRTFNUQVRFIDM4MDAxIC0gY29udGFpbmluZyBzcWwgbm90IHBlcm1pdHRlZC4i IiIKKworICAgIHBhc3MKKworCitjbGFzcyBFUkVNb2RpZnlpbmdTUUxEYXRhTm90UGVybWl0dGVk KEV4dGVybmFsUm91dGluZUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMzgwMDIgLSBtb2Rp Znlpbmcgc3FsIGRhdGEgbm90IHBlcm1pdHRlZC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBF UkVQcm9oaWJpdGVkU1FMU3RhdGVtZW50QXR0ZW1wdGVkKEV4dGVybmFsUm91dGluZUV4Y2VwdGlv bik6CisgICAgIiIiU1FMU1RBVEUgMzgwMDMgLSBwcm9oaWJpdGVkIHNxbCBzdGF0ZW1lbnQgYXR0 ZW1wdGVkLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEVSRVJlYWRpbmdTUUxEYXRhTm90UGVy bWl0dGVkKEV4dGVybmFsUm91dGluZUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMzgwMDQg LSByZWFkaW5nIHNxbCBkYXRhIG5vdCBwZXJtaXR0ZWQuIiIiCisKKyAgICBwYXNzCisKKworY2xh c3MgRXh0ZXJuYWxSb3V0aW5lSW52b2NhdGlvbkV4Y2VwdGlvbihMaWJwcUVycm9yKToKKyAgICAi IiJTUUxTVEFURSAzOTAwMCAtIGV4dGVybmFsIHJvdXRpbmUgaW52b2NhdGlvbiBleGNlcHRpb24u IiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZFNxbHN0YXRlUmV0dXJuZWQoRXh0ZXJu YWxSb3V0aW5lSW52b2NhdGlvbkV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMzkwMDEgLSBp bnZhbGlkIHNxbHN0YXRlIHJldHVybmVkLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEVSSUVO dWxsVmFsdWVOb3RBbGxvd2VkKEV4dGVybmFsUm91dGluZUludm9jYXRpb25FeGNlcHRpb24pOgor ICAgICIiIlNRTFNUQVRFIDM5MDA0IC0gbnVsbCB2YWx1ZSBub3QgYWxsb3dlZC4iIiIKKworICAg IHBhc3MKKworCitjbGFzcyBUcmlnZ2VyUHJvdG9jb2xWaW9sYXRlZChFeHRlcm5hbFJvdXRpbmVJ bnZvY2F0aW9uRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAzOVAwMSAtIHRyaWdnZXIgcHJv dG9jb2wgdmlvbGF0ZWQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgU3JmUHJvdG9jb2xWaW9s YXRlZChFeHRlcm5hbFJvdXRpbmVJbnZvY2F0aW9uRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFU RSAzOVAwMiAtIHNyZiBwcm90b2NvbCB2aW9sYXRlZC4iIiIKKworICAgIHBhc3MKKworCitjbGFz cyBFdmVudFRyaWdnZXJQcm90b2NvbFZpb2xhdGVkKEV4dGVybmFsUm91dGluZUludm9jYXRpb25F eGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDM5UDAzIC0gZXZlbnQgdHJpZ2dlciBwcm90b2Nv bCB2aW9sYXRlZC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBTYXZlcG9pbnRFeGNlcHRpb24o TGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgM0IwMDAgLSBzYXZlcG9pbnQgZXhjZXB0aW9u LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRTYXZlcG9pbnRTcGVjaWZpY2F0aW9u KFNhdmVwb2ludEV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgM0IwMDEgLSBpbnZhbGlkIHNh dmVwb2ludCBzcGVjaWZpY2F0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRD YXRhbG9nTmFtZShMaWJwcUVycm9yKToKKyAgICAiIiJTUUxTVEFURSAzRDAwMCAtIGludmFsaWQg Y2F0YWxvZyBuYW1lLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRTY2hlbWFOYW1l KExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDNGMDAwIC0gaW52YWxpZCBzY2hlbWEgbmFt ZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBUcmFuc2FjdGlvblJvbGxiYWNrKExpYnBxRXJy b3IpOgorICAgICIiIlNRTFNUQVRFIDQwMDAwIC0gdHJhbnNhY3Rpb24gcm9sbGJhY2suIiIiCisK KyAgICBwYXNzCisKKworY2xhc3MgVHJhbnNhY3Rpb25JbnRlZ3JpdHlDb25zdHJhaW50VmlvbGF0 aW9uKFRyYW5zYWN0aW9uUm9sbGJhY2spOgorICAgICIiIlNRTFNUQVRFIDQwMDAyIC0gdHJhbnNh Y3Rpb24gaW50ZWdyaXR5IGNvbnN0cmFpbnQgdmlvbGF0aW9uLiIiIgorCisgICAgcGFzcworCisK K2NsYXNzIFNlcmlhbGl6YXRpb25GYWlsdXJlKFRyYW5zYWN0aW9uUm9sbGJhY2spOgorICAgICIi IlNRTFNUQVRFIDQwMDAxIC0gc2VyaWFsaXphdGlvbiBmYWlsdXJlLiIiIgorCisgICAgcGFzcwor CisKK2NsYXNzIFN0YXRlbWVudENvbXBsZXRpb25Vbmtub3duKFRyYW5zYWN0aW9uUm9sbGJhY2sp OgorICAgICIiIlNRTFNUQVRFIDQwMDAzIC0gc3RhdGVtZW50IGNvbXBsZXRpb24gdW5rbm93bi4i IiIKKworICAgIHBhc3MKKworCitjbGFzcyBEZWFkbG9ja0RldGVjdGVkKFRyYW5zYWN0aW9uUm9s bGJhY2spOgorICAgICIiIlNRTFNUQVRFIDQwUDAxIC0gZGVhZGxvY2sgZGV0ZWN0ZWQuIiIiCisK KyAgICBwYXNzCisKKworY2xhc3MgU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24oTGli cHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgNDIwMDAgLSBzeW50YXggZXJyb3Igb3IgYWNjZXNz IHJ1bGUgdmlvbGF0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFN5bnRheEVycm9yKFN5 bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MjYwMSAt IHN5bnRheCBlcnJvci4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnN1ZmZpY2llbnRQcml2 aWxlZ2UoU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRF IDQyNTAxIC0gaW5zdWZmaWNpZW50IHByaXZpbGVnZS4iIiIKKworICAgIHBhc3MKKworCitjbGFz cyBDYW5ub3RDb2VyY2UoU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIi IlNRTFNUQVRFIDQyODQ2IC0gY2Fubm90IGNvZXJjZS4iIiIKKworICAgIHBhc3MKKworCitjbGFz cyBHcm91cGluZ0Vycm9yKFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAi IiJTUUxTVEFURSA0MjgwMyAtIGdyb3VwaW5nIGVycm9yLiIiIgorCisgICAgcGFzcworCisKK2Ns YXNzIFdpbmRvd2luZ0Vycm9yKFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAg ICAiIiJTUUxTVEFURSA0MlAyMCAtIHdpbmRvd2luZyBlcnJvci4iIiIKKworICAgIHBhc3MKKwor CitjbGFzcyBJbnZhbGlkUmVjdXJzaW9uKFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9u KToKKyAgICAiIiJTUUxTVEFURSA0MlAxOSAtIGludmFsaWQgcmVjdXJzaW9uLiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIEludmFsaWRGb3JlaWduS2V5KFN5bnRheEVycm9yT3JBY2Nlc3NSdWxl VmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MjgzMCAtIGludmFsaWQgZm9yZWlnbiBrZXku IiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZE5hbWUoU3ludGF4RXJyb3JPckFjY2Vz c1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyNjAyIC0gaW52YWxpZCBuYW1lLiIi IgorCisgICAgcGFzcworCisKK2NsYXNzIE5hbWVUb29Mb25nKFN5bnRheEVycm9yT3JBY2Nlc3NS dWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MjYyMiAtIG5hbWUgdG9vIGxvbmcuIiIi CisKKyAgICBwYXNzCisKKworY2xhc3MgUmVzZXJ2ZWROYW1lKFN5bnRheEVycm9yT3JBY2Nlc3NS dWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MjkzOSAtIHJlc2VydmVkIG5hbWUuIiIi CisKKyAgICBwYXNzCisKKworY2xhc3MgRGF0YXR5cGVNaXNtYXRjaChTeW50YXhFcnJvck9yQWNj ZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDI4MDQgLSBkYXRhdHlwZSBtaXNt YXRjaC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbmRldGVybWluYXRlRGF0YXR5cGUoU3lu dGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyUDE4IC0g aW5kZXRlcm1pbmF0ZSBkYXRhdHlwZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBDb2xsYXRp b25NaXNtYXRjaChTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FM U1RBVEUgNDJQMjEgLSBjb2xsYXRpb24gbWlzbWF0Y2guIiIiCisKKyAgICBwYXNzCisKKworY2xh c3MgSW5kZXRlcm1pbmF0ZUNvbGxhdGlvbihTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlv bik6CisgICAgIiIiU1FMU1RBVEUgNDJQMjIgLSBpbmRldGVybWluYXRlIGNvbGxhdGlvbi4iIiIK KworICAgIHBhc3MKKworCitjbGFzcyBXcm9uZ09iamVjdFR5cGUoU3ludGF4RXJyb3JPckFjY2Vz c1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyODA5IC0gd3Jvbmcgb2JqZWN0IHR5 cGUuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgR2VuZXJhdGVkQWx3YXlzKFN5bnRheEVycm9y T3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MjhDOSAtIGdlbmVyYXRl ZCBhbHdheXMuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgVW5kZWZpbmVkQ29sdW1uKFN5bnRh eEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MjcwMyAtIHVu ZGVmaW5lZCBjb2x1bW4uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgVW5kZWZpbmVkRnVuY3Rp b24oU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQy ODgzIC0gdW5kZWZpbmVkIGZ1bmN0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFVuZGVm aW5lZFRhYmxlKFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxT VEFURSA0MlAwMSAtIHVuZGVmaW5lZCB0YWJsZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBV bmRlZmluZWRQYXJhbWV0ZXIoU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAg ICIiIlNRTFNUQVRFIDQyUDAyIC0gdW5kZWZpbmVkIHBhcmFtZXRlci4iIiIKKworICAgIHBhc3MK KworCitjbGFzcyBVbmRlZmluZWRPYmplY3QoU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRp b24pOgorICAgICIiIlNRTFNUQVRFIDQyNzA0IC0gdW5kZWZpbmVkIG9iamVjdC4iIiIKKworICAg IHBhc3MKKworCitjbGFzcyBEdXBsaWNhdGVDb2x1bW4oU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVW aW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyNzAxIC0gZHVwbGljYXRlIGNvbHVtbi4iIiIK KworICAgIHBhc3MKKworCitjbGFzcyBEdXBsaWNhdGVDdXJzb3IoU3ludGF4RXJyb3JPckFjY2Vz c1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyUDAzIC0gZHVwbGljYXRlIGN1cnNv ci4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBEdXBsaWNhdGVEYXRhYmFzZShTeW50YXhFcnJv ck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDJQMDQgLSBkdXBsaWNh dGUgZGF0YWJhc2UuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRHVwbGljYXRlRnVuY3Rpb24o U3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyNzIz IC0gZHVwbGljYXRlIGZ1bmN0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIER1cGxpY2F0 ZVByZXBhcmVkU3RhdGVtZW50KFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAg ICAiIiJTUUxTVEFURSA0MlAwNSAtIGR1cGxpY2F0ZSBwcmVwYXJlZCBzdGF0ZW1lbnQuIiIiCisK KyAgICBwYXNzCisKKworY2xhc3MgRHVwbGljYXRlU2NoZW1hKFN5bnRheEVycm9yT3JBY2Nlc3NS dWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MlAwNiAtIGR1cGxpY2F0ZSBzY2hlbWEu IiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRHVwbGljYXRlVGFibGUoU3ludGF4RXJyb3JPckFj Y2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyUDA3IC0gZHVwbGljYXRlIHRh YmxlLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIER1cGxpY2F0ZUFsaWFzKFN5bnRheEVycm9y T3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MjcxMiAtIGR1cGxpY2F0 ZSBhbGlhcy4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBEdXBsaWNhdGVPYmplY3QoU3ludGF4 RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyNzEwIC0gZHVw bGljYXRlIG9iamVjdC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBBbWJpZ3VvdXNDb2x1bW4o U3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyNzAy IC0gYW1iaWd1b3VzIGNvbHVtbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBBbWJpZ3VvdXNG dW5jdGlvbihTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RB VEUgNDI3MjUgLSBhbWJpZ3VvdXMgZnVuY3Rpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg QW1iaWd1b3VzUGFyYW1ldGVyKFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAg ICAiIiJTUUxTVEFURSA0MlAwOCAtIGFtYmlndW91cyBwYXJhbWV0ZXIuIiIiCisKKyAgICBwYXNz CisKKworY2xhc3MgQW1iaWd1b3VzQWxpYXMoU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRp b24pOgorICAgICIiIlNRTFNUQVRFIDQyUDA5IC0gYW1iaWd1b3VzIGFsaWFzLiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIEludmFsaWRDb2x1bW5SZWZlcmVuY2UoU3ludGF4RXJyb3JPckFjY2Vz c1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyUDEwIC0gaW52YWxpZCBjb2x1bW4g cmVmZXJlbmNlLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRDb2x1bW5EZWZpbml0 aW9uKFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0 MjYxMSAtIGludmFsaWQgY29sdW1uIGRlZmluaXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xh c3MgSW52YWxpZEN1cnNvckRlZmluaXRpb24oU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRp b24pOgorICAgICIiIlNRTFNUQVRFIDQyUDExIC0gaW52YWxpZCBjdXJzb3IgZGVmaW5pdGlvbi4i IiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkRGF0YWJhc2VEZWZpbml0aW9uKFN5bnRh eEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MlAxMiAtIGlu dmFsaWQgZGF0YWJhc2UgZGVmaW5pdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZh bGlkRnVuY3Rpb25EZWZpbml0aW9uKFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToK KyAgICAiIiJTUUxTVEFURSA0MlAxMyAtIGludmFsaWQgZnVuY3Rpb24gZGVmaW5pdGlvbi4iIiIK KworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkUHJlcGFyZWRTdGF0ZW1lbnREZWZpbml0aW9u KFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MlAx NCAtIGludmFsaWQgcHJlcGFyZWQgc3RhdGVtZW50IGRlZmluaXRpb24uIiIiCisKKyAgICBwYXNz CisKKworY2xhc3MgSW52YWxpZFNjaGVtYURlZmluaXRpb24oU3ludGF4RXJyb3JPckFjY2Vzc1J1 bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyUDE1IC0gaW52YWxpZCBzY2hlbWEgZGVm aW5pdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkVGFibGVEZWZpbml0aW9u KFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MlAx NiAtIGludmFsaWQgdGFibGUgZGVmaW5pdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJ bnZhbGlkT2JqZWN0RGVmaW5pdGlvbihTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6 CisgICAgIiIiU1FMU1RBVEUgNDJQMTcgLSBpbnZhbGlkIG9iamVjdCBkZWZpbml0aW9uLiIiIgor CisgICAgcGFzcworCisKK2NsYXNzIFdpdGhDaGVja09wdGlvblZpb2xhdGlvbihMaWJwcUVycm9y KToKKyAgICAiIiJTUUxTVEFURSA0NDAwMCAtIHdpdGggY2hlY2sgb3B0aW9uIHZpb2xhdGlvbi4i IiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnN1ZmZpY2llbnRSZXNvdXJjZXMoTGlicHFFcnJv cik6CisgICAgIiIiU1FMU1RBVEUgNTMwMDAgLSBpbnN1ZmZpY2llbnQgcmVzb3VyY2VzLiIiIgor CisgICAgcGFzcworCisKK2NsYXNzIERpc2tGdWxsKEluc3VmZmljaWVudFJlc291cmNlcyk6Cisg ICAgIiIiU1FMU1RBVEUgNTMxMDAgLSBkaXNrIGZ1bGwuIiIiCisKKyAgICBwYXNzCisKKworY2xh c3MgT3V0T2ZNZW1vcnkoSW5zdWZmaWNpZW50UmVzb3VyY2VzKToKKyAgICAiIiJTUUxTVEFURSA1 MzIwMCAtIG91dCBvZiBtZW1vcnkuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgVG9vTWFueUNv bm5lY3Rpb25zKEluc3VmZmljaWVudFJlc291cmNlcyk6CisgICAgIiIiU1FMU1RBVEUgNTMzMDAg LSB0b28gbWFueSBjb25uZWN0aW9ucy4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBDb25maWd1 cmF0aW9uTGltaXRFeGNlZWRlZChJbnN1ZmZpY2llbnRSZXNvdXJjZXMpOgorICAgICIiIlNRTFNU QVRFIDUzNDAwIC0gY29uZmlndXJhdGlvbiBsaW1pdCBleGNlZWRlZC4iIiIKKworICAgIHBhc3MK KworCitjbGFzcyBQcm9ncmFtTGltaXRFeGNlZWRlZChMaWJwcUVycm9yKToKKyAgICAiIiJTUUxT VEFURSA1NDAwMCAtIHByb2dyYW0gbGltaXQgZXhjZWVkZWQuIiIiCisKKyAgICBwYXNzCisKKwor Y2xhc3MgU3RhdGVtZW50VG9vQ29tcGxleChQcm9ncmFtTGltaXRFeGNlZWRlZCk6CisgICAgIiIi U1FMU1RBVEUgNTQwMDEgLSBzdGF0ZW1lbnQgdG9vIGNvbXBsZXguIiIiCisKKyAgICBwYXNzCisK KworY2xhc3MgVG9vTWFueUNvbHVtbnMoUHJvZ3JhbUxpbWl0RXhjZWVkZWQpOgorICAgICIiIlNR TFNUQVRFIDU0MDExIC0gdG9vIG1hbnkgY29sdW1ucy4iIiIKKworICAgIHBhc3MKKworCitjbGFz cyBUb29NYW55QXJndW1lbnRzKFByb2dyYW1MaW1pdEV4Y2VlZGVkKToKKyAgICAiIiJTUUxTVEFU RSA1NDAyMyAtIHRvbyBtYW55IGFyZ3VtZW50cy4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBP YmplY3ROb3RJblByZXJlcXVpc2l0ZVN0YXRlKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRF IDU1MDAwIC0gb2JqZWN0IG5vdCBpbiBwcmVyZXF1aXNpdGUgc3RhdGUuIiIiCisKKyAgICBwYXNz CisKKworY2xhc3MgT2JqZWN0SW5Vc2UoT2JqZWN0Tm90SW5QcmVyZXF1aXNpdGVTdGF0ZSk6Cisg ICAgIiIiU1FMU1RBVEUgNTUwMDYgLSBvYmplY3QgaW4gdXNlLiIiIgorCisgICAgcGFzcworCisK K2NsYXNzIENhbnRDaGFuZ2VSdW50aW1lUGFyYW0oT2JqZWN0Tm90SW5QcmVyZXF1aXNpdGVTdGF0 ZSk6CisgICAgIiIiU1FMU1RBVEUgNTVQMDIgLSBjYW50IGNoYW5nZSBydW50aW1lIHBhcmFtLiIi IgorCisgICAgcGFzcworCisKK2NsYXNzIExvY2tOb3RBdmFpbGFibGUoT2JqZWN0Tm90SW5QcmVy ZXF1aXNpdGVTdGF0ZSk6CisgICAgIiIiU1FMU1RBVEUgNTVQMDMgLSBsb2NrIG5vdCBhdmFpbGFi bGUuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgVW5zYWZlTmV3RW51bVZhbHVlVXNhZ2UoT2Jq ZWN0Tm90SW5QcmVyZXF1aXNpdGVTdGF0ZSk6CisgICAgIiIiU1FMU1RBVEUgNTVQMDQgLSB1bnNh ZmUgbmV3IGVudW0gdmFsdWUgdXNhZ2UuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgT3BlcmF0 b3JJbnRlcnZlbnRpb24oTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgNTcwMDAgLSBvcGVy YXRvciBpbnRlcnZlbnRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgUXVlcnlDYW5jZWxl ZChPcGVyYXRvckludGVydmVudGlvbik6CisgICAgIiIiU1FMU1RBVEUgNTcwMTQgLSBxdWVyeSBj YW5jZWxlZC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBBZG1pblNodXRkb3duKE9wZXJhdG9y SW50ZXJ2ZW50aW9uKToKKyAgICAiIiJTUUxTVEFURSA1N1AwMSAtIGFkbWluIHNodXRkb3duLiIi IgorCisgICAgcGFzcworCisKK2NsYXNzIENyYXNoU2h1dGRvd24oT3BlcmF0b3JJbnRlcnZlbnRp b24pOgorICAgICIiIlNRTFNUQVRFIDU3UDAyIC0gY3Jhc2ggc2h1dGRvd24uIiIiCisKKyAgICBw YXNzCisKKworY2xhc3MgQ2Fubm90Q29ubmVjdE5vdyhPcGVyYXRvckludGVydmVudGlvbik6Cisg ICAgIiIiU1FMU1RBVEUgNTdQMDMgLSBjYW5ub3QgY29ubmVjdCBub3cuIiIiCisKKyAgICBwYXNz CisKKworY2xhc3MgRGF0YWJhc2VEcm9wcGVkKE9wZXJhdG9ySW50ZXJ2ZW50aW9uKToKKyAgICAi IiJTUUxTVEFURSA1N1AwNCAtIGRhdGFiYXNlIGRyb3BwZWQuIiIiCisKKyAgICBwYXNzCisKKwor Y2xhc3MgSWRsZVNlc3Npb25UaW1lb3V0KE9wZXJhdG9ySW50ZXJ2ZW50aW9uKToKKyAgICAiIiJT UUxTVEFURSA1N1AwNSAtIGlkbGUgc2Vzc2lvbiB0aW1lb3V0LiIiIgorCisgICAgcGFzcworCisK K2NsYXNzIFN5c3RlbUVycm9yKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDU4MDAwIC0g c3lzdGVtIGVycm9yLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIElvRXJyb3IoU3lzdGVtRXJy b3IpOgorICAgICIiIlNRTFNUQVRFIDU4MDMwIC0gaW8gZXJyb3IuIiIiCisKKyAgICBwYXNzCisK KworY2xhc3MgVW5kZWZpbmVkRmlsZShTeXN0ZW1FcnJvcik6CisgICAgIiIiU1FMU1RBVEUgNThQ MDEgLSB1bmRlZmluZWQgZmlsZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBEdXBsaWNhdGVG aWxlKFN5c3RlbUVycm9yKToKKyAgICAiIiJTUUxTVEFURSA1OFAwMiAtIGR1cGxpY2F0ZSBmaWxl LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEZpbGVOYW1lVG9vTG9uZyhTeXN0ZW1FcnJvcik6 CisgICAgIiIiU1FMU1RBVEUgNThQMDMgLSBmaWxlIG5hbWUgdG9vIGxvbmcuIiIiCisKKyAgICBw YXNzCisKKworY2xhc3MgQ29uZmlnRmlsZUVycm9yKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNU QVRFIEYwMDAwIC0gY29uZmlnIGZpbGUgZXJyb3IuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg TG9ja0ZpbGVFeGlzdHMoQ29uZmlnRmlsZUVycm9yKToKKyAgICAiIiJTUUxTVEFURSBGMDAwMSAt IGxvY2sgZmlsZSBleGlzdHMuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRkRXRXJyb3IoTGli cHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgSFYwMDAgLSBmZHcgZXJyb3IuIiIiCisKKyAgICBw YXNzCisKKworY2xhc3MgRkRXQ29sdW1uTmFtZU5vdEZvdW5kKEZEV0Vycm9yKToKKyAgICAiIiJT UUxTVEFURSBIVjAwNSAtIGZkdyBjb2x1bW4gbmFtZSBub3QgZm91bmQuIiIiCisKKyAgICBwYXNz CisKKworY2xhc3MgRkRXRHluYW1pY1BhcmFtZXRlclZhbHVlTmVlZGVkKEZEV0Vycm9yKToKKyAg ICAiIiJTUUxTVEFURSBIVjAwMiAtIGZkdyBkeW5hbWljIHBhcmFtZXRlciB2YWx1ZSBuZWVkZWQu IiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRkRXRnVuY3Rpb25TZXF1ZW5jZUVycm9yKEZEV0Vy cm9yKToKKyAgICAiIiJTUUxTVEFURSBIVjAxMCAtIGZkdyBmdW5jdGlvbiBzZXF1ZW5jZSBlcnJv ci4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBGRFdJbmNvbnNpc3RlbnREZXNjcmlwdG9ySW5m b3JtYXRpb24oRkRXRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIEhWMDIxIC0gZmR3IGluY29uc2lz dGVudCBkZXNjcmlwdG9yIGluZm9ybWF0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEZE V0ludmFsaWRBdHRyaWJ1dGVWYWx1ZShGRFdFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgSFYwMjQg LSBmZHcgaW52YWxpZCBhdHRyaWJ1dGUgdmFsdWUuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg RkRXSW52YWxpZENvbHVtbk5hbWUoRkRXRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIEhWMDA3IC0g ZmR3IGludmFsaWQgY29sdW1uIG5hbWUuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRkRXSW52 YWxpZENvbHVtbk51bWJlcihGRFdFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgSFYwMDggLSBmZHcg aW52YWxpZCBjb2x1bW4gbnVtYmVyLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEZEV0ludmFs aWREYXRhVHlwZShGRFdFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgSFYwMDQgLSBmZHcgaW52YWxp ZCBkYXRhIHR5cGUuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRkRXSW52YWxpZERhdGFUeXBl RGVzY3JpcHRvcnMoRkRXRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIEhWMDA2IC0gZmR3IGludmFs aWQgZGF0YSB0eXBlIGRlc2NyaXB0b3JzLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEZEV0lu dmFsaWREZXNjcmlwdG9yRmllbGRJZGVudGlmaWVyKEZEV0Vycm9yKToKKyAgICAiIiJTUUxTVEFU RSBIVjA5MSAtIGZkdyBpbnZhbGlkIGRlc2NyaXB0b3IgZmllbGQgaWRlbnRpZmllci4iIiIKKwor ICAgIHBhc3MKKworCitjbGFzcyBGRFdJbnZhbGlkSGFuZGxlKEZEV0Vycm9yKToKKyAgICAiIiJT UUxTVEFURSBIVjAwQiAtIGZkdyBpbnZhbGlkIGhhbmRsZS4iIiIKKworICAgIHBhc3MKKworCitj bGFzcyBGRFdJbnZhbGlkT3B0aW9uSW5kZXgoRkRXRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIEhW MDBDIC0gZmR3IGludmFsaWQgb3B0aW9uIGluZGV4LiIiIgorCisgICAgcGFzcworCisKK2NsYXNz IEZEV0ludmFsaWRPcHRpb25OYW1lKEZEV0Vycm9yKToKKyAgICAiIiJTUUxTVEFURSBIVjAwRCAt IGZkdyBpbnZhbGlkIG9wdGlvbiBuYW1lLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEZEV0lu dmFsaWRTdHJpbmdMZW5ndGhPckJ1ZmZlckxlbmd0aChGRFdFcnJvcik6CisgICAgIiIiU1FMU1RB VEUgSFYwOTAgLSBmZHcgaW52YWxpZCBzdHJpbmcgbGVuZ3RoIG9yIGJ1ZmZlciBsZW5ndGguIiIi CisKKyAgICBwYXNzCisKKworY2xhc3MgRkRXSW52YWxpZFN0cmluZ0Zvcm1hdChGRFdFcnJvcik6 CisgICAgIiIiU1FMU1RBVEUgSFYwMEEgLSBmZHcgaW52YWxpZCBzdHJpbmcgZm9ybWF0LiIiIgor CisgICAgcGFzcworCisKK2NsYXNzIEZEV0ludmFsaWRVc2VPZk51bGxQb2ludGVyKEZEV0Vycm9y KToKKyAgICAiIiJTUUxTVEFURSBIVjAwOSAtIGZkdyBpbnZhbGlkIHVzZSBvZiBudWxsIHBvaW50 ZXIuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRkRXVG9vTWFueUhhbmRsZXMoRkRXRXJyb3Ip OgorICAgICIiIlNRTFNUQVRFIEhWMDE0IC0gZmR3IHRvbyBtYW55IGhhbmRsZXMuIiIiCisKKyAg ICBwYXNzCisKKworY2xhc3MgRkRXT3V0T2ZNZW1vcnkoRkRXRXJyb3IpOgorICAgICIiIlNRTFNU QVRFIEhWMDAxIC0gZmR3IG91dCBvZiBtZW1vcnkuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg RkRXTm9TY2hlbWFzKEZEV0Vycm9yKToKKyAgICAiIiJTUUxTVEFURSBIVjAwUCAtIGZkdyBubyBz Y2hlbWFzLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEZEV09wdGlvbk5hbWVOb3RGb3VuZChG RFdFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgSFYwMEogLSBmZHcgb3B0aW9uIG5hbWUgbm90IGZv dW5kLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEZEV1JlcGx5SGFuZGxlKEZEV0Vycm9yKToK KyAgICAiIiJTUUxTVEFURSBIVjAwSyAtIGZkdyByZXBseSBoYW5kbGUuIiIiCisKKyAgICBwYXNz CisKKworY2xhc3MgRkRXU2NoZW1hTm90Rm91bmQoRkRXRXJyb3IpOgorICAgICIiIlNRTFNUQVRF IEhWMDBRIC0gZmR3IHNjaGVtYSBub3QgZm91bmQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg RkRXVGFibGVOb3RGb3VuZChGRFdFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgSFYwMFIgLSBmZHcg dGFibGUgbm90IGZvdW5kLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEZEV1VuYWJsZVRvQ3Jl YXRlRXhlY3V0aW9uKEZEV0Vycm9yKToKKyAgICAiIiJTUUxTVEFURSBIVjAwTCAtIGZkdyB1bmFi bGUgdG8gY3JlYXRlIGV4ZWN1dGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBGRFdVbmFi bGVUb0NyZWF0ZVJlcGx5KEZEV0Vycm9yKToKKyAgICAiIiJTUUxTVEFURSBIVjAwTSAtIGZkdyB1 bmFibGUgdG8gY3JlYXRlIHJlcGx5LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEZEV1VuYWJs ZVRvRXN0YWJsaXNoQ29ubmVjdGlvbihGRFdFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgSFYwME4g LSBmZHcgdW5hYmxlIHRvIGVzdGFibGlzaCBjb25uZWN0aW9uLiIiIgorCisgICAgcGFzcworCisK K2NsYXNzIFBscGdzcWxFcnJvcihMaWJwcUVycm9yKToKKyAgICAiIiJTUUxTVEFURSBQMDAwMCAt IHBscGdzcWwgZXJyb3IuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgUmFpc2VFeGNlcHRpb24o UGxwZ3NxbEVycm9yKToKKyAgICAiIiJTUUxTVEFURSBQMDAwMSAtIHJhaXNlIGV4Y2VwdGlvbi4i IiIKKworICAgIHBhc3MKKworCitjbGFzcyBOb0RhdGFGb3VuZChQbHBnc3FsRXJyb3IpOgorICAg ICIiIlNRTFNUQVRFIFAwMDAyIC0gbm8gZGF0YSBmb3VuZC4iIiIKKworICAgIHBhc3MKKworCitj bGFzcyBUb29NYW55Um93cyhQbHBnc3FsRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIFAwMDAzIC0g dG9vIG1hbnkgcm93cy4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBBc3NlcnRGYWlsdXJlKFBs cGdzcWxFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgUDAwMDQgLSBhc3NlcnQgZmFpbHVyZS4iIiIK KworICAgIHBhc3MKKworCitjbGFzcyBJbnRlcm5hbEVycm9yKExpYnBxRXJyb3IpOgorICAgICIi IlNRTFNUQVRFIFhYMDAwIC0gaW50ZXJuYWwgZXJyb3IuIiIiCisKKyAgICBwYXNzCisKKworY2xh c3MgRGF0YUNvcnJ1cHRlZChJbnRlcm5hbEVycm9yKToKKyAgICAiIiJTUUxTVEFURSBYWDAwMSAt IGRhdGEgY29ycnVwdGVkLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEluZGV4Q29ycnVwdGVk KEludGVybmFsRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIFhYMDAyIC0gaW5kZXggY29ycnVwdGVk LiIiIgorCisgICAgcGFzcworCisKK1NRTFNUQVRFX1RPX0VYQ0VQVElPTjogRGljdFtzdHIsIHR5 cGVdID0geworICAgICIwMDAwMCI6IFN1Y2Nlc3NmdWxDb21wbGV0aW9uLAorICAgICIwMTAwMCI6 IFdhcm5pbmcsCisgICAgIjAxMDBDIjogRHluYW1pY1Jlc3VsdFNldHNSZXR1cm5lZFdhcm5pbmcs CisgICAgIjAxMDA4IjogSW1wbGljaXRaZXJvQml0UGFkZGluZ1dhcm5pbmcsCisgICAgIjAxMDAz IjogTnVsbFZhbHVlRWxpbWluYXRlZEluU2V0RnVuY3Rpb25XYXJuaW5nLAorICAgICIwMTAwNyI6 IFByaXZpbGVnZU5vdEdyYW50ZWRXYXJuaW5nLAorICAgICIwMTAwNiI6IFByaXZpbGVnZU5vdFJl dm9rZWRXYXJuaW5nLAorICAgICIwMTAwNCI6IFN0cmluZ0RhdGFSaWdodFRydW5jYXRpb25XYXJu aW5nLAorICAgICIwMVAwMSI6IERlcHJlY2F0ZWRGZWF0dXJlV2FybmluZywKKyAgICAiMDIwMDAi OiBOb0RhdGEsCisgICAgIjAyMDAxIjogTm9BZGRpdGlvbmFsRHluYW1pY1Jlc3VsdFNldHNSZXR1 cm5lZCwKKyAgICAiMDMwMDAiOiBTUUxTdGF0ZW1lbnROb3RZZXRDb21wbGV0ZSwKKyAgICAiMDgw MDAiOiBDb25uZWN0aW9uRXhjZXB0aW9uLAorICAgICIwODAwMyI6IENvbm5lY3Rpb25Eb2VzTm90 RXhpc3QsCisgICAgIjA4MDA2IjogQ29ubmVjdGlvbkZhaWx1cmUsCisgICAgIjA4MDAxIjogU1FM Q2xpZW50VW5hYmxlVG9Fc3RhYmxpc2hTUUxDb25uZWN0aW9uLAorICAgICIwODAwNCI6IFNRTFNl cnZlclJlamVjdGVkRXN0YWJsaXNobWVudE9mU1FMQ29ubmVjdGlvbiwKKyAgICAiMDgwMDciOiBU cmFuc2FjdGlvblJlc29sdXRpb25Vbmtub3duLAorICAgICIwOFAwMSI6IFByb3RvY29sVmlvbGF0 aW9uLAorICAgICIwOTAwMCI6IFRyaWdnZXJlZEFjdGlvbkV4Y2VwdGlvbiwKKyAgICAiMEEwMDAi OiBGZWF0dXJlTm90U3VwcG9ydGVkLAorICAgICIwQjAwMCI6IEludmFsaWRUcmFuc2FjdGlvbklu aXRpYXRpb24sCisgICAgIjBGMDAwIjogTG9jYXRvckV4Y2VwdGlvbiwKKyAgICAiMEYwMDEiOiBJ bnZhbGlkTG9jYXRvclNwZWNpZmljYXRpb24sCisgICAgIjBMMDAwIjogSW52YWxpZEdyYW50b3Is CisgICAgIjBMUDAxIjogSW52YWxpZEdyYW50T3BlcmF0aW9uLAorICAgICIwUDAwMCI6IEludmFs aWRSb2xlU3BlY2lmaWNhdGlvbiwKKyAgICAiMFowMDAiOiBEaWFnbm9zdGljc0V4Y2VwdGlvbiwK KyAgICAiMFowMDIiOiBTdGFja2VkRGlhZ25vc3RpY3NBY2Nlc3NlZFdpdGhvdXRBY3RpdmVIYW5k bGVyLAorICAgICIxMDYwOCI6IEludmFsaWRBcmd1bWVudEZvclhxdWVyeSwKKyAgICAiMjAwMDAi OiBDYXNlTm90Rm91bmQsCisgICAgIjIxMDAwIjogQ2FyZGluYWxpdHlWaW9sYXRpb24sCisgICAg IjIyMDAwIjogRGF0YUV4Y2VwdGlvbiwKKyAgICAiMjIwMkUiOiBBcnJheVN1YnNjcmlwdEVycm9y LAorICAgICIyMjAyMSI6IENoYXJhY3Rlck5vdEluUmVwZXJ0b2lyZSwKKyAgICAiMjIwMDgiOiBE YXRldGltZUZpZWxkT3ZlcmZsb3csCisgICAgIjIyMDEyIjogRGl2aXNpb25CeVplcm8sCisgICAg IjIyMDA1IjogRXJyb3JJbkFzc2lnbm1lbnQsCisgICAgIjIyMDBCIjogRXNjYXBlQ2hhcmFjdGVy Q29uZmxpY3QsCisgICAgIjIyMDIyIjogSW5kaWNhdG9yT3ZlcmZsb3csCisgICAgIjIyMDE1Ijog SW50ZXJ2YWxGaWVsZE92ZXJmbG93LAorICAgICIyMjAxRSI6IEludmFsaWRBcmd1bWVudEZvckxv Z2FyaXRobSwKKyAgICAiMjIwMTQiOiBJbnZhbGlkQXJndW1lbnRGb3JOdGlsZUZ1bmN0aW9uLAor ICAgICIyMjAxNiI6IEludmFsaWRBcmd1bWVudEZvck50aFZhbHVlRnVuY3Rpb24sCisgICAgIjIy MDFGIjogSW52YWxpZEFyZ3VtZW50Rm9yUG93ZXJGdW5jdGlvbiwKKyAgICAiMjIwMUciOiBJbnZh bGlkQXJndW1lbnRGb3JXaWR0aEJ1Y2tldEZ1bmN0aW9uLAorICAgICIyMjAxOCI6IEludmFsaWRD aGFyYWN0ZXJWYWx1ZUZvckNhc3QsCisgICAgIjIyMDA3IjogSW52YWxpZERhdGV0aW1lRm9ybWF0 LAorICAgICIyMjAxOSI6IEludmFsaWRFc2NhcGVDaGFyYWN0ZXIsCisgICAgIjIyMDBEIjogSW52 YWxpZEVzY2FwZU9jdGV0LAorICAgICIyMjAyNSI6IEludmFsaWRFc2NhcGVTZXF1ZW5jZSwKKyAg ICAiMjJQMDYiOiBOb25zdGFuZGFyZFVzZU9mRXNjYXBlQ2hhcmFjdGVyLAorICAgICIyMjAxMCI6 IEludmFsaWRJbmRpY2F0b3JQYXJhbWV0ZXJWYWx1ZSwKKyAgICAiMjIwMjMiOiBJbnZhbGlkUGFy YW1ldGVyVmFsdWUsCisgICAgIjIyMDEzIjogSW52YWxpZFByZWNlZGluZ09yRm9sbG93aW5nU2l6 ZSwKKyAgICAiMjIwMUIiOiBJbnZhbGlkUmVndWxhckV4cHJlc3Npb24sCisgICAgIjIyMDFXIjog SW52YWxpZFJvd0NvdW50SW5MaW1pdENsYXVzZSwKKyAgICAiMjIwMVgiOiBJbnZhbGlkUm93Q291 bnRJblJlc3VsdE9mZnNldENsYXVzZSwKKyAgICAiMjIwMkgiOiBJbnZhbGlkVGFibGVzYW1wbGVB cmd1bWVudCwKKyAgICAiMjIwMkciOiBJbnZhbGlkVGFibGVzYW1wbGVSZXBlYXQsCisgICAgIjIy MDA5IjogSW52YWxpZFRpbWVab25lRGlzcGxhY2VtZW50VmFsdWUsCisgICAgIjIyMDBDIjogSW52 YWxpZFVzZU9mRXNjYXBlQ2hhcmFjdGVyLAorICAgICIyMjAwRyI6IE1vc3RTcGVjaWZpY1R5cGVN aXNtYXRjaCwKKyAgICAiMjIwMDQiOiBOdWxsVmFsdWVOb3RBbGxvd2VkLAorICAgICIyMjAwMiI6 IE51bGxWYWx1ZU5vSW5kaWNhdG9yUGFyYW1ldGVyLAorICAgICIyMjAwMyI6IE51bWVyaWNWYWx1 ZU91dE9mUmFuZ2UsCisgICAgIjIyMDBIIjogU2VxdWVuY2VHZW5lcmF0b3JMaW1pdEV4Y2VlZGVk LAorICAgICIyMjAyNiI6IFN0cmluZ0RhdGFMZW5ndGhNaXNtYXRjaCwKKyAgICAiMjIwMDEiOiBT dHJpbmdEYXRhUmlnaHRUcnVuY2F0aW9uLAorICAgICIyMjAxMSI6IFN1YnN0cmluZ0Vycm9yLAor ICAgICIyMjAyNyI6IFRyaW1FcnJvciwKKyAgICAiMjIwMjQiOiBVbnRlcm1pbmF0ZWRDU3RyaW5n LAorICAgICIyMjAwRiI6IFplcm9MZW5ndGhDaGFyYWN0ZXJTdHJpbmcsCisgICAgIjIyUDAxIjog RmxvYXRpbmdQb2ludEV4Y2VwdGlvbiwKKyAgICAiMjJQMDIiOiBJbnZhbGlkVGV4dFJlcHJlc2Vu dGF0aW9uLAorICAgICIyMlAwMyI6IEludmFsaWRCaW5hcnlSZXByZXNlbnRhdGlvbiwKKyAgICAi MjJQMDQiOiBCYWRDb3B5RmlsZUZvcm1hdCwKKyAgICAiMjJQMDUiOiBVbnRyYW5zbGF0YWJsZUNo YXJhY3RlciwKKyAgICAiMjIwMEwiOiBOb3RBblhtbERvY3VtZW50LAorICAgICIyMjAwTSI6IElu dmFsaWRYbWxEb2N1bWVudCwKKyAgICAiMjIwME4iOiBJbnZhbGlkWG1sQ29udGVudCwKKyAgICAi MjIwMFMiOiBJbnZhbGlkWG1sQ29tbWVudCwKKyAgICAiMjIwMFQiOiBJbnZhbGlkWG1sUHJvY2Vz c2luZ0luc3RydWN0aW9uLAorICAgICIyMjAzMCI6IER1cGxpY2F0ZUpzb25PYmplY3RLZXlWYWx1 ZSwKKyAgICAiMjIwMzEiOiBJbnZhbGlkQXJndW1lbnRGb3JTUUxKc29uRGF0ZXRpbWVGdW5jdGlv biwKKyAgICAiMjIwMzIiOiBJbnZhbGlkSnNvblRleHQsCisgICAgIjIyMDMzIjogSW52YWxpZFNR TEpzb25TdWJzY3JpcHQsCisgICAgIjIyMDM0IjogTW9yZVRoYW5PbmVTUUxKc29uSXRlbSwKKyAg ICAiMjIwMzUiOiBOb1NRTEpzb25JdGVtLAorICAgICIyMjAzNiI6IE5vbk51bWVyaWNTUUxKc29u SXRlbSwKKyAgICAiMjIwMzciOiBOb25VbmlxdWVLZXlzSW5BSnNvbk9iamVjdCwKKyAgICAiMjIw MzgiOiBTaW5nbGV0b25TUUxKc29uSXRlbVJlcXVpcmVkLAorICAgICIyMjAzOSI6IFNRTEpzb25B cnJheU5vdEZvdW5kLAorICAgICIyMjAzQSI6IFNRTEpzb25NZW1iZXJOb3RGb3VuZCwKKyAgICAi MjIwM0IiOiBTUUxKc29uTnVtYmVyTm90Rm91bmQsCisgICAgIjIyMDNDIjogU1FMSnNvbk9iamVj dE5vdEZvdW5kLAorICAgICIyMjAzRCI6IFRvb01hbnlKc29uQXJyYXlFbGVtZW50cywKKyAgICAi MjIwM0UiOiBUb29NYW55SnNvbk9iamVjdE1lbWJlcnMsCisgICAgIjIyMDNGIjogU1FMSnNvblNj YWxhclJlcXVpcmVkLAorICAgICIyMjAzRyI6IFNRTEpzb25JdGVtQ2Fubm90QmVDYXN0VG9UYXJn ZXRUeXBlLAorICAgICIyMzAwMCI6IEludGVncml0eUNvbnN0cmFpbnRWaW9sYXRpb24sCisgICAg IjIzMDAxIjogUmVzdHJpY3RWaW9sYXRpb24sCisgICAgIjIzNTAyIjogTm90TnVsbFZpb2xhdGlv biwKKyAgICAiMjM1MDMiOiBGb3JlaWduS2V5VmlvbGF0aW9uLAorICAgICIyMzUwNSI6IFVuaXF1 ZVZpb2xhdGlvbiwKKyAgICAiMjM1MTQiOiBDaGVja1Zpb2xhdGlvbiwKKyAgICAiMjNQMDEiOiBF eGNsdXNpb25WaW9sYXRpb24sCisgICAgIjI0MDAwIjogSW52YWxpZEN1cnNvclN0YXRlLAorICAg ICIyNTAwMCI6IEludmFsaWRUcmFuc2FjdGlvblN0YXRlLAorICAgICIyNTAwMSI6IEFjdGl2ZVNR TFRyYW5zYWN0aW9uLAorICAgICIyNTAwMiI6IEJyYW5jaFRyYW5zYWN0aW9uQWxyZWFkeUFjdGl2 ZSwKKyAgICAiMjUwMDgiOiBIZWxkQ3Vyc29yUmVxdWlyZXNTYW1lSXNvbGF0aW9uTGV2ZWwsCisg ICAgIjI1MDAzIjogSW5hcHByb3ByaWF0ZUFjY2Vzc01vZGVGb3JCcmFuY2hUcmFuc2FjdGlvbiwK KyAgICAiMjUwMDQiOiBJbmFwcHJvcHJpYXRlSXNvbGF0aW9uTGV2ZWxGb3JCcmFuY2hUcmFuc2Fj dGlvbiwKKyAgICAiMjUwMDUiOiBOb0FjdGl2ZVNRTFRyYW5zYWN0aW9uRm9yQnJhbmNoVHJhbnNh Y3Rpb24sCisgICAgIjI1MDA2IjogUmVhZE9ubHlTUUxUcmFuc2FjdGlvbiwKKyAgICAiMjUwMDci OiBTY2hlbWFBbmREYXRhU3RhdGVtZW50TWl4aW5nTm90U3VwcG9ydGVkLAorICAgICIyNVAwMSI6 IE5vQWN0aXZlU1FMVHJhbnNhY3Rpb24sCisgICAgIjI1UDAyIjogSW5GYWlsZWRTUUxUcmFuc2Fj dGlvbiwKKyAgICAiMjVQMDMiOiBJZGxlSW5UcmFuc2FjdGlvblNlc3Npb25UaW1lb3V0LAorICAg ICIyNVAwNCI6IFRyYW5zYWN0aW9uVGltZW91dCwKKyAgICAiMjYwMDAiOiBJbnZhbGlkU1FMU3Rh dGVtZW50TmFtZSwKKyAgICAiMjcwMDAiOiBUcmlnZ2VyZWREYXRhQ2hhbmdlVmlvbGF0aW9uLAor ICAgICIyODAwMCI6IEludmFsaWRBdXRob3JpemF0aW9uU3BlY2lmaWNhdGlvbiwKKyAgICAiMjhQ MDEiOiBJbnZhbGlkUGFzc3dvcmQsCisgICAgIjJCMDAwIjogRGVwZW5kZW50UHJpdmlsZWdlRGVz Y3JpcHRvcnNTdGlsbEV4aXN0LAorICAgICIyQlAwMSI6IERlcGVuZGVudE9iamVjdHNTdGlsbEV4 aXN0LAorICAgICIyRDAwMCI6IEludmFsaWRUcmFuc2FjdGlvblRlcm1pbmF0aW9uLAorICAgICIy RjAwMCI6IFNRTFJvdXRpbmVFeGNlcHRpb24sCisgICAgIjJGMDA1IjogRnVuY3Rpb25FeGVjdXRl ZE5vUmV0dXJuU3RhdGVtZW50LAorICAgICIyRjAwMiI6IFNSRU1vZGlmeWluZ1NRTERhdGFOb3RQ ZXJtaXR0ZWQsCisgICAgIjJGMDAzIjogU1JFUHJvaGliaXRlZFNRTFN0YXRlbWVudEF0dGVtcHRl ZCwKKyAgICAiMkYwMDQiOiBTUkVSZWFkaW5nU1FMRGF0YU5vdFBlcm1pdHRlZCwKKyAgICAiMzQw MDAiOiBJbnZhbGlkQ3Vyc29yTmFtZSwKKyAgICAiMzgwMDAiOiBFeHRlcm5hbFJvdXRpbmVFeGNl cHRpb24sCisgICAgIjM4MDAxIjogQ29udGFpbmluZ1NRTE5vdFBlcm1pdHRlZCwKKyAgICAiMzgw MDIiOiBFUkVNb2RpZnlpbmdTUUxEYXRhTm90UGVybWl0dGVkLAorICAgICIzODAwMyI6IEVSRVBy b2hpYml0ZWRTUUxTdGF0ZW1lbnRBdHRlbXB0ZWQsCisgICAgIjM4MDA0IjogRVJFUmVhZGluZ1NR TERhdGFOb3RQZXJtaXR0ZWQsCisgICAgIjM5MDAwIjogRXh0ZXJuYWxSb3V0aW5lSW52b2NhdGlv bkV4Y2VwdGlvbiwKKyAgICAiMzkwMDEiOiBJbnZhbGlkU3Fsc3RhdGVSZXR1cm5lZCwKKyAgICAi MzkwMDQiOiBFUklFTnVsbFZhbHVlTm90QWxsb3dlZCwKKyAgICAiMzlQMDEiOiBUcmlnZ2VyUHJv dG9jb2xWaW9sYXRlZCwKKyAgICAiMzlQMDIiOiBTcmZQcm90b2NvbFZpb2xhdGVkLAorICAgICIz OVAwMyI6IEV2ZW50VHJpZ2dlclByb3RvY29sVmlvbGF0ZWQsCisgICAgIjNCMDAwIjogU2F2ZXBv aW50RXhjZXB0aW9uLAorICAgICIzQjAwMSI6IEludmFsaWRTYXZlcG9pbnRTcGVjaWZpY2F0aW9u LAorICAgICIzRDAwMCI6IEludmFsaWRDYXRhbG9nTmFtZSwKKyAgICAiM0YwMDAiOiBJbnZhbGlk U2NoZW1hTmFtZSwKKyAgICAiNDAwMDAiOiBUcmFuc2FjdGlvblJvbGxiYWNrLAorICAgICI0MDAw MiI6IFRyYW5zYWN0aW9uSW50ZWdyaXR5Q29uc3RyYWludFZpb2xhdGlvbiwKKyAgICAiNDAwMDEi OiBTZXJpYWxpemF0aW9uRmFpbHVyZSwKKyAgICAiNDAwMDMiOiBTdGF0ZW1lbnRDb21wbGV0aW9u VW5rbm93biwKKyAgICAiNDBQMDEiOiBEZWFkbG9ja0RldGVjdGVkLAorICAgICI0MjAwMCI6IFN5 bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uLAorICAgICI0MjYwMSI6IFN5bnRheEVycm9y LAorICAgICI0MjUwMSI6IEluc3VmZmljaWVudFByaXZpbGVnZSwKKyAgICAiNDI4NDYiOiBDYW5u b3RDb2VyY2UsCisgICAgIjQyODAzIjogR3JvdXBpbmdFcnJvciwKKyAgICAiNDJQMjAiOiBXaW5k b3dpbmdFcnJvciwKKyAgICAiNDJQMTkiOiBJbnZhbGlkUmVjdXJzaW9uLAorICAgICI0MjgzMCI6 IEludmFsaWRGb3JlaWduS2V5LAorICAgICI0MjYwMiI6IEludmFsaWROYW1lLAorICAgICI0MjYy MiI6IE5hbWVUb29Mb25nLAorICAgICI0MjkzOSI6IFJlc2VydmVkTmFtZSwKKyAgICAiNDI4MDQi OiBEYXRhdHlwZU1pc21hdGNoLAorICAgICI0MlAxOCI6IEluZGV0ZXJtaW5hdGVEYXRhdHlwZSwK KyAgICAiNDJQMjEiOiBDb2xsYXRpb25NaXNtYXRjaCwKKyAgICAiNDJQMjIiOiBJbmRldGVybWlu YXRlQ29sbGF0aW9uLAorICAgICI0MjgwOSI6IFdyb25nT2JqZWN0VHlwZSwKKyAgICAiNDI4Qzki OiBHZW5lcmF0ZWRBbHdheXMsCisgICAgIjQyNzAzIjogVW5kZWZpbmVkQ29sdW1uLAorICAgICI0 Mjg4MyI6IFVuZGVmaW5lZEZ1bmN0aW9uLAorICAgICI0MlAwMSI6IFVuZGVmaW5lZFRhYmxlLAor ICAgICI0MlAwMiI6IFVuZGVmaW5lZFBhcmFtZXRlciwKKyAgICAiNDI3MDQiOiBVbmRlZmluZWRP YmplY3QsCisgICAgIjQyNzAxIjogRHVwbGljYXRlQ29sdW1uLAorICAgICI0MlAwMyI6IER1cGxp Y2F0ZUN1cnNvciwKKyAgICAiNDJQMDQiOiBEdXBsaWNhdGVEYXRhYmFzZSwKKyAgICAiNDI3MjMi OiBEdXBsaWNhdGVGdW5jdGlvbiwKKyAgICAiNDJQMDUiOiBEdXBsaWNhdGVQcmVwYXJlZFN0YXRl bWVudCwKKyAgICAiNDJQMDYiOiBEdXBsaWNhdGVTY2hlbWEsCisgICAgIjQyUDA3IjogRHVwbGlj YXRlVGFibGUsCisgICAgIjQyNzEyIjogRHVwbGljYXRlQWxpYXMsCisgICAgIjQyNzEwIjogRHVw bGljYXRlT2JqZWN0LAorICAgICI0MjcwMiI6IEFtYmlndW91c0NvbHVtbiwKKyAgICAiNDI3MjUi OiBBbWJpZ3VvdXNGdW5jdGlvbiwKKyAgICAiNDJQMDgiOiBBbWJpZ3VvdXNQYXJhbWV0ZXIsCisg ICAgIjQyUDA5IjogQW1iaWd1b3VzQWxpYXMsCisgICAgIjQyUDEwIjogSW52YWxpZENvbHVtblJl ZmVyZW5jZSwKKyAgICAiNDI2MTEiOiBJbnZhbGlkQ29sdW1uRGVmaW5pdGlvbiwKKyAgICAiNDJQ MTEiOiBJbnZhbGlkQ3Vyc29yRGVmaW5pdGlvbiwKKyAgICAiNDJQMTIiOiBJbnZhbGlkRGF0YWJh c2VEZWZpbml0aW9uLAorICAgICI0MlAxMyI6IEludmFsaWRGdW5jdGlvbkRlZmluaXRpb24sCisg ICAgIjQyUDE0IjogSW52YWxpZFByZXBhcmVkU3RhdGVtZW50RGVmaW5pdGlvbiwKKyAgICAiNDJQ MTUiOiBJbnZhbGlkU2NoZW1hRGVmaW5pdGlvbiwKKyAgICAiNDJQMTYiOiBJbnZhbGlkVGFibGVE ZWZpbml0aW9uLAorICAgICI0MlAxNyI6IEludmFsaWRPYmplY3REZWZpbml0aW9uLAorICAgICI0 NDAwMCI6IFdpdGhDaGVja09wdGlvblZpb2xhdGlvbiwKKyAgICAiNTMwMDAiOiBJbnN1ZmZpY2ll bnRSZXNvdXJjZXMsCisgICAgIjUzMTAwIjogRGlza0Z1bGwsCisgICAgIjUzMjAwIjogT3V0T2ZN ZW1vcnksCisgICAgIjUzMzAwIjogVG9vTWFueUNvbm5lY3Rpb25zLAorICAgICI1MzQwMCI6IENv bmZpZ3VyYXRpb25MaW1pdEV4Y2VlZGVkLAorICAgICI1NDAwMCI6IFByb2dyYW1MaW1pdEV4Y2Vl ZGVkLAorICAgICI1NDAwMSI6IFN0YXRlbWVudFRvb0NvbXBsZXgsCisgICAgIjU0MDExIjogVG9v TWFueUNvbHVtbnMsCisgICAgIjU0MDIzIjogVG9vTWFueUFyZ3VtZW50cywKKyAgICAiNTUwMDAi OiBPYmplY3ROb3RJblByZXJlcXVpc2l0ZVN0YXRlLAorICAgICI1NTAwNiI6IE9iamVjdEluVXNl LAorICAgICI1NVAwMiI6IENhbnRDaGFuZ2VSdW50aW1lUGFyYW0sCisgICAgIjU1UDAzIjogTG9j a05vdEF2YWlsYWJsZSwKKyAgICAiNTVQMDQiOiBVbnNhZmVOZXdFbnVtVmFsdWVVc2FnZSwKKyAg ICAiNTcwMDAiOiBPcGVyYXRvckludGVydmVudGlvbiwKKyAgICAiNTcwMTQiOiBRdWVyeUNhbmNl bGVkLAorICAgICI1N1AwMSI6IEFkbWluU2h1dGRvd24sCisgICAgIjU3UDAyIjogQ3Jhc2hTaHV0 ZG93biwKKyAgICAiNTdQMDMiOiBDYW5ub3RDb25uZWN0Tm93LAorICAgICI1N1AwNCI6IERhdGFi YXNlRHJvcHBlZCwKKyAgICAiNTdQMDUiOiBJZGxlU2Vzc2lvblRpbWVvdXQsCisgICAgIjU4MDAw IjogU3lzdGVtRXJyb3IsCisgICAgIjU4MDMwIjogSW9FcnJvciwKKyAgICAiNThQMDEiOiBVbmRl ZmluZWRGaWxlLAorICAgICI1OFAwMiI6IER1cGxpY2F0ZUZpbGUsCisgICAgIjU4UDAzIjogRmls ZU5hbWVUb29Mb25nLAorICAgICJGMDAwMCI6IENvbmZpZ0ZpbGVFcnJvciwKKyAgICAiRjAwMDEi OiBMb2NrRmlsZUV4aXN0cywKKyAgICAiSFYwMDAiOiBGRFdFcnJvciwKKyAgICAiSFYwMDUiOiBG RFdDb2x1bW5OYW1lTm90Rm91bmQsCisgICAgIkhWMDAyIjogRkRXRHluYW1pY1BhcmFtZXRlclZh bHVlTmVlZGVkLAorICAgICJIVjAxMCI6IEZEV0Z1bmN0aW9uU2VxdWVuY2VFcnJvciwKKyAgICAi SFYwMjEiOiBGRFdJbmNvbnNpc3RlbnREZXNjcmlwdG9ySW5mb3JtYXRpb24sCisgICAgIkhWMDI0 IjogRkRXSW52YWxpZEF0dHJpYnV0ZVZhbHVlLAorICAgICJIVjAwNyI6IEZEV0ludmFsaWRDb2x1 bW5OYW1lLAorICAgICJIVjAwOCI6IEZEV0ludmFsaWRDb2x1bW5OdW1iZXIsCisgICAgIkhWMDA0 IjogRkRXSW52YWxpZERhdGFUeXBlLAorICAgICJIVjAwNiI6IEZEV0ludmFsaWREYXRhVHlwZURl c2NyaXB0b3JzLAorICAgICJIVjA5MSI6IEZEV0ludmFsaWREZXNjcmlwdG9yRmllbGRJZGVudGlm aWVyLAorICAgICJIVjAwQiI6IEZEV0ludmFsaWRIYW5kbGUsCisgICAgIkhWMDBDIjogRkRXSW52 YWxpZE9wdGlvbkluZGV4LAorICAgICJIVjAwRCI6IEZEV0ludmFsaWRPcHRpb25OYW1lLAorICAg ICJIVjA5MCI6IEZEV0ludmFsaWRTdHJpbmdMZW5ndGhPckJ1ZmZlckxlbmd0aCwKKyAgICAiSFYw MEEiOiBGRFdJbnZhbGlkU3RyaW5nRm9ybWF0LAorICAgICJIVjAwOSI6IEZEV0ludmFsaWRVc2VP Zk51bGxQb2ludGVyLAorICAgICJIVjAxNCI6IEZEV1Rvb01hbnlIYW5kbGVzLAorICAgICJIVjAw MSI6IEZEV091dE9mTWVtb3J5LAorICAgICJIVjAwUCI6IEZEV05vU2NoZW1hcywKKyAgICAiSFYw MEoiOiBGRFdPcHRpb25OYW1lTm90Rm91bmQsCisgICAgIkhWMDBLIjogRkRXUmVwbHlIYW5kbGUs CisgICAgIkhWMDBRIjogRkRXU2NoZW1hTm90Rm91bmQsCisgICAgIkhWMDBSIjogRkRXVGFibGVO b3RGb3VuZCwKKyAgICAiSFYwMEwiOiBGRFdVbmFibGVUb0NyZWF0ZUV4ZWN1dGlvbiwKKyAgICAi SFYwME0iOiBGRFdVbmFibGVUb0NyZWF0ZVJlcGx5LAorICAgICJIVjAwTiI6IEZEV1VuYWJsZVRv RXN0YWJsaXNoQ29ubmVjdGlvbiwKKyAgICAiUDAwMDAiOiBQbHBnc3FsRXJyb3IsCisgICAgIlAw MDAxIjogUmFpc2VFeGNlcHRpb24sCisgICAgIlAwMDAyIjogTm9EYXRhRm91bmQsCisgICAgIlAw MDAzIjogVG9vTWFueVJvd3MsCisgICAgIlAwMDA0IjogQXNzZXJ0RmFpbHVyZSwKKyAgICAiWFgw MDAiOiBJbnRlcm5hbEVycm9yLAorICAgICJYWDAwMSI6IERhdGFDb3JydXB0ZWQsCisgICAgIlhY MDAyIjogSW5kZXhDb3JydXB0ZWQsCit9CisKKworX19hbGxfXyA9IFsKKyAgICAiSW52YWxpZEN1 cnNvck5hbWUiLAorICAgICJVbmRlZmluZWRQYXJhbWV0ZXIiLAorICAgICJVbmRlZmluZWRDb2x1 bW4iLAorICAgICJOb3RBblhtbERvY3VtZW50IiwKKyAgICAiRkRXT3V0T2ZNZW1vcnkiLAorICAg ICJJbnZhbGlkUm9sZVNwZWNpZmljYXRpb24iLAorICAgICJJbnZhbGlkQXJndW1lbnRGb3JOdGhW YWx1ZUZ1bmN0aW9uIiwKKyAgICAiU1FMSnNvbk9iamVjdE5vdEZvdW5kIiwKKyAgICAiRkRXU2No ZW1hTm90Rm91bmQiLAorICAgICJJbnZhbGlkUGFyYW1ldGVyVmFsdWUiLAorICAgICJJbnZhbGlk VGFibGVEZWZpbml0aW9uIiwKKyAgICAiQXNzZXJ0RmFpbHVyZSIsCisgICAgIkZEV0ludmFsaWRP cHRpb25OYW1lIiwKKyAgICAiSW52YWxpZEVzY2FwZU9jdGV0IiwKKyAgICAiUmVhZE9ubHlTUUxU cmFuc2FjdGlvbiIsCisgICAgIkV4dGVybmFsUm91dGluZUludm9jYXRpb25FeGNlcHRpb24iLAor ICAgICJDcmFzaFNodXRkb3duIiwKKyAgICAiRkRXSW52YWxpZE9wdGlvbkluZGV4IiwKKyAgICAi Tm90TnVsbFZpb2xhdGlvbiIsCisgICAgIkNvbmZpZ0ZpbGVFcnJvciIsCisgICAgIkludmFsaWRT UUxKc29uU3Vic2NyaXB0IiwKKyAgICAiSW52YWxpZEZvcmVpZ25LZXkiLAorICAgICJJbnN1ZmZp Y2llbnRSZXNvdXJjZXMiLAorICAgICJPYmplY3ROb3RJblByZXJlcXVpc2l0ZVN0YXRlIiwKKyAg ICAiSW52YWxpZFJvd0NvdW50SW5MaW1pdENsYXVzZSIsCisgICAgIkludGVydmFsRmllbGRPdmVy ZmxvdyIsCisgICAgIkNvbGxhdGlvbk1pc21hdGNoIiwKKyAgICAiSW52YWxpZEFyZ3VtZW50Rm9y TnRpbGVGdW5jdGlvbiIsCisgICAgIkludmFsaWRDaGFyYWN0ZXJWYWx1ZUZvckNhc3QiLAorICAg ICJOb25VbmlxdWVLZXlzSW5BSnNvbk9iamVjdCIsCisgICAgIkRlcGVuZGVudFByaXZpbGVnZURl c2NyaXB0b3JzU3RpbGxFeGlzdCIsCisgICAgIkluRmFpbGVkU1FMVHJhbnNhY3Rpb24iLAorICAg ICJHcm91cGluZ0Vycm9yIiwKKyAgICAiVHJhbnNhY3Rpb25UaW1lb3V0IiwKKyAgICAiQ2FzZU5v dEZvdW5kIiwKKyAgICAiQ29ubmVjdGlvbkV4Y2VwdGlvbiIsCisgICAgIkR1cGxpY2F0ZUpzb25P YmplY3RLZXlWYWx1ZSIsCisgICAgIkludmFsaWRTY2hlbWFEZWZpbml0aW9uIiwKKyAgICAiRkRX VW5hYmxlVG9DcmVhdGVSZXBseSIsCisgICAgIlVuZGVmaW5lZFRhYmxlIiwKKyAgICAiU2VxdWVu Y2VHZW5lcmF0b3JMaW1pdEV4Y2VlZGVkIiwKKyAgICAiSW52YWxpZEpzb25UZXh0IiwKKyAgICAi SWRsZVNlc3Npb25UaW1lb3V0IiwKKyAgICAiTnVsbFZhbHVlTm90QWxsb3dlZCIsCisgICAgIkJy YW5jaFRyYW5zYWN0aW9uQWxyZWFkeUFjdGl2ZSIsCisgICAgIkludmFsaWRHcmFudE9wZXJhdGlv biIsCisgICAgIk51bGxWYWx1ZU5vSW5kaWNhdG9yUGFyYW1ldGVyIiwKKyAgICAiUHJvdG9jb2xW aW9sYXRpb24iLAorICAgICJGRFdJbnZhbGlkRGF0YVR5cGVEZXNjcmlwdG9ycyIsCisgICAgIlRy aWdnZXJlZERhdGFDaGFuZ2VWaW9sYXRpb24iLAorICAgICJFeHRlcm5hbFJvdXRpbmVFeGNlcHRp b24iLAorICAgICJJbnZhbGlkU3Fsc3RhdGVSZXR1cm5lZCIsCisgICAgIlBscGdzcWxFcnJvciIs CisgICAgIkludmFsaWRYbWxDb250ZW50IiwKKyAgICAiVHJpZ2dlcmVkQWN0aW9uRXhjZXB0aW9u IiwKKyAgICAiU1FMQ2xpZW50VW5hYmxlVG9Fc3RhYmxpc2hTUUxDb25uZWN0aW9uIiwKKyAgICAi RkRXVGFibGVOb3RGb3VuZCIsCisgICAgIk51bWVyaWNWYWx1ZU91dE9mUmFuZ2UiLAorICAgICJS ZXN0cmljdFZpb2xhdGlvbiIsCisgICAgIkFtYmlndW91c1BhcmFtZXRlciIsCisgICAgIlN0YXRl bWVudFRvb0NvbXBsZXgiLAorICAgICJVbnNhZmVOZXdFbnVtVmFsdWVVc2FnZSIsCisgICAgIk5v bk51bWVyaWNTUUxKc29uSXRlbSIsCisgICAgIkludmFsaWRJbmRpY2F0b3JQYXJhbWV0ZXJWYWx1 ZSIsCisgICAgIkV4Y2x1c2lvblZpb2xhdGlvbiIsCisgICAgIk9wZXJhdG9ySW50ZXJ2ZW50aW9u IiwKKyAgICAiUXVlcnlDYW5jZWxlZCIsCisgICAgIldhcm5pbmciLAorICAgICJJbnZhbGlkQXJn dW1lbnRGb3JTUUxKc29uRGF0ZXRpbWVGdW5jdGlvbiIsCisgICAgIkZvcmVpZ25LZXlWaW9sYXRp b24iLAorICAgICJTdHJpbmdEYXRhTGVuZ3RoTWlzbWF0Y2giLAorICAgICJTUUxSb3V0aW5lRXhj ZXB0aW9uIiwKKyAgICAiVG9vTWFueUNvbm5lY3Rpb25zIiwKKyAgICAiVG9vTWFueUpzb25PYmpl Y3RNZW1iZXJzIiwKKyAgICAiTm9EYXRhIiwKKyAgICAiVW50cmFuc2xhdGFibGVDaGFyYWN0ZXIi LAorICAgICJGRFdVbmFibGVUb0VzdGFibGlzaENvbm5lY3Rpb24iLAorICAgICJMb2NrRmlsZUV4 aXN0cyIsCisgICAgIlNSRVJlYWRpbmdTUUxEYXRhTm90UGVybWl0dGVkIiwKKyAgICAiSW5kZXRl cm1pbmF0ZURhdGF0eXBlIiwKKyAgICAiQ2hlY2tWaW9sYXRpb24iLAorICAgICJJbnZhbGlkRGF0 YWJhc2VEZWZpbml0aW9uIiwKKyAgICAiTm9BY3RpdmVTUUxUcmFuc2FjdGlvbkZvckJyYW5jaFRy YW5zYWN0aW9uIiwKKyAgICAiU1FMU2VydmVyUmVqZWN0ZWRFc3RhYmxpc2htZW50T2ZTUUxDb25u ZWN0aW9uIiwKKyAgICAiRHVwbGljYXRlRmlsZSIsCisgICAgIkZEV0ludmFsaWRDb2x1bW5OdW1i ZXIiLAorICAgICJUcmFuc2FjdGlvblJvbGxiYWNrIiwKKyAgICAiTW9yZVRoYW5PbmVTUUxKc29u SXRlbSIsCisgICAgIldpdGhDaGVja09wdGlvblZpb2xhdGlvbiIsCisgICAgIkZEV05vU2NoZW1h cyIsCisgICAgIkdlbmVyYXRlZEFsd2F5cyIsCisgICAgIkNhbm5vdENvbm5lY3ROb3ciLAorICAg ICJDYXJkaW5hbGl0eVZpb2xhdGlvbiIsCisgICAgIkludmFsaWRBdXRob3JpemF0aW9uU3BlY2lm aWNhdGlvbiIsCisgICAgIlNRTEpzb25OdW1iZXJOb3RGb3VuZCIsCisgICAgIlNRTEpzb25NZW1i ZXJOb3RGb3VuZCIsCisgICAgIkludmFsaWRVc2VPZkVzY2FwZUNoYXJhY3RlciIsCisgICAgIlVu dGVybWluYXRlZENTdHJpbmciLAorICAgICJUcmltRXJyb3IiLAorICAgICJTcmZQcm90b2NvbFZp b2xhdGVkIiwKKyAgICAiRGlza0Z1bGwiLAorICAgICJUb29NYW55Q29sdW1ucyIsCisgICAgIklu dmFsaWRPYmplY3REZWZpbml0aW9uIiwKKyAgICAiSW52YWxpZEFyZ3VtZW50Rm9yTG9nYXJpdGht IiwKKyAgICAiVG9vTWFueUpzb25BcnJheUVsZW1lbnRzIiwKKyAgICAiT3V0T2ZNZW1vcnkiLAor ICAgICJFUkVQcm9oaWJpdGVkU1FMU3RhdGVtZW50QXR0ZW1wdGVkIiwKKyAgICAiRkRXSW52YWxp ZFN0cmluZ0Zvcm1hdCIsCisgICAgIlN0YWNrZWREaWFnbm9zdGljc0FjY2Vzc2VkV2l0aG91dEFj dGl2ZUhhbmRsZXIiLAorICAgICJTY2hlbWFBbmREYXRhU3RhdGVtZW50TWl4aW5nTm90U3VwcG9y dGVkIiwKKyAgICAiSW50ZXJuYWxFcnJvciIsCisgICAgIkludmFsaWRFc2NhcGVDaGFyYWN0ZXIi LAorICAgICJGRFdFcnJvciIsCisgICAgIkltcGxpY2l0WmVyb0JpdFBhZGRpbmdXYXJuaW5nIiwK KyAgICAiRGl2aXNpb25CeVplcm8iLAorICAgICJJbnZhbGlkVGFibGVzYW1wbGVBcmd1bWVudCIs CisgICAgIkRlYWRsb2NrRGV0ZWN0ZWQiLAorICAgICJDYW50Q2hhbmdlUnVudGltZVBhcmFtIiwK KyAgICAiVW5kZWZpbmVkT2JqZWN0IiwKKyAgICAiVW5pcXVlVmlvbGF0aW9uIiwKKyAgICAiSW52 YWxpZEN1cnNvckRlZmluaXRpb24iLAorICAgICJDb25uZWN0aW9uRmFpbHVyZSIsCisgICAgIlVu ZGVmaW5lZEZ1bmN0aW9uIiwKKyAgICAiRkRXRnVuY3Rpb25TZXF1ZW5jZUVycm9yIiwKKyAgICAi RXJyb3JJbkFzc2lnbm1lbnQiLAorICAgICJTdWNjZXNzZnVsQ29tcGxldGlvbiIsCisgICAgIlN0 cmluZ0RhdGFSaWdodFRydW5jYXRpb24iLAorICAgICJGRFdUb29NYW55SGFuZGxlcyIsCisgICAg IkZEV0ludmFsaWREYXRhVHlwZSIsCisgICAgIkFjdGl2ZVNRTFRyYW5zYWN0aW9uIiwKKyAgICAi SW52YWxpZFRleHRSZXByZXNlbnRhdGlvbiIsCisgICAgIkludmFsaWRTUUxTdGF0ZW1lbnROYW1l IiwKKyAgICAiUHJpdmlsZWdlTm90R3JhbnRlZFdhcm5pbmciLAorICAgICJTUkVNb2RpZnlpbmdT UUxEYXRhTm90UGVybWl0dGVkIiwKKyAgICAiSW5kZXRlcm1pbmF0ZUNvbGxhdGlvbiIsCisgICAg IlN5c3RlbUVycm9yIiwKKyAgICAiTnVsbFZhbHVlRWxpbWluYXRlZEluU2V0RnVuY3Rpb25XYXJu aW5nIiwKKyAgICAiRGVwZW5kZW50T2JqZWN0c1N0aWxsRXhpc3QiLAorICAgICJJbnZhbGlkU2No ZW1hTmFtZSIsCisgICAgIkR1cGxpY2F0ZUNvbHVtbiIsCisgICAgIkZ1bmN0aW9uRXhlY3V0ZWRO b1JldHVyblN0YXRlbWVudCIsCisgICAgIkludmFsaWRDb2x1bW5EZWZpbml0aW9uIiwKKyAgICAi RHluYW1pY1Jlc3VsdFNldHNSZXR1cm5lZFdhcm5pbmciLAorICAgICJJZGxlSW5UcmFuc2FjdGlv blNlc3Npb25UaW1lb3V0IiwKKyAgICAiU3RhdGVtZW50Q29tcGxldGlvblVua25vd24iLAorICAg ICJDYW5ub3RDb2VyY2UiLAorICAgICJJbnZhbGlkVHJhbnNhY3Rpb25TdGF0ZSIsCisgICAgIkR1 cGxpY2F0ZVRhYmxlIiwKKyAgICAiQmFkQ29weUZpbGVGb3JtYXQiLAorICAgICJaZXJvTGVuZ3Ro Q2hhcmFjdGVyU3RyaW5nIiwKKyAgICAiU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24i LAorICAgICJTaW5nbGV0b25TUUxKc29uSXRlbVJlcXVpcmVkIiwKKyAgICAiSW5kZXhDb3JydXB0 ZWQiLAorICAgICJGRFdJbnZhbGlkQ29sdW1uTmFtZSIsCisgICAgIkRhdGFDb3JydXB0ZWQiLAor ICAgICJFUklFTnVsbFZhbHVlTm90QWxsb3dlZCIsCisgICAgIkFycmF5U3Vic2NyaXB0RXJyb3Ii LAorICAgICJGRFdSZXBseUhhbmRsZSIsCisgICAgIkRpYWdub3N0aWNzRXhjZXB0aW9uIiwKKyAg ICAiSW52YWxpZFRhYmxlc2FtcGxlUmVwZWF0IiwKKyAgICAiU1FMSnNvbkl0ZW1DYW5ub3RCZUNh c3RUb1RhcmdldFR5cGUiLAorICAgICJGRFdJbnZhbGlkSGFuZGxlIiwKKyAgICAiSW52YWxpZFBh c3N3b3JkIiwKKyAgICAiSW52YWxpZEVzY2FwZVNlcXVlbmNlIiwKKyAgICAiRXNjYXBlQ2hhcmFj dGVyQ29uZmxpY3QiLAorICAgICJJbnZhbGlkU2F2ZXBvaW50U3BlY2lmaWNhdGlvbiIsCisgICAg IkZEV0ludmFsaWRBdHRyaWJ1dGVWYWx1ZSIsCisgICAgIkNvbnRhaW5pbmdTUUxOb3RQZXJtaXR0 ZWQiLAorICAgICJMb2NhdG9yRXhjZXB0aW9uIiwKKyAgICAiRGF0YXR5cGVNaXNtYXRjaCIsCisg ICAgIkludmFsaWRDdXJzb3JTdGF0ZSIsCisgICAgIkludmFsaWROYW1lIiwKKyAgICAiSW5kaWNh dG9yT3ZlcmZsb3ciLAorICAgICJSZXNlcnZlZE5hbWUiLAorICAgICJEYXRldGltZUZpZWxkT3Zl cmZsb3ciLAorICAgICJGRFdJbmNvbnNpc3RlbnREZXNjcmlwdG9ySW5mb3JtYXRpb24iLAorICAg ICJGbG9hdGluZ1BvaW50RXhjZXB0aW9uIiwKKyAgICAiQW1iaWd1b3VzQWxpYXMiLAorICAgICJJ bnZhbGlkUmVjdXJzaW9uIiwKKyAgICAiV3JvbmdPYmplY3RUeXBlIiwKKyAgICAiVW5kZWZpbmVk RmlsZSIsCisgICAgIkxvY2tOb3RBdmFpbGFibGUiLAorICAgICJJbnZhbGlkUm93Q291bnRJblJl c3VsdE9mZnNldENsYXVzZSIsCisgICAgIk9iamVjdEluVXNlIiwKKyAgICAiRGVwcmVjYXRlZEZl YXR1cmVXYXJuaW5nIiwKKyAgICAiRkRXRHluYW1pY1BhcmFtZXRlclZhbHVlTmVlZGVkIiwKKyAg ICAiRHVwbGljYXRlRnVuY3Rpb24iLAorICAgICJJbnZhbGlkWG1sRG9jdW1lbnQiLAorICAgICJT dHJpbmdEYXRhUmlnaHRUcnVuY2F0aW9uV2FybmluZyIsCisgICAgIkR1cGxpY2F0ZVByZXBhcmVk U3RhdGVtZW50IiwKKyAgICAiSW52YWxpZEdyYW50b3IiLAorICAgICJFdmVudFRyaWdnZXJQcm90 b2NvbFZpb2xhdGVkIiwKKyAgICAiRkRXSW52YWxpZFVzZU9mTnVsbFBvaW50ZXIiLAorICAgICJG RFdVbmFibGVUb0NyZWF0ZUV4ZWN1dGlvbiIsCisgICAgIkNvbm5lY3Rpb25Eb2VzTm90RXhpc3Qi LAorICAgICJJbnZhbGlkQ2F0YWxvZ05hbWUiLAorICAgICJJbnZhbGlkQXJndW1lbnRGb3JYcXVl cnkiLAorICAgICJGRFdDb2x1bW5OYW1lTm90Rm91bmQiLAorICAgICJUcmFuc2FjdGlvbkludGVn cml0eUNvbnN0cmFpbnRWaW9sYXRpb24iLAorICAgICJJbnZhbGlkUHJlcGFyZWRTdGF0ZW1lbnRE ZWZpbml0aW9uIiwKKyAgICAiRkRXSW52YWxpZERlc2NyaXB0b3JGaWVsZElkZW50aWZpZXIiLAor ICAgICJGRFdPcHRpb25OYW1lTm90Rm91bmQiLAorICAgICJJbnZhbGlkQXJndW1lbnRGb3JQb3dl ckZ1bmN0aW9uIiwKKyAgICAiRkRXSW52YWxpZFN0cmluZ0xlbmd0aE9yQnVmZmVyTGVuZ3RoIiwK KyAgICAiU1JFUHJvaGliaXRlZFNRTFN0YXRlbWVudEF0dGVtcHRlZCIsCisgICAgIk5vRGF0YUZv dW5kIiwKKyAgICAiRHVwbGljYXRlRGF0YWJhc2UiLAorICAgICJGZWF0dXJlTm90U3VwcG9ydGVk IiwKKyAgICAiSW50ZWdyaXR5Q29uc3RyYWludFZpb2xhdGlvbiIsCisgICAgIkFtYmlndW91c0Nv bHVtbiIsCisgICAgIlByaXZpbGVnZU5vdFJldm9rZWRXYXJuaW5nIiwKKyAgICAiRmlsZU5hbWVU b29Mb25nIiwKKyAgICAiSW52YWxpZEFyZ3VtZW50Rm9yV2lkdGhCdWNrZXRGdW5jdGlvbiIsCisg ICAgIkhlbGRDdXJzb3JSZXF1aXJlc1NhbWVJc29sYXRpb25MZXZlbCIsCisgICAgIk5vU1FMSnNv bkl0ZW0iLAorICAgICJJb0Vycm9yIiwKKyAgICAiU2F2ZXBvaW50RXhjZXB0aW9uIiwKKyAgICAi Tm9BY3RpdmVTUUxUcmFuc2FjdGlvbiIsCisgICAgIkludmFsaWRGdW5jdGlvbkRlZmluaXRpb24i LAorICAgICJBZG1pblNodXRkb3duIiwKKyAgICAiRGF0YWJhc2VEcm9wcGVkIiwKKyAgICAiSW52 YWxpZFJlZ3VsYXJFeHByZXNzaW9uIiwKKyAgICAiV2luZG93aW5nRXJyb3IiLAorICAgICJJbnZh bGlkQ29sdW1uUmVmZXJlbmNlIiwKKyAgICAiSW52YWxpZEJpbmFyeVJlcHJlc2VudGF0aW9uIiwK KyAgICAiU1FMSnNvblNjYWxhclJlcXVpcmVkIiwKKyAgICAiQ29uZmlndXJhdGlvbkxpbWl0RXhj ZWVkZWQiLAorICAgICJTeW50YXhFcnJvciIsCisgICAgIlNlcmlhbGl6YXRpb25GYWlsdXJlIiwK KyAgICAiUHJvZ3JhbUxpbWl0RXhjZWVkZWQiLAorICAgICJEdXBsaWNhdGVTY2hlbWEiLAorICAg ICJTUUxTdGF0ZW1lbnROb3RZZXRDb21wbGV0ZSIsCisgICAgIkxpYnBxRXJyb3IiLAorICAgICJE YXRhRXhjZXB0aW9uIiwKKyAgICAiU3Vic3RyaW5nRXJyb3IiLAorICAgICJJbnZhbGlkTG9jYXRv clNwZWNpZmljYXRpb24iLAorICAgICJJbmFwcHJvcHJpYXRlQWNjZXNzTW9kZUZvckJyYW5jaFRy YW5zYWN0aW9uIiwKKyAgICAiRVJFTW9kaWZ5aW5nU1FMRGF0YU5vdFBlcm1pdHRlZCIsCisgICAg Ikluc3VmZmljaWVudFByaXZpbGVnZSIsCisgICAgIk5vQWRkaXRpb25hbER5bmFtaWNSZXN1bHRT ZXRzUmV0dXJuZWQiLAorICAgICJTUUxKc29uQXJyYXlOb3RGb3VuZCIsCisgICAgIk5hbWVUb29M b25nIiwKKyAgICAiSW52YWxpZFRpbWVab25lRGlzcGxhY2VtZW50VmFsdWUiLAorICAgICJJbmFw cHJvcHJpYXRlSXNvbGF0aW9uTGV2ZWxGb3JCcmFuY2hUcmFuc2FjdGlvbiIsCisgICAgIlJhaXNl RXhjZXB0aW9uIiwKKyAgICAiRVJFUmVhZGluZ1NRTERhdGFOb3RQZXJtaXR0ZWQiLAorICAgICJU cmlnZ2VyUHJvdG9jb2xWaW9sYXRlZCIsCisgICAgIk5vbnN0YW5kYXJkVXNlT2ZFc2NhcGVDaGFy YWN0ZXIiLAorICAgICJJbnZhbGlkVHJhbnNhY3Rpb25Jbml0aWF0aW9uIiwKKyAgICAiRHVwbGlj YXRlQWxpYXMiLAorICAgICJUcmFuc2FjdGlvblJlc29sdXRpb25Vbmtub3duIiwKKyAgICAiVG9v TWFueVJvd3MiLAorICAgICJJbnZhbGlkWG1sQ29tbWVudCIsCisgICAgIk1vc3RTcGVjaWZpY1R5 cGVNaXNtYXRjaCIsCisgICAgIkR1cGxpY2F0ZU9iamVjdCIsCisgICAgIkR1cGxpY2F0ZUN1cnNv ciIsCisgICAgIkFtYmlndW91c0Z1bmN0aW9uIiwKKyAgICAiVG9vTWFueUFyZ3VtZW50cyIsCisg ICAgIkludmFsaWRYbWxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24iLAorICAgICJJbnZhbGlkVHJhbnNh Y3Rpb25UZXJtaW5hdGlvbiIsCisgICAgIkludmFsaWREYXRldGltZUZvcm1hdCIsCisgICAgIklu dmFsaWRQcmVjZWRpbmdPckZvbGxvd2luZ1NpemUiLAorICAgICJDaGFyYWN0ZXJOb3RJblJlcGVy dG9pcmUiLAorICAgICJTUUxTVEFURV9UT19FWENFUFRJT04iLAorXQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcHl0ZXN0L2xpYnBxL2Vycm9ycy5weSBiL3NyYy90ZXN0L3B5dGVzdC9saWJwcS9lcnJv cnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc2NGE5NmMyNDc4 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcHl0ZXN0L2xpYnBxL2Vycm9ycy5weQpAQCAt MCwwICsxLDM5IEBACisjIENvcHlyaWdodCAoYykgMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKKworIiIiCitQb3N0Z3JlU1FMIGVycm9yIHR5cGVzIG1hcHBlZCBmcm9t IFNRTFNUQVRFIGNvZGVzLgorCitUaGlzIG1vZHVsZSBwcm92aWRlcyBMaWJwcUVycm9yIGFuZCBp dHMgc3ViY2xhc3NlcyBmb3IgaGFuZGxpbmcgUG9zdGdyZVNRTAorZXJyb3JzIGJhc2VkIG9uIFNR TFNUQVRFIGNvZGVzLiBUaGUgZXhjZXB0aW9uIGNsYXNzZXMgaW4gX2dlbmVyYXRlZF9lcnJvcnMu cHkKK2FyZSBhdXRvLWdlbmVyYXRlZCBmcm9tIHNyYy9iYWNrZW5kL3V0aWxzL2VycmNvZGVzLnR4 dC4KKworVG8gcmVnZW5lcmF0ZTogc3JjL3Rvb2xzL2dlbmVyYXRlX3B5dGVzdF9saWJwcV9lcnJv cnMucHkKKyIiIgorCitmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKKworZnJvbSAuX2Vycm9y X2Jhc2UgaW1wb3J0IExpYnBxRXJyb3IsIExpYnBxV2FybmluZworZnJvbSAuX2dlbmVyYXRlZF9l cnJvcnMgaW1wb3J0ICgKKyAgICBTUUxTVEFURV9UT19FWENFUFRJT04sCispCitmcm9tIC5fZ2Vu ZXJhdGVkX2Vycm9ycyBpbXBvcnQgKiAgIyBub3FhOiBGNDAzCisKKworZGVmIGdldF9leGNlcHRp b25fY2xhc3Moc3Fsc3RhdGU6IE9wdGlvbmFsW3N0cl0pIC0+IHR5cGU6CisgICAgIiIiR2V0IHRo ZSBhcHByb3ByaWF0ZSBleGNlcHRpb24gY2xhc3MgZm9yIGEgU1FMU1RBVEUgY29kZS4iIiIKKyAg ICBpZiBzcWxzdGF0ZSBpbiBTUUxTVEFURV9UT19FWENFUFRJT046CisgICAgICAgIHJldHVybiBT UUxTVEFURV9UT19FWENFUFRJT05bc3Fsc3RhdGVdCisgICAgcmV0dXJuIExpYnBxRXJyb3IKKwor CitkZWYgbWFrZV9lcnJvcihtZXNzYWdlOiBzdHIsICosIHNxbHN0YXRlOiBPcHRpb25hbFtzdHJd ID0gTm9uZSwgKiprd2FyZ3MpIC0+IExpYnBxRXJyb3I6CisgICAgIiIiQ3JlYXRlIGFuIGFwcHJv cHJpYXRlIExpYnBxRXJyb3Igc3ViY2xhc3MgYmFzZWQgb24gdGhlIFNRTFNUQVRFIGNvZGUuIiIi CisgICAgZXhjX2NsYXNzID0gZ2V0X2V4Y2VwdGlvbl9jbGFzcyhzcWxzdGF0ZSkKKyAgICByZXR1 cm4gZXhjX2NsYXNzKG1lc3NhZ2UsIHNxbHN0YXRlPXNxbHN0YXRlLCAqKmt3YXJncykKKworCitf X2FsbF9fID0gWworICAgICJMaWJwcUVycm9yIiwKKyAgICAiTGlicHFXYXJuaW5nIiwKKyAgICAi bWFrZV9lcnJvciIsCitdCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9weXRlc3QvbWVzb24uYnVpbGQg Yi9zcmMvdGVzdC9weXRlc3QvbWVzb24uYnVpbGQKaW5kZXggYWJkMTI4ZGZhMjQuLmI4NmJlOTAx ZTdjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9weXRlc3QvbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rl c3QvcHl0ZXN0L21lc29uLmJ1aWxkCkBAIC0xMCw3ICsxMCwxMCBAQCB0ZXN0cyArPSB7CiAgICdi ZCc6IG1lc29uLmN1cnJlbnRfYnVpbGRfZGlyKCksCiAgICdweXRlc3QnOiB7CiAgICAgJ3Rlc3Rz JzogWwotICAgICAgJ3B5dC90ZXN0X3NvbWV0aGluZy5weScsCisgICAgICAncHl0L3Rlc3RfZXJy b3JzLnB5JywKKyAgICAgICdweXQvdGVzdF9saWJwcS5weScsCisgICAgICAncHl0L3Rlc3RfbXVs dGlfc2VydmVyLnB5JywKKyAgICAgICdweXQvdGVzdF9xdWVyeV9oZWxwZXJzLnB5JywKICAgICBd LAogICB9LAogfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcHl0ZXN0L3B5cGcvX19pbml0X18ucHkg Yi9zcmMvdGVzdC9weXRlc3QvcHlwZy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uNGVlOTEyODlmNzAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVz dC9weXRlc3QvcHlwZy9fX2luaXRfXy5weQpAQCAtMCwwICsxLDEwIEBACisjIENvcHlyaWdodCAo YykgMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworZnJvbSAuX2Vu diBpbXBvcnQgcmVxdWlyZV90ZXN0X2V4dHJhcywgc2tpcF91bmxlc3NfdGVzdF9leHRyYXMKK2Zy b20gLnNlcnZlciBpbXBvcnQgUG9zdGdyZXNTZXJ2ZXIKKworX19hbGxfXyA9IFsKKyAgICAicmVx dWlyZV90ZXN0X2V4dHJhcyIsCisgICAgInNraXBfdW5sZXNzX3Rlc3RfZXh0cmFzIiwKKyAgICAi UG9zdGdyZXNTZXJ2ZXIiLAorXQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcHl0ZXN0L3B5cGcvX2Vu di5weSBiL3NyYy90ZXN0L3B5dGVzdC9weXBnL19lbnYucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmM0MDg3YmUzMjEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rl c3QvcHl0ZXN0L3B5cGcvX2Vudi5weQpAQCAtMCwwICsxLDcyIEBACisjIENvcHlyaWdodCAoYykg MjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworaW1wb3J0IGxvZ2dp bmcKK2ltcG9ydCBvcworCitpbXBvcnQgcHl0ZXN0CisKK2xvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9n Z2VyKF9fbmFtZV9fKQorCisKK2RlZiBfdGVzdF9leHRyYV9za2lwX3JlYXNvbigqa2V5czogc3Ry KSAtPiBzdHI6CisgICAgcmV0dXJuICJyZXF1aXJlcyB7fSB0byBiZSBzZXQgaW4gUEdfVEVTVF9F WFRSQSIuZm9ybWF0KCIsICIuam9pbihrZXlzKSkKKworCitkZWYgX2hhc190ZXN0X2V4dHJhKGtl eTogc3RyKSAtPiBib29sOgorICAgICIiIgorICAgIFJldHVybnMgVHJ1ZSBpZiB0aGUgUEdfVEVT VF9FWFRSQSBlbnZpcm9ubWVudCB2YXJpYWJsZSBjb250YWlucyB0aGUgZ2l2ZW4KKyAgICBrZXku CisgICAgIiIiCisgICAgZXh0cmEgPSBvcy5nZXRlbnYoIlBHX1RFU1RfRVhUUkEiLCAiIikKKyAg ICByZXR1cm4ga2V5IGluIGV4dHJhLnNwbGl0KCkKKworCitkZWYgcmVxdWlyZV90ZXN0X2V4dHJh cygqa2V5czogc3RyKToKKyAgICAiIiIKKyAgICBBIGNvbnZlbmllbmNlIGFubm90YXRpb24gd2hp Y2ggd2lsbCBza2lwIHRlc3RzIGlmIGFsbCBvZiB0aGUgcmVxdWlyZWQga2V5cworICAgIGFyZSBu b3QgcHJlc2VudCBpbiBQR19URVNUX0VYVFJBLgorCisgICAgVG8gc2tpcCBhIHBhcnRpY3VsYXIg dGVzdCBmdW5jdGlvbiBvciBjbGFzczoKKworICAgICAgICBAcHlwZy5yZXF1aXJlX3Rlc3RfZXh0 cmFzKCJsZGFwIikKKyAgICAgICAgZGVmIHRlc3Rfc29tZV9sZGFwX2ZlYXR1cmUoKToKKyAgICAg ICAgICAgIC4uLgorCisgICAgVG8gc2tpcCBhbiBlbnRpcmUgbW9kdWxlOgorCisgICAgICAgIHB5 dGVzdG1hcmsgPSBweXBnLnJlcXVpcmVfdGVzdF9leHRyYSgic3NsIiwgImtlcmJlcm9zIikKKyAg ICAiIiIKKyAgICByZXR1cm4gcHl0ZXN0Lm1hcmsuc2tpcGlmKAorICAgICAgICBub3QgYWxsKFtf aGFzX3Rlc3RfZXh0cmEoaykgZm9yIGsgaW4ga2V5c10pLAorICAgICAgICByZWFzb249X3Rlc3Rf ZXh0cmFfc2tpcF9yZWFzb24oKmtleXMpLAorICAgICkKKworCitkZWYgc2tpcF91bmxlc3NfdGVz dF9leHRyYXMoKmtleXM6IHN0cik6CisgICAgIiIiCisgICAgU2tpcCB0aGUgY3VycmVudCB0ZXN0 L2ZpeHR1cmUgaWYgYW55IG9mIHRoZSByZXF1aXJlZCBrZXlzIGFyZSBub3QgcHJlc2VudAorICAg IGluIFBHX1RFU1RfRVhUUkEuIFVzZSB0aGlzIGluc2lkZSBmaXh0dXJlcyB3aGVyZSBkZWNvcmF0 b3JzIGNhbid0IGJlIHVzZWQuCisKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgIGRl ZiBteV9maXh0dXJlKCk6CisgICAgICAgICAgICBza2lwX3VubGVzc190ZXN0X2V4dHJhcygibGRh cCIpCisgICAgICAgICAgICAuLi4KKyAgICAiIiIKKyAgICBpZiBub3QgYWxsKFtfaGFzX3Rlc3Rf ZXh0cmEoaykgZm9yIGsgaW4ga2V5c10pOgorICAgICAgICBweXRlc3Quc2tpcChfdGVzdF9leHRy YV9za2lwX3JlYXNvbigqa2V5cykpCisKKworZGVmIHRlc3RfdGltZW91dF9kZWZhdWx0KCkgLT4g aW50OgorICAgICIiIgorICAgIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBQR19URVNUX1RJTUVP VVRfREVGQVVMVCBlbnZpcm9ubWVudCB2YXJpYWJsZSwgaW4KKyAgICBzZWNvbmRzLCBvciAxODAg aWYgb25lIHdhcyBub3QgcHJvdmlkZWQuCisgICAgIiIiCisgICAgZGVmYXVsdCA9IG9zLmdldGVu digiUEdfVEVTVF9USU1FT1VUX0RFRkFVTFQiLCAiIikKKyAgICBpZiBub3QgZGVmYXVsdDoKKyAg ICAgICAgcmV0dXJuIDE4MAorCisgICAgdHJ5OgorICAgICAgICByZXR1cm4gaW50KGRlZmF1bHQp CisgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgdjoKKyAgICAgICAgbG9nZ2VyLndhcm5pbmcoIlBH X1RFU1RfVElNRU9VVF9ERUZBVUxUIGNvdWxkIG5vdCBiZSBwYXJzZWQ6ICIgKyBzdHIodikpCisg ICAgICAgIHJldHVybiAxODAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVzdC9weXBnL2ZpeHR1 cmVzLnB5IGIvc3JjL3Rlc3QvcHl0ZXN0L3B5cGcvZml4dHVyZXMucHkKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhjMGNiNjBkYWE1Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjL3Rlc3QvcHl0ZXN0L3B5cGcvZml4dHVyZXMucHkKQEAgLTAsMCArMSwzMzUgQEAKKyMgQ29w eXJpZ2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCitp bXBvcnQgb3MKK2ltcG9ydCBjb250ZXh0bGliCitpbXBvcnQgcGF0aGxpYgoraW1wb3J0IHRpbWUK K2Zyb20gdHlwaW5nIGltcG9ydCBMaXN0CisKK2ltcG9ydCBweXRlc3QKKworZnJvbSAuX2VudiBp bXBvcnQgdGVzdF90aW1lb3V0X2RlZmF1bHQKK2Zyb20gLnV0aWwgaW1wb3J0IGNhcHR1cmUKK2Zy b20gLnNlcnZlciBpbXBvcnQgUG9zdGdyZXNTZXJ2ZXIKKworZnJvbSBsaWJwcSBpbXBvcnQgbG9h ZF9saWJwcV9oYW5kbGUsIGNvbm5lY3QgYXMgbGlicHFfY29ubmVjdAorCisKKyMgU3Rhc2gga2V5 IGZvciB0cmFja2luZyBzZXJ2ZXJzIGZvciBsb2cgcmVwb3J0aW5nLgorX3NlcnZlcnNfa2V5ID0g cHl0ZXN0LlN0YXNoS2V5W0xpc3RbUG9zdGdyZXNTZXJ2ZXJdXSgpCisKKworZGVmIF9yZWNvcmRf c2VydmVyX2Zvcl9sb2dfcmVwb3J0aW5nKHJlcXVlc3QsIHNlcnZlcik6CisgICAgIiIiUmVjb3Jk IGEgc2VydmVyIGZvciBsb2cgcmVwb3J0aW5nIG9uIHRlc3QgZmFpbHVyZS4iIiIKKyAgICBpZiBf c2VydmVyc19rZXkgbm90IGluIHJlcXVlc3Qubm9kZS5zdGFzaDoKKyAgICAgICAgcmVxdWVzdC5u b2RlLnN0YXNoW19zZXJ2ZXJzX2tleV0gPSBbXQorICAgIHJlcXVlc3Qubm9kZS5zdGFzaFtfc2Vy dmVyc19rZXldLmFwcGVuZChzZXJ2ZXIpCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgcmVtYWlu aW5nX3RpbWVvdXQoKToKKyAgICAiIiIKKyAgICBUaGlzIGZpeHR1cmUgcHJvdmlkZXMgYSBmdW5j dGlvbiB0aGF0IHJldHVybnMgaG93IG11Y2ggb2YgdGhlCisgICAgUEdfVEVTVF9USU1FT1VUX0RF RkFVTFQgcmVtYWlucyBmb3IgdGhlIGN1cnJlbnQgdGVzdCwgaW4gZnJhY3Rpb25hbCBzZWNvbmRz LgorICAgIFRoaXMgdmFsdWUgaXMgbmV2ZXIgbGVzcyB0aGFuIHplcm8uCisKKyAgICBUaGlzIGZp eHR1cmUgaXMgcGVyLXRlc3QsIHNvIHRoZSBkZWFkbGluZSBpcyBhbHNvIHJlc2V0IG9uIGEgcGVy LXRlc3QgYmFzaXMuCisgICAgIiIiCisgICAgbm93ID0gdGltZS5tb25vdG9uaWMoKQorICAgIGRl YWRsaW5lID0gbm93ICsgdGVzdF90aW1lb3V0X2RlZmF1bHQoKQorCisgICAgcmV0dXJuIGxhbWJk YTogbWF4KGRlYWRsaW5lIC0gdGltZS5tb25vdG9uaWMoKSwgMCkKKworCitAcHl0ZXN0LmZpeHR1 cmUoc2NvcGU9Im1vZHVsZSIpCitkZWYgcmVtYWluaW5nX3RpbWVvdXRfbW9kdWxlKCk6CisgICAg IiIiCisgICAgU2FtZSBhcyByZW1haW5pbmdfdGltZW91dCwgYnV0IHRoZSBkZWFkbGluZSBpcyBz ZXQgb25jZSBwZXIgbW9kdWxlLgorCisgICAgVGhpcyBmaXh0dXJlIGlzIHBlci1tb2R1bGUsIHdo aWNoIG1lYW5zIGl0J3MgZ2VuZXJhbGx5IG9ubHkgcmVhbGx5IHVzZWZ1bAorICAgIGZvciBjb25m aWd1cmluZyB0aW1lb3V0cyBvZiBvcGVyYXRpb25zIHRoYXQgaGFwcGVuIGluIHRoZSBzZXR1cCBw aGFzZSBvZgorICAgIGFub3RoZXIgbW9kdWxlIGZpeHR1cmVzLiBJZiB5b3UgdXNlIGl0IGluIGEg dGVzdCBpdCB3b3VsZCBtZWFuIHRoYXQgZWFjaAorICAgIHN1YnNlcXVlbnQgdGVzdCBpbiB0aGUg bW9kdWxlIGdldHMgYSByZWR1Y2VkIHRpbWVvdXQuCisgICAgIiIiCisgICAgbm93ID0gdGltZS5t b25vdG9uaWMoKQorICAgIGRlYWRsaW5lID0gbm93ICsgdGVzdF90aW1lb3V0X2RlZmF1bHQoKQor CisgICAgcmV0dXJuIGxhbWJkYTogbWF4KGRlYWRsaW5lIC0gdGltZS5tb25vdG9uaWMoKSwgMCkK KworCitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQorZGVmIGxpYnBxX2hhbmRsZShs aWJkaXIsIGJpbmRpcik6CisgICAgIiIiCisgICAgTG9hZHMgYSBjdHlwZXMgaGFuZGxlIGZvciBs aWJwcS4gU29tZSBjb21tb24gZnVuY3Rpb24gcHJvdG90eXBlcyBhcmUKKyAgICBpbml0aWFsaXpl ZCBmb3IgZ2VuZXJhbCB1c2UuCisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICByZXR1cm4gbG9h ZF9saWJwcV9oYW5kbGUobGliZGlyLCBiaW5kaXIpCisgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToK KyAgICAgICAgaWYgIndyb25nIEVMRiBjbGFzcyIgaW4gc3RyKGUpOgorICAgICAgICAgICAgIyBU aGlzIGhhcHBlbnMgaW4gQ0kgd2hlbiB0cnlpbmcgdG8gbGVhZCBhIDMyLWJpdCBsaWJwcSBsaWJy YXJ5CisgICAgICAgICAgICAjIHdpdGggYSA2NC1iaXQgUHl0aG9uCisgICAgICAgICAgICBweXRl c3Quc2tpcCgibGlicHEgYXJjaGl0ZWN0dXJlIGRvZXMgbm90IG1hdGNoIFB5dGhvbiBpbnRlcnBy ZXRlciIpCisgICAgICAgIHJhaXNlCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY29ubmVjdChs aWJwcV9oYW5kbGUsIHJlbWFpbmluZ190aW1lb3V0KToKKyAgICAiIiIKKyAgICBSZXR1cm5zIGEg ZnVuY3Rpb24gdG8gY29ubmVjdCB0byBQb3N0Z3JlU1FMIHZpYSBsaWJwcS4KKworICAgIFRoZSBy ZXR1cm5lZCBmdW5jdGlvbiBhY2NlcHRzIGNvbm5lY3Rpb24gb3B0aW9ucyBhcyBrZXl3b3JkIGFy Z3VtZW50cworICAgIChob3N0LCBwb3J0LCBkYm5hbWUsIGV0Yy4pIGFuZCByZXR1cm5zIGEgUEdj b25uIG9iamVjdC4gQ29ubmVjdGlvbnMKKyAgICBhcmUgYXV0b21hdGljYWxseSBjbGVhbmVkIHVw IGF0IHRoZSBlbmQgb2YgdGhlIHRlc3QuCisKKyAgICBFeGFtcGxlOgorICAgICAgICBjb25uID0g Y29ubmVjdChob3N0PSdsb2NhbGhvc3QnLCBwb3J0PTU0MzIsIGRibmFtZT0ncG9zdGdyZXMnKQor ICAgICAgICByZXN1bHQgPSBjb25uLnNxbCgiU0VMRUNUIDEiKQorICAgICIiIgorICAgIHdpdGgg Y29udGV4dGxpYi5FeGl0U3RhY2soKSBhcyBzdGFjazoKKworICAgICAgICBkZWYgX2Nvbm5lY3Qo KipvcHRzKToKKyAgICAgICAgICAgIHJldHVybiBsaWJwcV9jb25uZWN0KGxpYnBxX2hhbmRsZSwg c3RhY2ssIHJlbWFpbmluZ190aW1lb3V0LCAqKm9wdHMpCisKKyAgICAgICAgeWllbGQgX2Nvbm5l Y3QKKworCitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQorZGVmIHBnX2NvbmZpZygp OgorICAgICIiIgorICAgIFJldHVybnMgdGhlIHBhdGggdG8gcGdfY29uZmlnLiBVc2VzIFBHX0NP TkZJRyBlbnZpcm9ubWVudCB2YXJpYWJsZSBpZiBzZXQsCisgICAgb3RoZXJ3aXNlIHVzZXMgJ3Bn X2NvbmZpZycgZnJvbSBQQVRILgorICAgICIiIgorICAgIHJldHVybiBvcy5lbnZpcm9uLmdldCgi UEdfQ09ORklHIiwgInBnX2NvbmZpZyIpCisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNz aW9uIikKK2RlZiBiaW5kaXIocGdfY29uZmlnKToKKyAgICAiIiIKKyAgICBSZXR1cm5zIHRoZSBQ b3N0Z3JlU1FMIGJpbiBkaXJlY3RvcnkgdXNpbmcgcGdfY29uZmlnIC0tYmluZGlyLgorICAgICIi IgorICAgIHJldHVybiBwYXRobGliLlBhdGgoY2FwdHVyZShwZ19jb25maWcsICItLWJpbmRpciIp KQorCisKK0BweXRlc3QuZml4dHVyZShzY29wZT0ic2Vzc2lvbiIpCitkZWYgbGliZGlyKHBnX2Nv bmZpZyk6CisgICAgIiIiCisgICAgUmV0dXJucyB0aGUgUG9zdGdyZVNRTCBsaWIgZGlyZWN0b3J5 IHVzaW5nIHBnX2NvbmZpZyAtLWxpYmRpci4KKyAgICAiIiIKKyAgICByZXR1cm4gcGF0aGxpYi5Q YXRoKGNhcHR1cmUocGdfY29uZmlnLCAiLS1saWJkaXIiKSkKKworCitAcHl0ZXN0LmZpeHR1cmUo c2NvcGU9InNlc3Npb24iKQorZGVmIHRtcF9jaGVjayh0bXBfcGF0aF9mYWN0b3J5KSAtPiBwYXRo bGliLlBhdGg6CisgICAgIiIiCisgICAgUmV0dXJucyB0aGUgdG1wX2NoZWNrIGRpcmVjdG9yeSB0 aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgdGVzdHMuIElmCisgICAgVEVTVERBVEFESVIgaXMg cHJvdmlkZWQsIHRoYXQgd2lsbCBiZSB1c2VkOyBvdGhlcndpc2UgYSBuZXcgdGVtcG9yYXJ5Cisg ICAgZGlyZWN0b3J5IGlzIGNyZWF0ZWQgaW4gdGhlIHB5dGVzdCB0ZW1wIHJvb3QuCisgICAgIiIi CisgICAgZCA9IG9zLmdldGVudigiVEVTVERBVEFESVIiKQorICAgIGlmIGQ6CisgICAgICAgIGQg PSBwYXRobGliLlBhdGgoZCkKKyAgICBlbHNlOgorICAgICAgICBkID0gdG1wX3BhdGhfZmFjdG9y eS5ta3RlbXAoInRtcF9jaGVjayIpCisKKyAgICByZXR1cm4gZAorCisKK0BweXRlc3QuZml4dHVy ZShzY29wZT0ic2Vzc2lvbiIpCitkZWYgZGF0YWRpcih0bXBfY2hlY2spOgorICAgICIiIgorICAg IFJldHVybnMgdGhlIGRhdGEgZGlyZWN0b3J5IHRvIHVzZSBmb3IgdGhlIHBnIGZpeHR1cmUuCisg ICAgIiIiCisKKyAgICByZXR1cm4gdG1wX2NoZWNrIC8gInBnZGF0YSIKKworCitAcHl0ZXN0LmZp eHR1cmUoc2NvcGU9InNlc3Npb24iKQorZGVmIHNvY2tkaXIodG1wX3BhdGhfZmFjdG9yeSk6Cisg ICAgIiIiCisgICAgUmV0dXJucyB0aGUgZGlyZWN0b3J5IG5hbWUgdG8gdXNlIGFzIHRoZSBzZXJ2 ZXIncyB1bml4X3NvY2tldF9kaXJlY3RvcmllcworICAgIHNldHRpbmcuIExvY2FsIGNsaWVudCBj b25uZWN0aW9ucyB1c2UgdGhpcyBhcyB0aGUgUEdIT1NULgorCisgICAgQXQgdGhlIG1vbWVudCwg dGhpcyBpcyBhbHdheXMgcHV0IHVuZGVyIHRoZSBweXRlc3QgdGVtcCByb290LgorICAgICIiIgor ICAgIHJldHVybiB0bXBfcGF0aF9mYWN0b3J5Lm1rdGVtcCgic29ja2ZpbGVzIikKKworCitAcHl0 ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQorZGVmIHBnX3NlcnZlcl9nbG9iYWwoYmluZGly LCBkYXRhZGlyLCBzb2NrZGlyLCBsaWJwcV9oYW5kbGUpOgorICAgICIiIgorICAgIFN0YXJ0cyBh IHJ1bm5pbmcgUG9zdGdyZXMgc2VydmVyIGxpc3RlbmluZyBvbiBsb2NhbGhvc3QuIFRoZSBIQkEg aW5pdGlhbGx5CisgICAgYWxsb3dzIG9ubHkgbG9jYWwgVU5JWCBjb25uZWN0aW9ucyBmcm9tIHRo ZSBzYW1lIHVzZXIuCisKKyAgICBSZXR1cm5zIGEgUG9zdGdyZXNTZXJ2ZXIgaW5zdGFuY2Ugd2l0 aCBtZXRob2RzIGZvciBzZXJ2ZXIgbWFuYWdlbWVudCwgY29uZmlndXJhdGlvbiwKKyAgICBhbmQg Y3JlYXRpbmcgdGVzdCBkYXRhYmFzZXMvdXNlcnMuCisgICAgIiIiCisgICAgc2VydmVyID0gUG9z dGdyZXNTZXJ2ZXIoImRlZmF1bHQiLCBiaW5kaXIsIGRhdGFkaXIsIHNvY2tkaXIsIGxpYnBxX2hh bmRsZSkKKworICAgIHlpZWxkIHNlcnZlcgorCisgICAgIyBDbGVhbnVwIGFueSB0ZXN0IHJlc291 cmNlcworICAgIHNlcnZlci5jbGVhbnVwKCkKKworICAgICMgU3RvcCB0aGUgc2VydmVyCisgICAg c2VydmVyLnN0b3AoKQorCisKK0BweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikKK2RlZiBw Z19zZXJ2ZXJfbW9kdWxlKHBnX3NlcnZlcl9nbG9iYWwpOgorICAgICIiIgorICAgIE1vZHVsZS1z Y29wZWQgc2VydmVyIGNvbnRleHQuIFdoaWNoIGNhbiBiZSB1c2VmdWwgc28gdGhhdCBjZXJ0YWlu IHNldHRpbmdzCisgICAgY2FuIGJlIG92ZXJyaWRlbiBhdCB0aGUgbW9kdWxlIGxldmVsIHRocm91 Z2ggYXV0b3VzZSBmaXh0dXJlcy4gQW4gZXhhbXBsZQorICAgIG9mIHRoaXMgaXMgaW4gdGhlIFNT TCB0ZXN0cy4KKyAgICAiIiIKKyAgICB3aXRoIHBnX3NlcnZlcl9nbG9iYWwuc3ViY29udGV4dCgp IGFzIHM6CisgICAgICAgIHlpZWxkIHMKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBwZyhyZXF1 ZXN0LCBwZ19zZXJ2ZXJfbW9kdWxlLCByZW1haW5pbmdfdGltZW91dCk6CisgICAgIiIiCisgICAg UGVyLXRlc3Qgc2VydmVyIGNvbnRleHQuIFVzZSB0aGlzIGZpeHR1cmUgdG8gbWFrZSBjaGFuZ2Vz IHRvIHRoZSBzZXJ2ZXIKKyAgICB3aGljaCB3aWxsIGJlIHJvbGxlZCBiYWNrIGF0IHRoZSBlbmQg b2YgdGhlIHRlc3QgKGUuZy4sIGNyZWF0aW5nIHRlc3QKKyAgICB1c2Vycy9kYXRhYmFzZXMpLgor CisgICAgQWxzbyBjYXB0dXJlcyB0aGUgUG9zdGdyZVNRTCBsb2cgcG9zaXRpb24gYXQgdGVzdCBz dGFydCBzbyB0aGF0IGFueSBuZXcKKyAgICBsb2cgZW50cmllcyBjYW4gYmUgaW5jbHVkZWQgaW4g dGhlIHRlc3QgcmVwb3J0IG9uIGZhaWx1cmUuCisgICAgIiIiCisgICAgd2l0aCBwZ19zZXJ2ZXJf bW9kdWxlLnN0YXJ0X25ld190ZXN0KHJlbWFpbmluZ190aW1lb3V0KSBhcyBzOgorICAgICAgICBf cmVjb3JkX3NlcnZlcl9mb3JfbG9nX3JlcG9ydGluZyhyZXF1ZXN0LCBzKQorICAgICAgICB5aWVs ZCBzCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY29ubihwZyk6CisgICAgIiIiCisgICAgUmV0 dXJucyBhIGNvbm5lY3RlZCBQR2Nvbm4gaW5zdGFuY2UgdG8gdGhlIHRlc3QgUG9zdGdyZVNRTCBz ZXJ2ZXIuCisgICAgVGhlIGNvbm5lY3Rpb24gaXMgYXV0b21hdGljYWxseSBjbGVhbmVkIHVwIGF0 IHRoZSBlbmQgb2YgdGhlIHRlc3QuCisKKyAgICBFeGFtcGxlOgorICAgICAgICBkZWYgdGVzdF9z b21ldGhpbmcoY29ubik6CisgICAgICAgICAgICByZXN1bHQgPSBjb25uLnNxbCgiU0VMRUNUIDEi KQorICAgICAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSAxCisgICAgIiIiCisgICAgcmV0dXJuIHBn LmNvbm5lY3QoKQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGNyZWF0ZV9wZyhyZXF1ZXN0LCBi aW5kaXIsIHNvY2tkaXIsIGxpYnBxX2hhbmRsZSwgdG1wX2NoZWNrLCByZW1haW5pbmdfdGltZW91 dCk6CisgICAgIiIiCisgICAgRmFjdG9yeSBmaXh0dXJlIHRvIGNyZWF0ZSBhZGRpdGlvbmFsIFBv c3RncmVTUUwgc2VydmVycyAocGVyLXRlc3Qgc2NvcGUpLgorCisgICAgUmV0dXJucyBhIGZ1bmN0 aW9uIHRoYXQgY3JlYXRlcyBuZXcgUG9zdGdyZVNRTCBzZXJ2ZXIgaW5zdGFuY2VzLgorICAgIFNl cnZlcnMgYXJlIGF1dG9tYXRpY2FsbHkgY2xlYW5lZCB1cCBhdCB0aGUgZW5kIG9mIHRoZSB0ZXN0 LgorCisgICAgRXhhbXBsZToKKyAgICAgICAgZGVmIHRlc3RfbXVsdGlwbGVfc2VydmVycyhjcmVh dGVfcGcpOgorICAgICAgICAgICAgbm9kZTEgPSBjcmVhdGVfcGcoKQorICAgICAgICAgICAgbm9k ZTIgPSBjcmVhdGVfcGcoKQorICAgICAgICAgICAgbm9kZTMgPSBjcmVhdGVfcGcoKQorICAgICIi IgorICAgIHNlcnZlcnMgPSBbXQorCisgICAgZGVmIF9jcmVhdGUobmFtZT1Ob25lLCAqKmt3YXJn cyk6CisgICAgICAgIGlmIG5hbWUgaXMgTm9uZToKKyAgICAgICAgICAgIGNvdW50ID0gbGVuKHNl cnZlcnMpICsgMQorICAgICAgICAgICAgbmFtZSA9IGYicGd7Y291bnR9IgorCisgICAgICAgIGRh dGFkaXIgPSB0bXBfY2hlY2sgLyBmInBnZGF0YV97bmFtZX0iCisgICAgICAgIHNlcnZlciA9IFBv c3RncmVzU2VydmVyKG5hbWUsIGJpbmRpciwgZGF0YWRpciwgc29ja2RpciwgbGlicHFfaGFuZGxl LCAqKmt3YXJncykKKyAgICAgICAgc2VydmVyLnNldF90aW1lb3V0KHJlbWFpbmluZ190aW1lb3V0 KQorICAgICAgICBfcmVjb3JkX3NlcnZlcl9mb3JfbG9nX3JlcG9ydGluZyhyZXF1ZXN0LCBzZXJ2 ZXIpCisgICAgICAgIHNlcnZlcnMuYXBwZW5kKHNlcnZlcikKKyAgICAgICAgcmV0dXJuIHNlcnZl cgorCisgICAgeWllbGQgX2NyZWF0ZQorCisgICAgZm9yIHNlcnZlciBpbiBzZXJ2ZXJzOgorICAg ICAgICBzZXJ2ZXIuY2xlYW51cCgpCisgICAgICAgIHNlcnZlci5zdG9wKCkKKworCitAcHl0ZXN0 LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCitkZWYgX21vZHVsZV9zY29wZWRfc2VydmVycygpOgor ICAgICIiIlNlc3Npb24tc2NvcGVkIGxpc3QgdG8gdHJhY2sgc2VydmVycyBjcmVhdGVkIGJ5IGNy ZWF0ZV9wZ19tb2R1bGUuIiIiCisgICAgcmV0dXJuIFtdCisKKworQHB5dGVzdC5maXh0dXJlKHNj b3BlPSJtb2R1bGUiKQorZGVmIGNyZWF0ZV9wZ19tb2R1bGUoCisgICAgYmluZGlyLAorICAgIHNv Y2tkaXIsCisgICAgbGlicHFfaGFuZGxlLAorICAgIHRtcF9jaGVjaywKKyAgICByZW1haW5pbmdf dGltZW91dF9tb2R1bGUsCisgICAgX21vZHVsZV9zY29wZWRfc2VydmVycywKKyk6CisgICAgIiIi CisgICAgRmFjdG9yeSBmaXh0dXJlIHRvIGNyZWF0ZSBhZGRpdGlvbmFsIFBvc3RncmVTUUwgc2Vy dmVycyAobW9kdWxlIHNjb3BlKS4KKworICAgIExpa2UgY3JlYXRlX3BnLCBidXQgc2VydmVycyBw ZXJzaXN0IGZvciB0aGUgZW50aXJlIHRlc3QgbW9kdWxlLgorICAgIFVzZSB0aGlzIHdoZW4gbXVs dGlwbGUgdGVzdHMgaW4gYSBtb2R1bGUgY2FuIHNoYXJlIHRoZSBzYW1lIHNlcnZlcnMuCisKKyAg ICBUaGUgdGltZW91dCBpcyBhdXRvbWF0aWNhbGx5IHNldCBvbiBhbGwgc2VydmVycyBhdCB0aGUg c3RhcnQgb2YgZWFjaCB0ZXN0CisgICAgdmlhIHRoZSBfc2V0X21vZHVsZV9zZXJ2ZXJfdGltZW91 dHMgYXV0b3VzZSBmaXh0dXJlLgorCisgICAgRXhhbXBsZToKKyAgICAgICAgQHB5dGVzdC5maXh0 dXJlKHNjb3BlPSJtb2R1bGUiKQorICAgICAgICBkZWYgc2hhcmVkX25vZGVzKGNyZWF0ZV9wZ19t b2R1bGUpOgorICAgICAgICAgICAgcmV0dXJuIFtjcmVhdGVfcGdfbW9kdWxlKCkgZm9yIF8gaW4g cmFuZ2UoMyldCisgICAgIiIiCisKKyAgICBkZWYgX2NyZWF0ZShuYW1lPU5vbmUsICoqa3dhcmdz KToKKyAgICAgICAgaWYgbmFtZSBpcyBOb25lOgorICAgICAgICAgICAgY291bnQgPSBsZW4oX21v ZHVsZV9zY29wZWRfc2VydmVycykgKyAxCisgICAgICAgICAgICBuYW1lID0gZiJwZ3tjb3VudH0i CisgICAgICAgIGRhdGFkaXIgPSB0bXBfY2hlY2sgLyBmInBnZGF0YV97bmFtZX0iCisgICAgICAg IHNlcnZlciA9IFBvc3RncmVzU2VydmVyKG5hbWUsIGJpbmRpciwgZGF0YWRpciwgc29ja2Rpciwg bGlicHFfaGFuZGxlLCAqKmt3YXJncykKKyAgICAgICAgc2VydmVyLnNldF90aW1lb3V0KHJlbWFp bmluZ190aW1lb3V0X21vZHVsZSkKKyAgICAgICAgX21vZHVsZV9zY29wZWRfc2VydmVycy5hcHBl bmQoc2VydmVyKQorICAgICAgICByZXR1cm4gc2VydmVyCisKKyAgICB5aWVsZCBfY3JlYXRlCisK KyAgICBmb3Igc2VydmVyIGluIF9tb2R1bGVfc2NvcGVkX3NlcnZlcnM6CisgICAgICAgIHNlcnZl ci5jbGVhbnVwKCkKKyAgICAgICAgc2VydmVyLnN0b3AoKQorCisKK0BweXRlc3QuZml4dHVyZShh dXRvdXNlPVRydWUpCitkZWYgX3NldF9tb2R1bGVfc2VydmVyX3RpbWVvdXRzKHJlcXVlc3QsIF9t b2R1bGVfc2NvcGVkX3NlcnZlcnMsIHJlbWFpbmluZ190aW1lb3V0KToKKyAgICAiIiJBdXRvdXNl IGZpeHR1cmUgdGhhdCBzZXRzIHRpbWVvdXQsIGVudGVycyBzdWJjb250ZXh0LCBhbmQgcmVjb3Jk cyBsb2cgcG9zaXRpb25zIGZvciBtb2R1bGUtc2NvcGVkIHNlcnZlcnMuIiIiCisgICAgd2l0aCBj b250ZXh0bGliLkV4aXRTdGFjaygpIGFzIHN0YWNrOgorICAgICAgICBmb3Igc2VydmVyIGluIF9t b2R1bGVfc2NvcGVkX3NlcnZlcnM6CisgICAgICAgICAgICBzdGFjay5lbnRlcl9jb250ZXh0KHNl cnZlci5zdGFydF9uZXdfdGVzdChyZW1haW5pbmdfdGltZW91dCkpCisgICAgICAgICAgICBfcmVj b3JkX3NlcnZlcl9mb3JfbG9nX3JlcG9ydGluZyhyZXF1ZXN0LCBzZXJ2ZXIpCisgICAgICAgIHlp ZWxkCisKKworQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlLCB0cnlsYXN0PVRydWUp CitkZWYgcHl0ZXN0X3J1bnRlc3RfbWFrZXJlcG9ydChpdGVtLCBjYWxsKToKKyAgICAiIiIKKyAg ICBBZGRzIFBvc3RncmVTUUwgc2VydmVyIGxvZ3MgdG8gdGhlIHRlc3QgcmVwb3J0IHNlY3Rpb25z LgorICAgICIiIgorICAgIG91dGNvbWUgPSB5aWVsZAorICAgIHJlcG9ydCA9IG91dGNvbWUuZ2V0 X3Jlc3VsdCgpCisKKyAgICBpZiByZXBvcnQud2hlbiAhPSAiY2FsbCI6CisgICAgICAgIHJldHVy bgorCisgICAgaWYgX3NlcnZlcnNfa2V5IG5vdCBpbiBpdGVtLnN0YXNoOgorICAgICAgICByZXR1 cm4KKworICAgIHNlcnZlcnMgPSBpdGVtLnN0YXNoW19zZXJ2ZXJzX2tleV0KKyAgICBkZWwgaXRl bS5zdGFzaFtfc2VydmVyc19rZXldCisKKyAgICBpbmNsdWRlX25hbWUgPSBsZW4oc2VydmVycykg PiAxCisKKyAgICBmb3Igc2VydmVyIGluIHNlcnZlcnM6CisgICAgICAgIGNvbnRlbnQgPSBzZXJ2 ZXIubG9nX2NvbnRlbnQoKQorICAgICAgICBpZiBjb250ZW50LnN0cmlwKCk6CisgICAgICAgICAg ICBzZWN0aW9uX3RpdGxlID0gIlBvc3RncmVzIGxvZyIKKyAgICAgICAgICAgIGlmIGluY2x1ZGVf bmFtZToKKyAgICAgICAgICAgICAgICBzZWN0aW9uX3RpdGxlICs9IGYiICh7c2VydmVyLm5hbWV9 KSIKKyAgICAgICAgICAgIHJlcG9ydC5zZWN0aW9ucy5hcHBlbmQoKHNlY3Rpb25fdGl0bGUsIGNv bnRlbnQpKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcHl0ZXN0L3B5cGcvc2VydmVyLnB5IGIvc3Jj L3Rlc3QvcHl0ZXN0L3B5cGcvc2VydmVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi45MjQyYWIyNTAwNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3B5dGVz dC9weXBnL3NlcnZlci5weQpAQCAtMCwwICsxLDQ3MCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjUs IFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKK2ltcG9ydCBjb250ZXh0bGli CitpbXBvcnQgb3MKK2ltcG9ydCBwYXRobGliCitpbXBvcnQgcGxhdGZvcm0KK2ltcG9ydCByZQor aW1wb3J0IHNodXRpbAoraW1wb3J0IHNvY2tldAoraW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCB0 ZW1wZmlsZQorZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgbmFtZWR0dXBsZQorZnJvbSB0eXBpbmcg aW1wb3J0IENhbGxhYmxlLCBPcHRpb25hbAorCitmcm9tIC51dGlsIGltcG9ydCBydW4KK2Zyb20g bGlicHEgaW1wb3J0IFBHY29ubiwgY29ubmVjdCBhcyBsaWJwcV9jb25uZWN0CisKKworY2xhc3Mg RmlsZUJhY2t1cChjb250ZXh0bGliLkFic3RyYWN0Q29udGV4dE1hbmFnZXIpOgorICAgICIiIgor ICAgIEEgY29udGV4dCBtYW5hZ2VyIHdoaWNoIGJhY2tzIHVwIGEgZmlsZSdzIGNvbnRlbnRzLCBy ZXN0b3JpbmcgdGhlbSBvbiBleGl0LgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYs IGZpbGU6IHBhdGhsaWIuUGF0aCk6CisgICAgICAgIHN1cGVyKCkuX19pbml0X18oKQorCisgICAg ICAgIHNlbGYuX2ZpbGUgPSBmaWxlCisKKyAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAg ICB3aXRoIHRlbXBmaWxlLk5hbWVkVGVtcG9yYXJ5RmlsZSgKKyAgICAgICAgICAgIHByZWZpeD1z ZWxmLl9maWxlLm5hbWUsIGRpcj1zZWxmLl9maWxlLnBhcmVudCwgZGVsZXRlPUZhbHNlCisgICAg ICAgICkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuX2JhY2t1cCA9IHBhdGhsaWIuUGF0aChmLm5h bWUpCisKKyAgICAgICAgc2h1dGlsLmNvcHlmaWxlKHNlbGYuX2ZpbGUsIHNlbGYuX2JhY2t1cCkK KworICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsICpleGMpOgor ICAgICAgICAjIFN3YXAgdGhlIGJhY2t1cCBhbmQgdGhlIG9yaWdpbmFsIGZpbGUsIHNvIHRoYXQg dGhlIG1vZGlmaWVkIGNvbnRlbnRzCisgICAgICAgICMgY2FuIHN0aWxsIGJlIGluc3BlY3RlZCBp biBjYXNlIG9mIGZhaWx1cmUuCisgICAgICAgIHRtcCA9IHNlbGYuX2JhY2t1cC5wYXJlbnQgLyAo c2VsZi5fYmFja3VwLm5hbWUgKyAiLnRtcCIpCisKKyAgICAgICAgc2h1dGlsLmNvcHlmaWxlKHNl bGYuX2ZpbGUsIHRtcCkKKyAgICAgICAgc2h1dGlsLmNvcHlmaWxlKHNlbGYuX2JhY2t1cCwgc2Vs Zi5fZmlsZSkKKyAgICAgICAgc2h1dGlsLm1vdmUodG1wLCBzZWxmLl9iYWNrdXApCisKKworY2xh c3MgSEJBKEZpbGVCYWNrdXApOgorICAgICIiIgorICAgIEJhY2tzIHVwIGEgc2VydmVyJ3MgSEJB IGNvbmZpZ3VyYXRpb24gYW5kIHByb3ZpZGVzIG1lYW5zIGZvciB0ZW1wb3JhcmlseQorICAgIGVk aXRpbmcgaXQuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZGF0YWRpcjogcGF0 aGxpYi5QYXRoKToKKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhkYXRhZGlyIC8gInBnX2hiYS5j b25mIikKKworICAgIGRlZiBwcmVwZW5kKHNlbGYsICpsaW5lcyk6CisgICAgICAgICIiIgorICAg ICAgICBUZW1wb3JhcmlseSBwcmVwZW5kcyBsaW5lcyB0byB0aGUgc2VydmVyJ3MgcGdfaGJhLmNv bmYuCisKKyAgICAgICAgQXMgc3VnYXIgZm9yIGFsaWduaW5nIEhCQSBjb2x1bW5zIGluIHRoZSB0 ZXN0cywgZWFjaCBsaW5lIGNhbiBiZSBlaXRoZXIKKyAgICAgICAgYSBzdHJpbmcgb3IgYSBsaXN0 IG9mIHN0cmluZ3MuIExpc3QgZWxlbWVudHMgd2lsbCBiZSBqb2luZWQgYnkgc2luZ2xlCisgICAg ICAgIHNwYWNlcyBiZWZvcmUgdGhleSBhcmUgd3JpdHRlbiB0byBmaWxlLgorICAgICAgICAiIiIK KyAgICAgICAgd2l0aCBvcGVuKHNlbGYuX2ZpbGUsICJyIikgYXMgZjoKKyAgICAgICAgICAgIHBy aW9yX2RhdGEgPSBmLnJlYWQoKQorCisgICAgICAgIHdpdGggb3BlbihzZWxmLl9maWxlLCAidyIp IGFzIGY6CisgICAgICAgICAgICBmb3IgbGluZSBpbiBsaW5lczoKKyAgICAgICAgICAgICAgICBp ZiBpc2luc3RhbmNlKGxpbmUsIGxpc3QpOgorICAgICAgICAgICAgICAgICAgICBwcmludCgqbGlu ZSwgZmlsZT1mKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHBy aW50KGxpbmUsIGZpbGU9ZikKKworICAgICAgICAgICAgZi53cml0ZShwcmlvcl9kYXRhKQorCisK K2NsYXNzIENvbmZpZyhGaWxlQmFja3VwKToKKyAgICAiIiIKKyAgICBCYWNrcyB1cCBhIHNlcnZl cidzIHBvc3RncmVzcWwuY29uZiBhbmQgcHJvdmlkZXMgbWVhbnMgZm9yIHRlbXBvcmFyaWx5Cisg ICAgZWRpdGluZyBpdC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkYXRhZGly OiBwYXRobGliLlBhdGgpOgorICAgICAgICBzdXBlcigpLl9faW5pdF9fKGRhdGFkaXIgLyAicG9z dGdyZXNxbC5jb25mIikKKworICAgIGRlZiBzZXQoc2VsZiwgKipndWNzKToKKyAgICAgICAgIiIi CisgICAgICAgIFRlbXBvcmFyaWx5IGFwcGVuZHMgR1VDIHNldHRpbmdzIHRvIHRoZSBzZXJ2ZXIn cyBwb3N0Z3Jlc3FsLmNvbmYuCisgICAgICAgICIiIgorCisgICAgICAgIHdpdGggb3BlbihzZWxm Ll9maWxlLCAiYSIpIGFzIGY6CisgICAgICAgICAgICBwcmludChmaWxlPWYpCisKKyAgICAgICAg ICAgIGZvciBuLCB2IGluIGd1Y3MuaXRlbXMoKToKKyAgICAgICAgICAgICAgICB2ID0gc3RyKHYp CisKKyAgICAgICAgICAgICAgICAjIFRPRE86IHByb3BlciBxdW90aW5nCisgICAgICAgICAgICAg ICAgdiA9IHYucmVwbGFjZSgiXFwiLCAiXFxcXCIpCisgICAgICAgICAgICAgICAgdiA9IHYucmVw bGFjZSgiJyIsICJcXCciKQorICAgICAgICAgICAgICAgIHYgPSAiJ3t9JyIuZm9ybWF0KHYpCisK KyAgICAgICAgICAgICAgICBwcmludChuLCAiPSIsIHYsIGZpbGU9ZikKKworCitCYWNrdXAgPSBu YW1lZHR1cGxlKCJCYWNrdXAiLCAiY29uZiwgaGJhIikKKworCitjbGFzcyBQb3N0Z3Jlc1NlcnZl cjoKKyAgICAiIiIKKyAgICBSZXByZXNlbnRzIGEgcnVubmluZyBQb3N0Z3JlU1FMIHNlcnZlciBp bnN0YW5jZSB3aXRoIG1hbmFnZW1lbnQgdXRpbGl0aWVzLgorICAgIFByb3ZpZGVzIG1ldGhvZHMg Zm9yIGNvbmZpZ3VyYXRpb24sIHVzZXIvZGF0YWJhc2UgY3JlYXRpb24sIGFuZCBzZXJ2ZXIgY29u dHJvbC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXygKKyAgICAgICAgc2VsZiwKKyAgICAg ICAgbmFtZSwKKyAgICAgICAgYmluZGlyLAorICAgICAgICBkYXRhZGlyLAorICAgICAgICBzb2Nr ZGlyLAorICAgICAgICBsaWJwcV9oYW5kbGUsCisgICAgICAgICosCisgICAgICAgIGhvc3RhZGRy OiBPcHRpb25hbFtzdHJdID0gTm9uZSwKKyAgICAgICAgcG9ydDogT3B0aW9uYWxbaW50XSA9IE5v bmUsCisgICAgKToKKyAgICAgICAgIiIiCisgICAgICAgIEluaXRpYWxpemUgYW5kIHN0YXJ0IGEg UG9zdGdyZVNRTCBzZXJ2ZXIgaW5zdGFuY2UuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAg IG5hbWU6IFRoZSBuYW1lIG9mIHRoaXMgc2VydmVyIGluc3RhbmNlIChmb3IgbG9nZ2luZyBwdXJw b3NlcykKKyAgICAgICAgICAgIGJpbmRpcjogUGF0aCB0byBQb3N0Z3JlU1FMIGJpbiBkaXJlY3Rv cnkKKyAgICAgICAgICAgIGRhdGFkaXI6IFBhdGggdG8gZGF0YSBkaXJlY3RvcnkgZm9yIHRoaXMg c2VydmVyCisgICAgICAgICAgICBzb2NrZGlyOiBQYXRoIHRvIGRpcmVjdG9yeSBmb3IgVW5peCBz b2NrZXRzCisgICAgICAgICAgICBsaWJwcV9oYW5kbGU6IGN0eXBlcyBoYW5kbGUgdG8gbGlicHEK KyAgICAgICAgICAgIGhvc3RhZGRyOiBJZiBwcm92aWRlZCwgdXNlIHRoaXMgc3BlY2lmaWMgYWRk cmVzcyAoZS5nLiwgIjEyNy4wLjAuMiIpCisgICAgICAgICAgICBwb3J0OiBJZiBwcm92aWRlZCwg dXNlIHRoaXMgcG9ydCBpbnN0ZWFkIG9mIGZpbmRpbmcgYSBmcmVlIG9uZSwKKyAgICAgICAgICAg ICAgICBpcyBjdXJyZW50bHkgb25seSBhbGxvd2VkIGlmIGhvc3RhZGRyIGlzIGFsc28gcHJvdmlk ZWQKKyAgICAgICAgIiIiCisKKyAgICAgICAgaWYgaG9zdGFkZHIgaXMgTm9uZSBhbmQgcG9ydCBp cyBub3QgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInBvcnQg d2FzIHByb3ZpZGVkIHdpdGhvdXQgaG9zdGFkZHIiKQorCisgICAgICAgIHNlbGYubmFtZSA9IG5h bWUKKyAgICAgICAgc2VsZi5kYXRhZGlyID0gZGF0YWRpcgorICAgICAgICBzZWxmLnNvY2tkaXIg PSBzb2NrZGlyCisgICAgICAgIHNlbGYubGlicHFfaGFuZGxlID0gbGlicHFfaGFuZGxlCisgICAg ICAgIHNlbGYuX3JlbWFpbmluZ190aW1lb3V0X2ZuOiBPcHRpb25hbFtDYWxsYWJsZVtbXSwgZmxv YXRdXSA9IE5vbmUKKyAgICAgICAgc2VsZi5fYmluZGlyID0gYmluZGlyCisgICAgICAgIHNlbGYu X3BnX2N0bCA9IGJpbmRpciAvICJwZ19jdGwiCisgICAgICAgIHNlbGYubG9nID0gZGF0YWRpciAv ICJwb3N0Z3Jlc3FsLmxvZyIKKyAgICAgICAgc2VsZi5fbG9nX3N0YXJ0X3BvcyA9IDAKKworICAg ICAgICAjIERldGVybWluZSB3aGV0aGVyIHRvIHVzZSBVbml4IHNvY2tldHMKKyAgICAgICAgdXNl X3VuaXhfc29ja2V0cyA9IHBsYXRmb3JtLnN5c3RlbSgpICE9ICJXaW5kb3dzIiBhbmQgaG9zdGFk ZHIgaXMgTm9uZQorCisgICAgICAgICMgVXNlIElOSVREQl9URU1QTEFURSBpZiBhdmFpbGFibGUg KG11Y2ggZmFzdGVyIHRoYW4gcnVubmluZyBpbml0ZGIpCisgICAgICAgIGluaXRkYl90ZW1wbGF0 ZSA9IG9zLmVudmlyb24uZ2V0KCJJTklUREJfVEVNUExBVEUiKQorICAgICAgICBpZiBpbml0ZGJf dGVtcGxhdGUgYW5kIG9zLnBhdGguaXNkaXIoaW5pdGRiX3RlbXBsYXRlKToKKyAgICAgICAgICAg IHNodXRpbC5jb3B5dHJlZShpbml0ZGJfdGVtcGxhdGUsIGRhdGFkaXIpCisgICAgICAgIGVsc2U6 CisgICAgICAgICAgICBpZiBwbGF0Zm9ybS5zeXN0ZW0oKSA9PSAiV2luZG93cyI6CisgICAgICAg ICAgICAgICAgYXV0aF9tZXRob2QgPSAidHJ1c3QiCisgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgIGF1dGhfbWV0aG9kID0gInBlZXIiCisgICAgICAgICAgICBydW4oCisgICAgICAg ICAgICAgICAgYmluZGlyIC8gImluaXRkYiIsCisgICAgICAgICAgICAgICAgIi0tbm8tc3luYyIs CisgICAgICAgICAgICAgICAgIi0tYXV0aCIsCisgICAgICAgICAgICAgICAgYXV0aF9tZXRob2Qs CisgICAgICAgICAgICAgICAgIi0tcGdkYXRhIiwKKyAgICAgICAgICAgICAgICBzZWxmLmRhdGFk aXIsCisgICAgICAgICAgICApCisKKyAgICAgICAgIyBGaWd1cmUgb3V0IGEgcG9ydCB0byBsaXN0 ZW4gb24uIEF0dGVtcHQgdG8gcmVzZXJ2ZSBib3RoIElQdjQgYW5kIElQdjYKKyAgICAgICAgIyBh ZGRyZXNzZXMgaW4gb25lIGdvLgorICAgICAgICAjCisgICAgICAgICMgTm90ZTogc29ja2V0Lmhh c19kdWFsc3RhY2tfaXB2Ni9jcmVhdGVfc2VydmVyIGFyZSBvbmx5IGluIFB5dGhvbiAzLjgrLgor ICAgICAgICBpZiBob3N0YWRkciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICMgRXhwbGljaXQg YWRkcmVzcyBwcm92aWRlZAorICAgICAgICAgICAgYWRkcnM6IGxpc3Rbc3RyXSA9IFtob3N0YWRk cl0KKyAgICAgICAgICAgIHRlbXBfc29jayA9IHNvY2tldC5zb2NrZXQoKQorICAgICAgICAgICAg aWYgcG9ydCBpcyBOb25lOgorICAgICAgICAgICAgICAgIHRlbXBfc29jay5iaW5kKChob3N0YWRk ciwgMCkpCisgICAgICAgICAgICAgICAgXywgcG9ydCA9IHRlbXBfc29jay5nZXRzb2NrbmFtZSgp CisKKyAgICAgICAgZWxpZiBoYXNhdHRyKHNvY2tldCwgImhhc19kdWFsc3RhY2tfaXB2NiIpIGFu ZCBzb2NrZXQuaGFzX2R1YWxzdGFja19pcHY2KCk6CisgICAgICAgICAgICBhZGRyID0gKCI6OjEi LCAwKQorICAgICAgICAgICAgdGVtcF9zb2NrID0gc29ja2V0LmNyZWF0ZV9zZXJ2ZXIoCisgICAg ICAgICAgICAgICAgYWRkciwgZmFtaWx5PXNvY2tldC5BRl9JTkVUNiwgZHVhbHN0YWNrX2lwdjY9 VHJ1ZQorICAgICAgICAgICAgKQorCisgICAgICAgICAgICBob3N0YWRkciwgcG9ydCwgXywgXyA9 IHRlbXBfc29jay5nZXRzb2NrbmFtZSgpCisgICAgICAgICAgICBhc3NlcnQgaG9zdGFkZHIgaXMg bm90IE5vbmUKKyAgICAgICAgICAgIGFkZHJzID0gW2hvc3RhZGRyLCAiMTI3LjAuMC4xIl0KKwor ICAgICAgICBlbHNlOgorICAgICAgICAgICAgYWRkciA9ICgiMTI3LjAuMC4xIiwgMCkKKworICAg ICAgICAgICAgdGVtcF9zb2NrID0gc29ja2V0LnNvY2tldCgpCisgICAgICAgICAgICB0ZW1wX3Nv Y2suYmluZChhZGRyKQorCisgICAgICAgICAgICBob3N0YWRkciwgcG9ydCA9IHRlbXBfc29jay5n ZXRzb2NrbmFtZSgpCisgICAgICAgICAgICBhc3NlcnQgaG9zdGFkZHIgaXMgbm90IE5vbmUKKyAg ICAgICAgICAgIGFkZHJzID0gW2hvc3RhZGRyXQorCisgICAgICAgICMgU3RvcmUgdGhlIGNvbXB1 dGVkIHZhbHVlcworICAgICAgICBzZWxmLmhvc3RhZGRyID0gaG9zdGFkZHIKKyAgICAgICAgc2Vs Zi5wb3J0ID0gcG9ydAorICAgICAgICAjIEluY2x1ZGluZyB0aGUgaG9zdCB0byB1c2UgZm9yIGNv bm5lY3Rpb25zIC0gZWl0aGVyIHRoZSBzb2NrZXQKKyAgICAgICAgIyBkaXJlY3Rvcnkgb3IgVENQ IGFkZHJlc3MKKyAgICAgICAgaWYgdXNlX3VuaXhfc29ja2V0czoKKyAgICAgICAgICAgIHNlbGYu aG9zdCA9IHN0cihzb2NrZGlyKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5ob3N0 ID0gaG9zdGFkZHIKKworICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGRhdGFkaXIsICJw b3N0Z3Jlc3FsLmNvbmYiKSwgImEiKSBhcyBmOgorICAgICAgICAgICAgcHJpbnQoZmlsZT1mKQor ICAgICAgICAgICAgaWYgdXNlX3VuaXhfc29ja2V0czoKKyAgICAgICAgICAgICAgICBwcmludCgK KyAgICAgICAgICAgICAgICAgICAgInVuaXhfc29ja2V0X2RpcmVjdG9yaWVzID0gJ3t9JyIuZm9y bWF0KHNvY2tkaXIuYXNfcG9zaXgoKSksCisgICAgICAgICAgICAgICAgICAgIGZpbGU9ZiwKKyAg ICAgICAgICAgICAgICApCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICMgRGlz YWJsZSBVbml4IHNvY2tldHMgd2hlbiB1c2luZyBUQ1AgdG8gYXZvaWQgbG9jayBjb25mbGljdHMK KyAgICAgICAgICAgICAgICBwcmludCgidW5peF9zb2NrZXRfZGlyZWN0b3JpZXMgPSAnJyIsIGZp bGU9ZikKKyAgICAgICAgICAgIHByaW50KCJsaXN0ZW5fYWRkcmVzc2VzID0gJ3t9JyIuZm9ybWF0 KCIsIi5qb2luKGFkZHJzKSksIGZpbGU9ZikKKyAgICAgICAgICAgIHByaW50KCJwb3J0ID0iLCBw b3J0LCBmaWxlPWYpCisgICAgICAgICAgICBwcmludCgibG9nX2Nvbm5lY3Rpb25zID0gYWxsIiwg ZmlsZT1mKQorICAgICAgICAgICAgcHJpbnQoImZzeW5jID0gb2ZmIiwgZmlsZT1mKQorICAgICAg ICAgICAgcHJpbnQoImRhdGVzdHlsZSA9ICdJU08nIiwgZmlsZT1mKQorICAgICAgICAgICAgcHJp bnQoInRpbWV6b25lID0gJ1VUQyciLCBmaWxlPWYpCisKKyAgICAgICAgIyBCZXR3ZWVuIGNsb3Np bmcgb2YgdGhlIHNvY2tldCwgcywgYW5kIHNlcnZlciBzdGFydCwgd2UncmUgcmFjaW5nCisgICAg ICAgICMgYWdhaW5zdCBhbnl0aGluZyB0aGF0IHdhbnRzIHRvIG9wZW4gdXAgZXBoZW1lcmFsIHBv cnRzLCBzbyB0cnkgbm90IHRvCisgICAgICAgICMgcHV0IGFueSBuZXcgd29yayBoZXJlLgorCisg ICAgICAgIHRlbXBfc29jay5jbG9zZSgpCisgICAgICAgIHNlbGYucGdfY3RsKCJzdGFydCIpCisK KyAgICAgICAgIyBSZWFkIHRoZSBQSUQgZmlsZSB0byBnZXQgdGhlIHBvc3RtYXN0ZXIgUElECisg ICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oZGF0YWRpciwgInBvc3RtYXN0ZXIucGlkIikp IGFzIGY6CisgICAgICAgICAgICBzZWxmLnBpZCA9IGludChmLnJlYWRsaW5lKCkuc3RyaXAoKSkK KworICAgICAgICAjIEV4aXRTdGFjayBmb3IgY2xlYW51cCBjYWxsYmFja3MKKyAgICAgICAgc2Vs Zi5fY2xlYW51cF9zdGFjayA9IGNvbnRleHRsaWIuRXhpdFN0YWNrKCkKKworICAgIGRlZiBjdXJy ZW50X2xvZ19wb3NpdGlvbihzZWxmKToKKyAgICAgICAgIiIiR2V0IHRoZSBjdXJyZW50IGVuZCBw b3NpdGlvbiBvZiB0aGUgbG9nIGZpbGUuIiIiCisgICAgICAgIGlmIHNlbGYubG9nLmV4aXN0cygp OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYubG9nLnN0YXQoKS5zdF9zaXplCisgICAgICAgIHJl dHVybiAwCisKKyAgICBkZWYgcmVzZXRfbG9nX3Bvc2l0aW9uKHNlbGYpOgorICAgICAgICAiIiJN YXJrIGN1cnJlbnQgbG9nIHBvc2l0aW9uIGFzIHN0YXJ0IGZvciBsb2dfY29udGVudCgpLiIiIgor ICAgICAgICBzZWxmLl9sb2dfc3RhcnRfcG9zID0gc2VsZi5jdXJyZW50X2xvZ19wb3NpdGlvbigp CisKKyAgICBAY29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgorICAgIGRlZiBzdGFydF9uZXdfdGVz dChzZWxmLCByZW1haW5pbmdfdGltZW91dCk6CisgICAgICAgICIiIgorICAgICAgICBQcmVwYXJl IHNlcnZlciBmb3IgYSBuZXcgdGVzdC4KKworICAgICAgICBTZXRzIHRpbWVvdXQsIHJlc2V0cyBs b2cgcG9zaXRpb24sIGFuZCBlbnRlcnMgYSBjbGVhbnVwIHN1YmNvbnRleHQuCisgICAgICAgICIi IgorICAgICAgICBzZWxmLnNldF90aW1lb3V0KHJlbWFpbmluZ190aW1lb3V0KQorICAgICAgICBz ZWxmLnJlc2V0X2xvZ19wb3NpdGlvbigpCisgICAgICAgIHdpdGggc2VsZi5zdWJjb250ZXh0KCk6 CisgICAgICAgICAgICB5aWVsZCBzZWxmCisKKyAgICBkZWYgcHNxbChzZWxmLCAqYXJncyk6Cisg ICAgICAgICIiIlJ1biBwc3FsIHdpdGggdGhlIGdpdmVuIGFyZ3VtZW50cy4iIiIKKyAgICAgICAg c2VsZi5fcnVuKG9zLnBhdGguam9pbihzZWxmLl9iaW5kaXIsICJwc3FsIiksICItdyIsICphcmdz KQorCisgICAgZGVmIHNxbChzZWxmLCBxdWVyeSk6CisgICAgICAgICIiIkV4ZWN1dGUgYSBTUUwg cXVlcnkgdmlhIGxpYnBxLiBSZXR1cm5zIHNpbXBsaWZpZWQgcmVzdWx0cy4iIiIKKyAgICAgICAg d2l0aCBzZWxmLmNvbm5lY3QoKSBhcyBjb25uOgorICAgICAgICAgICAgcmV0dXJuIGNvbm4uc3Fs KHF1ZXJ5KQorCisgICAgZGVmIHBnX2N0bChzZWxmLCAqYXJncyk6CisgICAgICAgICIiIlJ1biBw Z19jdGwgd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzLiIiIgorICAgICAgICBzZWxmLl9ydW4oc2Vs Zi5fcGdfY3RsLCAiLS1wZ2RhdGEiLCBzZWxmLmRhdGFkaXIsICItLWxvZyIsIHNlbGYubG9nLCAq YXJncykKKworICAgIGRlZiBfcnVuKHNlbGYsIGNtZCwgKmFyZ3MsIGFkZGVudjogT3B0aW9uYWxb ZGljdF0gPSBOb25lKToKKyAgICAgICAgIiIiUnVuIGEgY29tbWFuZCB3aXRoIFBHKiBlbnZpcm9u bWVudCB2YXJpYWJsZXMgc2V0LiIiIgorICAgICAgICBzdWJlbnYgPSBkaWN0KG9zLmVudmlyb24p CisgICAgICAgIHN1YmVudi51cGRhdGUoCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg IlBHSE9TVCI6IHN0cihzZWxmLmhvc3QpLAorICAgICAgICAgICAgICAgICJQR1BPUlQiOiBzdHIo c2VsZi5wb3J0KSwKKyAgICAgICAgICAgICAgICAiUEdEQVRBQkFTRSI6ICJwb3N0Z3JlcyIsCisg ICAgICAgICAgICAgICAgIlBHREFUQSI6IHN0cihzZWxmLmRhdGFkaXIpLAorICAgICAgICAgICAg fQorICAgICAgICApCisgICAgICAgIGlmIGFkZGVudjoKKyAgICAgICAgICAgIHN1YmVudi51cGRh dGUoYWRkZW52KQorICAgICAgICBydW4oY21kLCAqYXJncywgZW52PXN1YmVudikKKworICAgIGRl ZiBjcmVhdGVfdXNlcnMoc2VsZiwgKnVzZXJrZXlzOiBzdHIpOgorICAgICAgICAiIiJDcmVhdGUg dGVzdCB1c2VycyBhbmQgcmVnaXN0ZXIgdGhlbSBmb3IgY2xlYW51cC4iIiIKKyAgICAgICAgdXNl cm1hcCA9IHt9CisgICAgICAgIGZvciB1IGluIHVzZXJrZXlzOgorICAgICAgICAgICAgbmFtZSA9 IHUgKyAidXNlciIKKyAgICAgICAgICAgIHVzZXJtYXBbdV0gPSBuYW1lCisgICAgICAgICAgICBz ZWxmLnBzcWwoIi1jIiwgIkNSRUFURSBVU0VSICIgKyBuYW1lKQorICAgICAgICAgICAgc2VsZi5f Y2xlYW51cF9zdGFjay5jYWxsYmFjayhzZWxmLnBzcWwsICItYyIsICJEUk9QIFVTRVIgIiArIG5h bWUpCisgICAgICAgIHJldHVybiB1c2VybWFwCisKKyAgICBkZWYgY3JlYXRlX2RicyhzZWxmLCAq ZGJrZXlzOiBzdHIpOgorICAgICAgICAiIiJDcmVhdGUgdGVzdCBkYXRhYmFzZXMgYW5kIHJlZ2lz dGVyIHRoZW0gZm9yIGNsZWFudXAuIiIiCisgICAgICAgIGRibWFwID0ge30KKyAgICAgICAgZm9y IGQgaW4gZGJrZXlzOgorICAgICAgICAgICAgbmFtZSA9IGQgKyAiZGIiCisgICAgICAgICAgICBk Ym1hcFtkXSA9IG5hbWUKKyAgICAgICAgICAgIHNlbGYucHNxbCgiLWMiLCAiQ1JFQVRFIERBVEFC QVNFICIgKyBuYW1lKQorICAgICAgICAgICAgc2VsZi5fY2xlYW51cF9zdGFjay5jYWxsYmFjayhz ZWxmLnBzcWwsICItYyIsICJEUk9QIERBVEFCQVNFICIgKyBuYW1lKQorICAgICAgICByZXR1cm4g ZGJtYXAKKworICAgIEBjb250ZXh0bGliLmNvbnRleHRtYW5hZ2VyCisgICAgZGVmIHJlbG9hZGlu ZyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFByb3ZpZGVzIGEgY29udGV4dCBtYW5hZ2Vy IGZvciBtYWtpbmcgY29uZmlndXJhdGlvbiBjaGFuZ2VzLgorCisgICAgICAgIElmIHRoZSBjb250 ZXh0IHN1aXRlIGZpbmlzaGVzIHN1Y2Nlc3NmdWxseSwgdGhlIGNvbmZpZ3VyYXRpb24gd2lsbAor ICAgICAgICBiZSByZWxvYWRlZCB2aWEgcGdfY3RsLiBPbiB0ZWFyZG93biwgdGhlIGNvbmZpZ3Vy YXRpb24gY2hhbmdlcyB3aWxsCisgICAgICAgIGJlIHVud291bmQsIGFuZCB0aGUgc2VydmVyIHdp bGwgYmUgc2lnbmFsZWQgdG8gcmVsb2FkIGFnYWluLgorCisgICAgICAgIFRoZSBjb250ZXh0IHRh cmdldCBjb250YWlucyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgd2hpY2ggY2FuIGJlCisgICAg ICAgIHVzZWQgdG8gY29uZmlndXJlIHRoZSBzZXJ2ZXI6CisgICAgICAgIC0gLmNvbmY6IG1vZGlm aWVzIHBvc3RncmVzcWwuY29uZgorICAgICAgICAtIC5oYmE6IG1vZGlmaWVzIHBnX2hiYS5jb25m CisKKyAgICAgICAgRm9yIGV4YW1wbGU6CisKKyAgICAgICAgICAgIHdpdGggcGdfc2VydmVyX3Nl c3Npb24ucmVsb2FkaW5nKCkgYXMgczoKKyAgICAgICAgICAgICAgICBzLmNvbmYuc2V0KGxvZ19j b25uZWN0aW9ucz0ib24iKQorICAgICAgICAgICAgICAgIHMuaGJhLnByZXBlbmQoImxvY2FsIGFs bCBhbGwgdHJ1c3QiKQorICAgICAgICAiIiIKKyAgICAgICAgIyBQdXNoIGEgcmVsb2FkIG9udG8g dGhlIHN0YWNrIGJlZm9yZSBtYWtpbmcgYW55IG90aGVyCisgICAgICAgICMgdW53aW5kYWJsZSBj aGFuZ2VzLiBUaGF0IHdheSB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyB3aWxsIGJlCisgICAgICAg ICMKKyAgICAgICAgIyAgIyB0ZXN0CisgICAgICAgICMgICAtIGNvbmZpZyBjaGFuZ2UgMQorICAg ICAgICAjICAgLSBjb25maWcgY2hhbmdlIDIKKyAgICAgICAgIyAgIC0gcmVsb2FkCisgICAgICAg ICMgICMgdGVhcmRvd24KKyAgICAgICAgIyAgIC0gdW5kbyBjb25maWcgY2hhbmdlIDIKKyAgICAg ICAgIyAgIC0gdW5kbyBjb25maWcgY2hhbmdlIDEKKyAgICAgICAgIyAgIC0gcmVsb2FkCisgICAg ICAgICMKKyAgICAgICAgc2VsZi5fY2xlYW51cF9zdGFjay5jYWxsYmFjayhzZWxmLnBnX2N0bCwg InJlbG9hZCIpCisgICAgICAgIHlpZWxkIHNlbGYuX2JhY2t1cF9jb25maWd1cmF0aW9uKCkKKwor ICAgICAgICAjIE5vdyBhY3R1YWxseSByZWxvYWQKKyAgICAgICAgc2VsZi5wZ19jdGwoInJlbG9h ZCIpCisKKyAgICBAY29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgorICAgIGRlZiByZXN0YXJ0aW5n KHNlbGYpOgorICAgICAgICAiIiJMaWtlIC5yZWxvYWRpbmcoKSwgYnV0IHdpdGggYSBmdWxsIHNl cnZlciByZXN0YXJ0LiIiIgorICAgICAgICBzZWxmLl9jbGVhbnVwX3N0YWNrLmNhbGxiYWNrKHNl bGYucGdfY3RsLCAicmVzdGFydCIpCisgICAgICAgIHlpZWxkIHNlbGYuX2JhY2t1cF9jb25maWd1 cmF0aW9uKCkKKyAgICAgICAgc2VsZi5wZ19jdGwoInJlc3RhcnQiKQorCisgICAgZGVmIF9iYWNr dXBfY29uZmlndXJhdGlvbihzZWxmKToKKyAgICAgICAgIyBXcmFwIHRoZSBleGlzdGluZyBIQkEg YW5kIGNvbmZpZ3VyYXRpb24gd2l0aCBGaWxlQmFja3Vwcy4KKyAgICAgICAgcmV0dXJuIEJhY2t1 cCgKKyAgICAgICAgICAgIGhiYT1zZWxmLl9jbGVhbnVwX3N0YWNrLmVudGVyX2NvbnRleHQoSEJB KHNlbGYuZGF0YWRpcikpLAorICAgICAgICAgICAgY29uZj1zZWxmLl9jbGVhbnVwX3N0YWNrLmVu dGVyX2NvbnRleHQoQ29uZmlnKHNlbGYuZGF0YWRpcikpLAorICAgICAgICApCisKKyAgICBAY29u dGV4dGxpYi5jb250ZXh0bWFuYWdlcgorICAgIGRlZiBzdWJjb250ZXh0KHNlbGYpOgorICAgICAg ICAiIiIKKyAgICAgICAgQ3JlYXRlIGEgbmV3IGNsZWFudXAgY29udGV4dCBmb3IgcGVyLXRlc3Qg aXNvbGF0aW9uLgorCisgICAgICAgIFRlbXBvcmFyaWx5IHJlcGxhY2VzIHRoZSBjbGVhbnVwIHN0 YWNrIHNvIHRoYXQgYW55IGNsZWFudXAgY2FsbGJhY2tzCisgICAgICAgIHJlZ2lzdGVyZWQgd2l0 aGluIHRoaXMgY29udGV4dCB3aWxsIGJlIGNsZWFuZWQgdXAgd2hlbiB0aGUgY29udGV4dCBleGl0 cy4KKyAgICAgICAgIiIiCisgICAgICAgIG9sZF9zdGFjayA9IHNlbGYuX2NsZWFudXBfc3RhY2sK KyAgICAgICAgc2VsZi5fY2xlYW51cF9zdGFjayA9IGNvbnRleHRsaWIuRXhpdFN0YWNrKCkKKyAg ICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5fY2xlYW51cF9zdGFjay5fX2VudGVyX18oKQor ICAgICAgICAgICAgeWllbGQgc2VsZgorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2Vs Zi5fY2xlYW51cF9zdGFjay5fX2V4aXRfXyhOb25lLCBOb25lLCBOb25lKQorICAgICAgICAgICAg c2VsZi5fY2xlYW51cF9zdGFjayA9IG9sZF9zdGFjaworCisgICAgZGVmIHN0b3Aoc2VsZiwgbW9k ZT0iZmFzdCIpOgorICAgICAgICAiIiIKKyAgICAgICAgU3RvcCB0aGUgUG9zdGdyZVNRTCBzZXJ2 ZXIgaW5zdGFuY2UuCisKKyAgICAgICAgSWdub3JlcyBmYWlsdXJlcyBpZiB0aGUgc2VydmVyIGlz IGFscmVhZHkgc3RvcHBlZC4KKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAg IHNlbGYucGdfY3RsKCJzdG9wIiwgIi0tbW9kZSIsIG1vZGUpCisgICAgICAgIGV4Y2VwdCBzdWJw cm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcjoKKyAgICAgICAgICAgICMgU2VydmVyIG1heSBoYXZl IGFscmVhZHkgYmVlbiBzdG9wcGVkCisgICAgICAgICAgICBwYXNzCisKKyAgICBkZWYgbG9nX2Nv bnRlbnQoc2VsZikgLT4gc3RyOgorICAgICAgICAiIiJSZXR1cm4gbG9nIGNvbnRlbnQgZnJvbSB0 aGUgY3VycmVudCBjb250ZXh0J3Mgc3RhcnQgcG9zaXRpb24uIiIiCisgICAgICAgIHdpdGggb3Bl bihzZWxmLmxvZykgYXMgZjoKKyAgICAgICAgICAgIGYuc2VlayhzZWxmLl9sb2dfc3RhcnRfcG9z KQorICAgICAgICAgICAgcmV0dXJuIGYucmVhZCgpCisKKyAgICBAY29udGV4dGxpYi5jb250ZXh0 bWFuYWdlcgorICAgIGRlZiBsb2dfY29udGFpbnMoc2VsZiwgcGF0dGVybiwgdGltZXM9Tm9uZSk6 CisgICAgICAgICIiIgorICAgICAgICBDb250ZXh0IG1hbmFnZXIgdGhhdCBjaGVja3MgaWYgdGhl IGxvZyBtYXRjaGVzIHBhdHRlcm4gZHVyaW5nIHRoZSBibG9jay4KKworICAgICAgICBBcmdzOgor ICAgICAgICAgICAgcGF0dGVybjogVGhlIHJlZ2V4IHBhdHRlcm4gdG8gc2VhcmNoIGZvci4KKyAg ICAgICAgICAgIHRpbWVzOiBJZiBOb25lLCBhbnkgbnVtYmVyIG9mIG1hdGNoZXMgaXMgYWNjZXB0 ZWQuCisgICAgICAgICAgICAgICAgICAgSWYgYSBudW1iZXIsIGV4YWN0bHkgdGhhdCBtYW55IG1h dGNoZXMgYXJlIHJlcXVpcmVkLgorICAgICAgICAiIiIKKyAgICAgICAgc3RhcnRfcG9zID0gc2Vs Zi5jdXJyZW50X2xvZ19wb3NpdGlvbigpCisgICAgICAgIHlpZWxkCisgICAgICAgIHdpdGggb3Bl bihzZWxmLmxvZykgYXMgZjoKKyAgICAgICAgICAgIGYuc2VlayhzdGFydF9wb3MpCisgICAgICAg ICAgICBjb250ZW50ID0gZi5yZWFkKCkKKyAgICAgICAgaWYgdGltZXMgaXMgTm9uZToKKyAgICAg ICAgICAgIGFzc2VydCByZS5zZWFyY2gocGF0dGVybiwgY29udGVudCksIGYiUGF0dGVybiB7cGF0 dGVybiFyfSBub3QgZm91bmQgaW4gbG9nIgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbWF0 Y2hfY291bnQgPSBsZW4ocmUuZmluZGFsbChwYXR0ZXJuLCBjb250ZW50KSkKKyAgICAgICAgICAg IGFzc2VydCBtYXRjaF9jb3VudCA9PSB0aW1lcywgKAorICAgICAgICAgICAgICAgIGYiRXhwZWN0 ZWQge3RpbWVzfSBtYXRjaGVzIG9mIHtwYXR0ZXJuIXJ9LCBmb3VuZCB7bWF0Y2hfY291bnR9Igor ICAgICAgICAgICAgKQorCisgICAgZGVmIGNsZWFudXAoc2VsZik6CisgICAgICAgICIiIlJ1biBh bGwgcmVnaXN0ZXJlZCBjbGVhbnVwIGNhbGxiYWNrcy4iIiIKKyAgICAgICAgc2VsZi5fY2xlYW51 cF9zdGFjay5jbG9zZSgpCisKKyAgICBkZWYgc2V0X3RpbWVvdXQoc2VsZiwgcmVtYWluaW5nX3Rp bWVvdXRfZm46IENhbGxhYmxlW1tdLCBmbG9hdF0pIC0+IE5vbmU6CisgICAgICAgICIiIgorICAg ICAgICBTZXQgdGhlIHRpbWVvdXQgZnVuY3Rpb24gZm9yIGNvbm5lY3Rpb25zLgorICAgICAgICBU aGlzIGlzIHR5cGljYWxseSBjYWxsZWQgYnkgcGcgZml4dHVyZSBmb3IgZWFjaCB0ZXN0LgorICAg ICAgICAiIiIKKyAgICAgICAgc2VsZi5fcmVtYWluaW5nX3RpbWVvdXRfZm4gPSByZW1haW5pbmdf dGltZW91dF9mbgorCisgICAgZGVmIGNvbm5lY3Qoc2VsZiwgKipvcHRzKSAtPiBQR2Nvbm46Cisg ICAgICAgICIiIgorICAgICAgICBDcmVhdGVzIGEgY29ubmVjdGlvbiB0byB0aGlzIFBvc3RncmVT UUwgc2VydmVyIGluc3RhbmNlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICAqKm9wdHM6 IEFkZGl0aW9uYWwgY29ubmVjdGlvbiBvcHRpb25zIChjYW4gb3ZlcnJpZGUgZGVmYXVsdHMpCisK KyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIFBHY29ubjogQ29ubmVjdGVkIGRhdGFiYXNl IGNvbm5lY3Rpb24KKworICAgICAgICBFeGFtcGxlOgorICAgICAgICAgICAgY29ubiA9IHBnLmNv bm5lY3QoKQorICAgICAgICAgICAgY29ubiA9IHBnLmNvbm5lY3QoZGJuYW1lPSdteWRiJykKKyAg ICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuX3JlbWFpbmluZ190aW1lb3V0X2ZuIGlzIE5vbmU6 CisgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoCisgICAgICAgICAgICAgICAgIlRpbWVv dXQgZnVuY3Rpb24gbm90IHNldC4gVXNlIHNldF90aW1lb3V0KCkgb3IgcGcgZml4dHVyZS4iCisg ICAgICAgICAgICApCisKKyAgICAgICAgZGVmYXVsdHMgPSB7CisgICAgICAgICAgICAiaG9zdCI6 IHNlbGYuaG9zdCwKKyAgICAgICAgICAgICJwb3J0Ijogc2VsZi5wb3J0LAorICAgICAgICAgICAg ImRibmFtZSI6ICJwb3N0Z3JlcyIsCisgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdHMudXBkYXRl KG9wdHMpCisKKyAgICAgICAgcmV0dXJuIGxpYnBxX2Nvbm5lY3QoCisgICAgICAgICAgICBzZWxm LmxpYnBxX2hhbmRsZSwKKyAgICAgICAgICAgIHNlbGYuX2NsZWFudXBfc3RhY2ssCisgICAgICAg ICAgICBzZWxmLl9yZW1haW5pbmdfdGltZW91dF9mbiwKKyAgICAgICAgICAgICoqZGVmYXVsdHMs CisgICAgICAgICkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVzdC9weXBnL3V0aWwucHkgYi9z cmMvdGVzdC9weXRlc3QvcHlwZy91dGlsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi5iMmExZTYyN2U0YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3B5dGVz dC9weXBnL3V0aWwucHkKQEAgLTAsMCArMSw0MiBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjUsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKK2ltcG9ydCBzaGxleAoraW1wb3J0 IHN1YnByb2Nlc3MKK2ltcG9ydCBzeXMKKworCitkZWYgZXByaW50KCphcmdzLCAqKmt3YXJncyk6 CisgICAgIiIiZXByaW50IHByaW50cyB0byBzdGRlcnIiIiIKKyAgICBwcmludCgqYXJncywgZmls ZT1zeXMuc3RkZXJyLCAqKmt3YXJncykKKworCitkZWYgcnVuKCpjb21tYW5kLCBjaGVjaz1UcnVl LCBzaGVsbD1Ob25lLCBzaWxlbnQ9RmFsc2UsICoqa3dhcmdzKToKKyAgICAiIiJydW4gcnVucyB0 aGUgZ2l2ZW4gY29tbWFuZCBhbmQgcHJpbnRzIGl0IHRvIHN0ZGVyciIiIgorCisgICAgaWYgc2hl bGwgaXMgTm9uZToKKyAgICAgICAgc2hlbGwgPSBsZW4oY29tbWFuZCkgPT0gMSBhbmQgaXNpbnN0 YW5jZShjb21tYW5kWzBdLCBzdHIpCisKKyAgICBpZiBzaGVsbDoKKyAgICAgICAgY29tbWFuZCA9 IGNvbW1hbmRbMF0KKyAgICBlbHNlOgorICAgICAgICBjb21tYW5kID0gbGlzdChtYXAoc3RyLCBj b21tYW5kKSkKKworICAgIGlmIG5vdCBzaWxlbnQ6CisgICAgICAgIGlmIHNoZWxsOgorICAgICAg ICAgICAgZXByaW50KGYiKyB7Y29tbWFuZH0iKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg IyBXZSBjb3VsZCBub3JtYWxseSB1c2Ugc2hsZXguam9pbiBoZXJlLCBidXQgaXQncyBub3QgYXZh aWxhYmxlIGluCisgICAgICAgICAgICAjIFB5dGhvbiAzLjYgd2hpY2ggd2Ugc3RpbGwgbGlrZSB0 byBzdXBwb3J0CisgICAgICAgICAgICB1bnNhZmVfc3RyaW5nX2NtZCA9ICIgIi5qb2luKG1hcChz aGxleC5xdW90ZSwgY29tbWFuZCkpCisgICAgICAgICAgICBlcHJpbnQoZiIrIHt1bnNhZmVfc3Ry aW5nX2NtZH0iKQorCisgICAgaWYgc2lsZW50OgorICAgICAgICBrd2FyZ3Muc2V0ZGVmYXVsdCgi c3Rkb3V0Iiwgc3VicHJvY2Vzcy5ERVZOVUxMKQorCisgICAgcmV0dXJuIHN1YnByb2Nlc3MucnVu KGNvbW1hbmQsIGNoZWNrPWNoZWNrLCBzaGVsbD1zaGVsbCwgKiprd2FyZ3MpCisKKworZGVmIGNh cHR1cmUoY29tbWFuZCwgKmFyZ3MsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIGVuY29kaW5nPSJ1 dGYtOCIsICoqa3dhcmdzKToKKyAgICByZXR1cm4gcnVuKAorICAgICAgICBjb21tYW5kLCAqYXJn cywgc3Rkb3V0PXN0ZG91dCwgZW5jb2Rpbmc9ZW5jb2RpbmcsICoqa3dhcmdzCisgICAgKS5zdGRv dXQucmVtb3Zlc3VmZml4KCJcbiIpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9weXRlc3QvcHl0L2Nv bmZ0ZXN0LnB5IGIvc3JjL3Rlc3QvcHl0ZXN0L3B5dC9jb25mdGVzdC5weQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZGQ3MzkxN2M2OGMKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvdGVzdC9weXRlc3QvcHl0L2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEgQEAKKyMgQ29weXJp Z2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cApkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcHl0ZXN0L3B5dC90ZXN0X2Vycm9ycy5weSBiL3NyYy90ZXN0L3B5dGVz dC9weXQvdGVzdF9lcnJvcnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLmFkMTA5MDM5NjY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcHl0ZXN0L3B5dC90 ZXN0X2Vycm9ycy5weQpAQCAtMCwwICsxLDM0IEBACisjIENvcHlyaWdodCAoYykgMjAyNSwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIiIiCitUZXN0cyBmb3IgbGlicHEg ZXJyb3IgdHlwZXMgYW5kIFNRTFNUQVRFLWJhc2VkIGV4Y2VwdGlvbiBtYXBwaW5nLgorIiIiCisK K2ltcG9ydCBweXRlc3QKK2ltcG9ydCBsaWJwcQorCisKK2RlZiB0ZXN0X3N5bnRheF9lcnJvcihj b25uKToKKyAgICAiIiJJbnZhbGlkIFNRTCBzeW50YXggcmFpc2VzIFN5bnRheEVycm9yIHdpdGgg Y29ycmVjdCBTUUxTVEFURS4iIiIKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMobGlicHEuZXJyb3Jz LlN5bnRheEVycm9yKSBhcyBleGNfaW5mbzoKKyAgICAgICAgY29ubi5zcWwoIlNFTEVDIDEiKQor CisgICAgZXJyID0gZXhjX2luZm8udmFsdWUKKyAgICBhc3NlcnQgZXJyLnNxbHN0YXRlID09ICI0 MjYwMSIKKyAgICBhc3NlcnQgZXJyLnNxbHN0YXRlX2NsYXNzID09ICI0MiIKKyAgICBhc3NlcnQg InN5bnRheCIgaW4gc3RyKGVycikubG93ZXIoKQorCisKK2RlZiB0ZXN0X3VuaXF1ZV92aW9sYXRp b24oY29ubik6CisgICAgIiIiVW5pcXVlIHZpb2xhdGlvbiBpbmNsdWRlcyBhbGwgZXJyb3IgZmll bGRzIGFuZCBjYW4gYmUgY2F1Z2h0IGFzIHBhcmVudCBjbGFzcy4iIiIKKyAgICBjb25uLnNxbCgi Q1JFQVRFIFRFTVAgVEFCTEUgdGVzdF91diAoaWQgaW50IENPTlNUUkFJTlQgdGVzdF91dl9wayBQ UklNQVJZIEtFWSkiKQorICAgIGNvbm4uc3FsKCJJTlNFUlQgSU5UTyB0ZXN0X3V2IFZBTFVFUyAo MSkiKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKGxpYnBxLmVycm9ycy5VbmlxdWVWaW9sYXRp b24pIGFzIGV4Y19pbmZvOgorICAgICAgICBjb25uLnNxbCgiSU5TRVJUIElOVE8gdGVzdF91diBW QUxVRVMgKDEpIikKKworICAgIGVyciA9IGV4Y19pbmZvLnZhbHVlCisgICAgYXNzZXJ0IGVyci5z cWxzdGF0ZSA9PSAiMjM1MDUiCisgICAgYXNzZXJ0IGVyci50YWJsZV9uYW1lID09ICJ0ZXN0X3V2 IgorICAgIGFzc2VydCBlcnIuY29uc3RyYWludF9uYW1lID09ICJ0ZXN0X3V2X3BrIgorICAgIGFz c2VydCBlcnIuZGV0YWlsID09ICJLZXkgKGlkKT0oMSkgYWxyZWFkeSBleGlzdHMuIgpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcHl0ZXN0L3B5dC90ZXN0X2xpYnBxLnB5IGIvc3JjL3Rlc3QvcHl0ZXN0 L3B5dC90ZXN0X2xpYnBxLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li40ZmNmNDA1NmY0MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3B5dGVzdC9weXQvdGVz dF9saWJwcS5weQpAQCAtMCwwICsxLDE3MiBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjUsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKK2ltcG9ydCBjb250ZXh0bGliCitpbXBv cnQgb3MKK2ltcG9ydCBzb2NrZXQKK2ltcG9ydCBzdHJ1Y3QKK2ltcG9ydCB0aHJlYWRpbmcKK2Zy b20gdHlwaW5nIGltcG9ydCBDYWxsYWJsZQorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gbGlicHEg aW1wb3J0IGNvbm5zdHIsIExpYnBxRXJyb3IKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo CisgICAgIm9wdHMsIGV4cGVjdGVkIiwKKyAgICBbCisgICAgICAgIChkaWN0KCksICIiKSwKKyAg ICAgICAgKGRpY3QocG9ydD01NDMyKSwgInBvcnQ9NTQzMiIpLAorICAgICAgICAoZGljdChwb3J0 PTU0MzIsIGRibmFtZT0icG9zdGdyZXMiKSwgInBvcnQ9NTQzMiBkYm5hbWU9cG9zdGdyZXMiKSwK KyAgICAgICAgKGRpY3QoaG9zdD0iIiksICJob3N0PScnIiksCisgICAgICAgIChkaWN0KGhvc3Q9 IiAiKSwgciJob3N0PScgJyIpLAorICAgICAgICAoZGljdChrZXl3b3JkPSInIiksIHIia2V5d29y ZD1cJyIpLAorICAgICAgICAoZGljdChrZXl3b3JkPSIgXFwnICIpLCByImtleXdvcmQ9JyBcXFwn ICciKSwKKyAgICBdLAorKQorZGVmIHRlc3RfY29ubnN0cihvcHRzLCBleHBlY3RlZCk6CisgICAg IiIiVGVzdHMgdGhlIGVzY2FwZSBiZWhhdmlvciBmb3IgY29ubnN0cigpLiIiIgorICAgIGFzc2Vy dCBjb25uc3RyKG9wdHMpID09IGV4cGVjdGVkCisKKworZGVmIHRlc3RfbXVzdF9jb25uZWN0X2Vy cm9ycyhjb25uZWN0KToKKyAgICAiIiJUZXN0cyB0aGF0IGNvbm5lY3QoKSByYWlzZXMgTGlicHFF cnJvci4iIiIKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTGlicHFFcnJvciwgbWF0Y2g9ImludmFs aWQgY29ubmVjdGlvbiBvcHRpb24iKToKKyAgICAgICAgY29ubmVjdChzb21lX3Vua25vd25fa2V5 d29yZD0id2hhdGV2ZXIiKQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGxvY2FsX3NlcnZlcih0 bXBfcGF0aCwgcmVtYWluaW5nX3RpbWVvdXQpOgorICAgICIiIgorICAgIE9wZW5zIHVwIGEgbG9j YWwgVU5JWCBzb2NrZXQgZm9yIG1vY2tpbmcgYSBQb3N0Z3JlcyBzZXJ2ZXIgb24gYSBiYWNrZ3Jv dW5kCisgICAgdGhyZWFkLiBTZWUgdGhlIF9TZXJ2ZXIgQVBJIGZvciB1c2FnZS4KKworICAgIFRo aXMgZml4dHVyZSByZXF1aXJlcyBBRl9VTklYIHN1cHBvcnQ7IGRlcGVuZGVudCB0ZXN0cyB3aWxs IGJlIHNraXBwZWQgb24KKyAgICBwbGF0Zm9ybXMgdGhhdCBkb24ndCBwcm92aWRlIGl0LgorICAg ICIiIgorCisgICAgdHJ5OgorICAgICAgICBmcm9tIHNvY2tldCBpbXBvcnQgQUZfVU5JWAorICAg IGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgcHl0ZXN0LnNraXAoIkFGX1VOSVggbm90IHN1 cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtIikKKworICAgIGNsYXNzIF9TZXJ2ZXIoY29udGV4dGxp Yi5FeGl0U3RhY2spOgorICAgICAgICAiIiIKKyAgICAgICAgSW1wbGVtZW50YXRpb24gY2xhc3Mg Zm9yIGxvY2FsX3NlcnZlci4gU2VlIC5iYWNrZ3JvdW5kKCkgZm9yIHRoZSBwcmltYXJ5CisgICAg ICAgIGVudHJ5IHBvaW50IGZvciB0ZXN0cy4gUG9zdGdyZXMgY2xpZW50cyBtYXkgY29ubmVjdCB0 byB0aGlzIHNlcnZlciB2aWEKKyAgICAgICAgbG9jYWxfc2VydmVyLmhvc3QvbG9jYWxfc2VydmVy LnBvcnQuCisKKyAgICAgICAgX1NlcnZlciBkZXJpdmVzIGZyb20gY29udGV4dGxpYi5FeGl0U3Rh Y2sgdG8gcHJvdmlkZSBlYXN5IGNsZWFudXAgb2YKKyAgICAgICAgYXNzb2NpYXRlZCByZXNvdXJj ZXM7IHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhhdCBjbGFzcyBmb3IgYSBmdWxsCisgICAg ICAgIGV4cGxhbmF0aW9uLgorICAgICAgICAiIiIKKworICAgICAgICBkZWYgX19pbml0X18oc2Vs Zik6CisgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKCkKKworICAgICAgICAgICAgc2VsZi5o b3N0ID0gdG1wX3BhdGgKKyAgICAgICAgICAgIHNlbGYucG9ydCA9IDU0MzIKKworICAgICAgICAg ICAgc2VsZi5fdGhyZWFkID0gTm9uZQorICAgICAgICAgICAgc2VsZi5fdGhyZWFkX2V4YyA9IE5v bmUKKyAgICAgICAgICAgIHNlbGYuX2xpc3RlbmVyID0gc2VsZi5lbnRlcl9jb250ZXh0KAorICAg ICAgICAgICAgICAgIHNvY2tldC5zb2NrZXQoQUZfVU5JWCwgc29ja2V0LlNPQ0tfU1RSRUFNKSwK KyAgICAgICAgICAgICkKKworICAgICAgICBkZWYgYmluZF9hbmRfbGlzdGVuKHNlbGYpOgorICAg ICAgICAgICAgIiIiCisgICAgICAgICAgICBEb2VzIHRoZSBhY3R1YWwgd29yayBvZiBiaW5kaW5n IHRoZSBVTklYIHNvY2tldCB1c2luZyB0aGUgUG9zdGdyZXMKKyAgICAgICAgICAgIHNlcnZlciBj b252ZW50aW9ucyBhbmQgbGlzdGVuaW5nIGZvciBjb25uZWN0aW9ucy4KKworICAgICAgICAgICAg VGhlIGxpc3RlbiBiYWNrbG9nIGlzIGN1cnJlbnRseSBoYXJkY29kZWQgdG8gb25lLgorICAgICAg ICAgICAgIiIiCisgICAgICAgICAgICBzb2NrZmlsZSA9IHNlbGYuaG9zdCAvICIucy5QR1NRTC57 fSIuZm9ybWF0KHNlbGYucG9ydCkKKworICAgICAgICAgICAgIyBMb2NrIGRvd24gdGhlIHBlcm1p c3Npb25zIG9uIHRoZSBuZXcgc29ja2V0LgorICAgICAgICAgICAgcHJldl9tYXNrID0gb3MudW1h c2soMG8wNzcpCisKKyAgICAgICAgICAgICMgQmluZCAoY3JlYXRpbmcgdGhlIHNvY2tldCBmaWxl KSwgYW5kIGltbWVkaWF0ZWx5IHJlZ2lzdGVyIGl0IGZvcgorICAgICAgICAgICAgIyBkZWxldGlv biBmcm9tIGRpc2sgd2hlbiB0aGUgc3RhY2sgaXMgY2xlYW5lZCB1cC4KKyAgICAgICAgICAgIHNl bGYuX2xpc3RlbmVyLmJpbmQoYnl0ZXMoc29ja2ZpbGUpKQorICAgICAgICAgICAgc2VsZi5jYWxs YmFjayhvcy51bmxpbmssIHNvY2tmaWxlKQorCisgICAgICAgICAgICBvcy51bWFzayhwcmV2X21h c2spCisKKyAgICAgICAgICAgIHNlbGYuX2xpc3RlbmVyLmxpc3RlbigxKQorCisgICAgICAgIGRl ZiBiYWNrZ3JvdW5kKHNlbGYsIGZuOiBDYWxsYWJsZVtbc29ja2V0LnNvY2tldF0sIE5vbmVdKSAt PiBOb25lOgorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBBY2NlcHRzIGEgY2xpZW50IGNv bm5lY3Rpb24gb24gYSBiYWNrZ3JvdW5kIHRocmVhZCBhbmQgcGFzc2VzIGl0IHRvCisgICAgICAg ICAgICB0aGUgcHJvdmlkZWQgY2FsbGJhY2suIEFueSBleGNlcHRpb25zIHJhaXNlZCBmcm9tIHRo ZSBjYWxsYmFjayB3aWxsCisgICAgICAgICAgICBiZSByZS1yYWlzZWQgb24gdGhlIG1haW4gdGhy ZWFkIGR1cmluZyBmaXh0dXJlIHRlYXJkb3duLgorCisgICAgICAgICAgICBCbG9ja2luZyBvcGVy YXRpb25zIG9uIHRoZSBjb25uZWN0ZWQgc29ja2V0IGRlZmF1bHQgdG8gdXNpbmcgdGhlCisgICAg ICAgICAgICByZW1haW5pbmdfdGltZW91dCgpLCB0aG91Z2ggdGhpcyBjYW4gYmUgY2hhbmdlZCBi eSB0aGUgdGVzdCB2aWEgdGhlCisgICAgICAgICAgICBzb2NrZXQncyAuc2V0dGltZW91dCgpLgor ICAgICAgICAgICAgIiIiCisKKyAgICAgICAgICAgIGRlZiBfYmcoKToKKyAgICAgICAgICAgICAg ICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2xpc3RlbmVyLnNldHRpbWVvdXQocmVt YWluaW5nX3RpbWVvdXQoKSkKKyAgICAgICAgICAgICAgICAgICAgc29jaywgXyA9IHNlbGYuX2xp c3RlbmVyLmFjY2VwdCgpCisKKyAgICAgICAgICAgICAgICAgICAgd2l0aCBzb2NrOgorICAgICAg ICAgICAgICAgICAgICAgICAgc29jay5zZXR0aW1lb3V0KHJlbWFpbmluZ190aW1lb3V0KCkpCisg ICAgICAgICAgICAgICAgICAgICAgICBmbihzb2NrKQorCisgICAgICAgICAgICAgICAgZXhjZXB0 IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgICAgICAjIFNhdmUgdGhlIGV4Y2VwdGlv biBmb3IgcmUtcmFpc2luZyBvbiB0aGUgbWFpbiB0aHJlYWQuCisgICAgICAgICAgICAgICAgICAg IHNlbGYuX3RocmVhZF9leGMgPSBlCisKKyAgICAgICAgICAgICMgVE9ETzogcmF0aGVyIHRoYW4g dXNpbmcgY2FsbGJhY2soKSwgY29uc2lkZXIgZXhwbGljaXRseSBzaWduYWxpbmcKKyAgICAgICAg ICAgICMgdGhlIGZuKCkgaW1wbGVtZW50YXRpb24gdG8gc3RvcCBlYXJseSBpZiB3ZSBnZXQgYW4g ZXhjZXB0aW9uLgorICAgICAgICAgICAgIyBPdGhlcndpc2Ugd2UnbGwgaGFuZyB1bnRpbCB0aGUg ZW5kIG9mIHRoZSB0aW1lb3V0LgorICAgICAgICAgICAgc2VsZi5fdGhyZWFkID0gdGhyZWFkaW5n LlRocmVhZCh0YXJnZXQ9X2JnKQorICAgICAgICAgICAgc2VsZi5jYWxsYmFjayhzZWxmLl9qb2lu KQorCisgICAgICAgICAgICBzZWxmLl90aHJlYWQuc3RhcnQoKQorCisgICAgICAgIGRlZiBfam9p bihzZWxmKToKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgV2FpdHMgZm9yIHRoZSBiYWNr Z3JvdW5kIHRocmVhZCB0byBmaW5pc2ggYW5kIHJhaXNlcyBhbnkgdGhyb3duCisgICAgICAgICAg ICBleGNlcHRpb24uIFRoaXMgaXMgY2FsbGVkIGR1cmluZyBmaXh0dXJlIHRlYXJkb3duLgorICAg ICAgICAgICAgIiIiCisgICAgICAgICAgICAjIEdpdmUgYSBsaXR0bGUgYml0IG9mIHdpZ2dsZSBy b29tIG9uIHRoZSBqb2luIHRpbWVvdXQsIHNpbmNlIHdlJ3JlCisgICAgICAgICAgICAjIHJhY2lu ZyBhZ2FpbnN0IHRoZSB0ZXN0J3Mgb3duIHVzZSBvZiByZW1haW5pbmdfdGltZW91dCgpLiAoSXQn cworICAgICAgICAgICAgIyBwcmVmZXJhYmxlIHRvIGxldCB0ZXN0cyByZXBvcnQgdGltZW91dHM7 IHRoZSBzdGFjayB0cmFjZXMgd2lsbAorICAgICAgICAgICAgIyBoZWxwIHdpdGggZGVidWdnaW5n LikKKyAgICAgICAgICAgIHNlbGYuX3RocmVhZC5qb2luKHJlbWFpbmluZ190aW1lb3V0KCkgKyAx KQorICAgICAgICAgICAgaWYgc2VsZi5fdGhyZWFkLmlzX2FsaXZlKCk6CisgICAgICAgICAgICAg ICAgcmFpc2UgVGltZW91dEVycm9yKCJiYWNrZ3JvdW5kIHRocmVhZCBpcyBzdGlsbCBydW5uaW5n IGFmdGVyIHRpbWVvdXQiKQorCisgICAgICAgICAgICBpZiBzZWxmLl90aHJlYWRfZXhjIGlzIG5v dCBOb25lOgorICAgICAgICAgICAgICAgIHJhaXNlIHNlbGYuX3RocmVhZF9leGMKKworICAgIHdp dGggX1NlcnZlcigpIGFzIHM6CisgICAgICAgIHMuYmluZF9hbmRfbGlzdGVuKCkKKyAgICAgICAg eWllbGQgcworCisKK2RlZiB0ZXN0X2Nvbm5lY3Rpb25faXNfZmluaXNoZWRfb25fZXJyb3IoY29u bmVjdCwgbG9jYWxfc2VydmVyKToKKyAgICAiIiJUZXN0cyB0aGF0IFBRZmluaXNoKCkgZ2V0cyBj YWxsZWQgYXQgdGhlIGVuZCBvZiB0ZXN0aW5nLiIiIgorICAgIGV4cGVjdGVkX2Vycm9yID0gInNv bWV0aGluZyBpcyB3cm9uZyIKKworICAgIGRlZiBzZXJ2ZV9lcnJvcihzOiBzb2NrZXQuc29ja2V0 KSAtPiBOb25lOgorICAgICAgICBwa3RsZW4gPSBzdHJ1Y3QudW5wYWNrKCIhSSIsIHMucmVjdig0 KSlbMF0KKworICAgICAgICAjIFF1aWNrIGNoZWNrIGZvciB0aGUgc3RhcnR1cCBwYWNrZXQgdmVy c2lvbi4KKyAgICAgICAgdmVyc2lvbiA9IHN0cnVjdC51bnBhY2soIiFISCIsIHMucmVjdig0KSkK KyAgICAgICAgYXNzZXJ0IHZlcnNpb24gPT0gKDMsIDApCisKKyAgICAgICAgIyBEaXNjYXJkIHRo ZSByZW1haW5kZXIgb2YgdGhlIHN0YXJ0dXAgcGFja2V0IGFuZCBzZW5kIGEgdjIgZXJyb3IuCisg ICAgICAgIHMucmVjdihwa3RsZW4gLSA4KQorICAgICAgICBzLnNlbmQoYiJFIiArIGV4cGVjdGVk X2Vycm9yLmVuY29kZSgpICsgYiJcMCIpCisKKyAgICAgICAgIyBBbmQgbm93IHRoZSBzb2NrZXQg c2hvdWxkIGJlIGNsb3NlZC4KKyAgICAgICAgYXNzZXJ0IG5vdCBzLnJlY3YoMSksICJjbGllbnQg c2VudCB1bmV4cGVjdGVkIGRhdGEiCisKKyAgICBsb2NhbF9zZXJ2ZXIuYmFja2dyb3VuZChzZXJ2 ZV9lcnJvcikKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhMaWJwcUVycm9yLCBtYXRjaD1leHBl Y3RlZF9lcnJvcik6CisgICAgICAgICMgRXhpdGluZyB0aGlzIGNvbnRleHQgc2hvdWxkIHJlc3Vs dCBpbiBQUWZpbmlzaCgpLgorICAgICAgICBjb25uZWN0KGhvc3Q9bG9jYWxfc2VydmVyLmhvc3Qs IHBvcnQ9bG9jYWxfc2VydmVyLnBvcnQpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9weXRlc3QvcHl0 L3Rlc3RfbXVsdGlfc2VydmVyLnB5IGIvc3JjL3Rlc3QvcHl0ZXN0L3B5dC90ZXN0X211bHRpX3Nl cnZlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGVlMDQ1YjBj YzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9weXRlc3QvcHl0L3Rlc3RfbXVsdGlfc2Vy dmVyLnB5CkBAIC0wLDAgKzEsNDYgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCisiIiIKK1Rlc3RzIGRlbW9uc3RyYXRpbmcgbXVs dGktc2VydmVyIGZ1bmN0aW9uYWxpdHkgdXNpbmcgY3JlYXRlX3BnIGZpeHR1cmUuCisKK1RoZXNl IHRlc3RzIHZlcmlmeSB0aGF0IHRoZSBweXRlc3QgaW5mcmFzdHJ1Y3R1cmUgY29ycmVjdGx5IGhh bmRsZXMKK211bHRpcGxlIFBvc3RncmVTUUwgc2VydmVyIGluc3RhbmNlcyB3aXRoaW4gYSBzaW5n bGUgdGVzdCwgYW5kIHRoYXQKK21vZHVsZS1zY29wZWQgc2VydmVycyBwZXJzaXN0IGFjcm9zcyB0 ZXN0cy4KKyIiIgorCitpbXBvcnQgcHl0ZXN0CisKKworZGVmIHRlc3RfbXVsdGlwbGVfc2VydmVy c19iYXNpYyhjcmVhdGVfcGcpOgorICAgICIiIlRlc3QgdGhhdCB3ZSBjYW4gY3JlYXRlIGFuZCBj b25uZWN0IHRvIG11bHRpcGxlIHNlcnZlcnMuIiIiCisgICAgbm9kZTEgPSBjcmVhdGVfcGcoInBy aW1hcnkiKQorICAgIG5vZGUyID0gY3JlYXRlX3BnKCJzZWNvbmRhcnkiKQorCisgICAgY29ubjEg PSBub2RlMS5jb25uZWN0KCkKKyAgICBjb25uMiA9IG5vZGUyLmNvbm5lY3QoKQorCisgICAgIyBF YWNoIHNlcnZlciBzaG91bGQgaGF2ZSBpdHMgb3duIGRhdGEgZGlyZWN0b3J5CisgICAgZGF0YWRp cjEgPSBjb25uMS5zcWwoIlNIT1cgZGF0YV9kaXJlY3RvcnkiKQorICAgIGRhdGFkaXIyID0gY29u bjIuc3FsKCJTSE9XIGRhdGFfZGlyZWN0b3J5IikKKyAgICBhc3NlcnQgZGF0YWRpcjEgIT0gZGF0 YWRpcjIKKworICAgICMgRWFjaCBzZXJ2ZXIgc2hvdWxkIGJlIGxpc3RlbmluZyBvbiBhIGRpZmZl cmVudCBwb3J0CisgICAgYXNzZXJ0IG5vZGUxLnBvcnQgIT0gbm9kZTIucG9ydAorCisKK0BweXRl c3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikKK2RlZiBzaGFyZWRfc2VydmVyKGNyZWF0ZV9wZ19t b2R1bGUpOgorICAgICIiIkEgc2VydmVyIHNoYXJlZCBhY3Jvc3MgYWxsIHRlc3RzIGluIHRoaXMg bW9kdWxlLiIiIgorICAgIHNlcnZlciA9IGNyZWF0ZV9wZ19tb2R1bGUoInNoYXJlZCIpCisgICAg c2VydmVyLnNxbCgiQ1JFQVRFIFRBQkxFIG1vZHVsZV9zdGF0ZSAodmFsdWUgaW50IERFRkFVTFQg MCkiKQorICAgIHJldHVybiBzZXJ2ZXIKKworCitkZWYgdGVzdF9tb2R1bGVfc2VydmVyX2NyZWF0 ZV9yb3coc2hhcmVkX3NlcnZlcik6CisgICAgIiIiRmlyc3QgdGVzdDogY3JlYXRlIGEgcm93IGlu IHRoZSBzaGFyZWQgc2VydmVyLiIiIgorICAgIHNoYXJlZF9zZXJ2ZXIuY29ubmVjdCgpLnNxbCgi SU5TRVJUIElOVE8gbW9kdWxlX3N0YXRlIFZBTFVFUyAoNDIpIikKKworCitkZWYgdGVzdF9tb2R1 bGVfc2VydmVyX3NlZV9yb3coc2hhcmVkX3NlcnZlcik6CisgICAgIiIiU2Vjb25kIHRlc3Q6IHZl cmlmeSB3ZSBzZWUgdGhlIHJvdyBmcm9tIHRoZSBwcmV2aW91cyB0ZXN0LiIiIgorICAgIGFzc2Vy dCBzaGFyZWRfc2VydmVyLmNvbm5lY3QoKS5zcWwoIlNFTEVDVCB2YWx1ZSBGUk9NIG1vZHVsZV9z dGF0ZSIpID09IDQyCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9weXRlc3QvcHl0L3Rlc3RfcXVlcnlf aGVscGVycy5weSBiL3NyYy90ZXN0L3B5dGVzdC9weXQvdGVzdF9xdWVyeV9oZWxwZXJzLnB5Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hYmNkOTA4NDIxNAotLS0gL2Rl di9udWxsCisrKyBiL3NyYy90ZXN0L3B5dGVzdC9weXQvdGVzdF9xdWVyeV9oZWxwZXJzLnB5CkBA IC0wLDAgKzEsMzQ3IEBACisjIENvcHlyaWdodCAoYykgMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwg RGV2ZWxvcG1lbnQgR3JvdXAKKworIiIiCitUZXN0cyBmb3IgcXVlcnkgaGVscGVyIGZ1bmN0aW9u cyB3aXRoIHR5cGUgY29udmVyc2lvbiBhbmQgcmVzdWx0IHNpbXBsaWZpY2F0aW9uLgorIiIiCisK K2ltcG9ydCB1dWlkCisKK2ltcG9ydCBweXRlc3QKKworCitkZWYgdGVzdF9zaW5nbGVfY2VsbF9p bnQoY29ubik6CisgICAgIiIiU2luZ2xlIGNlbGwgaW50ZWdlciBxdWVyeSByZXR1cm5zIGp1c3Qg dGhlIHZhbHVlLiIiIgorICAgIHJlc3VsdCA9IGNvbm4uc3FsKCJTRUxFQ1QgMSIpCisgICAgYXNz ZXJ0IHJlc3VsdCA9PSAxCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0LCBpbnQpCisKKwor ZGVmIHRlc3Rfc2luZ2xlX2NlbGxfc3RyaW5nKGNvbm4pOgorICAgICIiIlNpbmdsZSBjZWxsIHN0 cmluZyBxdWVyeSByZXR1cm5zIGp1c3QgdGhlIHZhbHVlLiIiIgorICAgIHJlc3VsdCA9IGNvbm4u c3FsKCJTRUxFQ1QgJ2hlbGxvJyIpCisgICAgYXNzZXJ0IHJlc3VsdCA9PSAiaGVsbG8iCisgICAg YXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0LCBzdHIpCisKKworZGVmIHRlc3Rfc2luZ2xlX2NlbGxf Ym9vbChjb25uKToKKyAgICAiIiJTaW5nbGUgY2VsbCBib29sZWFuIHF1ZXJ5IHJldHVybnMganVz dCB0aGUgdmFsdWUuIiIiCisKKyAgICByZXN1bHQgPSBjb25uLnNxbCgiU0VMRUNUIHRydWUiKQor ICAgIGFzc2VydCByZXN1bHQgaXMgVHJ1ZQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdCwg Ym9vbCkKKworICAgIHJlc3VsdCA9IGNvbm4uc3FsKCJTRUxFQ1QgZmFsc2UiKQorICAgIGFzc2Vy dCByZXN1bHQgaXMgRmFsc2UKKworCitkZWYgdGVzdF9zaW5nbGVfY2VsbF9mbG9hdChjb25uKToK KyAgICAiIiJTaW5nbGUgY2VsbCBmbG9hdCBxdWVyeSByZXR1cm5zIGp1c3QgdGhlIHZhbHVlLiIi IgorCisgICAgcmVzdWx0ID0gY29ubi5zcWwoIlNFTEVDVCAzLjE0OjpmbG9hdDQiKQorICAgIGFz c2VydCBpc2luc3RhbmNlKHJlc3VsdCwgZmxvYXQpCisgICAgYXNzZXJ0IGFicyhyZXN1bHQgLSAz LjE0KSA8IDAuMDEKKworCitkZWYgdGVzdF9zaW5nbGVfY2VsbF9udWxsKGNvbm4pOgorICAgICIi IlNpbmdsZSBjZWxsIE5VTEwgcXVlcnkgcmV0dXJucyBOb25lLiIiIgorCisgICAgcmVzdWx0ID0g Y29ubi5zcWwoIlNFTEVDVCBOVUxMIikKKyAgICBhc3NlcnQgcmVzdWx0IGlzIE5vbmUKKworCitk ZWYgdGVzdF9zaW5nbGVfcm93X211bHRpcGxlX2NvbHVtbnMoY29ubik6CisgICAgIiIiU2luZ2xl IHJvdyB3aXRoIG11bHRpcGxlIGNvbHVtbnMgcmV0dXJucyBhIHR1cGxlLiIiIgorCisgICAgcmVz dWx0ID0gY29ubi5zcWwoIlNFTEVDVCAxLCAnaGVsbG8nLCB0cnVlIikKKyAgICBhc3NlcnQgcmVz dWx0ID09ICgxLCAiaGVsbG8iLCBUcnVlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdCwg dHVwbGUpCisKKworZGVmIHRlc3Rfc2luZ2xlX2NvbHVtbl9tdWx0aXBsZV9yb3dzKGNvbm4pOgor ICAgICIiIlNpbmdsZSBjb2x1bW4gd2l0aCBtdWx0aXBsZSByb3dzIHJldHVybnMgYSBsaXN0IG9m IHZhbHVlcy4iIiIKKworICAgIHJlc3VsdCA9IGNvbm4uc3FsKCJTRUxFQ1QgKiBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAzKSIpCisgICAgYXNzZXJ0IHJlc3VsdCA9PSBbMSwgMiwgM10KKyAgICBh c3NlcnQgaXNpbnN0YW5jZShyZXN1bHQsIGxpc3QpCisKKworZGVmIHRlc3RfbXVsdGlwbGVfcm93 c19hbmRfY29sdW1ucyhjb25uKToKKyAgICAiIiJNdWx0aXBsZSByb3dzIGFuZCBjb2x1bW5zIHJl dHVybnMgbGlzdCBvZiB0dXBsZXMuIiIiCisKKyAgICByZXN1bHQgPSBjb25uLnNxbCgiU0VMRUNU ICogRlJPTSAoVkFMVUVTICgxLCAnYScpLCAoMiwgJ2InKSwgKDMsICdjJykpIEFTIHQiKQorICAg IGFzc2VydCByZXN1bHQgPT0gWygxLCAiYSIpLCAoMiwgImIiKSwgKDMsICJjIildCisgICAgYXNz ZXJ0IGlzaW5zdGFuY2UocmVzdWx0LCBsaXN0KQorICAgIGFzc2VydCBhbGwoaXNpbnN0YW5jZShy b3csIHR1cGxlKSBmb3Igcm93IGluIHJlc3VsdCkKKworCitkZWYgdGVzdF9lbXB0eV9yZXN1bHQo Y29ubik6CisgICAgIiIiRW1wdHkgcmVzdWx0IHNldCByZXR1cm5zIGVtcHR5IGxpc3QuIiIiCisK KyAgICByZXN1bHQgPSBjb25uLnNxbCgiU0VMRUNUIDEgV0hFUkUgZmFsc2UiKQorICAgIGFzc2Vy dCByZXN1bHQgPT0gW10KKworCitkZWYgdGVzdF9xdWVyeV9lcnJvcl9oYW5kbGluZyhjb25uKToK KyAgICAiIiJRdWVyeSBlcnJvcnMgcmFpc2UgUnVudGltZUVycm9yIHdpdGggYWN0dWFsIGVycm9y IG1lc3NhZ2UuIiIiCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoUnVudGltZUVycm9yKSBhcyBl eGNfaW5mbzoKKyAgICAgICAgY29ubi5zcWwoIlNFTEVDVCAqIEZST00gbm9uZXhpc3RlbnRfdGFi bGUiKQorCisgICAgZXJyb3JfbXNnID0gc3RyKGV4Y19pbmZvLnZhbHVlKQorICAgIGFzc2VydCAi bm9uZXhpc3RlbnRfdGFibGUiIGluIGVycm9yX21zZyBvciAiZG9lcyBub3QgZXhpc3QiIGluIGVy cm9yX21zZworCisKK2RlZiB0ZXN0X2RpdmlzaW9uX2J5X3plcm9fZXJyb3IoY29ubik6CisgICAg IiIiRGl2aXNpb24gYnkgemVybyByYWlzZXMgUnVudGltZUVycm9yLiIiIgorCisgICAgd2l0aCBw eXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvcikgYXMgZXhjX2luZm86CisgICAgICAgIGNvbm4uc3Fs KCJTRUxFQ1QgMS8wIikKKworICAgIGVycm9yX21zZyA9IHN0cihleGNfaW5mby52YWx1ZSkKKyAg ICBhc3NlcnQgImRpdmlzaW9uIGJ5IHplcm8iIGluIGVycm9yX21zZy5sb3dlcigpCisKKworZGVm IHRlc3Rfc2ltcGxlX2V4ZWNfY3JlYXRlX3RhYmxlKGNvbm4pOgorICAgICIiInNxbCBmb3IgQ1JF QVRFIFRBQkxFIHJldHVybnMgTm9uZS4iIiIKKworICAgIHJlc3VsdCA9IGNvbm4uc3FsKCJDUkVB VEUgVEVNUCBUQUJMRSB0ZXN0X3RhYmxlIChpZCBpbnQsIG5hbWUgdGV4dCkiKQorICAgIGFzc2Vy dCByZXN1bHQgaXMgTm9uZQorCisgICAgIyBWZXJpZnkgdGFibGUgd2FzIGNyZWF0ZWQKKyAgICBj b3VudCA9IGNvbm4uc3FsKCJTRUxFQ1QgQ09VTlQoKikgRlJPTSB0ZXN0X3RhYmxlIikKKyAgICBh c3NlcnQgY291bnQgPT0gMAorCisKK2RlZiB0ZXN0X3NpbXBsZV9leGVjX2luc2VydChjb25uKToK KyAgICAiIiJzcWwgZm9yIElOU0VSVCByZXR1cm5zIE5vbmUuIiIiCisKKyAgICBjb25uLnNxbCgi Q1JFQVRFIFRFTVAgVEFCTEUgdGVzdF90YWJsZSAoaWQgaW50LCBuYW1lIHRleHQpIikKKyAgICBy ZXN1bHQgPSBjb25uLnNxbCgiSU5TRVJUIElOVE8gdGVzdF90YWJsZSBWQUxVRVMgKDEsICdBbGlj ZScpLCAoMiwgJ0JvYicpIikKKyAgICBhc3NlcnQgcmVzdWx0IGlzIE5vbmUKKworICAgICMgVmVy aWZ5IGRhdGEgd2FzIGluc2VydGVkCisgICAgY291bnQgPSBjb25uLnNxbCgiU0VMRUNUIENPVU5U KCopIEZST00gdGVzdF90YWJsZSIpCisgICAgYXNzZXJ0IGNvdW50ID09IDIKKworCitkZWYgdGVz dF90eXBlX2NvbnZlcnNpb25fbWl4ZWQoY29ubik6CisgICAgIiIiVGVzdCBtaXhlZCB0eXBlIGNv bnZlcnNpb24gaW4gYSBzaW5nbGUgcm93LiIiIgorCisgICAgcmVzdWx0ID0gY29ubi5zcWwoIlNF TEVDVCA0Mjo6aW50NCwgMTIzOjppbnQ4LCAzLjE0OjpmbG9hdDgsICd0ZXh0JywgdHJ1ZSwgTlVM TCIpCisgICAgYXNzZXJ0IHJlc3VsdCA9PSAoNDIsIDEyMywgMy4xNCwgInRleHQiLCBUcnVlLCBO b25lKQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdFswXSwgaW50KQorICAgIGFzc2VydCBp c2luc3RhbmNlKHJlc3VsdFsxXSwgaW50KQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdFsy XSwgZmxvYXQpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0WzNdLCBzdHIpCisgICAgYXNz ZXJ0IGlzaW5zdGFuY2UocmVzdWx0WzRdLCBib29sKQorICAgIGFzc2VydCByZXN1bHRbNV0gaXMg Tm9uZQorCisKK2RlZiB0ZXN0X211bHRpcGxlX3F1ZXJpZXNfc2FtZV9jb25uZWN0aW9uKGNvbm4p OgorICAgICIiIlRlc3QgcnVubmluZyBtdWx0aXBsZSBxdWVyaWVzIG9uIHRoZSBzYW1lIGNvbm5l Y3Rpb24uIiIiCisKKyAgICByZXN1bHQxID0gY29ubi5zcWwoIlNFTEVDVCAxIikKKyAgICBhc3Nl cnQgcmVzdWx0MSA9PSAxCisKKyAgICByZXN1bHQyID0gY29ubi5zcWwoIlNFTEVDVCAnaGVsbG8n LCAnd29ybGQnIikKKyAgICBhc3NlcnQgcmVzdWx0MiA9PSAoImhlbGxvIiwgIndvcmxkIikKKwor ICAgIHJlc3VsdDMgPSBjb25uLnNxbCgiU0VMRUNUICogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg NSkiKQorICAgIGFzc2VydCByZXN1bHQzID09IFsxLCAyLCAzLCA0LCA1XQorCisKK2RlZiB0ZXN0 X2RhdGVfdHlwZShjb25uKToKKyAgICAiIiJUZXN0IGRhdGUgdHlwZSBjb252ZXJzaW9uLiIiIgor ICAgIGltcG9ydCBkYXRldGltZQorCisgICAgcmVzdWx0ID0gY29ubi5zcWwoIlNFTEVDVCAnMjAy NS0xMC0yMCc6OmRhdGUiKQorICAgIGFzc2VydCByZXN1bHQgPT0gZGF0ZXRpbWUuZGF0ZSgyMDI1 LCAxMCwgMjApCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0LCBkYXRldGltZS5kYXRlKQor CisKK2RlZiB0ZXN0X3RpbWVzdGFtcF90eXBlKGNvbm4pOgorICAgICIiIlRlc3QgdGltZXN0YW1w IHR5cGUgY29udmVyc2lvbi4iIiIKKyAgICBpbXBvcnQgZGF0ZXRpbWUKKworICAgIHJlc3VsdCA9 IGNvbm4uc3FsKCJTRUxFQ1QgJzIwMjUtMTAtMjAgMTU6MzA6NDUnOjp0aW1lc3RhbXAiKQorICAg IGFzc2VydCByZXN1bHQgPT0gZGF0ZXRpbWUuZGF0ZXRpbWUoMjAyNSwgMTAsIDIwLCAxNSwgMzAs IDQ1KQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdCwgZGF0ZXRpbWUuZGF0ZXRpbWUpCisK KworZGVmIHRlc3RfdGltZV90eXBlKGNvbm4pOgorICAgICIiIlRlc3QgdGltZSB0eXBlIGNvbnZl cnNpb24uIiIiCisgICAgaW1wb3J0IGRhdGV0aW1lCisKKyAgICByZXN1bHQgPSBjb25uLnNxbCgi U0VMRUNUICcxNTozMDo0NSc6OnRpbWUiKQorICAgIGFzc2VydCByZXN1bHQgPT0gZGF0ZXRpbWUu dGltZSgxNSwgMzAsIDQ1KQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdCwgZGF0ZXRpbWUu dGltZSkKKworCitkZWYgdGVzdF9udW1lcmljX3R5cGUoY29ubik6CisgICAgIiIiVGVzdCBudW1l cmljL2RlY2ltYWwgdHlwZSBjb252ZXJzaW9uLiIiIgorICAgIGltcG9ydCBkZWNpbWFsCisKKyAg ICByZXN1bHQgPSBjb25uLnNxbCgiU0VMRUNUIDEyMy40NTY6Om51bWVyaWMiKQorICAgIGFzc2Vy dCByZXN1bHQgPT0gZGVjaW1hbC5EZWNpbWFsKCIxMjMuNDU2IikKKyAgICBhc3NlcnQgaXNpbnN0 YW5jZShyZXN1bHQsIGRlY2ltYWwuRGVjaW1hbCkKKworCitkZWYgdGVzdF9pbnRfYXJyYXkoY29u bik6CisgICAgIiIiVGVzdCBpbnRlZ2VyIGFycmF5IHR5cGUgY29udmVyc2lvbi4iIiIKKworICAg IHJlc3VsdCA9IGNvbm4uc3FsKCJTRUxFQ1QgQVJSQVlbMSwgMiwgMywgNCwgNV0iKQorICAgIGFz c2VydCByZXN1bHQgPT0gWzEsIDIsIDMsIDQsIDVdCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVz dWx0LCBsaXN0KQorICAgIGFzc2VydCBhbGwoaXNpbnN0YW5jZSh4LCBpbnQpIGZvciB4IGluIHJl c3VsdCkKKworCitkZWYgdGVzdF90ZXh0X2FycmF5KGNvbm4pOgorICAgICIiIlRlc3QgdGV4dCBh cnJheSB0eXBlIGNvbnZlcnNpb24uIiIiCisKKyAgICByZXN1bHQgPSBjb25uLnNxbCgiU0VMRUNU IEFSUkFZWydoZWxsbycsICd3b3JsZCcsICd0ZXN0J10iKQorICAgIGFzc2VydCByZXN1bHQgPT0g WyJoZWxsbyIsICJ3b3JsZCIsICJ0ZXN0Il0KKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHQs IGxpc3QpCisgICAgYXNzZXJ0IGFsbChpc2luc3RhbmNlKHgsIHN0cikgZm9yIHggaW4gcmVzdWx0 KQorCisKK2RlZiB0ZXN0X2Jvb2xfYXJyYXkoY29ubik6CisgICAgIiIiVGVzdCBib29sZWFuIGFy cmF5IHR5cGUgY29udmVyc2lvbi4iIiIKKworICAgIHJlc3VsdCA9IGNvbm4uc3FsKCJTRUxFQ1Qg QVJSQVlbdHJ1ZSwgZmFsc2UsIHRydWVdIikKKyAgICBhc3NlcnQgcmVzdWx0ID09IFtUcnVlLCBG YWxzZSwgVHJ1ZV0KKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHQsIGxpc3QpCisgICAgYXNz ZXJ0IGFsbChpc2luc3RhbmNlKHgsIGJvb2wpIGZvciB4IGluIHJlc3VsdCkKKworCitkZWYgdGVz dF9lbXB0eV9hcnJheShjb25uKToKKyAgICAiIiJUZXN0IGVtcHR5IGFycmF5IHR5cGUgY29udmVy c2lvbi4iIiIKKworICAgIHJlc3VsdCA9IGNvbm4uc3FsKCJTRUxFQ1QgQVJSQVlbXTo6aW50W10i KQorICAgIGFzc2VydCByZXN1bHQgPT0gW10KKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHQs IGxpc3QpCisKKworZGVmIHRlc3RfanNvbl90eXBlKGNvbm4pOgorICAgICIiIlRlc3QgSlNPTiB0 eXBlIChwYXJzZWQgdG8gZGljdCkuIiIiCisKKyAgICByZXN1bHQgPSBjb25uLnNxbCgnU0VMRUNU IFwneyJrZXkiOiAidmFsdWUifVwnOjpqc29uJykKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1 bHQsIGRpY3QpCisgICAgYXNzZXJ0IHJlc3VsdCA9PSB7ImtleSI6ICJ2YWx1ZSJ9CisKKworZGVm IHRlc3RfanNvbmJfdHlwZShjb25uKToKKyAgICAiIiJUZXN0IEpTT05CIHR5cGUgKHBhcnNlZCB0 byBkaWN0KS4iIiIKKworICAgIHJlc3VsdCA9IGNvbm4uc3FsKCdTRUxFQ1QgXCd7Im5hbWUiOiAi dGVzdCIsICJjb3VudCI6IDQyfVwnOjpqc29uYicpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVz dWx0LCBkaWN0KQorICAgIGFzc2VydCByZXN1bHQgPT0geyJuYW1lIjogInRlc3QiLCAiY291bnQi OiA0Mn0KKworCitkZWYgdGVzdF9qc29uX2FycmF5KGNvbm4pOgorICAgICIiIlRlc3QgSlNPTiBh cnJheSB0eXBlLiIiIgorCisgICAgcmVzdWx0ID0gY29ubi5zcWwoIlNFTEVDVCAnWzEsIDIsIDMs IDQsIDVdJzo6anNvbiIpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0LCBsaXN0KQorICAg IGFzc2VydCByZXN1bHQgPT0gWzEsIDIsIDMsIDQsIDVdCisKKworZGVmIHRlc3RfanNvbl9uZXN0 ZWQoY29ubik6CisgICAgIiIiVGVzdCBuZXN0ZWQgSlNPTiBvYmplY3QuIiIiCisKKyAgICByZXN1 bHQgPSBjb25uLnNxbCgKKyAgICAgICAgJ1NFTEVDVCBcJ3sidXNlciI6IHsiaWQiOiAxLCAibmFt ZSI6ICJBbGljZSJ9LCAiYWN0aXZlIjogdHJ1ZX1cJzo6anNvbicKKyAgICApCisgICAgYXNzZXJ0 IGlzaW5zdGFuY2UocmVzdWx0LCBkaWN0KQorICAgIGFzc2VydCByZXN1bHQgPT0geyJ1c2VyIjog eyJpZCI6IDEsICJuYW1lIjogIkFsaWNlIn0sICJhY3RpdmUiOiBUcnVlfQorCisKK2RlZiB0ZXN0 X21peGVkX3R5cGVzX3dpdGhfYXJyYXlzKGNvbm4pOgorICAgICIiIlRlc3QgbWl4ZWQgdHlwZXMg aW5jbHVkaW5nIGFycmF5cyBpbiBhIHNpbmdsZSByb3cuIiIiCisKKyAgICByZXN1bHQgPSBjb25u LnNxbCgiU0VMRUNUIDQyLCAndGV4dCcsIEFSUkFZWzEsIDIsIDNdLCB0cnVlIikKKyAgICBhc3Nl cnQgcmVzdWx0ID09ICg0MiwgInRleHQiLCBbMSwgMiwgM10sIFRydWUpCisgICAgYXNzZXJ0IGlz aW5zdGFuY2UocmVzdWx0WzBdLCBpbnQpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0WzFd LCBzdHIpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0WzJdLCBsaXN0KQorICAgIGFzc2Vy dCBpc2luc3RhbmNlKHJlc3VsdFszXSwgYm9vbCkKKworCitkZWYgdGVzdF91dWlkX3R5cGUoY29u bik6CisgICAgIiIiVGVzdCBVVUlEIHR5cGUgY29udmVyc2lvbi4iIiIKKyAgICB0ZXN0X3V1aWQg PSAiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAwIgorICAgIHJlc3VsdCA9IGNv bm4uc3FsKGYiU0VMRUNUICd7dGVzdF91dWlkfSc6OnV1aWQiKQorICAgIGFzc2VydCByZXN1bHQg PT0gdXVpZC5VVUlEKHRlc3RfdXVpZCkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHQsIHV1 aWQuVVVJRCkKKworCitkZWYgdGVzdF91dWlkX2dlbmVyYXRpb24oY29ubik6CisgICAgIiIiVGVz dCBnZW5lcmF0ZWQgVVVJRCB0eXBlIGNvbnZlcnNpb24uIiIiCisgICAgcmVzdWx0ID0gY29ubi5z cWwoIlNFTEVDVCB1dWlkdjQoKSIpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0LCB1dWlk LlVVSUQpCisgICAgIyBDaGVjayBpdCdzIGEgdmFsaWQgVVVJRCBieSBlbnN1cmluZyBpdCBjYW4g YmUgY29udmVydGVkIHRvIHN0cmluZworICAgIGFzc2VydCBsZW4oc3RyKHJlc3VsdCkpID09IDM2 ICAjIFVVSUQgc3RyaW5nIGZvcm1hdCBsZW5ndGgKKworCitkZWYgdGVzdF90ZXh0X2FycmF5X3dp dGhfY29tbWFzKGNvbm4pOgorICAgICIiIlRlc3QgdGV4dCBhcnJheSB3aXRoIGVsZW1lbnRzIGNv bnRhaW5pbmcgY29tbWFzLiIiIgorCisgICAgcmVzdWx0ID0gY29ubi5zcWwoIlNFTEVDVCBBUlJB WVsnQSxCJywgJ0MnLCAnIEQgJ10iKQorICAgIGFzc2VydCByZXN1bHQgPT0gWyJBLEIiLCAiQyIs ICIgRCAiXQorCisKK2RlZiB0ZXN0X3RleHRfYXJyYXlfd2l0aF9xdW90ZXMoY29ubik6CisgICAg IiIiVGVzdCB0ZXh0IGFycmF5IHdpdGggZWxlbWVudHMgY29udGFpbmluZyBxdW90ZXMuIiIiCisK KyAgICByZXN1bHQgPSBjb25uLnNxbChyIlNFTEVDVCBBUlJBWVtFJ2FcImInLCAnYyddIikKKyAg ICBhc3NlcnQgcmVzdWx0ID09IFsnYSJiJywgImMiXQorCisKK2RlZiB0ZXN0X3RleHRfYXJyYXlf d2l0aF9iYWNrc2xhc2goY29ubik6CisgICAgIiIiVGVzdCB0ZXh0IGFycmF5IHdpdGggZWxlbWVu dHMgY29udGFpbmluZyBiYWNrc2xhc2hlcy4iIiIKKworICAgIHJlc3VsdCA9IGNvbm4uc3FsKHIi U0VMRUNUIEFSUkFZW0UnYVxcYicsICdjJ10iKQorICAgIGFzc2VydCByZXN1bHQgPT0gWyJhXFxi IiwgImMiXQorCisKK2RlZiB0ZXN0X2pzb25fYXJyYXlfdHlwZShjb25uKToKKyAgICAiIiJUZXN0 IGFycmF5IG9mIEpTT04gdmFsdWVzIHdpdGggZW1iZWRkZWQgcXVvdGVzIGFuZCBjb21tYXMuIiIi CisKKyAgICByZXN1bHQgPSBjb25uLnNxbCgiIiJTRUxFQ1QgQVJSQVlbJ3siYWJjIjogMTIzLCAi eHl6IjogNDU2fSc6Ompzb25dIiIiKQorICAgIGFzc2VydCByZXN1bHQgPT0gW3siYWJjIjogMTIz LCAieHl6IjogNDU2fV0KKworCitkZWYgdGVzdF9qc29uX2FycmF5X211bHRpcGxlKGNvbm4pOgor ICAgICIiIlRlc3QgYXJyYXkgb2YgbXVsdGlwbGUgSlNPTiBvYmplY3RzLiIiIgorCisgICAgcmVz dWx0ID0gY29ubi5zcWwoCisgICAgICAgICIiIlNFTEVDVCBBUlJBWVsneyJhIjogMX0nOjpqc29u LCAneyJiIjogMn0nOjpqc29uLCAnWyJ4IiwgInkiXSc6Ompzb25dIiIiCisgICAgKQorICAgIGFz c2VydCByZXN1bHQgPT0gW3siYSI6IDF9LCB7ImIiOiAyfSwgWyJ4IiwgInkiXV0KKworCitkZWYg dGVzdF8yZF9pbnRfYXJyYXkoY29ubik6CisgICAgIiIiVGVzdCAyRCBpbnRlZ2VyIGFycmF5LiIi IgorCisgICAgcmVzdWx0ID0gY29ubi5zcWwoIlNFTEVDVCBBUlJBWVtbMSwyXSxbMyw0XV0iKQor ICAgIGFzc2VydCByZXN1bHQgPT0gW1sxLCAyXSwgWzMsIDRdXQorCisKK2RlZiB0ZXN0XzJkX3Rl eHRfYXJyYXkoY29ubik6CisgICAgIiIiVGVzdCAyRCBpbnRlZ2VyIGFycmF5LiIiIgorCisgICAg cmVzdWx0ID0gY29ubi5zcWwoIlNFTEVDVCBBUlJBWVtbJ2EnLCdiJ10sWydjJywnZCxlJ11dIikK KyAgICBhc3NlcnQgcmVzdWx0ID09IFtbImEiLCAiYiJdLCBbImMiLCAiZCxlIl1dCisKKworZGVm IHRlc3RfM2RfaW50X2FycmF5KGNvbm4pOgorICAgICIiIlRlc3QgM0QgaW50ZWdlciBhcnJheS4i IiIKKworICAgIHJlc3VsdCA9IGNvbm4uc3FsKCJTRUxFQ1QgQVJSQVlbW1sxLDJdLFszLDRdXSxb WzUsNl0sWzcsOF1dXSIpCisgICAgYXNzZXJ0IHJlc3VsdCA9PSBbW1sxLCAyXSwgWzMsIDRdXSwg W1s1LCA2XSwgWzcsIDhdXV0KKworCitkZWYgdGVzdF9hcnJheV93aXRoX251bGwoY29ubik6Cisg ICAgIiIiVGVzdCBhcnJheSB3aXRoIE5VTEwgZWxlbWVudHMuIiIiCisKKyAgICByZXN1bHQgPSBj b25uLnNxbCgiU0VMRUNUIEFSUkFZWzEsIE5VTEwsIDNdIikKKyAgICBhc3NlcnQgcmVzdWx0ID09 IFsxLCBOb25lLCAzXQpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL2dlbmVyYXRlX3B5dGVzdF9saWJw cV9lcnJvcnMucHkgYi9zcmMvdG9vbHMvZ2VuZXJhdGVfcHl0ZXN0X2xpYnBxX2Vycm9ycy5weQpu ZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMC4uYmE5Mjg5MWMxN2EKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvdG9vbHMvZ2VuZXJhdGVfcHl0ZXN0X2xpYnBxX2Vycm9ycy5weQpA QCAtMCwwICsxLDE0NyBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMworIyBDb3B5cmlnaHQgKGMp IDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKKyIiIgorR2VuZXJh dGUgc3JjL3Rlc3QvcHl0ZXN0L2xpYnBxL19nZW5lcmF0ZWRfZXJyb3JzLnB5IGZyb20gZXJyY29k ZXMudHh0LgorIiIiCisKK2ltcG9ydCBzeXMKK2Zyb20gcGF0aGxpYiBpbXBvcnQgUGF0aAorCisK K0FDUk9OWU1TID0geyJzcWwiLCAiZmR3In0KK1dPUkRfTUFQID0geworICAgICJzcWxjbGllbnQi OiAiU1FMQ2xpZW50IiwKKyAgICAic3Fsc2VydmVyIjogIlNRTFNlcnZlciIsCisgICAgInNxbGNv bm5lY3Rpb24iOiAiU1FMQ29ubmVjdGlvbiIsCit9CisKKworZGVmIHNuYWtlX3RvX3Bhc2NhbChu YW1lOiBzdHIpIC0+IHN0cjoKKyAgICAiIiJDb252ZXJ0IHNuYWtlX2Nhc2UgdG8gUGFzY2FsQ2Fz ZSwga2VlcGluZyBhY3JvbnltcyB1cHBlcmNhc2UuIiIiCisgICAgd29yZHMgPSBbXQorICAgIGZv ciB3b3JkIGluIG5hbWUuc3BsaXQoIl8iKToKKyAgICAgICAgaWYgd29yZCBpbiBXT1JEX01BUDoK KyAgICAgICAgICAgIHdvcmRzLmFwcGVuZChXT1JEX01BUFt3b3JkXSkKKyAgICAgICAgZWxpZiB3 b3JkIGluIEFDUk9OWU1TOgorICAgICAgICAgICAgd29yZHMuYXBwZW5kKHdvcmQudXBwZXIoKSkK KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHdvcmRzLmFwcGVuZCh3b3JkLmNhcGl0YWxpemUo KSkKKyAgICByZXR1cm4gIiIuam9pbih3b3JkcykKKworCitkZWYgcGFyc2VfZXJyY29kZXMocGF0 aDogUGF0aCk6CisgICAgIiIiUGFyc2UgZXJyY29kZXMudHh0IGFuZCByZXR1cm4gbGlzdCBvZiAo c3Fsc3RhdGUsIG1hY3JvX25hbWUsIHNwZWNfbmFtZSkgdHVwbGVzLiIiIgorICAgIGVycm9ycyA9 IFtdCisKKyAgICB3aXRoIG9wZW4ocGF0aCkgYXMgZjoKKyAgICAgICAgZm9yIGxpbmUgaW4gZjoK KyAgICAgICAgICAgIHBhcnRzID0gbGluZS5zcGxpdCgpCisgICAgICAgICAgICBpZiBsZW4ocGFy dHMpID49IDQgYW5kIGxlbihwYXJ0c1swXSkgPT0gNToKKyAgICAgICAgICAgICAgICBzcWxzdGF0 ZSwgXywgbWFjcm9fbmFtZSwgc3BlY19uYW1lID0gcGFydHNbOjRdCisgICAgICAgICAgICAgICAg ZXJyb3JzLmFwcGVuZCgoc3Fsc3RhdGUsIG1hY3JvX25hbWUsIHNwZWNfbmFtZSkpCisKKyAgICBy ZXR1cm4gZXJyb3JzCisKKworZGVmIG1hY3JvX3RvX2NsYXNzX25hbWUobWFjcm9fbmFtZTogc3Ry KSAtPiBzdHI6CisgICAgIiIiQ29udmVydCBFUlJDT0RFX0ZPT19CQVIgdG8gRm9vQmFyLiIiIgor ICAgIG5hbWUgPSBtYWNyb19uYW1lLnJlbW92ZXByZWZpeCgiRVJSQ09ERV8iKQorICAgICMgTW92 ZSBXQVJOSU5HIHByZWZpeCB0byB0aGUgZW5kIGFzIGEgc3VmZml4CisgICAgaWYgbmFtZS5zdGFy dHN3aXRoKCJXQVJOSU5HXyIpOgorICAgICAgICBuYW1lID0gbmFtZS5yZW1vdmVwcmVmaXgoIldB Uk5JTkdfIikgKyAiX1dBUk5JTkciCisgICAgcmV0dXJuIHNuYWtlX3RvX3Bhc2NhbChuYW1lLmxv d2VyKCkpCisKKworZGVmIGdlbmVyYXRlX2Vycm9ycyhlcnJjb2Rlc19wYXRoOiBQYXRoKToKKyAg ICAiIiJHZW5lcmF0ZSB0aGUgX2dlbmVyYXRlZF9lcnJvcnMucHkgY29udGVudC4iIiIKKyAgICBl cnJvcnMgPSBwYXJzZV9lcnJjb2RlcyhlcnJjb2Rlc19wYXRoKQorCisgICAgIyBGaW5kIHNwZWNf bmFtZXMgdGhhdCBhcHBlYXIgbW9yZSB0aGFuIG9uY2UgKGNvbGxpc2lvbnMpCisgICAgc3BlY19u YW1lX2NvdW50czogZGljdFtzdHIsIGludF0gPSB7fQorICAgIGZvciBfLCBfLCBzcGVjX25hbWUg aW4gZXJyb3JzOgorICAgICAgICBzcGVjX25hbWVfY291bnRzW3NwZWNfbmFtZV0gPSBzcGVjX25h bWVfY291bnRzLmdldChzcGVjX25hbWUsIDApICsgMQorICAgIGNvbGxpZGluZ19zcGVjX25hbWVz ID0geworICAgICAgICBuYW1lIGZvciBuYW1lLCBjb3VudCBpbiBzcGVjX25hbWVfY291bnRzLml0 ZW1zKCkgaWYgY291bnQgPiAxCisgICAgfQorCisgICAgbGluZXMgPSBbCisgICAgICAgICIjIENv cHlyaWdodCAoYykgMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAiLAor ICAgICAgICAiIyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IHNyYy90b29scy9nZW5lcmF0ZV9w eXRlc3RfbGlicHFfZXJyb3JzLnB5IC0gZG8gbm90IGVkaXQgZGlyZWN0bHkuIiwKKyAgICAgICAg IiIsCisgICAgICAgICciIiInLAorICAgICAgICAiR2VuZXJhdGVkIFBvc3RncmVTUUwgZXJyb3Ig Y2xhc3NlcyBtYXBwZWQgZnJvbSBTUUxTVEFURSBjb2Rlcy4iLAorICAgICAgICAnIiIiJywKKyAg ICAgICAgIiIsCisgICAgICAgICJmcm9tIHR5cGluZyBpbXBvcnQgRGljdCIsCisgICAgICAgICIi LAorICAgICAgICAiZnJvbSAuX2Vycm9yX2Jhc2UgaW1wb3J0IExpYnBxRXJyb3IsIExpYnBxV2Fy bmluZyIsCisgICAgICAgICIiLAorICAgICAgICAiIiwKKyAgICBdCisKKyAgICBnZW5lcmF0ZWRf Y2xhc3NlcyA9IHsiTGlicHFFcnJvciJ9CisgICAgc3Fsc3RhdGVfdG9fZXhjZXB0aW9uID0ge30K KworICAgIGZvciBzcWxzdGF0ZSwgbWFjcm9fbmFtZSwgc3BlY19uYW1lIGluIGVycm9yczoKKyAg ICAgICAgIyAwMDAgZXJyb3JzIGRlZmluZSB0aGUgcGFyZW50IGNsYXNzIGZvciBhbGwgZXJyb3Jz IGluIHRoaXMgU1FMU1RBVEUgY2xhc3MKKyAgICAgICAgaWYgc3Fsc3RhdGUuZW5kc3dpdGgoIjAw MCIpOgorICAgICAgICAgICAgZXhjX25hbWUgPSBzbmFrZV90b19wYXNjYWwoc3BlY19uYW1lKQor ICAgICAgICAgICAgaWYgZXhjX25hbWUgPT0gIldhcm5pbmciOgorICAgICAgICAgICAgICAgIHBh cmVudCA9ICJMaWJwcVdhcm5pbmciCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg IHBhcmVudCA9ICJMaWJwcUVycm9yIgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgc3Bl Y19uYW1lIGluIGNvbGxpZGluZ19zcGVjX25hbWVzOgorICAgICAgICAgICAgICAgIGV4Y19uYW1l ID0gbWFjcm9fdG9fY2xhc3NfbmFtZShtYWNyb19uYW1lKQorICAgICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICAgICBleGNfbmFtZSA9IHNuYWtlX3RvX3Bhc2NhbChzcGVjX25hbWUpCisgICAg ICAgICAgICAjIFVzZSBwYXJlbnQgY2xhc3MgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgTGlicHFF cnJvcgorICAgICAgICAgICAgcGFyZW50ID0gc3Fsc3RhdGVfdG9fZXhjZXB0aW9uLmdldChzcWxz dGF0ZVs6Ml0gKyAiMDAwIiwgIkxpYnBxRXJyb3IiKQorICAgICAgICAgICAgIyBXYXJuaW5ncyBz aG91bGQgZW5kIHdpdGggIldhcm5pbmciCisgICAgICAgICAgICBpZiBwYXJlbnQgPT0gIldhcm5p bmciIGFuZCBub3QgZXhjX25hbWUuZW5kc3dpdGgoIldhcm5pbmciKToKKyAgICAgICAgICAgICAg ICBleGNfbmFtZSArPSAiV2FybmluZyIKKworICAgICAgICBnZW5lcmF0ZWRfY2xhc3Nlcy5hZGQo ZXhjX25hbWUpCisgICAgICAgIHNxbHN0YXRlX3RvX2V4Y2VwdGlvbltzcWxzdGF0ZV0gPSBleGNf bmFtZQorICAgICAgICBsaW5lcy5leHRlbmQoCisgICAgICAgICAgICBbCisgICAgICAgICAgICAg ICAgZiJjbGFzcyB7ZXhjX25hbWV9KHtwYXJlbnR9KToiLAorICAgICAgICAgICAgICAgIGYnICAg ICIiIlNRTFNUQVRFIHtzcWxzdGF0ZX0gLSB7c3BlY19uYW1lLnJlcGxhY2UoIl8iLCAiICIpfS4i IiInLAorICAgICAgICAgICAgICAgICIiLAorICAgICAgICAgICAgICAgICIgICAgcGFzcyIsCisg ICAgICAgICAgICAgICAgIiIsCisgICAgICAgICAgICAgICAgIiIsCisgICAgICAgICAgICBdCisg ICAgICAgICkKKworICAgIGxpbmVzLmFwcGVuZCgiU1FMU1RBVEVfVE9fRVhDRVBUSU9OOiBEaWN0 W3N0ciwgdHlwZV0gPSB7IikKKyAgICBmb3Igc3Fsc3RhdGUsIGV4Y19uYW1lIGluIHNxbHN0YXRl X3RvX2V4Y2VwdGlvbi5pdGVtcygpOgorICAgICAgICBsaW5lcy5hcHBlbmQoZicgICAgIntzcWxz dGF0ZX0iOiB7ZXhjX25hbWV9LCcpCisgICAgbGluZXMuZXh0ZW5kKFsifSIsICIiLCAiIl0pCisK KyAgICBhbGxfZXhwb3J0cyA9IGxpc3QoZ2VuZXJhdGVkX2NsYXNzZXMpICsgWyJTUUxTVEFURV9U T19FWENFUFRJT04iXQorICAgIGxpbmVzLmFwcGVuZCgiX19hbGxfXyA9IFsiKQorICAgIGZvciBu YW1lIGluIGFsbF9leHBvcnRzOgorICAgICAgICBsaW5lcy5hcHBlbmQoZicgICAgIntuYW1lfSIs JykKKyAgICBsaW5lcy5hcHBlbmQoIl0iKQorCisgICAgcmV0dXJuICJcbiIuam9pbihsaW5lcykg KyAiXG4iCisKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICBzY3JpcHRfZGlyID0g UGF0aChfX2ZpbGVfXykucmVzb2x2ZSgpLnBhcmVudAorICAgIHNyY19yb290ID0gc2NyaXB0X2Rp ci5wYXJlbnQucGFyZW50CisKKyAgICBlcnJjb2Rlc19wYXRoID0gc3JjX3Jvb3QgLyAic3JjIiAv ICJiYWNrZW5kIiAvICJ1dGlscyIgLyAiZXJyY29kZXMudHh0IgorICAgIG91dHB1dF9wYXRoID0g KAorICAgICAgICBzcmNfcm9vdCAvICJzcmMiIC8gInRlc3QiIC8gInB5dGVzdCIgLyAibGlicHEi IC8gIl9nZW5lcmF0ZWRfZXJyb3JzLnB5IgorICAgICkKKworICAgIGlmIG5vdCBlcnJjb2Rlc19w YXRoLmV4aXN0cygpOgorICAgICAgICBwcmludChmIkVycm9yOiB7ZXJyY29kZXNfcGF0aH0gbm90 IGZvdW5kIiwgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICBzeXMuZXhpdCgxKQorCisgICAgb3V0 cHV0ID0gZ2VuZXJhdGVfZXJyb3JzKGVycmNvZGVzX3BhdGgpCisgICAgb3V0cHV0X3BhdGgud3Jp dGVfdGV4dChvdXRwdXQpCisgICAgcHJpbnQoZiJHZW5lcmF0ZWQge291dHB1dF9wYXRofSIpCi0t IAoyLjUyLjAKCg== --96ced96246521a62ba81864c53b3a5475cc189cbc0ad0bfdf74d8b032f52 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v6-0005-Convert-load-balance-tests-from-perl-to-python.patch Content-Type: text/x-patch; charset=utf-8; name=v6-0005-Convert-load-balance-tests-from-perl-to-python.patch RnJvbSBjNjJkY2FlNGNjMjliN2E5ZTM1ZGJkM2U3YWRlZDk5ZjIxZGJjOWQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBGcmksIDI2IERlYyAyMDI1IDEyOjMxOjQzICswMTAwClN1YmplY3Q6IFtQQVRDSCB2 NiA1LzddIENvbnZlcnQgbG9hZCBiYWxhbmNlIHRlc3RzIGZyb20gcGVybCB0byBweXRob24KCi0t LQogc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAxICsK IHNyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkICAgICAgICAgICAgICB8ICAgNyArLQog c3JjL2ludGVyZmFjZXMvbGlicHEvcHl0L3Rlc3RfbG9hZF9iYWxhbmNlLnB5IHwgMTcwICsrKysr KysrKysrKysrKysrKwogLi4uL2xpYnBxL3QvMDAzX2xvYWRfYmFsYW5jZV9ob3N0X2xpc3QucGwg ICAgIHwgIDk0IC0tLS0tLS0tLS0KIC4uLi9saWJwcS90LzAwNF9sb2FkX2JhbGFuY2VfZG5zLnBs ICAgICAgICAgICB8IDE0NCAtLS0tLS0tLS0tLS0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgMTc2IGlu c2VydGlvbnMoKyksIDI0MCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW50 ZXJmYWNlcy9saWJwcS9weXQvdGVzdF9sb2FkX2JhbGFuY2UucHkKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmMvaW50ZXJmYWNlcy9saWJwcS90LzAwM19sb2FkX2JhbGFuY2VfaG9zdF9saXN0LnBsCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjL2ludGVyZmFjZXMvbGlicHEvdC8wMDRfbG9hZF9iYWxhbmNl X2Rucy5wbAoKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL01ha2VmaWxlIGIvc3Jj L2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUKaW5kZXggOWZlMzIxMTQ3ZmMuLjQxZWE4OGM3Mzg4 IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZQorKysgYi9zcmMvaW50 ZXJmYWNlcy9saWJwcS9NYWtlZmlsZQpAQCAtMTY3LDYgKzE2Nyw3IEBAIGNoZWNrIGluc3RhbGxj aGVjazogZXhwb3J0IFBBVEggOj0gJChDVVJESVIpL3Rlc3Q6JChQQVRIKQogCiBjaGVjazogdGVz dC1idWlsZCBhbGwKIAkkKHByb3ZlX2NoZWNrKQorCSQocHl0ZXN0X2NoZWNrKQogCiBpbnN0YWxs Y2hlY2s6IHRlc3QtYnVpbGQgYWxsCiAJJChwcm92ZV9pbnN0YWxsY2hlY2spCmRpZmYgLS1naXQg YS9zcmMvaW50ZXJmYWNlcy9saWJwcS9tZXNvbi5idWlsZCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBx L21lc29uLmJ1aWxkCmluZGV4IGIyNTljOTk4ZmEyLi42ZDYyYWMxN2VkYiAxMDA2NDQKLS0tIGEv c3JjL2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQKKysrIGIvc3JjL2ludGVyZmFjZXMvbGli cHEvbWVzb24uYnVpbGQKQEAgLTE1MCw4ICsxNTAsNiBAQCB0ZXN0cyArPSB7CiAgICAgJ3Rlc3Rz JzogWwogICAgICAgJ3QvMDAxX3VyaS5wbCcsCiAgICAgICAndC8wMDJfYXBpLnBsJywKLSAgICAg ICd0LzAwM19sb2FkX2JhbGFuY2VfaG9zdF9saXN0LnBsJywKLSAgICAgICd0LzAwNF9sb2FkX2Jh bGFuY2VfZG5zLnBsJywKICAgICAgICd0LzAwNV9uZWdvdGlhdGVfZW5jcnlwdGlvbi5wbCcsCiAg ICAgICAndC8wMDZfc2VydmljZS5wbCcsCiAgICAgXSwKQEAgLTE2Miw2ICsxNjAsMTEgQEAgdGVz dHMgKz0gewogICAgIH0sCiAgICAgJ2RlcHMnOiBsaWJwcV90ZXN0X2RlcHMsCiAgIH0sCisgICdw eXRlc3QnOiB7CisgICAgJ3Rlc3RzJzogWworICAgICAgJ3B5dC90ZXN0X2xvYWRfYmFsYW5jZS5w eScsCisgICAgXSwKKyAgfSwKIH0KIAogc3ViZGlyKCdwbycsIGlmX2ZvdW5kOiBsaWJpbnRsKQpk aWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvcHl0L3Rlc3RfbG9hZF9iYWxhbmNlLnB5 IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvcHl0L3Rlc3RfbG9hZF9iYWxhbmNlLnB5Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wYWY0NmQ4ZjM3ZAotLS0gL2Rldi9udWxs CisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3B5dC90ZXN0X2xvYWRfYmFsYW5jZS5weQpAQCAt MCwwICsxLDE3MCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERl dmVsb3BtZW50IEdyb3VwCisKKyIiIgorVGVzdHMgZm9yIGxvYWRfYmFsYW5jZV9ob3N0cyBjb25u ZWN0aW9uIHBhcmFtZXRlci4KKworVGhlc2UgdGVzdHMgdmVyaWZ5IHRoYXQgbGlicHEgY29ycmVj dGx5IGhhbmRsZXMgbG9hZCBiYWxhbmNpbmcgYWNyb3NzIG11bHRpcGxlCitQb3N0Z3JlU1FMIHNl cnZlcnMgc3BlY2lmaWVkIGluIHRoZSBjb25uZWN0aW9uIHN0cmluZy4KKyIiIgorCitpbXBvcnQg cGxhdGZvcm0KK2ltcG9ydCByZQorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gbGlicHEgaW1wb3J0 IExpYnBxRXJyb3IKK2ltcG9ydCBweXBnCisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1 bGUiKQorZGVmIGxvYWRfYmFsYW5jZV9ub2Rlc19ob3N0bGlzdChjcmVhdGVfcGdfbW9kdWxlKToK KyAgICAiIiIKKyAgICBDcmVhdGUgMyBQb3N0Z3JlU1FMIG5vZGVzIHdpdGggZGlmZmVyZW50IHNv Y2tldCBkaXJlY3Rvcmllcy4KKworICAgIEVhY2ggbm9kZSBoYXMgaXRzIG93biBVbml4IHNvY2tl dCBkaXJlY3RvcnkgZm9yIGlzb2xhdGlvbi4KKyAgICBSZXR1cm5zIGEgdHVwbGUgb2YgKG5vZGVz LCBjb25uZWN0KS4KKyAgICAiIiIKKyAgICBub2RlcyA9IFtjcmVhdGVfcGdfbW9kdWxlKCkgZm9y IF8gaW4gcmFuZ2UoMyldCisKKyAgICBob3N0bGlzdCA9ICIsIi5qb2luKG5vZGUuaG9zdCBmb3Ig bm9kZSBpbiBub2RlcykKKyAgICBwb3J0bGlzdCA9ICIsIi5qb2luKHN0cihub2RlLnBvcnQpIGZv ciBub2RlIGluIG5vZGVzKQorCisgICAgZGVmIGNvbm5lY3QoKiprd2FyZ3MpOgorICAgICAgICBy ZXR1cm4gbm9kZXNbMF0uY29ubmVjdChob3N0PWhvc3RsaXN0LCBwb3J0PXBvcnRsaXN0LCAqKmt3 YXJncykKKworICAgIHJldHVybiBub2RlcywgY29ubmVjdAorCisKK0BweXRlc3QuZml4dHVyZShz Y29wZT0ibW9kdWxlIikKK2RlZiBsb2FkX2JhbGFuY2Vfbm9kZXNfZG5zKGNyZWF0ZV9wZ19tb2R1 bGUpOgorICAgICIiIgorICAgIENyZWF0ZSAzIFBvc3RncmVTUUwgbm9kZXMgb24gdGhlIHNhbWUg cG9ydCBidXQgZGlmZmVyZW50IElQIGFkZHJlc3Nlcy4KKworICAgIFVzZXMgMTI3LjAuMC4xLCAx MjcuMC4wLjIsIDEyNy4wLjAuMyB3aXRoIGEgc2hhcmVkIHBvcnQsIHNvIHRoYXQKKyAgICBjb25u ZWN0aW9ucyB0byAncGctbG9hZGJhbGFuY2V0ZXN0JyBjYW4gYmUgbG9hZCBiYWxhbmNlZCB2aWEg RE5TLgorCisgICAgU2luY2Ugc2V0dGluZyB1cCBhIEROUyBzZXJ2ZXIgaXMgbW9yZSBlZmZvcnQg dGhhbiB3ZSBjb25zaWRlciByZWFzb25hYmxlIHRvCisgICAgcnVuIHRoaXMgdGVzdCwgdGhpcyBz aXR1YXRpb24gaXMgaW5zdGVhZCBpbWl0YXRlZCBieSB1c2luZyBhIGhvc3RzIGZpbGUKKyAgICB3 aGVyZSBhIHNpbmdsZSBob3N0bmFtZSBtYXBzIHRvIG11bHRpcGxlIGRpZmZlcmVudCBJUCBhZGRy ZXNzZXMuIFRoaXMgdGVzdAorICAgIHJlcXVpcmVzIHRoZSBhZG1pbmlzdHJhdG9yIHRvIGFkZCB0 aGUgZm9sbG93aW5nIGxpbmVzIHRvIHRoZSBob3N0cyBmaWxlIChpZgorICAgIHdlIGRldGVjdCB0 aGF0IHRoaXMgaGFzbid0IGhhcHBlbmVkIHdlIHNraXAgdGhlIHRlc3QpOgorCisgICAgMTI3LjAu MC4xIHBnLWxvYWRiYWxhbmNldGVzdAorICAgIDEyNy4wLjAuMiBwZy1sb2FkYmFsYW5jZXRlc3QK KyAgICAxMjcuMC4wLjMgcGctbG9hZGJhbGFuY2V0ZXN0CisKKyAgICBXaW5kb3dzIG9yIExpbnV4 IGFyZSByZXF1aXJlZCB0byBydW4gdGhpcyB0ZXN0IGJlY2F1c2UgdGhlc2UgT1NlcyBhbGxvdwor ICAgIGJpbmRpbmcgdG8gMTI3LjAuMC4yIGFuZCAxMjcuMC4wLjMgYWRkcmVzc2VzIGJ5IGRlZmF1 bHQsIGJ1dCBvdGhlciBPU2VzCisgICAgZG9uJ3QuIFdlIG5lZWQgdG8gYmluZCB0byBkaWZmZXJl bnQgSVAgYWRkcmVzc2VzLCBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlc2UKKyAgICBkaWZmZXJlbnQg SVAgYWRkcmVzc2VzIGluIHRoZSBob3N0cyBmaWxlLgorCisgICAgVGhlIGhvc3RzIGZpbGUgbmVl ZHMgdG8gYmUgcHJlcGFyZWQgYmVmb3JlIHJ1bm5pbmcgdGhpcyB0ZXN0LiBXZSBkb24ndCBkbwor ICAgIGl0IG9uIHRoZSBmbHksIGJlY2F1c2UgaXQgcmVxdWlyZXMgcm9vdCBwZXJtaXNzaW9ucyB0 byBjaGFuZ2UgdGhlIGhvc3RzCisgICAgZmlsZS4gSW4gQ0kgd2Ugc2V0IHVwIHRoZSBwcmV2aW91 c2x5IG1lbnRpb25lZCBydWxlcyBpbiB0aGUgaG9zdHMgZmlsZSwgc28KKyAgICB0aGF0IHRoaXMg bG9hZCBiYWxhbmNpbmcgbWV0aG9kIGlzIHRlc3RlZC4KKworICAgIFJlcXVpcmVzIFBHX1RFU1Rf RVhUUkE9bG9hZF9iYWxhbmNlIGJlY2F1c2UgaXQgcmVxdWlyZXMgdGhpcyBtYW51YWwgaG9zdHMK KyAgICBmaWxlIGNvbmZpZ3VyYXRpb24gYW5kIGFsc28gdXNlcyBUQ1Agd2l0aCB0cnVzdCBhdXRo LCB3aGljaCBpcyBwb3RlbnRpYWxseQorICAgIHVuc2FmZSBvbiBtdWx0aXVzZXIgc3lzdGVtcy4K KyAgICAiIiIKKyAgICBweXBnLnNraXBfdW5sZXNzX3Rlc3RfZXh0cmFzKCJsb2FkX2JhbGFuY2Ui KQorCisgICAgaWYgcGxhdGZvcm0uc3lzdGVtKCkgbm90IGluICgiTGludXgiLCAiV2luZG93cyIp OgorICAgICAgICBweXRlc3Quc2tpcCgiRE5TIGxvYWQgYmFsYW5jZSB0ZXN0IG9ubHkgc3VwcG9y dGVkIG9uIExpbnV4IGFuZCBXaW5kb3dzIikKKworICAgIGlmIHBsYXRmb3JtLnN5c3RlbSgpID09 ICJXaW5kb3dzIjoKKyAgICAgICAgaG9zdHNfcGF0aCA9IHIiYzpcV2luZG93c1xTeXN0ZW0zMlxE cml2ZXJzXGV0Y1xob3N0cyIKKyAgICBlbHNlOgorICAgICAgICBob3N0c19wYXRoID0gIi9ldGMv aG9zdHMiCisKKyAgICB0cnk6CisgICAgICAgIHdpdGggb3Blbihob3N0c19wYXRoKSBhcyBmOgor ICAgICAgICAgICAgaG9zdHNfY29udGVudCA9IGYucmVhZCgpCisgICAgZXhjZXB0IChPU0Vycm9y LCBJT0Vycm9yKToKKyAgICAgICAgcHl0ZXN0LnNraXAoZiJDb3VsZCBub3QgcmVhZCBob3N0cyBm aWxlOiB7aG9zdHNfcGF0aH0iKQorCisgICAgY291bnQgPSBsZW4ocmUuZmluZGFsbChyIjEyN1wu MFwuMFwuWzEtM11ccytwZy1sb2FkYmFsYW5jZXRlc3QiLCBob3N0c19jb250ZW50KSkKKyAgICBp ZiBjb3VudCAhPSAzOgorICAgICAgICBweXRlc3Quc2tpcCgiaG9zdHMgZmlsZSBub3QgcHJlcGFy ZWQgZm9yIEROUyBsb2FkIGJhbGFuY2UgdGVzdCIpCisKKyAgICBmaXJzdF9ub2RlID0gY3JlYXRl X3BnX21vZHVsZShob3N0YWRkcj0iMTI3LjAuMC4xIikKKyAgICBub2RlcyA9IFsKKyAgICAgICAg Zmlyc3Rfbm9kZSwKKyAgICAgICAgY3JlYXRlX3BnX21vZHVsZShob3N0YWRkcj0iMTI3LjAuMC4y IiwgcG9ydD1maXJzdF9ub2RlLnBvcnQpLAorICAgICAgICBjcmVhdGVfcGdfbW9kdWxlKGhvc3Rh ZGRyPSIxMjcuMC4wLjMiLCBwb3J0PWZpcnN0X25vZGUucG9ydCksCisgICAgXQorCisgICAgIyBB bGxvdyB0cnVzdCBhdXRoZW50aWNhdGlvbiBmb3IgVENQIGNvbm5lY3Rpb25zIGZyb20gbG9vcGJh Y2sKKyAgICBmb3Igbm9kZSBpbiBub2RlczoKKyAgICAgICAgaGJhX3BhdGggPSBub2RlLmRhdGFk aXIgLyAicGdfaGJhLmNvbmYiCisgICAgICAgIHdpdGggb3BlbihoYmFfcGF0aCwgInIiKSBhcyBm OgorICAgICAgICAgICAgb3JpZ2luYWxfY29udGVudCA9IGYucmVhZCgpCisgICAgICAgIHdpdGgg b3BlbihoYmFfcGF0aCwgInciKSBhcyBmOgorICAgICAgICAgICAgZi53cml0ZSgiaG9zdCBhbGwg YWxsIDEyNy4wLjAuMC84IHRydXN0XG4iKQorICAgICAgICAgICAgZi53cml0ZShvcmlnaW5hbF9j b250ZW50KQorICAgICAgICBub2RlLnBnX2N0bCgicmVsb2FkIikKKworICAgIGRlZiBjb25uZWN0 KCoqa3dhcmdzKToKKyAgICAgICAgcmV0dXJuIG5vZGVzWzBdLmNvbm5lY3QoaG9zdD0icGctbG9h ZGJhbGFuY2V0ZXN0IiwgKiprd2FyZ3MpCisKKyAgICByZXR1cm4gbm9kZXMsIGNvbm5lY3QKKwor CitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsIHBhcmFtcz1bImhvc3RsaXN0IiwgImRu cyJdKQorZGVmIGxvYWRfYmFsYW5jZV9ub2RlcyhyZXF1ZXN0KToKKyAgICAiIiIKKyAgICBQYXJh bWV0cml6ZWQgZml4dHVyZSBwcm92aWRpbmcgYm90aCBsb2FkIGJhbGFuY2luZyB0ZXN0IGVudmly b25tZW50cy4KKyAgICAiIiIKKyAgICByZXR1cm4gcmVxdWVzdC5nZXRmaXh0dXJldmFsdWUoZiJs b2FkX2JhbGFuY2Vfbm9kZXNfe3JlcXVlc3QucGFyYW19IikKKworCitkZWYgdGVzdF9sb2FkX2Jh bGFuY2VfaG9zdHNfaW52YWxpZF92YWx1ZShsb2FkX2JhbGFuY2Vfbm9kZXMpOgorICAgICIiImxv YWRfYmFsYW5jZV9ob3N0cyBkb2Vzbid0IGFjY2VwdCB1bmtub3duIHZhbHVlcy4iIiIKKyAgICBf LCBjb25uZWN0ID0gbG9hZF9iYWxhbmNlX25vZGVzCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMo CisgICAgICAgIExpYnBxRXJyb3IsIG1hdGNoPSdpbnZhbGlkIGxvYWRfYmFsYW5jZV9ob3N0cyB2 YWx1ZTogImRvZXNub3RleGlzdCInCisgICAgKToKKyAgICAgICAgY29ubmVjdChsb2FkX2JhbGFu Y2VfaG9zdHM9ImRvZXNub3RleGlzdCIpCisKKworZGVmIHRlc3RfbG9hZF9iYWxhbmNlX2hvc3Rz X2Rpc2FibGUobG9hZF9iYWxhbmNlX25vZGVzKToKKyAgICAiIiJsb2FkX2JhbGFuY2VfaG9zdHM9 ZGlzYWJsZSBhbHdheXMgY29ubmVjdHMgdG8gdGhlIGZpcnN0IG5vZGUuIiIiCisgICAgbm9kZXMs IGNvbm5lY3QgPSBsb2FkX2JhbGFuY2Vfbm9kZXMKKworICAgIHdpdGggbm9kZXNbMF0ubG9nX2Nv bnRhaW5zKCJjb25uZWN0aW9uIHJlY2VpdmVkIik6CisgICAgICAgIGNvbm5lY3QobG9hZF9iYWxh bmNlX2hvc3RzPSJkaXNhYmxlIikKKworCitkZWYgdGVzdF9sb2FkX2JhbGFuY2VfaG9zdHNfcmFu ZG9tX2Rpc3RyaWJ1dGlvbihsb2FkX2JhbGFuY2Vfbm9kZXMpOgorICAgICIiImxvYWRfYmFsYW5j ZV9ob3N0cz1yYW5kb20gZGlzdHJpYnV0ZXMgY29ubmVjdGlvbnMgYWNyb3NzIGFsbCBub2Rlcy4i IiIKKyAgICBub2RlcywgY29ubmVjdCA9IGxvYWRfYmFsYW5jZV9ub2RlcworCisgICAgZm9yIF8g aW4gcmFuZ2UoNTApOgorICAgICAgICBjb25uZWN0KGxvYWRfYmFsYW5jZV9ob3N0cz0icmFuZG9t IikKKworICAgIG9jY3VycmVuY2VzID0gWworICAgICAgICBsZW4ocmUuZmluZGFsbCgiY29ubmVj dGlvbiByZWNlaXZlZCIsIG5vZGUubG9nX2NvbnRlbnQoKSkpIGZvciBub2RlIGluIG5vZGVzCisg ICAgXQorCisgICAgIyBTdGF0aXN0aWNhbGx5LCBlYWNoIG5vZGUgc2hvdWxkIHJlY2VpdmUgYXQg bGVhc3Qgb25lIGNvbm5lY3Rpb24uCisgICAgIyBUaGUgcHJvYmFiaWxpdHkgb2YgYW55IG5vZGUg cmVjZWl2aW5nIDAgY29ubmVjdGlvbnMgaXMgKDIvMyleNTAg4omIIDEuNTdlLTkKKyAgICBhc3Nl cnQgb2NjdXJyZW5jZXNbMF0gPiAwLCAibm9kZTEgc2hvdWxkIHJlY2VpdmUgYXQgbGVhc3Qgb25l IGNvbm5lY3Rpb24iCisgICAgYXNzZXJ0IG9jY3VycmVuY2VzWzFdID4gMCwgIm5vZGUyIHNob3Vs ZCByZWNlaXZlIGF0IGxlYXN0IG9uZSBjb25uZWN0aW9uIgorICAgIGFzc2VydCBvY2N1cnJlbmNl c1syXSA+IDAsICJub2RlMyBzaG91bGQgcmVjZWl2ZSBhdCBsZWFzdCBvbmUgY29ubmVjdGlvbiIK KyAgICBhc3NlcnQgc3VtKG9jY3VycmVuY2VzKSA9PSA1MCwgInRvdGFsIGNvbm5lY3Rpb25zIHNo b3VsZCBiZSA1MCIKKworCitkZWYgdGVzdF9sb2FkX2JhbGFuY2VfaG9zdHNfZmFpbG92ZXIobG9h ZF9iYWxhbmNlX25vZGVzKToKKyAgICAiIiJsb2FkX2JhbGFuY2VfaG9zdHMgY29udGludWVzIHRy eWluZyBob3N0cyB1bnRpbCBpdCBmaW5kcyBhIHdvcmtpbmcgb25lLiIiIgorICAgIG5vZGVzLCBj b25uZWN0ID0gbG9hZF9iYWxhbmNlX25vZGVzCisKKyAgICBub2Rlc1swXS5zdG9wKCkKKyAgICBu b2Rlc1sxXS5zdG9wKCkKKworICAgIHdpdGggbm9kZXNbMl0ubG9nX2NvbnRhaW5zKCJjb25uZWN0 aW9uIHJlY2VpdmVkIik6CisgICAgICAgIGNvbm5lY3QobG9hZF9iYWxhbmNlX2hvc3RzPSJkaXNh YmxlIikKKworICAgIHdpdGggbm9kZXNbMl0ubG9nX2NvbnRhaW5zKCJjb25uZWN0aW9uIHJlY2Vp dmVkIiwgdGltZXM9NSk6CisgICAgICAgIGZvciBfIGluIHJhbmdlKDUpOgorICAgICAgICAgICAg Y29ubmVjdChsb2FkX2JhbGFuY2VfaG9zdHM9InJhbmRvbSIpCmRpZmYgLS1naXQgYS9zcmMvaW50 ZXJmYWNlcy9saWJwcS90LzAwM19sb2FkX2JhbGFuY2VfaG9zdF9saXN0LnBsIGIvc3JjL2ludGVy ZmFjZXMvbGlicHEvdC8wMDNfbG9hZF9iYWxhbmNlX2hvc3RfbGlzdC5wbApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggN2E0YzE0YWRhOTguLjAwMDAwMDAwMDAwCi0tLSBhL3NyYy9pbnRl cmZhY2VzL2xpYnBxL3QvMDAzX2xvYWRfYmFsYW5jZV9ob3N0X2xpc3QucGwKKysrIC9kZXYvbnVs bApAQCAtMSw5NCArMCwwIEBACi0jIENvcHlyaWdodCAoYykgMjAyMy0yMDI1LCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAotdXNlIHN0cmljdDsKLXVzZSB3YXJuaW5ncyBGQVRB TCA9PiAnYWxsJzsKLXVzZSBDb25maWc7Ci11c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Ci11 c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKLXVzZSBUZXN0OjpNb3JlOwotCi0jIFRoaXMg dGVzdHMgbG9hZCBiYWxhbmNpbmcgYWNyb3NzIHRoZSBsaXN0IG9mIGRpZmZlcmVudCBob3N0cyBp biB0aGUgaG9zdAotIyBwYXJhbWV0ZXIgb2YgdGhlIGNvbm5lY3Rpb24gc3RyaW5nLgotCi0jIENs dXN0ZXIgc2V0dXAgd2hpY2ggaXMgc2hhcmVkIGZvciB0ZXN0aW5nIGJvdGggbG9hZCBiYWxhbmNp bmcgbWV0aG9kcwotbXkgJG5vZGUxID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdu b2RlMScpOwotbXkgJG5vZGUyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdub2Rl MicsIG93bl9ob3N0ID0+IDEpOwotbXkgJG5vZGUzID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rl ci0+bmV3KCdub2RlMycsIG93bl9ob3N0ID0+IDEpOwotCi0jIENyZWF0ZSBhIGRhdGEgZGlyZWN0 b3J5IHdpdGggaW5pdGRiCi0kbm9kZTEtPmluaXQoKTsKLSRub2RlMi0+aW5pdCgpOwotJG5vZGUz LT5pbml0KCk7Ci0KLSMgU3RhcnQgdGhlIFBvc3RncmVTUUwgc2VydmVyCi0kbm9kZTEtPnN0YXJ0 KCk7Ci0kbm9kZTItPnN0YXJ0KCk7Ci0kbm9kZTMtPnN0YXJ0KCk7Ci0KLSMgU3RhcnQgdGhlIHRl c3RzIGZvciBsb2FkIGJhbGFuY2luZyBtZXRob2QgMQotbXkgJGhvc3RsaXN0ID0gJG5vZGUxLT5o b3N0IC4gJywnIC4gJG5vZGUyLT5ob3N0IC4gJywnIC4gJG5vZGUzLT5ob3N0OwotbXkgJHBvcnRs aXN0ID0gJG5vZGUxLT5wb3J0IC4gJywnIC4gJG5vZGUyLT5wb3J0IC4gJywnIC4gJG5vZGUzLT5w b3J0OwotCi0kbm9kZTEtPmNvbm5lY3RfZmFpbHMoCi0JImhvc3Q9JGhvc3RsaXN0IHBvcnQ9JHBv cnRsaXN0IGxvYWRfYmFsYW5jZV9ob3N0cz1kb2Vzbm90ZXhpc3QiLAotCSJsb2FkX2JhbGFuY2Vf aG9zdHMgZG9lc24ndCBhY2NlcHQgdW5rbm93biB2YWx1ZXMiLAotCWV4cGVjdGVkX3N0ZGVyciA9 PiBxci9pbnZhbGlkIGxvYWRfYmFsYW5jZV9ob3N0cyB2YWx1ZTogImRvZXNub3RleGlzdCIvKTsK LQotIyBsb2FkX2JhbGFuY2VfaG9zdHM9ZGlzYWJsZSBzaG91bGQgYWx3YXlzIGNob29zZSB0aGUg Zmlyc3Qgb25lLgotJG5vZGUxLT5jb25uZWN0X29rKAotCSJob3N0PSRob3N0bGlzdCBwb3J0PSRw b3J0bGlzdCBsb2FkX2JhbGFuY2VfaG9zdHM9ZGlzYWJsZSIsCi0JImxvYWRfYmFsYW5jZV9ob3N0 cz1kaXNhYmxlIGNvbm5lY3RzIHRvIHRoZSBmaXJzdCBub2RlIiwKLQlzcWwgPT4gIlNFTEVDVCAn Y29ubmVjdDEnIiwKLQlsb2dfbGlrZSA9PiBbcXIvc3RhdGVtZW50OiBTRUxFQ1QgJ2Nvbm5lY3Qx Jy9dKTsKLQotIyBTdGF0aXN0aWNhbGx5IHRoZSBmb2xsb3dpbmcgbG9vcCB3aXRoIGxvYWRfYmFs YW5jZV9ob3N0cz1yYW5kb20gd2lsbCBhbG1vc3QKLSMgY2VydGFpbmx5IGNvbm5lY3QgYXQgbGVh c3Qgb25jZSB0byBlYWNoIG9mIHRoZSBub2Rlcy4gVGhlIGNoYW5jZSBvZiB0aGF0IG5vdAotIyBo YXBwZW5pbmcgaXMgc28gc21hbGwgdGhhdCBpdCdzIG5lZ2xpZ2libGU6ICgyLzMpXjUwID0gMS41 NjgzMjg1NWUtOQotZm9yZWFjaCBteSAkaSAoMSAuLiA1MCkKLXsKLQkkbm9kZTEtPmNvbm5lY3Rf b2soCi0JCSJob3N0PSRob3N0bGlzdCBwb3J0PSRwb3J0bGlzdCBsb2FkX2JhbGFuY2VfaG9zdHM9 cmFuZG9tIiwKLQkJInJlcGVhdGVkIGNvbm5lY3Rpb25zIHdpdGggcmFuZG9tIGxvYWQgYmFsYW5j aW5nIiwKLQkJc3FsID0+ICJTRUxFQ1QgJ2Nvbm5lY3QyJyIpOwotfQotCi1teSAkbm9kZTFfb2Nj dXJyZW5jZXMgPSAoKSA9Ci0gICRub2RlMS0+bG9nX2NvbnRlbnQoKSA9fiAvc3RhdGVtZW50OiBT RUxFQ1QgJ2Nvbm5lY3QyJy9nOwotbXkgJG5vZGUyX29jY3VycmVuY2VzID0gKCkgPQotICAkbm9k ZTItPmxvZ19jb250ZW50KCkgPX4gL3N0YXRlbWVudDogU0VMRUNUICdjb25uZWN0MicvZzsKLW15 ICRub2RlM19vY2N1cnJlbmNlcyA9ICgpID0KLSAgJG5vZGUzLT5sb2dfY29udGVudCgpID1+IC9z dGF0ZW1lbnQ6IFNFTEVDVCAnY29ubmVjdDInL2c7Ci0KLW15ICR0b3RhbF9vY2N1cnJlbmNlcyA9 Ci0gICRub2RlMV9vY2N1cnJlbmNlcyArICRub2RlMl9vY2N1cnJlbmNlcyArICRub2RlM19vY2N1 cnJlbmNlczsKLQotY21wX29rKCRub2RlMV9vY2N1cnJlbmNlcywgJz4nLCAxLAotCSJyZWNlaXZl ZCBhdCBsZWFzdCBvbmUgY29ubmVjdGlvbiBvbiBub2RlMSIpOwotY21wX29rKCRub2RlMl9vY2N1 cnJlbmNlcywgJz4nLCAxLAotCSJyZWNlaXZlZCBhdCBsZWFzdCBvbmUgY29ubmVjdGlvbiBvbiBu b2RlMiIpOwotY21wX29rKCRub2RlM19vY2N1cnJlbmNlcywgJz4nLCAxLAotCSJyZWNlaXZlZCBh dCBsZWFzdCBvbmUgY29ubmVjdGlvbiBvbiBub2RlMyIpOwotaXMoJHRvdGFsX29jY3VycmVuY2Vz LCA1MCwgInJlY2VpdmVkIDUwIGNvbm5lY3Rpb25zIGFjcm9zcyBhbGwgbm9kZXMiKTsKLQotJG5v ZGUxLT5zdG9wKCk7Ci0kbm9kZTItPnN0b3AoKTsKLQotIyBsb2FkX2JhbGFuY2VfaG9zdHM9ZGlz YWJsZSBzaG91bGQgY29udGludWUgdHJ5aW5nIGhvc3RzIHVudGlsIGl0IGZpbmRzIGEKLSMgd29y a2luZyBvbmUuCi0kbm9kZTMtPmNvbm5lY3Rfb2soCi0JImhvc3Q9JGhvc3RsaXN0IHBvcnQ9JHBv cnRsaXN0IGxvYWRfYmFsYW5jZV9ob3N0cz1kaXNhYmxlIiwKLQkibG9hZF9iYWxhbmNlX2hvc3Rz PWRpc2FibGUgY29udGludWVzIHVudGlsIGl0IGNvbm5lY3RzIHRvIHRoZSBhIHdvcmtpbmcgbm9k ZSIsCi0Jc3FsID0+ICJTRUxFQ1QgJ2Nvbm5lY3QzJyIsCi0JbG9nX2xpa2UgPT4gW3FyL3N0YXRl bWVudDogU0VMRUNUICdjb25uZWN0MycvXSk7Ci0KLSMgQWxzbyB3aXRoIGxvYWRfYmFsYW5jZV9o b3N0cz1yYW5kb20gd2UgY29udGludWUgdG8gdGhlIG5leHQgbm9kZXMgaWYgcHJldmlvdXMKLSMg b25lcyBhcmUgZG93bi4gQ29ubmVjdCBhIGZldyB0aW1lcyB0byBtYWtlIHN1cmUgaXQncyBub3Qg anVzdCBsdWNreS4KLWZvcmVhY2ggbXkgJGkgKDEgLi4gNSkKLXsKLQkkbm9kZTMtPmNvbm5lY3Rf b2soCi0JCSJob3N0PSRob3N0bGlzdCBwb3J0PSRwb3J0bGlzdCBsb2FkX2JhbGFuY2VfaG9zdHM9 cmFuZG9tIiwKLQkJImxvYWRfYmFsYW5jZV9ob3N0cz1yYW5kb20gY29udGludWVzIHVudGlsIGl0 IGNvbm5lY3RzIHRvIHRoZSBhIHdvcmtpbmcgbm9kZSIsCi0JCXNxbCA9PiAiU0VMRUNUICdjb25u ZWN0NCciLAotCQlsb2dfbGlrZSA9PiBbcXIvc3RhdGVtZW50OiBTRUxFQ1QgJ2Nvbm5lY3Q0Jy9d KTsKLX0KLQotZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJw cS90LzAwNF9sb2FkX2JhbGFuY2VfZG5zLnBsIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvdC8wMDRf bG9hZF9iYWxhbmNlX2Rucy5wbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmI0YmQy NjFjM2QuLjAwMDAwMDAwMDAwCi0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3QvMDA0X2xvYWRf YmFsYW5jZV9kbnMucGwKKysrIC9kZXYvbnVsbApAQCAtMSwxNDQgKzAsMCBAQAotIyBDb3B5cmln aHQgKGMpIDIwMjMtMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKLXVz ZSBzdHJpY3Q7Ci11c2Ugd2FybmluZ3MgRkFUQUwgPT4gJ2FsbCc7Ci11c2UgQ29uZmlnOwotdXNl IFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwotdXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7 Ci11c2UgVGVzdDo6TW9yZTsKLQotaWYgKCEkRU5We1BHX1RFU1RfRVhUUkF9IHx8ICRFTlZ7UEdf VEVTVF9FWFRSQX0gIX4gL1xibG9hZF9iYWxhbmNlXGIvKQotewotCXBsYW4gc2tpcF9hbGwgPT4K LQkgICdQb3RlbnRpYWxseSB1bnNhZmUgdGVzdCBsb2FkX2JhbGFuY2Ugbm90IGVuYWJsZWQgaW4g UEdfVEVTVF9FWFRSQSc7Ci19Ci0KLSMgVGhpcyB0ZXN0cyBsb2FkYmFsYW5jaW5nIGJhc2VkIG9u IGEgRE5TIGVudHJ5IHRoYXQgY29udGFpbnMgbXVsdGlwbGUgcmVjb3JkcwotIyBmb3IgZGlmZmVy ZW50IElQcy4gU2luY2Ugc2V0dGluZyB1cCBhIEROUyBzZXJ2ZXIgaXMgbW9yZSBlZmZvcnQgdGhh biB3ZQotIyBjb25zaWRlciByZWFzb25hYmxlIHRvIHJ1biB0aGlzIHRlc3QsIHRoaXMgc2l0dWF0 aW9uIGlzIGluc3RlYWQgaW1pdGF0ZWQgYnkKLSMgdXNpbmcgYSBob3N0cyBmaWxlIHdoZXJlIGEg c2luZ2xlIGhvc3RuYW1lIG1hcHMgdG8gbXVsdGlwbGUgZGlmZmVyZW50IElQCi0jIGFkZHJlc3Nl cy4gVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBhZG1pbmlzdHJhdG9yIHRvIGFkZCB0aGUgZm9sbG93 aW5nIGxpbmVzIHRvCi0jIHRoZSBob3N0cyBmaWxlIChpZiB3ZSBkZXRlY3QgdGhhdCB0aGlzIGhh c24ndCBoYXBwZW5lZCB3ZSBza2lwIHRoZSB0ZXN0KToKLSMKLSMgMTI3LjAuMC4xIHBnLWxvYWRi YWxhbmNldGVzdAotIyAxMjcuMC4wLjIgcGctbG9hZGJhbGFuY2V0ZXN0Ci0jIDEyNy4wLjAuMyBw Zy1sb2FkYmFsYW5jZXRlc3QKLSMKLSMgV2luZG93cyBvciBMaW51eCBhcmUgcmVxdWlyZWQgdG8g cnVuIHRoaXMgdGVzdCBiZWNhdXNlIHRoZXNlIE9TZXMgYWxsb3cKLSMgYmluZGluZyB0byAxMjcu MC4wLjIgYW5kIDEyNy4wLjAuMyBhZGRyZXNzZXMgYnkgZGVmYXVsdCwgYnV0IG90aGVyIE9TZXMK LSMgZG9uJ3QuIFdlIG5lZWQgdG8gYmluZCB0byBkaWZmZXJlbnQgSVAgYWRkcmVzc2VzLCBzbyB0 aGF0IHdlIGNhbiB1c2UgdGhlc2UKLSMgZGlmZmVyZW50IElQIGFkZHJlc3NlcyBpbiB0aGUgaG9z dHMgZmlsZS4KLSMKLSMgVGhlIGhvc3RzIGZpbGUgbmVlZHMgdG8gYmUgcHJlcGFyZWQgYmVmb3Jl IHJ1bm5pbmcgdGhpcyB0ZXN0LiBXZSBkb24ndCBkbyBpdAotIyBvbiB0aGUgZmx5LCBiZWNhdXNl IGl0IHJlcXVpcmVzIHJvb3QgcGVybWlzc2lvbnMgdG8gY2hhbmdlIHRoZSBob3N0cyBmaWxlLiBJ bgotIyBDSSB3ZSBzZXQgdXAgdGhlIHByZXZpb3VzbHkgbWVudGlvbmVkIHJ1bGVzIGluIHRoZSBo b3N0cyBmaWxlLCBzbyB0aGF0IHRoaXMKLSMgbG9hZCBiYWxhbmNpbmcgbWV0aG9kIGlzIHRlc3Rl ZC4KLQotIyBDbHVzdGVyIHNldHVwIHdoaWNoIGlzIHNoYXJlZCBmb3IgdGVzdGluZyBib3RoIGxv YWQgYmFsYW5jaW5nIG1ldGhvZHMKLW15ICRjYW5fYmluZF90b18xMjdfMF8wXzIgPQotICAkQ29u Zmlne29zbmFtZX0gZXEgJ2xpbnV4JyB8fCAkUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OndpbmRv d3Nfb3M7Ci0KLSMgQ2hlY2tzIGZvciB0aGUgcmVxdWlyZW1lbnRzIGZvciB0ZXN0aW5nIGxvYWQg YmFsYW5jaW5nIG1ldGhvZCAyCi1pZiAoISRjYW5fYmluZF90b18xMjdfMF8wXzIpCi17Ci0JcGxh biBza2lwX2FsbCA9PiAnbG9hZF9iYWxhbmNlIHRlc3Qgb25seSBzdXBwb3J0ZWQgb24gTGludXgg YW5kIFdpbmRvd3MnOwotfQotCi1teSAkaG9zdHNfcGF0aDsKLWlmICgkd2luZG93c19vcykKLXsK LQkkaG9zdHNfcGF0aCA9ICdjOlxXaW5kb3dzXFN5c3RlbTMyXERyaXZlcnNcZXRjXGhvc3RzJzsK LX0KLWVsc2UKLXsKLQkkaG9zdHNfcGF0aCA9ICcvZXRjL2hvc3RzJzsKLX0KLQotbXkgJGhvc3Rz X2NvbnRlbnQgPSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6c2x1cnBfZmlsZSgkaG9zdHNfcGF0 aCk7Ci0KLW15ICRob3N0c19jb3VudCA9ICgpID0KLSAgJGhvc3RzX2NvbnRlbnQgPX4gLzEyN1wu MFwuMFwuWzEtM10gcGctbG9hZGJhbGFuY2V0ZXN0L2c7Ci1pZiAoJGhvc3RzX2NvdW50ICE9IDMp Ci17Ci0JIyBIb3N0IGZpbGUgaXMgbm90IHByZXBhcmVkIGZvciB0aGlzIHRlc3QKLQlwbGFuIHNr aXBfYWxsID0+ICJob3N0cyBmaWxlIHdhcyBub3QgcHJlcGFyZWQgZm9yIEROUyBsb2FkIGJhbGFu Y2UgdGVzdCI7Ci19Ci0KLSRQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOjp1c2VfdGNwID0gMTsK LSRQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOjp0ZXN0X3BnaG9zdCA9ICcxMjcuMC4wLjEnOwot bXkgJHBvcnQgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOjpnZXRfZnJlZV9wb3J0KCk7Ci1t eSAkbm9kZTEgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ25vZGUxJywgcG9ydCA9 PiAkcG9ydCk7Ci1teSAkbm9kZTIgPQotICBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXco J25vZGUyJywgcG9ydCA9PiAkcG9ydCwgb3duX2hvc3QgPT4gMSk7Ci1teSAkbm9kZTMgPQotICBQ b3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ25vZGUzJywgcG9ydCA9PiAkcG9ydCwgb3du X2hvc3QgPT4gMSk7Ci0KLSMgQ3JlYXRlIGEgZGF0YSBkaXJlY3Rvcnkgd2l0aCBpbml0ZGIKLSRu b2RlMS0+aW5pdCgpOwotJG5vZGUyLT5pbml0KCk7Ci0kbm9kZTMtPmluaXQoKTsKLQotIyBTdGFy dCB0aGUgUG9zdGdyZVNRTCBzZXJ2ZXIKLSRub2RlMS0+c3RhcnQoKTsKLSRub2RlMi0+c3RhcnQo KTsKLSRub2RlMy0+c3RhcnQoKTsKLQotIyBsb2FkX2JhbGFuY2VfaG9zdHM9ZGlzYWJsZSBzaG91 bGQgYWx3YXlzIGNob29zZSB0aGUgZmlyc3Qgb25lLgotJG5vZGUxLT5jb25uZWN0X29rKAotCSJo b3N0PXBnLWxvYWRiYWxhbmNldGVzdCBwb3J0PSRwb3J0IGxvYWRfYmFsYW5jZV9ob3N0cz1kaXNh YmxlIiwKLQkibG9hZF9iYWxhbmNlX2hvc3RzPWRpc2FibGUgY29ubmVjdHMgdG8gdGhlIGZpcnN0 IG5vZGUiLAotCXNxbCA9PiAiU0VMRUNUICdjb25uZWN0MSciLAotCWxvZ19saWtlID0+IFtxci9z dGF0ZW1lbnQ6IFNFTEVDVCAnY29ubmVjdDEnL10pOwotCi0KLSMgU3RhdGlzdGljYWxseSB0aGUg Zm9sbG93aW5nIGxvb3Agd2l0aCBsb2FkX2JhbGFuY2VfaG9zdHM9cmFuZG9tIHdpbGwgYWxtb3N0 Ci0jIGNlcnRhaW5seSBjb25uZWN0IGF0IGxlYXN0IG9uY2UgdG8gZWFjaCBvZiB0aGUgbm9kZXMu IFRoZSBjaGFuY2Ugb2YgdGhhdCBub3QKLSMgaGFwcGVuaW5nIGlzIHNvIHNtYWxsIHRoYXQgaXQn cyBuZWdsaWdpYmxlOiAoMi8zKV41MCA9IDEuNTY4MzI4NTVlLTkKLWZvcmVhY2ggbXkgJGkgKDEg Li4gNTApCi17Ci0JJG5vZGUxLT5jb25uZWN0X29rKAotCQkiaG9zdD1wZy1sb2FkYmFsYW5jZXRl c3QgcG9ydD0kcG9ydCBsb2FkX2JhbGFuY2VfaG9zdHM9cmFuZG9tIiwKLQkJInJlcGVhdGVkIGNv bm5lY3Rpb25zIHdpdGggcmFuZG9tIGxvYWQgYmFsYW5jaW5nIiwKLQkJc3FsID0+ICJTRUxFQ1Qg J2Nvbm5lY3QyJyIpOwotfQotCi1teSAkbm9kZTFfb2NjdXJyZW5jZXMgPSAoKSA9Ci0gICRub2Rl MS0+bG9nX2NvbnRlbnQoKSA9fiAvc3RhdGVtZW50OiBTRUxFQ1QgJ2Nvbm5lY3QyJy9nOwotbXkg JG5vZGUyX29jY3VycmVuY2VzID0gKCkgPQotICAkbm9kZTItPmxvZ19jb250ZW50KCkgPX4gL3N0 YXRlbWVudDogU0VMRUNUICdjb25uZWN0MicvZzsKLW15ICRub2RlM19vY2N1cnJlbmNlcyA9ICgp ID0KLSAgJG5vZGUzLT5sb2dfY29udGVudCgpID1+IC9zdGF0ZW1lbnQ6IFNFTEVDVCAnY29ubmVj dDInL2c7Ci0KLW15ICR0b3RhbF9vY2N1cnJlbmNlcyA9Ci0gICRub2RlMV9vY2N1cnJlbmNlcyAr ICRub2RlMl9vY2N1cnJlbmNlcyArICRub2RlM19vY2N1cnJlbmNlczsKLQotY21wX29rKCRub2Rl MV9vY2N1cnJlbmNlcywgJz4nLCAxLAotCSJyZWNlaXZlZCBhdCBsZWFzdCBvbmUgY29ubmVjdGlv biBvbiBub2RlMSIpOwotY21wX29rKCRub2RlMl9vY2N1cnJlbmNlcywgJz4nLCAxLAotCSJyZWNl aXZlZCBhdCBsZWFzdCBvbmUgY29ubmVjdGlvbiBvbiBub2RlMiIpOwotY21wX29rKCRub2RlM19v Y2N1cnJlbmNlcywgJz4nLCAxLAotCSJyZWNlaXZlZCBhdCBsZWFzdCBvbmUgY29ubmVjdGlvbiBv biBub2RlMyIpOwotaXMoJHRvdGFsX29jY3VycmVuY2VzLCA1MCwgInJlY2VpdmVkIDUwIGNvbm5l Y3Rpb25zIGFjcm9zcyBhbGwgbm9kZXMiKTsKLQotJG5vZGUxLT5zdG9wKCk7Ci0kbm9kZTItPnN0 b3AoKTsKLQotIyBsb2FkX2JhbGFuY2VfaG9zdHM9ZGlzYWJsZSBzaG91bGQgY29udGludWUgdHJ5 aW5nIGhvc3RzIHVudGlsIGl0IGZpbmRzIGEKLSMgd29ya2luZyBvbmUuCi0kbm9kZTMtPmNvbm5l Y3Rfb2soCi0JImhvc3Q9cGctbG9hZGJhbGFuY2V0ZXN0IHBvcnQ9JHBvcnQgbG9hZF9iYWxhbmNl X2hvc3RzPWRpc2FibGUiLAotCSJsb2FkX2JhbGFuY2VfaG9zdHM9ZGlzYWJsZSBjb250aW51ZXMg dW50aWwgaXQgY29ubmVjdHMgdG8gdGhlIGEgd29ya2luZyBub2RlIiwKLQlzcWwgPT4gIlNFTEVD VCAnY29ubmVjdDMnIiwKLQlsb2dfbGlrZSA9PiBbcXIvc3RhdGVtZW50OiBTRUxFQ1QgJ2Nvbm5l Y3QzJy9dKTsKLQotIyBBbHNvIHdpdGggbG9hZF9iYWxhbmNlX2hvc3RzPXJhbmRvbSB3ZSBjb250 aW51ZSB0byB0aGUgbmV4dCBub2RlcyBpZiBwcmV2aW91cwotIyBvbmVzIGFyZSBkb3duLiBDb25u ZWN0IGEgZmV3IHRpbWVzIHRvIG1ha2Ugc3VyZSBpdCdzIG5vdCBqdXN0IGx1Y2t5LgotZm9yZWFj aCBteSAkaSAoMSAuLiA1KQotewotCSRub2RlMy0+Y29ubmVjdF9vaygKLQkJImhvc3Q9cGctbG9h ZGJhbGFuY2V0ZXN0IHBvcnQ9JHBvcnQgbG9hZF9iYWxhbmNlX2hvc3RzPXJhbmRvbSIsCi0JCSJs b2FkX2JhbGFuY2VfaG9zdHM9cmFuZG9tIGNvbnRpbnVlcyB1bnRpbCBpdCBjb25uZWN0cyB0byB0 aGUgYSB3b3JraW5nIG5vZGUiLAotCQlzcWwgPT4gIlNFTEVDVCAnY29ubmVjdDQnIiwKLQkJbG9n X2xpa2UgPT4gW3FyL3N0YXRlbWVudDogU0VMRUNUICdjb25uZWN0NCcvXSk7Ci19Ci0KLWRvbmVf dGVzdGluZygpOwotLSAKMi41Mi4wCgo= --96ced96246521a62ba81864c53b3a5475cc189cbc0ad0bfdf74d8b032f52 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v6-0006-WIP-pytest-Add-some-SSL-client-tests.patch Content-Type: text/x-patch; charset=utf-8; name=v6-0006-WIP-pytest-Add-some-SSL-client-tests.patch RnJvbSA1YTAxN2RhOTUzN2RmM2UwMzQ2MTBkYjU5M2VhNGZiZjVlMjNlZThmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogVHVlLCAxNiBEZWMgMjAyNSAwOTozMDo1NSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjYgNi83XSBXSVA6IHB5dGVzdDogQWRkIHNvbWUgU1NMIGNsaWVudCB0ZXN0cwoK VGhpcyBpcyBhIHNhbXBsZSBjbGllbnQtb25seSB0ZXN0IHN1aXRlLiBJdCB0ZXN0cyBzb21lIGhh bmRzaGFrZQpmYWlsdXJlcyBhZ2FpbnN0IGEgbW9jayBzZXJ2ZXIsIGFzIHdlbGwgYXMgYSBmdWxs IFNTTCBoYW5kc2hha2UgKyBlbXB0eQpxdWVyeSArIHJlc3BvbnNlLgoKcHljYS9jcnlwdG9ncmFw aHkgaXMgYWRkZWQgYXMgYSBuZXcgcGFja2FnZSBkZXBlbmRlbmN5LiBDZXJ0aWZpY2F0ZXMgZm9y CnRlc3RpbmcgYXJlIGdlbmVyYXRlZCBvbiB0aGUgZmx5LgoKVGhlIG1vY2sgZGVzaWduIGlzIHRo cmVhZGVkOiB0aGUgc2VydmVyIHNvY2tldCBpcyBsaXN0ZW5pbmcgb24gYQpiYWNrZ3JvdW5kIHRo cmVhZCwgYW5kIHRoZSB0ZXN0IHByb3ZpZGVzIHRoZSBzZXJ2ZXIgbG9naWMgdmlhIGEKY2FsbGJh Y2suIFRoZXJlIGlzIHNvbWUgYWRkaXRpb25hbCB3b3JrIHN0aWxsIG5lZWRlZCB0byBtYWtlIHRo aXMKcHJvZHVjdGlvbi1yZWFkeTsgc2VlIHRoZSBub3RlcyBmb3IgX1RDUFNlcnZlci5iYWNrZ3Jv dW5kKCkuIChDdXJyZW50bHksCmFuIGV4Y2VwdGlvbiBpbiB0aGUgd3JvbmcgcGxhY2UgY291bGQg cmVzdWx0IGluIGEgaGFuZy11bnRpbC10aW1lb3V0CnJhdGhlciB0aGFuIGFuIGltbWVkaWF0ZSBm YWlsdXJlLikKClRPRE9zOgotIGxvY2FsX3NlcnZlciBhbmQgdGNwX3NlcnZlcl9jbGFzcyBhcmUg bmVhcmx5IGlkZW50aWNhbCBhbmQgc2hvdWxkCiAgc2hhcmUgY29kZS4KLSBmaXggZXhjZXB0aW9u LXJlbGF0ZWQgdGltZW91dHMgZm9yIC5iYWNrZ3JvdW5kKCkKLSBmaWd1cmUgb3V0IHRoZSBwcm9w ZXIgdXNlIG9mICJzZXNzaW9uIiB2cyAibW9kdWxlIiBzY29wZQotIGVuc3VyZSB0aGF0IHBxLmxp YnBxIHVud2luZHMgKHRvIGNsb3NlIGNvbm5lY3Rpb25zKSBiZWZvcmUgdGNwX3NlcnZlcjsKICBz ZWUgY29tbWVudCBpbiB0ZXN0X3NlcnZlcl93aXRoX3NzbF9kaXNhYmxlZCgpCi0tLQogLmNpcnJ1 cy50YXNrcy55bWwgICAgICAgICAgICAgICB8ICAxOCArKy0KIHB5cHJvamVjdC50b21sICAgICAg ICAgICAgICAgICAgfCAgIDggKwogc3JjL3Rlc3Qvc3NsL01ha2VmaWxlICAgICAgICAgICB8ICAg MiArCiBzcmMvdGVzdC9zc2wvbWVzb24uYnVpbGQgICAgICAgIHwgICA2ICsKIHNyYy90ZXN0L3Nz bC9weXQvY29uZnRlc3QucHkgICAgfCAxMjggKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9zc2wv cHl0L3Rlc3RfY2xpZW50LnB5IHwgMjc4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiA2IGZpbGVzIGNoYW5nZWQsIDQzNCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3NzbC9weXQvY29uZnRlc3QucHkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvdGVzdC9zc2wvcHl0L3Rlc3RfY2xpZW50LnB5CgpkaWZmIC0tZ2l0IGEvLmNp cnJ1cy50YXNrcy55bWwgYi8uY2lycnVzLnRhc2tzLnltbAppbmRleCBhMmMzZmViYzMwYy4uNDFk MmEzYzE4NjcgMTAwNjQ0Ci0tLSBhLy5jaXJydXMudGFza3MueW1sCisrKyBiLy5jaXJydXMudGFz a3MueW1sCkBAIC0yMjksNiArMjI5LDcgQEAgdGFzazoKICAgICBzeXNjdGwga2Vybi5jb3JlZmls ZT0nL3RtcC9jb3Jlcy8lTi4lUC5jb3JlJwogICBzZXR1cF9hZGRpdGlvbmFsX3BhY2thZ2VzX3Nj cmlwdDogfAogICAgIHBrZyBpbnN0YWxsIC15IFwKKyAgICAgIHB5MzExLWNyeXB0b2dyYXBoeSBc CiAgICAgICBweTMxMS1wYWNrYWdpbmcgXAogICAgICAgcHkzMTEtcHl0ZXN0CiAKQEAgLTMyMyw2 ICszMjQsNyBAQCB0YXNrOgogCiAgICAgICBzZXR1cF9hZGRpdGlvbmFsX3BhY2thZ2VzX3Njcmlw dDogfAogICAgICAgICBwa2dpbiAteSBpbnN0YWxsIFwKKyAgICAgICAgICBweTMxMi1jcnlwdG9n cmFwaHkgXAogICAgICAgICAgIHB5MzEyLXBhY2thZ2luZyBcCiAgICAgICAgICAgcHkzMTItdGVz dAogICAgICAgICBsbiAtcyAvdXNyL3BrZy9iaW4vcHl0ZXN0LTMuMTIgL3Vzci9wa2cvYmluL3B5 dGVzdApAQCAtMzQ2LDggKzM0OCw5IEBAIHRhc2s6CiAKICAgICAgIHNldHVwX2FkZGl0aW9uYWxf cGFja2FnZXNfc2NyaXB0OiB8CiAgICAgICAgIHBrZ19hZGQgLUkgXAotICAgICAgICAgIHB5My10 ZXN0IFwKLSAgICAgICAgICBweTMtcGFja2FnaW5nCisgICAgICAgICAgcHkzLWNyeXB0b2dyYXBo eSBcCisgICAgICAgICAgcHkzLXBhY2thZ2luZyBcCisgICAgICAgICAgcHkzLXRlc3QKICAgICAg ICMgQWx3YXlzIGNvcmUgZHVtcCB0byAke0NPUkVfRFVNUF9ESVJ9CiAgICAgICBzZXRfY29yZV9k dW1wX3NjcmlwdDogc3lzY3RsIC13IGtlcm4ubm9zdWlkY29yZWR1bXA9MgogICAgICAgPDw6ICpv cGVuYnNkX3Rhc2tfdGVtcGxhdGUKQEAgLTUwOCw4ICs1MTEsOSBAQCB0YXNrOgogICBzZXR1cF9h ZGRpdGlvbmFsX3BhY2thZ2VzX3NjcmlwdDogfAogICAgIGFwdC1nZXQgdXBkYXRlCiAgICAgREVC SUFOX0ZST05URU5EPW5vbmludGVyYWN0aXZlIGFwdC1nZXQgLXkgaW5zdGFsbCBcCi0gICAgICBw eXRob24zLXB5dGVzdCBcCi0gICAgICBweXRob24zLXBhY2thZ2luZworICAgICAgcHl0aG9uMy1j cnlwdG9ncmFwaHkgXAorICAgICAgcHl0aG9uMy1wYWNrYWdpbmcgXAorICAgICAgcHl0aG9uMy1w eXRlc3QKIAogICBtYXRyaXg6CiAgICAgIyBTUEVDSUFMOgpAQCAtNjU4LDYgKzY2Miw3IEBAIHRh c2s6CiAgICAgQ0lSUlVTX1dPUktJTkdfRElSOiAke0hPTUV9L3Bnc3FsLwogICAgIENDQUNIRV9E SVI6ICR7SE9NRX0vY2NhY2hlCiAgICAgTUFDUE9SVFNfQ0FDSEU6ICR7SE9NRX0vbWFjcG9ydHMt Y2FjaGUKKyAgICBQWVRFU1RfREVCVUdfVEVNUFJPT1Q6IC90bXAgICMgZGVmYXVsdCBpcyB0b28g bG9uZyBmb3IgVU5JWCBzb2NrZXRzIG9uIE1hYwogCiAgICAgTUVTT05fRkVBVFVSRVM6ID4tCiAg ICAgICAtRGJvbmpvdXI9ZW5hYmxlZApAQCAtNjc4LDYgKzY4Myw3IEBAIHRhc2s6CiAgICAgICBw NS4zNC1pby10dHkKICAgICAgIHA1LjM0LWlwYy1ydW4KICAgICAgIHB5dGhvbjMxMgorICAgICAg cHkzMTItY3J5cHRvZ3JhcGh5CiAgICAgICBweTMxMi1wYWNrYWdpbmcKICAgICAgIHB5MzEyLXB5 dGVzdAogICAgICAgdGNsCkBAIC04MTYsNyArODIyLDcgQEAgdGFzazoKICAgIyBYWFggRG9lcyBD aG9jb2xhdGV5IHJlYWxseSBub3QgaGF2ZSBhbnkgUHl0aG9uIHBhY2thZ2UgaW5zdGFsbGVycz8K ICAgc2V0dXBfYWRkaXRpb25hbF9wYWNrYWdlc19zY3JpcHQ6IHwKICAgICBSRU0gY2hvY28gaW5z dGFsbCAteSAtLW5vLXByb2dyZXNzIC4uLgotICAgIHBpcDMgaW5zdGFsbCAtLXVzZXIgcGFja2Fn aW5nIHB5dGVzdAorICAgIHBpcDMgaW5zdGFsbCAtLXVzZXIgY3J5cHRvZ3JhcGh5IHBhY2thZ2lu ZyBweXRlc3QKIAogICBzZXR1cF9ob3N0c19maWxlX3NjcmlwdDogfAogICAgIGVjaG8gMTI3LjAu MC4xIHBnLWxvYWRiYWxhbmNldGVzdCA+PiBjOlxXaW5kb3dzXFN5c3RlbTMyXERyaXZlcnNcZXRj XGhvc3RzCkBAIC04NzksNyArODg1LDcgQEAgdGFzazoKICAgICBmb2xkZXI6ICR7Q0NBQ0hFX0RJ Un0KIAogICBzZXR1cF9hZGRpdGlvbmFsX3BhY2thZ2VzX3NjcmlwdDogfAotICAgIEM6XG1zeXM2 NFx1c3JcYmluXHBhY21hbi5leGUgLVMgLS1ub2NvbmZpcm0gbWluZ3ctdzY0LXVjcnQteDg2XzY0 LXB5dGhvbi1weXRlc3QKKyAgICBDOlxtc3lzNjRcdXNyXGJpblxwYWNtYW4uZXhlIC1TIC0tbm9j b25maXJtIG1pbmd3LXc2NC11Y3J0LXg4Nl82NC1weXRob24tY3J5cHRvZ3JhcGh5IG1pbmd3LXc2 NC11Y3J0LXg4Nl82NC1weXRob24tcHl0ZXN0CiAKICAgbWluZ3dfaW5mb19zY3JpcHQ6IHwKICAg ICAlQkFTSCUgLWMgIndoZXJlIGdjYyIKZGlmZiAtLWdpdCBhL3B5cHJvamVjdC50b21sIGIvcHlw cm9qZWN0LnRvbWwKaW5kZXggNDYyOGQyMjc0ZTAuLjAwYzhhZTg4NTgzIDEwMDY0NAotLS0gYS9w eXByb2plY3QudG9tbAorKysgYi9weXByb2plY3QudG9tbApAQCAtMTIsNiArMTIsMTQgQEAgZGVw ZW5kZW5jaWVzID0gWwogICAgICMgQW55IG90aGVyIGRlcGVuZGVuY2llcyBhcmUgZWZmZWN0aXZl bHkgb3B0aW9uYWwgKGFkZGVkIGJlbG93KS4gV2UgaW1wb3J0CiAgICAgIyB0aGVzZSBsaWJyYXJp ZXMgdXNpbmcgcHl0ZXN0LmltcG9ydG9yc2tpcCgpLiBTbyB0ZXN0cyB3aWxsIGJlIHNraXBwZWQg aWYKICAgICAjIHRoZXkgYXJlIG5vdCBhdmFpbGFibGUuCisKKyAgICAjIE5vdGVzIG9uIHRoZSBj cnlwdG9ncmFwaHkgcGFja2FnZToKKyAgICAjIC0gMy4zLjIgaXMgc2hpcHBlZCBvbiBEZWJpYW4g YnVsbHNleWUuCisgICAgIyAtIDMuNC54IGRyb3BzIHN1cHBvcnQgZm9yIFB5dGhvbiAyLCBtYWtp bmcgaXQgYSB2ZXJzaW9uIG9mIG5vdGUgZm9yIG9sZGVyIExUUworICAgICMgICBkaXN0cm9zLgor ICAgICMgLSAzNS54IHN3aXRjaGVkIHZlcnNpb25pbmcgc2NoZW1lcyBhbmQgbW92ZWQgdG8gUnVz dCBwYXJzaW5nLgorICAgICMgLSA0MC54IGlzIHRoZSBsYXN0IHZlcnNpb24gc3VwcG9ydGluZyBQ eXRob24gMy42LgorICAgICJjcnlwdG9ncmFwaHkgPj0gMy4zLjIiLAogXQogCiBbdG9vbC5weXRl c3QuaW5pX29wdGlvbnNdCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zc2wvTWFrZWZpbGUgYi9zcmMv dGVzdC9zc2wvTWFrZWZpbGUKaW5kZXggZThhMTYzOWRiMmQuLjg5NWVhNWVhNDFjIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9zc2wvTWFrZWZpbGUKKysrIGIvc3JjL3Rlc3Qvc3NsL01ha2VmaWxlCkBA IC0zMCw2ICszMCw4IEBAIGNsZWFuIGRpc3RjbGVhbjoKICMgRG9lc24ndCBkZXBlbmQgb24gc3Ns ZmlsZXMgYmVjYXVzZSB3ZSBkb24ndCByZWJ1aWxkIHRoZW0gYnkgZGVmYXVsdAogY2hlY2s6CiAJ JChwcm92ZV9jaGVjaykKKwkjIFhYWCB0aGVzZSBzdWl0ZXMgc2hvdWxkIHJ1biBpbmRlcGVuZGVu dGx5LCBub3Qgc2VyaWFsbHkKKwkkKHB5dGVzdF9jaGVjaykKIAogaW5zdGFsbGNoZWNrOgogCSQo cHJvdmVfaW5zdGFsbGNoZWNrKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3NsL21lc29uLmJ1aWxk IGIvc3JjL3Rlc3Qvc3NsL21lc29uLmJ1aWxkCmluZGV4IGQ4ZTBmYjUxOGUwLi5hMGVlMmFmMDg5 OSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3NsL21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L3Nz bC9tZXNvbi5idWlsZApAQCAtMTUsNCArMTUsMTAgQEAgdGVzdHMgKz0gewogICAgICAgJ3QvMDAz X3NzbGluZm8ucGwnLAogICAgIF0sCiAgIH0sCisgICdweXRlc3QnOiB7CisgICAgJ3Rlc3RzJzog WworICAgICAgJ3B5dC90ZXN0X2NsaWVudC5weScsCisgICAgICAncHl0L3Rlc3Rfc2VydmVyLnB5 JywKKyAgICBdLAorICB9LAogfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3NsL3B5dC9jb25mdGVz dC5weSBiL3NyYy90ZXN0L3NzbC9weXQvY29uZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjg3MGY3MzhhYzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rl c3Qvc3NsL3B5dC9jb25mdGVzdC5weQpAQCAtMCwwICsxLDEyOCBAQAorIyBDb3B5cmlnaHQgKGMp IDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKK2ltcG9ydCBkYXRl dGltZQoraW1wb3J0IHJlCitpbXBvcnQgc3VicHJvY2VzcworaW1wb3J0IHRlbXBmaWxlCitmcm9t IGNvbGxlY3Rpb25zIGltcG9ydCBuYW1lZHR1cGxlCisKK2ltcG9ydCBweXRlc3QKKworCitAcHl0 ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQorZGVmIGNyeXB0b2dyYXBoeSgpOgorICAgIHJl dHVybiBweXRlc3QuaW1wb3J0b3Jza2lwKCJjcnlwdG9ncmFwaHkiLCAiMy4zLjIiKQorCisKK0Nl cnQgPSBuYW1lZHR1cGxlKCJDZXJ0IiwgImNlcnQsIGNlcnRwYXRoLCBrZXksIGtleXBhdGgiKQor CisKK0BweXRlc3QuZml4dHVyZShzY29wZT0ic2Vzc2lvbiIpCitkZWYgY2VydHMoY3J5cHRvZ3Jh cGh5LCB0bXBfcGF0aF9mYWN0b3J5KToKKyAgICAiIiIKKyAgICBDYWNoZXMgY29tbW9ubHkgdXNl ZCBjZXJ0aWZpY2F0ZXMgYXQgdGhlIHNlc3Npb24gbGV2ZWwsIGFuZCBwcm92aWRlcyBhIHdheQor ICAgIHRvIGNyZWF0ZSBuZXcgb25lcy4KKworICAgIC0gY2VydHMuY2E6IHRoZSByb290IENBIGNl cnRpZmljYXRlCisKKyAgICAtIGNlcnRzLnNlcnZlcjogdGhlICJzdGFuZGFyZCIgc2VydmVyIGNl cnRmaWNhdGUsIHNpZ25lZCBieSBjZXJ0cy5jYQorCisgICAgLSBjZXJ0cy5zZXJ2ZXJfaG9zdDog dGhlIGhvc3RuYW1lIG9mIHRoZSBjZXJ0cy5zZXJ2ZXIgY2VydGlmaWNhdGUKKworICAgIC0gY2Vy dHMubmV3KCk6IGNyZWF0ZXMgYSBjdXN0b20gY2VydGlmaWNhdGUsIHNpZ25lZCBieSBjZXJ0cy5j YQorICAgICIiIgorCisgICAgZnJvbSBjcnlwdG9ncmFwaHkgaW1wb3J0IHg1MDkKKyAgICBmcm9t IGNyeXB0b2dyYXBoeS5oYXptYXQucHJpbWl0aXZlcyBpbXBvcnQgaGFzaGVzLCBzZXJpYWxpemF0 aW9uCisgICAgZnJvbSBjcnlwdG9ncmFwaHkuaGF6bWF0LnByaW1pdGl2ZXMuYXN5bW1ldHJpYyBp bXBvcnQgcnNhCisgICAgZnJvbSBjcnlwdG9ncmFwaHkueDUwOS5vaWQgaW1wb3J0IE5hbWVPSUQK KworICAgIHRtcGRpciA9IHRtcF9wYXRoX2ZhY3RvcnkubWt0ZW1wKCJ0ZXN0LWNlcnRzIikKKwor ICAgIGNsYXNzIF9DZXJ0czoKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAg ICAgc2VsZi5jYSA9IHNlbGYubmV3KAorICAgICAgICAgICAgICAgIHg1MDkuTmFtZSgKKyAgICAg ICAgICAgICAgICAgICAgW3g1MDkuTmFtZUF0dHJpYnV0ZShOYW1lT0lELkNPTU1PTl9OQU1FLCAi UEcgcHl0ZXN0IENBIildLAorICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgY2E9 VHJ1ZSwKKyAgICAgICAgICAgICkKKworICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaG9zdCA9ICJl eGFtcGxlLm9yZyIKKyAgICAgICAgICAgIHNlbGYuc2VydmVyID0gc2VsZi5uZXcoCisgICAgICAg ICAgICAgICAgeDUwOS5OYW1lKAorICAgICAgICAgICAgICAgICAgICBbeDUwOS5OYW1lQXR0cmli dXRlKE5hbWVPSUQuQ09NTU9OX05BTUUsIHNlbGYuc2VydmVyX2hvc3QpXSwKKyAgICAgICAgICAg ICAgICApCisgICAgICAgICAgICApCisKKyAgICAgICAgZGVmIG5ldyhzZWxmLCBzdWJqZWN0OiB4 NTA5Lk5hbWUsICosIGNhPUZhbHNlKSAtPiBDZXJ0OgorICAgICAgICAgICAgIiIiCisgICAgICAg ICAgICBDcmVhdGVzIGFuZCBzaWducyBhIG5ldyBDZXJ0IHdpdGggdGhlIGdpdmVuIHN1YmplY3Qg bmFtZS4gSWYgY2EgaXMKKyAgICAgICAgICAgIFRydWUsIHRoZSBjZXJ0aWZpY2F0ZSB3aWxsIGJl IHNlbGYtc2lnbmVkOyBvdGhlcndpc2UgdGhlIGNlcnRpZmljYXRlCisgICAgICAgICAgICBpcyBz aWduZWQgYnkgc2VsZi5jYS4KKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAga2V5ID0gcnNh LmdlbmVyYXRlX3ByaXZhdGVfa2V5KAorICAgICAgICAgICAgICAgIHB1YmxpY19leHBvbmVudD02 NTUzNywKKyAgICAgICAgICAgICAgICBrZXlfc2l6ZT0yMDQ4LAorICAgICAgICAgICAgKQorCisg ICAgICAgICAgICBidWlsZGVyID0geDUwOS5DZXJ0aWZpY2F0ZUJ1aWxkZXIoKQorICAgICAgICAg ICAgbm93ID0gZGF0ZXRpbWUuZGF0ZXRpbWUubm93KGRhdGV0aW1lLnRpbWV6b25lLnV0YykKKwor ICAgICAgICAgICAgYnVpbGRlciA9ICgKKyAgICAgICAgICAgICAgICBidWlsZGVyLnN1YmplY3Rf bmFtZShzdWJqZWN0KQorICAgICAgICAgICAgICAgIC5wdWJsaWNfa2V5KGtleS5wdWJsaWNfa2V5 KCkpCisgICAgICAgICAgICAgICAgLnNlcmlhbF9udW1iZXIoeDUwOS5yYW5kb21fc2VyaWFsX251 bWJlcigpKQorICAgICAgICAgICAgICAgIC5ub3RfdmFsaWRfYmVmb3JlKG5vdykKKyAgICAgICAg ICAgICAgICAubm90X3ZhbGlkX2FmdGVyKG5vdyArIGRhdGV0aW1lLnRpbWVkZWx0YShob3Vycz0x KSkKKyAgICAgICAgICAgICkKKworICAgICAgICAgICAgaWYgY2E6CisgICAgICAgICAgICAgICAg YnVpbGRlciA9IGJ1aWxkZXIuaXNzdWVyX25hbWUoc3ViamVjdCkKKyAgICAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgICAgYnVpbGRlciA9IGJ1aWxkZXIuaXNzdWVyX25hbWUoc2VsZi5jYS5j ZXJ0LnN1YmplY3QpCisKKyAgICAgICAgICAgIGJ1aWxkZXIgPSBidWlsZGVyLmFkZF9leHRlbnNp b24oCisgICAgICAgICAgICAgICAgeDUwOS5CYXNpY0NvbnN0cmFpbnRzKGNhPWNhLCBwYXRoX2xl bmd0aD1Ob25lKSwKKyAgICAgICAgICAgICAgICBjcml0aWNhbD1UcnVlLAorICAgICAgICAgICAg KQorCisgICAgICAgICAgICBjZXJ0ID0gYnVpbGRlci5zaWduKAorICAgICAgICAgICAgICAgIHBy aXZhdGVfa2V5PWtleSBpZiBjYSBlbHNlIHNlbGYuY2Eua2V5LAorICAgICAgICAgICAgICAgIGFs Z29yaXRobT1oYXNoZXMuU0hBMjU2KCksCisgICAgICAgICAgICApCisKKyAgICAgICAgICAgICMg RHVtcCB0aGUgY2VydGlmaWNhdGUgYW5kIGtleSB0byBmaWxlLgorICAgICAgICAgICAga2V5cGF0 aCA9IHNlbGYuX3RvZmlsZSgKKyAgICAgICAgICAgICAgICBrZXkucHJpdmF0ZV9ieXRlcygKKyAg ICAgICAgICAgICAgICAgICAgc2VyaWFsaXphdGlvbi5FbmNvZGluZy5QRU0sCisgICAgICAgICAg ICAgICAgICAgIHNlcmlhbGl6YXRpb24uUHJpdmF0ZUZvcm1hdC5QS0NTOCwKKyAgICAgICAgICAg ICAgICAgICAgc2VyaWFsaXphdGlvbi5Ob0VuY3J5cHRpb24oKSwKKyAgICAgICAgICAgICAgICAp LAorICAgICAgICAgICAgICAgIHN1ZmZpeD0iLmtleSIsCisgICAgICAgICAgICApCisgICAgICAg ICAgICBjZXJ0cGF0aCA9IHNlbGYuX3RvZmlsZSgKKyAgICAgICAgICAgICAgICBjZXJ0LnB1Ymxp Y19ieXRlcyhzZXJpYWxpemF0aW9uLkVuY29kaW5nLlBFTSksCisgICAgICAgICAgICAgICAgc3Vm Zml4PSItY2EuY3J0IiBpZiBjYSBlbHNlICIuY3J0IiwKKyAgICAgICAgICAgICkKKworICAgICAg ICAgICAgcmV0dXJuIENlcnQoCisgICAgICAgICAgICAgICAgY2VydD1jZXJ0LAorICAgICAgICAg ICAgICAgIGNlcnRwYXRoPWNlcnRwYXRoLAorICAgICAgICAgICAgICAgIGtleT1rZXksCisgICAg ICAgICAgICAgICAga2V5cGF0aD1rZXlwYXRoLAorICAgICAgICAgICAgKQorCisgICAgICAgIGRl ZiBfdG9maWxlKHNlbGYsIGRhdGE6IGJ5dGVzLCAqLCBzdWZmaXgpIC0+IHN0cjoKKyAgICAgICAg ICAgICIiIgorICAgICAgICAgICAgRHVtcHMgZGF0YSB0byBhIGZpbGUgb24gZGlzayB3aXRoIHRo ZSByZXF1ZXN0ZWQgc3VmZml4IGFuZCByZXR1cm5zCisgICAgICAgICAgICB0aGUgcGF0aC4gVGhl IGZpbGUgaXMgbG9jYXRlZCBzb21ld2hlcmUgaW4gcHl0ZXN0J3MgdGVtcG9yYXJ5CisgICAgICAg ICAgICBkaXJlY3Rvcnkgcm9vdC4KKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgZiA9IHRl bXBmaWxlLk5hbWVkVGVtcG9yYXJ5RmlsZShzdWZmaXg9c3VmZml4LCBkaXI9dG1wZGlyLCBkZWxl dGU9RmFsc2UpCisgICAgICAgICAgICB3aXRoIGY6CisgICAgICAgICAgICAgICAgZi53cml0ZShk YXRhKQorCisgICAgICAgICAgICByZXR1cm4gZi5uYW1lCisKKyAgICByZXR1cm4gX0NlcnRzKCkK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3NzbC9weXQvdGVzdF9jbGllbnQucHkgYi9zcmMvdGVzdC9z c2wvcHl0L3Rlc3RfY2xpZW50LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi41NTZiYWQzM2JmOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3NzbC9weXQvdGVz dF9jbGllbnQucHkKQEAgLTAsMCArMSwyNzggQEAKKyMgQ29weXJpZ2h0IChjKSAyMDI1LCBQb3N0 Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCitpbXBvcnQgY29udGV4dGxpYgoraW1w b3J0IGN0eXBlcworaW1wb3J0IHNvY2tldAoraW1wb3J0IHNzbAoraW1wb3J0IHN0cnVjdAoraW1w b3J0IHRocmVhZGluZworZnJvbSB0eXBpbmcgaW1wb3J0IENhbGxhYmxlCisKK2ltcG9ydCBweXRl c3QKKworaW1wb3J0IHB5cGcKK2Zyb20gbGlicHEgaW1wb3J0IExpYnBxRXJyb3IsIEV4ZWNTdGF0 dXMKKworIyBUaGlzIHN1aXRlIG9wZW5zIHVwIGxvY2FsIFRDUCBwb3J0cyBhbmQgaXMgaGlkZGVu IGJlaGluZCBQR19URVNUX0VYVFJBPXNzbC4KK3B5dGVzdG1hcmsgPSBweXBnLnJlcXVpcmVfdGVz dF9leHRyYXMoInNzbCIpCisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIiwgYXV0 b3VzZT1UcnVlKQorZGVmIHNraXBfaWZfbm9fc3NsX3N1cHBvcnQobGlicHFfaGFuZGxlKToKKyAg ICAiIiJTa2lwcyB0ZXN0cyBpZiBTU0wgc3VwcG9ydCBpcyBub3QgY29uZmlndXJlZC4iIiIKKwor ICAgICMgRGVjbGFyZSBQUXNzbEF0dHJpYnV0ZSgpLgorICAgIFBRc3NsQXR0cmlidXRlID0gbGli cHFfaGFuZGxlLlBRc3NsQXR0cmlidXRlCisgICAgUFFzc2xBdHRyaWJ1dGUucmVzdHlwZSA9IGN0 eXBlcy5jX2NoYXJfcAorICAgIFBRc3NsQXR0cmlidXRlLmFyZ3R5cGVzID0gW2N0eXBlcy5jX3Zv aWRfcCwgY3R5cGVzLmNfY2hhcl9wXQorCisgICAgaWYgbm90IFBRc3NsQXR0cmlidXRlKE5vbmUs IGIibGlicmFyeSIpOgorICAgICAgICBweXRlc3Quc2tpcCgicmVxdWlyZXMgU1NMIHN1cHBvcnQg dG8gYmUgY29uZmlndXJlZCIpCisKKworIworIyBUZXN0IEZpeHR1cmVzCisjCisKKworQHB5dGVz dC5maXh0dXJlCitkZWYgdGNwX3NlcnZlcl9jbGFzcyhyZW1haW5pbmdfdGltZW91dCk6CisgICAg IiIiCisgICAgTWV0YWZpeHR1cmUgdG8gY29tYmluZSByZWxhdGVkIGxvZ2ljIGZvciB0Y3Bfc2Vy dmVyIGFuZCBzc2xfc2VydmVyLgorCisgICAgVE9ETzogY29tYmluZSB3aXRoIHRlc3RfbGlicHEu bG9jYWxfc2VydmVyCisgICAgIiIiCisKKyAgICBjbGFzcyBfVENQU2VydmVyKGNvbnRleHRsaWIu RXhpdFN0YWNrKToKKyAgICAgICAgIiIiCisgICAgICAgIEltcGxlbWVudGF0aW9uIGNsYXNzIGZv ciB0Y3Bfc2VydmVyLiBTZWUgLmJhY2tncm91bmQoKSBmb3IgdGhlIHByaW1hcnkKKyAgICAgICAg ZW50cnkgcG9pbnQgZm9yIHRlc3RzLiBQb3N0Z3JlcyBjbGllbnRzIG1heSBjb25uZWN0IHRvIHRo aXMgc2VydmVyIHZpYQorICAgICAgICAqKnRjcF9zZXJ2ZXIuY29ubmluZm8uCisKKyAgICAgICAg X1RDUFNlcnZlciBkZXJpdmVzIGZyb20gY29udGV4dGxpYi5FeGl0U3RhY2sgdG8gcHJvdmlkZSBl YXN5IGNsZWFudXAgb2YKKyAgICAgICAgYXNzb2NpYXRlZCByZXNvdXJjZXM7IHNlZSB0aGUgZG9j dW1lbnRhdGlvbiBmb3IgdGhhdCBjbGFzcyBmb3IgYSBmdWxsCisgICAgICAgIGV4cGxhbmF0aW9u LgorICAgICAgICAiIiIKKworICAgICAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgICAg ICBzdXBlcigpLl9faW5pdF9fKCkKKworICAgICAgICAgICAgc2VsZi5fdGhyZWFkID0gTm9uZQor ICAgICAgICAgICAgc2VsZi5fdGhyZWFkX2V4YyA9IE5vbmUKKyAgICAgICAgICAgIHNlbGYuX2xp c3RlbmVyID0gc2VsZi5lbnRlcl9jb250ZXh0KAorICAgICAgICAgICAgICAgIHNvY2tldC5zb2Nr ZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSksCisgICAgICAgICAgICApCisK KyAgICAgICAgICAgIHNlbGYuX2JpbmRfYW5kX2xpc3RlbigpCisgICAgICAgICAgICBzb2NrbmFt ZSA9IHNlbGYuX2xpc3RlbmVyLmdldHNvY2tuYW1lKCkKKyAgICAgICAgICAgIHNlbGYuY29ubmlu Zm8gPSBkaWN0KAorICAgICAgICAgICAgICAgIGhvc3RhZGRyPXNvY2tuYW1lWzBdLAorICAgICAg ICAgICAgICAgIHBvcnQ9c29ja25hbWVbMV0sCisgICAgICAgICAgICApCisKKyAgICAgICAgZGVm IF9iaW5kX2FuZF9saXN0ZW4oc2VsZik6CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIERv ZXMgdGhlIGFjdHVhbCB3b3JrIG9mIGJpbmRpbmcgdGhlIHNvY2tldCBhbmQgbGlzdGVuaW5nIGZv cgorICAgICAgICAgICAgY29ubmVjdGlvbnMuCisKKyAgICAgICAgICAgIFRoZSBsaXN0ZW4gYmFj a2xvZyBpcyBjdXJyZW50bHkgaGFyZGNvZGVkIHRvIG9uZS4KKyAgICAgICAgICAgICIiIgorICAg ICAgICAgICAgc2VsZi5fbGlzdGVuZXIuYmluZCgoIjEyNy4wLjAuMSIsIDApKQorICAgICAgICAg ICAgc2VsZi5fbGlzdGVuZXIubGlzdGVuKDEpCisKKyAgICAgICAgZGVmIGJhY2tncm91bmQoc2Vs ZiwgZm46IENhbGxhYmxlW1tzb2NrZXQuc29ja2V0XSwgTm9uZV0pIC0+IE5vbmU6CisgICAgICAg ICAgICAiIiIKKyAgICAgICAgICAgIEFjY2VwdHMgYSBjbGllbnQgY29ubmVjdGlvbiBvbiBhIGJh Y2tncm91bmQgdGhyZWFkIGFuZCBwYXNzZXMgaXQgdG8KKyAgICAgICAgICAgIHRoZSBwcm92aWRl ZCBjYWxsYmFjay4gQW55IGV4Y2VwdGlvbnMgcmFpc2VkIGZyb20gdGhlIGNhbGxiYWNrIHdpbGwK KyAgICAgICAgICAgIGJlIHJlLXJhaXNlZCBvbiB0aGUgbWFpbiB0aHJlYWQgZHVyaW5nIGZpeHR1 cmUgdGVhcmRvd24uCisKKyAgICAgICAgICAgIEJsb2NraW5nIG9wZXJhdGlvbnMgb24gdGhlIGNv bm5lY3RlZCBzb2NrZXQgZGVmYXVsdCB0byB1c2luZyB0aGUKKyAgICAgICAgICAgIHJlbWFpbmlu Z190aW1lb3V0KCksIHRob3VnaCB0aGlzIGNhbiBiZSBjaGFuZ2VkIGJ5IHRoZSB0ZXN0IHZpYSB0 aGUKKyAgICAgICAgICAgIHNvY2tldCdzIC5zZXR0aW1lb3V0KCkuCisgICAgICAgICAgICAiIiIK KworICAgICAgICAgICAgZGVmIF9iZygpOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAg ICAgICAgICAgICAgc2VsZi5fbGlzdGVuZXIuc2V0dGltZW91dChyZW1haW5pbmdfdGltZW91dCgp KQorICAgICAgICAgICAgICAgICAgICBzb2NrLCBfID0gc2VsZi5fbGlzdGVuZXIuYWNjZXB0KCkK KworICAgICAgICAgICAgICAgICAgICB3aXRoIHNvY2s6CisgICAgICAgICAgICAgICAgICAgICAg ICBzb2NrLnNldHRpbWVvdXQocmVtYWluaW5nX3RpbWVvdXQoKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgIGZuKHNvY2spCisKKyAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6 CisgICAgICAgICAgICAgICAgICAgICMgU2F2ZSB0aGUgZXhjZXB0aW9uIGZvciByZS1yYWlzaW5n IG9uIHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fdGhyZWFkX2V4 YyA9IGUKKworICAgICAgICAgICAgIyBUT0RPOiByYXRoZXIgdGhhbiB1c2luZyBjYWxsYmFjaygp LCBjb25zaWRlciBleHBsaWNpdGx5IHNpZ25hbGluZworICAgICAgICAgICAgIyB0aGUgZm4oKSBp bXBsZW1lbnRhdGlvbiB0byBzdG9wIGVhcmx5IGlmIHdlIGdldCBhbiBleGNlcHRpb24uCisgICAg ICAgICAgICAjIE90aGVyd2lzZSB3ZSdsbCBoYW5nIHVudGlsIHRoZSBlbmQgb2YgdGhlIHRpbWVv dXQuCisgICAgICAgICAgICBzZWxmLl90aHJlYWQgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD1f YmcpCisgICAgICAgICAgICBzZWxmLmNhbGxiYWNrKHNlbGYuX2pvaW4pCisKKyAgICAgICAgICAg IHNlbGYuX3RocmVhZC5zdGFydCgpCisKKyAgICAgICAgZGVmIF9qb2luKHNlbGYpOgorICAgICAg ICAgICAgIiIiCisgICAgICAgICAgICBXYWl0cyBmb3IgdGhlIGJhY2tncm91bmQgdGhyZWFkIHRv IGZpbmlzaCBhbmQgcmFpc2VzIGFueSB0aHJvd24KKyAgICAgICAgICAgIGV4Y2VwdGlvbi4gVGhp cyBpcyBjYWxsZWQgZHVyaW5nIGZpeHR1cmUgdGVhcmRvd24uCisgICAgICAgICAgICAiIiIKKyAg ICAgICAgICAgICMgR2l2ZSBhIGxpdHRsZSBiaXQgb2Ygd2lnZ2xlIHJvb20gb24gdGhlIGpvaW4g dGltZW91dCwgc2luY2Ugd2UncmUKKyAgICAgICAgICAgICMgcmFjaW5nIGFnYWluc3QgdGhlIHRl c3QncyBvd24gdXNlIG9mIHJlbWFpbmluZ190aW1lb3V0KCkuIChJdCdzCisgICAgICAgICAgICAj IHByZWZlcmFibGUgdG8gbGV0IHRlc3RzIHJlcG9ydCB0aW1lb3V0czsgdGhlIHN0YWNrIHRyYWNl cyB3aWxsCisgICAgICAgICAgICAjIGhlbHAgd2l0aCBkZWJ1Z2dpbmcuKQorICAgICAgICAgICAg c2VsZi5fdGhyZWFkLmpvaW4ocmVtYWluaW5nX3RpbWVvdXQoKSArIDEpCisgICAgICAgICAgICBp ZiBzZWxmLl90aHJlYWQuaXNfYWxpdmUoKToKKyAgICAgICAgICAgICAgICByYWlzZSBUaW1lb3V0 RXJyb3IoImJhY2tncm91bmQgdGhyZWFkIGlzIHN0aWxsIHJ1bm5pbmcgYWZ0ZXIgdGltZW91dCIp CisKKyAgICAgICAgICAgIGlmIHNlbGYuX3RocmVhZF9leGMgaXMgbm90IE5vbmU6CisgICAgICAg ICAgICAgICAgcmFpc2Ugc2VsZi5fdGhyZWFkX2V4YworCisgICAgcmV0dXJuIF9UQ1BTZXJ2ZXIK KworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiB0Y3Bfc2VydmVyKHRjcF9zZXJ2ZXJfY2xhc3MpOgor ICAgICIiIgorICAgIE9wZW5zIHVwIGEgbG9jYWwgVENQIHNvY2tldCBmb3IgbW9ja2luZyBhIFBv c3RncmVzIHNlcnZlciBvbiBhIGJhY2tncm91bmQKKyAgICB0aHJlYWQuIFNlZSB0aGUgX1RDUFNl cnZlciBBUEkgZm9yIHVzYWdlLgorICAgICIiIgorICAgIHdpdGggdGNwX3NlcnZlcl9jbGFzcygp IGFzIHM6CisgICAgICAgIHlpZWxkIHMKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBzc2xfc2Vy dmVyKHRjcF9zZXJ2ZXJfY2xhc3MsIGNlcnRzKToKKyAgICAiIiIKKyAgICBMaWtlIHRjcF9zZXJ2 ZXIsIGJ1dCB3aXRoIGFuIGFkZGl0aW9uYWwgLmJhY2tncm91bmRfc3NsKCkgbWV0aG9kIHdoaWNo IHdpbGwKKyAgICBwZXJmb3JtIGEgU1NMUmVxdWVzdCBoYW5kc2hha2Ugb24gdGhlIHNvY2tldCBi ZWZvcmUgaGFuZGluZyB0aGUgY29ubmVjdGlvbgorICAgIHRvIHRoZSB0ZXN0IGNhbGxiYWNrLgor CisgICAgVGhpcyBzZXJ2ZXIgdXNlcyBjZXJ0cy5zZXJ2ZXIgYXMgaXRzIGlkZW50aXR5LgorICAg ICIiIgorCisgICAgY2xhc3MgX1NTTFNlcnZlcih0Y3Bfc2VydmVyX2NsYXNzKToKKyAgICAgICAg ZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXygpCisKKyAg ICAgICAgICAgIHNlbGYuY29ubmluZm9bImhvc3QiXSA9IGNlcnRzLnNlcnZlcl9ob3N0CisKKyAg ICAgICAgICAgIHNlbGYuX2N0eCA9IHNzbC5TU0xDb250ZXh0KHNzbC5QUk9UT0NPTF9UTFNfU0VS VkVSKQorICAgICAgICAgICAgc2VsZi5fY3R4LmxvYWRfY2VydF9jaGFpbihjZXJ0cy5zZXJ2ZXIu Y2VydHBhdGgsIGNlcnRzLnNlcnZlci5rZXlwYXRoKQorCisgICAgICAgIGRlZiBiYWNrZ3JvdW5k X3NzbChzZWxmLCBmbjogQ2FsbGFibGVbW3NzbC5TU0xTb2NrZXRdLCBOb25lXSkgLT4gTm9uZToK KyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgSW52b2tlcyBhIHNlcnZlciBjYWxsYmFjayBh cyB3aXRoIC5iYWNrZ3JvdW5kKCksIGJ1dCBhbiBTU0xSZXF1ZXN0CisgICAgICAgICAgICBoYW5k c2hha2UgaXMgcGVyZm9ybWVkIGZpcnN0LCBhbmQgdGhlIHNvY2tldCBwcm92aWRlZCB0byB0aGUK KyAgICAgICAgICAgIGNhbGxiYWNrIGhhcyBiZWVuIHdyYXBwZWQgaW4gYW4gT3BlblNTTCBsYXll ci4KKyAgICAgICAgICAgICIiIgorCisgICAgICAgICAgICBkZWYgaGFuZHNoYWtlKHM6IHNvY2tl dC5zb2NrZXQpOgorICAgICAgICAgICAgICAgIHBrdGxlbiA9IHN0cnVjdC51bnBhY2soIiFJIiwg cy5yZWN2KDQpKVswXQorCisgICAgICAgICAgICAgICAgIyBNYWtlIHN1cmUgd2UgZ2V0IGFuIFNT TFJlcXVlc3QuCisgICAgICAgICAgICAgICAgdmVyc2lvbiA9IHN0cnVjdC51bnBhY2soIiFISCIs IHMucmVjdig0KSkKKyAgICAgICAgICAgICAgICBhc3NlcnQgdmVyc2lvbiA9PSAoMTIzNCwgNTY3 OSkKKyAgICAgICAgICAgICAgICBhc3NlcnQgcGt0bGVuID09IDgKKworICAgICAgICAgICAgICAg ICMgQWNjZXB0IHRoZSBTU0xSZXF1ZXN0LgorICAgICAgICAgICAgICAgIHMuc2VuZChiIlMiKQor CisgICAgICAgICAgICAgICAgd2l0aCBzZWxmLl9jdHgud3JhcF9zb2NrZXQocywgc2VydmVyX3Np ZGU9VHJ1ZSkgYXMgd3JhcHBlZDoKKyAgICAgICAgICAgICAgICAgICAgZm4od3JhcHBlZCkKKwor ICAgICAgICAgICAgc2VsZi5iYWNrZ3JvdW5kKGhhbmRzaGFrZSkKKworICAgIHdpdGggX1NTTFNl cnZlcigpIGFzIHM6CisgICAgICAgIHlpZWxkIHMKKworCisjCisjIFRlc3RzCisjCisKKworQHB5 dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJzc2xtb2RlIiwgKCJyZXF1aXJlIiwgInZlcmlmeS1jYSIs ICJ2ZXJpZnktZnVsbCIpKQorZGVmIHRlc3Rfc2VydmVyX3dpdGhfc3NsX2Rpc2FibGVkKGNvbm5l Y3QsIHRjcF9zZXJ2ZXIsIGNlcnRzLCBzc2xtb2RlKToKKyAgICAiIiIKKyAgICBNYWtlIHN1cmUg Y2xpZW50IHJlZnVzZXMgdG8gdGFsayB0byBub24tU1NMIHNlcnZlcnMgd2l0aCBzdHJpY3Rlcgor ICAgIHNzbG1vZGVzLgorICAgICIiIgorCisgICAgZGVmIHJlZnVzZV9zc2woczogc29ja2V0LnNv Y2tldCk6CisgICAgICAgIHBrdGxlbiA9IHN0cnVjdC51bnBhY2soIiFJIiwgcy5yZWN2KDQpKVsw XQorCisgICAgICAgICMgTWFrZSBzdXJlIHdlIGdldCBhbiBTU0xSZXF1ZXN0LgorICAgICAgICB2 ZXJzaW9uID0gc3RydWN0LnVucGFjaygiIUhIIiwgcy5yZWN2KDQpKQorICAgICAgICBhc3NlcnQg dmVyc2lvbiA9PSAoMTIzNCwgNTY3OSkKKyAgICAgICAgYXNzZXJ0IHBrdGxlbiA9PSA4CisKKyAg ICAgICAgIyBSZWZ1c2UgdGhlIFNTTFJlcXVlc3QuCisgICAgICAgIHMuc2VuZChiIk4iKQorCisg ICAgICAgICMgV2FpdCBmb3IgdGhlIGNsaWVudCB0byBjbG9zZSB0aGUgY29ubmVjdGlvbi4KKyAg ICAgICAgYXNzZXJ0IG5vdCBzLnJlY3YoMSksICJjbGllbnQgc2VudCB1bmV4cGVjdGVkIGRhdGEi CisKKyAgICB0Y3Bfc2VydmVyLmJhY2tncm91bmQocmVmdXNlX3NzbCkKKworICAgIHdpdGggcHl0 ZXN0LnJhaXNlcyhMaWJwcUVycm9yLCBtYXRjaD0ic2VydmVyIGRvZXMgbm90IHN1cHBvcnQgU1NM Iik6CisgICAgICAgIGNvbm5lY3QoCisgICAgICAgICAgICAqKnRjcF9zZXJ2ZXIuY29ubmluZm8s CisgICAgICAgICAgICBzc2xyb290Y2VydD1jZXJ0cy5jYS5jZXJ0cGF0aCwKKyAgICAgICAgICAg IHNzbG1vZGU9c3NsbW9kZSwKKyAgICAgICAgKQorCisKK2RlZiB0ZXN0X3ZlcmlmeV9mdWxsX2Nv bm5lY3Rpb24oY29ubmVjdCwgc3NsX3NlcnZlciwgY2VydHMpOgorICAgICIiIkNvbXBsZXRlcyBh IHZlcmlmeS1mdWxsIGNvbm5lY3Rpb24gYW5kIGVtcHR5IHF1ZXJ5LiIiIgorCisgICAgZGVmIGhh bmRsZV9lbXB0eV9xdWVyeShzOiBzc2wuU1NMU29ja2V0KToKKyAgICAgICAgcGt0bGVuID0gc3Ry dWN0LnVucGFjaygiIUkiLCBzLnJlY3YoNCkpWzBdCisKKyAgICAgICAgIyBDaGVjayB0aGUgc3Rh cnR1cCBwYWNrZXQgdmVyc2lvbiwgdGhlbiBkaXNjYXJkIHRoZSByZW1haW5kZXIuCisgICAgICAg IHZlcnNpb24gPSBzdHJ1Y3QudW5wYWNrKCIhSEgiLCBzLnJlY3YoNCkpCisgICAgICAgIGFzc2Vy dCB2ZXJzaW9uID09ICgzLCAwKQorICAgICAgICBzLnJlY3YocGt0bGVuIC0gOCkKKworICAgICAg ICAjIFNlbmQgdGhlIHJlcXVpcmVkIGxpdGFueSBvZiBzZXJ2ZXIgbWVzc2FnZXMuCisgICAgICAg IHMuc2VuZChzdHJ1Y3QucGFjaygiIWNJSSIsIGIiUiIsIDgsIDApKSAgIyBBdXRoZW50aWNhdGlv bk9LCisKKyAgICAgICAgIyBQYXJhbWV0ZXJTdGF0dXM6IGNsaWVudF9lbmNvZGluZworICAgICAg ICBrZXkgPSBiImNsaWVudF9lbmNvZGluZ1wwIgorICAgICAgICB2YWwgPSBiIlVURi04XDAiCisg ICAgICAgIHMuc2VuZChzdHJ1Y3QucGFjaygiIWNJIiwgYiJTIiwgNCArIGxlbihrZXkpICsgbGVu KHZhbCkpICsga2V5ICsgdmFsKQorCisgICAgICAgICMgUGFyYW1ldGVyU3RhdHVzOiBEYXRlU3R5 bGUKKyAgICAgICAga2V5ID0gYiJEYXRlU3R5bGVcMCIKKyAgICAgICAgdmFsID0gYiJJU08sIE1E WVwwIgorICAgICAgICBzLnNlbmQoc3RydWN0LnBhY2soIiFjSSIsIGIiUyIsIDQgKyBsZW4oa2V5 KSArIGxlbih2YWwpKSArIGtleSArIHZhbCkKKworICAgICAgICBzLnNlbmQoc3RydWN0LnBhY2so IiFjSUlJIiwgYiJLIiwgMTIsIDEyMzQsIDEyMzQpKSAgIyBCYWNrZW5kS2V5RGF0YQorICAgICAg ICBzLnNlbmQoc3RydWN0LnBhY2soIiFjSWMiLCBiIloiLCA1LCBiIkkiKSkgICMgUmVhZHlGb3JR dWVyeQorCisgICAgICAgICMgRXhwZWN0IGFuIGVtcHR5IHF1ZXJ5LgorICAgICAgICBwa3R0eXBl ID0gcy5yZWN2KDEpCisgICAgICAgIGFzc2VydCBwa3R0eXBlID09IGIiUSIKKyAgICAgICAgcGt0 bGVuID0gc3RydWN0LnVucGFjaygiIUkiLCBzLnJlY3YoNCkpWzBdCisgICAgICAgIGFzc2VydCBz LnJlY3YocGt0bGVuIC0gNCkgPT0gYiJcMCIKKworICAgICAgICAjIFNlbmQgYW4gRW1wdHlRdWVy eVJlc3BvbnNlK1JlYWR5Rm9yUXVlcnkuCisgICAgICAgIHMuc2VuZChzdHJ1Y3QucGFjaygiIWNJ IiwgYiJJIiwgNCkpCisgICAgICAgIHMuc2VuZChzdHJ1Y3QucGFjaygiIWNJYyIsIGIiWiIsIDUs IGIiSSIpKQorCisgICAgICAgICMgbGlicHEgc2hvdWxkIHRlcm1pbmF0ZSBhbmQgY2xvc2UgdGhl IGNvbm5lY3Rpb24uCisgICAgICAgIGFzc2VydCBzLnJlY3YoMSkgPT0gYiJYIgorICAgICAgICBw a3RsZW4gPSBzdHJ1Y3QudW5wYWNrKCIhSSIsIHMucmVjdig0KSlbMF0KKyAgICAgICAgYXNzZXJ0 IHBrdGxlbiA9PSA0CisKKyAgICAgICAgYXNzZXJ0IG5vdCBzLnJlY3YoMSksICJjbGllbnQgc2Vu dCB1bmV4cGVjdGVkIGRhdGEiCisKKyAgICBzc2xfc2VydmVyLmJhY2tncm91bmRfc3NsKGhhbmRs ZV9lbXB0eV9xdWVyeSkKKworICAgIGNvbm4gPSBjb25uZWN0KAorICAgICAgICAqKnNzbF9zZXJ2 ZXIuY29ubmluZm8sCisgICAgICAgIHNzbHJvb3RjZXJ0PWNlcnRzLmNhLmNlcnRwYXRoLAorICAg ICAgICBzc2xtb2RlPSJ2ZXJpZnktZnVsbCIsCisgICAgKQorICAgIHdpdGggY29ubjoKKyAgICAg ICAgYXNzZXJ0IGNvbm4uZXhlYygiIikuc3RhdHVzKCkgPT0gRXhlY1N0YXR1cy5QR1JFU19FTVBU WV9RVUVSWQotLSAKMi41Mi4wCgo= --96ced96246521a62ba81864c53b3a5475cc189cbc0ad0bfdf74d8b032f52 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v6-0007-WIP-pytest-Add-some-server-side-SSL-tests.patch Content-Type: text/x-patch; charset=utf-8; name=v6-0007-WIP-pytest-Add-some-server-side-SSL-tests.patch RnJvbSA3NzJkNDAyNWEyZDczMjFmMzI0Y2M4YjlkOGFiYTkyN2FlMzA0ZTRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogVHVlLCAxNiBEZWMgMjAyNSAwOTozMTo0NiArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjYgNy83XSBXSVA6IHB5dGVzdDogQWRkIHNvbWUgc2VydmVyLXNpZGUgU1NMIHRl c3RzCgpJbiB0aGUgc2FtZSB2ZWluIGFzIHRoZSBwcmV2aW91cyBjb21taXQsIHRoaXMgaXMgYSBz ZXJ2ZXItb25seSB0ZXN0CnN1aXRlIG9wZXJhdGluZyBhZ2FpbnN0IGEgbW9jayBjbGllbnQuIFRo ZSB0ZXN0IGl0c2VsZiBpcyBhIGhlYXZpbHkKcGFyYW1ldGVyaXplZCBjaGVjayBmb3IgZGlyZWN0 LVNTTCBoYW5kc2hha2UgYmVoYXZpb3IsIHVzaW5nIGEKY29tYmluYXRpb24gb2YgInN0YW5kYXJk IiBhbmQgImN1c3RvbSIgY2VydGlmaWNhdGVzIHZpYSB0aGUgY2VydHMKZml4dHVyZS4KCmluc3Rh bGxjaGVjayBpcyBjdXJyZW50bHkgdW5zdXBwb3J0ZWQsIGJ1dCB0aGUgYXJjaGl0ZWN0dXJlIGhh cyBzb21lCmV4dGVuc2lvbiBwb2ludHMgdGhhdCBzaG91bGQgbWFrZSBpdCBwb3NzaWJsZSBsYXRl ci4gRm9yIG5vdywgYSBuZXcKc2VydmVyIGlzIGFsd2F5cyBzdGFydGVkIGZvciB0aGUgdGVzdCBz ZXNzaW9uLgoKVE9ET3M6Ci0gaW1wcm92ZSByZW1haW5pbmdfdGltZW91dCgpIGludGVncmF0aW9u IHdpdGggc29ja2V0IG9wZXJhdGlvbnM7IGF0IHRoZQogIG1vbWVudCwgdGhlIHRpbWVvdXQgcmVz ZXRzIG9uIGV2ZXJ5IGNhbGwgcmF0aGVyIHRoYW4gZGVjcmVtZW50aW5nCi0tLQogc3JjL3Rlc3Qv c3NsL3B5dC9jb25mdGVzdC5weSAgICB8ICA1MCArKysrKysrKysrCiBzcmMvdGVzdC9zc2wvcHl0 L3Rlc3Rfc2VydmVyLnB5IHwgMTYxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAy IGZpbGVzIGNoYW5nZWQsIDIxMSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L3Rlc3Qvc3NsL3B5dC90ZXN0X3NlcnZlci5weQoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3NzbC9w eXQvY29uZnRlc3QucHkgYi9zcmMvdGVzdC9zc2wvcHl0L2NvbmZ0ZXN0LnB5CmluZGV4IDg3MGY3 MzhhYzQ0Li5kMTIxNzI0ODAwYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3NsL3B5dC9jb25mdGVz dC5weQorKysgYi9zcmMvdGVzdC9zc2wvcHl0L2NvbmZ0ZXN0LnB5CkBAIC0xMjYsMyArMTI2LDUz IEBAIGRlZiBjZXJ0cyhjcnlwdG9ncmFwaHksIHRtcF9wYXRoX2ZhY3RvcnkpOgogICAgICAgICAg ICAgcmV0dXJuIGYubmFtZQogCiAgICAgcmV0dXJuIF9DZXJ0cygpCisKKworQHB5dGVzdC5maXh0 dXJlKHNjb3BlPSJtb2R1bGUiLCBhdXRvdXNlPVRydWUpCitkZWYgc3NsX3NldHVwKHBnX3NlcnZl cl9tb2R1bGUsIGNlcnRzLCBkYXRhZGlyKToKKyAgICAiIiIKKyAgICBTZXRzIHVwIHJlcXVpcmVk IHNlcnZlciBzZXR0aW5ncyBmb3IgYWxsIHRlc3RzIGluIHRoaXMgbW9kdWxlLgorICAgICIiIgor ICAgIHRyeToKKyAgICAgICAgd2l0aCBwZ19zZXJ2ZXJfbW9kdWxlLnJlc3RhcnRpbmcoKSBhcyBz OgorICAgICAgICAgICAgcy5jb25mLnNldCgKKyAgICAgICAgICAgICAgICBzc2w9Im9uIiwKKyAg ICAgICAgICAgICAgICBzc2xfY2FfZmlsZT1jZXJ0cy5jYS5jZXJ0cGF0aCwKKyAgICAgICAgICAg ICAgICBzc2xfY2VydF9maWxlPWNlcnRzLnNlcnZlci5jZXJ0cGF0aCwKKyAgICAgICAgICAgICAg ICBzc2xfa2V5X2ZpbGU9Y2VydHMuc2VydmVyLmtleXBhdGgsCisgICAgICAgICAgICApCisKKyAg ICAgICAgICAgICMgUmVqZWN0IGJ5IGRlZmF1bHQuCisgICAgICAgICAgICBzLmhiYS5wcmVwZW5k KCJob3N0c3NsIGFsbCBhbGwgYWxsIHJlamVjdCIpCisKKyAgICBleGNlcHQgc3VicHJvY2Vzcy5D YWxsZWRQcm9jZXNzRXJyb3I6CisgICAgICAgICMgVGhpcyBpcyBhIGRlY2VudCBwbGFjZSB0byBz a2lwIGlmIHRoZSBzZXJ2ZXIgaXNuJ3Qgc2V0IHVwIGZvciBTU0wuCisgICAgICAgIGxvZ3BhdGgg PSBkYXRhZGlyIC8gInBvc3RncmVzcWwubG9nIgorICAgICAgICB1bnN1cHBvcnRlZCA9IHJlLmNv bXBpbGUoIlNTTCBpcyBub3Qgc3VwcG9ydGVkIikKKworICAgICAgICB3aXRoIG9wZW4obG9ncGF0 aCwgInIiKSBhcyBsb2c6CisgICAgICAgICAgICBmb3IgbGluZSBpbiBsb2c6CisgICAgICAgICAg ICAgICAgaWYgdW5zdXBwb3J0ZWQuc2VhcmNoKGxpbmUpOgorICAgICAgICAgICAgICAgICAgICBw eXRlc3Quc2tpcCgidGhlIHNlcnZlciBkb2VzIG5vdCBzdXBwb3J0IFNTTCIpCisKKyAgICAgICAg IyBTb21lIG90aGVyIGVycm9yIGhhcHBlbmVkLgorICAgICAgICByYWlzZQorCisgICAgdXNlcnMg PSBwZ19zZXJ2ZXJfbW9kdWxlLmNyZWF0ZV91c2Vycygic3NsIikKKyAgICBkYnMgPSBwZ19zZXJ2 ZXJfbW9kdWxlLmNyZWF0ZV9kYnMoInNzbCIpCisKKyAgICByZXR1cm4gKHVzZXJzLCBkYnMpCisK KworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorZGVmIGNsaWVudF9jZXJ0KHNzbF9z ZXR1cCwgY2VydHMpOgorICAgICIiIgorICAgIENyZWF0ZXMgYSBDZXJ0IGZvciB0aGUgInNzbCIg dXNlci4KKyAgICAiIiIKKyAgICBmcm9tIGNyeXB0b2dyYXBoeSBpbXBvcnQgeDUwOQorICAgIGZy b20gY3J5cHRvZ3JhcGh5Lng1MDkub2lkIGltcG9ydCBOYW1lT0lECisKKyAgICB1c2VycywgXyA9 IHNzbF9zZXR1cAorICAgIHVzZXIgPSB1c2Vyc1sic3NsIl0KKworICAgIHJldHVybiBjZXJ0cy5u ZXcoeDUwOS5OYW1lKFt4NTA5Lk5hbWVBdHRyaWJ1dGUoTmFtZU9JRC5DT01NT05fTkFNRSwgdXNl cildKSkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3NzbC9weXQvdGVzdF9zZXJ2ZXIucHkgYi9zcmMv dGVzdC9zc2wvcHl0L3Rlc3Rfc2VydmVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi5kNWNiMTRiNmM5YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3NzbC9w eXQvdGVzdF9zZXJ2ZXIucHkKQEAgLTAsMCArMSwxNjEgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDI1 LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCitpbXBvcnQgcmUKK2ltcG9y dCBzb2NrZXQKK2ltcG9ydCBzc2wKK2ltcG9ydCBzdHJ1Y3QKKworaW1wb3J0IHB5dGVzdAorCitp bXBvcnQgcHlwZworCisjIFRoaXMgc3VpdGUgb3BlbnMgdXAgbG9jYWwgVENQIHBvcnRzIGFuZCBp cyBoaWRkZW4gYmVoaW5kIFBHX1RFU1RfRVhUUkE9c3NsLgorcHl0ZXN0bWFyayA9IHB5cGcucmVx dWlyZV90ZXN0X2V4dHJhcygic3NsIikKKworIyBGb3IgdXNlIHdpdGggdGhlIGBjcmVkc2AgcGFy YW1ldGVyIGJlbG93LgorQ0xJRU5UID0gImNsaWVudCIKK1NFUlZFUiA9ICJzZXJ2ZXIiCisKKwor IyBmbXQ6IG9mZgorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICJhdXRoX21ldGhvZCwg ICAgICAgICAgICAgICAgICAgIGNyZWRzLCAgZXhwZWN0ZWRfZXJyb3IiLAorWworICAgICMgVHJ1 c3QgYWxsb3dzIGFueXRoaW5nLgorICAgICgidHJ1c3QiLCAgICAgICAgICAgICAgICAgICAgICAg IE5vbmUsICAgTm9uZSksCisgICAgKCJ0cnVzdCIsICAgICAgICAgICAgICAgICAgICAgICAgQ0xJ RU5ULCBOb25lKSwKKyAgICAoInRydXN0IiwgICAgICAgICAgICAgICAgICAgICAgICBTRVJWRVIs IE5vbmUpLAorCisgICAgIyB2ZXJpZnktY2EgYWxsb3dzIGFueSBDQS1zaWduZWQgY2VydGlmaWNh dGUuCisgICAgKCJ0cnVzdCBjbGllbnRjZXJ0PXZlcmlmeS1jYSIsICAgTm9uZSwgICAicmVxdWly ZXMgYSB2YWxpZCBjbGllbnQgY2VydGlmaWNhdGUiKSwKKyAgICAoInRydXN0IGNsaWVudGNlcnQ9 dmVyaWZ5LWNhIiwgICBDTElFTlQsIE5vbmUpLAorICAgICgidHJ1c3QgY2xpZW50Y2VydD12ZXJp ZnktY2EiLCAgIFNFUlZFUiwgTm9uZSksCisKKyAgICAjIGNlcnQgYW5kIHZlcmlmeS1mdWxsIGFs bG93IG9ubHkgdGhlIGNvcnJlY3QgY2VydGlmaWNhdGUuCisgICAgKCJ0cnVzdCBjbGllbnRjZXJ0 PXZlcmlmeS1mdWxsIiwgTm9uZSwgICAicmVxdWlyZXMgYSB2YWxpZCBjbGllbnQgY2VydGlmaWNh dGUiKSwKKyAgICAoInRydXN0IGNsaWVudGNlcnQ9dmVyaWZ5LWZ1bGwiLCBDTElFTlQsIE5vbmUp LAorICAgICgidHJ1c3QgY2xpZW50Y2VydD12ZXJpZnktZnVsbCIsIFNFUlZFUiwgImF1dGhlbnRp Y2F0aW9uIGZhaWxlZCBmb3IgdXNlciIpLAorICAgICgiY2VydCIsICAgICAgICAgICAgICAgICAg ICAgICAgIE5vbmUsICAgInJlcXVpcmVzIGEgdmFsaWQgY2xpZW50IGNlcnRpZmljYXRlIiksCisg ICAgKCJjZXJ0IiwgICAgICAgICAgICAgICAgICAgICAgICAgQ0xJRU5ULCBOb25lKSwKKyAgICAo ImNlcnQiLCAgICAgICAgICAgICAgICAgICAgICAgICBTRVJWRVIsICJhdXRoZW50aWNhdGlvbiBm YWlsZWQgZm9yIHVzZXIiKSwKK10sCispCisjIGZtdDogb24KK2RlZiB0ZXN0X2RpcmVjdF9zc2xf Y2VydGlmaWNhdGVfYXV0aGVudGljYXRpb24oCisgICAgcGcsCisgICAgc3NsX3NldHVwLAorICAg IGNlcnRzLAorICAgIGNsaWVudF9jZXJ0LAorICAgIHJlbWFpbmluZ190aW1lb3V0LAorICAgICMg dGVzdCBwYXJhbWV0ZXJzCisgICAgYXV0aF9tZXRob2QsCisgICAgY3JlZHMsCisgICAgZXhwZWN0 ZWRfZXJyb3IsCispOgorICAgICIiIgorICAgIFRlc3RzIGRpcmVjdCBTU0wgY29ubmVjdGlvbnMg d2l0aCB2YXJpb3VzIGNsaWVudC1jZXJ0aWZpY2F0ZS9IQkEKKyAgICBjb21iaW5hdGlvbnMuCisg ICAgIiIiCisKKyAgICAjIFNldCB1cCB0aGUgSEJBIGFzIGRlc2lyZWQgYnkgdGhlIHRlc3QuCisg ICAgdXNlcnMsIGRicyA9IHNzbF9zZXR1cAorCisgICAgdXNlciA9IHVzZXJzWyJzc2wiXQorICAg IGRiID0gZGJzWyJzc2wiXQorCisgICAgd2l0aCBwZy5yZWxvYWRpbmcoKSBhcyBzOgorICAgICAg ICBzLmhiYS5wcmVwZW5kKAorICAgICAgICAgICAgWyJob3N0c3NsIiwgZGIsIHVzZXIsICIxMjcu MC4wLjEvMzIiLCBhdXRoX21ldGhvZF0sCisgICAgICAgICAgICBbImhvc3Rzc2wiLCBkYiwgdXNl ciwgIjo6MS8xMjgiLCBhdXRoX21ldGhvZF0sCisgICAgICAgICkKKworICAgICMgQ29uZmlndXJl IHRoZSBTU0wgc2V0dGluZ3MgZm9yIHRoZSBjbGllbnQuCisgICAgY3R4ID0gc3NsLlNTTENvbnRl eHQoc3NsLlBST1RPQ09MX1RMU19DTElFTlQpCisgICAgY3R4LmxvYWRfdmVyaWZ5X2xvY2F0aW9u cyhjYWZpbGU9Y2VydHMuY2EuY2VydHBhdGgpCisgICAgY3R4LnNldF9hbHBuX3Byb3RvY29scyhb InBvc3RncmVzcWwiXSkgICMgZm9yIGRpcmVjdCBTU0wKKworICAgICMgTG9hZCB1cCBhIGNsaWVu dCBjZXJ0aWZpY2F0ZSBpZiByZXF1aXJlZCBieSB0aGUgdGVzdC4KKyAgICBpZiBjcmVkcyA9PSBD TElFTlQ6CisgICAgICAgIGN0eC5sb2FkX2NlcnRfY2hhaW4oY2xpZW50X2NlcnQuY2VydHBhdGgs IGNsaWVudF9jZXJ0LmtleXBhdGgpCisgICAgZWxpZiBjcmVkcyA9PSBTRVJWRVI6CisgICAgICAg ICMgVXNpbmcgYSBzZXJ2ZXIgY2VydGlmaWNhdGUgYXMgdGhlIGNsaWVudCBjcmVkZW50aWFsIGlz IGV4cGVjdGVkIHRvCisgICAgICAgICMgd29yayBvbmx5IGZvciBjbGllbnRjZXJ0PXZlcmlmeS1j YSAoYW5kIGB0cnVzdGAsIG5hdHVyYWxseSkuCisgICAgICAgIGN0eC5sb2FkX2NlcnRfY2hhaW4o Y2VydHMuc2VydmVyLmNlcnRwYXRoLCBjZXJ0cy5zZXJ2ZXIua2V5cGF0aCkKKworICAgICMgTWFr ZSBhIGRpcmVjdCBTU0wgY29ubmVjdGlvbi4gVGhlcmUncyBubyBTU0xSZXF1ZXN0IGluIHRoZSBo YW5kc2hha2U7IHdlCisgICAgIyBzaW1wbHkgd3JhcCBhIFRDUCBjb25uZWN0aW9uIHdpdGggT3Bl blNTTC4KKyAgICBhZGRyID0gKHBnLmhvc3RhZGRyLCBwZy5wb3J0KQorICAgIHdpdGggc29ja2V0 LmNyZWF0ZV9jb25uZWN0aW9uKGFkZHIpIGFzIHM6CisgICAgICAgIHMuc2V0dGltZW91dChyZW1h aW5pbmdfdGltZW91dCgpKSAgIyBYWFggdGhpcyByZXNldHMgZXZlcnkgb3BlcmF0aW9uCisKKyAg ICAgICAgd2l0aCBjdHgud3JhcF9zb2NrZXQocywgc2VydmVyX2hvc3RuYW1lPWNlcnRzLnNlcnZl cl9ob3N0KSBhcyBjb25uOgorICAgICAgICAgICAgIyBCdWlsZCBhbmQgc2VuZCB0aGUgc3RhcnR1 cCBwYWNrZXQuCisgICAgICAgICAgICBzdGFydHVwX29wdGlvbnMgPSBkaWN0KAorICAgICAgICAg ICAgICAgIHVzZXI9dXNlciwKKyAgICAgICAgICAgICAgICBkYXRhYmFzZT1kYiwKKyAgICAgICAg ICAgICAgICBhcHBsaWNhdGlvbl9uYW1lPSJweXRlc3QiLAorICAgICAgICAgICAgKQorCisgICAg ICAgICAgICBwYXlsb2FkID0gYiIiCisgICAgICAgICAgICBmb3IgaywgdiBpbiBzdGFydHVwX29w dGlvbnMuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBwYXlsb2FkICs9IGsuZW5jb2RlKCkgKyBi IlwwIgorICAgICAgICAgICAgICAgIHBheWxvYWQgKz0gc3RyKHYpLmVuY29kZSgpICsgYiJcMCIK KyAgICAgICAgICAgIHBheWxvYWQgKz0gYiJcMCIgICMgbnVsbCB0ZXJtaW5hdG9yCisKKyAgICAg ICAgICAgIHBrdGxlbiA9IDQgKyA0ICsgbGVuKHBheWxvYWQpCisgICAgICAgICAgICBjb25uLnNl bmQoc3RydWN0LnBhY2soIiFJSEgiLCBwa3RsZW4sIDMsIDApICsgcGF5bG9hZCkKKworICAgICAg ICAgICAgaWYgbm90IGV4cGVjdGVkX2Vycm9yOgorICAgICAgICAgICAgICAgICMgRXhwZWN0IGFu IEF1dGhlbnRpY2F0aW9uT0sgdG8gY29tZSBiYWNrLgorICAgICAgICAgICAgICAgIHBrdHR5cGUs IHBrdGxlbiA9IHN0cnVjdC51bnBhY2soIiFjSSIsIGNvbm4ucmVjdig1KSkKKyAgICAgICAgICAg ICAgICBhc3NlcnQgcGt0dHlwZSA9PSBiIlIiCisgICAgICAgICAgICAgICAgYXNzZXJ0IHBrdGxl biA9PSA4CisKKyAgICAgICAgICAgICAgICBhdXRobl9yZXN1bHQgPSBzdHJ1Y3QudW5wYWNrKCIh SSIsIGNvbm4ucmVjdig0KSlbMF0KKyAgICAgICAgICAgICAgICBhc3NlcnQgYXV0aG5fcmVzdWx0 ID09IDAKKworICAgICAgICAgICAgICAgICMgUmVhZCBhbmQgZGlzY2FyZCB0byBSZWFkeUZvclF1 ZXJ5LgorICAgICAgICAgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICAgICAgICAgIHBr dHR5cGUsIHBrdGxlbiA9IHN0cnVjdC51bnBhY2soIiFjSSIsIGNvbm4ucmVjdig1KSkKKyAgICAg ICAgICAgICAgICAgICAgcGF5bG9hZCA9IGNvbm4ucmVjdihwa3RsZW4gLSA0KQorCisgICAgICAg ICAgICAgICAgICAgIGlmIHBrdHR5cGUgPT0gYiJaIjoKKyAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydCBwYXlsb2FkID09IGIiSSIKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisK KyAgICAgICAgICAgICAgICAjIFNlbmQgYW4gZW1wdHkgcXVlcnkuCisgICAgICAgICAgICAgICAg Y29ubi5zZW5kKHN0cnVjdC5wYWNrKCIhY0kiLCBiIlEiLCA1KSArIGIiXDAiKQorCisgICAgICAg ICAgICAgICAgIyBFeHBlY3QgRW1wdHlRdWVyeVJlc3BvbnNlK1JlYWR5Rm9yUXVlcnkuCisgICAg ICAgICAgICAgICAgcGt0dHlwZSwgcGt0bGVuID0gc3RydWN0LnVucGFjaygiIWNJIiwgY29ubi5y ZWN2KDUpKQorICAgICAgICAgICAgICAgIGFzc2VydCBwa3R0eXBlID09IGIiSSIKKyAgICAgICAg ICAgICAgICBhc3NlcnQgcGt0bGVuID09IDQKKworICAgICAgICAgICAgICAgIHBrdHR5cGUsIHBr dGxlbiA9IHN0cnVjdC51bnBhY2soIiFjSSIsIGNvbm4ucmVjdig1KSkKKyAgICAgICAgICAgICAg ICBhc3NlcnQgcGt0dHlwZSA9PSBiIloiCisKKyAgICAgICAgICAgICAgICBwYXlsb2FkID0gY29u bi5yZWN2KHBrdGxlbiAtIDQpCisgICAgICAgICAgICAgICAgYXNzZXJ0IHBheWxvYWQgPT0gYiJJ IgorCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICMgTWF0Y2ggdGhlIGV4cGVj dGVkIGF1dGhlbnRpY2F0aW9uIGVycm9yLgorICAgICAgICAgICAgICAgIHBrdHR5cGUsIHBrdGxl biA9IHN0cnVjdC51bnBhY2soIiFjSSIsIGNvbm4ucmVjdig1KSkKKyAgICAgICAgICAgICAgICBh c3NlcnQgcGt0dHlwZSA9PSBiIkUiCisKKyAgICAgICAgICAgICAgICBwYXlsb2FkID0gY29ubi5y ZWN2KHBrdGxlbiAtIDQpCisgICAgICAgICAgICAgICAgbXNnID0gTm9uZQorCisgICAgICAgICAg ICAgICAgZm9yIGNvbXBvbmVudCBpbiBwYXlsb2FkLnNwbGl0KGIiXDAiKToKKyAgICAgICAgICAg ICAgICAgICAgaWYgbm90IGNvbXBvbmVudDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr ICAjIGVuZCBvZiBtZXNzYWdlCisKKyAgICAgICAgICAgICAgICAgICAga2V5LCB2YWwgPSBjb21w b25lbnRbOjFdLCBjb21wb25lbnRbMTpdCisgICAgICAgICAgICAgICAgICAgIGlmIGtleSA9PSBi IlMiOgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbCA9PSBiIkZBVEFMIgorICAg ICAgICAgICAgICAgICAgICBlbGlmIGtleSA9PSBiIk0iOgorICAgICAgICAgICAgICAgICAgICAg ICAgbXNnID0gdmFsLmRlY29kZSgpCisKKyAgICAgICAgICAgICAgICBhc3NlcnQgcmUuc2VhcmNo KGV4cGVjdGVkX2Vycm9yLCBtc2cpLCAic2VydmVyIGVycm9yIGRpZCBub3QgbWF0Y2giCisKKyAg ICAgICAgICAgICMgVGVybWluYXRlLgorICAgICAgICAgICAgY29ubi5zZW5kKHN0cnVjdC5wYWNr KCIhY0kiLCBiIlgiLCA0KSkKLS0gCjIuNTIuMAoK --96ced96246521a62ba81864c53b3a5475cc189cbc0ad0bfdf74d8b032f52--