From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms1.migadu.com with LMTPS id IJkHHGnsPGaEbQEAqHPOHw:P1 (envelope-from ) for ; Thu, 09 May 2024 17:31:53 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0.migadu.com with LMTPS id IJkHHGnsPGaEbQEAqHPOHw (envelope-from ) for ; Thu, 09 May 2024 17:31:53 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=proton.me header.s=protonmail header.b=AdDLO2+i; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1715268713; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post: dkim-signature; bh=5zVXCp0/Fu+Ru07PiR3VWYR/Ugwlhe0NG4hhd02ZLFc=; b=Rf4Le+Dwph/SIJdxclilEEV5sT08IKv57nclklCaOPuAW8WP7SNx23qxctCvm5o9cz0A2T pMohXVWVoeJ4ZupqMRVhZchv4oXoU7vy8GopOelNzvi6WoZ/VMvc3Em0cxlEkzMosShG6H tJ/MvSR0BHOkdfOymhDIasOGd5NeBlMQoj4vZ2yFYx/W97sI699tO3Cab3RR1YU9kALLnt m4xli7asQHTNXZUV14RBka/XOHRBm+IBdM0ed4u/AIRz4WIEUIh2to6rb1WNDEkJ+lcXim Vx9fWzCQdsFdDbpps+hT1/3uPImVlBIUwPXCd9NPy2vUBJof7LuIzLiLpkBUwg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1715268713; a=rsa-sha256; cv=none; b=L82MF/Tfh16yY5iEDeIkp0BKN56wozZm9RmaQQKiA+rFDAYpp+Zq7on0eTeDUQ/mZEsUmv ZHErs3RYiqG72AUFe9mNo0pQLm/ae8XeKaIDEkp6CrrCICIJtx4RFXK5DQDhcSe5q3Kv6Z yh2Dwnodu6q70WRUQj4XXEtb3EutoIkYz94yyPM68ZhAGBfNZPRJ+RmKZygcA+DPAVBwoN GTkhQjT+A61qMbQuWvpK4GVJKXcAEBnJ1M5IPDE1nYP+xZSYyQBXUUZYC8zQkbQqsk6M5a vn9GZVzP6lfVZMuJw1bqfbvbeplM/zCW2b+A1zSV0tUiG2uYrAspWT1Why5dmg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=proton.me header.s=protonmail header.b=AdDLO2+i; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id B1316864F for ; Thu, 09 May 2024 17:31:52 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s55jg-0002jS-Kj; Thu, 09 May 2024 11:31:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s55jP-0002hA-V3 for guix-patches@gnu.org; Thu, 09 May 2024 11:30:59 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1s55jA-0007sy-BY for guix-patches@gnu.org; Thu, 09 May 2024 11:30:47 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1s55ja-0004Qa-C3 for guix-patches@gnu.org; Thu, 09 May 2024 11:31:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#70803] Fw: Re: [bug#70803] [PATCH] gnu: wm.scm: Add Binwarp to stumpwm-contrib Resent-From: not emma Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 09 May 2024 15:31:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 70803 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: "70803@debbugs.gnu.org" <70803@debbugs.gnu.org> Received: via spool by 70803-submit@debbugs.gnu.org id=B70803.171526864416992 (code B ref 70803); Thu, 09 May 2024 15:31:02 +0000 Received: (at 70803) by debbugs.gnu.org; 9 May 2024 15:30:44 +0000 Received: from localhost ([127.0.0.1]:55905 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s55jI-0004Q0-Lh for submit@debbugs.gnu.org; Thu, 09 May 2024 11:30:44 -0400 Received: from mail-4324.protonmail.ch ([185.70.43.24]:36663) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s55jG-0004Ps-4q for 70803@debbugs.gnu.org; Thu, 09 May 2024 11:30:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me; s=protonmail; t=1715268604; x=1715527804; bh=5zVXCp0/Fu+Ru07PiR3VWYR/Ugwlhe0NG4hhd02ZLFc=; h=Date:To:From:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=AdDLO2+i1SZdAuvWgTXBqeIKhxpZ/Ar19UIPxNqA8cvcumeSChel/TBEA1TG8EaYY 2w0JdmjW+vvAf55GGcRLlDE26CrAUcxDk4CaJ/G0x/R9N1wJFX6IBWFp104VZYHW5d a5ORI2ta5IQ4nHZ40zEaBLBAT3W9ZEcJV1Anhs/NYLIyvdQHsDzarv82zsHsOdcocE HcyxKrZrT34OEudfCXEP+bBvbHF9228yWRPU/ChkkL+hCGoCdEkrLKj3dNCzHcF0Pz JS3NtKKr/EFqtBTH0YrJM5Ky25vjvD+8nXuOQmrjxzta5d3N8L3r5ouR9NTTwOwxTR oPZxBZaBvMNSg== Date: Thu, 09 May 2024 15:29:58 +0000 Message-ID: <9f4Lh2XMAGhxkqKVzuBVJUv_N26pr9ozlniKAvJkVQyO7u5nCkkS6oSKnRQRyQUUmDq-xDjnqp9bwnNR3XDrwH3q-uj_VaoNk35lmBMaTX8=@proton.me> In-Reply-To: References: <87v83noww9.fsf@kitej> Feedback-ID: 84785949:user:proton X-Pm-Message-ID: 89c0636eb5310cb577fb31425b1cc10222ba08e6 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_CjxkiuITA7aDnCQ6KqQTZUp9Mo5CLoLzfpDqMfZvqBY" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: not emma X-ACL-Warn: , not emma via Guix-patches From: not emma via Guix-patches via Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -3.79 X-Spam-Score: -3.79 X-Migadu-Queue-Id: B1316864F X-Migadu-Scanner: mx11.migadu.com X-TUID: JOoRsL/f+YoO This is a multi-part message in MIME format. --b1_CjxkiuITA7aDnCQ6KqQTZUp9Mo5CLoLzfpDqMfZvqBY Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Sent with Proton Mail secure email. ------- Forwarded Message ------- From: not emma Date: On Thursday, May 9th, 2024 at 3:27 PM Subject: Re: [bug#70803] [PATCH] gnu: wm.scm: Add Binwarp to stumpwm-contri= b To: Guillaume Le Vaillant > Thanks for the heads up! I'm attaching the diff as a text file - and will= attatch the the modified wm.scm as well >=20 >=20 >=20 >=20 > Sent with Proton Mail secure email. >=20 >=20 > On Thursday, May 9th, 2024 at 2:57 PM, Guillaume Le Vaillant glv@posteo.n= et wrote: >=20 > > Hi. > > The patch you sent is corrupted and does not apply. > > It looks like your email client destroyed the indentation. Could you > > send the patch again after setting your email client not to do that? > > You can also sent the patch as an attached file if your email client > > refuses to cooperate. --b1_CjxkiuITA7aDnCQ6KqQTZUp9Mo5CLoLzfpDqMfZvqBY Content-Type: text/plain; name=binwarp-diff.txt Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=binwarp-diff.txt ZGlmZiAtLWdpdCBhL2dudS9wYWNrYWdlcy93bS5zY20gYi9nbnUvcGFja2FnZXMvd20uc2NtCmlu ZGV4IGY0YzZkYmRhMGEuLjE5NDE0ZWVjNTMgMTAwNjQ0Ci0tLSBhL2dudS9wYWNrYWdlcy93bS5z Y20KKysrIGIvZ251L3BhY2thZ2VzL3dtLnNjbQpAQCAtNzEsNiArNzEsNyBAQAogOzs7IENvcHly aWdodCDCqSAyMDI0IGNocmlzIDxjaHJpc0BidW1ibGVoZWFkLmNvbT4KIDs7OyBDb3B5cmlnaHQg wqkgMjAyNCBFcmlrIEVkdWFyZG8gQWxvbnNvIEhlcm7DoW5kZXogPGVyaWtAZXJpa2VkdWFyZG8u eHl6PgogOzs7IENvcHlyaWdodCDCqSAyMDI0IEphbWVzIFNtaXRoIDxqc3VidW50dXhwQGRpc3Jv b3Qub3JnPgorOzs7IENvcHlyaWdodCDCqSAyMDI0IGJpZ2J1ZyA8YmlnYm9va29mYnVnQHByb3Rv bi5tZT4KIDs7OwogOzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4LgogOzs7CkBAIC0y NTkwLDYgKzI1OTEsMjIgQEAgKGRlZmluZS1wdWJsaWMgc2JjbC1zdHVtcHdtLXBhbWl4ZXIKIGNv bnRyb2wgbW9kdWxlIGZvciBTdHVtcFdNLiIpCiAgICAgICAobGljZW5zZSBsaWNlbnNlOmdwbDMp KSkpCiAKKyhkZWZpbmUtcHVibGljIHNiY2wtc3R1bXB3bS1iaW53YXJwCisgICAgKHBhY2thZ2UK KyAgICAgKGluaGVyaXQgc3R1bXB3bS1jb250cmliKQorICAgICAobmFtZSAic2JjbC1zdHVtcHdt LWJpbndhcnAiKQorICAgICAoYXJndW1lbnRzCisgICAgICAnKCM6YXNkLXN5c3RlbXMgJygiYmlu d2FycCIpCisJIzp0ZXN0cz8gI2YKKwkjOnBoYXNlcworCShtb2RpZnktcGhhc2VzICVzdGFuZGFy ZC1waGFzZXMKKwkJICAgICAgIChhZGQtYWZ0ZXIgJ3VucGFjayAnY2hkaXIKKwkJCQkgIChsYW1i ZGEgXyAoY2hkaXIgInV0aWwvYmlud2FycCIpICN0KSkpKSkKKyAgICAgIChob21lLXBhZ2UgImh0 dHBzOi8vZ2l0aHViLmNvbS9zdHVtcHdtL3N0dW1wd20tY29udHJpYiIpCisgICAgICAoc3lub3Bz aXMgIktleWJvYXJkLWRyaXZlbiBkaXZpZGUtYW5kLWNvbnF1ZXIgbW91c2UgY29udHJvbCBtb2Rl LiIpCisgICAgICAoZGVzY3JpcHRpb24gIlRoaXMgcGFja2FnZSBwcm92aWRlcyBhIG5ldyBrZXli b2FyZC1kcml2ZW4ga2V5bWFwLiIpCisgICAgICAobGljZW5zZSAobGlzdCBsaWNlbnNlOmdwbDIr IGxpY2Vuc2U6Z3BsMysgbGljZW5zZTpic2QtMikpKSkKKwogKGRlZmluZS1wdWJsaWMgc2JjbC1z dHVtcHdtLXR0Zi1mb250cwogICAocGFja2FnZQogICAgIChpbmhlcml0IHN0dW1wd20tY29udHJp YikK --b1_CjxkiuITA7aDnCQ6KqQTZUp9Mo5CLoLzfpDqMfZvqBY Content-Type: text/x-scheme; name=wm.scm Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=wm.scm Ozs7IEdOVSBHdWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05VCjs7 OyBDb3B5cmlnaHQgwqkgMjAxNSBFcmljIER2b3JzYWsgPGVyaWNAZHZvcnNhay5mcj4KOzs7IENv cHlyaWdodCDCqSAyMDE1IFNpbmnFoWEgQmnEkWluIDxzaW5pc2FAYmlkaW4uZXU+Cjs7OyBDb3B5 cmlnaHQgwqkgMjAxNSwgMjAxNiwgMjAyMiBFcmljIEJhdmllciA8YmF2aWVyQHBvc3Rlby5uZXQ+ Cjs7OyBDb3B5cmlnaHQgwqkgMjAxNSB4ZDFsZSA8ZWxpc3AudmltQGdtYWlsLmNvbT4KOzs7IENv cHlyaWdodCDCqSAyMDE1IFBhdWwgdmFuIGRlciBXYWx0IDxwYXVsQGRlbmtuZXJkLm9yZz4KOzs7 IENvcHlyaWdodCDCqSAyMDE2IERhbm55IE1pbG9zYXZsamV2aWMgPGRhbm55bUBzY3JhdGNocG9z dC5vcmc+Cjs7OyBDb3B5cmlnaHQgwqkgMjAxNiwgMjAxOSwgMjAyMCwgMjAyMywgMjAyNCBFZnJh aW0gRmxhc2huZXIgPGVmcmFpbUBmbGFzaG5lci5jby5pbD4KOzs7IENvcHlyaWdodCDCqSAyMDE2 IEFsIE1jRWxyYXRoIDxoZWxsb0B5cm5zLm9yZz4KOzs7IENvcHlyaWdodCDCqSAyMDE2IENhcmxv IFphbmNhbmFybyA8Y2FybG9AemFuY2FuYXJvLmlkLmF1Pgo7OzsgQ29weXJpZ2h0IMKpIDIwMTYg MjAxOSwgMjAyMS0yMDIyIEx1ZG92aWMgQ291cnTDqHMgPGx1ZG9AZ251Lm9yZz4KOzs7IENvcHly aWdodCDCqSAyMDE2LCAyMDE3LCAyMDE4LCAyMDIwIE5pa2l0YSA8bmlraXRhQG4wLmlzPgo7Ozsg Q29weXJpZ2h0IMKpIDIwMTYgZG9uY2F0bmlwIDxnbm9wYXBAZ21haWwuY29tPgo7OzsgQ29weXJp Z2h0IMKpIDIwMTYgSXZhbiBWaWxhdGEgaSBCYWxhZ3VlciA8aXZhbkBzZWxpZG9yLm5ldD4KOzs7 IENvcHlyaWdodCDCqSAyMDE3IE1la2VvciBNZWxpcmUgPG1la2Vvci5tZWxpcmVAZ21haWwuY29t Pgo7OzsgQ29weXJpZ2h0IMKpIDIwMTcsIDIwMTksIDIwMjAgTWFyaXVzIEJha2tlIDxtYXJpdXNA Z251Lm9yZz4KOzs7IENvcHlyaWdodCDCqSAyMDE3LCAyMDIwLCAyMDIxIE9sZWcgUHlraGFsb3Yg PGdvLndpZ3VzdEBnbWFpbC5jb20+Cjs7OyBDb3B5cmlnaHQgwqkgMjAxOOKAkzIwMjEgVG9iaWFz IEdlZXJpbmNreC1SaWNlIDxtZUB0b2JpYXMuZ3I+Cjs7OyBDb3B5cmlnaHQgwqkgMjAxOCBQaWVy cmUtQW50b2luZSBSb3VieSA8Y29udGFjdEBwYXJvdWJ5LmZyPgo7OzsgQ29weXJpZ2h0IMKpIDIw MTgsIDIwMTkgTWVpeW8gUGVuZyA8bWVpeW9AcmlzZXVwLm5ldD4KOzs7IENvcHlyaWdodCDCqSAy MDE5IFJ1dGdlciBIZWxsaW5nIDxyaGVsbGluZ0BteWtvbGFiLmNvbT4KOzs7IENvcHlyaWdodCDC qSAyMDE5IFRpbW90aHkgU2FtcGxlIDxzYW1wbGV0QG5neXJvLmNvbT4KOzs7IENvcHlyaWdodCDC qSAyMDE5IEfDoWJvciBCb3Nrb3ZpdHMgPGJvc2tvdml0c0BnbWFpbC5jb20+Cjs7OyBDb3B5cmln aHQgwqkgMjAxOSBLeWxlIEFuZHJld3MgPGt5bGUuYy5hbmRyZXdzQGdtYWlsLmNvbT4KOzs7IENv cHlyaWdodCDCqSAyMDE5IEluZ28gUnVobmtlIDxncnVtYmVsQGdtYWlsLmNvbT4KOzs7IENvcHly aWdodCDCqSAyMDE5IFRhbmd1eSBMZSBDYXJyb3VyIDx0YW5ndXlAYmlvbmVsYW5kLm9yZz4KOzs7 IENvcHlyaWdodCDCqSAyMDE5IEpvaG4gU29vIDxqc29vMUBhc3UuZWR1Pgo7OzsgQ29weXJpZ2h0 IMKpIDIwMTgsIDIwMTkgUGllcnJlIExhbmdsb2lzIDxwaWVycmUubGFuZ2xvaXNAZ214LmNvbT4K Ozs7IENvcHlyaWdodCDCqSAyMDE2LCAyMDE3IEFuZHkgUGF0dGVyc29uIDxhanBhdHRlckB1d2F0 ZXJsb28uY2E+Cjs7OyBDb3B5cmlnaHQgwqkgMjAxOSBFdmFuIFN0cmF3IDxldmFuLnN0cmF3OTlA Z21haWwuY29tPgo7OzsgQ29weXJpZ2h0IMKpIDIwMTkgQnJldHQgR2lsaW8gPGJyZXR0Z0BnbnUu b3JnPgo7OzsgQ29weXJpZ2h0IMKpIDIwMTkgTm9vZGxlcyEgPG5ub29kbGVAY2hpcnUubm8+Cjs7 OyBDb3B5cmlnaHQgwqkgMjAxOSwgMjAyMCBBbGV4YW5kcnUtU2VyZ2l1IE1hcnRvbiA8YnJvd24x MjE0MDdAbWVtYmVyLmZzZi5vcmc+Cjs7OyBDb3B5cmlnaHQgwqkgMjAyMCwgMjAyMSBOaWNvbGFz IEdvYXppb3UgPG1haWxAbmljb2xhc2dvYXppb3UuZnI+Cjs7OyBDb3B5cmlnaHQgwqkgMjAyMCBC cmljZSBXYWVnZW5laXJlIDxicmljZUB3YWVnZW5laS5yZT4KOzs7IENvcHlyaWdodCDCqSAyMDIw IEJvcmlzIEEuIERla3NodGV5biA8aGFybGVxdWluNzhAZ21haWwuY29tPgo7OzsgQ29weXJpZ2h0 IMKpIDIwMjAgTWFyY2luIEthcnBlem8gPHNpcm1hY2lrQHdpb28ud2F3LnBsPgo7OzsgQ29weXJp Z2h0IMKpIDIwMjAgRXVBbmRyZWggPGV1QGV1YW5kcmUub3JnPgo7OzsgQ29weXJpZ2h0IMKpIDIw MjAgTWljaGFlbCBSb2hsZWRlciA8bWlrZUByb2hsZWRlci5kZT4KOzs7IENvcHlyaWdodCDCqSAy MDIwLCAyMDIyLCAyMDIzIEd1aWxsYXVtZSBMZSBWYWlsbGFudCA8Z2x2QHBvc3Rlby5uZXQ+Cjs7 OyBDb3B5cmlnaHQgwqkgMjAyMCBCLiBXaWxzb24gPGVsYWV4dW90ZWVAd2lsc29uYi5jb20+Cjs7 OyBDb3B5cmlnaHQgwqkgMjAyMCBOaWtsYXMgRWtsdW5kIDxuaWtsYXMuZWtsdW5kQHBvc3Rlby5u ZXQ+Cjs7OyBDb3B5cmlnaHQgwqkgMjAyMCBSb2JlcnQgU21pdGggPHJvYmVydHNtaXRoQHBvc3Rl by5uZXQ+Cjs7OyBDb3B5cmlnaHQgwqkgMjAyMSwgMjAyMywgMjAyNCBaaGVuZyBKdW5qaWUgPDg3 MzIxNjA3MUBxcS5jb20+Cjs7OyBDb3B5cmlnaHQgwqkgMjAyMSBTaGFybGF0YW4gSGVsbHNlaGVy IDxzaGFybGF0YW51c0BnbWFpbC5jb20+Cjs7OyBDb3B5cmlnaHQgwqkgMjAyMSBxYmxhZGUgPHFi bGFkZUBwcm90b25tYWlsLmNvbT4KOzs7IENvcHlyaWdodCDCqSAyMDIxIGxhc25lc25lIDxsYXNu ZXNuZUBsYWd1bnBvc3ByYXNpaG9wcmUub3JnPgo7OzsgQ29weXJpZ2h0IMKpIDIwMjEsIDIwMjIg UGV0ciBIb2RpbmEgPHBob2RpbmFAcHJvdG9ubWFpbC5jb20+Cjs7OyBDb3B5cmlnaHQgwqkgMjAy MSwgMjAyMyBqZ2FydCA8amdhcnRAZGlzbWFpbC5kZT4KOzs7IENvcHlyaWdodCDCqSAyMDIxIERp c3NlbWluYXRlIERpc3NlbnQgPGRpc3NlbWluYXRlZGlzc2VudEBwcm90b25tYWlsLmNvbT4KOzs7 IENvcHlyaWdodCDCqSAyMDIyIEpvaG4gS2VoYXlpYXMgPGpvaG4ua2VoYXlpYXNAcHJvdG9ubWFp bC5jb20+Cjs7OyBDb3B5cmlnaHQgwqkgMjAyMiBHYWJyaWVsIFdpY2tpIDxnYWJyaWVsQGVybGlr b24uY2g+Cjs7OyBDb3B5cmlnaHQgwqkgMjAyMiBKYWkgVmV0cml2ZWxhbiA8amFpdmV0cml2ZWxh bkBnbWFpbC5jb20+Cjs7OyBDb3B5cmlnaHQgwqkgMjAyMiBEYW5pZWwgTWVpw59uZXIgPGRhbmll bC5tZWlzc25lci1pNGtAcnVoci11bmktYm9jaHVtLmRlPgo7OzsgQ29weXJpZ2h0IMKpIDIwMjIg UGllci1IdWd1ZXMgUGVsbGVyaW4gPHBoQGhleWtpbW8uY29tPgo7OzsgQ29weXJpZ2h0IMKpIDIw MjIgTWF4aW0gQ291cm5veWVyIDxtYXhpbS5jb3Vybm95ZXJAZ21haWwuY29tPgo7OzsgQ29weXJp Z2h0IMKpIDIwMjIgbXVyYWRtIDxtYWlsQG11cmFkbS5uZXQ+Cjs7OyBDb3B5cmlnaHQgwqkgMjAy MiBFbGFpcyBQbGF5ZXIgPGVsYWlzQGZhc3RtYWlsLmNvbT4KOzs7IENvcHlyaWdodCDCqSAyMDIy LCAyMDIzIFRyZXZvciBSaWNoYXJkcyA8dHJldkB0cmV2ZGV2LmNhPgo7OzsgQ29weXJpZ2h0IMKp IDIwMjIgRnJlZHJpayBTYWxvbW9uc3NvbiA8cGxhdHRmb3RAcG9zdGVvLm5ldD4KOzs7IENvcHly aWdodCDCqSAyMDIyICggPHBhcmVuQGRpc3Jvb3Qub3JnPgo7OzsgQ29weXJpZ2h0IMKpIDIwMjIg emFtZm9mZXggPHphbWZvZmV4QHR3ZGIubW9lPgo7OzsgQ29weXJpZ2h0IMKpIDIwMjMgR2Ficmll bCBXaWNraSA8Z2FicmllbEBlcmxpa29uLmNoPgo7OzsgQ29weXJpZ2h0IMKpIDIwMjMgSm9uYXRo YW4gQnJpZWxhbWllciA8am9uYXRoYW4uYnJpZWxtYWllckB3ZWIuZGU+Cjs7OyBDb3B5cmlnaHQg wqkgMjAyMyBWZXNzZWwgV2F2ZSA8dmVzc2Vsd2F2ZUBkaXNyb290Lm9yZz4KOzs7IENvcHlyaWdo dCDCqSAyMDIzIE5pY29sYXMgR3JhdmVzIDxuZ3JhdmVzQG5ncmF2ZXMuZnI+Cjs7OyBDb3B5cmln aHQgwqkgMjAyMywgMjAyNCBKYWVtZSBTaWZhdCA8amFlbWVAcnVuYm94LmNvbT4KOzs7IENvcHly aWdodCDCqSAyMDIzIEpvc3NlbGluIFBvaXJldCA8ZGV2QGpwb2lyZXQueHl6Pgo7OzsgQ29weXJp Z2h0IMKpIDIwMjQgVGltb3RlaiBMYXphciA8dGltb3Rlai5sYXphckBhcmFuZW8uc2k+Cjs7OyBD b3B5cmlnaHQgwqkgMjAyNCBBaG1hZCBEcmFpZGkgPGEuci5kcmFpZGlAcmVkc2NyaXB0Lm9yZz4K Ozs7IENvcHlyaWdodCDCqSAyMDI0IGNocmlzIDxjaHJpc0BidW1ibGVoZWFkLmNvbT4KOzs7IENv cHlyaWdodCDCqSAyMDI0IEVyaWsgRWR1YXJkbyBBbG9uc28gSGVybsOhbmRleiA8ZXJpa0Blcmlr ZWR1YXJkby54eXo+Cjs7OyBDb3B5cmlnaHQgwqkgMjAyNCBKYW1lcyBTbWl0aCA8anN1YnVudHV4 cEBkaXNyb290Lm9yZz4KOzs7IENvcHlyaWdodCDCqSAyMDI0IGJpZ2J1ZyA8YmlnYm9va29mYnVn QHByb3Rvbi5tZT4KOzs7Cjs7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgR3VpeC4KOzs7Cjs7 OyBHTlUgR3VpeCBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5IGl0Cjs7OyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQo7OzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0Cjs7OyB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCjs7Owo7OzsgR05VIEd1aXggaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Cjs7OyBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCjs7OyBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCjs7OyBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo7OzsKOzs7IFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCjs7OyBhbG9uZyB3aXRoIEdOVSBHdWl4LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LgoKKGRlZmluZS1tb2R1bGUgKGdudSBwYWNrYWdlcyB3bSkKICAjOnVz ZS1tb2R1bGUgKChndWl4IGxpY2Vuc2VzKSAjOnByZWZpeCBsaWNlbnNlOikKICAjOnVzZS1tb2R1 bGUgKGd1aXggcGFja2FnZXMpCiAgIzp1c2UtbW9kdWxlIChndWl4IGRvd25sb2FkKQogICM6dXNl LW1vZHVsZSAoZ3VpeCBnZXhwKQogICM6dXNlLW1vZHVsZSAoZ3VpeCBnaXQtZG93bmxvYWQpCiAg Izp1c2UtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSBhc2RmKQogICM6dXNlLW1vZHVsZSAoZ3Vp eCBidWlsZC1zeXN0ZW0gY2FyZ28pCiAgIzp1c2UtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSBj bWFrZSkKICAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQtc3lzdGVtIGNvcHkpCiAgIzp1c2UtbW9k dWxlIChndWl4IGJ1aWxkLXN5c3RlbSBnbnUpCiAgIzp1c2UtbW9kdWxlIChndWl4IGJ1aWxkLXN5 c3RlbSBoYXNrZWxsKQogICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gbWVzb24pCiAg Izp1c2UtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSBwZXJsKQogICM6dXNlLW1vZHVsZSAoZ3Vp eCBidWlsZC1zeXN0ZW0gcHl0aG9uKQogICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0g dHJpdmlhbCkKICAjOnVzZS1tb2R1bGUgKGd1aXggdXRpbHMpCiAgIzp1c2UtbW9kdWxlIChnbnUg cGFja2FnZXMpCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgYmFzaCkKICAjOnVzZS1tb2R1 bGUgKGdudSBwYWNrYWdlcyBhZG1pbikKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBhdXRv dG9vbHMpCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgYmFzZSkKICAjOnVzZS1tb2R1bGUg KGdudSBwYWNrYWdlcyBiaXNvbikKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBidWlsZC10 b29scykKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBjYWxlbmRhcikKICAjOnVzZS1tb2R1 bGUgKGdudSBwYWNrYWdlcyBjaGVjaykKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBjb21w cmVzc2lvbikKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBjcmF0ZXMtaW8pCiAgIzp1c2Ut bW9kdWxlIChnbnUgcGFja2FnZXMgY3JhdGVzLWdyYXBoaWNzKQogICM6dXNlLW1vZHVsZSAoZ251 IHBhY2thZ2VzIGRhdGFzdHJ1Y3R1cmVzKQogICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIGRv Y2Jvb2spCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgZG9jdW1lbnRhdGlvbikKICAjOnVz ZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBmbGV4KQogICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2Vz IGZvbnR1dGlscykKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBmcmVlZGVza3RvcCkKICAj OnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBmcmliaWRpKQogICM6dXNlLW1vZHVsZSAoZ251IHBh Y2thZ2VzIGdhd2spCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgZ2V0dGV4dCkKICAjOnVz ZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBnbCkKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBn bGliKQogICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIGdwZXJmKQogICM6dXNlLW1vZHVsZSAo Z251IHBhY2thZ2VzIGd0aykKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBnbm9tZSkKICAj OnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBoYXNrZWxsLWNoZWNrKQogICM6dXNlLW1vZHVsZSAo Z251IHBhY2thZ2VzIGhhc2tlbGwtd2ViKQogICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIGhh c2tlbGwteHl6KQogICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIGltYWdlKQogICM6dXNlLW1v ZHVsZSAoZ251IHBhY2thZ2VzIGltYWdlbWFnaWNrKQogICM6dXNlLW1vZHVsZSAoZ251IHBhY2th Z2VzIGxpYmV2ZW50KQogICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIGxpYmZmaSkKICAjOnVz ZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBsaW51eCkKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdl cyBsaXNwLWNoZWNrKQogICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIGxpc3AteHl6KQogICM6 dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIGxvZ2dpbmcpCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFj a2FnZXMgbHVhKQogICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIG1hbikKICAjOnVzZS1tb2R1 bGUgKGdudSBwYWNrYWdlcyBtcGQpCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgcGNpdXRp bHMpCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgbXVzaWMpCiAgIzp1c2UtbW9kdWxlIChn bnUgcGFja2FnZXMgcGNyZSkKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBwZXJsKQogICM6 dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIHBrZy1jb25maWcpCiAgIzp1c2UtbW9kdWxlIChnbnUg cGFja2FnZXMgcHJldHR5LXByaW50KQogICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIHB1bHNl YXVkaW8pCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgcHl0aG9uKQogICM6dXNlLW1vZHVs ZSAoZ251IHBhY2thZ2VzIHB5dGhvbi1idWlsZCkKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdl cyBweXRob24tY3J5cHRvKQogICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIHB5dGhvbi14eXop CiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgcmVhZGxpbmUpCiAgIzp1c2UtbW9kdWxlIChn bnUgcGFja2FnZXMgc2VyaWFsaXphdGlvbikKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBz cGhpbngpCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgc3Vja2xlc3MpCiAgIzp1c2UtbW9k dWxlIChnbnUgcGFja2FnZXMgdGV4aW5mbykKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyB0 ZXh0dXRpbHMpCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgdGltZSkKICAjOnVzZS1tb2R1 bGUgKGdudSBwYWNrYWdlcyB3ZWIpCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgeGRpc29y ZykKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyB4bWwpCiAgIzp1c2UtbW9kdWxlIChnbnUg cGFja2FnZXMgeG9yZykpCgooZGVmaW5lLXB1YmxpYyBic3B3bQogIChwYWNrYWdlCiAgICAobmFt ZSAiYnNwd20iKQogICAgKHZlcnNpb24gIjAuOS4xMCIpCiAgICAoc291cmNlCiAgICAgKG9yaWdp bgogICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCiAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCiAg ICAgICAgICAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vYmFza2VydmlsbGUvYnNwd20iKQog ICAgICAgICAgICAgKGNvbW1pdCB2ZXJzaW9uKSkpCiAgICAgICAoZmlsZS1uYW1lIChnaXQtZmls ZS1uYW1lIG5hbWUgdmVyc2lvbikpCiAgICAgICAoc2hhMjU2CiAgICAgICAgKGJhc2UzMiAiMHFs djdiNGMybW1qZmQ2NXkxMDBkMTF4OGlxeWc1ZjZsZml3czNjZ21wamlkaGR5Z254YyIpKSkpCiAg ICAoYnVpbGQtc3lzdGVtIGdudS1idWlsZC1zeXN0ZW0pCiAgICAoaW5wdXRzCiAgICAgKGxpc3Qg bGlieGNiCiAgICAgICAgICAgbGlieGluZXJhbWEKICAgICAgICAgICBzeGhrZAogICAgICAgICAg IHhjYi11dGlsCiAgICAgICAgICAgeGNiLXV0aWwta2V5c3ltcwogICAgICAgICAgIHhjYi11dGls LXdtKSkKICAgIChhcmd1bWVudHMKICAgICAobGlzdCAjOnBoYXNlcwogICAgICAgICAgICN+KG1v ZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcwogICAgICAgICAgICAgICAoZGVsZXRlICdjb25m aWd1cmUpKSAgICAgICAgICAgOyBubyBjb25maWd1cmUgc2NyaXB0CiAgICAgICAgICAgIzp0ZXN0 cz8gI2YgICAgICAgICAgICAgICAgICAgICAgOyBubyBjaGVjayB0YXJnZXQKICAgICAgICAgICAj Om1ha2UtZmxhZ3MKICAgICAgICAgICAjfihsaXN0IChzdHJpbmctYXBwZW5kICJDQz0iICMkKGNj LWZvci10YXJnZXQpKQogICAgICAgICAgICAgICAgICAgKHN0cmluZy1hcHBlbmQgIlBSRUZJWD0i ICMkb3V0cHV0KSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL2Jhc2tlcnZp bGxlL2JzcHdtIikKICAgIChzeW5vcHNpcyAiVGlsaW5nIHdpbmRvdyBtYW5hZ2VyIGJhc2VkIG9u IGJpbmFyeSBzcGFjZSBwYXJ0aXRpb25pbmciKQogICAgKGRlc2NyaXB0aW9uICJic3B3bSBpcyBh IHRpbGluZyB3aW5kb3cgbWFuYWdlciB0aGF0IHJlcHJlc2VudHMgd2luZG93cyBhcwp0aGUgbGVh dmVzIG9mIGEgZnVsbCBiaW5hcnkgdHJlZS4iKQogICAgKGxpY2Vuc2UgbGljZW5zZTpic2QtMikp KQoKKGRlZmluZS1wdWJsaWMgY2FnZQogIChwYWNrYWdlCiAgICAobmFtZSAiY2FnZSIpCiAgICAo dmVyc2lvbiAiMC4xLjUiKQogICAgKHNvdXJjZQogICAgIChvcmlnaW4KICAgICAgIChtZXRob2Qg Z2l0LWZldGNoKQogICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQogICAgICAgICAgICAgKHVybCAi aHR0cHM6Ly9naXRodWIuY29tL2NhZ2Uta2lvc2svY2FnZSIpCiAgICAgICAgICAgICAoY29tbWl0 IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQogICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZp bGUtbmFtZSBuYW1lIHZlcnNpb24pKQogICAgICAgKHNoYTI1NiAoYmFzZTMyICIxMXNnOXgwOHps Mm5yN2E3MjNoNDYya256NWxmNThzZ3ZraHYxbWdjOXozaGhraHZic2phIikpKSkKICAgIChidWls ZC1zeXN0ZW0gbWVzb24tYnVpbGQtc3lzdGVtKQogICAgKG5hdGl2ZS1pbnB1dHMgKGxpc3QgcGtn LWNvbmZpZyBzY2RvYwogICAgICAgICAgICAgICAgICAgICAgICAgOzsgZm9yIHdheWxhbmQtc2Nh bm5lcgogICAgICAgICAgICAgICAgICAgICAgICAgd2F5bGFuZCkpCiAgICAoaW5wdXRzIChsaXN0 IHdheWxhbmQgd2xyb290cy0wLjE2IGxpYnhrYmNvbW1vbikpCiAgICAoaG9tZS1wYWdlICJodHRw czovL2dpdGh1Yi5jb20vY2FnZS1raW9zay9jYWdlIikKICAgIChzeW5vcHNpcyAiV2F5bGFuZCBr aW9zayIpCiAgICAoZGVzY3JpcHRpb24gIlRoaXMgcGFja2FnZSBwcm92aWRlcyBhIFdheWxhbmQg QGRmbntraW9za30sIHdoaWNoIHJ1bnMgYQpzaW5nbGUsIG1heGltaXplZCBhcHBsaWNhdGlvbi4i KQogICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQoKKGRlZmluZS1wdWJsaWMgaGVyYnN0bHVm dHdtCiAgKHBhY2thZ2UKICAgIChuYW1lICJoZXJic3RsdWZ0d20iKQogICAgKHZlcnNpb24gIjAu OS41IikKICAgIChzb3VyY2UKICAgICAob3JpZ2luCiAgICAgICAobWV0aG9kIHVybC1mZXRjaCkK ICAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQgImh0dHBzOi8vaGVyYnN0bHVmdHdtLm9yZy90YXJi YWxscy9oZXJic3RsdWZ0d20tIgogICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uICIu dGFyLmd6IikpCiAgICAgICAoc2hhMjU2CiAgICAgICAgKGJhc2UzMiAiMDFjMWY1MDQxYmJsZzhk N3AxMmpreW5kNTd4aTFmcnh5NjFxc3JkY3hncDUxNDRuMW01aiIpKQogICAgICAgKGZpbGUtbmFt ZSAoc3RyaW5nLWFwcGVuZCAiaGVyYnN0bHVmdHdtLSIgdmVyc2lvbiAiLnRhci5neiIpKSkpCiAg ICAoYnVpbGQtc3lzdGVtIGNtYWtlLWJ1aWxkLXN5c3RlbSkKICAgIChpbnB1dHMKICAgICAobGlz dCBkemVuCiAgICAgICAgICAgZG1lbnUKICAgICAgICAgICBnbGliCiAgICAgICAgICAgZ2xpYm1t CiAgICAgICAgICAgeHRlcm0KICAgICAgICAgICB4c2V0cm9vdAogICAgICAgICAgIGxpYngxMQog ICAgICAgICAgIGxpYnhjdXJzb3IKICAgICAgICAgICBsaWJ4ZXh0CiAgICAgICAgICAgbGlieGZp eGVzCiAgICAgICAgICAgbGlieGluZXJhbWEKICAgICAgICAgICBsaWJ4cmFuZHIKICAgICAgICAg ICBsaWJ4ZnQpKQogICAgKG5hdGl2ZS1pbnB1dHMKICAgICAobGlzdCBhc2NpaWRvYyBwa2ctY29u ZmlnIHB5dGhvbikpCiAgICAoYXJndW1lbnRzCiAgICAgJygjOnRlc3RzPyAjZgogICAgICAgIzpj b25maWd1cmUtZmxhZ3MKICAgICAgIChsZXQgKChvdXQgKGFzc29jLXJlZiAlb3V0cHV0cyAib3V0 IikpKQogICAgICAgICAobGlzdCAiLURDQz1nY2MiCiAgICAgICAgICAgICAgIChzdHJpbmctYXBw ZW5kICItRENNQUtFX0lOU1RBTExfU1lTQ09ORl9QUkVGSVg9IiBvdXQgIi9ldGMiKQogICAgICAg ICAgICAgICAoc3RyaW5nLWFwcGVuZCAiLURCQVNIQ09NUExFVElPTkRJUj0iIG91dCAiL2V0Yy9i YXNoX2NvbXBsZXRpb24uZCIpKSkKICAgICAgICM6cGhhc2VzCiAgICAgICAobW9kaWZ5LXBoYXNl cyAlc3RhbmRhcmQtcGhhc2VzCiAgICAgICAgIChhZGQtYmVmb3JlICdjb25maWd1cmUgJ2xpbmst bGlieGN1cnNvcgogICAgICAgICAgIChsYW1iZGEgXwogICAgICAgICAgICAgOzsgbGliWDExIHdp bGwgZGxvcGVuIGxpYlhjdXJzb3IgdG8gbG9hZCBjdXJzb3JzLgogICAgICAgICAgICAgKHNldGVu diAiTERGTEFHUyIgIi1sWGN1cnNvciIpKSkKICAgICAgICAgKGFkZC1hZnRlciAnaW5zdGFsbCAn aW5zdGFsbC14c2Vzc2lvbgogICAgICAgICAgIChsYW1iZGEqICgjOmtleSBvdXRwdXRzICM6YWxs b3ctb3RoZXIta2V5cykKICAgICAgICAgICAgIChsZXQqICgob3V0IChhc3NvYy1yZWYgb3V0cHV0 cyAib3V0IikpCiAgICAgICAgICAgICAgICAgICAgKHhzZXNzaW9ucyAoc3RyaW5nLWFwcGVuZCBv dXQgIi9zaGFyZS94c2Vzc2lvbnMiKSkpCiAgICAgICAgICAgICAgIChta2Rpci1wIHhzZXNzaW9u cykKICAgICAgICAgICAgICAgKGNhbGwtd2l0aC1vdXRwdXQtZmlsZQogICAgICAgICAgICAgICAg ICAgKHN0cmluZy1hcHBlbmQgeHNlc3Npb25zICIvaGVyYnN0bHVmdHdtLmRlc2t0b3AiKQogICAg ICAgICAgICAgICAgIChsYW1iZGEgKHBvcnQpCiAgICAgICAgICAgICAgICAgICAoZm9ybWF0IHBv cnQgIn4KICAgICAgICAgICAgICAgICAgICAgW0Rlc2t0b3AgRW50cnldfkAKICAgICAgICAgICAg ICAgICAgICAgTmFtZT1oZXJic3RsdWZ0d21+QAogICAgICAgICAgICAgICAgICAgICBDb21tZW50 PU1hbnVhbCB0aWxpbmcgd2luZG93IG1hbmFnZXJ+QAogICAgICAgICAgICAgICAgICAgICBFeGVj PX5hL2Jpbi9oZXJic3RsdWZ0d21+QAogICAgICAgICAgICAgICAgICAgICBUeXBlPVhTZXNzaW9u fiUiIG91dCkpKQogICAgICAgICAgICAgICAjdCkpKSkpKQogICAgKHN5bm9wc2lzICJUaWxpbmcg d2luZG93IG1hbmFnZXIgZm9yIFgxMSIpCiAgICAoZGVzY3JpcHRpb24gImhlcmJzdGx1ZnR3bSBp cyBhIG1hbnVhbCB0aWxpbmcgd2luZG93IG1hbmFnZXIgZm9yIFgxMSB1c2luZwpYbGliIGFuZCBH TGliLiAgSXRzIG1haW4gZmVhdHVyZXMgYXJlOgoKQGl0ZW1pemUKQGl0ZW0KVGhlIGxheW91dCBp cyBiYXNlZCBvbiBzcGxpdHRpbmcgZnJhbWVzIGludG8gc3ViZnJhbWVzIHdoaWNoIGNhbiBiZSBz cGxpdAphZ2FpbiBvciBjYW4gYmUgZmlsbGVkIHdpdGggd2luZG93cyAoc2ltaWxhciB0byBpMyBv ciBtdXNjYSkuCgpAaXRlbQpUYWdzIChvciB3b3Jrc3BhY2VzIG9yIHZpcnR1YWwgZGVza3RvcHMg b3Ig4oCmKSBjYW4gYmUgYWRkZWQvcmVtb3ZlZCBhdCBydW50aW1lLgpFYWNoIHRhZyBjb250YWlu cyBhbiBvd24gbGF5b3V0LgoKQGl0ZW0KRXhhY3RseSBvbmUgdGFnIGlzIHZpZXdlZCBvbiBlYWNo IG1vbml0b3IuICBUaGUgdGFncyBhcmUgbW9uaXRvciBpbmRlcGVuZGVudAooc2ltaWxhciB0byBY bW9uYWQpLgoKQGl0ZW0KSXQgaXMgY29uZmlndXJlZCBhdCBydW50aW1lIHZpYSBJUEMgY2FsbHMg ZnJvbSBAY29tbWFuZHtoZXJic3RjbGllbnR9LiAgU28gdGhlCmNvbmZpZ3VyYXRpb24gZmlsZSBp cyBqdXN0IGEgc2NyaXB0IHdoaWNoIGlzIHJ1biBvbiBzdGFydHVwIChzaW1pbGFyIHRvIHdtaWkK b3IgbXVzY2EpLgoKQGVuZCBpdGVtaXplIikKICAgIChob21lLXBhZ2UgImh0dHBzOi8vaGVyYnN0 bHVmdHdtLm9yZyIpCiAgICAobGljZW5zZSBsaWNlbnNlOmJzZC0yKSkpCgooZGVmaW5lLXB1Ymxp YyBpM3N0YXR1cwogIChwYWNrYWdlCiAgICAobmFtZSAiaTNzdGF0dXMiKQogICAgKHZlcnNpb24g IjIuMTQiKQogICAgKHNvdXJjZSAob3JpZ2luCiAgICAgICAgICAgICAgKG1ldGhvZCB1cmwtZmV0 Y2gpCiAgICAgICAgICAgICAgKHVyaSAoc3RyaW5nLWFwcGVuZCAiaHR0cHM6Ly9pM3dtLm9yZy9p M3N0YXR1cy9pM3N0YXR1cy0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJz aW9uICIudGFyLnh6IikpCiAgICAgICAgICAgICAgKHNoYTI1NgogICAgICAgICAgICAgICAoYmFz ZTMyCiAgICAgICAgICAgICAgICAiMDkyOWNoaHZ5cTloZzRzY3BjejhyOXpuM3M5anZiZzZhODZr M3dxYTc3cWc4NXJoNGthdyIpKQogICAgICAgICAgICAgIChzbmlwcGV0CiAgICAgICAgICAgICAg IDs7IERlbGV0ZSB0aGUgcHJlZ2VuZXJhdGVkIG1hbiBwYWdlLCB0byBiZSByZWJ1aWx0IGZyb20g c291cmNlLgogICAgICAgICAgICAgICAnKGRlbGV0ZS1maWxlICJtYW4vaTNzdGF0dXMuMSIpKSkp CiAgICAoYnVpbGQtc3lzdGVtIG1lc29uLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAg ICAobGlzdCAjOmNvbmZpZ3VyZS1mbGFncwogICAgICAgICAgICcobGlzdCAiLURtYW5zPVRydWUi KQogICAgICAgICAgICM6dGVzdHM/ICNmKSkgICAgICAgICAgICAgICAgOyBubyB0ZXN0IHN1aXRl CiAgICAoaW5wdXRzCiAgICAgKGxpc3QgYWxzYS1saWIKICAgICAgICAgICBsaWJjb25mdXNlCiAg ICAgICAgICAgbGlibmwKICAgICAgICAgICB5YWpsCiAgICAgICAgICAgcHVsc2VhdWRpbykpCiAg ICAobmF0aXZlLWlucHV0cwogICAgIChsaXN0IGFzY2lpZG9jCiAgICAgICAgICAgcGVybAogICAg ICAgICAgIHBrZy1jb25maWcKICAgICAgICAgICBkb2Nib29rLXhzbCBsaWJ4bWwyICAgICAgICAg IDsgZm9yIFhNTF9DQVRBTE9HX0ZJTEVTCiAgICAgICAgICAgeG1sdG8pKQogICAgKGhvbWUtcGFn ZSAiaHR0cHM6Ly9pM3dtLm9yZy9pM3N0YXR1cy8iKQogICAgKHN5bm9wc2lzICJTdGF0dXMgYmFy IGZvciBpM2JhciwgZHplbjIsIHhtb2JhciBvciBzaW1pbGFyIHByb2dyYW1zIikKICAgIChkZXNj cmlwdGlvbiAiaTNzdGF0dXMgaXMgYSBzbWFsbCBwcm9ncmFtIGZvciBnZW5lcmF0aW5nIGEgc3Rh dHVzIGJhciBmb3IKaTNiYXIsIGR6ZW4yLCB4bW9iYXIgb3Igc2ltaWxhciBwcm9ncmFtcy4gIEl0 IGlzIGRlc2lnbmVkIHRvIGJlIHZlcnkgZWZmaWNpZW50CmJ5IGlzc3VpbmcgYSB2ZXJ5IHNtYWxs IG51bWJlciBvZiBzeXN0ZW0gY2FsbHMsIGFzIG9uZSBnZW5lcmFsbHkgd2FudHMgdG8KdXBkYXRl IHN1Y2ggYSBzdGF0dXMgbGluZSBldmVyeSBzZWNvbmQuICBUaGlzIGVuc3VyZXMgdGhhdCBldmVu IHVuZGVyIGhpZ2gKbG9hZCwgeW91ciBzdGF0dXMgYmFyIGlzIHVwZGF0ZWQgY29ycmVjdGx5LiAg QWxzbywgaXQgc2F2ZXMgYSBiaXQgb2YgZW5lcmd5IGJ5Cm5vdCBob2dnaW5nIHlvdXIgQ1BVIGFz IG11Y2ggYXMgc3Bhd25pbmcgdGhlIGNvcnJlc3BvbmRpbmcgYW1vdW50IG9mIHNoZWxsCmNvbW1h bmRzIHdvdWxkLiIpCiAgICAobGljZW5zZSBsaWNlbnNlOmJzZC0zKSkpCgooZGVmaW5lLXB1Ymxp YyBpMy13bQogIChwYWNrYWdlCiAgICAobmFtZSAiaTMtd20iKQogICAgKHZlcnNpb24gIjQuMjIi KQogICAgKHNvdXJjZSAob3JpZ2luCiAgICAgICAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAg ICAgICAgICAgICAgKHVyaSAoc3RyaW5nLWFwcGVuZCAiaHR0cHM6Ly9pM3dtLm9yZy9kb3dubG9h ZHMvaTMtIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiAiLnRhci54 eiIpKQogICAgICAgICAgICAgIChzaGEyNTYKICAgICAgICAgICAgICAgKGJhc2UzMgogICAgICAg ICAgICAgICAgIjBqcnlhNHJoaDQ2c2l2bG1xYXFjNG45YWJwcDF5bjFhamhpNjE2Z243NWN4d2w4 cmpxcjgiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBtZXNvbi1idWlsZC1zeXN0ZW0pCiAgICAoYXJn dW1lbnRzCiAgICAgKGxpc3QKICAgICAgOzsgVGhlIHRlc3Qgc3VpdGUgcmVxdWlyZXMgdGhlIHVu cGFja2FnZWQgWGVwaHlyIFggc2VydmVyLgogICAgICAjOnRlc3RzPyAjZgogICAgICAjOnBoYXNl cwogICAgICAjfihtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMKICAgICAgICAgIChhZGQt YWZ0ZXIgJ2luc3RhbGwgJ3BhdGNoLXNlc3Npb24tZmlsZQogICAgICAgICAgICAobGFtYmRhIF8K ICAgICAgICAgICAgICAobGV0ICgoaTMgKHN0cmluZy1hcHBlbmQgIyRvdXRwdXQgIi9iaW4vaTMi KSkKICAgICAgICAgICAgICAgICAgICAoaTMtd2l0aC1zaG1sb2cgKHN0cmluZy1hcHBlbmQgIyRv dXRwdXQgIi9iaW4vaTMtd2l0aC1zaG1sb2ciKSkpCiAgICAgICAgICAgICAgICAoc3Vic3RpdHV0 ZSogKHN0cmluZy1hcHBlbmQgIyRvdXRwdXQgIi9zaGFyZS94c2Vzc2lvbnMvaTMuZGVza3RvcCIp CiAgICAgICAgICAgICAgICAgICgoIkV4ZWM9aTMiKSAoc3RyaW5nLWFwcGVuZCAiRXhlYz0iIGkz KSkpCiAgICAgICAgICAgICAgICAoc3Vic3RpdHV0ZSogKHN0cmluZy1hcHBlbmQgIyRvdXRwdXQg Ii9zaGFyZS94c2Vzc2lvbnMvaTMtd2l0aC1zaG1sb2cuZGVza3RvcCIpCiAgICAgICAgICAgICAg ICAgICgoIkV4ZWM9aTMtd2l0aC1zaG1sb2ciKSAoc3RyaW5nLWFwcGVuZCAiRXhlYz0iIGkzLXdp dGgtc2htbG9nKSkpKSkpCiAgICAgICAgICAgKGFkZC1hZnRlciAncGF0Y2gtc2Vzc2lvbi1maWxl ICd3cmFwLXBlcmwtYmluCiAgICAgICAgICAgICAobGFtYmRhKiAoIzprZXkgaW5wdXRzICM6YWxs b3ctb3RoZXIta2V5cykKICAgICAgICAgICAgICAgKGxldCogKChpMy1zYXZlLXRyZWUgKHN0cmlu Zy1hcHBlbmQgIyRvdXRwdXQgIi9iaW4vaTMtc2F2ZS10cmVlIikpCiAgICAgICAgICAgICAgICAg ICAgICAocGVybC1saWItbmFtZXMgJygicGVybC1hbnlldmVudCIKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJwZXJsLWFueWV2ZW50LWkzIgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgInBlcmwtanNvbi14cyIKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJwZXJsLWNvbW1vbi1zZW5zZSIKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJwZXJsLXR5cGVzLXNlcmlhbGlzZXIiKSkKICAgICAg ICAgICAgICAgICAgICAgIChwZXJsLWxpYi1wYXRocwogICAgICAgICAgICAgICAgICAgICAgICht YXAgKGxhbWJkYSAobmFtZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1h cHBlbmQgKGFzc29jLXJlZiBpbnB1dHMgbmFtZSkgIi9saWIvcGVybDUvc2l0ZV9wZXJsIikpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJsLWxpYi1uYW1lcykpKQogICAgICAgICAgICAg ICAgICh3cmFwLXByb2dyYW0gaTMtc2F2ZS10cmVlCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBgKCJQRVJMNUxJQiIgIjoiIHByZWZpeCAscGVybC1saWItcGF0aHMpKSkpKSkpKQogICAg KGlucHV0cwogICAgIChsaXN0IGxpYnhjYgogICAgICAgICAgIHhjYi11dGlsCiAgICAgICAgICAg eGNiLXV0aWwtY3Vyc29yCiAgICAgICAgICAgeGNiLXV0aWwta2V5c3ltcwogICAgICAgICAgIHhj Yi11dGlsLXdtCiAgICAgICAgICAgeGNiLXV0aWwteHJtCiAgICAgICAgICAgbGlieGtiY29tbW9u CiAgICAgICAgICAgbGliZXYKICAgICAgICAgICB5YWpsCiAgICAgICAgICAgeG1sdG8KICAgICAg ICAgICBwZXJsCiAgICAgICAgICAgcGVybC1hbnlldmVudC1pMwogICAgICAgICAgIHBlcmwtanNv bi14cwogICAgICAgICAgIHBlcmwtY29tbW9uLXNlbnNlCiAgICAgICAgICAgcGVybC10eXBlcy1z ZXJpYWxpc2VyCiAgICAgICAgICAgcGVybC1wb2Qtc2ltcGxlCiAgICAgICAgICAgbGlieDExCiAg ICAgICAgICAgcGNyZTIKICAgICAgICAgICBzdGFydHVwLW5vdGlmaWNhdGlvbgogICAgICAgICAg IHBhbmdvCiAgICAgICAgICAgY2Fpcm8pKQogICAgKG5hdGl2ZS1pbnB1dHMKICAgICAobGlzdCB3 aGljaAogICAgICAgICAgIHBlcmwKICAgICAgICAgICBwa2ctY29uZmlnCiAgICAgICAgICAgYXNj aWlkb2MKICAgICAgICAgICA7OyBGb3IgYnVpbGRpbmcgdGhlIGRvY3VtZW50YXRpb24uCiAgICAg ICAgICAgbGlieG1sMgogICAgICAgICAgIGRvY2Jvb2steHNsKSkKICAgIChob21lLXBhZ2UgImh0 dHBzOi8vaTN3bS5vcmcvIikKICAgIChzeW5vcHNpcyAiVGlsaW5nIHdpbmRvdyBtYW5hZ2VyIikK ICAgIChkZXNjcmlwdGlvbiAiaTMgaXMgYSB0aWxpbmcgWDExIHdpbmRvdyBtYW5hZ2VyIHRoYXQg ZHluYW1pY2FsbHkgbWFuYWdlcwp0aWxlZCwgc3RhY2tlZCwgYW5kIHRhYmJlZCB3aW5kb3cgbGF5 b3V0cy4KCmkzIHByaW1hcmlseSB0YXJnZXRzIGFkdmFuY2VkIHVzZXJzLiAgV2luZG93cyBhcmUg bWFuYWdlZCBtYW51YWxseSBhbmQgb3JnYW5pc2VkCmluc2lkZSBjb250YWluZXJzLCB3aGljaCBj YW4gYmUgc3BsaXQgdmVydGljYWxseSBvciBob3Jpem9udGFsbHksIGFuZCBvcHRpb25hbGx5CnJl c2l6ZWQuCgppMyB1c2VzIGEgcGxhaW4tdGV4dCBjb25maWd1cmF0aW9uIGZpbGUsIGFuZCBjYW4g YmUgZXh0ZW5kZWQgYW5kIGNvbnRyb2xsZWQgZnJvbQptYW55IHByb2dyYW1taW5nIGxhbmd1YWdl cy4iKQogICAgKHByb3BlcnRpZXMKICAgICBgKCh1cHN0cmVhbS1uYW1lIC4gImkzIikKICAgICAg IChyZWxlYXNlLW1vbml0b3JpbmctdXJsIC4gImh0dHBzOi8vaTN3bS5vcmcvZG93bmxvYWRzIikp KQogICAgKGxpY2Vuc2UgbGljZW5zZTpic2QtMykpKQoKKGRlZmluZS1wdWJsaWMgaTMtZ2Fwcwog IChkZXByZWNhdGVkLXBhY2thZ2UgImkzLWdhcHMiIGkzLXdtKSkKCihkZWZpbmUtcHVibGljIGkz bG9jawogIChwYWNrYWdlCiAgICAobmFtZSAiaTNsb2NrIikKICAgICh2ZXJzaW9uICIyLjEzIikK ICAgIChzb3VyY2UgKG9yaWdpbgogICAgICAgICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAg ICAgICAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQgImh0dHBzOi8vaTN3bS5vcmcvaTNsb2NrL2kz bG9jay0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uICIudGFyLmJ6 MiIpKQogICAgICAgICAgICAgIChzaGEyNTYKICAgICAgICAgICAgICAgKGJhc2UzMgogICAgICAg ICAgICAgICAgIjAyc3pqc2F6N3JxcmRrZDByMm53Z3dhODVjNGh3ZnJjc2t4dzdyeWs2OTVrbWpj Zmh6djMiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBnbnUtYnVpbGQtc3lzdGVtKQogICAgKG5hdGl2 ZS1pbnB1dHMKICAgICAobGlzdCBwa2ctY29uZmlnKSkKICAgIChpbnB1dHMKICAgICAobGlzdCBj YWlybwogICAgICAgICAgIGxpYmV2CiAgICAgICAgICAgbGludXgtcGFtCiAgICAgICAgICAgbGli eGNiCiAgICAgICAgICAgbGlieGtiY29tbW9uCiAgICAgICAgICAgeGNiLXV0aWwKICAgICAgICAg ICB4Y2ItdXRpbC1pbWFnZQogICAgICAgICAgIHhjYi11dGlsLXhybSkpCiAgICAoaG9tZS1wYWdl ICJodHRwczovL2kzd20ub3JnL2kzbG9jay8iKQogICAgKHN5bm9wc2lzICJMaWdodHdlaWdodCBz Y3JlZW4gbG9ja2VyIikKICAgIChkZXNjcmlwdGlvbgogICAgICJpM2xvY2sgaXMgYSBzaW1wbGUg WDExIHNjcmVlbiBsb2NrZXIgZGV2ZWxvcGVkIGFsb25nc2lkZSB0aGUgaTMgcHJvamVjdC4KRGVz cGl0ZSB0aGUgbmFtZSBpdCBzaG91bGQgd29yayB3aXRoIGFueSBYMTEgd2luZG93IG1hbmFnZXIu IikKICAgIChsaWNlbnNlIGxpY2Vuc2U6YnNkLTMpKSkKCihkZWZpbmUtcHVibGljIGkzbG9jay1i bHVyCiAgKHBhY2thZ2UKICAgIChuYW1lICJpM2xvY2stYmx1ciIpCiAgICAodmVyc2lvbiAiMi4x MCIpCiAgICAoc291cmNlIChvcmlnaW4KICAgICAgICAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkK ICAgICAgICAgICAgICAodXJpCiAgICAgICAgICAgICAgIChnaXQtcmVmZXJlbmNlCiAgICAgICAg ICAgICAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20va2FydWxvbnQvaTNsb2NrLWJsdXIiKQog ICAgICAgICAgICAgICAgKGNvbW1pdCB2ZXJzaW9uKSkpCiAgICAgICAgICAgICAgKGZpbGUtbmFt ZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKQogICAgICAgICAgICAgIChzaGEyNTYKICAg ICAgICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAgICAgIjFiZDVucmxnYTVnMXN6MWY2NGdu YzNkcXk4eWZycjRxMXNzNTlrcnltYnB4YTFoaGY1NWMiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBn bnUtYnVpbGQtc3lzdGVtKQogICAgKG5hdGl2ZS1pbnB1dHMKICAgICAobGlzdCBwa2ctY29uZmln IGF1dG9tYWtlIGF1dG9jb25mKSkKICAgIChpbnB1dHMKICAgICAobGlzdCBjYWlybwogICAgICAg ICAgIG1lc2EKICAgICAgICAgICBsaWJldgogICAgICAgICAgIGxpbnV4LXBhbQogICAgICAgICAg IGxpYnhjYgogICAgICAgICAgIGxpYnhrYmNvbW1vbgogICAgICAgICAgIHhjYi11dGlsCiAgICAg ICAgICAgeGNiLXV0aWwtaW1hZ2UKICAgICAgICAgICB4Y2ItdXRpbC14cm0pKQogICAgKGhvbWUt cGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL2thcnVsb250L2kzbG9jay1ibHVyIikKICAgIChzeW5v cHNpcyAiTGlnaHR3ZWlnaHQgc2NyZWVuIGxvY2tlciB3aXRoIHRyYW5zcGFyZW50IGJsdXJyaW5n IGJhY2tncm91bmQiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgIlNpbXBsZSBYMTEgc2NyZWVuIGxv Y2tlciB3aXRoIHRyYW5zcGFyZW50IGJsdXJyaW5nIGJhY2tncm91bmQgZGV2ZWxvcGVkCmFsb25n c2lkZSB0aGUgaTMgcHJvamVjdC4gIERlc3BpdGUgdGhlIG5hbWUgaXQgc2hvdWxkIHdvcmsgd2l0 aCBhbnkgWDExIHdpbmRvdwptYW5hZ2VyLiIpCiAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkp CgooZGVmaW5lLXB1YmxpYyBpM2Jsb2NrcwogIChwYWNrYWdlCiAgICAobmFtZSAiaTNibG9ja3Mi KQogICAgKHZlcnNpb24gIjEuNSIpCiAgICAoc291cmNlIChvcmlnaW4KICAgICAgICAgICAgICAo bWV0aG9kIGdpdC1mZXRjaCkKICAgICAgICAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCiAgICAg ICAgICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL3Zpdmllbi9pM2Jsb2NrcyIp CiAgICAgICAgICAgICAgICAgICAgKGNvbW1pdCB2ZXJzaW9uKSkpCiAgICAgICAgICAgICAgKHNo YTI1NgogICAgICAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICAgICAiMHY4bXdubThxenB2 NnhucXZyazQzczRiOWl5bGQ0bmFxemJheGs0bGRxMXFraGFpMHdzdiIpKQogICAgICAgICAgICAg IChmaWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgbmFtZSB2ZXJzaW9uKSkpKQogICAgKGJ1aWxkLXN5 c3RlbSBnbnUtYnVpbGQtc3lzdGVtKQogICAgKG5hdGl2ZS1pbnB1dHMKICAgICAobGlzdCBhdXRv Y29uZiBhdXRvbWFrZSBwa2ctY29uZmlnKSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHVi LmNvbS92aXZpZW4vaTNibG9ja3MiKQogICAgKHN5bm9wc2lzICJNaW5pbWFsaXN0IHNjaGVkdWxl ciBmb3Igc3RhdHVzIGJhciBzY3JpcHRzIikKICAgIChkZXNjcmlwdGlvbiAiaTNibG9ja3MgZXhl Y3V0ZXMgeW91ciBjb21tYW5kIGxpbmVzIGFuZCBnZW5lcmF0ZXMgYQpzdGF0dXMgbGluZSBmcm9t IHRoZWlyIG91dHB1dC4gIFRoZSBnZW5lcmF0ZWQgbGluZSBpcyBtZWFudCB0byBiZSBkaXNwbGF5 ZWQgYnkKdGhlIGkzIHdpbmRvdyBtYW5hZ2VyIHRocm91Z2ggaXRzIGkzYmFyIGNvbXBvbmVudCwg YXMgYW4gYWx0ZXJuYXRpdmUgdG8KaTNzdGF0dXMuIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6Z3Bs MyspKSkKCihkZWZpbmUtcHVibGljIHBlcmwtYW55ZXZlbnQtaTMKICAocGFja2FnZQogICAgKG5h bWUgInBlcmwtYW55ZXZlbnQtaTMiKQogICAgKHZlcnNpb24gIjAuMTciKQogICAgKHNvdXJjZSAo b3JpZ2luCiAgICAgICAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgICAgICAgKHVy aSAoc3RyaW5nLWFwcGVuZCAibWlycm9yOi8vY3Bhbi9hdXRob3JzL2lkL00vTVMvTVNUUExCRy8i CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQW55RXZlbnQtSTMtIiB2ZXJzaW9u ICIudGFyLmd6IikpCiAgICAgICAgICAgICAgKHNoYTI1NgogICAgICAgICAgICAgICAoYmFzZTMy CiAgICAgICAgICAgICAgICAiMHF2ZDlicTE2anl5N3YzbWE4MnFjbnZ6OWo1MDNidzBtaDdoNTVn a2pmN2lyNjJjazBqayIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIHBlcmwtYnVpbGQtc3lzdGVtKQog ICAgKHByb3BhZ2F0ZWQtaW5wdXRzCiAgICAgKGxpc3QgcGVybC1hbnlldmVudCBwZXJsLWpzb24t eHMpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9tZXRhY3Bhbi5vcmcvcmVsZWFzZS9BbnlFdmVu dC1JMyIpCiAgICAoc3lub3BzaXMKICAgICAiQ29tbXVuaWNhdGUgd2l0aCB0aGUgaTMgd2luZG93 IG1hbmFnZXIgdGhyb3VnaCBwZXJsIikKICAgIChkZXNjcmlwdGlvbgogICAgICJUaGlzIG1vZHVs ZSBjb25uZWN0cyB0byB0aGUgaTMgd2luZG93IG1hbmFnZXIgdXNpbmcgdGhlIFVOSVggc29ja2V0 CmJhc2VkIElQQyBpbnRlcmZhY2UgaXQgcHJvdmlkZXMgKGlmIGVuYWJsZWQgaW4gdGhlIGNvbmZp Z3VyYXRpb24gZmlsZSkuCllvdSBjYW4gdGhlbiBzdWJzY3JpYmUgdG8gZXZlbnRzIG9yIHNlbmQg bWVzc2FnZXMgYW5kIHJlY2VpdmUgdGhlaXIgcmVwbGllcy4iKQogICAgOzsgQ2FuIGJlIHVzZWQg d2l0aCBlaXRoZXIgbGljZW5zZS4KICAgIChsaWNlbnNlIChsaXN0IGxpY2Vuc2U6Z3BsMysgbGlj ZW5zZTpwZXJsLWxpY2Vuc2UpKSkpCgooZGVmaW5lLXB1YmxpYyBweXRob24taTMtcHkKICAocGFj a2FnZQogICAgKG5hbWUgInB5dGhvbi1pMy1weSIpCiAgICAodmVyc2lvbiAiMC42LjUiKQogICAg KHNvdXJjZQogICAgIChvcmlnaW4KICAgICAgIDs7IFRoZSBsYXRlc3QgcmVsZWFzZSBpcyBub3Qg dGFnZ2VkIGluIEdpdCBub3IgaGFzIGFuIGVudHJ5IGluIFB5UGksCiAgICAgICA7OyBidXQgdGhl cmUgaXMgc3RpbGwgYSBjbGVhciBjb21taXQgZm9yIGl0LCBhbmQgaXQncyBiZWVuIHRoZSBsYXN0 IG9uZQogICAgICAgOzsgZm9yIHllYXJzLgogICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCiAgICAg ICAodXJpIChnaXQtcmVmZXJlbmNlCiAgICAgICAgICAgICAodXJsICJodHRwczovL2dpdGh1Yi5j b20vemliZXJuYS9pMy1weSIpCiAgICAgICAgICAgICAoY29tbWl0ICIyN2Y4OGE2MTZlOWVjYzM0 MGU3ZDA0MWQzZDAwNzgyZjhhMTk2NGMxIikpKQogICAgICAgKHNoYTI1NgogICAgICAgIChiYXNl MzIKICAgICAgICAgIjFubTcxOWRjMnhxbGxsN3ZqNGM0bTdtcGpiMjdscG4zYmczYzY2Z2Fqdm5y ejJ4MW5teHMiKSkKICAgICAgIChmaWxlLW5hbWUgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVy c2lvbiAiLWNoZWNrb3V0IikpKSkKICAgIChidWlsZC1zeXN0ZW0gcHl0aG9uLWJ1aWxkLXN5c3Rl bSkKICAgIChhcmd1bWVudHMKICAgICBgKCM6dGVzdHM/ICNmIDsgbm8gdGVzdHMgeWV0CiAgICAg ICAjOnBoYXNlcyAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCiAgICAgICAgICAgICAg ICAgIChhZGQtYWZ0ZXIgJ2luc3RhbGwgJ2luc3RhbGwtZG9jCiAgICAgICAgICAgICAgICAgICAg OzsgQ29weSByZWFkbWUgZmlsZSB0byBkb2N1bWVudGF0aW9uIGRpcmVjdG9yeS4KICAgICAgICAg ICAgICAgICAgICAobGFtYmRhKiAoIzprZXkgb3V0cHV0cyAjOmFsbG93LW90aGVyLWtleXMpCiAg ICAgICAgICAgICAgICAgICAgICAobGV0ICgoZG9jIChzdHJpbmctYXBwZW5kIChhc3NvYy1yZWYg b3V0cHV0cyAib3V0IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIi9zaGFyZS9kb2MvIiAsbmFtZSkpKQogICAgICAgICAgICAgICAgICAgICAgICAoaW5z dGFsbC1maWxlICJSRUFETUUubWQiIGRvYykKICAgICAgICAgICAgICAgICAgICAgICAgOzsgQXZv aWQgdW5zcGVjaWZpZWQgcmV0dXJuIHZhbHVlLgogICAgICAgICAgICAgICAgICAgICAgICAjdCkp KSkpKQogICAgKHByb3BhZ2F0ZWQtaW5wdXRzCiAgICAgKGxpc3QgaTMtd20pKQogICAgKGhvbWUt cGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3ppYmVybmEvaTMtcHkiKQogICAgKHN5bm9wc2lzICJQ eXRob24gaW50ZXJmYWNlIHRvIHRoZSBpMyB3aW5kb3cgbWFuYWdlciIpCiAgICAoZGVzY3JpcHRp b24gIlRoaXMgcGFja2FnZSBhbGxvd3MgeW91IHRvIGludGVyYWN0IGZyb20gYSBQeXRob24gcHJv Z3JhbQp3aXRoIHRoZSBpMyB3aW5kb3cgbWFuYWdlciB2aWEgaXRzIElQQyBzb2NrZXQuICBJdCBj YW4gc2VuZCBjb21tYW5kcyBhbmQgb3RoZXIKa2luZHMgb2YgbWVzc2FnZXMgdG8gaTMsIHNlbGVj dCB0aGUgYWZmZWN0ZWQgY29udGFpbmVycywgZmlsdGVyIHJlc3VsdHMgYW5kCnN1YnNjcmliZSB0 byBldmVudHMuIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6Z3BsMyspKSkKCihkZWZpbmUtcHVibGlj IHF0aWxlCiAgKHBhY2thZ2UKICAgIChuYW1lICJxdGlsZSIpCiAgICAodmVyc2lvbiAiMC4xOC4x IikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQog ICAgICAgICh1cmkgKHB5cGktdXJpICJxdGlsZSIgdmVyc2lvbikpCiAgICAgICAgKHNoYTI1Ngog ICAgICAgICAgKGJhc2UzMiAiMTRoYjI2eGt6YTdicnZrZDQyNzZqNjBteGQzenNhczcyaWg2eTBj cTNqMDYwaXptMTg2NSIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIHB5dGhvbi1idWlsZC1zeXN0ZW0p CiAgICAoYXJndW1lbnRzCiAgICAgYCgjOnRlc3RzPyAjZiA7IFRlc3RzIHJlcXVpcmUgWHZmYiBh bmQgd3JpdGFibGUgdGVtcC9jYWNoZSBzcGFjZQogICAgICAgIzpwaGFzZXMKICAgICAgIChtb2Rp ZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMKICAgICAgICAgKGFkZC1hZnRlciAndW5wYWNrICdw YXRjaC1wYXRocwogICAgICAgICAgIChsYW1iZGEqICgjOmtleSBpbnB1dHMgIzphbGxvdy1vdGhl ci1rZXlzKQogICAgICAgICAgICAgKHN1YnN0aXR1dGUqICJsaWJxdGlsZS9wYW5nb2NmZmkucHki CiAgICAgICAgICAgICAgICgoIl5nb2JqZWN0ID0gZmZpLmRsb3Blbi4qIikKICAgICAgICAgICAg ICAgICAoc3RyaW5nLWFwcGVuZCAiZ29iamVjdCA9IGZmaS5kbG9wZW4oXCIiCiAgICAgICAgICAg ICAgICAgIChhc3NvYy1yZWYgaW5wdXRzICJnbGliIikgIi9saWIvbGliZ29iamVjdC0yLjAuc28u MFwiKVxuIikpCiAgICAgICAgICAgICAgICAoKCJecGFuZ28gPSBmZmkuZGxvcGVuLioiKQogICAg ICAgICAgICAgICAgIChzdHJpbmctYXBwZW5kICJwYW5nbyA9IGZmaS5kbG9wZW4oXCIiCiAgICAg ICAgICAgICAgICAgIChhc3NvYy1yZWYgaW5wdXRzICJwYW5nbyIpICIvbGliL2xpYnBhbmdvLTEu MC5zby4wXCIpXG4iKSkKICAgICAgICAgICAgICAgICgoIl5wYW5nb2NhaXJvID0gZmZpLmRsb3Bl bi4qIikKICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAicGFuZ29jYWlybyA9IGZmaS5k bG9wZW4oXCIiCiAgICAgICAgICAgICAgICAgIChhc3NvYy1yZWYgaW5wdXRzICJwYW5nbyIpICIv bGliL2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjBcIilcbiIpKSkpKQogICAgICAgKGFkZC1hZnRlciAn aW5zdGFsbCAnaW5zdGFsbC14c2Vzc2lvbgogICAgICAgICAgIChsYW1iZGEqICgjOmtleSBvdXRw dXRzICM6YWxsb3ctb3RoZXIta2V5cykKICAgICAgICAgICAgIChsZXQqICgob3V0IChhc3NvYy1y ZWYgb3V0cHV0cyAib3V0IikpCiAgICAgICAgICAgICAgICAgICAgKHhzZXNzaW9ucyAoc3RyaW5n LWFwcGVuZCBvdXQgIi9zaGFyZS94c2Vzc2lvbnMiKSkKICAgICAgICAgICAgICAgICAgICAocXRp bGUgKHN0cmluZy1hcHBlbmQgb3V0ICIvYmluL3F0aWxlIHN0YXJ0IikpKQogICAgICAgICAgICAg ICAobWtkaXItcCB4c2Vzc2lvbnMpCiAgICAgICAgICAgICAgIChjb3B5LWZpbGUgInJlc291cmNl cy9xdGlsZS5kZXNrdG9wIiAoc3RyaW5nLWFwcGVuZCB4c2Vzc2lvbnMgIi9xdGlsZS5kZXNrdG9w IikpCiAgICAgICAgICAgICAgIChzdWJzdGl0dXRlKiAoc3RyaW5nLWFwcGVuZCB4c2Vzc2lvbnMg Ii9xdGlsZS5kZXNrdG9wIikKICAgICAgICAgICAgICAgICAoKCJxdGlsZSBzdGFydCIpIHF0aWxl KSkpKSkpKSkKICAgIChpbnB1dHMKICAgICAgKGxpc3QgZ2xpYiBwYW5nbyBwdWxzZWF1ZGlvKSkK ICAgIChwcm9wYWdhdGVkLWlucHV0cwogICAgICAobGlzdCBweXRob24tY2Fpcm9jZmZpCiAgICAg ICAgICAgIHB5dGhvbi1jZmZpCiAgICAgICAgICAgIHB5dGhvbi1kYXRldXRpbAogICAgICAgICAg ICBweXRob24tZGJ1cy1uZXh0CiAgICAgICAgICAgIHB5dGhvbi1pd2xpYgogICAgICAgICAgICBw eXRob24ta2V5cmluZwogICAgICAgICAgICBweXRob24tbXBkMgogICAgICAgICAgICBweXRob24t cHl4ZGcKICAgICAgICAgICAgcHl0aG9uLXhjZmZpYikpCiAgICAobmF0aXZlLWlucHV0cwogICAg ICAobGlzdCBwa2ctY29uZmlnCiAgICAgICAgICAgIHB5dGhvbi1mbGFrZTgKICAgICAgICAgICAg cHl0aG9uLXBlcDgtbmFtaW5nCiAgICAgICAgICAgIHB5dGhvbi1wc3V0aWwKICAgICAgICAgICAg cHl0aG9uLXB5dGVzdC1jb3YKICAgICAgICAgICAgcHl0aG9uLXNldHVwdG9vbHMtc2NtKSkKICAg IChob21lLXBhZ2UgImh0dHA6Ly9xdGlsZS5vcmciKQogICAgKHN5bm9wc2lzICJIYWNrYWJsZSB0 aWxpbmcgd2luZG93IG1hbmFnZXIgd3JpdHRlbiBhbmQgY29uZmlndXJlZCBpbiBQeXRob24iKQog ICAgKGRlc2NyaXB0aW9uICJRdGlsZSBpcyBzaW1wbGUsIHNtYWxsLCBhbmQgZXh0ZW5zaWJsZS4g IEl0J3MgZWFzeSB0byB3cml0ZQp5b3VyIG93biBsYXlvdXRzLCB3aWRnZXRzLCBhbmQgYnVpbHQt aW4gY29tbWFuZHMuIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKCihkZWZpbmUtcHVi bGljIHF1aWNrc3dpdGNoLWkzCiAgKGxldCAoKGNvbW1pdCAiZWQ2OTJiMWU4ZjQzYjk1YmQ5MDdj ZWQyNjIzOGNlOGNjYjJlZDI4ZiIpCiAgICAgICAgKHJldmlzaW9uICIxIikpIDsgR3VpeCBwYWNr YWdlIHJldmlzaW9uCiAgICAocGFja2FnZQogICAgICAobmFtZSAicXVpY2tzd2l0Y2gtaTMiKQog ICAgICAodmVyc2lvbiAoc3RyaW5nLWFwcGVuZCAiMi4yLSIgcmV2aXNpb24gIi4iCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctdGFrZSBjb21taXQgNykpKQogICAgICAoc291 cmNlCiAgICAgICAob3JpZ2luCiAgICAgICAgIDs7IFRoZSBsYXRlc3QgY29tbWl0IGlzIGEgZmV3 IHllYXJzIG9sZCBhbmQganVzdCBhIGNvdXBsZSBjb21taXRzCiAgICAgICAgIDs7IGFmdGVyIHRo ZSBsYXN0IHRhZ2dlZCByZWxlYXNlLCBzbyB3ZSB1c2UgdGhhdCBsYXRlc3QgY29tbWl0CiAgICAg ICAgIDs7IGluc3RlYWQgb2YgdGhlIHJlbGVhc2UuCiAgICAgICAgIChtZXRob2QgZ2l0LWZldGNo KQogICAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCiAgICAgICAgICAgICAgICh1cmwgImh0dHBz Oi8vZ2l0aHViLmNvbS9wcm94eXBva2UvcXVpY2tzd2l0Y2gtZm9yLWkzIikKICAgICAgICAgICAg ICAgKGNvbW1pdCBjb21taXQpKSkKICAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgog ICAgICAgICAgICIwNDQ3MDc3c2FtYTgwamNkZzVwNjR6anN2YWZtejVyYmRyaXJobTFhZGNkamhr aDZpcWM1IikpCiAgICAgICAgIChwYXRjaGVzIChzZWFyY2gtcGF0Y2hlcyAicXVpY2tzd2l0Y2gt Zml4LWRtZW51LWNoZWNrLnBhdGNoIikpCiAgICAgICAgIChmaWxlLW5hbWUgKHN0cmluZy1hcHBl bmQgbmFtZSAiLSIgdmVyc2lvbiAiLWNoZWNrb3V0IikpKSkKICAgICAgKGJ1aWxkLXN5c3RlbSBw eXRob24tYnVpbGQtc3lzdGVtKQogICAgICAoYXJndW1lbnRzCiAgICAgICBgKCM6dGVzdHM/ICNm IDsgbm8gdGVzdHMgeWV0CiAgICAgICAgICM6cGhhc2VzIChtb2RpZnktcGhhc2VzICVzdGFuZGFy ZC1waGFzZXMKICAgICAgICAgICAgICAgICAgICAoYWRkLWFmdGVyICdpbnN0YWxsICdpbnN0YWxs LWRvYwogICAgICAgICAgICAgICAgICAgICAgOzsgQ29weSByZWFkbWUgZmlsZSB0byBkb2N1bWVu dGF0aW9uIGRpcmVjdG9yeS4KICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEqICgjOmtleSBv dXRwdXRzICM6YWxsb3ctb3RoZXIta2V5cykKICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAo KGRvYyAoc3RyaW5nLWFwcGVuZCAoYXNzb2MtcmVmIG91dHB1dHMgIm91dCIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi9zaGFyZS9kb2MvIiAsbmFt ZSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgIChpbnN0YWxsLWZpbGUgIlJFQURNRS5yc3Qi IGRvYykKICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBBdm9pZCB1bnNwZWNpZmllZCByZXR1 cm4gdmFsdWUuCiAgICAgICAgICAgICAgICAgICAgICAgICAgI3QpKSkpKSkKICAgICAgKGlucHV0 cwogICAgICAgKGxpc3QgcHl0aG9uLWkzLXB5IGRtZW51KSkKICAgICAgKGhvbWUtcGFnZSAiaHR0 cHM6Ly9naXRodWIuY29tL3Byb3h5cG9rZS9xdWlja3N3aXRjaC1mb3ItaTMiKQogICAgICAoc3lu b3BzaXMgIlF1aWNrbHkgY2hhbmdlIHRvIGFuZCBsb2NhdGUgd2luZG93cyBpbiB0aGUgaTMgd2lu ZG93IG1hbmFnZXIiKQogICAgICAoZGVzY3JpcHRpb24KICAgICAgICJUaGlzIHV0aWxpdHkgZm9y IHRoZSBpMyB3aW5kb3cgbWFuYWdlciBhbGxvd3MgeW91IHRvIHF1aWNrbHkgc3dpdGNoIHRvCmFu ZCBsb2NhdGUgd2luZG93cyBvbiBhbGwgeW91ciB3b3Jrc3BhY2VzLCB1c2luZyBhbiBpbnRlcmFj dGl2ZSBkbWVudQpwcm9tcHQuIikKICAgICAgKGxpY2Vuc2UgbGljZW5zZTp3dGZwbDIpKSkpCgoo ZGVmaW5lLXB1YmxpYyBpM2xvY2stY29sb3IKICAocGFja2FnZQogICAgKG5hbWUgImkzbG9jay1j b2xvciIpCiAgICAodmVyc2lvbiAiMi4xMy5jLjQiKQogICAgKHNvdXJjZQogICAgIChvcmlnaW4K ICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQogICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQogICAg ICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL1JheW1vMTExL2kzbG9jay1jb2xvciIp CiAgICAgICAgICAgICAoY29tbWl0IHZlcnNpb24pKSkKICAgICAgIChmaWxlLW5hbWUgKGdpdC1m aWxlLW5hbWUgbmFtZSB2ZXJzaW9uKSkKICAgICAgIChzaGEyNTYKICAgICAgICAoYmFzZTMyICIx bG55aDhzcGJmMWFyNHhhbjV2N3E4aTJpNTFhcTFpNjBremJma245dzN3YTBqemY5ZjNkIikpKSkK ICAgIChidWlsZC1zeXN0ZW0gZ251LWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICBg KCM6dGVzdHM/ICNmKSkgICAgICAgICAgICAgICAgICAgIDsgbm8gdGVzdHMgaW5jbHVkZWQKICAg IChpbnB1dHMKICAgICAobGlzdCBjYWlybwogICAgICAgICAgIGxpYmV2CiAgICAgICAgICAgbGli anBlZy10dXJibwogICAgICAgICAgIGxpYnhjYgogICAgICAgICAgIGxpYnhrYmNvbW1vbgogICAg ICAgICAgIGxpbnV4LXBhbQogICAgICAgICAgIHhjYi11dGlsCiAgICAgICAgICAgeGNiLXV0aWwt aW1hZ2UKICAgICAgICAgICB4Y2ItdXRpbC14cm0pKQogICAgKG5hdGl2ZS1pbnB1dHMKICAgICAo bGlzdCBhdXRvY29uZiBhdXRvbWFrZSBwa2ctY29uZmlnKSkKICAgIChob21lLXBhZ2UgImh0dHBz Oi8vZ2l0aHViLmNvbS9SYXltbzExMS9pM2xvY2stY29sb3IiKQogICAgKHN5bm9wc2lzICJTY3Jl ZW4gbG9ja2VyIHdpdGggY29sb3IgY29uZmlndXJhdGlvbiBzdXBwb3J0IikKICAgIChkZXNjcmlw dGlvbgogICAgICJpM2xvY2stY29sb3IgaXMgYSBzaW1wbGVyIFgxMSBzY3JlZW4gbG9ja2VyIGRl cml2ZWQgZnJvbSBpM2xvY2suCkZlYXR1cmVzIGluY2x1ZGU6CgpAZW51bWVyYXRlCkBpdGVtIGZv cmtpbmcgcHJvY2VzcywgdGhlIGxvY2tlZCBzY3JlZW4gaXMgcHJlc2VydmVkIHdoZW4geW91IHN1 c3BlbmQgdG8gUkFNOwpAaXRlbSBzcGVjaWZ5IGJhY2tncm91bmQgY29sb3Igb3IgaW1hZ2UgdG8g YmUgZGlzcGxheWVkIGluIHRoZSBsb2NrIHNjcmVlbjsKQGl0ZW0gbWFueSBhZGRpdGlvbmFsIGNv bG9yIG9wdGlvbnMuCkBlbmQgZW51bWVyYXRlIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6YnNkLTMp KSkKCihkZWZpbmUtcHVibGljIGkzbG9jay1mYW5jeQogIChwYWNrYWdlCiAgICAobmFtZSAiaTNs b2NrLWZhbmN5IikKICAgICh2ZXJzaW9uICIwLjIiKQogICAgKHNvdXJjZQogICAgIChvcmlnaW4K ICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQogICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQogICAg ICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL21lc2thcnVuZS9pM2xvY2stZmFuY3ki KQogICAgICAgICAgICAgKGNvbW1pdCB2ZXJzaW9uKSkpCiAgICAgICAoZmlsZS1uYW1lIChnaXQt ZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpCiAgICAgICAoc2hhMjU2CiAgICAgICAgKGJhc2UzMiAi MTFnMmtraW0zM3JhMzhkMW04OTdzcTFpZmFqdzE3aXl3OW1yN3NnMXE4aTJpYmw0bGZzaSIpKSkp CiAgICAoYnVpbGQtc3lzdGVtIGdudS1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAg YCgjOnRlc3RzPyAjZiAgICAgICAgICAgICAgICAgICAgICA7IG5vIHRlc3RzIGluY2x1ZGVkCiAg ICAgICAjOnBoYXNlcwogICAgICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcwogICAg ICAgICAocmVwbGFjZSAnY29uZmlndXJlCiAgICAgICAgICAgKGxhbWJkYSogKCM6a2V5IGlucHV0 cyBvdXRwdXRzICM6YWxsb3ctb3RoZXIta2V5cykKICAgICAgICAgICAgIChsZXQqICgob3V0IChh c3NvYy1yZWYgb3V0cHV0cyAib3V0IikpCiAgICAgICAgICAgICAgICAgICAgKGljb25zIChzdHJp bmctYXBwZW5kIG91dCAiL3NoYXJlL2kzbG9jay1mYW5jeS9pY29ucy8iKSkKICAgICAgICAgICAg ICAgICAgICAod21jdHJsIChzZWFyY2gtaW5wdXQtZmlsZSBpbnB1dHMgIi9iaW4vd21jdHJsIikp CiAgICAgICAgICAgICAgICAgICAgKG1jb252ZXJ0IChzZWFyY2gtaW5wdXQtZmlsZSBpbnB1dHMg Ii9iaW4vY29udmVydCIpKQogICAgICAgICAgICAgICAgICAgIChtaW1wb3J0IChzZWFyY2gtaW5w dXQtZmlsZSBpbnB1dHMgIi9iaW4vaW1wb3J0IikpCiAgICAgICAgICAgICAgICAgICAgKGF3ayAo c2VhcmNoLWlucHV0LWZpbGUgaW5wdXRzICIvYmluL2dhd2siKSkpCgogICAgICAgICAgICAgICAo c3Vic3RpdHV0ZSogImxvY2siCiAgICAgICAgICAgICAgICAgKCgiXFwkXFwoY29tbWFuZCAtViB3 bWN0cmxcXCkiKSB3bWN0cmwpCiAgICAgICAgICAgICAgICAgKCgiY29udmVydCIpIG1jb252ZXJ0 KQogICAgICAgICAgICAgICAgICgoInNob3Q9XFwoaW1wb3J0IikgKHN0cmluZy1hcHBlbmQgInNo b3Q9XCgiIG1pbXBvcnQpKQogICAgICAgICAgICAgICAgICgoImF3ayAtRiIpIChzdHJpbmctYXBw ZW5kIGF3ayAiIC1GIikpCiAgICAgICAgICAgICAgICAgKCgiIGF3ayIpIGF3aykKICAgICAgICAg ICAgICAgICAoKCJcXCRzY3JpcHRwYXRoL2ljb25zLyIpIGljb25zKSkKICAgICAgICAgICAgICAg I3QpKSkKICAgICAgICAgKGRlbGV0ZSAnYnVpbGQpCiAgICAgICAgIChyZXBsYWNlICdpbnN0YWxs CiAgICAgICAgICAgKGxhbWJkYSogKCM6a2V5IGlucHV0cyBvdXRwdXRzICM6YWxsb3ctb3RoZXIt a2V5cykKICAgICAgICAgICAgIChsZXQqICgob3V0IChhc3NvYy1yZWYgb3V0cHV0cyAib3V0Iikp CiAgICAgICAgICAgICAgICAgICAgKGJpbiAoc3RyaW5nLWFwcGVuZCBvdXQgIi9iaW4iKSkKICAg ICAgICAgICAgICAgICAgICAoaWNvbnMgKHN0cmluZy1hcHBlbmQgb3V0ICIvc2hhcmUvaTNsb2Nr LWZhbmN5L2ljb25zLyIpKSkKCiAgICAgICAgICAgICAgIChpbnN0YWxsLWZpbGUgImxvY2siIGJp bikKICAgICAgICAgICAgICAgKHJlbmFtZS1maWxlIChzdHJpbmctYXBwZW5kIGJpbiAiL2xvY2si KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1hcHBlbmQgYmluICIvaTNsb2Nr LWZhbmN5IikpCiAgICAgICAgICAgICAgIChjb3B5LXJlY3Vyc2l2ZWx5ICJpY29ucyIgaWNvbnMp CiAgICAgICAgICAgICAgICN0KSkpKSkpCiAgICAoaW5wdXRzCiAgICAgKGxpc3QgaW1hZ2VtYWdp Y2sgd21jdHJsIGkzbG9jayBnYXdrKSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNv bS9tZXNrYXJ1bmUvaTNsb2NrLWZhbmN5IikKICAgIChzeW5vcHNpcyAiU2NyZWVuIGxvY2tlciB3 aXRoIHNjcmVlbnNob3QgZnVuY3Rpb24iKQogICAgKGRlc2NyaXB0aW9uCiAgICAgIkBjb2Rle2kz bG9jay1mYW5jeX0gaXMgYSBCYXNoIHNjcmlwdCB0aGF0IHRha2VzIGEgc2NyZWVuc2hvdCBvZgp0 aGUgZGVza3RvcCwgYmx1cnMgdGhlIGJhY2tncm91bmQgYW5kIGFkZHMgYSBsb2NrIGljb24gYW5k IHRleHQuCkl0IHJlcXVpcmVzIEBjb2Rle2kzbG9jay1jb2xvcn0gb3IgQGNvZGV7aTNsb2NrfSBh bmQgY2FuIG9wdGlvbmFsbHkKYmUgcGFzc2VkIGFueSBzY3JlZW5zaG90IHV0aWwgbGlrZSBAY29k ZXtzY3JvdH0uClRoaXMgc2NyZWVuIGxvY2tlciBjYW4gYmUgdXNlZCB3aXRoIGFueSB3aW5kb3cg bWFuYWdlciBvcgpkZXNrdG9wIGVudmlyb25tZW50LiIpCiAgICAobGljZW5zZSBsaWNlbnNlOmV4 cGF0KSkpCgooZGVmaW5lLXB1YmxpYyBpY2V3bQogIChwYWNrYWdlCiAgICAobmFtZSAiaWNld20i KQogICAgKHZlcnNpb24gIjMuNC43IikKICAgIChzb3VyY2UgKG9yaWdpbgogICAgICAgICAgICAg IChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQKICAg ICAgICAgICAgICAgICAgICAiaHR0cHM6Ly9naXRodWIuY29tL2ljZS13bS9pY2V3bS9yZWxlYXNl cy9kb3dubG9hZC8iCiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiAiL2ljZXdtLSIgdmVyc2lv biAiLnRhci5seiIpKQogICAgICAgICAgICAgIChzaGEyNTYKICAgICAgICAgICAgICAgKGJhc2Uz MgogICAgICAgICAgICAgICAgIjBjMWM5cXdhcTlrZGxtYTVrZnF6anp6bTZ3azNid3c2YjdtdzRi M2o3NmZuN21zNDk4MnMiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBnbnUtYnVpbGQtc3lzdGVtKQog ICAgKG5hdGl2ZS1pbnB1dHMgKGxpc3QgcGtnLWNvbmZpZykpCiAgICAoaW5wdXRzIChsaXN0IGZv bnRjb25maWcKICAgICAgICAgICAgICAgICAgZnJpYmlkaQogICAgICAgICAgICAgICAgICBnbGli ICAgICAgICAgICAgICAgICAgO2ZvciBpY2V3bS1tZW51LWZkbwogICAgICAgICAgICAgICAgICBp bWxpYjIKICAgICAgICAgICAgICAgICAgbGliaWNlCiAgICAgICAgICAgICAgICAgIGxpYmpwZWct dHVyYm8KICAgICAgICAgICAgICAgICAgbGlic20KICAgICAgICAgICAgICAgICAgbGlieGNvbXBv c2l0ZQogICAgICAgICAgICAgICAgICBsaWJ4ZGFtYWdlCiAgICAgICAgICAgICAgICAgIGxpYnhl eHQKICAgICAgICAgICAgICAgICAgbGlieGZpeGVzCiAgICAgICAgICAgICAgICAgIGxpYnhmdAog ICAgICAgICAgICAgICAgICBsaWJ4aW5lcmFtYQogICAgICAgICAgICAgICAgICBsaWJ4cG0KICAg ICAgICAgICAgICAgICAgbGlieHJhbmRyCiAgICAgICAgICAgICAgICAgIGxpYnhyZW5kZXIKICAg ICAgICAgICAgICAgICAgbGlieDExCiAgICAgICAgICAgICAgICAgIGx6aXAKICAgICAgICAgICAg ICAgICAgcGVybCkpCiAgICAoYXJndW1lbnRzCiAgICAgKGxpc3QgIzpwaGFzZXMKICAgICAgICAg ICAjfihtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMKICAgICAgICAgICAgICAgKGFkZC1h ZnRlciAndW5wYWNrICdza2lwLWZhaWxpbmctdGVzdAogICAgICAgICAgICAgICAgIDs7IHN0cnRl c3QuY2MgdGVzdHMgZmFpbGluZyBkdWUgdG8gJEhPTUUgYW5kIC9ldGMgc2V0dXAKICAgICAgICAg ICAgICAgICA7OyBkaWZmZXJlbmNlIHVuZGVyIGd1aXgKICAgICAgICAgICAgICAgICAobGFtYmRh IF8KICAgICAgICAgICAgICAgICAgIChzdWJzdGl0dXRlKiAic3JjL01ha2VmaWxlLmluIgogICAg ICAgICAgICAgICAgICAgICAoKCJURVNUUyA9IHN0cnRlc3RcXCRcXChFWEVFWFRcXCkiKQogICAg ICAgICAgICAgICAgICAgICAgIlRFU1RTID0gIikpKSkpKSkKICAgIChob21lLXBhZ2UgImh0dHBz Oi8vaWNlLXdtLm9yZy8iKQogICAgKHN5bm9wc2lzICJXaW5kb3cgbWFuYWdlciBmb3IgdGhlIFgg V2luZG93IFN5c3RlbSIpCiAgICAoZGVzY3JpcHRpb24KICAgICAiSWNlV00gaXMgYSB3aW5kb3cg bWFuYWdlciBmb3IgdGhlIFggV2luZG93IFN5c3RlbS4gIFRoZSBnb2FsIG9mIEljZVdNIGlzCnNw ZWVkLCBzaW1wbGljaXR5LCBhbmQgbm90IGdldHRpbmcgaW4gdGhlIHVzZXLigJlzIHdheS4gIEl0 IGNvbWVzIHdpdGggYSB0YXNrYmFyCndpdGggcGFnZXIsIGdsb2JhbCBhbmQgcGVyLXdpbmRvdyBr ZXliaW5kaW5ncyBhbmQgYSBkeW5hbWljIG1lbnUgc3lzdGVtLgpBcHBsaWNhdGlvbiB3aW5kb3dz IGNhbiBiZSBtYW5hZ2VkIGJ5IGtleWJvYXJkIGFuZCBtb3VzZS4gIFdpbmRvd3MgY2FuIGJlCmlj b25pZmllZCB0byB0aGUgdGFza2JhciwgdG8gdGhlIHRyYXksIHRvIHRoZSBkZXNrdG9wIG9yIGJl IG1hZGUgaGlkZGVuLiAgVGhleQphcmUgY29udHJvbGxhYmxlIGJ5IGEgcXVpY2sgc3dpdGNoIHdp bmRvdyAoQWx0K1RhYikgYW5kIGluIGEgd2luZG93IGxpc3QuICBBCmhhbmRmdWwgb2YgY29uZmln dXJhYmxlIGZvY3VzIG1vZGVscyBhcmUgbWVudS1zZWxlY3RhYmxlLiAgU2V0dXBzIHdpdGgKbXVs dGlwbGUgbW9uaXRvcnMgYXJlIHN1cHBvcnRlZCBieSBSYW5kUiBhbmQgWGluZXJhbWEuICBJY2VX TSBpcyB2ZXJ5CmNvbmZpZ3VyYWJsZSwgdGhlbWVhYmxlIGFuZCB3ZWxsIGRvY3VtZW50ZWQuICBJ dCBpbmNsdWRlcyBhbiBvcHRpb25hbCBleHRlcm5hbApiYWNrZ3JvdW5kIHdhbGxwYXBlciBtYW5h Z2VyIHdpdGggdHJhbnNwYXJlbmN5IHN1cHBvcnQsIGEgc2ltcGxlIHNlc3Npb24KbWFuYWdlciBh bmQgYSBzeXN0ZW0gdHJheS4iKQogICAgKGxpY2Vuc2UgbGljZW5zZTpsZ3BsMi4wKSkpCgooZGVm aW5lLXB1YmxpYyB4bW9uYWQKICAocGFja2FnZQogICAgKG5hbWUgInhtb25hZCIpCiAgICAodmVy c2lvbiAiMC4xNy4xIikKICAgIChzb3VyY2UgKG9yaWdpbgogICAgICAgICAgICAgIChtZXRob2Qg dXJsLWZldGNoKQogICAgICAgICAgICAgICh1cmkgKGhhY2thZ2UtdXJpICJ4bW9uYWQiIHZlcnNp b24pKQogICAgICAgICAgICAgIChzaGEyNTYKICAgICAgICAgICAgICAgKGJhc2UzMgogICAgICAg ICAgICAgICAgIjFhcHF3eXFtYzUxZ2FtZmdzdmxhbnpxcWlnOXF2anNzODlpYmNhbWhuaGExZ3Mx azRqbDgiKSkKICAgICAgICAgICAgICAocGF0Y2hlcyAoc2VhcmNoLXBhdGNoZXMgInhtb25hZC1k eW5hbWljLWxpbmtpbmcucGF0Y2giKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBoYXNrZWxsLWJ1aWxk LXN5c3RlbSkKICAgIChwcm9wZXJ0aWVzICcoKHVwc3RyZWFtLW5hbWUgLiAieG1vbmFkIikpKQog ICAgKGlucHV0cyAobGlzdCBnaGMteDExIGdoYy1kYXRhLWRlZmF1bHQtY2xhc3MgZ2hjLXNldGxv Y2FsZSkpCiAgICAobmF0aXZlLWlucHV0cyAobGlzdCBnaGMtcXVpY2tjaGVjayBnaGMtcXVpY2tj aGVjay1jbGFzc2VzKSkKICAgIChhcmd1bWVudHMKICAgICAgKGxpc3QKICAgICAgICM6cGhhc2Vz CiAgICAgICAjfihtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMKICAgICAgICAgICAoYWRk LWFmdGVyICdpbnN0YWxsICdpbnN0YWxsLXhzZXNzaW9uCiAgICAgICAgICAgICAobGFtYmRhIF8K ICAgICAgICAgICAgICAgKGxldCAoKHhzZXNzaW9ucyAoc3RyaW5nLWFwcGVuZCAjJG91dHB1dCAi L3NoYXJlL3hzZXNzaW9ucyIpKSkKICAgICAgICAgICAgICAgICAobWtkaXItcCB4c2Vzc2lvbnMp CiAgICAgICAgICAgICAgICAgKGNhbGwtd2l0aC1vdXRwdXQtZmlsZSAoc3RyaW5nLWFwcGVuZCB4 c2Vzc2lvbnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICIveG1vbmFkLmRlc2t0b3AiKQogICAgICAgICAgICAgICAgICAobGFtYmRhIChwb3J0 KQogICAgICAgICAgICAgICAgICAgIChmb3JtYXQgcG9ydCAifgogICAgICAgICAgICAgICAgICAg ICBbRGVza3RvcCBFbnRyeV1+QAogICAgICAgICAgICAgICAgICAgICBOYW1lPX5hfkAKICAgICAg ICAgICAgICAgICAgICAgQ29tbWVudD14bW9uYWQgd2luZG93IG1hbmFnZXJ+QAogICAgICAgICAg ICAgICAgICAgICBFeGVjPX5hL2Jpbi94bW9uYWR+QAogICAgICAgICAgICAgICAgICAgICBUeXBl PUFwcGxpY2F0aW9ufiUiICMkbmFtZSAjJG91dHB1dCkpKSkpKSkKICAgICAgICM6Y2FiYWwtcmV2 aXNpb24gJygiMiIKICAgICAgICAgICAgICAgICAgICAgICAgICAiMXJnd3JueWI3a2lqemwybXFt OGtzMm55ZGgzN3E1dmtiZzQ0MDByZzluNngxM3cycjliMyIpKSkKICAgIChob21lLXBhZ2UgImh0 dHA6Ly94bW9uYWQub3JnIikKICAgIChzeW5vcHNpcyAiVGlsaW5nIHdpbmRvdyBtYW5hZ2VyIikK ICAgIChkZXNjcmlwdGlvbgogICAgICJYbW9uYWQgaXMgYSB0aWxpbmcgd2luZG93IG1hbmFnZXIg Zm9yIFguICBXaW5kb3dzIGFyZSBhcnJhbmdlZAphdXRvbWF0aWNhbGx5IHRvIHRpbGUgdGhlIHNj cmVlbiB3aXRob3V0IGdhcHMgb3Igb3ZlcmxhcCwgbWF4aW1pc2luZyBzY3JlZW4KdXNlLiAgQWxs IGZlYXR1cmVzIG9mIHRoZSB3aW5kb3cgbWFuYWdlciBhcmUgYWNjZXNzaWJsZSBmcm9tIHRoZSBr ZXlib2FyZDogYQptb3VzZSBpcyBzdHJpY3RseSBvcHRpb25hbC4gIFhtb25hZCBpcyB3cml0dGVu IGFuZCBleHRlbnNpYmxlIGluIEhhc2tlbGwuCkN1c3RvbSBsYXlvdXQgYWxnb3JpdGhtcywgYW5k IG90aGVyIGV4dGVuc2lvbnMsIG1heSBiZSB3cml0dGVuIGJ5IHRoZSB1c2VyIGluCmNvbmZpZyBm aWxlcy4gIExheW91dHMgYXJlIGFwcGxpZWQgZHluYW1pY2FsbHksIGFuZCBkaWZmZXJlbnQgbGF5 b3V0cyBtYXkgYmUKdXNlZCBvbiBlYWNoIHdvcmtzcGFjZS4gIFhpbmVyYW1hIGlzIGZ1bGx5IHN1 cHBvcnRlZCwgYWxsb3dpbmcgd2luZG93cyB0byBiZQp0aWxlZCBvbiBzZXZlcmFsIHNjcmVlbnMu IikKICAgIChsaWNlbnNlIGxpY2Vuc2U6YnNkLTMpKSkKCihkZWZpbmUtcHVibGljIGdoYy14bW9i YXIKICAocGFja2FnZQogICAgKG5hbWUgImdoYy14bW9iYXIiKQogICAgKHZlcnNpb24gIjAuNDYi KQogICAgKHNvdXJjZSAob3JpZ2luCiAgICAgICAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAg ICAgICAgICAgICAgKHVyaSAoaGFja2FnZS11cmkgInhtb2JhciIgdmVyc2lvbikpCiAgICAgICAg ICAgICAgKHNoYTI1NgogICAgICAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICAgICAiMGds cGlxN2MwcXdmY3huYzJmbGd6ajdhZm01bTFhOWdoend3Y3E3ZjhxMjdtMjFrZGRyZCIpKSkpCiAg ICAoYnVpbGQtc3lzdGVtIGhhc2tlbGwtYnVpbGQtc3lzdGVtKQogICAgKHByb3BlcnRpZXMgJygo dXBzdHJlYW0tbmFtZSAuICJ4bW9iYXIiKSkpCiAgICAobmF0aXZlLWlucHV0cwogICAgIChsaXN0 IGdoYy1oc3BlYyBoc3BlYy1kaXNjb3ZlcikpCiAgICAoaW5wdXRzCiAgICAgKGxpc3QgZ2hjLWFs c2EtY29yZQogICAgICAgICAgIGdoYy1hbHNhLW1peGVyCiAgICAgICAgICAgZ2hjLWRidXMKICAg ICAgICAgICBnaGMtaGlub3RpZnkKICAgICAgICAgICBnaGMtaHR0cC1jbGllbnQtdGxzCiAgICAg ICAgICAgZ2hjLWh0dHAtY29uZHVpdAogICAgICAgICAgIGdoYy1odHRwLXR5cGVzCiAgICAgICAg ICAgZ2hjLWxpYm1wZAogICAgICAgICAgIGdoYy1uZXRsaW5rCiAgICAgICAgICAgZ2hjLWNlcmVh bAogICAgICAgICAgIGdoYy1vbGQtbG9jYWxlCiAgICAgICAgICAgZ2hjLXBhcnNlYy1udW1iZXJz CiAgICAgICAgICAgZ2hjLXJlZ2V4LWNvbXBhdAogICAgICAgICAgIGdoYy10ZW1wb3JhcnkKICAg ICAgICAgICBnaGMtdGltZXpvbmUtb2xzb24KICAgICAgICAgICBnaGMtdGltZXpvbmUtc2VyaWVz CiAgICAgICAgICAgZ2hjLXgxMQogICAgICAgICAgIGdoYy14MTEteGZ0CiAgICAgICAgICAgZ2hj LWNhaXJvCiAgICAgICAgICAgZ2hjLXBhbmdvCiAgICAgICAgICAgbGlieHBtKSkKICAgIChhcmd1 bWVudHMKICAgICBgKCM6Y29uZmlndXJlLWZsYWdzIChsaXN0ICItLWZsYWdzPWFsbF9leHRlbnNp b25zIikKICAgICAgICM6cGhhc2VzCiAgICAgICAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhh c2VzCiAgICAgICAgIChhZGQtYWZ0ZXIgJ2luc3RhbGwgJ3JlbW92ZS1iaW5hcmllcwogICAgICAg ICAgICAgKGxhbWJkYSogKCM6a2V5IG91dHB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQogICAgICAg ICAgICAgICAoZGVsZXRlLWZpbGUtcmVjdXJzaXZlbHkgKHN0cmluZy1hcHBlbmQgKGFzc29jLXJl ZiBvdXRwdXRzICJvdXQiKSAiL2JpbiIpKSkpCiAgICAgICAgIChhZGQtYmVmb3JlICdidWlsZCAn cGF0Y2gtdGVzdC1zaGViYW5nCiAgICAgICAgICAgKGxhbWJkYSogKCM6a2V5IGlucHV0cyAjOmFs bG93LW90aGVyLWtleXMpCiAgICAgICAgICAgICAoc3Vic3RpdHV0ZSogInRlc3QvWG1vYmFyL1Bs dWdpbnMvTW9uaXRvcnMvQWxzYVNwZWMuaHMiCiAgICAgICAgICAgICAgICgoIi9iaW4vYmFzaCIp ICh3aGljaCAiYmFzaCIpKSkpKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly94bW9iYXIub3Jn IikKICAgIChzeW5vcHNpcyAiSGFza2VsbCBsaWJyYXJ5IGZvciBtaW5pbWFsaXN0aWMgdGV4dCBi YXNlZCBzdGF0dXMgYmFycyIpCiAgICAoZGVzY3JpcHRpb24KICAgICAiQGNvZGV7Z2hjLXhtb2Jh cn0gaXMgdGhlIGhhc2tlbGwgbGlicmFyeSB0aGF0IEBjb2Rle3htb2Jhcn0gaXMgYmFzZWQgb24u Ckl0IGNhbiBiZSB1c2VkIHRvIGV4dGVuZCBAY29kZXt4bW9iYXJ9IHdpdGggb3RoZXIgSGFza2Vs bCBjb2RlLiIpCiAgICAobGljZW5zZSBsaWNlbnNlOmJzZC0zKSkpCgooZGVmaW5lLXB1YmxpYyB4 bW9iYXIKICAocGFja2FnZQogICAgKGluaGVyaXQgZ2hjLXhtb2JhcikKICAgIChuYW1lICJ4bW9i YXIiKQogICAgKGlucHV0cwogICAgIChsaXN0IGdoYy14bW9iYXIKICAgICAgICAgICBsaWJ4cG0p KQogICAgKGFyZ3VtZW50cwogICAgIGAoIzpjb25maWd1cmUtZmxhZ3MgKGxpc3QgIi0tZmxhZ3M9 YWxsX2V4dGVuc2lvbnMiICJleGU6eG1vYmFyIikKICAgICAgIDs7IEhhZGRvY2sgZG9jdW1lbnRh dGlvbiBpcyBmb3IgdGhlIGxpYnJhcnkuCiAgICAgICAjOmhhZGRvY2s/ICNmCiAgICAgICA7OyBU ZXN0cyBhcmUgZm9yIHRoZSBsaWJyYXJ5LgogICAgICAgIzp0ZXN0cz8gI2YpKQogICAgKHN5bm9w c2lzICJNaW5pbWFsaXN0aWMgdGV4dCBiYXNlZCBzdGF0dXMgYmFyIikKICAgIChkZXNjcmlwdGlv bgogICAgICJAY29kZXt4bW9iYXJ9IGlzIGEgbGlnaHR3ZWlnaHQsIHRleHQtYmFzZWQsIHN0YXR1 cyBiYXIgd3JpdHRlbiBpbgpIYXNrZWxsLiAgSXQgd2FzIG9yaWdpbmFsbHkgZGVzaWduZWQgdG8g YmUgdXNlZCB0b2dldGhlciB3aXRoIFhtb25hZCwgYnV0IGl0CmlzIGFsc28gdXNhYmxlIHdpdGgg YW55IG90aGVyIHdpbmRvdyBtYW5hZ2VyLiAgV2hpbGUgeG1vYmFyIGlzIHdyaXR0ZW4gaW4KSGFz a2VsbCwgbm8ga25vd2xlZGdlIG9mIHRoZSBsYW5ndWFnZSBpcyByZXF1aXJlZCB0byBpbnN0YWxs IGFuZCB1c2UgaXQuIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6YnNkLTMpKSkKCihkZWZpbmUtcHVi bGljIHllZ2FuZXNoCiAgKHBhY2thZ2UKICAgIChuYW1lICJ5ZWdhbmVzaCIpCiAgICAodmVyc2lv biAiMi40IikKICAgIChzb3VyY2UKICAgICAob3JpZ2luCgogICAgICAgKG1ldGhvZCB1cmwtZmV0 Y2gpCiAgICAgICAodXJpIChzdHJpbmctYXBwZW5kICJodHRwOi8vZG13aXQuY29tL3llZ2FuZXNo L3llZ2FuZXNoLSIgdmVyc2lvbiAiLnRhci5neiIpKQogICAgICAgKHNoYTI1NgogICAgICAgIChi YXNlMzIgIjA0ZGpmeWphYjNjNXk5ejl4OHpkMHhjeDBqeXkzNXpxN2NsOWRkcjRwcGY2azVreTZp a3kiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBoYXNrZWxsLWJ1aWxkLXN5c3RlbSkKICAgIChpbnB1 dHMKICAgICAobGlzdCBnaGMtc3RyaWN0IGdoYy14ZGctYmFzZWRpcikpCiAgICAoaG9tZS1wYWdl ICJodHRwOi8vZG13aXQuY29tL3llZ2FuZXNoLyIpCiAgICAoc3lub3BzaXMgIlNtYWxsIHdyYXBw ZXIgYXJvdW5kIGRtZW51IikKICAgIChkZXNjcmlwdGlvbiAiQGNvZGV7eWVnYW5lc2h9IGlzIGEg c21hbGwgd3JhcHBlciBhcm91bmQgZGVtbnUuICBMaWtlCmRtZW51LCBpdCBhY2NlcHRzIGlucHV0 IG9uIHN0ZGluIGFuZCB3cml0ZXMgdGhlIGNob3NlbiByZXN1bHQgb24gc3Rkb3V0LgpVbmxpa2Ug ZG1lbnUsIGl0IG1hbmdsZXMgdGhlIGlucHV0IGJlZm9yZSBpdCBwcmVzZW50cyBpdHMgY2hvaWNl cy4gIEluCnBhcnRpY3VsYXIsIGl0IGRpc3BsYXlzIGNvbW1vbmx5LWNob3NlbiBvcHRpb25zIGJl Zm9yZSB1bmNvbW1vbiBvbmVzLiIpCiAgICAobGljZW5zZSBsaWNlbnNlOmJzZC0zKSkpCgooZGVm aW5lLXB1YmxpYyBnaGMteG1vbmFkLWNvbnRyaWIKICAocGFja2FnZQogICAgKG5hbWUgImdoYy14 bW9uYWQtY29udHJpYiIpCiAgICAodmVyc2lvbiAiMC4xNy4xIikKICAgIChzb3VyY2UgKG9yaWdp bgogICAgICAgICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICAgICAgICh1cmkgKGhh Y2thZ2UtdXJpICJ4bW9uYWQtY29udHJpYiIgdmVyc2lvbikpCiAgICAgICAgICAgICAgKHNoYTI1 NgogICAgICAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICAgICAiMGx3ajh4a3lhdzZoMHJ2 M2x6MmpkcXJ3eno3eWdoZm1uaHBuZHlna2Izd2d5aHZxNmR4YiIpKSkpCiAgICAoYnVpbGQtc3lz dGVtIGhhc2tlbGwtYnVpbGQtc3lzdGVtKQogICAgKHByb3BlcnRpZXMgJygodXBzdHJlYW0tbmFt ZSAuICJ4bW9uYWQtY29udHJpYiIpKSkKICAgIChpbnB1dHMgKGxpc3QgZ2hjLXJhbmRvbSBnaGMt eDExIHhtb25hZCBnaGMtdXRmOC1zdHJpbmcgZ2hjLXgxMS14ZnQpKQogICAgKG5hdGl2ZS1pbnB1 dHMgKGxpc3QgZ2hjLXF1aWNrY2hlY2sgZ2hjLWhzcGVjKSkKICAgIChhcmd1bWVudHMKICAgICBg KCM6Y2FiYWwtcmV2aXNpb24gKCIxIgogICAgICAgICAgICAgICAgICAgICAgICAgIjBkYzluYm4w a2F3OThyZ3BpMXJxOG5wNjAxempoZHIxeTB5ZGc2eWI4Mnd3YXFhd3FsNnoiKSkpCiAgICAoaG9t ZS1wYWdlICJodHRwczovL3htb25hZC5vcmcvIikKICAgIChzeW5vcHNpcyAiVGhpcmQgcGFydHkg ZXh0ZW5zaW9ucyBmb3IgeG1vbmFkIikKICAgIChkZXNjcmlwdGlvbgogICAgICJUaGlyZCBwYXJ0 eSB0aWxpbmcgYWxnb3JpdGhtcywgY29uZmlndXJhdGlvbnMsIGFuZCBzY3JpcHRzIHRvIFhtb25h ZCwgYQp0aWxpbmcgd2luZG93IG1hbmFnZXIgZm9yIFguIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6 YnNkLTMpKSkKCihkZWZpbmUtcHVibGljIGV2aWx3bQogIChwYWNrYWdlCiAgICAobmFtZSAiZXZp bHdtIikKICAgICh2ZXJzaW9uICIxLjMuMSIpCiAgICAoc291cmNlCiAgICAgKG9yaWdpbgogICAg ICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAodXJpIChzdHJpbmctYXBwZW5kICJodHRwOi8v d3d3LjY4MDkub3JnLnVrL2V2aWx3bS9kbC9ldmlsd20tIgogICAgICAgICAgICAgICAgICAgICAg ICAgICB2ZXJzaW9uICIudGFyLmd6IikpCiAgICAgICAoc2hhMjU2CiAgICAgICAgKGJhc2UzMgog ICAgICAgICAiMWpyeTM2cWtnMmwwMnYzN3p2enN6eHZ4bTJkOGM2MnoyNWdrczVnZHFxamw5aWZi cHYxaiIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGdudS1idWlsZC1zeXN0ZW0pCiAgICAoaW5wdXRz CiAgICAgKGxpc3QgbGlieDExIGxpYnhleHQgbGlieHJhbmRyKSkKICAgIChhcmd1bWVudHMKICAg ICBgKCM6bW9kdWxlcyAoKHNyZmkgc3JmaS0yNikKICAgICAgICAgICAgICAgICAgKGd1aXggYnVp bGQgdXRpbHMpCiAgICAgICAgICAgICAgICAgIChndWl4IGJ1aWxkIGdudS1idWlsZC1zeXN0ZW0p KQogICAgICAgIzptYWtlLWZsYWdzIChsZXQgKChpbnB1dHMgKG1hcCAoY3V0IGFzc29jLXJlZiAl YnVpbGQtaW5wdXRzIDw+KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn KCJsaWJ4MTEiICJsaWJ4ZXh0IiAibGlieHJhbmRyIikpKQogICAgICAgICAgICAgICAgICAgICAg ICAgIChqb2luIChsYW1iZGEgKHByb2Mgc3RycykKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChzdHJpbmctam9pbiAobWFwIHByb2Mgc3RycykgIiAiKSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgKGRhc2gtSSAoY3V0IHN0cmluZy1hcHBlbmQgIi1JIiA8PiAiL2luY2x1ZGUi KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAoZGFzaC1MIChjdXQgc3RyaW5nLWFwcGVuZCAi LUwiIDw+ICIvbGliIikpKQogICAgICAgICAgICAgICAgICAgICAgYCgiZGVza3RvcGZpbGVzZGly PSQocHJlZml4KS9zaGFyZS94c2Vzc2lvbnMiCiAgICAgICAgICAgICAgICAgICAgICAgICwoc3Ry aW5nLWFwcGVuZCAicHJlZml4PSIgKGFzc29jLXJlZiAlb3V0cHV0cyAib3V0IikpCiAgICAgICAg ICAgICAgICAgICAgICAgICwoc3RyaW5nLWFwcGVuZCAiQ1BQRkxBR1M9IiAoam9pbiBkYXNoLUkg aW5wdXRzKSkKICAgICAgICAgICAgICAgICAgICAgICAgLChzdHJpbmctYXBwZW5kICJMREZMQUdT PSIgKGpvaW4gZGFzaC1MIGlucHV0cykpKSkKICAgICAgICM6dGVzdHM/ICNmICAgICAgICAgICAg ICAgICAgICAgIDtubyB0ZXN0cwogICAgICAgIzpwaGFzZXMgKG1vZGlmeS1waGFzZXMgJXN0YW5k YXJkLXBoYXNlcwogICAgICAgICAgICAgICAgICAoZGVsZXRlICdjb25maWd1cmUpKSkpIDtubyBj b25maWd1cmUgc2NyaXB0CiAgICAoaG9tZS1wYWdlICJodHRwczovL3d3dy42ODA5Lm9yZy51ay9l dmlsd20vIikKICAgIChzeW5vcHNpcyAiTWluaW1hbGlzdCB3aW5kb3cgbWFuYWdlciBmb3IgdGhl IFggV2luZG93IFN5c3RlbSIpCiAgICAoZGVzY3JpcHRpb24KICAgICAiZXZpbHdtIGlzIGEgbWlu aW1hbGlzdCB3aW5kb3cgbWFuYWdlciBiYXNlZCBvbiBhZXdtLCBleHRlbmRlZCB0byBmZWF0dXJl Cm1hbnkga2V5Ym9hcmQgY29udHJvbHMgd2l0aCByZXBvc2l0aW9uaW5nIGFuZCBtYXhpbWl6ZSB0 b2dnbGVzLCBzb2xpZCB3aW5kb3cKZHJhZ3MsIHNuYXAtdG8tYm9yZGVyIHN1cHBvcnQsIGFuZCB2 aXJ0dWFsIGRlc2t0b3BzLiIpCiAgICAobGljZW5zZSAobGljZW5zZTp4MTEtc3R5bGUgImZpbGU6 Ly8vUkVBRE1FIikpKSkKCihkZWZpbmUtcHVibGljIGZsdXhib3gKICAocGFja2FnZQogICAgKG5h bWUgImZsdXhib3giKQogICAgKHZlcnNpb24gIjEuMy43IikKICAgIChzeW5vcHNpcyAiU21hbGwg YW5kIGZhc3Qgd2luZG93IG1hbmFnZXIiKQogICAgKHNvdXJjZSAob3JpZ2luCiAgICAgICAgICAg ICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgICAgICAgKHVyaSAoc3RyaW5nLWFwcGVuZCAi bWlycm9yOi8vc291cmNlZm9yZ2UvZmx1eGJveC9mbHV4Ym94LyIKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZlcnNpb24gIi9mbHV4Ym94LSIgdmVyc2lvbiAiLnRhci54eiIpKQog ICAgICAgICAgICAgIChzaGEyNTYKICAgICAgICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAg ICAgIjFoMWY3MHk0MHFkMjI1ZHF4OTM3dnpiNGsyY3oyMTlhZ20xenZuanhha241amt6N2IzN3ci KSkKICAgICAgICAgICAgICAocGF0Y2hlcwogICAgICAgICAgICAgICAoc2VhcmNoLXBhdGNoZXMg ImZsdXhib3gtMS4zLjctbm8tZHluYW1pYy1jdXJzb3IucGF0Y2giCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiZmx1eGJveC0xLjMuNy1nY2MucGF0Y2giKSkpKQogICAgKGJ1aWxkLXN5 c3RlbSBnbnUtYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgIGAoIzptYWtlLWZsYWdz ICcoIkNQUEZMQUdTPS1VX19USU1FX18iKSA7dWdseSwgYnV0IGZvciByZXByb2R1Y2liaWxpdHkK ICAgICAgICM6cGhhc2VzCiAgICAgICAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCiAg ICAgICAgIChhZGQtYmVmb3JlICdib290c3RyYXAgJ2ZvcmNlLWJvb3RzdHJhcAogICAgICAgICAg IChsYW1iZGEgXwogICAgICAgICAgICAgKGRlbGV0ZS1maWxlICJjb25maWd1cmUiKSkpCiAgICAg ICAgIChhZGQtYWZ0ZXIgJ2luc3RhbGwgJ2luc3RhbGwtdmltLWZpbGVzCiAgICAgICAgICAgKGxh bWJkYSogKCM6a2V5IG91dHB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQogICAgICAgICAgICAgKGxl dCogKChvdXQgKGFzc29jLXJlZiBvdXRwdXRzICJvdXQiKSkKICAgICAgICAgICAgICAgICAgICAo c3ludGF4IChzdHJpbmctYXBwZW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCAi L3NoYXJlL3ZpbS92aW1maWxlcy9wYWNrL2d1aXgvc3RhcnQvZmx1eGJveC9zeW50YXgiKSkpCiAg ICAgICAgICAgICAgIChjb3B5LXJlY3Vyc2l2ZWx5ICIzcmQvdmltL3ZpbS9zeW50YXgiIHN5bnRh eCkKICAgICAgICAgICAgICAgI3QpKSkKICAgICAgICAgKGFkZC1hZnRlciAnaW5zdGFsbCAnaW5z dGFsbC14c2Vzc2lvbgogICAgICAgICAgIChsYW1iZGEqICgjOmtleSBvdXRwdXRzICM6YWxsb3ct b3RoZXIta2V5cykKICAgICAgICAgICAgIChsZXQqICgob3V0IChhc3NvYy1yZWYgb3V0cHV0cyAi b3V0IikpCiAgICAgICAgICAgICAgICAgICAgKHhzZXNzaW9ucyAoc3RyaW5nLWFwcGVuZCBvdXQg Ii9zaGFyZS94c2Vzc2lvbnMiKSkpCiAgICAgICAgICAgICAgIChta2Rpci1wIHhzZXNzaW9ucykK ICAgICAgICAgICAgICAgKGNhbGwtd2l0aC1vdXRwdXQtZmlsZQogICAgICAgICAgICAgICAgIChz dHJpbmctYXBwZW5kIHhzZXNzaW9ucyAiL2ZsdXhib3guZGVza3RvcCIpCiAgICAgICAgICAgICAg ICAgKGxhbWJkYSAocG9ydCkKICAgICAgICAgICAgICAgICAgIChmb3JtYXQgcG9ydCAifgogICAg ICAgICAgICAgICAgICAgICBbRGVza3RvcCBFbnRyeV1+QAogICAgICAgICAgICAgICAgICAgICBO YW1lPX5hfkAKICAgICAgICAgICAgICAgICAgICAgQ29tbWVudD1+YX5ACiAgICAgICAgICAgICAg ICAgICAgIEV4ZWM9fmEvYmluL3N0YXJ0Zmx1eGJveH5ACiAgICAgICAgICAgICAgICAgICAgIFR5 cGU9QXBwbGljYXRpb25+JSIgLG5hbWUgLHN5bm9wc2lzIG91dCkpKQogICAgICAgICAgICAgICAj dCkpKSkpKQogICAgKG5hdGl2ZS1pbnB1dHMKICAgICAobGlzdCBhdXRvY29uZiBhdXRvbWFrZSBn bnUtZ2V0dGV4dCBwa2ctY29uZmlnKSkKICAgIChpbnB1dHMKICAgICAobGlzdCBmcmVldHlwZQog ICAgICAgICAgIGZyaWJpZGkKICAgICAgICAgICBpbWxpYjIKICAgICAgICAgICBsaWJ4MTEKICAg ICAgICAgICBsaWJ4Y3Vyc29yCiAgICAgICAgICAgbGlieGV4dAogICAgICAgICAgIGxpYnhmdAog ICAgICAgICAgIGxpYnhpbmVyYW1hCiAgICAgICAgICAgbGlieHBtCiAgICAgICAgICAgbGlieHJh bmRyCiAgICAgICAgICAgbGlieHJlbmRlcikpCiAgICAoZGVzY3JpcHRpb24gIkZsdXhib3ggaXMg YSB3aW5kb3cgbWFuYWdlci4gIEl0IGlzIGxpZ2h0IG9uIHJlc291cmNlcwphbmQgZWFzeSB0byBo YW5kbGUgeWV0IGZ1bGwgb2YgZmVhdHVyZXMgdG8gbWFrZSBhbiBlYXN5IGFuZCBmYXN0IGRlc2t0 b3AKZXhwZXJpZW5jZS4iKQogICAgKGhvbWUtcGFnZSAiaHR0cDovL2ZsdXhib3gub3JnLyIpCiAg ICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCgooZGVmaW5lLXB1YmxpYyBmYmF1dG9zdGFydAog IChwYWNrYWdlCiAgICAobmFtZSAiZmJhdXRvc3RhcnQiKQogICAgKHZlcnNpb24gIjIuNzE4Mjgx ODI4IikKICAgIChzb3VyY2UgKG9yaWdpbgogICAgICAgICAgICAgIChtZXRob2QgZ2l0LWZldGNo KQogICAgICAgICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKICAgICAgICAgICAgICAgICAgICAg KHVybCAiaHR0cHM6Ly9naXRodWIuY29tL3BhdWx0YWcvZmJhdXRvc3RhcnQuZ2l0IikKICAgICAg ICAgICAgICAgICAgICAgKGNvbW1pdCB2ZXJzaW9uKSkpCiAgICAgICAgICAgICAgKGZpbGUtbmFt ZSAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICItY2hlY2tvdXQiKSkKICAgICAgICAg ICAgICAoc2hhMjU2CiAgICAgICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgICAgICIxM2g2 ajVraGk1YXhxaGZsemhheXpndnloeHlsbWs1dnNnaW4yMzVqaTQ0MG16ZDUxNmd6IikpKSkKICAg IChidWlsZC1zeXN0ZW0gZ251LWJ1aWxkLXN5c3RlbSkKICAgIChuYXRpdmUtaW5wdXRzCiAgICAg KGxpc3QgYXV0b2NvbmYgYXV0b21ha2UpKQogICAgKHN5bm9wc2lzICJYREcgYXV0b3N0YXJ0ZXIg Zm9yIEZsdXhib3ggd2luZG93IG1hbmFnZXIiKQogICAgKGRlc2NyaXB0aW9uICJUaGlzIHBhY2th Z2UgcHJvdmlkZXMgYW4gYXV0b3N0YXJ0ZXIgY29tcGxhaW50IHdpdGgKdGhlIFhERyBBdXRvc3Rh cnQgc3BlY2lmaWNhdGlvbi4iKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3Bh dWx0YWcvZmJhdXRvc3RhcnQiKQogICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQoKKGRlZmlu ZS1wdWJsaWMgZm5vdHQKICAocGFja2FnZQogICAgKG5hbWUgImZub3R0IikKICAgICh2ZXJzaW9u ICIxLjQuMSIpCiAgICAoc291cmNlIChvcmlnaW4KICAgICAgICAgICAgICAobWV0aG9kIGdpdC1m ZXRjaCkKICAgICAgICAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCiAgICAgICAgICAgICAgICAg ICAgKHVybCAiaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZG5rbC9mbm90dCIpCiAgICAgICAgICAgICAg ICAgICAgKGNvbW1pdCB2ZXJzaW9uKSkpCiAgICAgICAgICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZp bGUtbmFtZSBuYW1lIHZlcnNpb24pKQogICAgICAgICAgICAgIChzaGEyNTYKICAgICAgICAgICAg ICAgKGJhc2UzMgogICAgICAgICAgICAgICAgIjBmbWp2bXNtMmlrY21kenJmNnh3eXE2dnhiOXAx ZGQzYmh2ejNidmk3cTdyYjJnOGg4cGkiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBtZXNvbi1idWls ZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzIGAoIzpidWlsZC10eXBlICJyZWxlYXNlIikpCiAgICAo bmF0aXZlLWlucHV0cwogICAgIChsaXN0IHBrZy1jb25maWcKICAgICAgICAgICB3YXlsYW5kLXBy b3RvY29scwogICAgICAgICAgIHRsbGlzdAogICAgICAgICAgIHNjZG9jKSkKICAgIChpbnB1dHMK ICAgICAobGlzdCB3bHJvb3RzLTAuMTYgd2F5bGFuZCBmY2Z0IGRidXMgbGlicG5nKSkKICAgICho b21lLXBhZ2UgImh0dHBzOi8vY29kZWJlcmcub3JnL2Rua2wvZm5vdHQiKQogICAgKHN5bm9wc2lz ICJLZXlib2FyZCBkcml2ZW4gYW5kIGxpZ2h0d2VpZ2h0IFdheWxhbmQgbm90aWZpY2F0aW9uIGRh ZW1vbiIpCiAgICAoZGVzY3JpcHRpb24gIkZub3R0IGlzIGEga2V5Ym9hcmQgZHJpdmVuIGFuZCBs aWdodHdlaWdodCBub3RpZmljYXRpb24gZGFlbW9uCmZvciB3bHJvb3RzLWJhc2VkIFdheWxhbmQg Y29tcG9zaXRvcnMuIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKCihkZWZpbmUtcHVi bGljIGF3ZXNvbWUKICAocGFja2FnZQogICAgKG5hbWUgImF3ZXNvbWUiKQogICAgKHZlcnNpb24g IjQuMyIpCiAgICAoc291cmNlCiAgICAgKG9yaWdpbgogICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gp CiAgICAgICAodXJpIChzdHJpbmctYXBwZW5kCiAgICAgICAgICAgICAiaHR0cHM6Ly9naXRodWIu Y29tL2F3ZXNvbWVXTS9hd2Vzb21lLXJlbGVhc2VzL3Jhdy9tYXN0ZXIvIgogICAgICAgICAgICAg ImF3ZXNvbWUtIiB2ZXJzaW9uICIudGFyLnh6IikpCiAgICAgICAoc2hhMjU2CiAgICAgICAgKGJh c2UzMiAiMGxxcHc0MDFta2ttcDl3Z2J2cm1tNDVicXEyajkzNTdsNGlyd2RxdjZsMTMwNXBsczlr cSIpKQogICAgICAgKG1vZHVsZXMgJygoZ3VpeCBidWlsZCB1dGlscykKICAgICAgICAgICAgICAg ICAgKHNyZmkgc3JmaS0xOSkpKQogICAgICAgKHNuaXBwZXQKICAgICAgICAnKGJlZ2luCiAgICAg ICAgICAgOzsgUmVtb3ZlIG5vbi1yZXByb2R1Y2libGUgdGltZXN0YW1wIGFuZCB1c2UgdGhlIGRh dGUgb2YKICAgICAgICAgICA7OyB0aGUgc291cmNlIGZpbGUgaW5zdGVhZC4KICAgICAgICAgICAo c3Vic3RpdHV0ZSogImNvbW1vbi92ZXJzaW9uLmMiCiAgICAgICAgICAgICAoKCJfX0RBVEVfXyBc IiBcIiBfX1RJTUVfXyIpCiAgICAgICAgICAgICAgKGRhdGUtPnN0cmluZwogICAgICAgICAgICAg ICAodGltZS11dGMtPmRhdGUKICAgICAgICAgICAgICAgIChtYWtlLXRpbWUgdGltZS11dGMgMCAo c3RhdDptdGltZSAoc3RhdCAiYXdlc29tZS5jIikpKSkKICAgICAgICAgICAgICAgIlwifmNcIiIp KSkKICAgICAgICAgICAjdCkpCiAgICAgICAocGF0Y2hlcwogICAgICAgIChzZWFyY2gtcGF0Y2hl cyAiYXdlc29tZS1yZXByb2R1Y2libGUtcG5nLnBhdGNoIgogICAgICAgICAgICAgICAgICAgICAg ICAiYXdlc29tZS00LjMtZm5vLWNvbW1vbi5wYXRjaCIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNt YWtlLWJ1aWxkLXN5c3RlbSkKICAgIChuYXRpdmUtaW5wdXRzCiAgICAgKGxpc3QgYXNjaWlkb2MK ICAgICAgICAgICBkb2Nib29rLXhzbAogICAgICAgICAgIGRveHlnZW4KICAgICAgICAgICBncGVy ZgogICAgICAgICAgIGltYWdlbWFnaWNrCiAgICAgICAgICAgbGlieG1sMiA7Zm9yIFhNTF9DQVRB TE9HX0ZJTEVTCiAgICAgICAgICAgbHVhLWxkb2MKICAgICAgICAgICBwa2ctY29uZmlnCiAgICAg ICAgICAgeG1sdG8pKQogICAgKGlucHV0cwogICAgIChsaXN0IGNhaXJvCiAgICAgICAgICAgZGJ1 cwogICAgICAgICAgIGdkay1waXhidWYKICAgICAgICAgICBnbGliCiAgICAgICAgICAgZ29iamVj dC1pbnRyb3NwZWN0aW9uCiAgICAgICAgICAgaW1saWIyCiAgICAgICAgICAgbGliZXYKICAgICAg ICAgICBsaWJ4Y2IKICAgICAgICAgICBsaWJ4Y3Vyc29yCiAgICAgICAgICAgbGlieGRnLWJhc2Vk aXIKICAgICAgICAgICBsaWJ4a2Jjb21tb24KICAgICAgICAgICBsdWEKICAgICAgICAgICBsdWEt bGdpCiAgICAgICAgICAgcGFuZ28KICAgICAgICAgICBzdGFydHVwLW5vdGlmaWNhdGlvbgogICAg ICAgICAgIHhjYi11dGlsCiAgICAgICAgICAgeGNiLXV0aWwtY3Vyc29yCiAgICAgICAgICAgeGNi LXV0aWwtaW1hZ2UKICAgICAgICAgICB4Y2ItdXRpbC1rZXlzeW1zCiAgICAgICAgICAgeGNiLXV0 aWwtcmVuZGVydXRpbAogICAgICAgICAgIHhjYi11dGlsLXhybQogICAgICAgICAgIHhjYi11dGls LXdtKSkKICAgIChhcmd1bWVudHMKICAgICBgKCM6bW9kdWxlcyAoKGd1aXggYnVpbGQgY21ha2Ut YnVpbGQtc3lzdGVtKQogICAgICAgICAgICAgICAgICAoZ3VpeCBidWlsZCB1dGlscykKICAgICAg ICAgICAgICAgICAgKGljZS05IG1hdGNoKSkKICAgICAgIDs7IExldCBjb21wcmVzc2lvbiBoYXBw ZW4gaW4gb3VyICdjb21wcmVzcy1kb2N1bWVudGF0aW9uJyBwaGFzZQogICAgICAgOzsgc28gdGhh dCAnLS1uby1uYW1lJyBpcyB1c2VkLCB3aGljaCByZW1vdmVzIHRpbWVzdGFtcHMgZnJvbQogICAg ICAgOzsgZ3ppcCBvdXRwdXQuCiAgICAgICAjOmNvbmZpZ3VyZS1mbGFncwogICAgICAgJygiLURD T01QUkVTU19NQU5QQUdFUz1vZmYiKQogICAgICAgOzsgQnVpbGRpbmcgYXdlc29tZSBpbiBpdHMg c291cmNlIGRpcmVjdG9yeSBpcyBubyBsb25nZXIKICAgICAgIDs7IHN1cHBvcnRlZC4KICAgICAg ICM6b3V0LW9mLXNvdXJjZT8gI3QKICAgICAgICM6cGhhc2VzCiAgICAgICAobW9kaWZ5LXBoYXNl cyAlc3RhbmRhcmQtcGhhc2VzCiAgICAgICAgIChhZGQtYmVmb3JlICdjb25maWd1cmUgJ3NldC1w YXRocwogICAgICAgICAgIChsYW1iZGEqICgjOmtleSBpbnB1dHMgIzphbGxvdy1vdGhlci1rZXlz KQogICAgICAgICAgICAgKHN1YnN0aXR1dGUqICJsaWIvYXdmdWwvY29tcGxldGlvbi5sdWEiCiAg ICAgICAgICAgICAgICgoIi91c3IvYmluL2VudiIpCiAgICAgICAgICAgICAgICAiIikpCiAgICAg ICAgICAgICA7OyBUaGUgYnVpbGQgcHJvY2VzcyBuZWVkcyB0byBsb2FkIENhaXJvIGR5bmFtaWNh bGx5LgogICAgICAgICAgICAgKGxldCogKChjYWlybyAoc3RyaW5nLWFwcGVuZCAoYXNzb2MtcmVm IGlucHV0cyAiY2Fpcm8iKSAiL2xpYiIpKQogICAgICAgICAgICAgICAgICAgIChsdWEtdmVyc2lv biAsKHZlcnNpb24tbWFqb3IrbWlub3IgKHBhY2thZ2UtdmVyc2lvbiBsdWEpKSkKICAgICAgICAg ICAgICAgICAgICAobHVhLWRlcGVuZGVuY2llcwogICAgICAgICAgICAgICAgICAgICAoZmlsdGVy IChtYXRjaC1sYW1iZGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobGFiZWwgLiBf KSAoc3RyaW5nLXByZWZpeD8gImx1YS0iIGxhYmVsKSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW5wdXRzKSkKICAgICAgICAgICAgICAgICAgICAobHVhLXBhdGgKICAgICAgICAgICAg ICAgICAgICAgKHN0cmluZy1qb2luCiAgICAgICAgICAgICAgICAgICAgICAobWFwIChtYXRjaC1s YW1iZGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKF8gLiBkaXIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChzdHJpbmctYXBwZW5kCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkaXIgIi9zaGFyZS9sdWEvIiBsdWEtdmVyc2lvbiAiLz8ubHVhOyIKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRpciAiL3NoYXJlL2x1YS8iIGx1YS12ZXJzaW9uICIvPy8/ Lmx1YSIpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgbHVhLWRlcGVuZGVuY2llcykKICAg ICAgICAgICAgICAgICAgICAgICI7IikpCiAgICAgICAgICAgICAgICAgICAgKGx1YS1jcGF0aAog ICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWpvaW4KICAgICAgICAgICAgICAgICAgICAgICht YXAgKG1hdGNoLWxhbWJkYQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoXyAuIGRpcikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1hcHBlbmQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRpciAiL2xpYi9sdWEvIiBsdWEtdmVyc2lvbiAiLz8uc287Igog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyICIvbGliL2x1YS8iIGx1YS12ZXJzaW9u ICIvPy8/LnNvIikpKQogICAgICAgICAgICAgICAgICAgICAgICAgICBsdWEtZGVwZW5kZW5jaWVz KQogICAgICAgICAgICAgICAgICAgICAgIjsiKSkpCiAgICAgICAgICAgICAgIChzZXRlbnYgIkxE X0xJQlJBUllfUEFUSCIgY2Fpcm8pCiAgICAgICAgICAgICAgIChzZXRlbnYgIkxVQV9QQVRIIiAo c3RyaW5nLWFwcGVuZCAiPy5sdWE7IiBsdWEtcGF0aCkpCiAgICAgICAgICAgICAgIChzZXRlbnYg IkxVQV9DUEFUSCIgbHVhLWNwYXRoKQogICAgICAgICAgICAgICAoc2V0ZW52ICJIT01FIiAoZ2V0 Y3dkKSkKICAgICAgICAgICAgICAgKHNldGVudiAiWERHX0NBQ0hFX0hPTUUiIChnZXRjd2QpKSkp KQogICAgICAgICAocmVwbGFjZSAnY2hlY2sKICAgICAgICAgICAobGFtYmRhIF8KICAgICAgICAg ICAgIDs7IFRoZXJlIGFyZW4ndCBhbnkgdGVzdHMsIHNvIGp1c3QgbWFrZSBzdXJlIHRoZSBiaW5h cnkKICAgICAgICAgICAgIDs7IGdldHMgYnVpbHQgYW5kIGNhbiBiZSBydW4gc3VjY2Vzc2Z1bGx5 LgogICAgICAgICAgICAgKGludm9rZSAiLi4vYnVpbGQvYXdlc29tZSIgIi12IikpKQogICAgICAg ICAoYWRkLWFmdGVyICdpbnN0YWxsICdwYXRjaC1zZXNzaW9uLWZpbGUKICAgICAgICAgICAobGFt YmRhKiAoIzprZXkgb3V0cHV0cyAjOmFsbG93LW90aGVyLWtleXMpCiAgICAgICAgICAgICAobGV0 KiAoKG91dCAoYXNzb2MtcmVmIG91dHB1dHMgIm91dCIpKQogICAgICAgICAgICAgICAgICAgIChh d2Vzb21lIChzdHJpbmctYXBwZW5kIG91dCAiL2Jpbi9hd2Vzb21lIikpKQogICAgICAgICAgICAg ICAoc3Vic3RpdHV0ZSogKHN0cmluZy1hcHBlbmQgb3V0ICIvc2hhcmUveHNlc3Npb25zL2F3ZXNv bWUuZGVza3RvcCIpCiAgICAgICAgICAgICAgICAgKCgiRXhlYz1hd2Vzb21lIikgKHN0cmluZy1h cHBlbmQgIkV4ZWM9IiBhd2Vzb21lKSkpCiAgICAgICAgICAgICAgICN0KSkpCiAgICAgICAgIChh ZGQtYWZ0ZXIgJ2luc3RhbGwgJ3dyYXAKICAgICAgICAgICAobGFtYmRhKiAoIzprZXkgaW5wdXRz IG91dHB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQogICAgICAgICAgICAgKGxldCogKChhd2Vzb21l IChhc3NvYy1yZWYgb3V0cHV0cyAib3V0IikpCiAgICAgICAgICAgICAgICAgICAgKGNhaXJvIChz dHJpbmctYXBwZW5kIChhc3NvYy1yZWYgaW5wdXRzICJjYWlybyIpICIvbGliIikpCiAgICAgICAg ICAgICAgICAgICAgKGx1YS12ZXJzaW9uICwodmVyc2lvbi1tYWpvcittaW5vciAocGFja2FnZS12 ZXJzaW9uIGx1YSkpKQogICAgICAgICAgICAgICAgICAgIChsdWEtbGdpIChhc3NvYy1yZWYgaW5w dXRzICJsdWEtbGdpIikpKQogICAgICAgICAgICAgICAod3JhcC1wcm9ncmFtIChzdHJpbmctYXBw ZW5kIGF3ZXNvbWUgIi9iaW4vYXdlc29tZSIpCiAgICAgICAgICAgICAgICAgYCgiTFVBX1BBVEgi ICI7IiBzdWZmaXgKICAgICAgICAgICAgICAgICAgICgsKGZvcm1hdCAjZiAifmEvc2hhcmUvbHVh L35hLz8ubHVhIiBsdWEtbGdpIGx1YS12ZXJzaW9uKSkpCiAgICAgICAgICAgICAgICAgYCgiTFVB X0NQQVRIIiAiOyIgc3VmZml4CiAgICAgICAgICAgICAgICAgICAoLChmb3JtYXQgI2YgIn5hL2xp Yi9sdWEvfmEvPy5zbyIgbHVhLWxnaSBsdWEtdmVyc2lvbikpKQogICAgICAgICAgICAgICAgIGAo IkdJX1RZUEVMSUJfUEFUSCIgIjoiIHByZWZpeCAoLChnZXRlbnYgIkdJX1RZUEVMSUJfUEFUSCIp KSkKICAgICAgICAgICAgICAgICBgKCJMRF9MSUJSQVJZX1BBVEgiIHN1ZmZpeCAoLGNhaXJvKSkp CiAgICAgICAgICAgICAgICN0KSkpKSkpCiAgICAoaG9tZS1wYWdlICJodHRwczovL2F3ZXNvbWV3 bS5vcmcvIikKICAgIChzeW5vcHNpcyAiSGlnaGx5IGNvbmZpZ3VyYWJsZSB3aW5kb3cgbWFuYWdl ciIpCiAgICAoZGVzY3JpcHRpb24KICAgICAiQXdlc29tZSBoYXMgYmVlbiBkZXNpZ25lZCBhcyBh IGZyYW1ld29yayB3aW5kb3cgbWFuYWdlci4gIEl0IGlzIGZhc3QsIHNtYWxsLApkeW5hbWljIGFu ZCBleHRlbnNpYmxlIHVzaW5nIHRoZSBMdWEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UuIikKICAgIChs aWNlbnNlIGxpY2Vuc2U6Z3BsMispKSkKCihkZWZpbmUtcHVibGljIG1lbnVtYWtlcgogIChwYWNr YWdlCiAgICAobmFtZSAibWVudW1ha2VyIikKICAgICh2ZXJzaW9uICIwLjk5LjE0IikKICAgIChz b3VyY2UKICAgICAob3JpZ2luCiAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICh1cmkg KHN0cmluZy1hcHBlbmQgIm1pcnJvcjovL3NvdXJjZWZvcmdlL21lbnVtYWtlci8iCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICJtZW51bWFrZXItIiB2ZXJzaW9uICIudGFyLmd6IikpCiAgICAg ICAoc2hhMjU2CiAgICAgICAgKGJhc2UzMiAiMG5ubmMxYXd2aHE1cHBsdmNsYXAzaGE2MWc5MjA5 YmNhNnpxZ3BzbTFmNTNmcTc1dnM4aSIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGdudS1idWlsZC1z eXN0ZW0pCiAgICAoaW5wdXRzCiAgICAgKGxpc3QgcHl0aG9uKSkKICAgIChzeW5vcHNpcyAiSGV1 cmlzdGljcy1kcml2ZW4gbWVudSBnZW5lcmF0b3IiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgIk1l bnVNYWtlciBpcyBhIG1lbnUgZ2VuZXJhdGlvbiB1dGlsaXR5IGZvciBhIG51bWJlciBvZiBYIHdp bmRvdwptYW5hZ2VycyBhbmQgZGVza3RvcCBlbnZpcm9ubWVudHMuICBJdCBpcyBjYXBhYmxlIG9m IGZpbmRpbmcgbG90cyBvZgppbnN0YWxsZWQgcHJvZ3JhbXMgYW5kIGdlbmVyYXRpbmcgYSByb290 IG1lbnUgY29uc2lzdGVudCBhY3Jvc3MgYWxsCnN1cHBvcnRlZCB3aW5kb3cgbWFuYWdlcnMsIHNv IG9uZSB3aWxsIGdldCAoYWxtb3N0KSB0aGUgc2FtZSBtZW51IGluCmFsbCBvZiB0aGVtLiAgQ3Vy cmVudGx5IHN1cHBvcnRlZCB3aW5kb3cgbWFuYWdlcnMgaW5jbHVkZToKCkBlbnVtZXJhdGUKQGl0 ZW0gQmxhY2tCb3gKQGl0ZW0gRGVza21lbnUKQGl0ZW0gRmx1eEJveApAaXRlbSBJY2VXTQpAaXRl bSBPcGVuQm94CkBpdGVtIFBla1dNCkBpdGVtIFdpbmRvd01ha2VyCkBpdGVtIFhGQ0UKQGVuZCBl bnVtZXJhdGVcbiIpCiAgICAoaG9tZS1wYWdlICJodHRwczovL21lbnVtYWtlci5zb3VyY2Vmb3Jn ZS5uZXQvIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6YnNkLTIpKSkKCihkZWZpbmUtcHVibGljIGtl eWJpbmRlcgogIChwYWNrYWdlCiAgICAobmFtZSAia2V5YmluZGVyIikKICAgICh2ZXJzaW9uICIw LjMuMiIpCiAgICAoc291cmNlCiAgICAgKG9yaWdpbgogICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gp CiAgICAgICAodXJpIChzdHJpbmctYXBwZW5kICJodHRwczovL2dpdGh1Yi5jb20va3VwZmVybGF1 bmNoZXIva2V5YmluZGVyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiL3JlbGVhc2VzL2Rv d25sb2FkLyIgbmFtZSAiLTMuMC12IiB2ZXJzaW9uICIvIgogICAgICAgICAgICAgICAgICAgICAg ICAgICBuYW1lICItMy4wLSIgdmVyc2lvbiAiLnRhci5neiIpKQogICAgICAgKGZpbGUtbmFtZSAo c3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIudGFyLmd6IikpCiAgICAgICAoc2hhMjU2 CiAgICAgICAgKGJhc2UzMgogICAgICAgICAiMDgzMGlod25hbHc1OXBwMXh6cnAzN2RuNThuOHZ3 Yjh6YXNubTRhMWg4MXYzeDdkeHF6NiIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGdudS1idWlsZC1z eXN0ZW0pCiAgICAoaW5wdXRzCiAgICAgKGxpc3QgZ3RrKyBnb2JqZWN0LWludHJvc3BlY3Rpb24p KQogICAgKG5hdGl2ZS1pbnB1dHMKICAgICAobGlzdCBndGstZG9jIHBrZy1jb25maWcpKQogICAg KHN5bm9wc2lzICJMaWJyYXJ5IGZvciByZWdpc3RlcmluZyBnbG9iYWwga2V5Ym9hcmQgc2hvcnRj dXRzLCBHdGszIHZlcnNpb24iKQogICAgKGRlc2NyaXB0aW9uCiAgICAgIktleWJpbmRlciBpcyBh IGxpYnJhcnkgZm9yIHJlZ2lzdGVyaW5nIGdsb2JhbCBrZXlib2FyZCBzaG9ydGN1dHMuCktleWJp bmRlciB3b3JrcyB3aXRoIEdUSy1iYXNlZCBhcHBsaWNhdGlvbnMgdXNpbmcgdGhlIFggV2luZG93 IFN5c3RlbS4iKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL2t1cGZlcmxhdW5j aGVyL2tleWJpbmRlciIpCiAgICAobGljZW5zZSBsaWNlbnNlOngxMSkpKQoKKGRlZmluZS1wdWJs aWMga2V5YmluZGVyLTMuMAogIChkZXByZWNhdGVkLXBhY2thZ2UgImtleWJpbmRlci0zLjAiIGtl eWJpbmRlcikpCgooZGVmaW5lLXB1YmxpYyBzYW5kYmFyCiAgKHBhY2thZ2UKICAgIChuYW1lICJz YW5kYmFyIikKICAgICh2ZXJzaW9uICIwLjEiKQogICAgKHNvdXJjZQogICAgIChvcmlnaW4KICAg ICAgIChtZXRob2QgZ2l0LWZldGNoKQogICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQogICAgICAg ICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL2tvbHVubWkvc2FuZGJhciIpCiAgICAgICAg ICAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQogICAgICAgKGZpbGUt bmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKQogICAgICAgKHNoYTI1NgogICAgICAg IChiYXNlMzIgIjA5MTJjcjJxMmtnNG5xZHd5OTc4a3BtZGNqMmNqejNnbmxjYjI4bnk5ejNjcHJ4 dnl2eHEiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBnbnUtYnVpbGQtc3lzdGVtKQogICAgKGFyZ3Vt ZW50cwogICAgIChsaXN0ICM6cGhhc2VzCiAgICAgICAgICAgI34obW9kaWZ5LXBoYXNlcyAlc3Rh bmRhcmQtcGhhc2VzCiAgICAgICAgICAgICAoZGVsZXRlICdjb25maWd1cmUpKSAgICAgICA7bm8g Y29uZmlndXJlIHNjcmlwdAogICAgICAgICAgICM6dGVzdHM/ICNmICAgICAgICAgICAgIDtubyBj aGVjayB0YXJnZXQKICAgICAgICAgICAjOm1ha2UtZmxhZ3MKICAgICAgICAgICAjfihsaXN0IChz dHJpbmctYXBwZW5kICJDQz0iICMkKGNjLWZvci10YXJnZXQpKQogICAgICAgICAgICAgICAgICAg KHN0cmluZy1hcHBlbmQgIlBSRUZJWD0iICMkb3V0cHV0KSkpKQogICAgKGlucHV0cyAobGlzdCBm Y2Z0IHdheWxhbmQpKQogICAgKG5hdGl2ZS1pbnB1dHMgKGxpc3QgcGtnLWNvbmZpZyB3YXlsYW5k LXByb3RvY29scykpCiAgICAoc3lub3BzaXMgIkRXTS1saWtlIGJhciBmb3IgdGhlIFJpdmVyIFdh eWxhbmQgY29tcG9zaXRvciIpCiAgICAoZGVzY3JpcHRpb24gIlNhbmRiYXIgaXMgYSBtaW5pbWFs aXN0IERXTS1saWtlIGJhciBkZXNpZ25lZCBmb3IgUml2ZXIsCmEgV2F5bGFuZCBjb21wb3NpdG9y LiAgSXQgaXMgdHJpZ2dlcmVkIHRocm91Z2ggY29tbWFuZHMgc2VudCB2aWEgc3RhbmRhcmQKaW5w dXQsIHByb3ZpZGluZyBleHRlbnNpdmUgY3VzdG9taXphdGlvbiBvcHRpb25zLiAgVGhpcyBiZWhh dmlvciBhbGxvd3MgdXNlcnMKdG8gZHluYW1pY2FsbHkgYWRqdXN0IHN0YXR1cyB0ZXh0LCB2aXNp YmlsaXR5LCBhbmQgYmFyIGxvY2F0aW9uLCBtYWtpbmcKU2FuZGJhciBhbiBpZGVhbCBjaG9pY2Ug Zm9yIHRob3NlIHNlZWtpbmcgYSBsaWdodHdlaWdodCBhbmQgaGFja2FibGUgYmFyCnNvbHV0aW9u IGluIHRoZWlyIFdheWxhbmQgZW52aXJvbm1lbnQuIikKICAgIDs7ICAgICAgICAgICAgIExJQ0VO U0UgICAgICBMSUNFTlNFLmR0YW8KICAgIChsaWNlbnNlIChsaXN0IGxpY2Vuc2U6Z3BsMyBsaWNl bnNlOmV4cGF0KSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9rb2x1bm1pL3Nh bmRiYXIiKSkpCgooZGVmaW5lLXB1YmxpYyBzcGVjdHJ3bQogIChwYWNrYWdlCiAgICAobmFtZSAi c3BlY3Ryd20iKQogICAgKHZlcnNpb24gIjMuMi4wIikKICAgIChzb3VyY2UKICAgICAob3JpZ2lu CiAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKICAg ICAgICAgICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9jb25mb3JtYWwvc3BlY3Ryd20iKQog ICAgICAgICAgICAgKGNvbW1pdAogICAgICAgICAgICAgIChzdHJpbmctYXBwZW5kICJTUEVDVFJX TV8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1qb2luIChzdHJpbmctc3Bs aXQgdmVyc2lvbiAjXC4pICJfIikpKSkpCiAgICAgICAoZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1l IG5hbWUgdmVyc2lvbikpCiAgICAgICAoc2hhMjU2CiAgICAgICAgKGJhc2UzMiAiMWRmcXk1ZjBz MW52NnJxa3o5bGowMDZ2eXBtcDRyd3hkNXZjemZrM25kenFnbmgxOWt3NiIpKSkpCiAgICAoYnVp bGQtc3lzdGVtIGdudS1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgYCgjOm1ha2Ut ZmxhZ3MgKGxldCAoKHBrZy1jb25maWcgKGxhbWJkYSAoZmxhZykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctYXBwZW5kCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIiQoc2hlbGwgcGtnLWNvbmZpZyAiIGZsYWcgIiAiCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInhmdCBmb250Y29uZmlnIHgxMSBs aWJwbmcpIikpKSkKICAgICAgICAgICAgICAgICAgICAgIChsaXN0CiAgICAgICAgICAgICAgICAg ICAgICAgIkNDPWdjYyIKICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAiUFJF RklYPSIgJW91dHB1dCkKICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAiSU5D Uz0tSS4gIiAocGtnLWNvbmZpZyAiLS1jZmxhZ3MiKSkKICAgICAgICAgICAgICAgICAgICAgICAo c3RyaW5nLWFwcGVuZCAiTElCUz0iIChwa2ctY29uZmlnICItLWxpYnMiKSAiIC1sbSIpKSkKICAg ICAgICM6dGVzdHM/ICNmICAgICAgICAgICAgICAgICAgICAgIDtubyB0ZXN0IHN1aXRlCiAgICAg ICAjOnBoYXNlcwogICAgICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcwogICAgICAg ICAoYWRkLWJlZm9yZSAnYnVpbGQgJ2NoYW5nZS1kaXIKICAgICAgICAgICAobGFtYmRhIF8KICAg ICAgICAgICAgIChjaGRpciAibGludXgiKSAjdCkpCiAgICAgICAgIChhZGQtYWZ0ZXIgJ2NoYW5n ZS1kaXIgJ3BhdGNoLW1ha2VmaWxlCiAgICAgICAgICAgKGxhbWJkYSBfCiAgICAgICAgICAgICAo c3Vic3RpdHV0ZSogIk1ha2VmaWxlIgogICAgICAgICAgICAgICAoKCItZyIpICIiKSkpKQogICAg ICAgICAoZGVsZXRlICdjb25maWd1cmUpKSkpICAgICAgICAgO25vICdjb25maWd1cmUnIGV4aXN0 cwogICAgKGlucHV0cwogICAgIGAoKCJmcmVldHlwZSIgLGZyZWV0eXBlKQogICAgICAgKCJmb250 Y29uZmlnIiAsZm9udGNvbmZpZykKICAgICAgICgibGlieDExIiAsbGlieDExKQogICAgICAgKCJs aWJ4Y3Vyc29yIiAsbGlieGN1cnNvcikKICAgICAgICgibGlieHJhbmRyIiAsbGlieHJhbmRyKQog ICAgICAgKCJsaWJ4dHN0IiAsbGlieHRzdCkKICAgICAgICgibGlieGZ0IiAsbGlieGZ0KQogICAg ICAgKCJ4Y2ItdXRpbCIgLHhjYi11dGlsKQogICAgICAgKCJ4Y2ItdXRpbC13bSIgLHhjYi11dGls LXdtKQogICAgICAgKCJ4Y2ItdXRpbC1rZXlzeW1zIiAseGNiLXV0aWwta2V5c3ltcykpKQogICAg KG5hdGl2ZS1pbnB1dHMKICAgICAobGlzdCBsaWJ4dCBwa2ctY29uZmlnKSkKICAgIChzeW5vcHNp cyAiTWluaW1hbGlzdGljIGF1dG9tYXRpYyB0aWxpbmcgd2luZG93IG1hbmFnZXIiKQogICAgKGRl c2NyaXB0aW9uCiAgICAgIlNwZWN0cndtIGlzIGEgc21hbGwgZHluYW1pYyB0aWxpbmcgYW5kIHJl cGFyZW50aW5nIHdpbmRvdyBtYW5hZ2VyIGZvciBYMTEuCkl0IGlzIGluc3BpcmVkIGJ5IFhtb25h ZCBhbmQgZHdtLiAgSXRzIG1ham9yIGZlYXR1cmVzIGluY2x1ZGU6CgpAaXRlbWl6ZQpAaXRlbSBO YXZpZ2F0aW9uIGFueXdoZXJlIG9uIGFsbCBzY3JlZW5zIHdpdGggZWl0aGVyIHRoZSBrZXlib2Fy ZCBvciBtb3VzZQpAaXRlbSBDdXN0b21pemFibGUgc3RhdHVzIGJhcgpAaXRlbSBSZXN0YXJ0YWJs ZSB3aXRob3V0IGxvc2luZyBzdGF0ZQpAaXRlbSBRdWljayBsYXVuY2ggbWVudQpAaXRlbSBNYW55 IHNjcmVlbiBsYXlvdXRzIHBvc3NpYmxlIHdpdGggYSBmZXcgc2ltcGxlIGtleSBzdHJva2VzCkBp dGVtIE1vdmUvcmVzaXplIGZsb2F0aW5nIHdpbmRvd3MKQGl0ZW0gRXh0ZW5kZWQgV2luZG93IE1h bmFnZXIgSGludHMgKEBkZm57RVdNSH0pIHN1cHBvcnQKQGl0ZW0gQ29uZmlndXJhYmxlIHRpbGlu ZwpAaXRlbSBBZGp1c3RhYmxlIHRpbGUgZ2FwIGFsbG93cyBmb3IgYSB0cnVlIG9uZSBwaXhlbCBi b3JkZXIKQGl0ZW0gQ3VzdG9taXphYmxlIGNvbG9ycyBhbmQgYm9yZGVyIHdpZHRoCkBlbmQgaXRl bWl6ZVxuIikKICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9jb25mb3JtYWwvc3Bl Y3Ryd20iKQogICAgKGxpY2Vuc2UgbGljZW5zZTppc2MpKSkKCihkZWZpbmUtcHVibGljIGN3bQog IChwYWNrYWdlCiAgICAobmFtZSAiY3dtIikKICAgICh2ZXJzaW9uICI3LjEiKQogICAgKHNvdXJj ZQogICAgIChvcmlnaW4KICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgKHVyaSAoc3Ry aW5nLWFwcGVuZCAiaHR0cHM6Ly9sZWFobmV1a2lyY2hlbi5vcmcvcmVsZWFzZXMvY3dtLSIKICAg ICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiAiLnRhci5neiIpKQogICAgICAgKHNoYTI1 NgogICAgICAgIChiYXNlMzIgIjE0NXhqd2FtMTExOTR3Mmlyc3ZzNHoweGduMGpkaWp4Zm14Njdn cWQxbjBqOGc1d2FuMmEiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBnbnUtYnVpbGQtc3lzdGVtKQog ICAgKGFyZ3VtZW50cwogICAgIChsaXN0CiAgICAgICM6dGVzdHM/ICNmCiAgICAgICM6bWFrZS1m bGFncyAjfihsaXN0IChzdHJpbmctYXBwZW5kICJDQz0iICMkKGNjLWZvci10YXJnZXQpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAiUFJFRklYPSIgIyRvdXRwdXQp KQogICAgICAjOnBoYXNlcwogICAgICAjfihtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMK ICAgICAgICAgIChkZWxldGUgJ2NvbmZpZ3VyZSkKICAgICAgICAgIChhZGQtYWZ0ZXIgJ2J1aWxk ICdpbnN0YWxsLXhzZXNzaW9uCiAgICAgICAgICAgIChsYW1iZGEgXwogICAgICAgICAgICAgIDs7 IEFkZCBhIC5kZXNrdG9wIGZpbGUgdG8geHNlc3Npb25zLgogICAgICAgICAgICAgIChsZXQgKCh4 c2Vzc2lvbnMgKHN0cmluZy1hcHBlbmQgIyRvdXRwdXQgIi9zaGFyZS94c2Vzc2lvbnMiKSkpCiAg ICAgICAgICAgICAgICAobWtkaXItcCB4c2Vzc2lvbnMpCiAgICAgICAgICAgICAgICAobWFrZS1k ZXNrdG9wLWVudHJ5LWZpbGUKICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCB4c2Vzc2lv bnMgIi9jd20uZGVza3RvcCIpCiAgICAgICAgICAgICAgICAgIzpuYW1lICJjd20iCiAgICAgICAg ICAgICAgICAgIzpleGVjIChzdHJpbmctYXBwZW5kICMkb3V0cHV0ICIvYmluL2N3bSIpCiAgICAg ICAgICAgICAgICAgIzp0cnktZXhlYyAoc3RyaW5nLWFwcGVuZCAjJG91dHB1dCAiL2Jpbi9jd20i KQogICAgICAgICAgICAgICAgICM6Y29tbWVudCAnKCgjZiAiT3BlbkJTRCBDYWxtIFdpbmRvdyBN YW5hZ2VyIGZvcmsiKSkpKSkpKSkpCiAgICAobmF0aXZlLWlucHV0cwogICAgIChsaXN0IGJpc29u IHBrZy1jb25maWcpKQogICAgKGlucHV0cwogICAgIChsaXN0IGxpYnhyYW5kciBsaWJ4ZnQgbGli eGluZXJhbWEpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL2xlYWhuZXVraXJj aGVuL2N3bSIpCiAgICAoc3lub3BzaXMgIk9wZW5CU0QgZm9yayBvZiB0aGUgQ2FsbSBXaW5kb3cg TWFuYWdlciIpCiAgICAoZGVzY3JpcHRpb24gIkN3bSBpcyBhIHN0YWNraW5nIHdpbmRvdyBtYW5h Z2VyIGZvciBYMTEuICBJdCBpcyBhbiBPcGVuQlNECnByb2plY3QgZGVyaXZlZCBmcm9tIHRoZSBv cmlnaW5hbCBDYWxtIFdpbmRvdyBNYW5hZ2VyLiIpCiAgICAobGljZW5zZSBsaWNlbnNlOmlzYykp KQoKKGRlZmluZS1wdWJsaWMgZHVuc3QKICAocGFja2FnZQogICAgKG5hbWUgImR1bnN0IikKICAg ICh2ZXJzaW9uICIxLjEwLjAiKQogICAgKHNvdXJjZQogICAgIChvcmlnaW4KICAgICAgIChtZXRo b2QgZ2l0LWZldGNoKQogICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQogICAgICAgICAgICAgKHVy bCAiaHR0cHM6Ly9naXRodWIuY29tL2R1bnN0LXByb2plY3QvZHVuc3QiKQogICAgICAgICAgICAg KGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKICAgICAgIChmaWxlLW5hbWUg KGdpdC1maWxlLW5hbWUgbmFtZSB2ZXJzaW9uKSkKICAgICAgIChzaGEyNTYKICAgICAgICAoYmFz ZTMyICIxZDZtYzNhYzR6MTZpd2dxOTkzNGcxeWMzNDEyeGwwaHd2NXZzNDB5Y2ZtYXNtOHFiamdh IikpKSkKICAgIChidWlsZC1zeXN0ZW0gZ251LWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMK ICAgICAobGlzdAogICAgICAjOnRlc3RzPyAjZiA7bm8gY2hlY2sgdGFyZ2V0CiAgICAgICM6bWFr ZS1mbGFncyAjfihsaXN0IChzdHJpbmctYXBwZW5kICJDQz0iCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICMkKGNjLWZvci10YXJnZXQpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAiUFJFRklYPSIgJW91dHB1dCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHN0cmluZy1hcHBlbmQgIlNZU0NPTkZESVI9IiAlb3V0cHV0ICIvZXRj IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgT3RoZXJ3aXNlIGl0IHRyaWVzIHRvIGlu c3RhbGwgc2VydmljZSBmaWxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IHRvICJkYnVz IiBzdG9yZSBkaXJlY3RvcnkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctYXBw ZW5kICJTRVJWSUNFRElSX0RCVVM9IiAlb3V0cHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICIvc2hhcmUvZGJ1cy0xL3NlcnZpY2VzIikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgImR1bnN0aWZ5IikKICAgICAgIzpwaGFzZXMgI34obW9kaWZ5LXBoYXNlcyAl c3RhbmRhcmQtcGhhc2VzCiAgICAgICAgICAgICAgICAgICAoZGVsZXRlICdjb25maWd1cmUpKSkp CiAgICAobmF0aXZlLWlucHV0cyAobGlzdCBwa2ctY29uZmlnIHBlcmwgO2ZvciBwb2QybWFuCiAg ICAgICAgICAgICAgICAgICAgICAgICB3aGljaCkpCiAgICAoaW5wdXRzIChsaXN0IGRidXMKICAg ICAgICAgICAgICAgICAgKGxpYnJzdmctZm9yLXN5c3RlbSkgO2ZvciBzdmcgc3VwcG9ydAogICAg ICAgICAgICAgICAgICBnbGliCiAgICAgICAgICAgICAgICAgIGNhaXJvCiAgICAgICAgICAgICAg ICAgIHBhbmdvCiAgICAgICAgICAgICAgICAgIGxpYm5vdGlmeSA7Zm9yIGR1bnN0aWZ5CiAgICAg ICAgICAgICAgICAgIGxpYngxMQogICAgICAgICAgICAgICAgICBsaWJ4c2NybnNhdmVyCiAgICAg ICAgICAgICAgICAgIGxpYnhpbmVyYW1hCiAgICAgICAgICAgICAgICAgIGxpYnhyYW5kcgogICAg ICAgICAgICAgICAgICBsaWJ4ZGctYmFzZWRpcgogICAgICAgICAgICAgICAgICB3YXlsYW5kKSkg O2ZvciB3YXlsYW5kIHN1cHBvcnQKICAgIChob21lLXBhZ2UgImh0dHBzOi8vZHVuc3QtcHJvamVj dC5vcmcvIikKICAgIChzeW5vcHNpcyAiQ3VzdG9taXphYmxlIGFuZCBsaWdodHdlaWdodCBub3Rp ZmljYXRpb24gZGFlbW9uIikKICAgIChkZXNjcmlwdGlvbgogICAgICJEdW5zdCBpcyBhIGhpZ2hs eSBjb25maWd1cmFibGUgYW5kIG1pbmltYWxpc3RpYyBub3RpZmljYXRpb24gZGFlbW9uLgpJdCBw cm92aWRlcyBAY29kZXtvcmcuZnJlZWRlc2t0b3AuTm90aWZpY2F0aW9uc30gRC1CdXMgc2Vydmlj ZSwgc28gaXQgaXMKc3RhcnRlZCBhdXRvbWF0aWNhbGx5IG9uIHRoZSBmaXJzdCBjYWxsIHZpYSBE LUJ1cy4iKQogICAgKGxpY2Vuc2UgbGljZW5zZTpic2QtMykpKQoKKGRlZmluZS1wdWJsaWMgZHds CiAgKHBhY2thZ2UKICAgIChuYW1lICJkd2wiKQogICAgKHZlcnNpb24gIjAuNCIpCiAgICAoc291 cmNlIChvcmlnaW4KICAgICAgICAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKICAgICAgICAgICAg ICAodXJpIChnaXQtcmVmZXJlbmNlCiAgICAgICAgICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9n aXRodWIuY29tL2RqcG9obHkvZHdsIikKICAgICAgICAgICAgICAgICAgICAoY29tbWl0IChzdHJp bmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQogICAgICAgICAgICAgIChmaWxlLW5hbWUgKGdpdC1m aWxlLW5hbWUgbmFtZSB2ZXJzaW9uKSkKICAgICAgICAgICAgICAoc2hhMjU2CiAgICAgICAgICAg ICAgIChiYXNlMzIKICAgICAgICAgICAgICAgICIwcGowaDN6ZDJmNjBoeHBhdnBtZ3ppZDFzajdo ZjltNWNnY2xiYWNrbGpxcTRncHdsdmlyIikpKSkKICAgIChidWlsZC1zeXN0ZW0gZ251LWJ1aWxk LXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICBgKCM6dGVzdHM/ICNmICAgICAgICAgICAgICAg ICAgICAgIDsgbm8gdGVzdHMKICAgICAgICM6bWFrZS1mbGFncwogICAgICAgKGxpc3QKICAgICAg ICAoc3RyaW5nLWFwcGVuZCAiQ0M9IiAsKGNjLWZvci10YXJnZXQpKQogICAgICAgIChzdHJpbmct YXBwZW5kICJQUkVGSVg9IiAoYXNzb2MtcmVmICVvdXRwdXRzICJvdXQiKSkpCiAgICAgICAjOnBo YXNlcwogICAgICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcwogICAgICAgICAoZGVs ZXRlICdjb25maWd1cmUpKSkpICAgICAgICAgOyBubyBjb25maWd1cmUKICAgIChuYXRpdmUtaW5w dXRzCiAgICAgKGxpc3QgcGtnLWNvbmZpZykpCiAgICAoaW5wdXRzCiAgICAgKGxpc3Qgd2xyb290 cy0wLjE2KSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9kanBvaGx5L2R3bCIp CiAgICAoc3lub3BzaXMgIkR5bmFtaWMgd2luZG93IG1hbmFnZXIgZm9yIFdheWxhbmQiKQogICAg KGRlc2NyaXB0aW9uCiAgICAgIkBjb21tYW5ke2R3bH0gaXMgYSBjb21wYWN0LCBoYWNrYWJsZSBj b21wb3NpdG9yIGZvciBXYXlsYW5kIGJhc2VkIG9uCndscm9vdHMuICBJdCBpcyBpbnRlbmRlZCB0 byBmaWxsIHRoZSBzYW1lIHNwYWNlIGluIHRoZSBXYXlsYW5kIHdvcmxkIHRoYXQgZHdtCmRvZXMg aW4gWDExLCBwcmltYXJpbHkgaW4gdGVybXMgb2YgcGhpbG9zb3BoeSwgYW5kIHNlY29uZGFyaWx5 IGluIHRlcm1zIG9mCmZ1bmN0aW9uYWxpdHkuICBMaWtlIGR3bSwgZHdsIGlzIGVhc3kgdG8gdW5k ZXJzdGFuZCBhbmQgaGFjayBvbiwgZHVlIHRvIGEKbGltaXRlZCBzaXplIGFuZCBhIGZldyBleHRl cm5hbCBkZXBlbmRlbmNpZXMuICBJdCBpcyBjb25maWd1cmFibGUgdmlhCkBmaWxle2NvbmZpZy5o fS4iKQogICAgOzsgICAgICAgICAgICAgTElDRU5TRSAgICAgICBMSUNFTlNFLmR3bSAgIExJQ0VO U0UudGlueXdsCiAgICAobGljZW5zZSAobGlzdCBsaWNlbnNlOmdwbDMrIGxpY2Vuc2U6ZXhwYXQg bGljZW5zZTpjYzApKSkpCgooZGVmaW5lLXB1YmxpYyBuaXRyb2dlbgogIChwYWNrYWdlCiAgICAo bmFtZSAibml0cm9nZW4iKQogICAgKHZlcnNpb24gIjEuNi4xIikKICAgIChzb3VyY2UgKG9yaWdp bgogICAgICAgICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICAgICAgICh1cmkgKHN0 cmluZy1hcHBlbmQgImh0dHA6Ly9naXRodWIuY29tL2wzaWIvbml0cm9nZW4vIgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgInJlbGVhc2VzL2Rvd25sb2FkLyIgdmVyc2lvbiAiLyIK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgIi0iIHZlcnNpb24gIi50YXIu Z3oiKSkKICAgICAgICAgICAgICAoc2hhMjU2CiAgICAgICAgICAgICAgIChiYXNlMzIKICAgICAg ICAgICAgICAgICIwemMzZmwxbWJocTBpeW5keTR5c215OHZ2NWM3eHdmNTRyYmdhbXpmaGZ2c2dk cTE2MHBsIikpKSkKICAgIChidWlsZC1zeXN0ZW0gZ251LWJ1aWxkLXN5c3RlbSkKICAgIChpbnB1 dHMKICAgICAobGlzdCBndGsrLTIgZ3RrbW0tMiBnbGliIGdsaWJtbSkpCiAgICAobmF0aXZlLWlu cHV0cwogICAgIChsaXN0IHBrZy1jb25maWcpKQogICAgKGhvbWUtcGFnZSAiaHR0cDovL3Byb2pl Y3RzLmwzaWIub3JnL25pdHJvZ2VuLyIpCiAgICAoc3lub3BzaXMgIkJhY2tncm91bmQgYnJvd3Nl ciBhbmQgc2V0dGVyIGZvciBYIHdpbmRvd3MiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgIlRoaXMg cGFja2FnZSBpcyBhIGJhY2tncm91bmQgYnJvd3NlciBhbmQgc2V0dGVyIGZvciBYIHdpbmRvd3Mu ICBJdCdzCmZlYXR1cmVzIGFyZToKCkBpdGVtaXplCkBpdGVtIE11bHRpaGVhZCBhbmQgWGluZXJh bWEgYXdhcmUKQGl0ZW0gUmVjYWxsIG1vZGUgdG8gdXNlZCB2aWEgc3RhcnR1cCBzY3JpcHQKQGl0 ZW0gVXNlcyBmcmVlZGVza3RvcC5vcmcgc3RhbmRhcmQgZm9yIHRodW1ibmFpbHMKQGl0ZW0gQ2Fu IHNldCBHTk9NRSBiYWNrZ3JvdW5kCkBpdGVtIENvbW1hbmQgbGllIHNldCBtb2RlcyBmb3Igc2Ny aXB0IHVzZQpAaXRlbSBJbm90aWZ5IG1vbml0b3Jpbmcgb2YgYnJvd3NlIGRpcmVjdG9yeQpAaXRl bSBMYXp5IGxvYWRpbmcgb2YgdGh1bWJuYWlscyAtIGNvbnNlcnZlcyBtZW1vcnkKQGl0ZW0gXCJB dXRvbWF0aWNcIiBzZXQgbW9kZSAtIGRldGVybWluZXMgYmVzdCBtb2RlIHRvIHNldCBhbiBpbWFn ZSBiYXNlZCBvbgppdHMgc2l6ZQpAaXRlbSBEaXNwbGF5IHByZXZpZXcgaW1hZ2VzIGluIGEgdGls ZWQgaWNvbiBsYXlvdXQKQGVuZCBpdGVtaXplIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6Z3BsMisp KSkKCihkZWZpbmUtcHVibGljIHBvbHliYXIKICAocGFja2FnZQogICAgKG5hbWUgInBvbHliYXIi KQogICAgKHZlcnNpb24gIjMuNy4xIikKICAgIChzb3VyY2UKICAgICAob3JpZ2luCiAgICAgICAo bWV0aG9kIHVybC1mZXRjaCkKICAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQgImh0dHBzOi8vZ2l0 aHViLmNvbS9wb2x5YmFyL3BvbHliYXIvcmVsZWFzZXMvIgogICAgICAgICAgICAgICAgICAgICAg ICAgICAiZG93bmxvYWQvIiB2ZXJzaW9uICIvcG9seWJhci0iIHZlcnNpb24gIi50YXIuZ3oiKSkK ICAgICAgIChzaGEyNTYKICAgICAgICAoYmFzZTMyICIwM3p6MmMzY2t4cWJ3aXhjMnFoc25hc3E0 ajRzZmlhNzF2NzVsaTl3OTdkMGJjd2F2cmp4IikpKSkKICAgIChidWlsZC1zeXN0ZW0gY21ha2Ut YnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgIDs7IFRlc3QgaXMgZGlzYWJsZWQgYmVj YXVzZSBpdCByZXF1aXJlcyBkb3dubG9hZGluZyBnb29nbGV0ZXN0IGZyb20gdGhlCiAgICAgOzsg SW50ZXJuZXQuCiAgICAgKGxpc3QgIzp0ZXN0cz8gI2YKICAgICAgICAgICAjOnBoYXNlcwogICAg ICAgICAgICN+KG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcwogICAgICAgICAgICAgICA7 OyBNYWtlIHBvbHliYXIgZmluZCBpdHMgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZpbGUgaW4gdGhl CiAgICAgICAgICAgICAgIDs7IHN0b3JlLgogICAgICAgICAgICAgICAoYWRkLWFmdGVyICd1bnBh Y2sgJ3BhdGNoLWNvbmZpZy1wYXRoCiAgICAgICAgICAgICAgICAgKGxhbWJkYSBfCiAgICAgICAg ICAgICAgICAgICAoc3Vic3RpdHV0ZSogIkNNYWtlTGlzdHMudHh0IgogICAgICAgICAgICAgICAg ICAgICAoKCIvZXRjIikgKHN0cmluZy1hcHBlbmQgIyRvdXRwdXQgIi9ldGMiKSkpCiAgICAgICAg ICAgICAgICAgICAoc3Vic3RpdHV0ZSogInNyYy91dGlscy9maWxlLmNwcCIKICAgICAgICAgICAg ICAgICAgICAgKCgiXCIvZXRjXCIiKSAoc3RyaW5nLWFwcGVuZCAiXCIiICMkb3V0cHV0ICIvZXRj XCIiKSkpKSkpKSkKICAgIChpbnB1dHMKICAgICAobGlzdCBhbHNhLWxpYgogICAgICAgICAgIGNh aXJvCiAgICAgICAgICAgaTMtd20KICAgICAgICAgICBqc29uY3BwCiAgICAgICAgICAgbGlibXBk Y2xpZW50CiAgICAgICAgICAgbGlibmwKICAgICAgICAgICBsaWJ1dgogICAgICAgICAgIGxpYnhj YgogICAgICAgICAgIHB1bHNlYXVkaW8KICAgICAgICAgICB4Y2ItcHJvdG8KICAgICAgICAgICB4 Y2ItdXRpbAogICAgICAgICAgIHhjYi11dGlsLWN1cnNvcgogICAgICAgICAgIHhjYi11dGlsLWlt YWdlCiAgICAgICAgICAgeGNiLXV0aWwtd20KICAgICAgICAgICB4Y2ItdXRpbC14cm0pKQogICAg KG5hdGl2ZS1pbnB1dHMKICAgICAobGlzdCBwa2ctY29uZmlnCiAgICAgICAgICAgcHl0aG9uLXNw aGlueCA7IGZvciB0aGUgbWFudWFsCiAgICAgICAgICAgcHl0aG9uKSkgICAgICA7IHhjYi1wcm90 byBkZXBlbmRzIG9uIHB5dGhvbiAzCiAgICAoaG9tZS1wYWdlICJodHRwczovL3BvbHliYXIuZ2l0 aHViLmlvLyIpCiAgICAoc3lub3BzaXMgIkZhc3QgYW5kIGVhc3ktdG8tdXNlIHN0YXR1cyBiYXIi KQogICAgKGRlc2NyaXB0aW9uICJQb2x5YmFyIGFpbXMgdG8gaGVscCB1c2VycyBidWlsZCBiZWF1 dGlmdWwgYW5kIGhpZ2hseQpjdXN0b21pemFibGUgc3RhdHVzIGJhcnMgZm9yIHRoZWlyIGRlc2t0 b3AgZW52aXJvbm1lbnQuICBJdCBoYXMgYnVpbHQtaW4KZnVuY3Rpb25hbGl0eSB0byBkaXNwbGF5 IGluZm9ybWF0aW9uIGFib3V0IHRoZSBtb3N0IGNvbW1vbmx5IHVzZWQgc2VydmljZXMuIikKICAg IChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKCihkZWZpbmUtcHVibGljIHdscm9vdHMKICAocGFj a2FnZQogICAgKG5hbWUgIndscm9vdHMiKQogICAgKHZlcnNpb24gIjAuMTcuMSIpCiAgICAoc291 cmNlCiAgICAgKG9yaWdpbgogICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCiAgICAgICAodXJpIChn aXQtcmVmZXJlbmNlCiAgICAgICAgICAgICAodXJsICJodHRwczovL2dpdGxhYi5mcmVlZGVza3Rv cC5vcmcvd2xyb290cy93bHJvb3RzIikKICAgICAgICAgICAgIChjb21taXQgdmVyc2lvbikpKQog ICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKQogICAgICAgKHNo YTI1NgogICAgICAgIChiYXNlMzIgIjFoajRncTV2eDhpbjY1NjIyeXZqbThid3FrdzJ2cGM1NTZr OW15OTk3YTBobjByaWNqMzciKSkKICAgICAgICAgOzsgVGhpcyBwYXRjaCBjYW4gYmUgcmVtb3Zl ZCBvbmNlIGh3ZGF0YSBpbiBHdWl4IHN1cHBvcnRzIHBrZy1jb25maWcKICAgICAgICAgKHBhdGNo ZXMgKHNlYXJjaC1wYXRjaGVzICJ3bHJvb3RzLWh3ZGF0YS1mYWxsYmFjay5wYXRjaCIpKSkpCiAg ICAoYnVpbGQtc3lzdGVtIG1lc29uLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICBg KCM6cGhhc2VzCiAgICAgICAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCiAgICAgICAg IChhZGQtYmVmb3JlICdjb25maWd1cmUgJ2hhcmRjb2RlLXBhdGhzCiAgICAgICAgICAgKGxhbWJk YSogKCM6a2V5IGlucHV0cyAjOmFsbG93LW90aGVyLWtleXMpCiAgICAgICAgICAgICAoc3Vic3Rp dHV0ZSogInh3YXlsYW5kL3NlcnZlci5jIgogICAgICAgICAgICAgICAoKCJYd2F5bGFuZCIpIChz dHJpbmctYXBwZW5kIChhc3NvYy1yZWYgaW5wdXRzCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieG9yZy1zZXJ2ZXIteHdheWxhbmQiKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvYmluL1h3YXlsYW5kIikp KQogICAgICAgICAgICAgI3QpKQogICAgICAgICAoYWRkLWJlZm9yZSAnY29uZmlndXJlICdmaXgt bWVzb24tZmlsZQogICAgICAgICAgIChsYW1iZGEqICgjOmtleSBuYXRpdmUtaW5wdXRzIGlucHV0 cyAjOmFsbG93LW90aGVyLWtleXMpCiAgICAgICAgICAgICAoc3Vic3RpdHV0ZSogImJhY2tlbmQv ZHJtL21lc29uLmJ1aWxkIgogICAgICAgICAgICAgICAoKCIvdXNyL3NoYXJlL2h3ZGF0YS9wbnAu aWRzIikKICAgICAgICAgICAgICAgIChzdHJpbmctYXBwZW5kIChhc3NvYy1yZWYgKG9yIG5hdGl2 ZS1pbnB1dHMgaW5wdXRzKSAiaHdkYXRhIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICIvc2hhcmUvaHdkYXRhL3BucC5pZHMiKSkpKSkpKSkKICAgIChwcm9wYWdhdGVkLWlucHV0cwog ICAgIChsaXN0IDs7IEFzIHJlcXVpcmVkIGJ5IHdscm9vdHMucGMuCiAgICAgICAgICAgZXVkZXYK ICAgICAgICAgICBsaWJkaXNwbGF5LWluZm8KICAgICAgICAgICBsaWJpbnB1dC1taW5pbWFsCiAg ICAgICAgICAgbGlieGtiY29tbW9uCiAgICAgICAgICAgbWVzYQogICAgICAgICAgIHBpeG1hbgog ICAgICAgICAgIGxpYnNlYXQKICAgICAgICAgICB3YXlsYW5kCiAgICAgICAgICAgd2F5bGFuZC1w cm90b2NvbHMKICAgICAgICAgICB4Y2ItdXRpbC1lcnJvcnMKICAgICAgICAgICB4Y2ItdXRpbC13 bQogICAgICAgICAgIHhvcmctc2VydmVyLXh3YXlsYW5kKSkKICAgIChuYXRpdmUtaW5wdXRzCiAg ICAgKGNvbnMqCiAgICAgICBgKCxod2RhdGEgInBucCIpCiAgICAgICBwa2ctY29uZmlnCiAgICAg ICB3YXlsYW5kCiAgICAgICAoaWYgKCVjdXJyZW50LXRhcmdldC1zeXN0ZW0pCiAgICAgICAgIChs aXN0IHBrZy1jb25maWctZm9yLWJ1aWxkKQogICAgICAgICAnKCkpKSkKICAgIChob21lLXBhZ2Ug Imh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy93bHJvb3RzL3dscm9vdHMvIikKICAgIChz eW5vcHNpcyAiUGx1Z2dhYmxlLCBjb21wb3NhYmxlLCB1bm9waW5pb25hdGVkIG1vZHVsZXMgZm9y IGJ1aWxkaW5nIGEKV2F5bGFuZCBjb21wb3NpdG9yIikKICAgIChkZXNjcmlwdGlvbiAid2xyb290 cyBpcyBhIHNldCBvZiBwbHVnZ2FibGUsIGNvbXBvc2FibGUsIHVub3BpbmlvbmF0ZWQKbW9kdWxl cyBmb3IgYnVpbGRpbmcgYSBXYXlsYW5kIGNvbXBvc2l0b3IuIikKICAgIChsaWNlbnNlIGxpY2Vu c2U6ZXhwYXQpKSkgIDsgTUlUIGxpY2Vuc2UKCihkZWZpbmUtcHVibGljIHdscm9vdHMtMC4xNgog IChwYWNrYWdlCiAgICAoaW5oZXJpdCB3bHJvb3RzKQogICAgKG5hbWUgIndscm9vdHMtMC4xNiIp CiAgICAodmVyc2lvbiAiMC4xNi4yIikKICAgIChzb3VyY2UKICAgICAob3JpZ2luCiAgICAgICAo bWV0aG9kIGdpdC1mZXRjaCkKICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKICAgICAgICAgICAg ICh1cmwgImh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy93bHJvb3RzL3dscm9vdHMiKQog ICAgICAgICAgICAgKGNvbW1pdCB2ZXJzaW9uKSkpCiAgICAgICAoZmlsZS1uYW1lIChnaXQtZmls ZS1uYW1lIG5hbWUgdmVyc2lvbikpCiAgICAgICAoc2hhMjU2CiAgICAgICAgKGJhc2UzMiAiMW0x Mm52NmF2Z256NjI2aDNnaXFwNmdjeDQ0dzF3cTZ6MGp5NzgwbXg4ejI1NWljN3ExNSIpKSkpCiAg ICAocHJvcGFnYXRlZC1pbnB1dHMgKG1vZGlmeS1pbnB1dHMgKHBhY2thZ2UtcHJvcGFnYXRlZC1p bnB1dHMgd2xyb290cykKICAgICAgICAgICAgICAgICAgICAgICAgIChkZWxldGUgbGliZGlzcGxh eS1pbmZvKSkpKSkKCihkZWZpbmUtcHVibGljIHdscm9vdHMtMC4xNQogIChwYWNrYWdlCiAgICAo aW5oZXJpdCB3bHJvb3RzKQogICAgKG5hbWUgIndscm9vdHMtMC4xNSIpCiAgICAodmVyc2lvbiAi MC4xNS4xIikKICAgIChzb3VyY2UKICAgICAob3JpZ2luCiAgICAgICAobWV0aG9kIGdpdC1mZXRj aCkKICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKICAgICAgICAgICAgICh1cmwgImh0dHBzOi8v Z2l0bGFiLmZyZWVkZXNrdG9wLm9yZy93bHJvb3RzL3dscm9vdHMiKQogICAgICAgICAgICAgKGNv bW1pdCB2ZXJzaW9uKSkpCiAgICAgICAoZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lICJ3bHJvb3Rz IiB2ZXJzaW9uKSkKICAgICAgIChzaGEyNTYKICAgICAgICAoYmFzZTMyICIwMHM3M25oaTNzYzQ4 bDQyNmpkbHF3cGNsZzQxa3gxaHYweWs0eXhoYnp3MTlncXBmbTFoIikpKSkpKQoKKGRlZmluZS1w dWJsaWMgd2wtbWlycm9yCiAgKHBhY2thZ2UKICAgIChuYW1lICJ3bC1taXJyb3IiKQogICAgKHZl cnNpb24gIjAuMTYuMiIpCiAgICAoc291cmNlIChvcmlnaW4KICAgICAgICAgICAgICAobWV0aG9k IGdpdC1mZXRjaCkKICAgICAgICAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCiAgICAgICAgICAg ICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL0ZlcmRpMjY1L3dsLW1pcnJvciIpCiAg ICAgICAgICAgICAgICAgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkK ICAgICAgICAgICAgICAoZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpCiAg ICAgICAgICAgICAgKHNoYTI1NgogICAgICAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICAg ICAiMWpkeWNyOXZmNXNrYmY1NWtibTJoYzN6bDNxZzU4eDNiYjZ4cWtmOXF4MTRtNHJhbWNkaiIp KSkpCiAgICAoYnVpbGQtc3lzdGVtIGNtYWtlLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMK ICAgICAobGlzdCAjOnRlc3RzPyAjZiAgICAgICAgICAgICAgICAgIDtObyB0ZXN0cy4KICAgICAg ICAgICAjOmNvbmZpZ3VyZS1mbGFncwogICAgICAgICAgICN+KGxpc3QgIi1ESU5TVEFMTF9ET0NV TUVOVEFUSU9OPU9OIgogICAgICAgICAgICAgICAgICAgKHN0cmluZy1hcHBlbmQgIi1EV0xfUFJP VE9DT0xfRElSPSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMkKHRoaXMtcGFj a2FnZS1pbnB1dCAid2F5bGFuZC1wcm90b2NvbHMiKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIi9zaGFyZS93YXlsYW5kLXByb3RvY29scyIpCiAgICAgICAgICAgICAgICAgICAo c3RyaW5nLWFwcGVuZCAiLURXTFJfUFJPVE9DT0xfRElSPSIKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMkKHRoaXMtcGFja2FnZS1pbnB1dCAid2xyLXByb3RvY29scyIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL3NoYXJlL3dsci1wcm90b2NvbHMiKSkpKQog ICAgKGlucHV0cyAobGlzdCBlZ2wtd2F5bGFuZCBtZXNhIHdheWxhbmQgd2F5bGFuZC1wcm90b2Nv bHMgd2xyLXByb3RvY29scykpCiAgICAobmF0aXZlLWlucHV0cyAobGlzdCBwa2ctY29uZmlnIHNj ZG9jKSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9GZXJkaTI2NS93bC1taXJy b3IiKQogICAgKHN5bm9wc2lzICJTaW1wbGUgV2F5bGFuZCBvdXRwdXQgbWlycm9yIGNsaWVudCIp CiAgICAoZGVzY3JpcHRpb24KICAgICAiVGhpcyBwYWNrYWdlIHByb3ZpZGVzIEBjb21tYW5ke3ds LW1pcnJvcn0sIGEgc29sdXRpb24gdG8gQGNvZGV7c3dheX0ncwpsYWNrIG9mIG91dHB1dCBtaXJy b3JpbmcgYnkgbWlycm9yaW5nIGFuIG91dHB1dCBvbnRvIGEgY2xpZW50IHN1cmZhY2UuICBJdCBo YXMKdGhlIGZvbGxvd2luZyBmZWF0dXJlczoKCkBpdGVtaXplCkBpdGVtIE1pcnJvciBhbiBvdXRw dXQgb250byBhIHJlc2l6YWJsZSB3aW5kb3cuCkBpdGVtIE1pcnJvciBhbiBvdXRwdXQgb250byBh bm90aGVyIG91dHB1dCBieSBmdWxsc2NyZWVuaW5nIHRoZSB3aW5kb3cuCkBpdGVtIFJlYWN0IHRv IGNoYW5nZXMgaW4gb3V0cHV0IHNjYWxlIChpbmNsdWRpbmcgZnJhY3Rpb25hbCBzY2FsaW5nKS4K QGl0ZW0gUHJlc2VydmUgYXNwZWN0IHJhdGlvLgpAaXRlbSBDb3JyZWN0IGZsaXBwZWQgb3Igcm90 YXRlZCBvdXRwdXRzLgpAaXRlbSBDdXN0b20gZmxpcHMgb3Igcm90YXRpb25zLgpAaXRlbSBNaXJy b3IgY3VzdG9tIHJlZ2lvbnMgb2Ygb3V0cHV0cy4KQGl0ZW0gUmVjZWl2ZSBhZGRpdGlvbmFsIG9w dGlvbnMgb24gc3RkaW4gZm9yIGNoYW5naW5nIHRoZSBtaXJyb3JlZCBzY3JlZW4gb3IKcmVnaW9u IG9uIHRoZSBmbHkuCkBlbmQgaXRlbWl6ZSIpCiAgICAobGljZW5zZSBsaWNlbnNlOmdwbDMpKSkK CihkZWZpbmUtcHVibGljIHdtZW51CiAgKHBhY2thZ2UKICAgIChuYW1lICJ3bWVudSIpCiAgICAo dmVyc2lvbiAiMC4xLjciKQogICAgKHNvdXJjZSAob3JpZ2luCiAgICAgICAgICAgICAgKG1ldGhv ZCBnaXQtZmV0Y2gpCiAgICAgICAgICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQogICAgICAgICAg ICAgICAgICAgICh1cmwgImh0dHBzOi8vZ2l0LnNyLmh0L35hZG5hbm8vd21lbnUiKQogICAgICAg ICAgICAgICAgICAgIChjb21taXQgdmVyc2lvbikpKQogICAgICAgICAgICAgIChmaWxlLW5hbWUg KGdpdC1maWxlLW5hbWUgbmFtZSB2ZXJzaW9uKSkKICAgICAgICAgICAgICAoc2hhMjU2CiAgICAg ICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgICAgICIwd2puNjhyNWN4NHp2dzdzYnk2c2sy aXA1aDRmbjBqYmdiMW5hc205bnNnanB2NjNwbnBtIikpKSkKICAgIChidWlsZC1zeXN0ZW0gbWVz b24tYnVpbGQtc3lzdGVtKQogICAgKG5hdGl2ZS1pbnB1dHMgKGFwcGVuZCAoaWYgKCVjdXJyZW50 LXRhcmdldC1zeXN0ZW0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBmb3Igd2F5 bGFuZC1zY2FubmVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCBwa2ctY29u ZmlnLWZvci1idWlsZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2F5bGFu ZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpc3QgcGtnLWNvbmZpZyBzY2RvYykpKQogICAgKGlucHV0cyAobGlzdCBjYWly byBwYW5nbyB3YXlsYW5kIGxpYnhrYmNvbW1vbiB3YXlsYW5kLXByb3RvY29scykpCiAgICAoaG9t ZS1wYWdlICJodHRwczovL2dpdC5zci5odC9+YWRuYW5vL3dtZW51IikKICAgIChzeW5vcHNpcyAi RHluYW1pYyBtZW51IGZvciBXYXlsYW5kIikKICAgIChkZXNjcmlwdGlvbiAiQGNvbW1hbmR7d21l bnV9IGlzIGEgZHluYW1pYyBtZW51IGZvciBXYXlsYW5kLCB3aGljaCByZWFkcyBhIGxpc3QKb2Yg bmV3bGluZS1zZXBhcmF0ZWQgaXRlbXMgZnJvbSBzdGRpbi4gIFdoZW4gdGhlIHVzZXIgc2VsZWN0 cyBhbiBpdGVtIGFuZCBwcmVzc2VzClJldHVybiwgdGhlaXIgY2hvaWNlIGlzIHByaW50ZWQgdG8g c3Rkb3V0IGFuZCB3bWVudSB0ZXJtaW5hdGVzLiAgRW50ZXJpbmcgdGV4dCB3aWxsCm5hcnJvdyB0 aGUgaXRlbXMgdG8gdGhvc2UgbWF0Y2hpbmcgdGhlIHRva2VucyBpbiB0aGUgaW5wdXQuIikKICAg IChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKCihkZWZpbmUtcHVibGljIHN3YXkKICAocGFja2Fn ZQogICAgKG5hbWUgInN3YXkiKQogICAgKHZlcnNpb24gIjEuOSIpCiAgICAoc291cmNlCiAgICAg KG9yaWdpbgogICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCiAgICAgICAodXJpIChnaXQtcmVmZXJl bmNlCiAgICAgICAgICAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vc3dheXdtL3N3YXkiKQog ICAgICAgICAgICAgKGNvbW1pdCB2ZXJzaW9uKSkpCiAgICAgICAoZmlsZS1uYW1lIChnaXQtZmls ZS1uYW1lIG5hbWUgdmVyc2lvbikpCiAgICAgICAoc2hhMjU2CiAgICAgICAgKGJhc2UzMiAiMW4z NnZncGk0YmcyZ2tpcTRmYW00a2hseTF6OWJqaW5tamNsenE1dmZ4MHo4aDdhNWJ6eiIpKSkpCiAg ICAoYnVpbGQtc3lzdGVtIG1lc29uLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAo bGlzdAogICAgICA7OyBlbG9naW5kIGlzIHByb3BhZ2F0ZWQgYnkgd2xyb290cyAtPiBsaWJzZWF0 CiAgICAgIDs7IGFuZCB3b3VsZCBvdGhlcndpc2Ugc2hhZG93IGJhc3UuCiAgICAgICM6Y29uZmln dXJlLWZsYWdzCiAgICAgICN+JygiLURzZC1idXMtcHJvdmlkZXI9YmFzdSIpCiAgICAgICM6cGhh c2VzCiAgICAgICN+KG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcwogICAgICAgICAgKGFk ZC1iZWZvcmUgJ2NvbmZpZ3VyZSAnaGFyZGNvZGUtcGF0aHMKICAgICAgICAgICAgKGxhbWJkYSog KCM6a2V5IGlucHV0cyAjOmFsbG93LW90aGVyLWtleXMpCiAgICAgICAgICAgICAgOzsgSGFyZGNv ZGUgcGF0aCB0byBzd2F5YmcuCiAgICAgICAgICAgICAgKHN1YnN0aXR1dGUqICJzd2F5L2NvbmZp Zy5jIgogICAgICAgICAgICAgICAgKCgic3RyZHVwLi5zd2F5YmcuLiIpCiAgICAgICAgICAgICAg ICAgKGZvcm1hdCAjZiAic3RyZHVwKFwifmFcIikiCiAgICAgICAgICAgICAgICAgICAgICAgICAo c2VhcmNoLWlucHV0LWZpbGUgaW5wdXRzICJiaW4vc3dheWJnIikpKSkpKSkpKQogICAgKGlucHV0 cyAobGlzdCBiYXN1CiAgICAgICAgICAgICAgICAgIGNhaXJvCiAgICAgICAgICAgICAgICAgIGdk ay1waXhidWYKICAgICAgICAgICAgICAgICAganNvbi1jCiAgICAgICAgICAgICAgICAgIGxpYmV2 ZGV2CiAgICAgICAgICAgICAgICAgIGxpYmlucHV0LW1pbmltYWwKICAgICAgICAgICAgICAgICAg bGlieGtiY29tbW9uCiAgICAgICAgICAgICAgICAgIHBhbmdvCiAgICAgICAgICAgICAgICAgIHBj cmUyCiAgICAgICAgICAgICAgICAgIHN3YXliZwogICAgICAgICAgICAgICAgICB3YXlsYW5kCiAg ICAgICAgICAgICAgICAgIHdscm9vdHMpKQogICAgKG5hdGl2ZS1pbnB1dHMKICAgICAoY29ucyog bGludXgtcGFtIG1lc2EgcGtnLWNvbmZpZyBzY2RvYyB3YXlsYW5kLXByb3RvY29scwogICAgICAg ICAgICAoaWYgKCVjdXJyZW50LXRhcmdldC1zeXN0ZW0pCiAgICAgICAgICAgICAgKGxpc3QgcGtn LWNvbmZpZy1mb3ItYnVpbGQKICAgICAgICAgICAgICAgICAgICB3YXlsYW5kKQogICAgICAgICAg ICAgICcoKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3N3YXl3bS9zd2F5 IikKICAgIChzeW5vcHNpcyAiV2F5bGFuZCBjb21wb3NpdG9yIGNvbXBhdGlibGUgd2l0aCBpMyIp CiAgICAoZGVzY3JpcHRpb24gIlN3YXkgaXMgYSBpMy1jb21wYXRpYmxlIFdheWxhbmQgY29tcG9z aXRvci4iKQogICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQoKKGRlZmluZS1wdWJsaWMgc3dh eWZ4CiAgKHBhY2thZ2UKICAgIChpbmhlcml0IHN3YXkpCiAgICAobmFtZSAic3dheWZ4IikKICAg ICh2ZXJzaW9uICIwLjMuMiIpCiAgICAoc291cmNlIChvcmlnaW4KICAgICAgICAgICAgICAobWV0 aG9kIGdpdC1mZXRjaCkKICAgICAgICAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCiAgICAgICAg ICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL1dpbGxQb3dlcjMzMDkvc3dheWZ4 IikKICAgICAgICAgICAgICAgICAgICAoY29tbWl0IHZlcnNpb24pKSkKICAgICAgICAgICAgICAo ZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpCiAgICAgICAgICAgICAgKHNo YTI1NgogICAgICAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICAgICAiMTNkOGljZDQ1ajkz N2pna2lkcjdjeWp5czRubnZ4aDRpbHA3bWwwaTJtbDM5aXB2MDFxdiIpKSkpCiAgICAoYnVpbGQt c3lzdGVtIG1lc29uLWJ1aWxkLXN5c3RlbSkKICAgIChpbnB1dHMgKGxpc3QgYmFzdQogICAgICAg ICAgICAgICAgICBjYWlybwogICAgICAgICAgICAgICAgICBnZGstcGl4YnVmCiAgICAgICAgICAg ICAgICAgIGpzb24tYwogICAgICAgICAgICAgICAgICBsaWJldmRldgogICAgICAgICAgICAgICAg ICBsaWJpbnB1dC1taW5pbWFsCiAgICAgICAgICAgICAgICAgIGxpYnhrYmNvbW1vbgogICAgICAg ICAgICAgICAgICBwYW5nbwogICAgICAgICAgICAgICAgICBwY3JlMgogICAgICAgICAgICAgICAg ICBzd2F5YmcKICAgICAgICAgICAgICAgICAgd2F5bGFuZAogICAgICAgICAgICAgICAgICB3bHJv b3RzLTAuMTYpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL1dpbGxQb3dlcjMz MDkvc3dheWZ4IikKICAgIChzeW5vcHNpcyAiU3dheSBGb3JrIHdpdGggZXh0cmEgb3B0aW9ucyBh bmQgZWZmZWN0cyIpCiAgICAoZGVzY3JpcHRpb24KICAgICAiRm9yayBvZiBTd2F5LCBhIFdheWxh bmQgY29tcG9zaXRvciBjb21wYXRpYmxlIHdpdGggaTMuICBTd2F5RlgKYWRkcyBleHRyYSBvcHRp b25zIGFuZCBlZmZlY3RzIHRvIHRoZSBvcmlnaW5hbCBTd2F5LCBzdWNoIGFzIGJsdXIsIHJvdW5k ZWQKY29ybmVycywgc2hhZG93cywgaW5hY3RpdmUgd2luZG93IGRpbW1pbmcsIGV0Yy4iKQogICAg KGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQoKKGRlZmluZS1wdWJsaWMgc3dheWlkbGUKICAocGFj a2FnZQogICAgKG5hbWUgInN3YXlpZGxlIikKICAgICh2ZXJzaW9uICIxLjguMCIpCiAgICAoc291 cmNlCiAgICAgKG9yaWdpbgogICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCiAgICAgICAodXJpIChn aXQtcmVmZXJlbmNlCiAgICAgICAgICAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vc3dheXdt L3N3YXlpZGxlIikKICAgICAgICAgICAgIChjb21taXQgdmVyc2lvbikpKQogICAgICAgKGZpbGUt bmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKQogICAgICAgKHNoYTI1NgogICAgICAg IChiYXNlMzIgIjB5MHFkcXp4OTBrdms2bDgwZGFybGR2aXpyN3A1ZzY1Ym5ibGh4bHE1YTJyZ3Zz OWhrcHgiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBtZXNvbi1idWlsZC1zeXN0ZW0pCiAgICAoYXJn dW1lbnRzCiAgICAgYCgjOmNvbmZpZ3VyZS1mbGFncyAnKCItRGxvZ2luZC1wcm92aWRlcj1lbG9n aW5kIikpKQogICAgKGlucHV0cyAobGlzdCBlbG9naW5kIHdheWxhbmQpKQogICAgKG5hdGl2ZS1p bnB1dHMgKGxpc3QgcGtnLWNvbmZpZyBzY2RvYyB3YXlsYW5kLXByb3RvY29scykpCiAgICAoaG9t ZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vc3dheXdtL3N3YXlpZGxlIikKICAgIChzeW5vcHNp cyAiSWRsZSBtYW5hZ2VtZW50IGRhZW1vbiBmb3IgV2F5bGFuZCBjb21wb3NpdG9ycyIpCiAgICAo ZGVzY3JpcHRpb24gIlN3YXlpZGxlIGlzIGEgaWRsZSBtYW5hZ2VtZW50IGRhZW1vbiBmb3IgV2F5 bGFuZCBjb21wb3NpdG9ycy4iKQogICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKSA7IE1JVCBs aWNlbnNlCgooZGVmaW5lLXB1YmxpYyBzd2F5bG9jawogIChwYWNrYWdlCiAgICAobmFtZSAic3dh eWxvY2siKQogICAgKHZlcnNpb24gIjEuNy4yIikKICAgIChzb3VyY2UKICAgICAob3JpZ2luCiAg ICAgICAobWV0aG9kIGdpdC1mZXRjaCkKICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKICAgICAg ICAgICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9zd2F5d20vc3dheWxvY2siKQogICAgICAg ICAgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKICAgICAgIChmaWxl LW5hbWUgKGdpdC1maWxlLW5hbWUgbmFtZSB2ZXJzaW9uKSkKICAgICAgIChzaGEyNTYKICAgICAg ICAoYmFzZTMyICIwM2pyandsd3hrY3lkNm05YTFiYndhcGFzbno3Yjdhd3M3aDB5NmppZ2ptNG00 NzhwaHY2IikpKSkKICAgIChidWlsZC1zeXN0ZW0gbWVzb24tYnVpbGQtc3lzdGVtKQogICAgKGlu cHV0cyAoYXBwZW5kIChpZiAoJWN1cnJlbnQtdGFyZ2V0LXN5c3RlbSkKICAgICAgICAgICAgICAg ICAgICAgICAgKGxpc3Qgd2F5bGFuZC1wcm90b2NvbHMpCiAgICAgICAgICAgICAgICAgICAgICAg ICcoKSkKICAgICAgICAgICAgICAgICAgICAobGlzdCBjYWlybyBnZGstcGl4YnVmIGxpYnhrYmNv bW1vbiBsaW51eC1wYW0gd2F5bGFuZCkpKQogICAgKG5hdGl2ZS1pbnB1dHMgKGFwcGVuZCAoaWYg KCVjdXJyZW50LXRhcmdldC1zeXN0ZW0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bGlzdCBwa2ctY29uZmlnLWZvci1idWlsZCB3YXlsYW5kKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJygpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCBwYW5nbyBwa2ct Y29uZmlnIHNjZG9jIHdheWxhbmQtcHJvdG9jb2xzKSkpCiAgICAoaG9tZS1wYWdlICJodHRwczov L2dpdGh1Yi5jb20vc3dheXdtL3N3YXlsb2NrIikKICAgIChzeW5vcHNpcyAiU2NyZWVuIGxvY2tp bmcgdXRpbGl0eSBmb3IgV2F5bGFuZCBjb21wb3NpdG9ycyIpCiAgICAoZGVzY3JpcHRpb24gIlN3 YXlsb2NrIGlzIGEgc2NyZWVuIGxvY2tpbmcgdXRpbGl0eSBmb3IgV2F5bGFuZCBjb21wb3NpdG9y cy4iKQogICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKSA7IE1JVCBsaWNlbnNlCgooZGVmaW5l LXB1YmxpYyBzd2F5bG9jay1lZmZlY3RzCiAgKHBhY2thZ2UKICAgIChpbmhlcml0IHN3YXlsb2Nr KQogICAgKG5hbWUgInN3YXlsb2NrLWVmZmVjdHMiKQogICAgKHZlcnNpb24gIjEuNy4wLjAiKQog ICAgKHNvdXJjZQogICAgIChvcmlnaW4KICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQogICAgICAg KHVyaSAoZ2l0LXJlZmVyZW5jZQogICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29t L2ppcnV0a2Evc3dheWxvY2stZWZmZWN0cyIpCiAgICAgICAgICAgICAoY29tbWl0IChzdHJpbmct YXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQogICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBu YW1lIHZlcnNpb24pKQogICAgICAgKHNoYTI1NgogICAgICAgIChiYXNlMzIKICAgICAgICAgIjBj Z3BiemRweGo2YmJwYThqd3FsMXNuZ2hqMjFtaHJ5eXZqNnNrNDZnNjZscXZ3bHJxYmoiKSkpKQog ICAgKGFyZ3VtZW50cwogICAgIChsaXN0ICM6Y29uZmlndXJlLWZsYWdzICN+JygiLURzc2U9ZmFs c2UiKSkpCiAgICAoc3lub3BzaXMgIlNjcmVlbiBsb2NraW5nIHV0aWxpdHkgZm9yIFdheWxhbmQg Y29tcG9zaXRvcnMgd2l0aCBlZmZlY3RzIikKICAgIChkZXNjcmlwdGlvbiAiQGNvZGV7U3dheWxv Y2stZWZmZWN0c30gaXMgYSBmb3JrIG9mIHN3YXlsb2NrIHdpdGggYWRkaXRpb25hbApmZWF0dXJl cywgc3VjaCBhcyB0aGUgYWJpbGl0eSB0byB0YWtlIGEgc2NyZWVuc2hvdCBhcyB0aGUgYmFja2dy b3VuZCBpbWFnZSwKZGlzcGxheSBhIGNsb2NrIG9yIGFwcGx5IGltYWdlIG1hbmlwdWxhdGlvbiB0 ZWNobmlxdWVzIHRvIHRoZSBiYWNrZ3JvdW5kIGltYWdlLiIpCiAgICAoaG9tZS1wYWdlICJodHRw czovL2dpdGh1Yi5jb20vamlydXRrYS9zd2F5bG9jay1lZmZlY3RzIikpKQoKKGRlZmluZS1wdWJs aWMgc3dheWJnCiAgKHBhY2thZ2UKICAgIChuYW1lICJzd2F5YmciKQogICAgKHZlcnNpb24gIjEu MCIpCiAgICAoc291cmNlCiAgICAgKG9yaWdpbgogICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCiAg ICAgICAodXJpIChnaXQtcmVmZXJlbmNlCiAgICAgICAgICAgICAodXJsICJodHRwczovL2dpdGh1 Yi5jb20vc3dheXdtL3N3YXliZyIpCiAgICAgICAgICAgICAoY29tbWl0IHZlcnNpb24pKSkKICAg ICAgIChmaWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgbmFtZSB2ZXJzaW9uKSkKICAgICAgIChzaGEy NTYKICAgICAgICAoYmFzZTMyICIxbG1xejVibWlnOTBncTJtN2x3ZjAyZDJnN3o0aHpmOGZocXo3 OGM4dms5MmM2cDR4d2JjIikpKSkKICAgIChidWlsZC1zeXN0ZW0gbWVzb24tYnVpbGQtc3lzdGVt KQogICAgKGlucHV0cwogICAgIChjb25zKiBjYWlybyBnZGstcGl4YnVmIHdheWxhbmQKICAgICAg ICAgICAgKGlmICglY3VycmVudC10YXJnZXQtc3lzdGVtKQogICAgICAgICAgICAgIChsaXN0IHdh eWxhbmQtcHJvdG9jb2xzKQogICAgICAgICAgICAgICcoKSkpKQogICAgKG5hdGl2ZS1pbnB1dHMK ICAgICAoY29ucyogcGtnLWNvbmZpZyBzY2RvYyB3YXlsYW5kLXByb3RvY29scwogICAgICAgICAg ICAoaWYgKCVjdXJyZW50LXRhcmdldC1zeXN0ZW0pCiAgICAgICAgICAgICAgKGxpc3QgcGtnLWNv bmZpZy1mb3ItYnVpbGQgd2F5bGFuZCkKICAgICAgICAgICAgICAnKCkpKSkKICAgIChob21lLXBh Z2UgImh0dHBzOi8vZ2l0aHViLmNvbS9zd2F5d20vc3dheSIpCiAgICAoc3lub3BzaXMgIlNjcmVl biB3YWxscGFwZXIgdXRpbGl0eSBmb3IgV2F5bGFuZCBjb21wb3NpdG9ycyIpCiAgICAoZGVzY3Jp cHRpb24gIlN3YXliZyBpcyBhIHdhbGxwYXBlciB1dGlsaXR5IGZvciBXYXlsYW5kIGNvbXBvc2l0 b3JzLiIpCiAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpIDsgTUlUIGxpY2Vuc2UKCihkZWZp bmUtcHVibGljIHN3d3cKICAocGFja2FnZQogICAgKG5hbWUgInN3d3ciKQogICAgKHZlcnNpb24g IjAuOC4yIikKICAgIChzb3VyY2UgKG9yaWdpbgogICAgICAgICAgICAgICAgKG1ldGhvZCBnaXQt ZmV0Y2gpCiAgICAgICAgICAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCiAgICAgICAgICAgICAg ICAgICAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vTEdGYWUvc3d3dyIpCiAgICAgICAgICAg ICAgICAgICAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQogICAgICAg ICAgICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKQogICAgICAg ICAgICAgICAgKHNoYTI1NgogICAgICAgICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgICAg ICAgIjFwczEwZHY2YThhMGhpdzdwOGtnNjRtZjgxcHZhdnNrbXluNXhwYmZ3NmhyYzk5MXZkbHoi KSkKICAgICAgICAgICAgICAgIChtb2R1bGVzICcoKGd1aXggYnVpbGQgdXRpbHMpKSkKICAgICAg ICAgICAgICAgIChzbmlwcGV0CiAgICAgICAgICAgICAgICAgJyhiZWdpbiAoc3Vic3RpdHV0ZSog InV0aWxzL0NhcmdvLnRvbWwiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgoIlwiPShbWzpk aWdpdDpdXSsoXFwuW1s6ZGlnaXQ6XV0rKSopIiBfIHZlcnNpb24pCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAiXCJeIiB2ZXJzaW9uKSkpKSkpKQogICAgKGJ1aWxk LXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgKGxpc3QKICAg ICAgIzppbnN0YWxsLXNvdXJjZT8gI2YKICAgICAgIzpjYXJnby1pbnB1dHMKICAgICAgYCgoInJ1 c3QtbG9nIiAscnVzdC1sb2ctMC40KQogICAgICAgICgicnVzdC1zaW1wbGVsb2ciICxydXN0LXNp bXBsZWxvZy0wLjEyKQogICAgICAgICgicnVzdC13YXlsYW5kLWNsaWVudCIgLHJ1c3Qtd2F5bGFu ZC1jbGllbnQtMC4zMSkKICAgICAgICAoInJ1c3Qtc21pdGhheS1jbGllbnQtdG9vbGtpdCIgLHJ1 c3Qtc21pdGhheS1jbGllbnQtdG9vbGtpdC0wLjE4KQogICAgICAgICgicnVzdC1uaXgiICxydXN0 LW5peC0wLjI3KQogICAgICAgICgicnVzdC1rZXlmcmFtZSIgLHJ1c3Qta2V5ZnJhbWUtMSkKICAg ICAgICAoInJ1c3Qtcmt5diIgLHJ1c3Qtcmt5di0wLjcpCiAgICAgICAgKCJydXN0LXJheW9uIiAs cnVzdC1yYXlvbi0xKQogICAgICAgICgicnVzdC1zcGluLXNsZWVwIiAscnVzdC1zcGluLXNsZWVw LTEpCiAgICAgICAgKCJydXN0LXNkLW5vdGlmeSIgLHJ1c3Qtc2Qtbm90aWZ5LTAuNCkKICAgICAg ICAoInJ1c3QtaW1hZ2UiICxydXN0LWltYWdlLTAuMjQpCiAgICAgICAgKCJydXN0LWZhc3QtaW1h Z2UtcmVzaXplIiAscnVzdC1mYXN0LWltYWdlLXJlc2l6ZS0yKQogICAgICAgICgicnVzdC1jbGFw IiAscnVzdC1jbGFwLTQpCiAgICAgICAgKCJydXN0LXJhbmQiICxydXN0LXJhbmQtMC44KQogICAg ICAgICgicnVzdC1sYXp5LXN0YXRpYyIgLHJ1c3QtbGF6eS1zdGF0aWMtMSkKICAgICAgICAoInJ1 c3QtbHp6enoiICxydXN0LWx6enp6LTEpKQogICAgICAjOmNhcmdvLWRldmVsb3BtZW50LWlucHV0 cwogICAgICBgKCgicnVzdC1yYW5kIiAscnVzdC1yYW5kLTAuOCkKICAgICAgICAoInJ1c3QtYXNz ZXJ0LWNtZCIgLHJ1c3QtYXNzZXJ0LWNtZC0yKQogICAgICAgICgicnVzdC1jcml0ZXJpb24iICxy dXN0LWNyaXRlcmlvbi0wLjUpKQogICAgICAjOnBoYXNlcwogICAgICAjfihtb2RpZnktcGhhc2Vz ICVzdGFuZGFyZC1waGFzZXMKICAgICAgICAgIChhZGQtYmVmb3JlICdidWlsZCAnYnVpbGQtZG9j dW1lbnRhdGlvbgogICAgICAgICAgICAobGFtYmRhKiAoIzprZXkgaW5wdXRzICM6YWxsb3ctb3Ro ZXIta2V5cykKICAgICAgICAgICAgICAoaW52b2tlICJkb2MvZ2VuLnNoIikpKQogICAgICAgICAg KHJlcGxhY2UgJ2luc3RhbGwKICAgICAgICAgICAgKGxhbWJkYSogKCM6a2V5IG91dHB1dHMgIzph bGxvdy1vdGhlci1rZXlzKQogICAgICAgICAgICAgIChsZXQqICgob3V0IChhc3NvYy1yZWYgb3V0 cHV0cyAib3V0IikpCiAgICAgICAgICAgICAgICAgICAgIChiaW4gKHN0cmluZy1hcHBlbmQgb3V0 ICIvYmluIikpCiAgICAgICAgICAgICAgICAgICAgIChzaGFyZSAoc3RyaW5nLWFwcGVuZCBvdXQg Ii9zaGFyZSIpKQogICAgICAgICAgICAgICAgICAgICAobWFuMSAoc3RyaW5nLWFwcGVuZCBzaGFy ZSAiL21hbi9tYW4xIikpCiAgICAgICAgICAgICAgICAgICAgIChzd3d3IChjYXIgKGZpbmQtZmls ZXMgInRhcmdldCIgIl5zd3d3JCIpKSkKICAgICAgICAgICAgICAgICAgICAgKHN3d3ctZGFlbW9u IChjYXIgKGZpbmQtZmlsZXMgInRhcmdldCIgIl5zd3d3LWRhZW1vbiQiKSkpCiAgICAgICAgICAg ICAgICAgICAgIChiYXNoLWNvbXBsZXRpb25zLWRpcgogICAgICAgICAgICAgICAgICAgICAgKHN0 cmluZy1hcHBlbmQgc2hhcmUgIi9iYXNoLWNvbXBsZXRpb24vY29tcGxldGlvbnMiKSkKICAgICAg ICAgICAgICAgICAgICAgKHpzaC1jb21wbGV0aW9ucy1kaXIKICAgICAgICAgICAgICAgICAgICAg IChzdHJpbmctYXBwZW5kIHNoYXJlICIvenNoL3NpdGUtZnVuY3Rpb25zIikpCiAgICAgICAgICAg ICAgICAgICAgIChmaXNoLWNvbXBsZXRpb25zLWRpcgogICAgICAgICAgICAgICAgICAgICAgKHN0 cmluZy1hcHBlbmQgc2hhcmUgIi9maXNoL3ZlbmRvcl9jb21wbGV0aW9ucy5kIikpCiAgICAgICAg ICAgICAgICAgICAgIChlbHZpc2gtY29tcGxldGlvbnMtZGlyCiAgICAgICAgICAgICAgICAgICAg ICAoc3RyaW5nLWFwcGVuZCBzaGFyZSAiL2VsdmlzaC9saWIiKSkpCiAgICAgICAgICAgICAgICAo aW5zdGFsbC1maWxlIHN3d3cgYmluKQogICAgICAgICAgICAgICAgKGluc3RhbGwtZmlsZSBzd3d3 LWRhZW1vbiBiaW4pCiAgICAgICAgICAgICAgICAoY29weS1yZWN1cnNpdmVseSAiZG9jL2dlbmVy YXRlZCIgbWFuMSkKICAgICAgICAgICAgICAgIChpbnN0YWxsLWZpbGUgImNvbXBsZXRpb25zL3N3 d3cuYmFzaCIgYmFzaC1jb21wbGV0aW9ucy1kaXIpCiAgICAgICAgICAgICAgICAoaW5zdGFsbC1m aWxlICJjb21wbGV0aW9ucy9fc3d3dyIgenNoLWNvbXBsZXRpb25zLWRpcikKICAgICAgICAgICAg ICAgIChpbnN0YWxsLWZpbGUgImNvbXBsZXRpb25zL3N3d3cuZmlzaCIgZmlzaC1jb21wbGV0aW9u cy1kaXIpCiAgICAgICAgICAgICAgICAoaW5zdGFsbC1maWxlICJjb21wbGV0aW9ucy9zd3d3LmVs diIgZWx2aXNoLWNvbXBsZXRpb25zLWRpcikpKSkKICAgICAgICAgIChhZGQtYWZ0ZXIgJ2luc3Rh bGwgJ3dyYXAtYmluYXJpZXMKICAgICAgICAgICAobGFtYmRhKiAoIzprZXkgb3V0cHV0cyBpbnB1 dHMgIzphbGxvdy1vdGhlci1rZXlzKQogICAgICAgICAgICAgKGxldCAoKG91dCAoYXNzb2MtcmVm IG91dHB1dHMgIm91dCIpKQogICAgICAgICAgICAgICAgICAgKGx6NCAoYXNzb2MtcmVmIGlucHV0 cyAibHo0IikpKQogICAgICAgICAgICAgICAod3JhcC1wcm9ncmFtIChzdHJpbmctYXBwZW5kIG91 dCAiL2Jpbi9zd3d3IikKICAgICAgICAgICAgICAgICBgKCJQQVRIIiBwcmVmaXggKCwoc3RyaW5n LWFwcGVuZCBsejQgIi9iaW4iKSkpKQogICAgICAgICAgICAgICAod3JhcC1wcm9ncmFtIChzdHJp bmctYXBwZW5kIG91dCAiL2Jpbi9zd3d3LWRhZW1vbiIpCiAgICAgICAgICAgICAgICAgYCgiUEFU SCIgcHJlZml4ICgsKHN0cmluZy1hcHBlbmQgbHo0ICIvYmluIikpKSkpKSkpKSkKICAgIChuYXRp dmUtaW5wdXRzIChsaXN0IHNjZG9jKSkKICAgIChpbnB1dHMgKGxpc3QgYmFzaC1taW5pbWFsIGx6 NCkpCiAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vTEdGYWUvc3d3dyIpCiAgICAo c3lub3BzaXMKICAgICAiRWZmaWNpZW50IGFuaW1hdGVkIHdhbGxwYXBlciBkYWVtb24gZm9yIHdh eWxhbmQgY29udHJvbGxlZCBhdCBydW50aW1lIikKICAgIChkZXNjcmlwdGlvbgogICAgICJBIFNv bHV0aW9uIHRvIHlvdXIgV2F5bGFuZCBXYWxscGFwZXIgV29lcyAoc3d3dykuICBJdCB1c2VzIG1p bmltYWwgcmVzb3VyY2VzCmFuZCBwcm92aWRlcyBhbmltYXRpb25zIGZvciBzd2l0Y2hpbmcgYmV0 d2VlbiBiYWNrZ3JvdW5kcy4iKQogICAgKGxpY2Vuc2UgbGljZW5zZTpncGwzKykpKQoKKGRlZmlu ZS1wdWJsaWMgc3dheW5vdGlmaWNhdGlvbmNlbnRlcgogIChwYWNrYWdlCiAgICAobmFtZSAic3dh eW5vdGlmaWNhdGlvbmNlbnRlciIpCiAgICAodmVyc2lvbiAiMC44LjAiKQogICAgKHNvdXJjZSAo b3JpZ2luCiAgICAgICAgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCiAgICAgICAgICAgICAgKHVy aSAoZ2l0LXJlZmVyZW5jZQogICAgICAgICAgICAgICAgICAgICh1cmwgImh0dHBzOi8vZ2l0aHVi LmNvbS9FcmlrUmVpZGVyL1N3YXlOb3RpZmljYXRpb25DZW50ZXIiKQogICAgICAgICAgICAgICAg ICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCiAgICAgICAgICAgICAg KGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKQogICAgICAgICAgICAgIChz aGEyNTYKICAgICAgICAgICAgICAgKGJhc2UzMiAiMWMzZ2Q2bWxyMjA5anp6cmg1am13czJsYXdu bjNncjZzbXZ6Y3c3NGtrcGkzd3ZzN2wwayIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIG1lc29uLWJ1 aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMgKGxpc3QgIzpjb25maWd1cmUtZmxhZ3MgI34obGlz dCAiLURzeXN0ZW1kLXNlcnZpY2U9ZmFsc2UiKSkpCiAgICAobmF0aXZlLWlucHV0cwogICAgIChs aXN0IGAoLGdsaWIgImJpbiIpCiAgICAgICAgICAgZ29iamVjdC1pbnRyb3NwZWN0aW9uCiAgICAg ICAgICAgcGtnLWNvbmZpZwogICAgICAgICAgIHB5dGhvbi1taW5pbWFsCiAgICAgICAgICAgc2Nk b2MKICAgICAgICAgICB2YWxhKSkKICAgIChpbnB1dHMKICAgICAobGlzdCBqc29uLWdsaWIKICAg ICAgICAgICBnbGliCiAgICAgICAgICAgZ3RrKwogICAgICAgICAgIGd0ay1sYXllci1zaGVsbAog ICAgICAgICAgIGxpYmhhbmR5CiAgICAgICAgICAgbGliZ2VlCiAgICAgICAgICAgcHVsc2VhdWRp bwogICAgICAgICAgIHdheWxhbmQtcHJvdG9jb2xzKSkKICAgIChzeW5vcHNpcyAiTm90aWZpY2F0 aW9uIGRhZW1vbiB3aXRoIGEgZ3JhcGhpY2FsIGludGVyZmFjZSIpCiAgICAoZGVzY3JpcHRpb24K ICAgICAiVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGEgbm90aWZpY2F0aW9uIGRhZW1vbiBmb3IgdGhl IFN3YXkgV2F5bGFuZApjb21wb3NpdG9yeSwgc3VwcG9ydGluZyB0aGUgZm9sbG93aW5nIGZlYXR1 ZXJzOgoKQGl0ZW1pemUKQGl0ZW0gS2V5Ym9hcmQgc2hvcnRjdXRzCkBpdGVtIE5vdGlmaWNhdGlv biBib2R5IG1hcmt1cCB3aXRoIGltYWdlIHN1cHBvcnQKQGl0ZW0gQSBwYW5lbCB0byB2aWV3IHBy ZXZpb3VzIG5vdGlmaWNhdGlvbnMKQGl0ZW0gU2hvdyBhbGJ1bSBhcnQgZm9yIG5vdGlmaWNhdGlv bnMgbGlrZSBTcG90aWZ5CkBpdGVtIERvIG5vdCBkaXN0dXJiCkBpdGVtIENsaWNrIG5vdGlmaWNh dGlvbiB0byBleGVjdXRlIGRlZmF1bHQgYWN0aW9uCkBpdGVtIFNob3cgYWx0ZXJuYXRpdmUgbm90 aWZpY2F0aW9uIGFjdGlvbnMKQGl0ZW0gQ3VzdG9taXphdGlvbiB0aHJvdWdoIGEgQ1NTIGZpbGUK QGl0ZW0gVHJhY2twYWQvbW91c2UgZ2VzdHVyZSB0byBjbG9zZSBub3RpZmljYXRpb24KQGl0ZW0g VGhlIHNhbWUgZmVhdHVyZXMgYXMgYW55IG90aGVyIGJhc2ljIG5vdGlmaWNhdGlvbiBkYWVtb24K QGl0ZW0gQmFzaWMgY29uZmlndXJhdGlvbiB0aHJvdWdoIGEgSlNPTiBjb25maWcgZmlsZQpAaXRl bSBIb3QtcmVsb2FkIGNvbmZpZyB0aHJvdWdoIHN3YXluYy1jbGllbnQKQGVuZCBpdGVtaXplIikK ICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9FcmlrUmVpZGVyL1N3YXlOb3RpZmlj YXRpb25DZW50ZXIiKQogICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQoKKGRlZmluZS1wdWJs aWMgd2F5YmFyCiAgKHBhY2thZ2UKICAgIChuYW1lICJ3YXliYXIiKQogICAgKHZlcnNpb24gIjAu MTAuMiIpCiAgICAoc291cmNlCiAgICAgKG9yaWdpbgogICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gp CiAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCiAgICAgICAgICAgICAodXJsICJodHRwczovL2dp dGh1Yi5jb20vQWxleGF5cy9XYXliYXIiKQogICAgICAgICAgICAgKGNvbW1pdCB2ZXJzaW9uKSkp CiAgICAgICAoZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpCiAgICAgICAo c2hhMjU2CiAgICAgICAgKGJhc2UzMiAiMGg4YW5temhiaW1nZGpuYmc3OWFsMzJkNWFjYmZ5cmgz c2Y4d2NzYngxMjk2cXBkNmFmNiIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIG1lc29uLWJ1aWxkLXN5 c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAobGlzdCAjOmNvbmZpZ3VyZS1mbGFncyAjfihsaXN0 ICItLXdyYXAtbW9kZT1ub2Rvd25sb2FkIikpKQogICAgKGlucHV0cyAobGlzdCBkYXRlCiAgICAg ICAgICAgICAgICAgIGZtdAogICAgICAgICAgICAgICAgICBndGstbGF5ZXItc2hlbGwKICAgICAg ICAgICAgICAgICAgZ3RrbW0tMwogICAgICAgICAgICAgICAgICBqc29uY3BwCiAgICAgICAgICAg ICAgICAgIGxpYmRidXNtZW51CiAgICAgICAgICAgICAgICAgIGxpYmV2ZGV2CiAgICAgICAgICAg ICAgICAgIGxpYmlucHV0LW1pbmltYWwKICAgICAgICAgICAgICAgICAgbGlibXBkY2xpZW50CiAg ICAgICAgICAgICAgICAgIGxpYm5sCiAgICAgICAgICAgICAgICAgIGxpYnhtbDIKICAgICAgICAg ICAgICAgICAgcGlwZXdpcmUKICAgICAgICAgICAgICAgICAgcGxheWVyY3RsCiAgICAgICAgICAg ICAgICAgIHB1bHNlYXVkaW8KICAgICAgICAgICAgICAgICAgc3BkbG9nCiAgICAgICAgICAgICAg ICAgIHdheWxhbmQKICAgICAgICAgICAgICAgICAgd2lyZXBsdW1iZXIpKQogICAgKG5hdGl2ZS1p bnB1dHMKICAgICAobGlzdCBgKCxnbGliICJiaW4iKSBwa2ctY29uZmlnIHNjZG9jIHdheWxhbmQt cHJvdG9jb2xzKSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9BbGV4YXlzL1dh eWJhciIpCiAgICAoc3lub3BzaXMgIldheWxhbmQgYmFyIGZvciBTd2F5IGFuZCBXbHJvb3RzIGJh c2VkIGNvbXBvc2l0b3JzIikKICAgIChkZXNjcmlwdGlvbiAiV2F5YmFyIGlzIGEgaGlnaGx5IGN1 c3RvbWlzYWJsZSBXYXlsYW5kIGJhciBmb3IgU3dheSBhbmQKV2xyb290cyBiYXNlZCBjb21wb3Np dG9ycy4iKQogICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKSA7IE1JVCBsaWNlbnNlCgooZGVm aW5lLXB1YmxpYyB3YXliYXItY3B1LWhpc3RvZ3JhbQogIChwYWNrYWdlCiAgICAobmFtZSAid2F5 YmFyLWNwdS1oaXN0b2dyYW0iKQogICAgKHZlcnNpb24gIjAuNC4yIikKICAgIChzb3VyY2UKICAg ICAob3JpZ2luCiAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKICAgICAgICh1cmkgKGdpdC1yZWZl cmVuY2UKICAgICAgICAgICAgICh1cmwgImh0dHBzOi8vZ2l0LnNyLmh0L35wbGF0dGZvdC93YXli YXItY3B1LWhpc3RvZ3JhbSIpCiAgICAgICAgICAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kIHZl cnNpb24pKSkpCiAgICAgICAoc2hhMjU2CiAgICAgICAgKGJhc2UzMgogICAgICAgICAiMDAxcHlm MWpkbWYyNDc4cGxuZ2dkN2RrZmk2ODhxd2k4OWRiMmp3ZnA0enphMzY0MG5hNiIpKQogICAgICAg KGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKSkpCiAgICAoYnVpbGQtc3lz dGVtIG1lc29uLWJ1aWxkLXN5c3RlbSkKICAgIChuYXRpdmUtaW5wdXRzCiAgICAgKGxpc3QgcGtn LWNvbmZpZykpCiAgICAoaW5wdXRzCiAgICAgKGxpc3QganNvbmNwcAogICAgICAgICAgIGZtdCkp CiAgICAoc3lub3BzaXMgIkNQVSBoaXN0b2dyYW0gZm9yIHdheWJhciIpCiAgICAoZGVzY3JpcHRp b24KICAgICAiQ3VzdG9tIG1vZHVsZSBmb3Igd2F5YmFyIHRvIHNob3cgQ1BVIHVzYWdlIGFzIGEg aGlzdG9ncmFtLiAgQSBjb21wYWN0IHdheQp0byBzZWUgaG93IG1hbnkgY29yZXMgYXJlIGFjdGl2 ZSwgY29tcGFyZWQgdG8gaGF2aW5nIGEgYmFyIGZvciBlYWNoCmNvcmUvdGhyZWFkLiIpCiAgICAo aG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vcGxhdHRmb3QvY3B1LWhpc3RvZ3JhbS8iKQog ICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQoKKGRlZmluZS1wdWJsaWMgd2F5YmFyLWV4cGVy aW1lbnRhbAogIChsZXQgKChiYXNlIHdheWJhcikpCiAgICAocGFja2FnZS9pbmhlcml0IGJhc2UK ICAgICAgKG5hbWUgIndheWJhci1leHBlcmltZW50YWwiKQogICAgICAoYXJndW1lbnRzCiAgICAg ICAoc3Vic3RpdHV0ZS1rZXl3b3JkLWFyZ3VtZW50cyAocGFja2FnZS1hcmd1bWVudHMgYmFzZSkK ICAgICAgICAgKCgjOmNvbmZpZ3VyZS1mbGFncyBmbGFncyAnKCkpCiAgICAgICAgICAjfihjb25z ICItRGV4cGVyaW1lbnRhbD10cnVlIgogICAgICAgICAgICAgICAgICAjJGZsYWdzKSkpKQogICAg ICAoc3lub3BzaXMgIldheWJhciB3aXRoIGV4cGVyaW1lbnRhbCBmZWF0dXJlcyIpKSkpCgooZGVm aW5lLXB1YmxpYyB3bHItcmFuZHIKICAocGFja2FnZQogICAgKG5hbWUgIndsci1yYW5kciIpCiAg ICAodmVyc2lvbiAiMC40LjEiKQogICAgKHNvdXJjZQogICAgIChvcmlnaW4KICAgICAgIChtZXRo b2QgZ2l0LWZldGNoKQogICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQogICAgICAgICAgICAgKHVy bCAiaHR0cHM6Ly9naXQuc3IuaHQvfmVtZXJzaW9uL3dsci1yYW5kciIpCiAgICAgICAgICAgICAo Y29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQogICAgICAgKGZpbGUtbmFtZSAo Z2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKQogICAgICAgKHNoYTI1NgogICAgICAgIChiYXNl MzIgIjFrbDVhd3djbG1sZmN4ZnowanA4Z3pwZzJ2ZmZzbDljaGZpbHlzZnN2MW1xMTFhOTZpZnMi KSkpKQogICAgKGJ1aWxkLXN5c3RlbSBtZXNvbi1idWlsZC1zeXN0ZW0pCiAgICAoaW5wdXRzIChs aXN0IHdheWxhbmQpKQogICAgKG5hdGl2ZS1pbnB1dHMgKGxpc3QgcGtnLWNvbmZpZykpCiAgICAo aG9tZS1wYWdlICJodHRwczovL3NyLmh0L35lbWVyc2lvbi93bHItcmFuZHIiKQogICAgKHN5bm9w c2lzICJVdGlsaXR5IHRvIG1hbmFnZSBXYXlsYW5kIGNvbXBvc2l0b3Igb3V0cHV0cyIpCiAgICAo ZGVzY3JpcHRpb24gIndsci1yYW5kciBpcyBhIHV0aWxpdHkgdG8gbWFuYWdlIG91dHB1dHMgb2Yg YSBXYXlsYW5kIGNvbXBvc2l0b3IuIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkgOyBN SVQgbGljZW5zZQoKKGRlZmluZS1wdWJsaWMgbWFrbwogIChwYWNrYWdlCiAgICAobmFtZSAibWFr byIpCiAgICAodmVyc2lvbiAiMS44LjAiKQogICAgKHNvdXJjZSAob3JpZ2luCiAgICAgICAgICAg ICAgKG1ldGhvZCBnaXQtZmV0Y2gpCiAgICAgICAgICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQog ICAgICAgICAgICAgICAgICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9lbWVyc2lvbi9tYWtv IikKICAgICAgICAgICAgICAgICAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9u KSkpKQogICAgICAgICAgICAgIChmaWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgbmFtZSB2ZXJzaW9u KSkKICAgICAgICAgICAgICAoc2hhMjU2CiAgICAgICAgICAgICAgIChiYXNlMzIKICAgICAgICAg ICAgICAgICIwNWcxZ3A2MXFkOW45dzRscTkyNWk0d2dyeWFndmFoNng0ODlnMTdqN3JudzU5cTRx aGRpIikpKSkKICAgIChidWlsZC1zeXN0ZW0gbWVzb24tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3Vt ZW50cwogICAgIChsaXN0ICM6cGhhc2VzCiAgICAgICAgICAgI34obW9kaWZ5LXBoYXNlcyAlc3Rh bmRhcmQtcGhhc2VzCiAgICAgICAgICAgICAgIChhZGQtYWZ0ZXIgJ3VucGFjayAncGF0Y2gtbWFr b2N0bAogICAgICAgICAgICAgICAgIChsYW1iZGEqICgjOmtleSBpbnB1dHMgIzphbGxvdy1vdGhl ci1rZXlzKQogICAgICAgICAgICAgICAgICAgKHN1YnN0aXR1dGUqICJtYWtvY3RsIgogICAgICAg ICAgICAgICAgICAgICAoKCJeQlVTQ1RMPS4qJCIpCiAgICAgICAgICAgICAgICAgICAgICAoc3Ry aW5nLWFwcGVuZAogICAgICAgICAgICAgICAgICAgICAgICJCVVNDVEw9IgogICAgICAgICAgICAg ICAgICAgICAgIChzZWFyY2gtaW5wdXQtZmlsZSBpbnB1dHMgImJpbi9iYXN1Y3RsIikKICAgICAg ICAgICAgICAgICAgICAgICAiXG4iKSkKICAgICAgICAgICAgICAgICAgICAgKCgianEgIikKICAg ICAgICAgICAgICAgICAgICAgIChzdHJpbmctYXBwZW5kCiAgICAgICAgICAgICAgICAgICAgICAg KHNlYXJjaC1pbnB1dC1maWxlIGlucHV0cyAiYmluL2pxIikKICAgICAgICAgICAgICAgICAgICAg ICAiICIpKSkpKSkpKQogICAgKGlucHV0cyAobGlzdCBiYXN1IGNhaXJvIGdkay1waXhidWYganEg cGFuZ28gd2F5bGFuZCkpCiAgICAobmF0aXZlLWlucHV0cyAobGlzdCBwa2ctY29uZmlnIHNjZG9j IHdheWxhbmQtcHJvdG9jb2xzKSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vd2F5bGFuZC5lbWVy c2lvbi5mci9tYWtvIikKICAgIChzeW5vcHNpcyAiTGlnaHR3ZWlnaHQgV2F5bGFuZCBub3RpZmlj YXRpb24gZGFlbW9uIikKICAgIChkZXNjcmlwdGlvbiAiTWFrbyBpcyBhIGxpZ2h0d2VpZ2h0IG5v dGlmaWNhdGlvbiBkYWVtb24gZm9yIFdheWxhbmQKY29tcG9zaXRvcnMgdGhhdCBzdXBwb3J0IHRo ZSBsYXllci1zaGVsbCBwcm90b2NvbC4iKQogICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKSA7 IE1JVCBsaWNlbnNlCgooZGVmaW5lLXB1YmxpYyBrYW5zaGkKICAocGFja2FnZQogICAgKG5hbWUg ImthbnNoaSIpCiAgICAodmVyc2lvbiAiMS41LjEiKQogICAgKHNvdXJjZQogICAgIChvcmlnaW4K ICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQogICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQogICAg ICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXQuc3IuaHQvfmVtZXJzaW9uL2thbnNoaSIpCiAgICAg ICAgICAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQogICAgICAgKGZp bGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKQogICAgICAgKHNoYTI1NgogICAg ICAgIChiYXNlMzIgIjFtYzJ6Y3Fzdjc5eTc2ODJud2kxZ244cDc1MXp3ZmxtOXppcmw5OHYycTJr dngzMzRrOGEiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBtZXNvbi1idWlsZC1zeXN0ZW0pCiAgICAo aW5wdXRzIChsaXN0IHdheWxhbmQpKQogICAgKG5hdGl2ZS1pbnB1dHMgKGxpc3QgcGtnLWNvbmZp ZyBzY2RvYykpCiAgICAoaG9tZS1wYWdlICJodHRwczovL3dheWxhbmQuZW1lcnNpb24uZnIva2Fu c2hpIikKICAgIChzeW5vcHNpcyAiSG90c3dhcHBhYmxlIG91dHB1dCBwcm9maWxlcyBmb3IgV2F5 bGFuZCIpCiAgICAoZGVzY3JpcHRpb24gIkthbnNoaSBhbGxvd3MgeW91IHRvIGRlZmluZSBvdXRw dXQgcHJvZmlsZXMgdGhhdCBhcmUKYXV0b21hdGljYWxseSBlbmFibGVkIGFuZCBkaXNhYmxlZCBv biBob3RwbHVnLiAgS2Fuc2hpIGNhbiBiZSB1c2VkIHdpdGgKV2F5bGFuZCBjb21wb3NpdG9ycyBz dXBwb3J0aW5nIHRoZSB3bHItb3V0cHV0LW1hbmFnZW1lbnQgcHJvdG9jb2wuIikKICAgIChsaWNl bnNlIGxpY2Vuc2U6ZXhwYXQpKSkgOyBNSVQgbGljZW5zZQoKKGRlZmluZS1wdWJsaWMgd2Rpc3Bs YXlzCiAgKHBhY2thZ2UKICAgIChuYW1lICJ3ZGlzcGxheXMiKQogICAgKHZlcnNpb24gIjEuMS4x IikKICAgIChzb3VyY2UKICAgICAob3JpZ2luCiAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKICAg ICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKICAgICAgICAgICAgICh1cmwgImh0dHBzOi8vZ2l0aHVi LmNvbS9hcnRpemlyay93ZGlzcGxheXMuZ2l0IikKICAgICAgICAgICAgIChjb21taXQgdmVyc2lv bikpKQogICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKQogICAg ICAgKHNoYTI1NgogICAgICAgIChiYXNlMzIgIjA2eWRjbWZkaWNzMnFxamIxNHA3Njd4czhraGQ4 Nm5hbmNkZDl6OGoxMWgyZ3B2d3pudm4iKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBtZXNvbi1idWls ZC1zeXN0ZW0pCiAgICAoaW5wdXRzIChsaXN0IGd0aysgbGliZXBveHkgd2F5bGFuZCkpCiAgICAo bmF0aXZlLWlucHV0cyAobGlzdCBgKCxnbGliICJiaW4iKSBwa2ctY29uZmlnKSkKICAgIChob21l LXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9hcnRpemlyay93ZGlzcGxheXMiKQogICAgKHN5bm9w c2lzICJDb25maWd1cmluZyBkaXNwbGF5cyBpbiBXYXlsYW5kIGNvbXBvc2l0b3JzIikKICAgIChk ZXNjcmlwdGlvbiAiQGNvbW1hbmR7d2Rpc3BsYXlzfSBpcyBhIGdyYXBoaWNhbCBhcHBsaWNhdGlv biBmb3IKY29uZmlndXJpbmcgZGlzcGxheXMgaW4gV2F5bGFuZCBjb21wb3NpdG9ycyB0aGF0IGlt cGxlbWVudHMgdGhlCndsci1vdXRwdXQtbWFuYWdlbWVudC11bnN0YWJsZS12MSBwcm90b2NvbC4i KQogICAgKGxpY2Vuc2UgbGljZW5zZTpncGwzKykpKQoKKGRlZmluZS1wdWJsaWMgc3R1bXB3bQog IChwYWNrYWdlCiAgICAobmFtZSAic3R1bXB3bSIpCiAgICAodmVyc2lvbiAiMjIuMTEiKQogICAg KHNvdXJjZQogICAgIChvcmlnaW4KICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQogICAgICAgKHVy aSAoZ2l0LXJlZmVyZW5jZQogICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL3N0 dW1wd20vc3R1bXB3bSIpCiAgICAgICAgICAgICAoY29tbWl0IHZlcnNpb24pKSkKICAgICAgIChm aWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgInN0dW1wd20iIHZlcnNpb24pKQogICAgICAgKHNoYTI1 NgogICAgICAgIChiYXNlMzIgIjF3eGdkZG1rZ21wbWw0NGEzbTZiZDh5NTI5YjEzanoxNGFweHhp cG1pajEwd3pwZ2F5NmQiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBhc2RmLWJ1aWxkLXN5c3RlbS9z YmNsKQogICAgKG5hdGl2ZS1pbnB1dHMKICAgICAobGlzdCBzYmNsLWZpYXNjbwogICAgICAgICAg IHRleGluZm8KCiAgICAgICAgICAgOzsgVG8gYnVpbGQgdGhlIG1hbnVhbC4KICAgICAgICAgICBh dXRvY29uZgogICAgICAgICAgIGF1dG9tYWtlKSkKICAgIChpbnB1dHMKICAgICAobGlzdCBzYmNs LWFsZXhhbmRyaWEKICAgICAgICAgICBzYmNsLWNsLXBwY3JlCiAgICAgICAgICAgc2JjbC1jbHgp KQogICAgKG91dHB1dHMgJygib3V0IiAibGliIikpCiAgICAoYXJndW1lbnRzCiAgICAgKGxpc3QK ICAgICAgIzpwaGFzZXMKICAgICAgI34obW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCiAg ICAgICAgICAoYWRkLWFmdGVyICd1bnBhY2sgJ2ZpeC10ZXN0cwogICAgICAgICAgICAobGFtYmRh IF8KICAgICAgICAgICAgICAoc3Vic3RpdHV0ZSogInN0dW1wd20tdGVzdHMuYXNkIgogICAgICAg ICAgICAgICAgKCgiXCJBTEwtVEVTVFNcIiIpCiAgICAgICAgICAgICAgICAgIlwiUlVOLVBBQ0tB R0UtVEVTVFNcIiA6cGFja2FnZSIpKSkpCiAgICAgICAgICAoYWRkLWFmdGVyICdjcmVhdGUtYXNk Zi1jb25maWd1cmF0aW9uICdidWlsZC1wcm9ncmFtCiAgICAgICAgICAgIChsYW1iZGEqICgjOmtl eSBvdXRwdXRzICM6YWxsb3ctb3RoZXIta2V5cykKICAgICAgICAgICAgICAoYnVpbGQtcHJvZ3Jh bQogICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAoYXNzb2MtcmVmIG91dHB1dHMgIm91dCIp ICIvYmluL3N0dW1wd20iKQogICAgICAgICAgICAgICBvdXRwdXRzCiAgICAgICAgICAgICAgICM6 ZW50cnktcHJvZ3JhbSAnKChzdHVtcHdtOnN0dW1wd20pIDApKSkpCiAgICAgICAgICAoYWRkLWFm dGVyICdidWlsZC1wcm9ncmFtICdjcmVhdGUtZGVza3RvcC1maWxlCiAgICAgICAgICAgIChsYW1i ZGEqICgjOmtleSBvdXRwdXRzICM6YWxsb3ctb3RoZXIta2V5cykKICAgICAgICAgICAgICAobGV0 KiAoKG91dCAoYXNzb2MtcmVmIG91dHB1dHMgIm91dCIpKQogICAgICAgICAgICAgICAgICAgICAo eHNlc3Npb25zIChzdHJpbmctYXBwZW5kIG91dCAiL3NoYXJlL3hzZXNzaW9ucyIpKSkKICAgICAg ICAgICAgICAgIChta2Rpci1wIHhzZXNzaW9ucykKICAgICAgICAgICAgICAgIChjYWxsLXdpdGgt b3V0cHV0LWZpbGUKICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCB4c2Vzc2lvbnMg Ii9zdHVtcHdtLmRlc2t0b3AiKQogICAgICAgICAgICAgICAgICAobGFtYmRhIChmaWxlKQogICAg ICAgICAgICAgICAgICAgIChmb3JtYXQgZmlsZQogICAgICAgICAgICAgICAgICAgICAgICJbRGVz a3RvcCBFbnRyeV1+QAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lPXN0dW1wd21+QAogICAg ICAgICAgICAgICAgICAgICAgICBDb21tZW50PVRoZSBTdHVtcCBXaW5kb3cgTWFuYWdlcn5ACiAg ICAgICAgICAgICAgICAgICAgICAgIEV4ZWM9fmEvYmluL3N0dW1wd21+QAogICAgICAgICAgICAg ICAgICAgICAgICBUcnlFeGVjPX5AKn5hL2Jpbi9zdHVtcHdtfkAKICAgICAgICAgICAgICAgICAg ICAgICAgSWNvbj1+QAogICAgICAgICAgICAgICAgICAgICAgICBUeXBlPUFwcGxpY2F0aW9ufiUi CiAgICAgICAgICAgICAgICAgICAgICAgb3V0KSkpKSkpCiAgICAgICAgICAoYWRkLWFmdGVyICdp bnN0YWxsICdpbnN0YWxsLW1hbnVhbAogICAgICAgICAgICAobGFtYmRhKiAoIzprZXkgKG1ha2Ut ZmxhZ3MgJygpKSBvdXRwdXRzICM6YWxsb3ctb3RoZXIta2V5cykKICAgICAgICAgICAgICAobGV0 KiAoKG91dCAgKGFzc29jLXJlZiBvdXRwdXRzICJvdXQiKSkKICAgICAgICAgICAgICAgICAgICAg KGluZm8gKHN0cmluZy1hcHBlbmQgb3V0ICIvc2hhcmUvaW5mbyIpKSkKICAgICAgICAgICAgICAg IChpbnZva2UgIi4vYXV0b2dlbi5zaCIpCiAgICAgICAgICAgICAgICAoaW52b2tlICJzaCIgIi4v Y29uZmlndXJlIiAiU0hFTEw9c2giKQogICAgICAgICAgICAgICAgKGFwcGx5IGludm9rZSAibWFr ZSIgInN0dW1wd20uaW5mbyIgbWFrZS1mbGFncykKICAgICAgICAgICAgICAgIChpbnN0YWxsLWZp bGUgInN0dW1wd20uaW5mbyIgaW5mbykpKSkKICAgICAgICAgIChhZGQtYWZ0ZXIgJ2luc3RhbGwt bWFudWFsICdyZW1vdmUtdGVtcG9yYXJ5LWNhY2hlCiAgICAgICAgICAgIChsYW1iZGEqICgjOmtl eSBvdXRwdXRzICM6YWxsb3ctb3RoZXIta2V5cykKICAgICAgICAgICAgICAoZGVsZXRlLWZpbGUt cmVjdXJzaXZlbHkgKHN0cmluZy1hcHBlbmQgKGFzc29jLXJlZiBvdXRwdXRzICJsaWIiKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLy5jYWNo ZSIpKSkpKSkpCiAgICAoc3lub3BzaXMgIldpbmRvdyBtYW5hZ2VyIHdyaXR0ZW4gaW4gQ29tbW9u IExpc3AiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgIlN0dW1wd20gaXMgYSB3aW5kb3cgbWFuYWdl ciB3cml0dGVuIGVudGlyZWx5IGluIENvbW1vbiBMaXNwLgpJdCBhdHRlbXB0cyB0byBiZSBoaWdo bHkgY3VzdG9taXphYmxlIHdoaWxlIHJlbHlpbmcgZW50aXJlbHkgb24gdGhlIGtleWJvYXJkCmZv ciBpbnB1dC4gIFRoZXNlIGRlc2lnbiBkZWNpc2lvbnMgcmVmbGVjdCB0aGUgZ3Jvd2luZyBwb3B1 bGFyaXR5IG9mCnByb2R1Y3RpdmUsIGN1c3RvbWl6YWJsZSBsaXNwIGJhc2VkIHN5c3RlbXMuIikK ICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVtcHdtL3N0dW1wd20iKQogICAg KGxpY2Vuc2UgbGljZW5zZTpncGwyKykKICAgIChwcm9wZXJ0aWVzIGAoKGNsLXNvdXJjZS12YXJp YW50IC4gLChkZWxheSBjbC1zdHVtcHdtKSkpKSkpCgooZGVmaW5lLXB1YmxpYyBjbC1zdHVtcHdt CiAgKHBhY2thZ2UKICAgIChpbmhlcml0IChzYmNsLXBhY2thZ2UtPmNsLXNvdXJjZS1wYWNrYWdl IHN0dW1wd20pKQogICAgKG5hbWUgImNsLXN0dW1wd20iKSkpCgooZGVmaW5lLXB1YmxpYyBzdHVt cHdtK3NseW5rCiAgKHBhY2thZ2UKICAgIChpbmhlcml0IHN0dW1wd20pCiAgICAobmFtZSAic3R1 bXB3bS13aXRoLXNseW5rIikKICAgIChvdXRwdXRzICcoIm91dCIpKQogICAgKGlucHV0cwogICAg IGAoKCJzdHVtcHdtIiAsc3R1bXB3bSAibGliIikKICAgICAgICgic2x5bmsiICxzYmNsLXNseW5r KSkpCiAgICAoYXJndW1lbnRzCiAgICAgKHN1YnN0aXR1dGUta2V5d29yZC1hcmd1bWVudHMgKHBh Y2thZ2UtYXJndW1lbnRzIHN0dW1wd20pCiAgICAgICAoKCM6cGhhc2VzIHBoYXNlcykKICAgICAg ICBgKG1vZGlmeS1waGFzZXMgLHBoYXNlcwogICAgICAgICAgIChyZXBsYWNlICdidWlsZC1wcm9n cmFtCiAgICAgICAgICAgICAobGFtYmRhKiAoIzprZXkgaW5wdXRzIG91dHB1dHMgIzphbGxvdy1v dGhlci1rZXlzKQogICAgICAgICAgICAgICAobGV0KiAoKG91dCAoYXNzb2MtcmVmIG91dHB1dHMg Im91dCIpKQogICAgICAgICAgICAgICAgICAgICAgKHByb2dyYW0gKHN0cmluZy1hcHBlbmQgb3V0 ICIvYmluL3N0dW1wd20iKSkpCiAgICAgICAgICAgICAgICAgKHNldGVudiAiSE9NRSIgIi90bXAi KQogICAgICAgICAgICAgICAgIChidWlsZC1wcm9ncmFtIHByb2dyYW0gb3V0cHV0cwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICM6ZW50cnktcHJvZ3JhbSAnKChzdHVtcHdtOnN0dW1w d20pIDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzpkZXBlbmRlbmNpZXMgJygi c3R1bXB3bSIgInNseW5rIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmRlcGVu ZGVuY3ktcHJlZml4ZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwIChsYW1i ZGEgKGlucHV0KSAoYXNzb2MtcmVmIGlucHV0cyBpbnB1dCkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnKCJzdHVtcHdtIiAic2x5bmsiKSkpCiAgICAgICAgICAgICAgICAg I3QpKSkKICAgICAgICAgICAoZGVsZXRlICdjb3B5LXNvdXJjZSkKICAgICAgICAgICAoZGVsZXRl ICdidWlsZCkKICAgICAgICAgICAoZGVsZXRlICdjaGVjaykKICAgICAgICAgICAoZGVsZXRlICdy ZW1vdmUtdGVtcG9yYXJ5LWNhY2hlKQogICAgICAgICAgIChkZWxldGUgJ2NsZWFudXApKSkpKSkp CgooZGVmaW5lIHN0dW1wd20tY29udHJpYgogIChsZXQgKChjb21taXQgIjQ2MTNhOTU2YWRkN2Ex Nzk4NmEzYjI2YzM0MTIyOTQ2NmNkMTNmMWQiKQogICAgICAgIChyZXZpc2lvbiAiNSIpKQogICAg KHBhY2thZ2UKICAgICAgKG5hbWUgInN0dW1wd20tY29udHJpYiIpCiAgICAgICh2ZXJzaW9uIChn aXQtdmVyc2lvbiAiMC4wLjEiIHJldmlzaW9uIGNvbW1pdCkpIDtubyB1cHN0cmVhbSByZWxlYXNl CiAgICAgIChzb3VyY2UKICAgICAgIChvcmlnaW4KICAgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gp CiAgICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKICAgICAgICAgICAgICAgKHVybCAiaHR0cHM6 Ly9naXRodWIuY29tL3N0dW1wd20vc3R1bXB3bS1jb250cmliIikKICAgICAgICAgICAgICAgKGNv bW1pdCBjb21taXQpKSkKICAgICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZl cnNpb24pKQogICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyICIxZzhoMnZkNXFzbWFp ejZpeGx4OXlrcnY2YTA4aXpta2YwanMxOGZ2bGp2em5weWhzem56IikpKSkKICAgICAgKGJ1aWxk LXN5c3RlbSBhc2RmLWJ1aWxkLXN5c3RlbS9zYmNsKQogICAgICAoaW5wdXRzCiAgICAgICBgKCgi c3R1bXB3bSIgLHN0dW1wd20gImxpYiIpKSkKICAgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRo dWIuY29tL3N0dW1wd20vc3R1bXB3bS1jb250cmliIikKICAgICAgKHN5bm9wc2lzICJTdHVtcFdN IGV4dHJhIG1vZHVsZXMiKQogICAgICAoZGVzY3JpcHRpb24gIlRoaXMgcGFja2FnZSBwcm92aWRl cyBleHRyYSBtb2R1bGVzIGZvciBTdHVtcFdNLiIpCiAgICAgIChsaWNlbnNlIChsaXN0IGxpY2Vu c2U6Z3BsMisgbGljZW5zZTpncGwzKyBsaWNlbnNlOmJzZC0yKSkpKSkKCihkZWZpbmUtcHVibGlj IHN0dW1waXNoCiAgKHBhY2thZ2UKICAgIChpbmhlcml0IHN0dW1wd20tY29udHJpYikKICAgIChu YW1lICJzdHVtcGlzaCIpCiAgICAoaW5wdXRzCiAgICAgKGxpc3QgYmFzaCBybHdyYXAgeHByb3Ap KQogICAgKGJ1aWxkLXN5c3RlbSB0cml2aWFsLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMK ICAgICAnKCM6bW9kdWxlcyAoKGd1aXggYnVpbGQgdXRpbHMpKQogICAgICAgIzpidWlsZGVyCiAg ICAgICAoYmVnaW4KICAgICAgICAgKHVzZS1tb2R1bGVzIChndWl4IGJ1aWxkIHV0aWxzKSkKICAg ICAgICAgKGNvcHktcmVjdXJzaXZlbHkgKGFzc29jLXJlZiAlYnVpbGQtaW5wdXRzICJzb3VyY2Ui KSAiLiIpCiAgICAgICAgIChjaGRpciAidXRpbC9zdHVtcGlzaCIpCiAgICAgICAgIChzdWJzdGl0 dXRlKiAic3R1bXBpc2giCiAgICAgICAgICAgKCgicmx3cmFwIikgKHNlYXJjaC1pbnB1dC1maWxl ICVidWlsZC1pbnB1dHMgIi9iaW4vcmx3cmFwIikpCiAgICAgICAgICAgKCgieHByb3AiKSAoc2Vh cmNoLWlucHV0LWZpbGUgJWJ1aWxkLWlucHV0cyAiL2Jpbi94cHJvcCIpKQogICAgICAgICAgICgo Ii9iaW4vc2giKSAoc2VhcmNoLWlucHV0LWZpbGUgJWJ1aWxkLWlucHV0cyAiL2Jpbi9iYXNoIikp KQogICAgICAgICAoaW5zdGFsbC1maWxlICJzdHVtcGlzaCIgKHN0cmluZy1hcHBlbmQgJW91dHB1 dCAiL2JpbiIpKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3N0dW1wd20v c3R1bXB3bS1jb250cmliIikKICAgIChzeW5vcHNpcyAiU3R1bXBXTSBpbnRlcmFjdGl2ZSBzaGVs bCIpCiAgICAoZGVzY3JpcHRpb24gIlRoaXMgcGFja2FnZSBwcm92aWRlcyBhIFN0dW1wV00gaW50 ZXJhY3RpdmUgc2hlbGwuIikKICAgIChsaWNlbnNlIChsaXN0IGxpY2Vuc2U6Z3BsMisgbGljZW5z ZTpncGwzKyBsaWNlbnNlOmJzZC0yKSkpKQoKKGRlZmluZS1wdWJsaWMgc2JjbC1zdHVtcHdtLXBh bWl4ZXIKICAobGV0ICgoY29tbWl0ICJhYTgyMDUzM2M4MGVhMWFmNWEwZTEwN2NlYTI1ZWFmMzRl NjlkYzI0IikKICAgICAgICAocmV2aXNpb24gIjEiKSkKICAgIChwYWNrYWdlCiAgICAgIChuYW1l ICJzYmNsLXN0dW1wd20tcGFtaXhlciIpCiAgICAgICh2ZXJzaW9uIChnaXQtdmVyc2lvbiAiMC4x LjEiIHJldmlzaW9uIGNvbW1pdCkpCiAgICAgIChzb3VyY2UgKG9yaWdpbgogICAgICAgICAgICAg ICAgKG1ldGhvZCBnaXQtZmV0Y2gpCiAgICAgICAgICAgICAgICAodXJpIChnaXQtcmVmZXJlbmNl CiAgICAgICAgICAgICAgICAgICAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vSnVua2VyL3N0 dW1wd20tcGFtaXhlciIpCiAgICAgICAgICAgICAgICAgICAgICAoY29tbWl0IGNvbW1pdCkpKQog ICAgICAgICAgICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKQog ICAgICAgICAgICAgICAgKHNoYTI1NgogICAgICAgICAgICAgICAgIChiYXNlMzIKICAgICAgICAg ICAgICAgICAgIjBkamNycjE2Yng0MGw3YjYwZDRqNTA3dms1bDQyZmRnbWpwZ3Juazg2ejFiYTh3 bHFpbTgiKSkpKQogICAgICAoaW5wdXRzIChsaXN0IHBhbWl4ZXIgYCgsc3R1bXB3bSAibGliIikp KQogICAgICAoYnVpbGQtc3lzdGVtIGFzZGYtYnVpbGQtc3lzdGVtL3NiY2wpCiAgICAgIChhcmd1 bWVudHMKICAgICAgIChsaXN0ICM6YXNkLXN5c3RlbXMgJycoInBhbWl4ZXIiKQogICAgICAgICAg ICAgIzpwaGFzZXMKICAgICAgICAgICAgICN+KG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNl cwogICAgICAgICAgICAgICAgIChhZGQtYWZ0ZXIgJ3VucGFjayAncGF0Y2gtcGFtaXhlcgogICAg ICAgICAgICAgICAgICAgKGxhbWJkYSBfCiAgICAgICAgICAgICAgICAgICAgIChzdWJzdGl0dXRl KiAicGFtaXhlci5saXNwIgogICAgICAgICAgICAgICAgICAgICAgICgoIlwicGFtaXhlciBcIiIp CiAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctYXBwZW5kICJcIiIKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyQodGhpcy1wYWNrYWdlLWlucHV0ICJwYW1peGVy IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi9iaW4vcGFtaXhlciBc IiIpKSkpKSkpKQogICAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vSnVua2VyL3N0 dW1wd20tcGFtaXhlciIpCiAgICAgIChzeW5vcHNpcyAiU3R1bXBXTSBQYW1peGVyIE1vZHVsZSIp CiAgICAgIChkZXNjcmlwdGlvbgogICAgICAgIlRoaXMgcGFja2FnZSBwcm92aWRlcyBhIG1pbmlt YWxpc3RpYyBQdWxzZWF1ZGlvIHZvbHVtZSBhbmQgbWljcm9waG9uZQpjb250cm9sIG1vZHVsZSBm b3IgU3R1bXBXTS4iKQogICAgICAobGljZW5zZSBsaWNlbnNlOmdwbDMpKSkpCgooZGVmaW5lLXB1 YmxpYyBzYmNsLXN0dW1wd20tYmlud2FycAogICAgKHBhY2thZ2UKICAgICAoaW5oZXJpdCBzdHVt cHdtLWNvbnRyaWIpCiAgICAgKG5hbWUgInNiY2wtc3R1bXB3bS1iaW53YXJwIikKICAgICAoYXJn dW1lbnRzCiAgICAgICcoIzphc2Qtc3lzdGVtcyAnKCJiaW53YXJwIikKCSM6dGVzdHM/ICNmCgkj OnBoYXNlcwoJKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcwoJCSAgICAgICAoYWRkLWFm dGVyICd1bnBhY2sgJ2NoZGlyCgkJCQkgIChsYW1iZGEgXyAoY2hkaXIgInV0aWwvYmlud2FycCIp ICN0KSkpKSkKICAgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3N0dW1wd20vc3R1 bXB3bS1jb250cmliIikKICAgICAgKHN5bm9wc2lzICJLZXlib2FyZC1kcml2ZW4gZGl2aWRlLWFu ZC1jb25xdWVyIG1vdXNlIGNvbnRyb2wgbW9kZS4iKQogICAgICAoZGVzY3JpcHRpb24gIlRoaXMg cGFja2FnZSBwcm92aWRlcyBhIG5ldyBrZXlib2FyZC1kcml2ZW4ga2V5bWFwLiIpCiAgICAgIChs aWNlbnNlIChsaXN0IGxpY2Vuc2U6Z3BsMisgbGljZW5zZTpncGwzKyBsaWNlbnNlOmJzZC0yKSkp KQoKKGRlZmluZS1wdWJsaWMgc2JjbC1zdHVtcHdtLXR0Zi1mb250cwogIChwYWNrYWdlCiAgICAo aW5oZXJpdCBzdHVtcHdtLWNvbnRyaWIpCiAgICAobmFtZSAic2JjbC1zdHVtcHdtLXR0Zi1mb250 cyIpCiAgICAoaW5wdXRzCiAgICAgYCgoInN0dW1wd20iICxzdHVtcHdtICJsaWIiKQogICAgICAg KCJjbHgtdHJ1ZXR5cGUiICxzYmNsLWNseC10cnVldHlwZSkpKQogICAgKGFyZ3VtZW50cwogICAg ICcoIzphc2Qtc3lzdGVtcyAnKCJ0dGYtZm9udHMiKQogICAgICAgIzp0ZXN0cz8gI2YKICAgICAg ICM6cGhhc2VzCiAgICAgICAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCiAgICAgICAg IChhZGQtYWZ0ZXIgJ3VucGFjayAnY2hkaXIKICAgICAgICAgICAobGFtYmRhIF8gKGNoZGlyICJ1 dGlsL3R0Zi1mb250cyIpICN0KSkpKSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNv bS9zdHVtcHdtL3N0dW1wd20tY29udHJpYiIpCiAgICAoc3lub3BzaXMgIkltcGxlbWVudGF0aW9u IG9mIFRURiBmb250IHJlbmRlcmluZyBmb3IgTGlzcCIpCiAgICAoZGVzY3JpcHRpb24gIlRoaXMg cGFja2FnZSBwcm92aWRlcyBhIExpc3AgaW1wbGVtZW50YXRpb24gb2YgVFRGIGZvbnQKcmVuZGVy aW5nLiIpCiAgICAobGljZW5zZSAobGlzdCBsaWNlbnNlOmdwbDIrIGxpY2Vuc2U6Z3BsMysgbGlj ZW5zZTpic2QtMikpKSkKCihkZWZpbmUtcHVibGljIHNiY2wtc3R1bXB3bS1wYXNzCiAgKHBhY2th Z2UKICAgIChpbmhlcml0IHN0dW1wd20tY29udHJpYikKICAgIChuYW1lICJzYmNsLXN0dW1wd20t cGFzcyIpCiAgICAoYXJndW1lbnRzCiAgICAgJygjOmFzZC1zeXN0ZW1zICcoInBhc3MiKQogICAg ICAgIzp0ZXN0cz8gI2YKICAgICAgICM6cGhhc2VzCiAgICAgICAobW9kaWZ5LXBoYXNlcyAlc3Rh bmRhcmQtcGhhc2VzCiAgICAgICAgIChhZGQtYWZ0ZXIgJ3VucGFjayAnY2hkaXIKICAgICAgICAg ICAobGFtYmRhIF8gKGNoZGlyICJ1dGlsL3Bhc3MiKSAjdCkpKSkpCiAgICAoaG9tZS1wYWdlICJo dHRwczovL2dpdGh1Yi5jb20vc3R1bXB3bS9zdHVtcHdtLWNvbnRyaWIiKQogICAgKHN5bm9wc2lz ICJJbnRlZ3JhdGUgQGNvZGV7cGFzc30gd2l0aCBTdHVtcFdNIikKICAgIChkZXNjcmlwdGlvbiAi VGhpcyBwYWNrYWdlIHByb3ZpZGVzIGFuIGludGVyZmFjZSB3aGljaCBpbnRlZ3JhdGVzCnBhc3N3 b3JkLXN0b3JlIGludG8gU3R1bXBXTS4iKQogICAgKGxpY2Vuc2UgKGxpc3QgbGljZW5zZTpncGwy KyBsaWNlbnNlOmdwbDMrIGxpY2Vuc2U6YnNkLTIpKSkpCgooZGVmaW5lLXB1YmxpYyBzYmNsLXN0 dW1wd20tZ2xvYmFsd2luZG93cwogIChwYWNrYWdlCiAgICAoaW5oZXJpdCBzdHVtcHdtLWNvbnRy aWIpCiAgICAobmFtZSAic2JjbC1zdHVtcHdtLWdsb2JhbHdpbmRvd3MiKQogICAgKGFyZ3VtZW50 cwogICAgICcoIzphc2Qtc3lzdGVtcyAnKCJnbG9iYWx3aW5kb3dzIikKICAgICAgICM6dGVzdHM/ ICNmCiAgICAgICAjOnBoYXNlcwogICAgICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNl cwogICAgICAgICAoYWRkLWFmdGVyICd1bnBhY2sgJ2NoZGlyCiAgICAgICAgICAgKGxhbWJkYSBf IChjaGRpciAidXRpbC9nbG9iYWx3aW5kb3dzIikgI3QpKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0 cHM6Ly9naXRodWIuY29tL3N0dW1wd20vc3R1bXB3bS1jb250cmliIikKICAgIChzeW5vcHNpcyAi TWFuaXB1bGF0ZSBhbGwgd2luZG93cyBpbiB0aGUgY3VycmVudCBYIHNlc3Npb24iKQogICAgKGRl c2NyaXB0aW9uICJUaGlzIHBhY2thZ2UgcHJvdmlkZXMgYSBTdHVtcFdNIG1vZHVsZSB0byBtYW5p cHVsYXRlIGFsbAp3aW5kb3dzIGluIHRoZSBjdXJyZW50IFggc2Vzc2lvbi4iKQogICAgKGxpY2Vu c2UgKGxpc3QgbGljZW5zZTpncGwyKyBsaWNlbnNlOmdwbDMrIGxpY2Vuc2U6YnNkLTIpKSkpCgoo ZGVmaW5lLXB1YmxpYyBzYmNsLXN0dW1wd20tc3dtLWdhcHMKICAocGFja2FnZQogICAgKGluaGVy aXQgc3R1bXB3bS1jb250cmliKQogICAgKG5hbWUgInNiY2wtc3R1bXB3bS1zd20tZ2FwcyIpCiAg ICAoYXJndW1lbnRzCiAgICAgJygjOmFzZC1zeXN0ZW1zICcoInN3bS1nYXBzIikKICAgICAgICM6 dGVzdHM/ICNmCiAgICAgICAjOnBoYXNlcwogICAgICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJk LXBoYXNlcwogICAgICAgICAoYWRkLWFmdGVyICd1bnBhY2sgJ2NoZGlyCiAgICAgICAgICAgKGxh bWJkYSBfIChjaGRpciAidXRpbC9zd20tZ2FwcyIpICN0KSkpKSkKICAgIChob21lLXBhZ2UgImh0 dHBzOi8vZ2l0aHViLmNvbS9zdHVtcHdtL3N0dW1wd20tY29udHJpYiIpCiAgICAoc3lub3BzaXMg IkdhcHMgYmV0d2VlbiB3aW5kb3dzIGZvciBTdHVtcFdNIikKICAgIChkZXNjcmlwdGlvbiAiVGhp cyBwYWNrYWdlIHByb3ZpZGVzIGEgU3R1bXBXTSBtb2R1bGUgd2hpY2ggYWRkcyBnYXBzCmJldHdl ZW4gd2luZG93cy4iKQogICAgKGxpY2Vuc2UgKGxpc3QgbGljZW5zZTpncGwyKyBsaWNlbnNlOmdw bDMrIGxpY2Vuc2U6YnNkLTIpKSkpCgooZGVmaW5lLXB1YmxpYyBzYmNsLXN0dW1wd20tbmV0CiAg KHBhY2thZ2UKICAgIChpbmhlcml0IHN0dW1wd20tY29udHJpYikKICAgIChuYW1lICJzYmNsLXN0 dW1wd20tbmV0IikKICAgIChhcmd1bWVudHMKICAgICAnKCM6YXNkLXN5c3RlbXMgJygibmV0IikK ICAgICAgICM6dGVzdHM/ICNmCiAgICAgICAjOnBoYXNlcwogICAgICAgKG1vZGlmeS1waGFzZXMg JXN0YW5kYXJkLXBoYXNlcwogICAgICAgICAoYWRkLWFmdGVyICd1bnBhY2sgJ2NoZGlyIChsYW1i ZGEgXyAoY2hkaXIgIm1vZGVsaW5lL25ldCIpICN0KSkpKSkKICAgIChob21lLXBhZ2UKICAgICAi aHR0cHM6Ly9naXRodWIuY29tL3N0dW1wd20vc3R1bXB3bS1jb250cmliL3RyZWUvbWFzdGVyL21v ZGVsaW5lL25ldCIpCiAgICAoc3lub3BzaXMgIk1vZGVsaW5lIHN1cHBvcnQgZm9yIG5ldHdvcmsg Y29ubmVjdGl2aXR5IikKICAgIChkZXNjcmlwdGlvbiAiTW9kZWxpbmUgc3VwcG9ydCBmb3IgbmV0 d29yayBjb25uZWN0aXZpdHkuIikKICAgIChzdXBwb3J0ZWQtc3lzdGVtcwogICAgIChmaWx0ZXIg KGxhbWJkYSAoYSkgKHN0cmluZy1jb250YWlucyBhICJsaW51eCIpKSAlc3VwcG9ydGVkLXN5c3Rl bXMpKQogICAgKGxpY2Vuc2UgbGljZW5zZTpncGwzKykpKQoKKGRlZmluZS1wdWJsaWMgc2JjbC1z dHVtcHdtLXdpZmkKICAocGFja2FnZQogICAgKGluaGVyaXQgc3R1bXB3bS1jb250cmliKQogICAg KG5hbWUgInNiY2wtc3R1bXB3bS13aWZpIikKICAgIChhcmd1bWVudHMKICAgICAnKCM6YXNkLXN5 c3RlbXMgJygid2lmaSIpCiAgICAgICAjOnRlc3RzPyAjZgogICAgICAgIzpwaGFzZXMKICAgICAg IChtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMKICAgICAgICAgKGFkZC1hZnRlciAndW5w YWNrICdjaGRpciAobGFtYmRhIF8gKGNoZGlyICJtb2RlbGluZS93aWZpIikgI3QpKSkpKQogICAg KGhvbWUtcGFnZQogICAgICJodHRwczovL2dpdGh1Yi5jb20vc3R1bXB3bS9zdHVtcHdtLWNvbnRy aWIvdHJlZS9tYXN0ZXIvbW9kZWxpbmUvd2lmaSIpCiAgICAoc3lub3BzaXMgIk1vZGVsaW5lIHN1 cHBvcnQgZm9yIHdpZmkgY29ubmVjdGl2aXR5IikKICAgIChkZXNjcmlwdGlvbiAiTW9kZWxpbmUg c3VwcG9ydCBmb3Igd2lmaSBjb25uZWN0aXZpdHkuIikKICAgIChzdXBwb3J0ZWQtc3lzdGVtcwog ICAgIChmaWx0ZXIgKGxhbWJkYSAoYSkgKHN0cmluZy1jb250YWlucyBhICJsaW51eCIpKSAlc3Vw cG9ydGVkLXN5c3RlbXMpKQogICAgKGxpY2Vuc2UgbGljZW5zZTpncGwzKykpKQoKKGRlZmluZS1w dWJsaWMgc2JjbC1zdHVtcHdtLXN0dW1wdHJheQogIChwYWNrYWdlCiAgICAoaW5oZXJpdCBzdHVt cHdtLWNvbnRyaWIpCiAgICAobmFtZSAic2JjbC1zdHVtcHdtLXN0dW1wdHJheSIpCiAgICAoYXJn dW1lbnRzCiAgICAgJygjOmFzZC1zeXN0ZW1zICcoInN0dW1wdHJheSIpCiAgICAgICAjOnRlc3Rz PyAjZgogICAgICAgIzpwaGFzZXMKICAgICAgIChtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFz ZXMKICAgICAgICAgKGFkZC1hZnRlciAndW5wYWNrICdjaGRpciAobGFtYmRhIF8gKGNoZGlyICJt b2RlbGluZS9zdHVtcHRyYXkiKSAjdCkpKSkpCiAgICAoaW5wdXRzCiAgICAgYCgoInN0dW1wd20i ICxzdHVtcHdtICJsaWIiKQogICAgICAgKCJ4ZW1iZWQiICxzYmNsLWNseC14ZW1iZWQpCiAgICAg ICAoImFsZXhhbmRyaWEiICxzYmNsLWFsZXhhbmRyaWEpKSkKICAgIChob21lLXBhZ2UKICAgICAi aHR0cHM6Ly9naXRodWIuY29tL3N0dW1wd20vc3R1bXB3bS1jb250cmliL3RyZWUvbWFzdGVyL21v ZGVsaW5lL3N0dW1wdHJheSIpCiAgICAoc3lub3BzaXMgIk1vZGVsaW5lIHN1cHBvcnQgZm9yIHN0 dW1wdHJheSBjb25uZWN0aXZpdHkiKQogICAgKGRlc2NyaXB0aW9uICJNb2RlbGluZSBzdXBwb3J0 IGZvciBzdHVtcHRyYXkgY29ubmVjdGl2aXR5LiIpCiAgICAoc3VwcG9ydGVkLXN5c3RlbXMKICAg ICAoZmlsdGVyIChsYW1iZGEgKGEpIChzdHJpbmctY29udGFpbnMgYSAibGludXgiKSkgJXN1cHBv cnRlZC1zeXN0ZW1zKSkKICAgIChsaWNlbnNlIGxpY2Vuc2U6Z3BsMyspKSkKCihkZWZpbmUtcHVi bGljIHNiY2wtc3R1bXB3bS1rYmQtbGF5b3V0cwogIChwYWNrYWdlCiAgICAoaW5oZXJpdCBzdHVt cHdtLWNvbnRyaWIpCiAgICAobmFtZSAic2JjbC1zdHVtcHdtLWtiZC1sYXlvdXRzIikKICAgIChh cmd1bWVudHMKICAgICAnKCM6YXNkLXN5c3RlbXMgJygia2JkLWxheW91dHMiKQogICAgICAgIzph c2Qtb3BlcmF0aW9uICJjb21waWxlLXN5c3RlbSIKICAgICAgICM6dGVzdHM/ICNmCiAgICAgICAj OnBoYXNlcwogICAgICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcwogICAgICAgICAo YWRkLWFmdGVyICd1bnBhY2sgJ2NoZGlyIChsYW1iZGEgXyAoY2hkaXIgInV0aWwva2JkLWxheW91 dHMiKSAjdCkpKSkpCiAgICAoaG9tZS1wYWdlCiAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVt cHdtL3N0dW1wd20tY29udHJpYi90cmVlL21hc3Rlci91dGlsL2tiZC1sYXlvdXRzIikKICAgIChz eW5vcHNpcyAiS2V5Ym9hcmQgbGF5b3V0IHN3aXRjaGVyIGZvciBTdHVtcFdNIikKICAgIChkZXNj cmlwdGlvbiAiS2V5Ym9hcmQgbGF5b3V0IHN3aXRjaGVyIGZvciBTdHVtcFdNIikKICAgIChsaWNl bnNlIGxpY2Vuc2U6Z3BsMyspKSkKCihkZWZpbmUtcHVibGljIHNiY2wtc3R1bXB3bS1udW1wYWQt bGF5b3V0cwogIChwYWNrYWdlCiAgICAoaW5oZXJpdCBzdHVtcHdtLWNvbnRyaWIpCiAgICAobmFt ZSAic2JjbC1zdHVtcHdtLW51bXBhZC1sYXlvdXRzIikKICAgIChhcmd1bWVudHMKICAgICAnKCM6 YXNkLXN5c3RlbXMgJygibnVtcGFkLWxheW91dHMiKQogICAgICAgIzp0ZXN0cz8gI2YKICAgICAg ICM6cGhhc2VzCiAgICAgICAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCiAgICAgICAg IChhZGQtYWZ0ZXIgJ3VucGFjayAnY2hkaXIKICAgICAgICAgICAobGFtYmRhIF8KICAgICAgICAg ICAgIChjaGRpciAidXRpbC9udW1wYWQtbGF5b3V0cyIpKSkpKSkKICAgIChob21lLXBhZ2UKICAg ICAiaHR0cHM6Ly9naXRodWIuY29tL3N0dW1wd20vc3R1bXB3bS1jb250cmliL3RyZWUvbWFzdGVy L3V0aWwvbnVtcGFkLWxheW91dHMiKQogICAgKHN5bm9wc2lzICJLZXlib2FyZCBudW1wYWQgbGF5 b3V0cyBmb3IgU3R1bXBXTSIpCiAgICAoZGVzY3JpcHRpb24gIlRoaXMgaXMgYSBtb2R1bGUgZm9y IGhhbmRsaW5nIGRpZmZlcmVudCBrZXlib2FyZHMgbnVtcGFkCmxheW91dHMgaW4gU3R1bXBXTS4i KQogICAgKGxpY2Vuc2UgbGljZW5zZTpncGwzKykpKQoKKGRlZmluZS1wdWJsaWMgc2JjbC1zdHVt cHdtLWNwdQogIChwYWNrYWdlCiAgICAoaW5oZXJpdCBzdHVtcHdtLWNvbnRyaWIpCiAgICAobmFt ZSAic2JjbC1zdHVtcHdtLWNwdSIpCiAgICAoYXJndW1lbnRzCiAgICAgJygjOmFzZC1zeXN0ZW1z ICcoImNwdSIpCiAgICAgICAjOnRlc3RzPyAjZgogICAgICAgIzpwaGFzZXMKICAgICAgIChtb2Rp ZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMKICAgICAgICAgKGFkZC1hZnRlciAndW5wYWNrICdj aGRpcgogICAgICAgICAgIChsYW1iZGEgXwogICAgICAgICAgICAgKGNoZGlyICJtb2RlbGluZS9j cHUiKSkpKSkpCiAgICAoaG9tZS1wYWdlCiAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVtcHdt L3N0dW1wd20tY29udHJpYi90cmVlL21hc3Rlci9tb2RlbGluZS9jcHUiKQogICAgKHN5bm9wc2lz ICJNb2RlbGluZSBzdXBwb3J0IGZvciBDUFUgaW5mbyIpCiAgICAoZGVzY3JpcHRpb24gIk1vZGVs aW5lIHN1cHBvcnQgZm9yIENQVSBpbmZvLiIpCiAgICAobGljZW5zZSBsaWNlbnNlOmdwbDMrKSkp CgooZGVmaW5lLXB1YmxpYyBzYmNsLXN0dW1wd20tZGlzawogIChwYWNrYWdlCiAgICAoaW5oZXJp dCBzdHVtcHdtLWNvbnRyaWIpCiAgICAobmFtZSAic2JjbC1zdHVtcHdtLWRpc2siKQogICAgKGFy Z3VtZW50cwogICAgICcoIzphc2Qtc3lzdGVtcyAnKCJkaXNrIikKICAgICAgICM6dGVzdHM/ICNm CiAgICAgICAjOnBoYXNlcwogICAgICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcwog ICAgICAgICAoYWRkLWFmdGVyICd1bnBhY2sgJ2NoZGlyCiAgICAgICAgICAgKGxhbWJkYSBfIChj aGRpciAibW9kZWxpbmUvZGlzayIpICN0KSkpKSkKICAgIChpbnB1dHMKICAgICBgKCgic3R1bXB3 bSIgLHN0dW1wd20gImxpYiIpCiAgICAgICAoImNsLWRpc2tzcGFjZSIgLHNiY2wtY2wtZGlza3Nw YWNlKQogICAgICAgKCJjbC1tb3VudC1pbmZvIiAsc2JjbC1jbC1tb3VudC1pbmZvKSkpCiAgICAo aG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vc3R1bXB3bS9zdHVtcHdtLWNvbnRyaWIiKQog ICAgKHN5bm9wc2lzICJTdHVtcFdNIG1vZGVsaW5lIHN1cHBvcnQgdG8gc2hvdyBkaXNrIHVzYWdl IikKICAgIChkZXNjcmlwdGlvbiAiU3R1bXBXTSBtb2RlbGluZSBzdXBwb3J0IHRvIHNob3cgZGlz ayB1c2FnZSIpCiAgICAobGljZW5zZSAobGlzdCBsaWNlbnNlOmdwbDIrIGxpY2Vuc2U6Z3BsMysp KSkpCgooZGVmaW5lLXB1YmxpYyBzYmNsLXN0dW1wd20tbWVtCiAgKHBhY2thZ2UKICAgIChpbmhl cml0IHN0dW1wd20tY29udHJpYikKICAgIChuYW1lICJzYmNsLXN0dW1wd20tbWVtIikKICAgIChh cmd1bWVudHMKICAgICAnKCM6YXNkLXN5c3RlbXMgJygibWVtIikKICAgICAgICM6dGVzdHM/ICNm CiAgICAgICAjOnBoYXNlcwogICAgICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcwog ICAgICAgICAoYWRkLWFmdGVyICd1bnBhY2sgJ2NoZGlyCiAgICAgICAgICAgKGxhbWJkYSBfCiAg ICAgICAgICAgICAoY2hkaXIgIm1vZGVsaW5lL21lbSIpKSkpKSkKICAgIChob21lLXBhZ2UKICAg ICAiaHR0cHM6Ly9naXRodWIuY29tL3N0dW1wd20vc3R1bXB3bS1jb250cmliL3RyZWUvbWFzdGVy L21vZGVsaW5lL21lbSIpCiAgICAoc3lub3BzaXMgIk1vZGVsaW5lIHN1cHBvcnQgZm9yIG1lbW9y eSBpbmZvIikKICAgIChkZXNjcmlwdGlvbiAiTW9kZWxpbmUgc3VwcG9ydCBmb3IgbWVtb3J5IGlu Zm8uIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6Z3BsMyspKSkKCihkZWZpbmUtcHVibGljIHNiY2wt c3R1bXB3bS13aW5uZXItbW9kZQogIChwYWNrYWdlCiAgICAoaW5oZXJpdCBzdHVtcHdtLWNvbnRy aWIpCiAgICAobmFtZSAic2JjbC1zdHVtcHdtLXdpbm5lci1tb2RlIikKICAgIChhcmd1bWVudHMK ICAgICAnKCM6YXNkLXN5c3RlbXMgJygid2lubmVyLW1vZGUiKQogICAgICAgIzp0ZXN0cz8gI2YK ICAgICAgICM6cGhhc2VzCiAgICAgICAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCiAg ICAgICAgIChhZGQtYWZ0ZXIgJ3VucGFjayAnY2hkaXIKICAgICAgICAgICAobGFtYmRhIF8KICAg ICAgICAgICAgIChjaGRpciAidXRpbC93aW5uZXItbW9kZSIpKSkpKSkKICAgIChob21lLXBhZ2UK ICAgICAiaHR0cHM6Ly9naXRodWIuY29tL3N0dW1wd20vc3R1bXB3bS1jb250cmliL3RyZWUvbWFz dGVyL3V0aWwvd2lubmVyLW1vZGUiKQogICAgKHN5bm9wc2lzICJFbWFjcycgd2lubmVyLW1vZGUg Zm9yIFN0dW1wV00iKQogICAgKGRlc2NyaXB0aW9uICJUaGlzIG1vZHVsZSBwcm92aWRlcyBhIHdp bm5lci1tb2RlIGZvciBTdHVtcFdNIHNpbWlsYXIgdG8gdGhlCm9uZSBpbiBFbWFjcy4iKQogICAg KGxpY2Vuc2UgbGljZW5zZTpncGwzKykpKQoKKGRlZmluZS1wdWJsaWMgc2JjbC1zdHVtcHdtLXNj cmVlbnNob3QKICAocGFja2FnZQogICAgKGluaGVyaXQgc3R1bXB3bS1jb250cmliKQogICAgKG5h bWUgInNiY2wtc3R1bXB3bS1zY3JlZW5zaG90IikKICAgIChpbnB1dHMKICAgICBgKCgic3R1bXB3 bSIgLHN0dW1wd20gImxpYiIpCiAgICAgICAoInpwbmciICxzYmNsLXpwbmcpKSkKICAgIChhcmd1 bWVudHMKICAgICAnKCM6YXNkLXN5c3RlbXMgJygic2NyZWVuc2hvdCIpCiAgICAgICAjOnRlc3Rz PyAjZgogICAgICAgIzpwaGFzZXMKICAgICAgIChtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFz ZXMKICAgICAgICAgKGFkZC1hZnRlciAndW5wYWNrICdjaGRpcgogICAgICAgICAgIChsYW1iZGEg XwogICAgICAgICAgICAgKGNoZGlyICJ1dGlsL3NjcmVlbnNob3QiKSkpCiAgICAgICAgIChhZGQt YWZ0ZXIgJ2NoZGlyICdmaXgtYnVpbGQKICAgICAgICAgICAobGFtYmRhIF8KICAgICAgICAgICAg IChzdWJzdGl0dXRlKiAic2NyZWVuc2hvdC5hc2QiCiAgICAgICAgICAgICAgICgoIiM6enBuZyIp CiAgICAgICAgICAgICAgICAiIzpzdHVtcHdtICM6enBuZyIpKSkpKSkpCiAgICAoaG9tZS1wYWdl CiAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVtcHdtL3N0dW1wd20tY29udHJpYi90cmVlL21h c3Rlci91dGlsL3NjcmVlbnNob3QiKQogICAgKHN5bm9wc2lzICJTY3JlZW5zaG90cyBmb3IgU3R1 bXBXTSIpCiAgICAoZGVzY3JpcHRpb24gIlRoaXMgU3R1bXBXTSBtb2R1bGUgY2FuIHRha2Ugc2Ny ZWVuc2hvdHMgYW5kIHN0b3JlIHRoZW0gYXMKUE5HIGZpbGVzLiIpCiAgICAobGljZW5zZSBsaWNl bnNlOmdwbDMrKSkpCgooZGVmaW5lLXB1YmxpYyBzYmNsLXN0dW1wd20taG9zdG5hbWUKICAocGFj a2FnZQogICAgKGluaGVyaXQgc3R1bXB3bS1jb250cmliKQogICAgKG5hbWUgInNiY2wtc3R1bXB3 bS1ob3N0bmFtZSIpCiAgICAoYXJndW1lbnRzCiAgICAgJygjOmFzZC1zeXN0ZW1zICcoImhvc3Ru YW1lIikKICAgICAgICM6dGVzdHM/ICNmCiAgICAgICAjOnBoYXNlcwogICAgICAgKG1vZGlmeS1w aGFzZXMgJXN0YW5kYXJkLXBoYXNlcwogICAgICAgICAoYWRkLWFmdGVyICd1bnBhY2sgJ2NoZGly CiAgICAgICAgICAgKGxhbWJkYSBfCiAgICAgICAgICAgICAoY2hkaXIgIm1vZGVsaW5lL2hvc3Ru YW1lIikpKSkpKQogICAgKGhvbWUtcGFnZQogICAgICJodHRwczovL2dpdGh1Yi5jb20vc3R1bXB3 bS9zdHVtcHdtLWNvbnRyaWIvdHJlZS9tYXN0ZXIvbW9kZWxpbmUvaG9zdG5hbWUiKQogICAgKHN5 bm9wc2lzICJQdXQgaG9zdG5hbWUgaW4gdGhlIFN0dW1wV00gbW9kZWxpbmUiKQogICAgKGRlc2Ny aXB0aW9uICJUaGlzIFN0dW1wV00gbW9kdWxlIHB1dHMgdGhlIGhvc3RuYW1lIGluIHRoZSBTdHVt cFdNCm1vZGVsaW5lLiIpCiAgICAobGljZW5zZSBsaWNlbnNlOmdwbDMrKSkpCgooZGVmaW5lLXB1 YmxpYyBzYmNsLXN0dW1wd20tbm90aWZ5CiAgKHBhY2thZ2UKICAgIChpbmhlcml0IHN0dW1wd20t Y29udHJpYikKICAgIChuYW1lICJzYmNsLXN0dW1wd20tbm90aWZ5IikKICAgIChidWlsZC1zeXN0 ZW0gYXNkZi1idWlsZC1zeXN0ZW0vc2JjbCkKICAgIChpbnB1dHMKICAgICAobGlzdCBzYmNsLWJv cmRlYXV4LXRocmVhZHMKICAgICAgICAgICBzYmNsLWRidXMKICAgICAgICAgICBzYmNsLXhtbC1l bWl0dGVyCiAgICAgICAgICAgKGxpc3Qgc3R1bXB3bSAibGliIikpKQogICAgKGFyZ3VtZW50cwog ICAgICcoIzphc2Qtc3lzdGVtcyAnKCJub3RpZnkiKQogICAgICAgIzpwaGFzZXMKICAgICAgICht b2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMKICAgICAgICAgKGFkZC1hZnRlciAndW5wYWNr ICdjaGRpcgogICAgICAgICAgIChsYW1iZGEgXyAoY2hkaXIgInV0aWwvbm90aWZ5IikpKSkpKQog ICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3N0dW1wd20vc3R1bXB3bS1jb250cmli IikKICAgIChzeW5vcHNpcyAiTm90aWZpY2F0aW9ucyBzZXJ2ZXIgZm9yIFN0dW1wV00iKQogICAg KGRlc2NyaXB0aW9uICJUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIG9yZy5mcmVlZGVza3RvcC5Ob3Rp ZmljYXRpb25zCmludGVyZmFjZVtmbjpkYnVzLXNwZWNdLiAgSXQgc2hvd3Mgbm90aWZpY2F0aW9u cyB1c2luZyBzdHVtcHdtOm1lc3NhZ2UKYnkgZGVmYXVsdC4iKQogICAgKGxpY2Vuc2UgbGljZW5z ZTpncGwzKykpKQoKKGRlZmluZS1wdWJsaWMgc2JjbC1zdHVtcHdtLWJhdHRlcnktcG9ydGFibGUK ICAocGFja2FnZQogICAgKGluaGVyaXQgc3R1bXB3bS1jb250cmliKQogICAgKG5hbWUgInNiY2wt c3R1bXB3bS1iYXR0ZXJ5LXBvcnRhYmxlIikKICAgIChidWlsZC1zeXN0ZW0gYXNkZi1idWlsZC1z eXN0ZW0vc2JjbCkKICAgIChpbnB1dHMKICAgICAobGlzdCBzYmNsLWNsLXBwY3JlCiAgICAgICAg ICAgKGxpc3Qgc3R1bXB3bSAibGliIikpKQogICAgKGFyZ3VtZW50cwogICAgICcoIzphc2Qtc3lz dGVtcyAnKCJiYXR0ZXJ5LXBvcnRhYmxlIikKICAgICAgICM6cGhhc2VzCiAgICAgICAobW9kaWZ5 LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCiAgICAgICAgIChhZGQtYWZ0ZXIgJ3VucGFjayAnY2hk aXIKICAgICAgICAgICAobGFtYmRhIF8gKGNoZGlyICJtb2RlbGluZS9iYXR0ZXJ5LXBvcnRhYmxl IikpKSkpKQogICAgKHN5bm9wc2lzICJCYXR0ZXJ5IGxldmVsIGluZGljYXRvciBmb3IgU3R1bXBX TSIpCiAgICAoZGVzY3JpcHRpb24gIlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgYmF0dGVyeSBsZXZl bCBpbmRpY2F0b3IgZm9yIHRoZQptb2RlbGluZS4gIEl0IGNhbiBiZSBkaXNwbGF5ZWQgaW4gdGhl IG1vZGVsaW5lIHdpdGggJUIuIikKICAgIChsaWNlbnNlIChsaXN0IGxpY2Vuc2U6ZXhwYXQgbGlj ZW5zZTpncGwzKykpKSkKCihkZWZpbmUtcHVibGljIGxlbW9uYmFyCiAgKHBhY2thZ2UKICAgIChu YW1lICJsZW1vbmJhciIpCiAgICAodmVyc2lvbiAiMS40IikKICAgIChzb3VyY2UgKG9yaWdpbgog ICAgICAgICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQogICAgICAgICAgICAgICh1cmkgKGdpdC1y ZWZlcmVuY2UKICAgICAgICAgICAgICAgICAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vTGVt b25Cb3kvYmFyIikKICAgICAgICAgICAgICAgICAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2 IiB2ZXJzaW9uKSkpKQogICAgICAgICAgICAgIChmaWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgbmFt ZSB2ZXJzaW9uKSkKICAgICAgICAgICAgICAoc2hhMjU2CiAgICAgICAgICAgICAgIChiYXNlMzIK ICAgICAgICAgICAgICAgICIwc20xbHh4ZjB5Mm44N252YzhtejZpNm16YjMyZjRxYWI4MHBwYjI4 aWJyd2ZpcjZqc2xuIikpKSkKICAgIChidWlsZC1zeXN0ZW0gZ251LWJ1aWxkLXN5c3RlbSkKICAg IChhcmd1bWVudHMKICAgICAobGlzdAogICAgICAjOnRlc3RzPyAjZiAgICAgICAgICAgICAgICAg ICAgICAgO25vIHRlc3Qgc3VpdGUKICAgICAgIzptYWtlLWZsYWdzCiAgICAgICN+KGxpc3QgIyQo c3RyaW5nLWFwcGVuZCAiQ0M9IiAoY2MtZm9yLXRhcmdldCkpCiAgICAgICAgICAgICAgKHN0cmlu Zy1hcHBlbmQgIlBSRUZJWD0iICMkb3V0cHV0KSkKICAgICAgIzpwaGFzZXMKICAgICAgI34obW9k aWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCiAgICAgICAgICAoZGVsZXRlICdjb25maWd1cmUp KSkpCiAgICAoaW5wdXRzCiAgICAgKGxpc3QgbGlieGNiKSkKICAgIChuYXRpdmUtaW5wdXRzCiAg ICAgKGxpc3QgcGVybCkpCiAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vTGVtb25C b3kvYmFyIikKICAgIChzeW5vcHNpcyAiRmVhdGhlcndlaWdodCBzdGF0dXMgYmFyIikKICAgIChk ZXNjcmlwdGlvbgogICAgICJAY29kZXtsZW1vbmJhcn0gKGZvcm1lcmx5IGtub3duIGFzIEBjb2Rl e2Jhcn0pIGlzIGEgbGlnaHR3ZWlnaHQKYmFyIGVudGlyZWx5IGJhc2VkIG9uIFhDQi4gIFByb3Zp ZGVzIGZ1bGwgVVRGLTggc3VwcG9ydCwgYmFzaWMKZm9ybWF0dGluZywgUmFuZFIgYW5kIFhpbmVy YW1hIHN1cHBvcnQgYW5kIEVXTUggY29tcGxpYW5jZSB3aXRob3V0Cndhc3RpbmcgeW91ciBwcmVj aW91cyBtZW1vcnkuIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6eDExKSkpCgooZGVmaW5lLXB1Ymxp YyBsZW1vbmJhci14ZnQKICA7OyBVcHN0cmVhbSB2Mi4wIHRhZyBpcyBzZXZlcmFsIHllYXJzIGJl aGluZCBIRUFECiAgKGxldCAoKGNvbW1pdCAiNDgxZTEyMzYzZTJhMGZlMGRkZDIxNzZhOGUwMDMz OTJiZTkwZWQwMiIpKQogICAgKHBhY2thZ2UKICAgICAgKGluaGVyaXQgbGVtb25iYXIpCiAgICAg IChuYW1lICJsZW1vbmJhci14ZnQiKQogICAgICAodmVyc2lvbiAoc3RyaW5nLWFwcGVuZCAiMi4w LiIgKHN0cmluZy10YWtlIGNvbW1pdCA3KSkpCiAgICAgIChzb3VyY2UgKG9yaWdpbgogICAgICAg ICAgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCiAgICAgICAgICAgICAgICAodXJpIChnaXQtcmVm ZXJlbmNlCiAgICAgICAgICAgICAgICAgICAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vZHJz Y3JlYW0vbGVtb25iYXIteGZ0IikKICAgICAgICAgICAgICAgICAgICAgIChjb21taXQgY29tbWl0 KSkpCiAgICAgICAgICAgICAgICAoZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lv bikpCiAgICAgICAgICAgICAgICAoc2hhMjU2CiAgICAgICAgICAgICAgICAgKGJhc2UzMgogICAg ICAgICAgICAgICAgICAiMDU4OGczN2gxOGx2NTBoN3c4dmZid2h2YzNpYWpoN3NkcjUzODQ4c3Bh aWY5OW5oM21oNCIpKSkpCiAgICAgIChpbnB1dHMKICAgICAgIChtb2RpZnktaW5wdXRzIChwYWNr YWdlLWlucHV0cyBsZW1vbmJhcikKICAgICAgICAgKHByZXBlbmQgZnJlZXR5cGUgbGlieGZ0IGxp YngxMSkpKQogICAgICAoYXJndW1lbnRzCiAgICAgICAoc3Vic3RpdHV0ZS1rZXl3b3JkLWFyZ3Vt ZW50cyAocGFja2FnZS1hcmd1bWVudHMgbGVtb25iYXIpCiAgICAgICAgICgoIzptYWtlLWZsYWdz IG1ha2UtZmxhZ3MpCiAgICAgICAgICAjfigjJEBtYWtlLWZsYWdzCiAgICAgICAgICAgICAoZm9y bWF0ICNmICJDRkxBR1M9fmEgLURWRVJTSU9OPSd+cyciCiAgICAgICAgICAgICAgICAgICAgIChz dHJpbmctYXBwZW5kCiAgICAgICAgICAgICAgICAgICAgICAiLUkiICMkKHRoaXMtcGFja2FnZS1p bnB1dCAiZnJlZXR5cGUiKQogICAgICAgICAgICAgICAgICAgICAgIi9pbmNsdWRlL2ZyZWV0eXBl MiIpCiAgICAgICAgICAgICAgICAgICAgICMkdmVyc2lvbikpKSkpCiAgICAgIChob21lLXBhZ2Ug Imh0dHBzOi8vZ2l0aHViLmNvbS9kcnNjcmVhbS9sZW1vbmJhci14ZnQiKQogICAgICAoc3lub3Bz aXMKICAgICAgIChzdHJpbmctYXBwZW5kCiAgICAgICAgKHBhY2thZ2Utc3lub3BzaXMgbGVtb25i YXIpCiAgICAgICAgIiB3aXRoIGZvbnRjb25maWcgc3VwcG9ydCIpKQogICAgICAoZGVzY3JpcHRp b24KICAgICAgIChzdHJpbmctYXBwZW5kCiAgICAgICAgKHBhY2thZ2UtZGVzY3JpcHRpb24gbGVt b25iYXIpCiAgICAgICAgIlRoaXMgaXMgYSBmb3JrIG9mIHRoZSBAY29kZXtsZW1vbmJhcn0gcGFj a2FnZSB0aGF0IGFkZHMgZm9udGNvbmZpZwpzdXBwb3J0LCBmb3IgZWFzaWVyIHVuaWNvZGUgdXNh Z2UuIikpKSkpCgooZGVmaW5lLXB1YmxpYyB4Y2xpY2tyb290CiAgKHBhY2thZ2UKICAgIChuYW1l ICJ4Y2xpY2tyb290IikKICAgICh2ZXJzaW9uICIxLjMiKQogICAgKHNvdXJjZSAob3JpZ2luCiAg ICAgICAgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCiAgICAgICAgICAgICAgKHVyaSAoZ2l0LXJl ZmVyZW5jZQogICAgICAgICAgICAgICAgICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9waGls bGJ1c2gveGNsaWNrcm9vdCIpCiAgICAgICAgICAgICAgICAgICAgKGNvbW1pdCAoc3RyaW5nLWFw cGVuZCAidiIgdmVyc2lvbikpKSkKICAgICAgICAgICAgICAoZmlsZS1uYW1lIChnaXQtZmlsZS1u YW1lIG5hbWUgdmVyc2lvbikpCiAgICAgICAgICAgICAgKHNoYTI1NgogICAgICAgICAgICAgICAo YmFzZTMyCiAgICAgICAgICAgICAgICAiMHduc2Z4dmg0djAycjJqanloMm42amZrYmoyZG5hMmhs bTZhbmw0YjM2bHdqaTc0OWsyayIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGdudS1idWlsZC1zeXN0 ZW0pCiAgICAoaW5wdXRzCiAgICAgKGxpc3QgbGlieDExKSkKICAgIChhcmd1bWVudHMKICAgICBg KCM6dGVzdHM/ICNmIDtubyB0ZXN0IHN1aXRlCiAgICAgICAjOm1ha2UtZmxhZ3MKICAgICAgIChs aXN0ICwoc3RyaW5nLWFwcGVuZCAiQ0M9IiAoY2MtZm9yLXRhcmdldCkpCiAgICAgICAgICAgICAo c3RyaW5nLWFwcGVuZCAiUFJFRklYPSIgJW91dHB1dCkpCiAgICAgICAjOnBoYXNlcwogICAgICAg KG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcwogICAgICAgICAoZGVsZXRlICdjb25maWd1 cmUpKSkpCiAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vcGhpbGxidXNoL3hjbGlj a3Jvb3QiKQogICAgKHN5bm9wc2lzICJSdW4gYSBjb21tYW5kIHdoZW4gYSBtb3VzZSBidXR0b24g aXMgcHJlc3NlZCBvbiB0aGUgcm9vdCB3aW5kb3ciKQogICAgKGRlc2NyaXB0aW9uICJAY29kZXt4 Y2xpY2tyb290fSBydW5zIGEgY29tbWFuZCBldmVyeSB0aW1lIGEgZ2l2ZW4gbW91c2UKYnV0dG9u IGlzIHByZXNzZWQgb24gdGhlIHJvb3Qgd2luZG93LiIpCiAgICAobGljZW5zZSBsaWNlbnNlOnB1 YmxpYy1kb21haW4pKSkKCihkZWZpbmUtcHVibGljIHhpbml0cmMteHNlc3Npb24KICAobGV0ICgo Y29tbWl0ICJjYmZjNzdhMWNjYWYwN2I3ZDhhMzVmNGQ4MDA3YzcxMDJmMzY1Mzc0IikKICAgICAg ICAocmV2aXNpb24gIjAiKSkKICAgIChwYWNrYWdlCiAgICAgIChuYW1lICJ4aW5pdHJjLXhzZXNz aW9uIikKICAgICAgKHZlcnNpb24gKGdpdC12ZXJzaW9uICIxIiByZXZpc2lvbiBjb21taXQpKQog ICAgICAoc291cmNlCiAgICAgICAob3JpZ2luCiAgICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQog ICAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCiAgICAgICAgICAgICAgICh1cmwgImh0dHBzOi8v YXVyLmFyY2hsaW51eC5vcmcveGluaXQteHNlc3Npb24uZ2l0IikKICAgICAgICAgICAgICAgKGNv bW1pdCBjb21taXQpKSkKICAgICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZl cnNpb24pKQogICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyICIxMm52M3F5amh5Mmw5 bWNiNTQ3ZjQxNGQ4Ymo3OW1oZGhzcmEwZzh4N3g3MWIxeHhsMTViIikpKSkKICAgICAgKGJ1aWxk LXN5c3RlbSBjb3B5LWJ1aWxkLXN5c3RlbSkKICAgICAgKGFyZ3VtZW50cwogICAgICAgKGxpc3QK ICAgICAgICAjOnBoYXNlcwogICAgICAgICN+KG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNl cwogICAgICAgICAgICAoYWRkLWFmdGVyICdpbnN0YWxsICdwYXRjaC14c2Vzc2lvbi1maWxlCiAg ICAgICAgICAgICAgKGxhbWJkYSBfCiAgICAgICAgICAgICAgICAobGV0KiAoKHhpbml0cmMtZGVz a3RvcAogICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAjJG91dHB1dCAiL3No YXJlL3hzZXNzaW9ucy94aW5pdHJjLmRlc2t0b3AiKSkKICAgICAgICAgICAgICAgICAgICAgICAo eGluaXRyYy1oZWxwZXIKICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1hcHBlbmQgIyRv dXRwdXQgIi9iaW4veGluaXRyY3Nlc3Npb24taGVscGVyIikpKQogICAgICAgICAgICAgICAgICAo c3Vic3RpdHV0ZSogeGluaXRyYy1kZXNrdG9wCiAgICAgICAgICAgICAgICAgICAgKCgiRXhlYz14 aW5pdHJjc2Vzc2lvbi1oZWxwZXIiKQogICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVu ZCAiRXhlYz0iIHhpbml0cmMtaGVscGVyKSkpKSkpKQogICAgICAgICM6aW5zdGFsbC1wbGFuCiAg ICAgICAgI34obGlzdCAnKCJ4aW5pdHJjc2Vzc2lvbi1oZWxwZXIiICJiaW4vIikKICAgICAgICAg ICAgICAgICcoInhpbml0cmMuZGVza3RvcCIgInNoYXJlL3hzZXNzaW9ucy8iKSkpKQogICAgICAo aG9tZS1wYWdlICJodHRwczovL2F1ci5hcmNobGludXgub3JnL3BhY2thZ2VzL3hpbml0LXhzZXNz aW9uLyIpCiAgICAgIChzeW5vcHNpcyAiVXNlIH4vLnhpbml0cmMgYXMgYW4geHNlc3Npb24gZnJv bSB5b3VyIGRpc3BsYXkgbWFuYWdlciIpCiAgICAgIChkZXNjcmlwdGlvbgogICAgICAgIlhpbml0 cmMteHNlc3Npb24gYWxsb3dzIEBjb2Rle34vLnhpbml0cmN9IHRvIGJlIHJ1biBhcyBhIHNlc3Np b24gZnJvbQp5b3VyIGRpc3BsYXkgbWFuYWdlci4gIE1ha2UgQGNvZGV7fi8ueGluaXRyY30gZXhl Y3V0YWJsZSBhbmQgdXNlIHRoaXMgcGFja2FnZQppbiB5b3VyIHN5c3RlbSBjb25maWd1cmF0aW9u IGhhdmUgdGhpcyB4c2Vzc2lvbiBhdmFpbGFibGUgdG8geW91ciBkaXNwbGF5Cm1hbmFnZXIuIikK ICAgICAgKGxpY2Vuc2UgbGljZW5zZTpncGwzKSkpKQoKKGRlZmluZS1wdWJsaWMgeG1lbnUKICAo cGFja2FnZQogICAgKG5hbWUgInhtZW51IikKICAgICh2ZXJzaW9uICI0LjUuNSIpCiAgICAoc291 cmNlIChvcmlnaW4KICAgICAgICAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKICAgICAgICAgICAg ICAodXJpIChnaXQtcmVmZXJlbmNlCiAgICAgICAgICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9n aXRodWIuY29tL3BoaWxsYnVzaC94bWVudSIpCiAgICAgICAgICAgICAgICAgICAgKGNvbW1pdCAo c3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKICAgICAgICAgICAgICAoZmlsZS1uYW1lIChn aXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpCiAgICAgICAgICAgICAgKHNoYTI1NgogICAgICAg ICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICAgICAiMHFneGtydjlqbm5uZjNweDd6aDBwYWY4 eHNyNGJjcGYwZjJucTl6eTAxMm0yMTQyMjNocyIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGdudS1i dWlsZC1zeXN0ZW0pCiAgICAoaW5wdXRzCiAgICAgKGxpc3QgbGlieDExIGxpYnhpbmVyYW1hIGxp YnhmdCBmcmVldHlwZSBpbWxpYjIpKQogICAgKGFyZ3VtZW50cwogICAgIGAoIzp0ZXN0cz8gI2Yg O25vIHRlc3Qgc3VpdGUKICAgICAgICM6bWFrZS1mbGFncwogICAgICAgKGxpc3QgKHN0cmluZy1h cHBlbmQgIkNDPSIgLChjYy1mb3ItdGFyZ2V0KSkKICAgICAgICAgICAgIChzdHJpbmctYXBwZW5k ICJQUkVGSVg9IiAlb3V0cHV0KQogICAgICAgICAgICAgKHN0cmluZy1hcHBlbmQgIkNGTEFHUz0i CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLUkiIChhc3NvYy1yZWYgJWJ1aWxkLWlucHV0 cyAiZnJlZXR5cGUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIi9pbmNsdWRlL2ZyZWV0 eXBlMiIpKQogICAgICAgIzpwaGFzZXMKICAgICAgIChtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1w aGFzZXMKICAgICAgICAgKGRlbGV0ZSAnY29uZmlndXJlKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0 cHM6Ly9naXRodWIuY29tL3BoaWxsYnVzaC94bWVudSIpCiAgICAoc3lub3BzaXMgIk1lbnUgdXRp bGl0eSBmb3IgWCIpCiAgICAoZGVzY3JpcHRpb24gIkBjb2Rle3htZW51fSByZWNlaXZlcyBhIG1l bnUgc3BlY2lmaWNhdGlvbiBpbiBzdGRpbiwgc2hvd3MKYSBtZW51IGZvciB0aGUgdXNlciB0byBz ZWxlY3Qgb25lIG9mIHRoZSBvcHRpb25zLCBhbmQgb3V0cHV0cyB0aGUgb3B0aW9uCnNlbGVjdGVk IHRvIHN0ZG91dC4gIEl0IGNhbiBiZSBjb250cm9sbGVkIGJvdGggdmlhIG1vdXNlIGFuZCB2aWEg a2V5Ym9hcmQuIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6cHVibGljLWRvbWFpbikpKQoKKGRlZmlu ZS1wdWJsaWMgaWRlc2sKICAocGFja2FnZQogICAgKG5hbWUgImlkZXNrIikKICAgICh2ZXJzaW9u ICIwLjcuNSIpCiAgICAoc291cmNlCiAgICAgKG9yaWdpbgogICAgICAgKG1ldGhvZCB1cmwtZmV0 Y2gpCiAgICAgICAodXJpIChzdHJpbmctYXBwZW5kCiAgICAgICAgICAgICAibWlycm9yOi8vc291 cmNlZm9yZ2UvaWRlc2svaWRlc2svaWRlc2stIiB2ZXJzaW9uCiAgICAgICAgICAgICAiL2lkZXNr LSIgdmVyc2lvbiAiLnRhci5iejIiKSkKICAgICAgIChzaGEyNTYKICAgICAgICAoYmFzZTMyCiAg ICAgICAgICIxbHhrMnl2Z3lzeHdsNTE0emM4Mmx3cjFkd2M4Y2Q2MnNsZ3I1bHpkaGpiZHJ4Znlt ZHlsIikpCiAgICAgICAobW9kdWxlcyAnKChndWl4IGJ1aWxkIHV0aWxzKQogICAgICAgICAgICAg ICAgICAoaWNlLTkgZm9ybWF0KSkpCiAgICAgICAoc25pcHBldAogICAgICAgICcobGV0KiAoKGZp bGUgICAgICJzcmMvRGVza3RvcENvbmZpZy5jcHAiKQogICAgICAgICAgICAgICAgKHRlbXBsYXRl IChzdHJpbmctYXBwZW5kIGZpbGUgIi5YWFhYWFgiKSkKICAgICAgICAgICAgICAgIChvdXQgICAg ICAobWtzdGVtcCEgdGVtcGxhdGUpKQogICAgICAgICAgICAgICAgKHN0ICAgICAgIChzdGF0IGZp bGUpKQogICAgICAgICAgICAgICAgKG1vZGUgICAgIChzdGF0Om1vZGUgc3QpKSkKICAgICAgICAg ICAoY2FsbC13aXRoLWFzY2lpLWlucHV0LWZpbGUgZmlsZQogICAgICAgICAgICAgKGxhbWJkYSAo cCkKICAgICAgICAgICAgICAgKGZvcm1hdCBvdXQgIn57fmF+JX59IiAnKCIjaW5jbHVkZSA8dW5p c3RkLmg+IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiNpbmNsdWRl IDxzeXMvc3RhdC5oPiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIj aW5jbHVkZSA8c3lzL3R5cGVzLmg+IikpCiAgICAgICAgICAgICAgIChkdW1wLXBvcnQgcCBvdXQp CiAgICAgICAgICAgICAgIChjbG9zZSBvdXQpCiAgICAgICAgICAgICAgIChjaG1vZCB0ZW1wbGF0 ZSBtb2RlKQogICAgICAgICAgICAgICAocmVuYW1lLWZpbGUgdGVtcGxhdGUgZmlsZSkKICAgICAg ICAgICAgICAgI3QpKSkpKSkKICAgIChidWlsZC1zeXN0ZW0gZ251LWJ1aWxkLXN5c3RlbSkKICAg IChpbnB1dHMKICAgICAobGlzdCBsaWJ4MTEKICAgICAgICAgICBsaWJ4ZnQKICAgICAgICAgICBs aWJ4cG0KICAgICAgICAgICBsaWJwbmcKICAgICAgICAgICBmcmVldHlwZQogICAgICAgICAgIGlt bGliMi0xLjcKICAgICAgICAgICBzZWQpKQogICAgKG5hdGl2ZS1pbnB1dHMKICAgICAobGlzdCBw a2ctY29uZmlnKSkKICAgIChhcmd1bWVudHMKICAgICBgKCM6dGVzdHM/ICNmKSkgO25vIHRlc3Qg c3VpdGUKICAgIChob21lLXBhZ2UgImh0dHBzOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2lk ZXNrLyIpCiAgICAoc3lub3BzaXMgIkFkZCBpY29ucyBvbiBYIGRlc2t0b3AgYW5kIHNldCBiYWNr Z3JvdW5kIGltYWdlIGZvciB3YWxscGFwZXIiKQogICAgKGRlc2NyaXB0aW9uICJJZGVzayBpcyBw cm9ncmFtIHRoYXQgZHJhd3MgZGVza3RvcCBpY29ucy4gIEVhY2ggaWNvbiB3aWxsCmV4ZWN1dGUg YSBzaGVsbCBjb21tYW5kIG9uIGEgY29uZmlndXJhYmxlIGFjdGlvbi4gIFRoZSBpY29ucyBjYW4g YmUgbW92ZWQgb24KdGhlIGRlc2t0b3AgYnkgZHJhZ2dpbmcgdGhlbSwgYW5kIHRoZSBpY29ucyB3 aWxsIHJlbWVtYmVyIHRoZWlyIHBvc2l0aW9ucyBvbgpzdGFydC11cC4iKQogICAgKGxpY2Vuc2Ug bGljZW5zZTpic2QtMykpKQoKKGRlZmluZS1wdWJsaWMgeG5vdGlmeQogIChwYWNrYWdlCiAgICAo bmFtZSAieG5vdGlmeSIpCiAgICAodmVyc2lvbiAiMC44LjEiKQogICAgKHNvdXJjZSAob3JpZ2lu CiAgICAgICAgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCiAgICAgICAgICAgICAgKHVyaSAoZ2l0 LXJlZmVyZW5jZQogICAgICAgICAgICAgICAgICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9w aGlsbGJ1c2gveG5vdGlmeSIpCiAgICAgICAgICAgICAgICAgICAgKGNvbW1pdCAoc3RyaW5nLWFw cGVuZCAidiIgdmVyc2lvbikpKSkKICAgICAgICAgICAgICAoZmlsZS1uYW1lIChnaXQtZmlsZS1u YW1lIG5hbWUgdmVyc2lvbikpCiAgICAgICAgICAgICAgKHNoYTI1NgogICAgICAgICAgICAgICAo YmFzZTMyCiAgICAgICAgICAgICAgICAiMWp4bXM0bWQybXdmamdtMnBnZzN2YWtwcDMzODAwamJu OWhubDBqNGp5ZmM5ZjFja2JzdiIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGdudS1idWlsZC1zeXN0 ZW0pCiAgICAoaW5wdXRzCiAgICAgKGxpc3QgbGlieDExIGxpYnhmdCBsaWJ4aW5lcmFtYSBpbWxp YjIpKQogICAgKGFyZ3VtZW50cwogICAgIGAoIzptYWtlLWZsYWdzCiAgICAgICAobGlzdCAoc3Ry aW5nLWFwcGVuZCAiQ0M9IiAsKGNjLWZvci10YXJnZXQpKQogICAgICAgICAgICAgKHN0cmluZy1h cHBlbmQgIlBSRUZJWD0iICVvdXRwdXQpCiAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAiQ0ZM QUdTPSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICItSSIgKGFzc29jLXJlZiAlYnVpbGQt aW5wdXRzICJmcmVldHlwZSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL2luY2x1ZGUv ZnJlZXR5cGUyIikpCiAgICAgICAjOnRlc3RzPyAjZiA7bm8gdGVzdCBzdWl0ZQogICAgICAgIzpw aGFzZXMKICAgICAgIChtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMKICAgICAgICAgKGRl bGV0ZSAnY29uZmlndXJlKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3Bo aWxsYnVzaC94bm90aWZ5IikKICAgIChzeW5vcHNpcyAiRGlzcGxheXMgYSBub3RpZmljYXRpb24g b24gdGhlIHNjcmVlbiIpCiAgICAoZGVzY3JpcHRpb24gIlhOb3RpZnkgcmVjZWl2ZXMgYSBub3Rp ZmljYXRpb24gc3BlY2lmaWNhdGlvbiBpbiBzdGRpbiBhbmQKc2hvd3MgYSBub3RpZmljYXRpb24g Zm9yIHRoZSB1c2VyIG9uIHRoZSBzY3JlZW4uIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQp KSkKCihkZWZpbmUtcHVibGljIGNhZ2VicmVhawogIChwYWNrYWdlCiAgICAobmFtZSAiY2FnZWJy ZWFrIikKICAgICh2ZXJzaW9uICIyLjMuMSIpCiAgICAoc291cmNlIChvcmlnaW4KICAgICAgICAg ICAgICAobWV0aG9kIGdpdC1mZXRjaCkKICAgICAgICAgICAgICAodXJpIChnaXQtcmVmZXJlbmNl CiAgICAgICAgICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL3Byb2plY3QtcmVw by9jYWdlYnJlYWsiKQogICAgICAgICAgICAgICAgICAgIChjb21taXQgdmVyc2lvbikpKQogICAg ICAgICAgICAgIChmaWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgbmFtZSB2ZXJzaW9uKSkKICAgICAg ICAgICAgICAoc2hhMjU2CiAgICAgICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgICAgICIw ZmlyanBwN3F3NGtiMmgxemg1cHY1azB4ZjBqdng2eDByMHM3ajZ5N2RobGg1ajBzMDBxIikpKSkK ICAgIChidWlsZC1zeXN0ZW0gbWVzb24tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAg IChsaXN0CiAgICAgICM6Y29uZmlndXJlLWZsYWdzICN+KGxpc3QgIi1EeHdheWxhbmQ9dHJ1ZSIg Ii1EbWFuLXBhZ2VzPXRydWUiKQogICAgICA7OyBYWFg6IFJ1bm5pbmcgY2FnZWJyZWFrIHRlc3Rz IG5lZWQgbW9yZSB0b29scywgc3VjaCBhczogY2xhbmctZm9ybWF0LAogICAgICA7OyBzaGVsbGNo ZWNrLCBnaXQsIGdudXBnIC4uLgogICAgICAjOnRlc3RzPyAjZgogICAgICAjOnBoYXNlcwogICAg ICAjfihtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMKICAgICAgICAgIChhZGQtYWZ0ZXIg J3VucGFjayAnZml4LWRhdGEtZGlyCiAgICAgICAgICAgIChsYW1iZGEgXwogICAgICAgICAgICAg IChzdWJzdGl0dXRlKiAnKCJjYWdlYnJlYWsuYyIgIm1lc29uLmJ1aWxkIikKICAgICAgICAgICAg ICAgICgoIi9ldGMvIikgKHN0cmluZy1hcHBlbmQgIyRvdXRwdXQgIi9ldGMvIikpCiAgICAgICAg ICAgICAgICAoKCIvdXNyL3NoYXJlLyIpIChzdHJpbmctYXBwZW5kICMkb3V0cHV0ICIvdXNyL3No YXJlLyIpKSkpKSkpKQogICAgKG5hdGl2ZS1pbnB1dHMgKGxpc3QgcGtnLWNvbmZpZyBzY2RvYykp CiAgICAoaW5wdXRzIChsaXN0IGxpYmV2ZGV2IHBhbmdvIHdscm9vdHMpKQogICAgKGhvbWUtcGFn ZSAiaHR0cHM6Ly9naXRodWIuY29tL3Byb2plY3QtcmVwby9jYWdlYnJlYWsiKQogICAgKHN5bm9w c2lzICJUaWxpbmcgd2F5bGFuZCBjb21wb3NpdG9yIGluc3BpcmVkIGJ5IHJhdHBvaXNvbiIpCiAg ICAoZGVzY3JpcHRpb24KICAgICAiQGNvbW1hbmR7Y2FnZWJyZWFrfSBpcyBhIHNsaW0sIGtleWJv YXJkLWNvbnRyb2xsZWQsIHRpbGluZyBjb21wb3NpdG9yCmZvciB3YXlsYW5kIGNvbmNlcHR1YWxs eSBiYXNlZCBvbiB0aGUgWDExIHdpbmRvdyBtYW5hZ2VyCkBjb21tYW5ke3JhdHBvaXNvbn0uIikK ICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKCihkZWZpbmUtcHVibGljIGxpYmRpc3BsYXkt aW5mbwogIChsZXQgKChjb21taXQgImViZWUzNTkzNWRhZDAxNDc4YWUxYWU1ZWFkMjk4YzRjZDgw MThhYzIiKQogICAgICAgIChyZXZpc2lvbiAiMCIpKQogICAgKHBhY2thZ2UKICAgICAgKG5hbWUg ImxpYmRpc3BsYXktaW5mbyIpCiAgICAgICh2ZXJzaW9uIChnaXQtdmVyc2lvbiAiMC4yLjAtZGV2 IiByZXZpc2lvbiBjb21taXQpKQogICAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGxhYi5mcmVl ZGVza3RvcC5vcmcvZW1lcnNpb24vbGliZGlzcGxheS1pbmZvIikKICAgICAgKHNvdXJjZQogICAg ICAgKG9yaWdpbgogICAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKICAgICAgICAgKHVyaSAoZ2l0 LXJlZmVyZW5jZSAodXJsIGhvbWUtcGFnZSkgKGNvbW1pdCBjb21taXQpKSkKICAgICAgICAgKGZp bGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKQogICAgICAgICAoc2hhMjU2CiAg ICAgICAgICAoYmFzZTMyICIxbHk4YWNkanhuOGw1NXkwd2MwN243cGI2cnpoOWRwcjF2YnNha2Rp YjJ6cmwwaTV5aDNhIikpKSkKICAgICAgKGJ1aWxkLXN5c3RlbSBtZXNvbi1idWlsZC1zeXN0ZW0p CiAgICAgIChhcmd1bWVudHMKICAgICAgIChsaXN0CiAgICAgICAgIzpwaGFzZXMgI34obW9kaWZ5 LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCiAgICAgICAgICAgICAgICAgICAgIChhZGQtYmVmb3Jl ICdjb25maWd1cmUgJ2ZpeC1tZXNvbi1maWxlCiAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJk YSogKCM6a2V5IG5hdGl2ZS1pbnB1dHMgaW5wdXRzICM6YWxsb3ctb3RoZXIta2V5cykKICAgICAg ICAgICAgICAgICAgICAgICAgIChzdWJzdGl0dXRlKiAibWVzb24uYnVpbGQiCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICgoIi91c3Ivc2hhcmUvaHdkYXRhL3BucC5pZHMiKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHN0cmluZy1hcHBlbmQgKGFzc29jLXJlZiAob3IgbmF0aXZlLWlu cHV0cyBpbnB1dHMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJod2RhdGEiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIi9zaGFyZS9od2RhdGEvcG5wLmlkcyIpKSkpKSkpKQogICAgICAobmF0aXZlLWlucHV0 cyAobGlzdCBgKCxod2RhdGEgInBucCIpIHB5dGhvbikpCiAgICAgIChzeW5vcHNpcyAiRURJRCBh bmQgRGlzcGxheUlEIGxpYnJhcnkiKQogICAgICAoZGVzY3JpcHRpb24KICAgICAgICJUaGlzIHBh Y2thZ2UgcHJvdmlkZXMgYSBsaWJyYXJ5IHRvIHJlYWQgQGFjcm9ueW17RURJRCwgRXh0ZW5kZWQK RGlzcGxheSBJZGVudGlmaWNhdGlvbiBEYXRhfSBhbmQgRGlzcGxheUlEIG1ldGFkYXRhIGZyb20g ZGlzcGxheSBkZXZpY2VzLiAgSXQKaGFzIHRoZSBmb2xsb3dpbmcgZ29hbHM6CgpAZW51bWVyYXRl CkBpdGVtClByb3ZpZGUgYSBzZXQgb2YgaGlnaC1sZXZlbCwgZWFzeS10by11c2UsIG9waW5pb25h dGVkIGZ1bmN0aW9ucwphcyB3ZWxsIGFzIGxvdy1sZXZlbCBmdW5jdGlvbnMgdG8gYWNjZXNzIGRl dGFpbGVkIGluZm9ybWF0aW9uLgpAaXRlbQpTaW1wbGljaXR5IGFuZCBjb3JyZWN0bmVzcyBvdmVy IHBlcmZvcm1hbmNlIGFuZCByZXNvdXJjZSB1c2FnZS4KQGl0ZW0KV2VsbC10ZXN0ZWQgYW5kIGZ1 enplZC4KQGVuZCBlbnVtZXJhdGUiKQogICAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpKQoK KGRlZmluZS1wdWJsaWMgbGlidWNsCiAgKHBhY2thZ2UKICAgIChuYW1lICJsaWJ1Y2wiKQogICAg KHZlcnNpb24gIjAuOC4yIikKICAgIChzb3VyY2UKICAgICAob3JpZ2luCiAgICAgICAobWV0aG9k IGdpdC1mZXRjaCkKICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKICAgICAgICAgICAgICh1cmwg Imh0dHBzOi8vZ2l0aHViLmNvbS92c3Rha2hvdi9saWJ1Y2wvIikKICAgICAgICAgICAgIChjb21t aXQgdmVyc2lvbikpKQogICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNp b24pKQogICAgICAgKHNoYTI1NgogICAgICAgIChiYXNlMzIgIjFqOG5weW1qaGNuemJ3aHgxd2dn cjg4MTQ4Y2dhOTIxNDM4ZmxmMXNuN213MWI5ZHI1NWYiKSkpKQogICAgKG5hdGl2ZS1pbnB1dHMK ICAgICAobGlzdCBhdXRvY29uZiBhdXRvbWFrZSBwa2ctY29uZmlnIGxpYnRvb2wpKQogICAgKGJ1 aWxkLXN5c3RlbSBnbnUtYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgIGAoIzp0ZXN0 cz8gI2YpKSA7OyBubyB0ZXN0cwogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3Zz dGFraG92L2xpYnVjbCIpCiAgICAoc3lub3BzaXMgIlVuaXZlcnNhbCBjb25maWd1cmF0aW9uIGxh bmd1YWdlIChVQ0wpIHBhcnNlciIpCiAgICAgKGRlc2NyaXB0aW9uICJsaWJ1Y2wgaW1wbGVtZW50 cyBhIGNvbmZpZ3VyYXRpb24gbGFuZ3VhZ2UgdGhhdCBpcyBlYXN5IHRvCnJlYWQgYW5kIHdyaXRl LCBhbmQgY29tcGF0aWJsZSB3aXRoIEpTT04uIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6YnNkLTIp KSkKCihkZWZpbmUtcHVibGljIGxhYndjCiAgKHBhY2thZ2UKICAgIChuYW1lICJsYWJ3YyIpCiAg ICAodmVyc2lvbiAiMC43LjEiKQogICAgKHNvdXJjZSAob3JpZ2luCiAgICAgICAgICAgICAgKG1l dGhvZCBnaXQtZmV0Y2gpCiAgICAgICAgICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQogICAgICAg ICAgICAgICAgICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9sYWJ3Yy9sYWJ3YyIpCiAgICAg ICAgICAgICAgICAgICAgKGNvbW1pdCB2ZXJzaW9uKSkpCiAgICAgICAgICAgICAgKGZpbGUtbmFt ZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKQogICAgICAgICAgICAgIChzaGEyNTYKICAg ICAgICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAgICAgIjA5ajZwNHAyYzAwcnBjcjY1cjZp Z2owbGxmYWJsZzVqMmQxeXM4N2t5aDg1OGRoYWpwemEiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBt ZXNvbi1idWlsZC1zeXN0ZW0pCiAgICAobmF0aXZlLWlucHV0cwogICAgIChsaXN0IHBrZy1jb25m aWcgZ2V0dGV4dC1taW5pbWFsIHNjZG9jKSkKICAgIChpbnB1dHMKICAgICAobGlzdCBjYWlybwog ICAgICAgICAgIGdsaWIKICAgICAgICAgICBsaWJyc3ZnCiAgICAgICAgICAgbGlieGNiCiAgICAg ICAgICAgbGlieG1sMgogICAgICAgICAgIHBhbmdvCiAgICAgICAgICAgd2xyb290cykpCiAgICAo aG9tZS1wYWdlICJodHRwczovL2xhYndjLmdpdGh1Yi5pbyIpCiAgICAoc3lub3BzaXMgIldpbmRv dy1zdGFja2luZyBjb21wb3NpdG9yIGZvciBXYXlsYW5kIikKICAgIChkZXNjcmlwdGlvbgogICAg ICJMYWJ3YyBpcyBsaWdodHdlaWdodCBhbmQgaW5kZXBlbmRlbnQgd2l0aCBhIGZvY3VzIG9uIHNp bXBseSBzdGFja2luZwp3aW5kb3dzIHdlbGwgYW5kIHJlbmRlcmluZyBzb21lIHdpbmRvdyBkZWNv cmF0aW9ucywgaXQgaXMgaW5zcGlyZWQgYnkgT3BlbmJveC4KSXQgdGFrZXMgYSBuby1ibGluZy9m cmlsbHMgYXBwcm9hY2ggYW5kIHNheXMgbm8gdG8gZmVhdHVyZXMgc3VjaCBhcyBpY29ucwooZXhj ZXB0IHdpbmRvdyBidXR0b25zKSwgYW5pbWF0aW9ucywgZGVjb3JhdGl2ZSBncmFkaWVudHMgYW5k IGFueSBvdGhlcgpvcHRpb25zIG5vdCByZXF1aXJlZCB0byByZWFzb25hYmx5IHJlbmRlciBjb21t b24gdGhlbWVzLiAgSXQgcmVsaWVzIG9uIGNsaWVudHMKZm9yIHBhbmVscywgc2NyZWVuc2hvdHMs IHdhbGxwYXBlcnMgYW5kIHNvIG9uIHRvIGNyZWF0ZSBhIGZ1bGwgZGVza3RvcAplbnZpcm9ubWVu dC4KCkxhYndjIHRyaWVzIHRvIHN0YXkgaW4ga2VlcGluZyB3aXRoIHdscm9vdHMgYW5kIHN3YXkg aW4gdGVybXMgb2YgZ2VuZXJhbAphcHByb2FjaCBhbmQgY29kaW5nIHN0eWxlLgoKTGFid2MgaGFz IG5vIHJlbGlhbmNlIG9uIGFueSBwYXJ0aWN1bGFyIERlc2t0b3AgRW52aXJvbm1lbnQsIERlc2t0 b3AgU2hlbGwgb3IKc2Vzc2lvbi4gIE5vciBkb2VzIGl0IGRlcGVuZCBvbiBhbnkgVUkgdG9vbGtp dHMgc3VjaCBhcyBRdCBvciBHVEsuIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6Z3BsMikpKQoKKGRl ZmluZS1wdWJsaWMgaGlrYXJpCiAgKHBhY2thZ2UKICAgIChuYW1lICJoaWthcmkiKQogICAgKHZl cnNpb24gIjIuMy4zIikKICAgIChzb3VyY2UKICAgICAob3JpZ2luCiAgICAgICAobWV0aG9kIHVy bC1mZXRjaCkKICAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQgImh0dHBzOi8vaGlrYXJpLmFjbWVs YWJzLnNwYWNlL3JlbGVhc2VzLyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgImhpa2FyaS0i IHZlcnNpb24gIi50YXIuZ3oiKSkKICAgICAgIChzaGEyNTYKICAgICAgICAoYmFzZTMyICIxcWpk OWRocG12NzVpZGY2amp6d2ZmOHdnbGlhZDRkMGFmOHBpaDk1MjZwMTR2cm55d3MwIikpKSkKICAg IChidWlsZC1zeXN0ZW0gZ251LWJ1aWxkLXN5c3RlbSkKICAgIChuYXRpdmUtaW5wdXRzCiAgICAg KGxpc3QgYm1ha2UgcGtnLWNvbmZpZyB3YXlsYW5kLXByb3RvY29scykpCiAgICAoaW5wdXRzCiAg ICAgKGxpc3QgY2Fpcm8KICAgICAgICAgICBsaWJpbnB1dC1taW5pbWFsCiAgICAgICAgICAgbGli dWNsCiAgICAgICAgICAgbGlieGtiY29tbW9uCiAgICAgICAgICAgbGludXgtcGFtCiAgICAgICAg ICAgcGFuZ28KICAgICAgICAgICB3YXlsYW5kCiAgICAgICAgICAgd2xyb290cy0wLjE1KSkKICAg IChhcmd1bWVudHMKICAgICBgKCM6dGVzdHM/ICNmICAgICAgICAgICAgICAgICAgICAgIDsgbm8g dGVzdHMKICAgICAgICM6bWFrZS1mbGFncwogICAgICAgKGxpc3QKICAgICAgICAoc3RyaW5nLWFw cGVuZCAiUFJFRklYPSIgKGFzc29jLXJlZiAlb3V0cHV0cyAib3V0IikpCiAgICAgICAgKHN0cmlu Zy1hcHBlbmQgIkNDPSIgLChjYy1mb3ItdGFyZ2V0KSkKICAgICAgICAiV0lUSF9YV0FZTEFORD1Z RVMiCiAgICAgICAgIldJVEhfU0NSRUVOQ09QWT1ZRVMiCiAgICAgICAgIldJVEhfTEFZRVJTSEVM TD1ZRVMiCiAgICAgICAgIldJVEhfVklSVFVBTF9JTlBVVD1ZRVMiKQogICAgICAgIzpwaGFzZXMK ICAgICAgIChtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMKICAgICAgICAgKGRlbGV0ZSAn Y29uZmlndXJlKQogICAgICAgICAocmVwbGFjZSAnYnVpbGQKICAgICAgICAgICAobGFtYmRhKiAo IzprZXkgaW5wdXRzIG91dHB1dHMgbWFrZS1mbGFncyAjOmFsbG93LW90aGVyLWtleXMpCiAgICAg ICAgICAgICAoYXBwbHkgaW52b2tlICJibWFrZSIgbWFrZS1mbGFncykpKQogICAgICAgICAocmVw bGFjZSAnaW5zdGFsbAogICAgICAgICAgIChsYW1iZGEqICgjOmtleSBpbnB1dHMgb3V0cHV0cyBt YWtlLWZsYWdzICM6YWxsb3ctb3RoZXIta2V5cykKICAgICAgICAgICAgIChhcHBseSBpbnZva2Ug ImJtYWtlIiAiaW5zdGFsbCIgbWFrZS1mbGFncykpKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6 Ly9oaWthcmkuYWNtZWxhYnMuc3BhY2UvIikKICAgIChzeW5vcHNpcyAiU3RhY2tpbmcgV2F5bGFu ZCBjb21wb3NpdG9yIHdpdGggdGlsaW5nIGNhcGFiaWxpdGllcyIpCiAgICAoZGVzY3JpcHRpb24K ICAgICAiSGlrYXJpIGlzIGEgc3RhY2tpbmcgV2F5bGFuZCBjb21wb3NpdG9yIHdpdGggYWRkaXRp b25hbCB0aWxpbmcKY2FwYWJpbGl0aWVzLiAgSXQgaXMgaGVhdmlseSBpbnNwaXJlZCBieSB0aGUg Q2FsbSBXaW5kb3cgbWFuYWdlcihjd20pLiIpCiAgICAobGljZW5zZSBsaWNlbnNlOmJzZC0yKSkp CgooZGVmaW5lLXB1YmxpYyBqd20KICAocGFja2FnZQogICAgKG5hbWUgImp3bSIpCiAgICAodmVy c2lvbiAiMi40LjMiKQogICAgKHNvdXJjZSAob3JpZ2luCiAgICAgICAgICAgICAgKG1ldGhvZCB1 cmwtZmV0Y2gpCiAgICAgICAgICAgICAgKHVyaSAoc3RyaW5nLWFwcGVuZAogICAgICAgICAgICAg ICAgICAgICJodHRwczovL2dpdGh1Yi5jb20vam9ld2luZy9qd20vcmVsZWFzZXMvZG93bmxvYWQv IgogICAgICAgICAgICAgICAgICAgICJ2IiB2ZXJzaW9uICIvandtLSIgdmVyc2lvbiAiLnRhci54 eiIpKQogICAgICAgICAgICAgIChzaGEyNTYKICAgICAgICAgICAgICAgKGJhc2UzMgogICAgICAg ICAgICAgICAgIjFhdjdyOXNwMjZyNWw3NHp2d2RteXl5emF2MjltdzViYWZpaHA3eTMzdnNqcWto NHdmemYiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBnbnUtYnVpbGQtc3lzdGVtKQogICAgKGFyZ3Vt ZW50cwogICAgIChsaXN0CiAgICAgICM6dGVzdHM/ICNmICAgOyBubyBjaGVjayB0YXJnZXQKICAg ICAgIzpwaGFzZXMKICAgICAgI34obW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCiAgICAg ICAgICAoYWRkLWFmdGVyICdpbnN0YWxsICdpbnN0YWxsLXhzZXNzaW9uCiAgICAgICAgICAgIChs YW1iZGEqICgjOmtleSBvdXRwdXRzICM6YWxsb3ctb3RoZXIta2V5cykKICAgICAgICAgICAgICAo bGV0KiAoKG91dCAoYXNzb2MtcmVmIG91dHB1dHMgIm91dCIpKQogICAgICAgICAgICAgICAgICAg ICAoeHNlc3Npb25zIChzdHJpbmctYXBwZW5kIG91dCAiL3NoYXJlL3hzZXNzaW9ucyIpKSkKICAg ICAgICAgICAgICAgIChta2Rpci1wIHhzZXNzaW9ucykKICAgICAgICAgICAgICAgIChjYWxsLXdp dGgtb3V0cHV0LWZpbGUKICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCB4c2Vzc2lv bnMgIi9qd20uZGVza3RvcCIpCiAgICAgICAgICAgICAgICAgIChsYW1iZGEgKHBvcnQpCiAgICAg ICAgICAgICAgICAgICAgKGZvcm1hdCBwb3J0ICJ+CiAgICAgICAgICAgICAgICAgICAgIFtEZXNr dG9wIEVudHJ5XX5ACiAgICAgICAgICAgICAgICAgICAgIE5hbWU9andtfkAKICAgICAgICAgICAg ICAgICAgICAgQ29tbWVudD1Kb2UncyBXaW5kb3cgTWFuYWdlcn5ACiAgICAgICAgICAgICAgICAg ICAgIEV4ZWM9fmEvYmluL2p3bX5ACiAgICAgICAgICAgICAgICAgICAgIFR5cGU9WFNlc3Npb25+ JSIgb3V0KSkpKSkpKSkpCiAgICAobmF0aXZlLWlucHV0cyAobGlzdCBwa2ctY29uZmlnKSkKICAg IChpbnB1dHMKICAgICAobGlzdCBjYWlybwogICAgICAgICAgIGxpYmpwZWctdHVyYm8KICAgICAg ICAgICBsaWJwbmcKICAgICAgICAgICAobGlicnN2Zy1mb3Itc3lzdGVtKQogICAgICAgICAgIGxp YnhleHQKICAgICAgICAgICBsaWJ4aW5lcmFtYQogICAgICAgICAgIGxpYnhtdQogICAgICAgICAg IGxpYnhwbQogICAgICAgICAgIGxpYnhyZW5kZXIKICAgICAgICAgICBsaWJ4dAogICAgICAgICAg IHBhbmdvKSkKICAgIChob21lLXBhZ2UgImh0dHA6Ly9qb2V3aW5nLm5ldC9wcm9qZWN0cy9qd20i KQogICAgKHN5bm9wc2lzICJKb2UncyBXaW5kb3cgTWFuYWdlciIpCiAgICAoZGVzY3JpcHRpb24K ICAgICAiSldNIGlzIGEgbGlnaHQtd2VpZ2h0IHdpbmRvdyBtYW5hZ2VyIGZvciB0aGUgWDExIFdp bmRvdyBTeXN0ZW0uICBpdCBpcwp3cml0dGVuIGluIEMgYW5kIHVzZXMgb25seSBYbGliIGF0IGEg bWluaW11bS4gIEJlY2F1c2Ugb2YgaXRzIHNtYWxsIGZvb3RwcmludCwKaXQgbWFrZXMgYSBnb29k IHdpbmRvdyBtYW5hZ2VyIGZvciBvbGRlciBjb21wdXRlcnMgYW5kIGxlc3MgcG93ZXJmdWwgc3lz dGVtcywKc3VjaCBhcyB0aGUgUmFzcGJlcnJ5IFBpLCB0aG91Z2ggaXQgaXMgcGVyZmVjdGx5IGNh cGFibGUgb2YgcnVubmluZyBvbiBtb2Rlcm4Kc3lzdGVtcy4iKQogICAgKGxpY2Vuc2UgbGljZW5z ZTpleHBhdCkpKQoKKGRlZmluZS1wdWJsaWMgbWp3bQogIChwYWNrYWdlCiAgICAobmFtZSAibWp3 bSIpCiAgICAodmVyc2lvbiAiNC4xLjAiKQogICAgKHNvdXJjZQogICAgIChvcmlnaW4KICAgICAg IChtZXRob2QgZ2l0LWZldGNoKQogICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQogICAgICAgICAg ICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL2NoaWt1L21qd20iKQogICAgICAgICAgICAgKGNv bW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKICAgICAgIChmaWxlLW5hbWUgKGdp dC1maWxlLW5hbWUgbmFtZSB2ZXJzaW9uKSkKICAgICAgIChzaGEyNTYKICAgICAgICAoYmFzZTMy ICIwbGdmcDJ4aWRodm1iajR6cXZ6ejlnOHp3Ym42bXowcGdhY2M1N2I0M2hhNTIzdmFtc2pxIikp KSkKICAgIChidWlsZC1zeXN0ZW0gZ251LWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAg ICAobGlzdAogICAgICAjOnRlc3RzPyAjZiAgIDsgbm8gY2hlY2sgdGFyZ2V0CiAgICAgICM6cGhh c2VzCiAgICAgICN+KG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcwogICAgICAgICAgKGFk ZC1hZnRlciAndW5wYWNrICdwYXRjaC1zdWJjYXRlZ29yeS5oCiAgICAgICAgICAgIChsYW1iZGEq ICgjOmtleSBpbnB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQogICAgICAgICAgICAgIChzdWJzdGl0 dXRlKiAiaW5jbHVkZS9zdWJjYXRlZ29yeS5oIgogICAgICAgICAgICAgICAgOzsgaWNvbiBuYW1l IHNob3VsZCBiZSBhcHBsaWNhdGlvbi1vdGhlciBpbnN0ZWFkIG9mCiAgICAgICAgICAgICAgICA7 OyBhcHBsaWNhdGlvbi1vdGhlcnMuCiAgICAgICAgICAgICAgICAoKCJhcHBsaWNhdGlvbnMtb3Ro ZXJzIikgImFwcGxpY2F0aW9ucy1vdGhlciIpKSkpKSkpCiAgICAoaG9tZS1wYWdlICJodHRwczov L2dpdGh1Yi5jb20vY2hpa3UvbWp3bSIpCiAgICAoc3lub3BzaXMgIkNyZWF0ZSBtZW51IGZvciBK V00iKQogICAgKGRlc2NyaXB0aW9uCiAgICAgIk1KV00gY2FuIGNyZWF0ZSBKV00ncyBtZW51IGZy b20gKGZyZWVkZXNrdG9wKSBkZXNrdG9wIGZpbGVzIGFuZCB0aGUKZ2VuZXJhdGVkIGZpbGUgY2Fu IGJlIGluY2x1ZGUgaW4gdGhlIHJvb3RtZW51IHNlY3Rpb24gb2YgeW91ciBqd20gY29uZmlnCmZp bGUuIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6Z3BsMispKSkKCihkZWZpbmUtcHVibGljIGRldm91 cgogIChwYWNrYWdlCiAgICAobmFtZSAiZGV2b3VyIikKICAgICh2ZXJzaW9uICIxMiIpCiAgICAo c291cmNlCiAgICAgKG9yaWdpbgogICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCiAgICAgICAodXJp IChnaXQtcmVmZXJlbmNlCiAgICAgICAgICAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vc2Fs bWFuLWFiZWRpbi9kZXZvdXIiKQogICAgICAgICAgICAgKGNvbW1pdCB2ZXJzaW9uKSkpCiAgICAg ICAoZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpCiAgICAgICAoc2hhMjU2 CiAgICAgICAgKGJhc2UzMiAiMXFxNWw2ZDBmbjhhemc3c2o3YTRtMmpzbWhscHN3bDU3OTNjbGN4 czFwMzR2eTR3YjJscCIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGdudS1idWlsZC1zeXN0ZW0pCiAg ICAoaW5wdXRzCiAgICAgKGxpc3QgbGlieDExKSkKICAgIChhcmd1bWVudHMKICAgICBgKCM6dGVz dHM/ICNmICAgICAgICAgICAgICAgICAgICAgIDtubyB0ZXN0cwogICAgICAgIzpwaGFzZXMKICAg ICAgIChtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMKICAgICAgICAgKGRlbGV0ZSAnY29u ZmlndXJlKSkgICAgICAgICAgIDtubyBjb25maWd1cmUgc2NyaXB0CiAgICAgICAjOm1ha2UtZmxh Z3MKICAgICAgIChsaXN0IChzdHJpbmctYXBwZW5kICJDQz0iICwoY2MtZm9yLXRhcmdldCkpCiAg ICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAiQklOX0RJUj0iICVvdXRwdXQgIi9iaW4iKSkpKQog ICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3NhbG1hbi1hYmVkaW4vZGV2b3VyIikK ICAgIChzeW5vcHNpcyAiWDExIHdpbmRvdyBzd2FsbG93ZXIiKQogICAgKGRlc2NyaXB0aW9uCiAg ICAgIkBjb21tYW5ke2Rldm91cn0gaGlkZXMgeW91ciBjdXJyZW50IHdpbmRvdyBiZWZvcmUgbGF1 bmNoaW5nIGFuIGV4dGVybmFsCnByb2dyYW0gYW5kIHVuaGlkZXMgaXQgYWZ0ZXIgcXVpdHRpbmcu IikKICAgIChsaWNlbnNlIGxpY2Vuc2U6Z3BsMikpKQoKKGRlZmluZS1wdWJsaWMgdHJheWVyLXNy ZwogIChwYWNrYWdlCiAgICAobmFtZSAidHJheWVyLXNyZyIpCiAgICAodmVyc2lvbiAiMS4xLjgi KQogICAgKHNvdXJjZQogICAgIChvcmlnaW4KICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQogICAg ICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQogICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIu Y29tL3Nhcmdvbi90cmF5ZXItc3JnIikKICAgICAgICAgICAgIChjb21taXQgKHN0cmluZy1hcHBl bmQgInRyYXllci0iIHZlcnNpb24pKSkpCiAgICAgICAoZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1l IG5hbWUgdmVyc2lvbikpCiAgICAgICAoc2hhMjU2CiAgICAgICAgKGJhc2UzMgogICAgICAgICAi MW12aHdhcWE5Ym5nOXdoM2pnM2I3eThnbDducHJieWRtaGc5NjN4ZzByMDc2anl6djBjZyIpKSkp CiAgICAobmF0aXZlLWlucHV0cwogICAgIChsaXN0IGxpYnhtdSBwa2ctY29uZmlnKSkKICAgIChp bnB1dHMKICAgICAobGlzdCBsaWJ4MTEgZ2RrLXBpeGJ1ZiBndGsrLTIpKQogICAgKGJ1aWxkLXN5 c3RlbSBnbnUtYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgIGAoIzp0ZXN0cz8gI2Yg OyBUaGVyZSBhcmUgbm8gdGVzdHMuCiAgICAgICAjOm1ha2UtZmxhZ3MKICAgICAgIChsZXQgKChv dXQgKGFzc29jLXJlZiAlb3V0cHV0cyAib3V0IikpKQogICAgICAgICAobGlzdCAoc3RyaW5nLWFw cGVuZCAiQ0M9IiAsKGNjLWZvci10YXJnZXQpKQogICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVu ZCAiUFJFRklYPSIgJW91dHB1dCkpKQogICAgICAgIzpwaGFzZXMKICAgICAgIChtb2RpZnktcGhh c2VzICVzdGFuZGFyZC1waGFzZXMKICAgICAgICAgKHJlcGxhY2UgJ2NvbmZpZ3VyZQogICAgICAg ICAgIChsYW1iZGEqICgjOmtleSBjb25maWd1cmUtZmxhZ3MgIzphbGxvdy1vdGhlci1rZXlzKQog ICAgICAgICAgICAgKGFwcGx5IGludm9rZSAiLi9jb25maWd1cmUiIGNvbmZpZ3VyZS1mbGFncykp KSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3Nhcmdvbi90cmF5ZXItc3Jn IikKICAgIChzeW5vcHNpcyAiTWluaW1hbCBHVEsgYmFzZWQgc3lzdGVtIHRyYXkiKQogICAgKGRl c2NyaXB0aW9uCiAgICAgIkBjb21tYW5ke3RyYXllcn0gaXMgc21hbGwgcHJvZ3JhbSBkZXNpZ25l ZCB0byBwcm92aWRlIHN5c3RyYXkKZnVuY3Rpb25hbGl0eSBwcmVzZW50IGluIEdOT01FL0tERSBk ZXNrdG9wIGVudmlyb25tZW50cyBmb3Igd2luZG93IG1hbmFnZXJzCndoaWNoIGRvIG5vdCBzdXBw b3J0IGl0LiIpCiAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCgooZGVmaW5lLXB1YmxpYyB3 bG9nb3V0CiAgKHBhY2thZ2UKICAgIChuYW1lICJ3bG9nb3V0IikKICAgICh2ZXJzaW9uICIxLjEu MSIpCiAgICAoc291cmNlIChvcmlnaW4KICAgICAgICAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkK ICAgICAgICAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCiAgICAgICAgICAgICAgICAgICAgKHVy bCAiaHR0cHM6Ly9naXRodWIuY29tL0FydHN5TWFjYXcvd2xvZ291dCIpCiAgICAgICAgICAgICAg ICAgICAgKGNvbW1pdCB2ZXJzaW9uKSkpCiAgICAgICAgICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZp bGUtbmFtZSBuYW1lIHZlcnNpb24pKQogICAgICAgICAgICAgIChzaGEyNTYKICAgICAgICAgICAg ICAgKGJhc2UzMgogICAgICAgICAgICAgICAgIjFzd2h6a3FremxpNTljODlwdnJha2Z2aWNkMDB4 N2dhODYwYzN4MnBiYjR5M3h6aXFmdmkiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBtZXNvbi1idWls ZC1zeXN0ZW0pCiAgICAobmF0aXZlLWlucHV0cwogICAgIChsaXN0IHBrZy1jb25maWcgc2Nkb2Mp KQogICAgKGlucHV0cwogICAgIChsaXN0IGd0ay1sYXllci1zaGVsbCBndGsrKSkKICAgIChhcmd1 bWVudHMKICAgICAnKCM6dGVzdHM/ICNmCiAgICAgICAjOnBoYXNlcwogICAgICAgKG1vZGlmeS1w aGFzZXMgJXN0YW5kYXJkLXBoYXNlcwogICAgICAgICAoYWRkLWFmdGVyICd1bnBhY2sgICdwYXRj aC1zb3VyY2UtcGF0aHMKICAgICAgICAgICAobGFtYmRhKiAoIzprZXkgb3V0cHV0cyAjOmFsbG93 LW90aGVyLWtleXMpCiAgICAgICAgICAgICAobGV0ICgob3V0IChhc3NvYy1yZWYgb3V0cHV0cyAi b3V0IikpKQogICAgICAgICAgICAgICAoc3Vic3RpdHV0ZSogIm1haW4uYyIKICAgICAgICAgICAg ICAgICAoKCIvdXNyL3NoYXJlIikgKHN0cmluZy1hcHBlbmQgb3V0ICIvc2hhcmUiKSkKICAgICAg ICAgICAgICAgICAoKCIvZXRjIikgKHN0cmluZy1hcHBlbmQgb3V0ICIvZXRjIikpKSkKICAgICAg ICAgICAgICN0KSkpKSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9BcnRzeU1h Y2F3L3dsb2dvdXQiKQogICAgKHN5bm9wc2lzICJMb2dvdXQgbWVudSBmb3IgV2F5bGFuZCIpCiAg ICAoZGVzY3JpcHRpb24gIndsb2dvdXQgaXMgYSBsb2dvdXQgbWVudSBmb3IgV2F5bGFuZCBlbnZp cm9ubWVudHMuIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKCihkZWZpbmUtcHVibGlj IGJlcnJ5CiAgKHBhY2thZ2UKICAgIChuYW1lICJiZXJyeSIpCiAgICAodmVyc2lvbiAiMC4xLjEy IikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQog ICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKICAgICAgICAgICh1cmwgImh0dHBzOi8vZ2l0aHVi LmNvbS9qbGVydmluL2JlcnJ5IikKICAgICAgICAgIChjb21taXQgdmVyc2lvbikpKQogICAgICAg IChmaWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgbmFtZSB2ZXJzaW9uKSkKICAgICAgICAoc2hhMjU2 CiAgICAgICAgICAoYmFzZTMyICIweWdxemdpN25jYzZ3aHZ3ZGlmZHMyY3E5Y2xscTlmaGlxbmln eDg1OWhiZG5mNDUzaG40IikpKSkKICAgIChidWlsZC1zeXN0ZW0gZ251LWJ1aWxkLXN5c3RlbSkK ICAgIChhcmd1bWVudHMKICAgICBgKCM6dGVzdHM/ICNmIDsgVGhlcmUgYXJlIG5vIHRlc3RzLgog ICAgICAgIzptYWtlLWZsYWdzCiAgICAgICAsI34obGlzdCAoc3RyaW5nLWFwcGVuZCAiQ0M9IiAj JChjYy1mb3ItdGFyZ2V0KSkKICAgICAgICAgICAgICAgIChzdHJpbmctYXBwZW5kICJwcmVmaXg9 IiAjJG91dHB1dCkKICAgICAgICAgICAgICAgIChzdHJpbmctYXBwZW5kICJDRkxBR1M9IgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1JIiAoYXNzb2MtcmVmICVidWlsZC1pbnB1dHMg ImZyZWV0eXBlIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvaW5jbHVkZS9mcmVl dHlwZTIiKSkKICAgICAgICM6cGhhc2VzCiAgICAgICAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQt cGhhc2VzCiAgICAgICAgIChkZWxldGUgJ2NvbmZpZ3VyZSkKICAgICAgICAgKGFkZC1hZnRlciAn YnVpbGQgJ2luc3RhbGwteHNlc3Npb24KICAgICAgICAgICAobGFtYmRhKiAoIzprZXkgb3V0cHV0 cyAjOmFsbG93LW90aGVyLWtleXMpCiAgICAgICAgICAgICAobGV0KiAoKG91dHB1dCAoYXNzb2Mt cmVmIG91dHB1dHMgIm91dCIpKQogICAgICAgICAgICAgICAgICAgICh4c2Vzc2lvbnMgKHN0cmlu Zy1hcHBlbmQgb3V0cHV0ICIvc2hhcmUveHNlc3Npb25zIikpKQogICAgICAgICAgICAgICAobWtk aXItcCB4c2Vzc2lvbnMpCiAgICAgICAgICAgICAgICh3aXRoLW91dHB1dC10by1maWxlIChzdHJp bmctYXBwZW5kIHhzZXNzaW9ucyAiL2JlcnJ5LmRlc2t0b3AiKQogICAgICAgICAgICAgICAgIChs YW1iZGEgXwogICAgICAgICAgICAgICAgICAgKGZvcm1hdCAjdAogICAgICAgICAgICAgICAgICAg ICJcCltEZXNrdG9wIEVudHJ5XX5ACk5hbWU9YmVycnl+QApDb21tZW50PUJlcnJ5IFdpbmRvdyBN YW5hZ2VyfkAKRXhlYz1+YS9iaW4vYmVycnl+QApUcnlFeGVjPX5AKn5hL2Jpbi9iZXJyeX5ACklj b249fkAKVHlwZT1BcHBsaWNhdGlvbn4lIgogICAgICAgICAgICAgICAgICAgIG91dHB1dCkpKSkp KSkpKQogICAgKG5hdGl2ZS1pbnB1dHMKICAgICAobGlzdCBwa2ctY29uZmlnKSkKICAgIChpbnB1 dHMKICAgICAgKGxpc3QgZnJlZXR5cGUKICAgICAgICAgICAgZm9udGNvbmZpZwogICAgICAgICAg ICBsaWJ4ZXh0CiAgICAgICAgICAgIGxpYngxMQogICAgICAgICAgICBsaWJ4ZnQKICAgICAgICAg ICAgbGlieGluZXJhbWEpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9iZXJyeXdtLm9yZy8iKQog ICAgKHN5bm9wc2lzICJIZWFsdGh5LCBieXRlLXNpemVkIHdpbmRvdyBtYW5hZ2VyIikKICAgIChk ZXNjcmlwdGlvbgogICAgICJAY29kZXtiZXJyeX0gaXMgYSBoZWFsdGh5LCBiaXRlLXNpemVkIHdp bmRvdyBtYW5hZ2VyIHdyaXR0ZW4gaW4gQyB1c2luZyBYTGliLiIpCiAgICAobGljZW5zZSBsaWNl bnNlOmV4cGF0KSkpCgooZGVmaW5lLXB1YmxpYyBhdml6bwogIChwYWNrYWdlCiAgICAobmFtZSAi YXZpem8iKQogICAgKHZlcnNpb24gIjEuMyIpCiAgICAoc291cmNlIChvcmlnaW4KICAgICAgICAg ICAgICAobWV0aG9kIGdpdC1mZXRjaCkKICAgICAgICAgICAgICAodXJpIChnaXQtcmVmZXJlbmNl CiAgICAgICAgICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL21pc3RlcmRhbmIv YXZpem8iKQogICAgICAgICAgICAgICAgICAgIChjb21taXQgdmVyc2lvbikpKQogICAgICAgICAg ICAgIChmaWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgbmFtZSB2ZXJzaW9uKSkKICAgICAgICAgICAg ICAoc2hhMjU2CiAgICAgICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgICAgICIwMXYxYzkz NzZwYmpuZHloajlyNmYyMTRremhpdmwxbTlwa2wwNXNka2NqMHY2bjB3Z3NuIikpKSkKICAgIChi dWlsZC1zeXN0ZW0gbWVzb24tYnVpbGQtc3lzdGVtKQogICAgKGlucHV0cyAobGlzdCBndGsrKSkK ICAgIChuYXRpdmUtaW5wdXRzCiAgICAgKGxpc3QgdmFsYQogICAgICAgICAgIGAoLGdsaWIgImJp biIpCiAgICAgICAgICAgZ29iamVjdC1pbnRyb3NwZWN0aW9uCiAgICAgICAgICAgZ3RrLWxheWVy LXNoZWxsCiAgICAgICAgICAgcGtnLWNvbmZpZykpCiAgICAoaG9tZS1wYWdlICJodHRwczovL2dp dGh1Yi5jb20vbWlzdGVyZGFuYi9hdml6byIpCiAgICAoc3lub3BzaXMgIk5vdGlmaWNhdGlvbiBk YWVtb24gZm9yIFN3YXkiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgIkF2aXpvIGlzIGEgc2ltcGxl IG5vdGlmaWNhdGlvbiBkYWVtb24gZm9yIFN3YXksIG1haW5seSBpbnRlbmRlZCB0byBiZQp1c2Vk IGZvciBtdWx0aW1lZGlhIGtleXMuIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6Z3BsMyspKSkKCihk ZWZpbmUtcHVibGljIGdyaW1zaG90CiAgKHBhY2thZ2UKICAgIChuYW1lICJncmltc2hvdCIpCiAg ICAodmVyc2lvbiAiMS45LWNvbnRyaWIuMCIpCiAgICAoc291cmNlIChvcmlnaW4KICAgICAgICAg ICAgICAobWV0aG9kIGdpdC1mZXRjaCkKICAgICAgICAgICAgICAodXJpIChnaXQtcmVmZXJlbmNl CiAgICAgICAgICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL09jdG9wdXNFVC9z d2F5LWNvbnRyaWIiKQogICAgICAgICAgICAgICAgICAgIChjb21taXQgdmVyc2lvbikpKQogICAg ICAgICAgICAgIChmaWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgbmFtZSB2ZXJzaW9uKSkKICAgICAg ICAgICAgICAoc25pcHBldCAjfihkZWxldGUtZmlsZSAiZ3JpbXNob3QuMSIpKQogICAgICAgICAg ICAgIChzaGEyNTYKICAgICAgICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAgICAgIjE2ZmE4 bDgxemp5MjVuc2t5MWk1MjVoYjd6anBycXo3NG1iaXJtOWI3NnB2a3NzY2hkdjUiKSkpKQogICAg KGJ1aWxkLXN5c3RlbSBjb3B5LWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAobGlz dCAjOmluc3RhbGwtcGxhbiAjfmAoKCJncmltc2hvdCIgImJpbi8iKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoImdyaW1zaG90LjEiICJzaGFyZS9tYW4vbWFuMS8iKSkKICAgICAgICAg ICAjOnBoYXNlcyAjfihtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMKICAgICAgICAgICAg ICAgICAgICAgICAgKGFkZC1hZnRlciAndW5wYWNrICdwYXRjaC1zY3JpcHQtZGVwZW5kZW5jaWVz CiAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSogKCM6a2V5IGlucHV0cyAjOmFsbG93 LW90aGVyLWtleXMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Vic3RpdHV0ZSogImdy aW1zaG90IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKCJcXGIoZGF0ZXxncmltfGpx fG5vdGlmeS1zZW5kfHNsdXJwfHN3YXltc2d8d2wtY29weSlcXGIiCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXyBiaW5hcnkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo c2VhcmNoLWlucHV0LWZpbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dHMg KHN0cmluZy1hcHBlbmQgImJpbi8iIGJpbmFyeSkpKSkpKQogICAgICAgICAgICAgICAgICAgICAg ICAoYWRkLWFmdGVyICdwYXRjaC1zY3JpcHQtZGVwZW5kZW5jaWVzICdidWlsZC1tYW4tcGFnZQog ICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgXwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHdpdGgtaW5wdXQtZnJvbS1maWxlICJncmltc2hvdC4xLnNjZCIKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxhbWJkYSBfCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHdpdGgtb3V0cHV0LXRvLWZpbGUgImdyaW1zaG90LjEiCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGFtYmRhIF8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGludm9rZSAic2Nkb2MiKSkpKSkpKSkpKQogICAgKG5hdGl2ZS1pbnB1dHMgKGxpc3Qgc2Nk b2MpKQogICAgKGlucHV0cyAobGlzdCBjb3JldXRpbHMKICAgICAgICAgICAgICAgICAgZ3JpbQog ICAgICAgICAgICAgICAgICBqcQogICAgICAgICAgICAgICAgICBsaWJub3RpZnkKICAgICAgICAg ICAgICAgICAgc2x1cnAKICAgICAgICAgICAgICAgICAgc3dheQogICAgICAgICAgICAgICAgICB3 bC1jbGlwYm9hcmQpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL09jdG9wdXNF VC9zd2F5LWNvbnRyaWIiKQogICAgKHN5bm9wc2lzICJTY3JlZW5zaG90IHV0aWxpdHkgZm9yIHRo ZSBTd2F5IHdpbmRvdyBtYW5hZ2VyIikKICAgIChkZXNjcmlwdGlvbiAiR3JpbXNob3QgaXMgYSBz Y3JlZW5zaG90IHV0aWxpdHkgZm9yIEBjb2Rle3N3YXl9LiAgSXQgcHJvdmlkZXMKYW4gaW50ZXJm YWNlIG92ZXIgQGNvZGV7Z3JpbX0sIEBjb2Rle3NsdXJwfSBhbmQgQGNvZGV7anF9LCBhbmQgc3Vw cG9ydHMgc3RvcmluZwp0aGUgc2NyZWVuc2hvdCBlaXRoZXIgZGlyZWN0bHkgdG8gdGhlIGNsaXBi b2FyZCB1c2luZyBAY29kZXt3bC1jb3B5fSBvciB0byBhCmZpbGUuIikKICAgIChsaWNlbnNlIGxp Y2Vuc2U6ZXhwYXQpKSkKCihkZWZpbmUtcHVibGljIHdsZAogIChsZXQgKChjb21taXQgIjY1ODY3 MzYxNzZlZjUwYTg4MDI1YWJhZTgzNWUyOWE3Y2E5ODAxMjYiKQogICAgICAgIChyZXZpc2lvbiAi MSIpKQogICAgKHBhY2thZ2UKICAgICAgKG5hbWUgIndsZCIpCiAgICAgICh2ZXJzaW9uIChnaXQt dmVyc2lvbiAiMCIgcmV2aXNpb24gY29tbWl0KSkKICAgICAgKHNvdXJjZSAob3JpZ2luCiAgICAg ICAgICAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKICAgICAgICAgICAgICAgICh1cmkgKGdpdC1y ZWZlcmVuY2UKICAgICAgICAgICAgICAgICAgICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9t aWNoYWVsZm9ybmV5L3dsZCIpCiAgICAgICAgICAgICAgICAgICAgICAoY29tbWl0IGNvbW1pdCkp KQogICAgICAgICAgICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24p KQogICAgICAgICAgICAgICAgKHNoYTI1NgogICAgICAgICAgICAgICAgIChiYXNlMzIKICAgICAg ICAgICAgICAgICAgIjBxa2QzcThwMXM3Mng2ODhnODNma2NhcnJ6MmgyMDkwNHJwZDh6NDRxbDZr c2dyajlicDMiKSkpKQogICAgICAoYnVpbGQtc3lzdGVtIGdudS1idWlsZC1zeXN0ZW0pCiAgICAg IChhcmd1bWVudHMKICAgICAgIGAoIzp0ZXN0cz8gI2YgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA7IG5vIHRlc3RzCiAgICAgICAgICM6bWFrZS1mbGFncyAobGlzdCAoc3RyaW5nLWFwcGVu ZCAiQ0M9IiAsKGNjLWZvci10YXJnZXQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0 cmluZy1hcHBlbmQgIlBSRUZJWD0iICVvdXRwdXQpKQogICAgICAgICAjOnBoYXNlcyAobW9kaWZ5 LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCiAgICAgICAgICAgICAgICAgICAgKGRlbGV0ZSAnY29u ZmlndXJlKSkpKQogICAgICAoaW5wdXRzIChsaXN0IGZvbnRjb25maWcKICAgICAgICAgICAgICAg ICAgICBsaWJkcm0KICAgICAgICAgICAgICAgICAgICBwaXhtYW4KICAgICAgICAgICAgICAgICAg ICB3YXlsYW5kKSkKICAgICAgKHByb3BhZ2F0ZWQtaW5wdXRzIChsaXN0IGZvbnRjb25maWcgcGl4 bWFuKSkKICAgICAgKG5hdGl2ZS1pbnB1dHMgKGxpc3QgcGtnLWNvbmZpZykpCiAgICAgIChob21l LXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9taWNoYWVsZm9ybmV5L3dsZCIpCiAgICAgIChzeW5v cHNpcyAiUHJpbWl0aXZlIGRyYXdpbmcgbGlicmFyeSBmb3IgV2F5bGFuZCIpCiAgICAgIChkZXNj cmlwdGlvbiAid2xkIGlzIGEgZHJhd2luZyBsaWJyYXJ5IHRoYXQgdGFyZ2V0cyBXYXlsYW5kLiIp CiAgICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkpCgooZGVmaW5lLXB1YmxpYyBzd2MKICAo bGV0ICgoY29tbWl0ICJhN2I2MTU1NjdmODNkOWU0OGQ1ODUyNTEwMTUwNDhjNDQxY2EwMjM5IikK ICAgICAgICAocmV2aXNpb24gIjEiKSkKICAgIChwYWNrYWdlCiAgICAgIChuYW1lICJzd2MiKQog ICAgICAodmVyc2lvbiAoZ2l0LXZlcnNpb24gIjAiIHJldmlzaW9uIGNvbW1pdCkpCiAgICAgIChz b3VyY2UgKG9yaWdpbgogICAgICAgICAgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCiAgICAgICAg ICAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCiAgICAgICAgICAgICAgICAgICAgICAodXJsICJo dHRwczovL2dpdGh1Yi5jb20vbWljaGFlbGZvcm5leS9zd2MiKQogICAgICAgICAgICAgICAgICAg ICAgKGNvbW1pdCBjb21taXQpKSkKICAgICAgICAgICAgICAgIChzaGEyNTYKICAgICAgICAgICAg ICAgICAoYmFzZTMyCiAgICAgICAgICAgICAgICAgICIxOXJwYndwaTgxcG05MmZraHNtYng3cHph Z3BhaDVtOWloNWg1azNtOGR5NnI4aWhkaDM1IikpCiAgICAgICAgICAgICAgICAoZmlsZS1uYW1l IChnaXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpKSkKICAgICAgKGJ1aWxkLXN5c3RlbSBnbnUt YnVpbGQtc3lzdGVtKQogICAgICAoYXJndW1lbnRzCiAgICAgICBgKCM6dGVzdHM/ICNmIDtubyB0 ZXN0cwogICAgICAgICAjOm1ha2UtZmxhZ3MgKGxpc3QgKHN0cmluZy1hcHBlbmQgIkNDPSIKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwoY2MtZm9yLXRhcmdldCkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAiUFJFRklYPSIgJW91 dHB1dCkpCiAgICAgICAgICM6cGhhc2VzIChtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMK ICAgICAgICAgICAgICAgICAgICAoZGVsZXRlICdjb25maWd1cmUpKSkpCiAgICAgIChpbnB1dHMg KGxpc3QgbGliZHJtCiAgICAgICAgICAgICAgICAgICAgbGliaW5wdXQKICAgICAgICAgICAgICAg ICAgICBsaWJ4Y2IKICAgICAgICAgICAgICAgICAgICBsaWJ4a2Jjb21tb24KICAgICAgICAgICAg ICAgICAgICB3YXlsYW5kCiAgICAgICAgICAgICAgICAgICAgd2F5bGFuZC1wcm90b2NvbHMKICAg ICAgICAgICAgICAgICAgICB3bGQKICAgICAgICAgICAgICAgICAgICB4Y2ItdXRpbC13bSkpCiAg ICAgIChuYXRpdmUtaW5wdXRzIChsaXN0IHBrZy1jb25maWcpKQogICAgICAoaG9tZS1wYWdlICJo dHRwczovL2dpdGh1Yi5jb20vbWljaGFlbGZvcm5leS9zd2MiKQogICAgICAoc3lub3BzaXMgIkxp YnJhcnkgZm9yIG1ha2luZyBhIHNpbXBsZSBXYXlsYW5kIGNvbXBvc2l0b3IiKQogICAgICAoZGVz Y3JpcHRpb24KICAgICAgICJzd2MgaXMgYSBzbWFsbCBXYXlsYW5kIGNvbXBvc2l0b3IgaW1wbGVt ZW50ZWQgYXMgYSBsaWJyYXJ5LgoKSXQgaGFzIGJlZW4gZGVzaWduZWQgcHJpbWFyaWx5IHdpdGgg dGlsaW5nIHdpbmRvdyBtYW5hZ2VycyBpbiBtaW5kLiAgQWRkaXRpb25hbGx5LApub3RhYmxlIGZl YXR1cmVzIGluY2x1ZGU6CkBpdGVtaXplCkBpdGVtIEVhc3kgdG8gZm9sbG93IGNvZGUgYmFzZQpA aXRlbSBYV2F5bGFuZCBzdXBwb3J0CkBpdGVtIENhbiBwbGFjZSBib3JkZXJzIGFyb3VuZCB3aW5k b3dzCkBlbmQgaXRlbWl6ZSIpCiAgICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkpCgooZGVm aW5lLXB1YmxpYyB2ZWxveAogIChsZXQgKChjb21taXQgImZjYzA0MTI2NTUzOWJlZmQ5MDdhNjRl ZTNhNTM2Y2IyNDg5ZmZiOTkiKQogICAgICAgIChyZXZpc2lvbiAiMSIpKQogICAgKHBhY2thZ2UK ICAgICAgKG5hbWUgInZlbG94IikKICAgICAgKHZlcnNpb24gKGdpdC12ZXJzaW9uICIwIiByZXZp c2lvbiBjb21taXQpKQogICAgICAoc291cmNlIChvcmlnaW4KICAgICAgICAgICAgICAgIChtZXRo b2QgZ2l0LWZldGNoKQogICAgICAgICAgICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQogICAgICAg ICAgICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hhZWxmb3JuZXkvdmVs b3giKQogICAgICAgICAgICAgICAgICAgICAgKGNvbW1pdCBjb21taXQpKSkKICAgICAgICAgICAg ICAgIChzaGEyNTYKICAgICAgICAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICAgICAgICIw ZDExYm1hZzV6d21hczNyZjFiN3g1aGpsYTd3cHhxNzBucjg2ZHozeDlyN2NhbDA0bXltIikpCiAg ICAgICAgICAgICAgICAoZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpKSkK ICAgICAgKGJ1aWxkLXN5c3RlbSBnbnUtYnVpbGQtc3lzdGVtKQogICAgICAoYXJndW1lbnRzCiAg ICAgICBgKCM6dGVzdHM/ICNmIDtubyB0ZXN0cwogICAgICAgICAjOm1ha2UtZmxhZ3MgKGxpc3Qg KHN0cmluZy1hcHBlbmQgIkNDPSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICwoY2MtZm9yLXRhcmdldCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Ry aW5nLWFwcGVuZCAiUFJFRklYPSIgJW91dHB1dCkpCiAgICAgICAgICM6cGhhc2VzIChtb2RpZnkt cGhhc2VzICVzdGFuZGFyZC1waGFzZXMKICAgICAgICAgICAgICAgICAgICAoZGVsZXRlICdjb25m aWd1cmUpKSkpCiAgICAgIChpbnB1dHMgKGxpc3QgbGliaW5wdXQgbGlieGtiY29tbW9uIHdheWxh bmQgd2xkKSkKICAgICAgKHByb3BhZ2F0ZWQtaW5wdXRzIChsaXN0IHN3YykpCiAgICAgIChuYXRp dmUtaW5wdXRzIChsaXN0IHBrZy1jb25maWcpKQogICAgICAoaG9tZS1wYWdlICJodHRwczovL2dp dGh1Yi5jb20vbWljaGFlbGZvcm5leS92ZWxveCIpCiAgICAgIChzeW5vcHNpcyAiU2ltcGxlIHdp bmRvdyBtYW5hZ2VyIGJhc2VkIG9uIHN3YyIpCiAgICAgIChkZXNjcmlwdGlvbiAidmVsb3ggaXMg YSBzaW1wbGUgd2luZG93IG1hbmFnZXIgZm9yIFdheWxhbmQgYmFzZWQgb24gc3djLgpJdCBpcyBp bnNwaXJlZCBieSBkd20gYW5kIHhtb25hZC4iKQogICAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0 KSkpKQoKKGRlZmluZS1wdWJsaWMgd3NiZwogIChsZXQgKChjb21taXQgIjE1YjBkMGY2OTEwZWE5 N2I5YmNjNDcxNjk1ZmFjMDcyNzA5NTVkZDIiKQogICAgICAgIChyZXZpc2lvbiAiMCIpCiAgICAg ICAgOzsgVXBzdHJlYW0gaGFzIG5vIHZlcnNpb24gdGFncywgYnV0IG1lc29uLmJ1aWxkIGNvbnRh aW5zIHRoZSBjb3JyZWN0CiAgICAgICAgOzsgdmVyc2lvbiBudW1iZXIuCiAgICAgICAgKHZlcnNp b24gIjAuMS4wIikpCiAgICAocGFja2FnZQogICAgICAoaW5oZXJpdCBzd2F5YmcpCiAgICAgIChu YW1lICJ3c2JnIikKICAgICAgKHZlcnNpb24gKGdpdC12ZXJzaW9uIHZlcnNpb24gcmV2aXNpb24g Y29tbWl0KSkKICAgICAgKHNvdXJjZQogICAgICAgKG9yaWdpbgogICAgICAgICAobWV0aG9kIGdp dC1mZXRjaCkKICAgICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQogICAgICAgICAgICAgICAodXJs ICJodHRwczovL2dpdGh1Yi5jb20vc2FpYmllci93c2JnIikKICAgICAgICAgICAgICAgKGNvbW1p dCBjb21taXQpKSkKICAgICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNp b24pKQogICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyICIxNXhybndwNTRrZ2hpZ3gw Nnk0cW1tbjFxOWYyNmZ4NGNhd3lsNGtjYnFycnpmYmJqMWc2IikpKSkKICAgICAgKGhvbWUtcGFn ZSAiaHR0cHM6Ly9naXRodWIuY29tL3NhaWJpZXIvd3NiZyIpCiAgICAgIChzeW5vcHNpcyAiV29y a3NwYWNlIHdhbGxwYXBlciB0b29sIGZvciBTd2F5IikKICAgICAgKGRlc2NyaXB0aW9uICJXYWxs cGFwZXIgdXRpbGl0eSBmb3IgU3dheSB3aXRoIHN1cHBvcnQgZm9yIHBlci13b3Jrc3BhY2UKY29u ZmlndXJhdGlvbi4iKSkpKQoKKGRlZmluZS1wdWJsaWMgeWFtYmFyLXdheWxhbmQKICAocGFja2Fn ZQogICAgKG5hbWUgInlhbWJhci13YXlsYW5kIikKICAgICh2ZXJzaW9uICIxLjEwLjAiKQogICAg KGhvbWUtcGFnZSAiaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZG5rbC95YW1iYXIiKQogICAgKHNvdXJj ZQogICAgIChvcmlnaW4KICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQogICAgICAgKHVyaSAoZ2l0 LXJlZmVyZW5jZQogICAgICAgICAgICAgKHVybCBob21lLXBhZ2UpCiAgICAgICAgICAgICAoY29t bWl0IHZlcnNpb24pKSkKICAgICAgIChmaWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgbmFtZSB2ZXJz aW9uKSkKICAgICAgIChzaGEyNTYKICAgICAgICAoYmFzZTMyCiAgICAgICAgICIxNGx4aGd5eWlh N3N4eXFqd2E5c2twczBqOXFscHFpOHk3aHZic2FpZHJ3bXk0ODU3Y3pyIikpKSkKICAgIChidWls ZC1zeXN0ZW0gbWVzb24tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgIChsaXN0CiAg ICAgICM6YnVpbGQtdHlwZSAicmVsZWFzZSIKICAgICAgIzpjb25maWd1cmUtZmxhZ3MgI34nKCIt RGJfbHRvPXRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLURiYWNrZW5kLXgxMT1k aXNhYmxlZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICItRGJhY2tlbmQtd2F5bGFuZD1l bmFibGVkIikpKQogICAgKG5hdGl2ZS1pbnB1dHMgKGxpc3QgcGtnLWNvbmZpZwogICAgICAgICAg ICAgICAgICAgICAgICAgdGxsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4CiAgICAg ICAgICAgICAgICAgICAgICAgICBiaXNvbgogICAgICAgICAgICAgICAgICAgICAgICAgc2Nkb2MK ICAgICAgICAgICAgICAgICAgICAgICAgIHdheWxhbmQtcHJvdG9jb2xzKSkKICAgIChpbnB1dHMg KGxpc3QgZmNmdAogICAgICAgICAgICAgICAgICB3YXlsYW5kCiAgICAgICAgICAgICAgICAgIHBp cGV3aXJlCiAgICAgICAgICAgICAgICAgIGxpYnlhbWwKICAgICAgICAgICAgICAgICAgcGl4bWFu CiAgICAgICAgICAgICAgICAgIGFsc2EtbGliCiAgICAgICAgICAgICAgICAgIGpzb24tYwogICAg ICAgICAgICAgICAgICBsaWJtcGRjbGllbnQKICAgICAgICAgICAgICAgICAgZXVkZXYpKQogICAg KHN5bm9wc2lzICJYMTEgYW5kIFdheWxhbmQgc3RhdHVzIHBhbmVsIikKICAgIChkZXNjcmlwdGlv bgogICAgICJAY29tbWFuZHt5YW1iYXJ9IGlzIGEgbGlnaHR3ZWlnaHQgYW5kIGNvbmZpZ3VyYWJs ZSBzdGF0dXMgcGFuZWwgKGJhciwKZm9yIHNob3J0KSBmb3IgWDExIGFuZCBXYXlsYW5kLCB0aGF0 IGdvZXMgdG8gZ3JlYXQgbGVuZ3RocyB0byBiZSBib3RoIENQVSBhbmQKYmF0dGVyeSBlZmZpY2ll bnQtLS1wb2xsaW5nIGlzIG9ubHkgZG9uZSB3aGVuIGFic29sdXRlbHkgbmVjZXNzYXJ5LiIpCiAg ICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCg== --b1_CjxkiuITA7aDnCQ6KqQTZUp9Mo5CLoLzfpDqMfZvqBY--