Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bWlDX-0004N8-LX for pgadmin-hackers@arkaria.postgresql.org; Mon, 08 Aug 2016 14:07:48 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bWlDW-0007he-GU for pgadmin-hackers@arkaria.postgresql.org; Mon, 08 Aug 2016 14:07:46 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1bWlDR-0007gz-Ca for pgadmin-hackers@postgresql.org; Mon, 08 Aug 2016 14:07:41 +0000 Received: from mail-qt0-x236.google.com ([2607:f8b0:400d:c0d::236]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1bWlDM-0002lv-Ba for pgadmin-hackers@postgresql.org; Mon, 08 Aug 2016 14:07:40 +0000 Received: by mail-qt0-x236.google.com with SMTP id x25so203909819qtx.2 for ; Mon, 08 Aug 2016 07:07:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=wRwTflSH6V0CjADPH761EvuAjepbrL0bm2K5OrXVfpk=; b=yStXtVmUFycQmEMzkBOyxmjc15ADL/n1hNgiobfYdY2qxwa1lniIoa4Bg/AprGhAHq Elsad/2bMijVwZvj5c/M/wq1505ch57RoLYsWw6WKiybHAzGJeoSBg+hAPVULdSix+CL pzwZhjPArf7ZKWf/NGPXdg6D5nB+INf60MsvBcu+vRAVmCnxE7N2HflQh9ZbL6vmt/cI YtIFHRSf6fnYF955pIsaM8En3p9Nlmuf+QA+Yciy0+9bBTnJrxAPnbDUPg/1zcN5z7hk +WIPRhP/XaVwqofHeAGFq1bDSiHpb+5YNEac8eCQCWO3pAcGkzRScjItEz4Ic8tmCQu6 UJmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=wRwTflSH6V0CjADPH761EvuAjepbrL0bm2K5OrXVfpk=; b=gF8zMsslmx6KEUlwYE3916+kyIwHarxthtXHm75d5q/qs540/diAHnOc90calHHU6n iWdF0E1QCBDlGvYnjOWldw0dDnfkaV4xhpVN6EoDSX+Gj04kMtYgHrJCGe5mj2RBj0Ab pUyGVvJclCRajVtelkRdmDFgoq8SpMugJ+4rxnFPya5EbE7emTNcqlxO6nZHxhlszjp5 54d+7vaI/AGZ4Q7gY7Fmx0VRCSgSgB1DCFE7mgkNZcceZN73SMtdknmm04Dqv7M4Bg11 DqSecQSwfBE2ZV0JoX5gVvHvyTRPRbfTFWVnYZhjCdQkK3nGW/Pk43BUsIuUdzdy6PZ4 MG+A== X-Gm-Message-State: AEkoouuvd9Zvde5AjcHSXQ+J2mIgpni1MGRm3XkmR9V2pP1n2NP6Kwowl2eSLeRw7+Y6trkC6MMpXUX+MGK/N+rY X-Received: by 10.200.51.251 with SMTP id d56mr28900284qtb.36.1470665254624; Mon, 08 Aug 2016 07:07:34 -0700 (PDT) MIME-Version: 1.0 Received: by 10.200.41.90 with HTTP; Mon, 8 Aug 2016 07:07:32 -0700 (PDT) In-Reply-To: References: From: Navnath Gadakh Date: Mon, 8 Aug 2016 19:37:32 +0530 Message-ID: Subject: Re: pgAdmin IV : Unittest modular patch To: Dave Page Cc: pgadmin-hackers , Kanchan Mohitey Content-Type: multipart/mixed; boundary=001a1134f2ec16971c05398ff021 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a1134f2ec16971c05398ff021 Content-Type: multipart/alternative; boundary=001a1134f2ec16971905398ff01f --001a1134f2ec16971905398ff01f Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi Dave, Please find the updated patch for API unit test cases for *Roles and Tablespaces *nodes As we finalized Now, 1. The user will specify the tablespace path in test_config.json.in 2. If tablespace path not found, skip the test cases for that server(Only tablespace test cases) 3. Add the skipped test summary in the test result. (Now it's showing on console + in log file, but need to update in a final enhanced test summary report. Which is research point we will work on that after finishing all nodes API test cases) 4. Removed the test_ prefix from the values in the config files. Thanks! On Thu, Aug 4, 2016 at 5:55 PM, Dave Page wrote: > On Thu, Aug 4, 2016 at 1:02 PM, Navnath Gadakh > wrote: > > Hi Dave, > > > > On Thu, Aug 4, 2016 at 4:04 PM, Dave Page > > wrote: > >> > >> Hi > >> > >> On Thu, Aug 4, 2016 at 10:27 AM, Navnath Gadakh > >> wrote: > >> > >> >> Oh - does the per-server config override the main config? That's > >> >> useful. So anything that's in test_advanced_config.py can be > >> >> overridden on a per-server basis in test_config.py? > >> > > >> > No. > >> > per-server i.e advance config(test_advanced_config.json.in) and > main > >> > config(test_config.json) both are different files. In main config we > >> > just > >> > mention the server=E2=80=99s credentials.(We can also mention per se= rver > >> > credentails) and in test_advanced_config.json.in(here we say > per-server > >> > config) > >> > we mention the advanced configurations i.e. test data for each node. > >> > >> OK. > >> > >> > So, let's summarize the discussion: > >> > - Let user specify the tablespace path in > >> > test_advanced_config.json.in > >> > >> No - test_config.py. It should be per-server. > > > > We don't have a file named 'test_config.py' but we have a server's > > credential file named 'test_config.json'. > > So, you are saying the tablespace path to be added in > > 'test_config.json'. > > Am I correct? > > Yeah, sorry. It should be a property of the server configuration. > > > -- > Dave Page > VP, Chief Architect, Tools & Installers > EnterpriseDB: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > --=20 Thanks, Navnath Gadakh Software Engineer EnterpriseDB Corporation Mobile: +91 9975389878 --001a1134f2ec16971905398ff01f Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave,
=C2=A0 =C2=A0 Please find the updated patch f= or API=C2=A0unit test cases for Roles and Tablespaces nodes
As we finalized
Now,
=C2=A0 =C2=A01. The user will sp= ecify=C2=A0the tablespace=C2=A0path in = test= _config.json.in
=C2=A0 =C2=A02.=C2=A0 If tablespace path not found, skip the test cases f= or that server(Only tablespace test cases)
=C2=A0 =C2=A03.=C2=A0 Add the skipped test summary in the= test result. (Now it's showing=C2=A0on console=C2=A0+ in log file, but= need to update in a=C2=A0final enhanced test summary report. Which is rese= arch=C2=A0point we=C2=A0will work on that after finishing all nodes API tes= t cases)
=C2=A0 =C2=A04. = =C2=A0Removed the test_ prefix from= the values in the config files.

Thanks!


On Thu, Aug 4, 2016 at = 5:55 PM, Dave Page <dave.page@enterprisedb.com> wro= te:
On Thu, Aug 4, 2016 at 1:02 PM, Navnath Gadakh
<navnath.gadakh@enter= prisedb.com> wrote:
> Hi Dave,
>
> On Thu, Aug 4, 2016 at 4:04 PM, Dave Page <dave.page@enterprisedb.com>
> wrote:
>>
>> Hi
>>
>> On Thu, Aug 4, 2016 at 10:27 AM, Navnath Gadakh
>> <navnath.gad= akh@enterprisedb.com> wrote:
>>
>> >> Oh - does the per-server config override the main config?= That's
>> >> useful. So anything that's in test_advanced_config.py= can be
>> >> overridden on a per-server basis in test_config.py?
>> >
>> >=C2=A0 =C2=A0 =C2=A0No.
>> >=C2=A0 =C2=A0 =C2=A0per-server i.e advance config(te= st_advanced_config.json.in) and main
>> > config(test_config.json) both are different files. In main co= nfig we
>> > just
>> > mention the server=E2=80=99s credentials.(We can also mention= per server
>> > credentails) and in test_advanced_config.json.in(here we say per-server
>> > config)
>> > we mention the advanced configurations i.e. test data for eac= h node.
>>
>> OK.
>>
>> >=C2=A0 =C2=A0 =C2=A0So, let's summarize the discussion:
>> >=C2=A0 =C2=A0 =C2=A0- Let user specify the tablespace path in<= br> >> >
test_advanced_config.json.in
>>
>> No - test_config.py. It should be per-server.
>
>=C2=A0 =C2=A0 =C2=A0 We don't have a file named 'test_config.py= ' but we have a server's
> credential file named 'test_config.json'.
>=C2=A0 =C2=A0 =C2=A0 So, you are saying the tablespace path to be added= in
> 'test_config.json'.
>=C2=A0 =C2=A0 =C2=A0 Am I correct?

Yeah, sorry. It should be a property of the server configuratio= n.


--
Dave Page
VP, Chief Architect, Tools & Installers
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake



--
=
=
Thanks,
Navnath= =C2=A0Gadakh
Software Engineer
EnterpriseDB Corporation
<= /font>
Mobile: +91 9975389878=C2=A0

<= /font>

=
--001a1134f2ec16971905398ff01f-- --001a1134f2ec16971c05398ff021 Content-Type: application/octet-stream; name="pgadmin_unittest_roles_tablespaces.patch" Content-Disposition: attachment; filename="pgadmin_unittest_roles_tablespaces.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_irm40vur0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2FkZC5weSBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy90ZXN0cy90ZXN0X2RiX2FkZC5weQppbmRleCA4NWRjYzZjLi40OTBl N2Q5IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9hZGQucHkK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfYWRkLnB5CkBAIC03LDEwICs3 LDExIEBACiAjCiAjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCi1pbXBvcnQg anNvbgogCiBmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRp bHMgYXMgdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgc2VydmVyX3V0aWxz Citmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCiAKIAog Y2xhc3MgRGF0YWJhc2VBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6 CkBAIC0yNCw3ICsyNSw4IEBAIGNsYXNzIERhdGFiYXNlQWRkVGVzdENhc2Uo QmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAoJ0NoZWNrIERhdGFiYXNl cyBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9kYXRhYmFzZS9vYmov JykpCiAgICAgXQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgorICAgIEBjbGFz c21ldGhvZAorICAgIGRlZiBzZXRVcENsYXNzKGNscyk6CiAgICAgICAgICIi IgogICAgICAgICBUaGlzIGZ1bmN0aW9uIHVzZWQgdG8gYWRkIHRoZSBzZXZl cgogCkBAIC0zMiwyNyArMzQsMjMgQEAgY2xhc3MgRGF0YWJhc2VBZGRUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICIiIgogCiAgICAg ICAgICMgQWRkIHRoZSBzZXJ2ZXIKLSAgICAgICAgdXRpbHMuYWRkX3NlcnZl cihzZWxmLnRlc3RlcikKKyAgICAgICAgc2VydmVyX3V0aWxzLmFkZF9zZXJ2 ZXIoY2xzLnRlc3RlcikKKworICAgICAgICAjIENvbm5lY3QgdG8gc2VydmVy CisgICAgICAgIGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSwgY2xzLnNl cnZlcl9ncm91cCwgY2xzLnNlcnZlcl9pZHMgPSBcCisgICAgICAgICAgICBz ZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoY2xzLnRlc3RlcikKKworICAg ICAgICBpZiBsZW4oY2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlKSA9PSAw OgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyBTZXJ2ZXIocykg Y29ubmVjdGVkIHRvIGFkZCB0aGUgZGF0YWJhc2UhISEiKQogCiAgICAgZGVm IHJ1blRlc3Qoc2VsZik6CiAgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdp bGwgYWRkIGRhdGFiYXNlIHVuZGVyIDFzdCBzZXJ2ZXIgb2YgdHJlZSBub2Rl LiAiIiIKIAotICAgICAgICBzZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSwgc2Vy dmVyX2dyb3VwLCBzZXJ2ZXJfaWRzID0gXAotICAgICAgICAgICAgdXRpbHMu Y29ubmVjdF9zZXJ2ZXIoc2VsZi50ZXN0ZXIpCi0KLSAgICAgICAgZm9yIHNl cnZlcl9jb25uZWN0LCBzZXJ2ZXJfaWQgaW4gemlwKHNlcnZlcl9jb25uZWN0 X3Jlc3BvbnNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VydmVyX2lkcyk6Ci0gICAgICAgICAgICBpZiBzZXJ2 ZXJfY29ubmVjdFsnZGF0YSddWydjb25uZWN0ZWQnXToKLSAgICAgICAgICAg ICAgICBkYXRhID0gdXRpbHMuZ2V0X2RiX2RhdGEoc2VydmVyX2Nvbm5lY3Qp Ci0gICAgICAgICAgICAgICAgZGJfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5w b3N0KHNlbGYudXJsICsgc3RyKHNlcnZlcl9ncm91cCkgKwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLyIgKyBz ZXJ2ZXJfaWQgKyAiLyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29udGVudF90eXBlPSdodG1sL2pzb24nKQotICAgICAgICAgICAgICAgIHNl bGYuYXNzZXJ0VHJ1ZShkYl9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQot ICAgICAgICAgICAgICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRzKGRi X3Jlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQotICAgICAgICAgICAg ICAgIHV0aWxzLndyaXRlX2RiX3BhcmVudF9pZChyZXNwb25zZV9kYXRhKQor ICAgICAgICBkYXRhYmFzZV91dGlscy5hZGRfZGF0YWJhc2Uoc2VsZi50ZXN0 ZXIsIHNlbGYuc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZHMpCiAK LSAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgQGNsYXNzbWV0aG9kCisg ICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKICAgICAgICAgIiIiCiAgICAg ICAgIFRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgYWRkZWQgZGF0YWJhc2Us IGFkZGVkIHNlcnZlciBhbmQgdGhlCiAgICAgICAgICdwYXJlbnRfaWQucGts JyBmaWxlIHdoaWNoIGlzIGNyZWF0ZWQgaW4gc2V0dXAoKQpAQCAtNjAsNiAr NTgsNiBAQCBjbGFzcyBEYXRhYmFzZUFkZFRlc3RDYXNlKEJhc2VUZXN0R2Vu ZXJhdG9yKToKICAgICAgICAgOnJldHVybjogTm9uZQogICAgICAgICAiIiIK IAotICAgICAgICB1dGlscy5kZWxldGVfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIp Ci0gICAgICAgIHV0aWxzLmRlbGV0ZV9zZXJ2ZXIoc2VsZi50ZXN0ZXIpCisg ICAgICAgIGRhdGFiYXNlX3V0aWxzLmRlbGV0ZV9kYXRhYmFzZShjbHMudGVz dGVyKQorICAgICAgICBzZXJ2ZXJfdXRpbHMuZGVsZXRlX3NlcnZlcihjbHMu dGVzdGVyKQogICAgICAgICB1dGlscy5kZWxldGVfcGFyZW50X2lkX2ZpbGUo KQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfZGVsZXRlLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfZGVsZXRlLnB5CmluZGV4IDY4MzBi NWEuLjc1NmE2ODkgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2Ri X2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9kZWxldGUu cHkKQEAgLTcsMTIgKzcsMTAgQEAKICMKICMgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCiAKLWltcG9ydCBqc29uCi0KIGZyb20gcGdhZG1pbi51dGlscy5yb3V0 ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKIGZyb20gcmVncmVzc2lvbiBp bXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwotZnJvbSByZWdyZXNzaW9uLnRl c3Rfc2V0dXAgaW1wb3J0IGNvbmZpZ19kYXRhCi1mcm9tIHJlZ3Jlc3Npb24u dGVzdF91dGlscyBpbXBvcnQgZ2V0X2lkcworZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLnRlc3RzIGltcG9ydCB1dGlscyBh cyBzZXJ2ZXJfdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZGF0YWJh c2VfdXRpbHMKIAogCiBjbGFzcyBEYXRhYmFzZURlbGV0ZVRlc3RDYXNlKEJh c2VUZXN0R2VuZXJhdG9yKToKQEAgLTIzLDQzICsyMSwzOCBAQCBjbGFzcyBE YXRhYmFzZURlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAg ICAgICAgKCdDaGVjayBEYXRhYmFzZXMgTm9kZSBVUkwnLCBkaWN0KHVybD0n L2Jyb3dzZXIvZGF0YWJhc2Uvb2JqLycpKQogICAgIF0KIAotICAgIGRlZiBz ZXRVcChzZWxmKToKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgc2V0VXBD bGFzcyhjbHMpOgogICAgICAgICAiIiIKICAgICAgICAgVGhpcyBmdW5jdGlv biBwZXJmb3JtIHRoZSB0aHJlZSB0YXNrcwogICAgICAgICAgMS4gQWRkIHRo ZSB0ZXN0IHNlcnZlcgogICAgICAgICAgMi4gQ29ubmVjdCB0byBzZXJ2ZXIK KyAgICAgICAgIDMuIEFkZCB0aGUgZGF0YWJhc2VzCiAKICAgICAgICAgOnJl dHVybjogTm9uZQogICAgICAgICAiIiIKIAogICAgICAgICAjIEZpcnN0bHks IGFkZCB0aGUgc2VydmVyCi0gICAgICAgIHV0aWxzLmFkZF9zZXJ2ZXIoc2Vs Zi50ZXN0ZXIpCi0gICAgICAgICMgU2Vjb25kbHksIGNvbm5lY3QgdG8gc2Vy dmVyL2RhdGFiYXNlCi0gICAgICAgIHV0aWxzLmNvbm5lY3Rfc2VydmVyKHNl bGYudGVzdGVyKQorICAgICAgICBzZXJ2ZXJfdXRpbHMuYWRkX3NlcnZlcihj bHMudGVzdGVyKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAg ICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHRoZSBkYXRhYmFzZS4i IiIKKyAgICAgICAgIyBDb25uZWN0IHRvIHNlcnZlcgorICAgICAgICBjbHMu c2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UsIGNscy5zZXJ2ZXJfZ3JvdXAsIGNs cy5zZXJ2ZXJfaWRzID0gXAorICAgICAgICAgICAgc2VydmVyX3V0aWxzLmNv bm5lY3Rfc2VydmVyKGNscy50ZXN0ZXIpCiAKLSAgICAgICAgc3J2X2dycCA9 IGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZlcl9ncm91cCddCi0gICAgICAgIGFs bF9pZCA9IGdldF9pZHMoKQotICAgICAgICBzZXJ2ZXJfaWRzID0gYWxsX2lk WyJzaWQiXQotICAgICAgICBkYl9pZHNfZGljdCA9IGFsbF9pZFsiZGlkIl1b MF0KKyAgICAgICAgaWYgbGVuKGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25z ZSkgPT0gMDoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gU2Vy dmVyKHMpIGNvbm5lY3RlZCB0byBhZGQgdGhlIGRhdGFiYXNlISEhIikKIAot ICAgICAgICBmb3Igc2VydmVyX2lkIGluIHNlcnZlcl9pZHM6Ci0gICAgICAg ICAgICBkYl9pZCA9IGRiX2lkc19kaWN0W2ludChzZXJ2ZXJfaWQpXQotICAg ICAgICAgICAgZGJfY29uID0gdXRpbHMudmVyaWZ5X2RhdGFiYXNlKHNlbGYu dGVzdGVyLCBzcnZfZ3JwLCBzZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfaWQpCi0gICAgICAgICAg ICBpZiBsZW4oZGJfY29uKSA9PSAwOgotICAgICAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiTm8gZGF0YWJhc2UocykgdG8gZGVsZXRlIGZvciBzZXJ2 ZXIgaWQgJXMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUg c2VydmVyX2lkKQotICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5kZWxldGUoc2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAnLycgKwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNl cnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQpLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1U cnVlKQorICAgICAgICAjIEFkZCBkYXRhYmFzZQorICAgICAgICBkYXRhYmFz ZV91dGlscy5hZGRfZGF0YWJhc2UoY2xzLnRlc3RlciwgY2xzLnNlcnZlcl9j b25uZWN0X3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2xzLnNlcnZlcl9pZHMpCisKKyAgICBkZWYgcnVuVGVzdChz ZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUg dGhlIGRhdGFiYXNlLiIiIgogCi0gICAgICAgICAgICByZXNwb25zZV9kYXRh ID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkK LSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwb25zZV9kYXRhWydz dWNjZXNzJ10sIDEpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRlbGV0ZV9k YXRhYmFzZShzZWxmLnRlc3RlcikKIAotICAgIGRlZiB0ZWFyRG93bihzZWxm KToKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgdGVhckRvd25DbGFzcyhj bHMpOgogICAgICAgICAiIiIKICAgICAgICAgVGhpcyBmdW5jdGlvbiBkZWxl dGVzIHRoZSBhZGRlZCBzZXJ2ZXIgYW5kIHRoZSAncGFyZW50X2lkLnBrbCcg ZmlsZQogICAgICAgICB3aGljaCBpcyBjcmVhdGVkIGluIHNldHVwKCkgZnVu Y3Rpb24uCkBAIC02Nyw1ICs2MCw1IEBAIGNsYXNzIERhdGFiYXNlRGVsZXRl VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICA6cmV0dXJu OiBOb25lCiAgICAgICAgICIiIgogCi0gICAgICAgIHV0aWxzLmRlbGV0ZV9z ZXJ2ZXIoc2VsZi50ZXN0ZXIpCisgICAgICAgIHNlcnZlcl91dGlscy5kZWxl dGVfc2VydmVyKGNscy50ZXN0ZXIpCiAgICAgICAgIHV0aWxzLmRlbGV0ZV9w YXJlbnRfaWRfZmlsZSgpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVz dF9kYl9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9nZXQucHkKaW5k ZXggNzM1MGY3Mi4uNzM5ZGZmOCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3Rz L3Rlc3RfZGJfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2dl dC5weQpAQCAtMTEsNiArMTEsOCBAQCBmcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiBmcm9tIHJlZ3Jlc3Npb24g aW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gcmVncmVzc2lvbi50 ZXN0X3NldHVwIGltcG9ydCBjb25maWdfZGF0YQogZnJvbSByZWdyZXNzaW9u LnRlc3RfdXRpbHMgaW1wb3J0IGdldF9pZHMKK2Zyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy50ZXN0cyBpbXBvcnQgdXRpbHMg YXMgc2VydmVyX3V0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGRhdGFi YXNlX3V0aWxzCiAKIAogY2xhc3MgRGF0YWJhc2VzR2V0VGVzdENhc2UoQmFz ZVRlc3RHZW5lcmF0b3IpOgpAQCAtMjAsMjIgKzIyLDMzIEBAIGNsYXNzIERh dGFiYXNlc0dldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKIAogICAg IHNjZW5hcmlvcyA9IFsKICAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVS TCBmb3IgZGF0YWJhc2Ugbm9kZS4KLSAgICAgICAgKCdDaGVjayBEYXRhYmFz ZXMgTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvZGF0YWJhc2Uvb2Jq LycpKQorICAgICAgICAoJ0NoZWNrIERhdCBhYmFzZXMgTm9kZSBVUkwnLCBk aWN0KHVybD0nL2Jyb3dzZXIvZGF0YWJhc2Uvb2JqLycpKQogICAgIF0KIAot ICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICBAY2xhc3NtZXRob2QKKyAgICBk ZWYgc2V0VXBDbGFzcyhjbHMpOgogICAgICAgICAiIiIKICAgICAgICAgVGhp cyBmdW5jdGlvbiBwZXJmb3JtIHRoZSB0aHJlZSB0YXNrcwogICAgICAgICAg MS4gQWRkIHRoZSB0ZXN0IHNlcnZlcgogICAgICAgICAgMi4gQ29ubmVjdCB0 byBzZXJ2ZXIKKyAgICAgICAgIDMuIEFkZCB0aGUgZGF0YWJhc2VzCiAKICAg ICAgICAgOnJldHVybjogTm9uZQogICAgICAgICAiIiIKIAogICAgICAgICAj IEZpcnN0bHksIGFkZCB0aGUgc2VydmVyCi0gICAgICAgIHV0aWxzLmFkZF9z ZXJ2ZXIoc2VsZi50ZXN0ZXIpCi0gICAgICAgICMgU2Vjb25kbHksIGNvbm5l Y3QgdG8gc2VydmVyL2RhdGFiYXNlCi0gICAgICAgIHV0aWxzLmNvbm5lY3Rf c2VydmVyKHNlbGYudGVzdGVyKQorICAgICAgICBzZXJ2ZXJfdXRpbHMuYWRk X3NlcnZlcihjbHMudGVzdGVyKQorCisgICAgICAgICMgQ29ubmVjdCB0byBz ZXJ2ZXIKKyAgICAgICAgY2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLCBj bHMuc2VydmVyX2dyb3VwLCBjbHMuc2VydmVyX2lkcyA9IFwKKyAgICAgICAg ICAgIHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihjbHMudGVzdGVyKQor CisgICAgICAgIGlmIGxlbihjbHMuc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2Up ID09IDA6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIFNlcnZl cihzKSBjb25uZWN0ZWQgdG8gYWRkIHRoZSBkYXRhYmFzZSEhISIpCisKKyAg ICAgICAgIyBBZGQgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMu YWRkX2RhdGFiYXNlKGNscy50ZXN0ZXIsIGNscy5zZXJ2ZXJfY29ubmVjdF9y ZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNscy5zZXJ2ZXJfaWRzKQogCiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAg ICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggYWRkZWQgZGF0 YWJhc2UuICIiIgpAQCAtNDQsMTkgKzU3LDIxIEBAIGNsYXNzIERhdGFiYXNl c0dldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgc2Vy dmVyX2lkcyA9IGFsbF9pZFsic2lkIl0KIAogICAgICAgICBkYl9pZHNfZGlj dCA9IGFsbF9pZFsiZGlkIl1bMF0KLSAgICAgICAgc3J2X2dycCA9IGNvbmZp Z19kYXRhWyd0ZXN0X3NlcnZlcl9ncm91cCddCisgICAgICAgIHNydl9ncnAg PSBjb25maWdfZGF0YVsnc2VydmVyX2dyb3VwJ10KIAogICAgICAgICBmb3Ig c2VydmVyX2lkIGluIHNlcnZlcl9pZHM6CiAgICAgICAgICAgICBkYl9pZCA9 IGRiX2lkc19kaWN0W2ludChzZXJ2ZXJfaWQpXQotICAgICAgICAgICAgZGJf Y29uID0gdXRpbHMudmVyaWZ5X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzcnZf Z3JwLCBzZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGJfaWQpCisgICAgICAgICAgICBkYl9jb24gPSBk YXRhYmFzZV91dGlscy52ZXJpZnlfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNy dl9ncnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX2lkKQogICAg ICAgICAgICAgaWYgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5l Y3RlZC4iOgogICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0 ZXIuZ2V0KAogICAgICAgICAgICAgICAgICAgICBzZWxmLnVybCArIHN0cihz cnZfZ3JwKSArICcvJyArIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsKICAgICAg ICAgICAgICAgICAgICAgc3RyKGRiX2lkKSwgZm9sbG93X3JlZGlyZWN0cz1U cnVlKQogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3Bv bnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBkZWYgdGVhckRvd24oc2Vs Zik6CisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHRlYXJEb3duQ2xhc3Mo Y2xzKToKICAgICAgICAgIiIiCiAgICAgICAgIFRoaXMgZnVuY3Rpb24gZGVs ZXRlcyB0aGUgYWRkZWQgZGF0YWJhc2UsIGFkZGVkIHNlcnZlcgogICAgICAg ICBhbmQgdGhlICdwYXJlbnRfaWQucGtsJyBmaWxlIHdoaWNoIGlzIGNyZWF0 ZWQgaW4gc2V0dXAoKSBmdW5jdGlvbi4KQEAgLTY0LDYgKzc5LDYgQEAgY2xh c3MgRGF0YWJhc2VzR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgog ICAgICAgICA6cmV0dXJuOiBOb25lCiAgICAgICAgICIiIgogCi0gICAgICAg IHV0aWxzLmRlbGV0ZV9kYXRhYmFzZShzZWxmLnRlc3RlcikKLSAgICAgICAg dXRpbHMuZGVsZXRlX3NlcnZlcihzZWxmLnRlc3RlcikKKyAgICAgICAgZGF0 YWJhc2VfdXRpbHMuZGVsZXRlX2RhdGFiYXNlKGNscy50ZXN0ZXIpCisgICAg ICAgIHNlcnZlcl91dGlscy5kZWxldGVfc2VydmVyKGNscy50ZXN0ZXIpCiAg ICAgICAgIHV0aWxzLmRlbGV0ZV9wYXJlbnRfaWRfZmlsZSgpCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9wdXQucHkgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVz dHMvdGVzdF9kYl9wdXQucHkKaW5kZXggNDYxNWQzNC4uYzMyZTNjYSAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfcHV0LnB5CisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy90ZXN0cy90ZXN0X2RiX3B1dC5weQpAQCAtMTEsOCArMTEsMTAgQEAg aW1wb3J0IGpzb24KIAogZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgogZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0 ZXN0X3V0aWxzIGFzIHV0aWxzCi1mcm9tIHJlZ3Jlc3Npb24udGVzdF9zZXR1 cCBpbXBvcnQgY29uZmlnX2RhdGEsIGFkdmFuY2VkX2NvbmZpZ19kYXRhCitm cm9tIHJlZ3Jlc3Npb24udGVzdF9zZXR1cCBpbXBvcnQgYWR2YW5jZWRfY29u ZmlnX2RhdGEKIGZyb20gcmVncmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBn ZXRfaWRzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIHNlcnZlcl91dGlscworZnJv bSAuIGltcG9ydCB1dGlscyBhcyBkYXRhYmFzZV91dGlscwogCiAKIGNsYXNz IERhdGFiYXNlc1VwZGF0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK QEAgLTI1LDQ0ICsyNyw1OCBAQCBjbGFzcyBEYXRhYmFzZXNVcGRhdGVUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICgnQ2hlY2sgRGF0 YWJhc2VzIE5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvZGF0YWJhc2Uvb2Jq LycpKQogICAgIF0KIAotICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICBAY2xh c3NtZXRob2QKKyAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgogICAgICAgICAi IiIKICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtIHRoZSB0aHJlZSB0 YXNrcwogICAgICAgICAgMS4gQWRkIHRoZSB0ZXN0IHNlcnZlcgogICAgICAg ICAgMi4gQ29ubmVjdCB0byBzZXJ2ZXIKKyAgICAgICAgIDMuIEFkZCB0aGUg ZGF0YWJhc2VzCiAKICAgICAgICAgOnJldHVybjogTm9uZQogICAgICAgICAi IiIKIAogICAgICAgICAjIEZpcnN0bHksIGFkZCB0aGUgc2VydmVyCi0gICAg ICAgIHV0aWxzLmFkZF9zZXJ2ZXIoc2VsZi50ZXN0ZXIpCi0gICAgICAgICMg U2Vjb25kbHksIGNvbm5lY3QgdG8gc2VydmVyL2RhdGFiYXNlCi0gICAgICAg IHV0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYudGVzdGVyKQorICAgICAgICBz ZXJ2ZXJfdXRpbHMuYWRkX3NlcnZlcihjbHMudGVzdGVyKQorCisgICAgICAg ICMgQ29ubmVjdCB0byBzZXJ2ZXIKKyAgICAgICAgY2xzLnNlcnZlcl9jb25u ZWN0X3Jlc3BvbnNlLCBjbHMuc2VydmVyX2dyb3VwLCBjbHMuc2VydmVyX2lk cyA9IFwKKyAgICAgICAgICAgIHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZl cihjbHMudGVzdGVyKQorCisgICAgICAgIGlmIGxlbihjbHMuc2VydmVyX2Nv bm5lY3RfcmVzcG9uc2UpID09IDA6CisgICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIk5vIFNlcnZlcihzKSBjb25uZWN0ZWQgdG8gYWRkIHRoZSBkYXRh YmFzZSEhISIpCisKKyAgICAgICAgIyBBZGQgZGF0YWJhc2UKKyAgICAgICAg ZGF0YWJhc2VfdXRpbHMuYWRkX2RhdGFiYXNlKGNscy50ZXN0ZXIsIGNscy5z ZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNscy5zZXJ2ZXJfaWRzKQogCiAgICAgZGVmIHJ1 blRlc3Qoc2VsZik6CiAgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwg dXBkYXRlIHRoZSBjb21tZW50cyBmaWVsZCBvZiBkYXRhYmFzZS4iIiIKIAot ICAgICAgICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dy b3VwJ10KICAgICAgICAgYWxsX2lkID0gZ2V0X2lkcygpCiAgICAgICAgIHNl cnZlcl9pZHMgPSBhbGxfaWRbInNpZCJdCiAgICAgICAgIGRiX2lkc19kaWN0 ID0gYWxsX2lkWyJkaWQiXVswXQogCiAgICAgICAgIGZvciBzZXJ2ZXJfaWQg aW4gc2VydmVyX2lkczoKICAgICAgICAgICAgIGRiX2lkID0gZGJfaWRzX2Rp Y3RbaW50KHNlcnZlcl9pZCldCi0gICAgICAgICAgICBkYl9jb24gPSB1dGls cy52ZXJpZnlfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNydl9ncnAsIHNlcnZl cl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkYl9pZCkKKyAgICAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0 aWxzLnZlcmlmeV9kYXRhYmFzZShzZWxmLnRlc3RlciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGls cy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRi X2lkKQogICAgICAgICAgICAgaWYgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFi YXNlIGNvbm5lY3RlZC4iOgogICAgICAgICAgICAgICAgIGRhdGEgPSB7Ci0g ICAgICAgICAgICAgICAgICAgICJjb21tZW50cyI6IGFkdmFuY2VkX2NvbmZp Z19kYXRhWyJ0ZXN0X2RiX3VwZGF0ZV9kYXRhIl1bMF0KLSAgICAgICAgICAg ICAgICAgICAgWyJ0ZXN0X2NvbW1lbnQiXSwKKyAgICAgICAgICAgICAgICAg ICAgImNvbW1lbnRzIjogYWR2YW5jZWRfY29uZmlnX2RhdGFbImRiX3VwZGF0 ZV9kYXRhIl1bMF0KKyAgICAgICAgICAgICAgICAgICAgWyJjb21tZW50Il0s CiAgICAgICAgICAgICAgICAgICAgICJpZCI6IGRiX2lkCiAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYu dGVzdGVyLnB1dCgKLSAgICAgICAgICAgICAgICAgICAgc2VsZi51cmwgKyBz dHIoc3J2X2dycCkgKyAnLycgKyBzdHIoc2VydmVyX2lkKSArICcvJyArCisg ICAgICAgICAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZF Ul9HUk9VUCkgKyAnLycgKyBzdHIoCisgICAgICAgICAgICAgICAgICAgICAg ICBzZXJ2ZXJfaWQpICsgJy8nICsKICAgICAgICAgICAgICAgICAgICAgc3Ry KGRiX2lkKSwgZGF0YT1qc29uLmR1bXBzKGRhdGEpLCBmb2xsb3dfcmVkaXJl Y3RzPVRydWUpCiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo cHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBkZWYgdGVh ckRvd24oc2VsZik6CisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHRlYXJE b3duQ2xhc3Moc2VsZik6CiAgICAgICAgICIiIgogICAgICAgICBUaGlzIGZ1 bmN0aW9uIGRlbGV0ZXMgdGhlIGFkZGVkIHNlcnZlciBhbmQgJ3BhcmVudF9p ZC5wa2wnIGZpbGUKICAgICAgICAgd2hpY2ggaXMgY3JlYXRlZCBpbiBzZXR1 cCgpIGZ1bmN0aW9uLgpAQCAtNzAsNSArODYsNiBAQCBjbGFzcyBEYXRhYmFz ZXNVcGRhdGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAg IDpyZXR1cm46IE5vbmUKICAgICAgICAgIiIiCiAKLSAgICAgICAgdXRpbHMu ZGVsZXRlX3NlcnZlcihzZWxmLnRlc3RlcikKKyAgICAgICAgZGF0YWJhc2Vf dXRpbHMuZGVsZXRlX2RhdGFiYXNlKHNlbGYudGVzdGVyKQorICAgICAgICBz ZXJ2ZXJfdXRpbHMuZGVsZXRlX3NlcnZlcihzZWxmLnRlc3RlcikKICAgICAg ICAgdXRpbHMuZGVsZXRlX3BhcmVudF9pZF9maWxlKCkKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy90ZXN0cy91dGlscy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy91dGlscy5w eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2ZmYWY0 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3V0aWxzLnB5CkBA IC0wLDAgKzEsMTc2IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisjCisjICNwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisj ICNDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZl bG9wbWVudCBUZWFtCisjICNUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVu ZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IGpzb24KK2ltcG9ydCBvcwor aW1wb3J0IHBpY2tsZQoraW1wb3J0IHV1aWQKKworZnJvbSByZWdyZXNzaW9u LnRlc3Rfc2V0dXAgaW1wb3J0IHBpY2tsZV9wYXRoLCBjb25maWdfZGF0YSwg YWR2YW5jZWRfY29uZmlnX2RhdGEKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgc2Vy dmVyX3V0aWxzCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMg YXMgdXRpbHMKKworCitEQVRBQkFTRV9VUkwgPSAnL2Jyb3dzZXIvZGF0YWJh c2Uvb2JqLycKK0RBVEFCQVNFX0NPTk5FQ1RfVVJMID0gJ2Jyb3dzZXIvZGF0 YWJhc2UvY29ubmVjdC8nCisKKworZGVmIGdldF9kYl9kYXRhKHNlcnZlcl9j b25uZWN0X2RhdGEpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gaXMg dXNlZCB0byBnZXQgYWR2YW5jZSBjb25maWcgdGVzdCBkYXRhIGZvciBhcHBy b3ByaWF0ZQorICAgIHNlcnZlcgorCisgICAgOnBhcmFtIHNlcnZlcl9jb25u ZWN0X2RhdGE6IGxpc3Qgb2Ygc2VydmVyIGRldGFpbHMKKyAgICA6cmV0dXJu IGRhdGE6IGRhdGFiYXNlIGRldGFpbHMKKyAgICA6cnR5cGU6IGRpY3QKKyAg ICAiIiIKKworICAgIGFkdl9jb25maWdfZGF0YSA9IE5vbmUKKyAgICBkYXRh ID0gTm9uZQorICAgIGRiX3VzZXIgPSBzZXJ2ZXJfY29ubmVjdF9kYXRhWydk YXRhJ11bJ3VzZXInXVsnbmFtZSddCisKKyAgICAjIEdldCB0aGUgY29uZmln IGRhdGEgb2YgYXBwcm9wcmlhdGUgZGIgdXNlcgorICAgIGZvciBjb25maWdf dGVzdF9kYXRhIGluIGFkdmFuY2VkX2NvbmZpZ19kYXRhWydhZGRfZGF0YWJh c2VfZGF0YSddOgorICAgICAgICBpZiBkYl91c2VyID09IGNvbmZpZ190ZXN0 X2RhdGFbJ293bmVyJ106CisgICAgICAgICAgICBhZHZfY29uZmlnX2RhdGEg PSBjb25maWdfdGVzdF9kYXRhCisKKyAgICBpZiBhZHZfY29uZmlnX2RhdGEg aXMgbm90IE5vbmU6CisgICAgICAgIGRhdGEgPSB7CisgICAgICAgICAgICAi ZGF0YWNsIjogYWR2X2NvbmZpZ19kYXRhWydwcml2aWxlZ2VzX2FjbCddLAor ICAgICAgICAgICAgImRhdGNvbm5saW1pdCI6IGFkdl9jb25maWdfZGF0YVsn Y29ubl9saW1pdCddLAorICAgICAgICAgICAgImRhdG93bmVyIjogYWR2X2Nv bmZpZ19kYXRhWydvd25lciddLAorICAgICAgICAgICAgImRlZmZ1bmNhY2wi OiBhZHZfY29uZmlnX2RhdGFbJ2Z1bl9hY2wnXSwKKyAgICAgICAgICAgICJk ZWZzZXFhY2wiOiBhZHZfY29uZmlnX2RhdGFbJ3NlcV9hY2wnXSwKKyAgICAg ICAgICAgICJkZWZ0YmxhY2wiOiBhZHZfY29uZmlnX2RhdGFbJ3RibF9hY2wn XSwKKyAgICAgICAgICAgICJkZWZ0eXBlYWNsIjogYWR2X2NvbmZpZ19kYXRh Wyd0eXBlX2FjbCddLAorICAgICAgICAgICAgImVuY29kaW5nIjogYWR2X2Nv bmZpZ19kYXRhWydlbmNvZGluZyddLAorICAgICAgICAgICAgIm5hbWUiOiBz dHIodXVpZC51dWlkNCgpKVsxOjhdLAorICAgICAgICAgICAgInByaXZpbGVn ZXMiOiBhZHZfY29uZmlnX2RhdGFbJ3ByaXZpbGVnZXMnXSwKKyAgICAgICAg ICAgICJzZWN1cml0aWVzIjogYWR2X2NvbmZpZ19kYXRhWydzZWN1cml0aWVz J10sCisgICAgICAgICAgICAidmFyaWFibGVzIjogYWR2X2NvbmZpZ19kYXRh Wyd2YXJpYWJsZXMnXQorICAgICAgICB9CisgICAgcmV0dXJuIGRhdGEKKwor CitkZWYgd3JpdGVfZGJfaWQocmVzcG9uc2VfZGF0YSk6CisgICAgIiIiCisg ICAgVGhpcyBmdW5jdGlvbiB3cml0ZXMgdGhlIHNlcnZlciBhbmQgZGF0YWJh c2UgcmVsYXRlZCBkYXRhIGxpa2Ugc2VydmVyCisgICAgbmFtZSwgc2VydmVy IGlkICwgZGF0YWJhc2UgbmFtZSwgZGF0YWJhc2UgaWQgZXRjLgorCisgICAg OnBhcmFtIHJlc3BvbnNlX2RhdGE6IHNlcnZlciBhbmQgZGF0YWJhc2VzIGRl dGFpbHMKKyAgICA6dHlwZSByZXNwb25zZV9kYXRhOiBkaWN0CisgICAgOnJl dHVybjogTm9uZQorICAgICIiIgorCisgICAgZGJfaWQgPSByZXNwb25zZV9k YXRhWydub2RlJ11bJ19pZCddCisgICAgc2VydmVyX2lkID0gcmVzcG9uc2Vf ZGF0YVsnbm9kZSddWydfcGlkJ10KKyAgICBwaWNrbGVfaWRfZGljdCA9IHV0 aWxzLmdldF9waWNrbGVfaWRfZGljdCgpCisgICAgaWYgb3MucGF0aC5pc2Zp bGUocGlja2xlX3BhdGgpOgorICAgICAgICBleGlzdGluZ19zZXJ2ZXJfaWQg PSBvcGVuKHBpY2tsZV9wYXRoLCAncmInKQorICAgICAgICB0b2xfc2VydmVy X2lkID0gcGlja2xlLmxvYWQoZXhpc3Rpbmdfc2VydmVyX2lkKQorICAgICAg ICBwaWNrbGVfaWRfZGljdCA9IHRvbF9zZXJ2ZXJfaWQKKyAgICBpZiAnZGlk JyBpbiBwaWNrbGVfaWRfZGljdDoKKyAgICAgICAgaWYgcGlja2xlX2lkX2Rp Y3RbJ2RpZCddOgorICAgICAgICAgICAgIyBBZGQgdGhlIGRiX2lkIGFzIHZh bHVlIGluIGRpY3QKKyAgICAgICAgICAgIHBpY2tsZV9pZF9kaWN0WyJkaWQi XVswXS51cGRhdGUoe3NlcnZlcl9pZDogZGJfaWR9KQorICAgICAgICBlbHNl OgorICAgICAgICAgICAgIyBDcmVhdGUgbmV3IGRpY3Qgd2l0aCBzZXJ2ZXJf aWQgYW5kIGRiX2lkCisgICAgICAgICAgICBwaWNrbGVfaWRfZGljdFsiZGlk Il0uYXBwZW5kKHtzZXJ2ZXJfaWQ6IGRiX2lkfSkKKyAgICBkYl9vdXRwdXQg PSBvcGVuKHBpY2tsZV9wYXRoLCAnd2InKQorICAgIHBpY2tsZS5kdW1wKHBp Y2tsZV9pZF9kaWN0LCBkYl9vdXRwdXQpCisgICAgZGJfb3V0cHV0LmNsb3Nl KCkKKworCitkZWYgYWRkX2RhdGFiYXNlKHRlc3Rlciwgc2VydmVyX2Nvbm5l Y3RfcmVzcG9uc2UsIHNlcnZlcl9pZHMpOgorICAgICIiIgorICAgIFRoaXMg ZnVuY3Rpb24gYWRkIHRoZSBkYXRhYmFzZSBpbnRvIHNlcnZlcnMKKworICAg IDpwYXJhbSB0ZXN0ZXI6IGZsYXNrIHRlc3QgY2xpZW50CisgICAgOnR5cGUg dGVzdGVyOiBmbGFzayB0ZXN0IG9iamVjdAorICAgIDpwYXJhbSBzZXJ2ZXJf Y29ubmVjdF9yZXNwb25zZTogc2VydmVyIHJlc3BvbnNlCisgICAgOnR5cGUg c2VydmVyX2Nvbm5lY3RfcmVzcG9uc2U6IGRpY3QKKyAgICA6cGFyYW0gc2Vy dmVyX2lkczogc2VydmVyIGlkcworICAgIDp0eXBlIHNlcnZlcl9pZHM6IGxp c3QKKyAgICA6cmV0dXJuOiBOb25lCisgICAgIiIiCisKKyAgICBmb3Igc2Vy dmVyX2Nvbm5lY3QsIHNlcnZlcl9pZCBpbiB6aXAoc2VydmVyX2Nvbm5lY3Rf cmVzcG9uc2UsIHNlcnZlcl9pZHMpOgorICAgICAgICBpZiBzZXJ2ZXJfY29u bmVjdFsnZGF0YSddWydjb25uZWN0ZWQnXToKKyAgICAgICAgICAgIGRhdGEg PSBnZXRfZGJfZGF0YShzZXJ2ZXJfY29ubmVjdCkKKyAgICAgICAgICAgIGRi X3Jlc3BvbnNlID0gdGVzdGVyLnBvc3QoREFUQUJBU0VfVVJMICsgc3RyKHV0 aWxzLlNFUlZFUl9HUk9VUCkgKworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICIvIiArIHNlcnZlcl9pZCArICIvIiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh PWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQor ICAgICAgICAgICAgYXNzZXJ0IGRiX3Jlc3BvbnNlLnN0YXR1c19jb2RlID09 IDIwMAorICAgICAgICAgICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMo ZGJfcmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCisgICAgICAgICAg ICB3cml0ZV9kYl9pZChyZXNwb25zZV9kYXRhKQorCisKK2RlZiB2ZXJpZnlf ZGF0YWJhc2UodGVzdGVyLCBzZXJ2ZXJfZ3JvdXAsIHNlcnZlcl9pZCwgZGJf aWQpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gdmVyaWZpZXMgdGhh dCBkYXRhYmFzZSBpcyBleGlzdHMgYW5kIHdoZXRoZXIgaXQgY29ubmVjdAor ICAgIHN1Y2Nlc3NmdWxseSBvciBub3QKKworICAgIDpwYXJhbSB0ZXN0ZXI6 IHRlc3QgY2xpZW50CisgICAgOnR5cGUgdGVzdGVyOiBmbGFzayB0ZXN0IGNs aWVudCBvYmplY3QKKyAgICA6cGFyYW0gc2VydmVyX2dyb3VwOiBzZXJ2ZXIg Z3JvdXAgaWQKKyAgICA6dHlwZSBzZXJ2ZXJfZ3JvdXA6IGludAorICAgIDpw YXJhbSBzZXJ2ZXJfaWQ6IHNlcnZlciBpZAorICAgIDp0eXBlIHNlcnZlcl9p ZDogc3RyCisgICAgOnBhcmFtIGRiX2lkOiBkYXRhYmFzZSBpZAorICAgIDp0 eXBlIGRiX2lkOiBzdHIKKyAgICA6cmV0dXJuOiB0ZW1wX2RiX2NvbgorICAg IDpydHlwZTogbGlzdAorICAgICIiIgorCisgICAgIyBWZXJpZnkgc2VydmVy cworICAgIHNlcnZlcl91dGlscy52ZXJpZnlfc2VydmVyKHRlc3RlcixzZXJ2 ZXJfZ3JvdXAsc2VydmVyX2lkKQorCisgICAgIyBDb25uZWN0IHRvIGRhdGFi YXNlCisgICAgY29uX3Jlc3BvbnNlID0gdGVzdGVyLnBvc3QoJ3swfXsxfS97 Mn0vezN9Jy5mb3JtYXQoCisgICAgICAgIERBVEFCQVNFX0NPTk5FQ1RfVVJM LCBzZXJ2ZXJfZ3JvdXAsIHNlcnZlcl9pZCwgZGJfaWQpLAorICAgICAgICBm b2xsb3dfcmVkaXJlY3RzPVRydWUpCisgICAgdGVtcF9kYl9jb24gPSBqc29u LmxvYWRzKGNvbl9yZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKKwor ICAgIHJldHVybiB0ZW1wX2RiX2NvbgorCisKK2RlZiBkZWxldGVfZGF0YWJh c2UodGVzdGVyKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHVzZWQg dG8gZGVsZXRlIHRoZSBhZGRlZCBkYXRhYmFzZXMKKworICAgIDpwYXJhbSB0 ZXN0ZXI6IHRlc3QgY2xpZW50IG9iamVjdAorICAgIDpyZXR1cm46IE5vbmUK KyAgICAiIiIKKworICAgIHNlcnZlcl9pZHMgPSBOb25lCisgICAgZGJfaWRz X2RpY3QgPSBOb25lCisKKyAgICBhbGxfaWQgPSB1dGlscy5nZXRfaWRzKCkK KyAgICBpZiAic2lkIiBhbmQgImRpZCIgaW4gYWxsX2lkLmtleXMoKToKKyAg ICAgICAgc2VydmVyX2lkcyA9IGFsbF9pZFsic2lkIl0KKyAgICAgICAgaWYg YWxsX2lkWydkaWQnXToKKyAgICAgICAgICAgIGRiX2lkc19kaWN0ID0gYWxs X2lkWydkaWQnXVswXQorICAgIGVsc2U6CisgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbigiS2V5cyBhcmUgbm90IGZvdW5kIGluIHBpY2tsZSBkaWN0OiB7fSIu Zm9ybWF0KFsic2lkIiwgImRpZCJdKSkKKworICAgIGlmIHNlcnZlcl9pZHMg YW5kIGRiX2lkc19kaWN0IGlzIG5vdCBOb25lOgorICAgICAgICBmb3Igc2Vy dmVyX2lkIGluIHNlcnZlcl9pZHM6CisgICAgICAgICAgICBzZXJ2ZXJfcmVz cG9uc2UgPSBzZXJ2ZXJfdXRpbHMudmVyaWZ5X3NlcnZlcih0ZXN0ZXIsIHV0 aWxzLlNFUlZFUl9HUk9VUCwgc2VydmVyX2lkKQorICAgICAgICAgICAgaWYg c2VydmVyX3Jlc3BvbnNlWyJkYXRhIl1bImNvbm5lY3RlZCJdOgorICAgICAg ICAgICAgICAgIGRiX2lkID0gZGJfaWRzX2RpY3RbaW50KHNlcnZlcl9pZCld CisgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSB0ZXN0ZXIuZGVsZXRlKERB VEFCQVNFX1VSTCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry KHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQpLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3Rz PVRydWUpCisgICAgICAgICAgICAgICAgYXNzZXJ0IHJlc3BvbnNlLnN0YXR1 c19jb2RlID09IDIwMAorICAgICAgICAgICAgICAgIHJlc3BvbnNlX2RhdGEg PSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQor ICAgICAgICAgICAgICAgIGFzc2VydCByZXNwb25zZV9kYXRhWydzdWNjZXNz J10gPT0gMQorICAgIGVsc2U6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Tm8gc2VydmVycy9kYXRhYmFzZXMgZm91bmQuIikKKwpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9s ZXMvdGVzdHMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZXN0cy9fX2luaXRfXy5weQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YTExYmY4Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVzdHMvX19pbml0X18ucHkKQEAgLTAs MCArMSwxNiBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0Fk bWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykg MjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMg VGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNR TCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9t IHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y CisKKworY2xhc3MgUm9sZUdlbmVyYXRvclRlc3RDYXNlKEJhc2VUZXN0R2Vu ZXJhdG9yKToKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICBy ZXR1cm4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rlc3Rfcm9sZV9hZGQucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9y b2xlcy90ZXN0cy90ZXN0X3JvbGVfYWRkLnB5Cm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjlkOGY5NDkKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9y b2xlcy90ZXN0cy90ZXN0X3JvbGVfYWRkLnB5CkBAIC0wLDAgKzEsNTUgQEAK KyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9z dGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2 LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdh cmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQor IworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSBwZ2FkbWluLnV0 aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdy ZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMudGVzdHMgaW1wb3J0 IHV0aWxzIGFzIHNlcnZlcl91dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBh cyByb2xlc191dGlscworCisKK2NsYXNzIExvZ2luUm9sZUFkZFRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiJUaGlzIGNsYXNzIGhhcyBh ZGQgcm9sZSBzY2VuYXJpbyIiIgorCisgICAgc2NlbmFyaW9zID0gWworICAg ICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciByb2xlcyBub2RlLgor ICAgICAgICAoJ0NoZWNrIFJvbGUgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nl ci9yb2xlL29iai8nKSkKKyAgICBdCisKKyAgICBAY2xhc3NtZXRob2QKKyAg ICBkZWYgc2V0VXBDbGFzcyhjbHMpOgorICAgICAgICAiIiIKKyAgICAgICAg VGhpcyBmdW5jdGlvbiB1c2VkIHRvIGFkZCB0aGUgc2V2ZXIKKworICAgICAg ICA6cmV0dXJuOiBOb25lCisgICAgICAgICIiIgorCisgICAgICAgICMgQWRk IHRoZSBzZXJ2ZXIKKyAgICAgICAgc2VydmVyX3V0aWxzLmFkZF9zZXJ2ZXIo Y2xzLnRlc3RlcikKKworICAgICAgICAjIENvbm5lY3QgdG8gc2VydmVyCisg ICAgICAgIGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSwgY2xzLnNlcnZl cl9ncm91cCwgY2xzLnNlcnZlcl9pZHMgPSBcCisgICAgICAgICAgICBzZXJ2 ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoY2xzLnRlc3RlcikKKworICAgICAg ICBpZiBsZW4oY2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlKSA9PSAwOgor ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyBTZXJ2ZXIocykgY29u bmVjdGVkIHRvIGFkZCB0aGUgcm9sZXMhISEiKQorCisgICAgZGVmIHJ1blRl c3Qoc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gdGVzdCB0aGUg YWRkIHJvbGUgc2NlbmFyaW8iIiIKKworICAgICAgICByb2xlc191dGlscy5h ZGRfcm9sZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfY29ubmVjdF9yZXNw b25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJfZ3JvdXAsIHNlbGYuc2VydmVyX2lkcykKKworICAgIEBjbGFzc21ldGhv ZAorICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6CisgICAgICAgICIiIlRo aXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgcm9sZSxzZXJ2ZXIgYW5kIHBhcmVu dCBpZCBmaWxlIiIiCisKKyAgICAgICAgcm9sZXNfdXRpbHMuZGVsZXRlX3Jv bGUoY2xzLnRlc3RlcikKKyAgICAgICAgc2VydmVyX3V0aWxzLmRlbGV0ZV9z ZXJ2ZXIoY2xzLnRlc3RlcikKKyAgICAgICAgdXRpbHMuZGVsZXRlX3BhcmVu dF9pZF9maWxlKCkKKwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVzdHMvdGVzdF9yb2xl X2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rlc3Rfcm9sZV9kZWxldGUucHkKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjMyMDRjZAotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rlc3Rfcm9sZV9kZWxldGUucHkK QEAgLTAsMCArMSw1OCBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIwor IyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdo dCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRl YW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9z dGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor CisKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscyBh cyB1dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBzZXJ2ZXJfdXRpbHMKK2Zy b20gLiBpbXBvcnQgdXRpbHMgYXMgcm9sZXNfdXRpbHMKKworCitjbGFzcyBM b2dpblJvbGVEZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Cisg ICAgIiIiVGhpcyBjbGFzcyBoYXMgZGVsZXRlIHJvbGUgc2NlbmFyaW8iIiIK KworICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZh dWx0IFVSTCBmb3Igcm9sZXMgbm9kZS4KKyAgICAgICAgKCdDaGVjayBSb2xl IE5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvcm9sZS9vYmovJykpCisgICAg XQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHNldFVwQ2xhc3MoY2xz KToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gdXNlZCB0 byBhZGQgdGhlIHNldmVyIGFuZCByb2xlcworCisgICAgICAgIDpyZXR1cm46 IE5vbmUKKyAgICAgICAgIiIiCisKKyAgICAgICAgIyBBZGQgdGhlIHNlcnZl cgorICAgICAgICBzZXJ2ZXJfdXRpbHMuYWRkX3NlcnZlcihjbHMudGVzdGVy KQorCisgICAgICAgICMgQ29ubmVjdCB0byBzZXJ2ZXIKKyAgICAgICAgY2xz LnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLCBjbHMuc2VydmVyX2dyb3VwLCBj bHMuc2VydmVyX2lkcyA9IFwKKyAgICAgICAgICAgIHNlcnZlcl91dGlscy5j b25uZWN0X3NlcnZlcihjbHMudGVzdGVyKQorCisgICAgICAgIGlmIGxlbihj bHMuc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UpID09IDA6CisgICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIk5vIFNlcnZlcihzKSBjb25uZWN0ZWQgdG8g YWRkIHRoZSByb2xlcyEhISIpCisKKyAgICAgICAgIyBBZGQgdGhlIHJvbGUK KyAgICAgICAgcm9sZXNfdXRpbHMuYWRkX3JvbGUoY2xzLnRlc3RlciwgY2xz LnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjbHMuc2VydmVyX2dyb3VwLCBjbHMuc2VydmVyX2lkcykK KworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1 bmN0aW9uIHRlc3RzIHRoZSBkZWxldGUgcm9sZSBzY2VuYXJpbyIiIgorCisg ICAgICAgIHJvbGVzX3V0aWxzLmRlbGV0ZV9yb2xlKHNlbGYudGVzdGVyKQor CisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHRlYXJEb3duQ2xhc3Moc2Vs Zik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgcm9s ZSxzZXJ2ZXIgYW5kIHBhcmVudCBpZCBmaWxlIiIiCisKKyAgICAgICAgc2Vy dmVyX3V0aWxzLmRlbGV0ZV9zZXJ2ZXIoc2VsZi50ZXN0ZXIpCisgICAgICAg IHV0aWxzLmRlbGV0ZV9wYXJlbnRfaWRfZmlsZSgpCisKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Jv bGVzL3Rlc3RzL3Rlc3Rfcm9sZV9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZXN0cy90ZXN0X3Jv bGVfZ2V0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjQxODdmY2EKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZXN0cy90ZXN0X3Jv bGVfZ2V0LnB5CkBAIC0wLDAgKzEsNjcgQEAKKyMgIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIwor IyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZl bG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5k ZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBC YXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0 X3V0aWxzIGFzIHV0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIHNlcnZlcl91 dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyByb2xlc191dGlscworCisK K2NsYXNzIExvZ2luUm9sZUdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKKyAgICAiIiJUaGlzIGNsYXNzIHRlc3RzIHRoZSBnZXQgcm9sZSBzY2Vu YXJpbyIiIgorCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNo aW5nIGRlZmF1bHQgVVJMIGZvciByb2xlcyBub2RlLgorICAgICAgICAoJ0No ZWNrIFJvbGUgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci9yb2xlL29iai8n KSkKKyAgICBdCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgc2V0VXBD bGFzcyhjbHMpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlv biB1c2VkIHRvIGFkZCB0aGUgc2V2ZXIgYW5kIHJvbGVzCisKKyAgICAgICAg OnJldHVybjogTm9uZQorICAgICAgICAiIiIKKworICAgICAgICAjIEFkZCB0 aGUgc2VydmVyCisgICAgICAgIHNlcnZlcl91dGlscy5hZGRfc2VydmVyKGNs cy50ZXN0ZXIpCisKKyAgICAgICAgIyBDb25uZWN0IHRvIHNlcnZlcgorICAg ICAgICBjbHMuc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UsIGNscy5zZXJ2ZXJf Z3JvdXAsIGNscy5zZXJ2ZXJfaWRzID0gXAorICAgICAgICAgICAgc2VydmVy X3V0aWxzLmNvbm5lY3Rfc2VydmVyKGNscy50ZXN0ZXIpCisKKyAgICAgICAg aWYgbGVuKGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSkgPT0gMDoKKyAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gU2VydmVyKHMpIGNvbm5l Y3RlZCB0byBnZXQgdGhlIHJvbGVzISEhIikKKworICAgICAgICAjIEFkZCB0 aGUgcm9sZQorICAgICAgICByb2xlc191dGlscy5hZGRfcm9sZShjbHMudGVz dGVyLCBjbHMuc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNscy5zZXJ2ZXJfZ3JvdXAsIGNscy5zZXJ2 ZXJfaWRzKQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIi IlRoaXMgZnVuY3Rpb24gdGVzdCB0aGUgZ2V0IHJvbGUgc2NlbmFyaW8iIiIK KworICAgICAgICBhbGxfaWQgPSB1dGlscy5nZXRfaWRzKCkKKyAgICAgICAg c2VydmVyX2lkcyA9IGFsbF9pZFsic2lkIl0KKyAgICAgICAgcm9sZV9pZHNf ZGljdCA9IGFsbF9pZFsibHJpZCJdWzBdCisKKyAgICAgICAgZm9yIHNlcnZl cl9pZCBpbiBzZXJ2ZXJfaWRzOgorICAgICAgICAgICAgcm9sZV9pZCA9IHJv bGVfaWRzX2RpY3RbaW50KHNlcnZlcl9pZCldCisgICAgICAgICAgICByZXNw b25zZSA9IHNlbGYudGVzdGVyLmdldCgKKyAgICAgICAgICAgICAgICBzZWxm LnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAg ICAgICAgICAgICBzdHIoc2VydmVyX2lkKSArICcvJyArIHN0cihyb2xlX2lk KSwKKyAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisg ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNf Y29kZSwgMjAwKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHRlYXJE b3duQ2xhc3MoY2xzKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxl dGVzIHRoZSByb2xlLHNlcnZlciBhbmQgcGFyZW50IGlkIGZpbGUiIiIKKwor ICAgICAgICByb2xlc191dGlscy5kZWxldGVfcm9sZShjbHMudGVzdGVyKQor ICAgICAgICBzZXJ2ZXJfdXRpbHMuZGVsZXRlX3NlcnZlcihjbHMudGVzdGVy KQorICAgICAgICB1dGlscy5kZWxldGVfcGFyZW50X2lkX2ZpbGUoKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvcm9sZXMvdGVzdHMvdGVzdF9yb2xlX3B1dC5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3Rz L3Rlc3Rfcm9sZV9wdXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZjhjMzUzZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3Rz L3Rlc3Rfcm9sZV9wdXQucHkKQEAgLTAsMCArMSw4NCBAQAorIyAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRv b2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxl YXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQganNvbgorCitmcm9tIHBnYWRt aW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9t IHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy50ZXN0cyBp bXBvcnQgdXRpbHMgYXMgc2VydmVyX3V0aWxzCitmcm9tIHJlZ3Jlc3Npb24u dGVzdF9zZXR1cCBpbXBvcnQgYWR2YW5jZWRfY29uZmlnX2RhdGEKK2Zyb20g LiBpbXBvcnQgdXRpbHMgYXMgcm9sZXNfdXRpbHMKKworCitjbGFzcyBMb2dp blJvbGVQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIi VGhpcyBjbGFzcyBoYXMgdXBkYXRlIHJvbGUgc2NlbmFyaW8iIiIKKworICAg IHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVS TCBmb3Igcm9sZXMgbm9kZS4KKyAgICAgICAgKCdDaGVjayBSb2xlIE5vZGUn LCBkaWN0KHVybD0nL2Jyb3dzZXIvcm9sZS9vYmovJykpCisgICAgXQorCisg ICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHNldFVwQ2xhc3MoY2xzKToKKyAg ICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gdXNlZCB0byBhZGQg dGhlIHNldmVyIGFuZCByb2xlcworCisgICAgICAgIDpyZXR1cm46IE5vbmUK KyAgICAgICAgIiIiCisKKyAgICAgICAgIyBBZGQgdGhlIHNlcnZlcgorICAg ICAgICBzZXJ2ZXJfdXRpbHMuYWRkX3NlcnZlcihjbHMudGVzdGVyKQorCisg ICAgICAgICMgQ29ubmVjdCB0byBzZXJ2ZXIKKyAgICAgICAgY2xzLnNlcnZl cl9jb25uZWN0X3Jlc3BvbnNlLCBjbHMuc2VydmVyX2dyb3VwLCBjbHMuc2Vy dmVyX2lkcyA9IFwKKyAgICAgICAgICAgIHNlcnZlcl91dGlscy5jb25uZWN0 X3NlcnZlcihjbHMudGVzdGVyKQorCisgICAgICAgIGlmIGxlbihjbHMuc2Vy dmVyX2Nvbm5lY3RfcmVzcG9uc2UpID09IDA6CisgICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIk5vIFNlcnZlcihzKSBjb25uZWN0ZWQgdG8gZ2V0IHRo ZSByb2xlcyEhISIpCisKKyAgICAgICAgIyBBZGQgdGhlIHJvbGUKKyAgICAg ICAgcm9sZXNfdXRpbHMuYWRkX3JvbGUoY2xzLnRlc3RlciwgY2xzLnNlcnZl cl9jb25uZWN0X3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjbHMuc2VydmVyX2dyb3VwLCBjbHMuc2VydmVyX2lkcykKKworICAg IGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9u IHRlc3RzIHRoZSB1cGRhdGUgcm9sZSBkYXRhIHNjZW5hcmlvIiIiCisKKyAg ICAgICAgYWxsX2lkID0gdXRpbHMuZ2V0X2lkcygpCisgICAgICAgIHNlcnZl cl9pZHMgPSBhbGxfaWRbInNpZCJdCisgICAgICAgIHJvbGVfaWRzX2RpY3Qg PSBhbGxfaWRbImxyaWQiXVswXQorCisgICAgICAgIGZvciBzZXJ2ZXJfaWQg aW4gc2VydmVyX2lkczoKKyAgICAgICAgICAgIHJvbGVfaWQgPSByb2xlX2lk c19kaWN0W2ludChzZXJ2ZXJfaWQpXQorICAgICAgICAgICAgcm9sZV9yZXNw b25zZSA9IHJvbGVzX3V0aWxzLnZlcmlmeV9yb2xlKHNlbGYudGVzdGVyLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcm9sZV9pZCkKKyAgICAgICAgICAgIGlmIGxlbihyb2xlX3Jl c3BvbnNlKSA9PSAwOgorICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiTm8gcm9sZXMocykgdG8gdXBkYXRlISEhIikKKworICAgICAgICAgICAg ZGF0YSA9IHsKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBhZHZh bmNlZF9jb25maWdfZGF0YVsibHJfdXBkYXRlX2RhdGEiXQorICAgICAgICAg ICAgICAgIFsiY29tbWVudCJdLAorICAgICAgICAgICAgICAgICJscmlkIjog cm9sZV9pZAorICAgICAgICAgICAgfQorICAgICAgICAgICAgcHV0X3Jlc3Bv bnNlID0gc2VsZi50ZXN0ZXIucHV0KAorICAgICAgICAgICAgICAgIHNlbGYu dXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAg ICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHJvbGVfaWQp LAorICAgICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAg ICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisKKyAgICAg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHB1dF9yZXNwb25zZS5zdGF0dXNf Y29kZSwgMjAwKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHRlYXJE b3duQ2xhc3MoY2xzKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxl dGVzIHRoZSByb2xlLHNlcnZlciBhbmQgcGFyZW50IGlkIGZpbGUiIiIKKwor ICAgICAgICByb2xlc191dGlscy5kZWxldGVfcm9sZShjbHMudGVzdGVyKQor ICAgICAgICBzZXJ2ZXJfdXRpbHMuZGVsZXRlX3NlcnZlcihjbHMudGVzdGVy KQorICAgICAgICB1dGlscy5kZWxldGVfcGFyZW50X2lkX2ZpbGUoKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvcm9sZXMvdGVzdHMvdXRpbHMucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZXN0cy91dGlscy5w eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWUwOTkw Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVzdHMvdXRpbHMucHkKQEAgLTAs MCArMSwxODcgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdB ZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMp IDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisj IFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVT UUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1w b3J0IGpzb24KK2ltcG9ydCBvcworaW1wb3J0IHBpY2tsZQoraW1wb3J0IHV1 aWQKKworZnJvbSByZWdyZXNzaW9uLnRlc3Rfc2V0dXAgaW1wb3J0IHBpY2ts ZV9wYXRoLCBjb25maWdfZGF0YSwgYWR2YW5jZWRfY29uZmlnX2RhdGEKK2Zy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy50ZXN0 cyBpbXBvcnQgdXRpbHMgYXMgc2VydmVyX3V0aWxzCitmcm9tIHJlZ3Jlc3Np b24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKKworCitST0xFX1VSTCA9 ICcvYnJvd3Nlci9yb2xlL29iai8nCisKKworZGVmIHZlcmlmeV9yb2xlKHRl c3Rlciwgc2VydmVyX2dyb3VwLCBzZXJ2ZXJfaWQsIHJvbGVfaWQpOgorICAg ICIiIgorICAgIFRoaXMgZnVuY3Rpb24gY2FsbHMgdGhlIEdFVCBBUEkgZm9y IHJvbGUgdG8gdmVyaWZ5CisKKyAgICA6cGFyYW0gdGVzdGVyOiB0ZXN0IGNs aWVudAorICAgIDp0eXBlIHRlc3RlcjogZmxhc2sgdGVzdCBjbGllbnQgb2Jq ZWN0CisgICAgOnBhcmFtIHNlcnZlcl9ncm91cDogc2VydmVyIGdyb3VwIGlk CisgICAgOnR5cGUgc2VydmVyX2dyb3VwOiBpbnQKKyAgICA6cGFyYW0gc2Vy dmVyX2lkOiBzZXJ2ZXIgaWQKKyAgICA6dHlwZSBzZXJ2ZXJfaWQ6IHN0cgor ICAgIDpwYXJhbSByb2xlX2lkOiByb2xlIGlkCisgICAgOnR5cGUgcm9sZV9p ZDogaW50CisgICAgOnJldHVybjogZGljdC9Ob25lCisgICAgIiIiCisKKyAg ICBzcnZfY29ubmVjdCA9IHNlcnZlcl91dGlscy52ZXJpZnlfc2VydmVyKHRl c3Rlciwgc2VydmVyX2dyb3VwLCBzZXJ2ZXJfaWQpCisgICAgaWYgc3J2X2Nv bm5lY3RbJ2RhdGEnXVsnY29ubmVjdGVkJ106CisgICAgICAgIHJlc3BvbnNl ID0gdGVzdGVyLmdldCgKKyAgICAgICAgICAgICd7MH17MX0vezJ9L3szfScu Zm9ybWF0KFJPTEVfVVJMLCBzZXJ2ZXJfZ3JvdXAsIHNlcnZlcl9pZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGVfaWQpLAor ICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAgICAg ICB0ZW1wX3Jlc3BvbnNlID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRl Y29kZSgndXRmLTgnKSkKKyAgICAgICAgcmV0dXJuIHRlbXBfcmVzcG9uc2UK KyAgICBlbHNlOgorICAgICAgICByZXR1cm4gTm9uZQorCisKK2RlZiB0ZXN0 X2dldHJvbGUodGVzdGVyKToKKyAgICBpZiBub3QgdGVzdGVyOgorICAgICAg ICByZXR1cm4gTm9uZQorCisgICAgYWxsX2lkID0gdXRpbHMuZ2V0X2lkcygp CisKKyAgICBzZXJ2ZXJfaWRzID0gYWxsX2lkWyJzaWQiXQorICAgIHJvbGVf aWRzX2RpY3QgPSBhbGxfaWRbImxyaWQiXVswXQorICAgIHNlcnZlcl9ncm91 cCA9IGNvbmZpZ19kYXRhWydzZXJ2ZXJfZ3JvdXAnXQorCisgICAgcm9sZV9y ZXNwb25zZV9kYXRhID0gW10KKyAgICBmb3Igc2VydmVyX2lkIGluIHNlcnZl cl9pZHM6CisgICAgICAgIHJvbGVfaWQgPSByb2xlX2lkc19kaWN0W2ludChz ZXJ2ZXJfaWQpXQorICAgICAgICByb2xlX3Jlc3BvbnNlX2RhdGEuYXBwZW5k KAorICAgICAgICAgICAgdmVyaWZ5X3JvbGUodGVzdGVyLCBzZXJ2ZXJfZ3Jv dXAsIHNlcnZlcl9pZCwgcm9sZV9pZCkpCisgICAgcmV0dXJuIHJvbGVfcmVz cG9uc2VfZGF0YQorCisKK2RlZiBnZXRfcm9sZV9kYXRhKCk6CisgICAgIiIi VGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSByb2xlIGRhdGEgZnJvbSBjb25m aWcgZmlsZSIiIgorCisgICAgZGF0YSA9IHsKKyAgICAgICAgInJvbGNhbmxv Z2luIjogYWR2YW5jZWRfY29uZmlnX2RhdGFbJ2xyX2NyZWRlbnRpYWxzJ10K KyAgICAgICAgWydjYW5fbG9naW4nXSwKKyAgICAgICAgInJvbGNvbm5saW1p dCI6IGFkdmFuY2VkX2NvbmZpZ19kYXRhWydscl9jcmVkZW50aWFscyddCisg ICAgICAgIFsnY29ubl9saW1pdCddLAorICAgICAgICAicm9sY3JlYXRlcm9s ZSI6IGFkdmFuY2VkX2NvbmZpZ19kYXRhWydscl9jcmVkZW50aWFscyddCisg ICAgICAgIFsnY3JlYXRlX3JvbGUnXSwKKyAgICAgICAgInJvbGluaGVyaXQi OiBhZHZhbmNlZF9jb25maWdfZGF0YVsnbHJfY3JlZGVudGlhbHMnXQorICAg ICAgICBbJ3JvbGVfaW5oZXJpdCddLAorICAgICAgICAicm9sbWVtYmVyc2hp cCI6IGFkdmFuY2VkX2NvbmZpZ19kYXRhWydscl9jcmVkZW50aWFscyddCisg ICAgICAgIFsncm9sZV9tZW1iZXJzaGlwJ10sCisgICAgICAgICJyb2xuYW1l Ijogc3RyKHV1aWQudXVpZDQoKSlbMTo4XSwKKyAgICAgICAgInJvbHBhc3N3 b3JkIjogYWR2YW5jZWRfY29uZmlnX2RhdGFbJ2xyX2NyZWRlbnRpYWxzJ10K KyAgICAgICAgWydscl9wYXNzd29yZCddLAorICAgICAgICAicm9sdmFsaWR1 bnRpbCI6IGFkdmFuY2VkX2NvbmZpZ19kYXRhWydscl9jcmVkZW50aWFscydd CisgICAgICAgIFsnbHJfdmFsaWRpdHknXSwKKyAgICAgICAgInNlY2xhYmVs cyI6IGFkdmFuY2VkX2NvbmZpZ19kYXRhWydscl9jcmVkZW50aWFscyddCisg ICAgICAgIFsnc2VjX2xhYmxlJ10sCisgICAgICAgICJ2YXJpYWJsZXMiOiBh ZHZhbmNlZF9jb25maWdfZGF0YVsnbHJfY3JlZGVudGlhbHMnXQorICAgICAg ICBbJ3ZhcmlhYmxlJ10KKyAgICB9CisgICAgcmV0dXJuIGRhdGEKKworCitk ZWYgYWRkX3JvbGUodGVzdGVyLCBzZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSwg c2VydmVyX2dyb3VwLCBzZXJ2ZXJfaWRzKToKKyAgICAiIiIKKyAgICBUaGlz IGZ1bmN0aW9uIGlzIHVzZWQgdG8gYWRkIHRoZSByb2xlcyB0byBzZXJ2ZXIK KworICAgIDpwYXJhbSB0ZXN0ZXI6IGZsYXNrIHRlc3QgY2xpZW50CisgICAg OnR5cGUgdGVzdGVyOiBmbGFzayB0ZXN0IGNsaWVudCBvYmplY3QKKyAgICA6 cGFyYW0gc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2U6IHNlcnZlciBjb25uZWN0 IEFQSSByZXNwb25zZQorICAgIDp0eXBlIHNlcnZlcl9jb25uZWN0X3Jlc3Bv bnNlOiBkaWN0CisgICAgOnBhcmFtIHNlcnZlcl9ncm91cDogc2VydmVyIGdy b3VwCisgICAgOnR5cGUgc2VydmVyX2dyb3VwOiBpbnQKKyAgICA6cGFyYW0g c2VydmVyX2lkczogbGlzdCBvZiBzZXJ2ZXIgaWQKKyAgICA6dHlwZSBzZXJ2 ZXJfaWRzOiBsaXN0CisgICAgOnJldHVybjogTm9uZQorICAgICIiIgorCisg ICAgZm9yIHNlcnZlcl9jb25uZWN0LCBzZXJ2ZXJfaWQgaW4gemlwKHNlcnZl cl9jb25uZWN0X3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWRzKToKKyAgICAgICAgaWYgc2Vy dmVyX2Nvbm5lY3RbJ2RhdGEnXVsnY29ubmVjdGVkJ106CisgICAgICAgICAg ICBkYXRhID0gZ2V0X3JvbGVfZGF0YSgpCisgICAgICAgICAgICByZXNwb25z ZSA9IHRlc3Rlci5wb3N0KFJPTEVfVVJMICsgc3RyKHNlcnZlcl9ncm91cCkg KyAnLycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBz ZXJ2ZXJfaWQgKyAnLycsIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdo dG1sL2pzb24nKQorICAgICAgICAgICAgYXNzZXJ0IHJlc3BvbnNlLnN0YXR1 c19jb2RlID09IDIwMAorICAgICAgICAgICAgcmVzcG9uc2VfZGF0YSA9IGpz b24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCisgICAg ICAgICAgICB3cml0ZV9yb2xlX2lkKHJlc3BvbnNlX2RhdGEpCisKKworZGVm IHdyaXRlX3JvbGVfaWQocmVzcG9uc2VfZGF0YSk6CisgICAgIiIiCisKKyAg ICA6cGFyYW0gcmVzcG9uc2VfZGF0YToKKyAgICA6cmV0dXJuOgorICAgICIi IgorCisgICAgbHJfaWQgPSByZXNwb25zZV9kYXRhWydub2RlJ11bJ19pZCdd CisgICAgc2VydmVyX2lkID0gcmVzcG9uc2VfZGF0YVsnbm9kZSddWydfcGlk J10KKyAgICBwaWNrbGVfaWRfZGljdCA9IHV0aWxzLmdldF9waWNrbGVfaWRf ZGljdCgpCisgICAgIyBUT0RPOiBtb2RpZnkgbG9naWMgdG8gd3JpdGUgaW4g ZmlsZSAvIGZpbGUgZXhpc3RzIG9yIGNyZWF0ZSBuZXcgY2hlY2sKKyAgICAj IG9sZCBmaWxlCisgICAgaWYgb3MucGF0aC5pc2ZpbGUocGlja2xlX3BhdGgp OgorICAgICAgICBleGlzdGluZ19zZXJ2ZXJfaWQgPSBvcGVuKHBpY2tsZV9w YXRoLCAncmInKQorICAgICAgICB0b2xfc2VydmVyX2lkID0gcGlja2xlLmxv YWQoZXhpc3Rpbmdfc2VydmVyX2lkKQorICAgICAgICBwaWNrbGVfaWRfZGlj dCA9IHRvbF9zZXJ2ZXJfaWQKKyAgICBpZiAnbHJpZCcgaW4gcGlja2xlX2lk X2RpY3Q6CisgICAgICAgIGlmIHBpY2tsZV9pZF9kaWN0WydscmlkJ106Cisg ICAgICAgICAgICAjIEFkZCB0aGUgZGJfaWQgYXMgdmFsdWUgaW4gZGljdAor ICAgICAgICAgICAgcGlja2xlX2lkX2RpY3RbImxyaWQiXVswXS51cGRhdGUo e3NlcnZlcl9pZDogbHJfaWR9KQorICAgICAgICBlbHNlOgorICAgICAgICAg ICAgIyBDcmVhdGUgbmV3IGRpY3Qgd2l0aCBzZXJ2ZXJfaWQgYW5kIGRiX2lk CisgICAgICAgICAgICBwaWNrbGVfaWRfZGljdFsibHJpZCJdLmFwcGVuZCh7 c2VydmVyX2lkOiBscl9pZH0pCisgICAgZGJfb3V0cHV0ID0gb3BlbihwaWNr bGVfcGF0aCwgJ3diJykKKyAgICBwaWNrbGUuZHVtcChwaWNrbGVfaWRfZGlj dCwgZGJfb3V0cHV0KQorICAgIGRiX291dHB1dC5jbG9zZSgpCisKKworZGVm IGRlbGV0ZV9yb2xlKHRlc3Rlcik6CisgICAgIiIiCisgICAgVGhpcyBmdW5j dGlvbiB1c2UgdG8gZGVsZXRlIHRoZSBleGlzdGluZyByb2xlcyBpbiB0aGUg c2VydmVycworCisgICAgOnBhcmFtIHRlc3RlcjogZmxhc2sgdGVzdCBjbGll bnQKKyAgICA6dHlwZSB0ZXN0ZXI6IGZsYXNrIHRlc3Qgb2JqZWN0CisgICAg OnJldHVybjogTm9uZQorICAgICIiIgorCisgICAgc2VydmVyX2lkcyA9IE5v bmUKKyAgICByb2xlX2lkc19kaWN0ID0gTm9uZQorCisgICAgYWxsX2lkID0g dXRpbHMuZ2V0X2lkcygpCisgICAgaWYgInNpZCIgYW5kICJscmlkIiBpbiBh bGxfaWQua2V5cygpOgorICAgICAgICBzZXJ2ZXJfaWRzID0gYWxsX2lkWyJz aWQiXQorICAgICAgICBpZiBhbGxfaWRbJ2xyaWQnXToKKyAgICAgICAgICAg IHJvbGVfaWRzX2RpY3QgPSBhbGxfaWRbJ2xyaWQnXVswXQorICAgIGVsc2U6 CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiS2V5cyBhcmUgbm90IGZvdW5k OiB7fSIuZm9ybWF0KFsic2lkIiwgImxyaWQiXSkpCisKKyAgICBpZiBzZXJ2 ZXJfaWRzIGFuZCByb2xlX2lkc19kaWN0IGlzIG5vdCBOb25lOgorICAgICAg ICBmb3Igc2VydmVyX2lkIGluIHNlcnZlcl9pZHM6CisgICAgICAgICAgICBz ZXJ2ZXJfcmVzcG9uc2UgPSBzZXJ2ZXJfdXRpbHMudmVyaWZ5X3NlcnZlcih0 ZXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZXJ2ZXJfaWQpCisgICAgICAgICAgICBpZiBzZXJ2ZXJfcmVz cG9uc2VbImRhdGEiXVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICAgICAg cm9sZV9pZCA9IHJvbGVfaWRzX2RpY3RbaW50KHNlcnZlcl9pZCldCisgICAg ICAgICAgICAgICAgcmVzcG9uc2UgPSB0ZXN0ZXIuZGVsZXRlKAorICAgICAg ICAgICAgICAgICAgICBST0xFX1VSTCArIHN0cih1dGlscy5TRVJWRVJfR1JP VVApICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9p ZCkgKyAnLycgKyBzdHIocm9sZV9pZCksCisgICAgICAgICAgICAgICAgICAg IGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKyAgICAgICAgICAgICAgICBhc3Nl cnQgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgPT0gMjAwCisgICAgICAgICAgICAg ICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5k ZWNvZGUoJ3V0Zi04JykpCisgICAgICAgICAgICAgICAgYXNzZXJ0IHJlc3Bv bnNlX2RhdGFbJ3N1Y2Nlc3MnXSA9PSAxCisgICAgZWxzZToKKyAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCJObyBzZXJ2ZXJzL3JvbGVzIGZvdW5kLiIpCisK KwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvX19pbml0X18ucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJs ZXNwYWNlcy90ZXN0cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4zMzAyMDI3Ci0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFi bGVzcGFjZXMvdGVzdHMvX19pbml0X18ucHkKQEAgLTAsMCArMSwxNiBAQAor IyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0 Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYs IFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2Fy ZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisj CisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHBnYWRtaW4udXRp bHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCisKKworY2xhc3Mg VGJsc3BhY2VHZW5lcmF0b3JUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6 CisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgcmV0dXJuCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy90YWJsZXNwYWNlcy90ZXN0cy90ZXN0X3Ric3BjX2FkZC5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rh Ymxlc3BhY2VzL3Rlc3RzL3Rlc3RfdGJzcGNfYWRkLnB5Cm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhYTY5NjYKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy90YWJsZXNwYWNlcy90ZXN0cy90ZXN0X3Ric3BjX2FkZC5weQpAQCAt MCwwICsxLDU1IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBn QWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChD KSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQor IyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3Jl U1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zy b20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0 b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGls cworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LnRlc3RzIGltcG9ydCB1dGlscyBhcyBzZXJ2ZXJfdXRpbHMKK2Zyb20gLiBp bXBvcnQgdXRpbHMgYXMgdGFibGVzcGFjZV91dGlscworCisKK2NsYXNzIFRh YmxlU3BhY2VBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAg IiIiVGhpcyBjbGFzcyB3aWxsIGFkZCB0YWJsZXNwYWNlIG5vZGUgdW5kZXIg c2VydmVyIiIiCisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0 Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHRhYmxlc3BhY2Ugbm9kZS4KKyAgICAg ICAgKCdDaGVjayBUYWJsZXNwYWNlIE5vZGUnLCBkaWN0KHVybD0nL2Jyb3dz ZXIvdGFibGVzcGFjZS9vYmovJykpCisgICAgXQorCisgICAgQGNsYXNzbWV0 aG9kCisgICAgZGVmIHNldFVwQ2xhc3MoY2xzKToKKyAgICAgICAgIiIiCisg ICAgICAgIFRoaXMgZnVuY3Rpb24gdXNlZCB0byBhZGQgdGhlIHNldmVyCisK KyAgICAgICAgOnJldHVybjogTm9uZQorICAgICAgICAiIiIKKworICAgICAg ICAjIEFkZCB0aGUgc2VydmVyCisgICAgICAgIHNlcnZlcl91dGlscy5hZGRf c2VydmVyKGNscy50ZXN0ZXIpCisKKyAgICAgICAgIyBDb25uZWN0IHRvIHNl cnZlcgorICAgICAgICBjbHMuc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UsIGNs cy5zZXJ2ZXJfZ3JvdXAsIGNscy5zZXJ2ZXJfaWRzID0gXAorICAgICAgICAg ICAgc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKGNscy50ZXN0ZXIpCisK KyAgICAgICAgaWYgbGVuKGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSkg PT0gMDoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gU2VydmVy KHMpIGNvbm5lY3RlZCB0byBhZGQgdGhlIHJvbGVzISEhIikKKworICAgIGRl ZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHRl c3QgdGhlIGFkZCB0YWJsZXNwYWNlIHNjZW5hcmlvIiIiCisKKyAgICAgICAg dGFibGVzcGFjZV9zdGF0dXMgPSB0YWJsZXNwYWNlX3V0aWxzLmFkZF90YWJs ZV9zcGFjZSgKKyAgICAgICAgICAgIHNlbGYudGVzdGVyLCBzZWxmLnNlcnZl cl9jb25uZWN0X3Jlc3BvbnNlLCBzZWxmLnNlcnZlcl9ncm91cCwKKyAgICAg ICAgICAgIHNlbGYuc2VydmVyX2lkcykKKworICAgIEBjbGFzc21ldGhvZAor ICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6CisgICAgICAgICIiIlRoaXMg ZnVuY3Rpb24gZGVsZXRlcyB0aGUgdGFibGVzcGFjZXMsc2VydmVyIGFuZCBw YXJlbnRfaWQgZmlsZSIiIgorCisgICAgICAgIHRhYmxlc3BhY2VfdXRpbHMu ZGVsZXRlX3RhYmxlX3NwYWNlKGNscy50ZXN0ZXIpCisgICAgICAgIHNlcnZl cl91dGlscy5kZWxldGVfc2VydmVyKGNscy50ZXN0ZXIpCisgICAgICAgIHV0 aWxzLmRlbGV0ZV9wYXJlbnRfaWRfZmlsZSgpCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNw YWNlcy90ZXN0cy90ZXN0X3Ric3BjX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rl c3RzL3Rlc3RfdGJzcGNfZGVsZXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmYyODBlZTYKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJs ZXNwYWNlcy90ZXN0cy90ZXN0X3Ric3BjX2RlbGV0ZS5weQpAQCAtMCwwICsx LDU4IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4g NCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEz IC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlz IHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExp Y2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKworZnJvbSBw Z2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgor ZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMudGVz dHMgaW1wb3J0IHV0aWxzIGFzIHNlcnZlcl91dGlscworZnJvbSAuIGltcG9y dCB1dGlscyBhcyB0YWJsZXNwYWNlX3V0aWxzCisKKworY2xhc3MgVGFibGVT cGFjZURlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAi IiJUaGlzIGNsYXNzIGhhcyBkZWxldGUgdGFibGUgc3BhY2Ugc2NlbmFyaW8i IiIKKworICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBk ZWZhdWx0IFVSTCBmb3IgdGFibGVzcGFjZSBub2RlLgorICAgICAgICAoJ0No ZWNrIFRhYmxlc3BhY2UgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci90YWJs ZXNwYWNlL29iai8nKSkKKyAgICBdCisKKyAgICBAY2xhc3NtZXRob2QKKyAg ICBkZWYgc2V0VXBDbGFzcyhjbHMpOgorICAgICAgICAiIiIKKyAgICAgICAg VGhpcyBmdW5jdGlvbiB1c2VkIHRvIGFkZCB0aGUgc2V2ZXIKKworICAgICAg ICA6cmV0dXJuOiBOb25lCisgICAgICAgICIiIgorCisgICAgICAgICMgQWRk IHRoZSBzZXJ2ZXIKKyAgICAgICAgc2VydmVyX3V0aWxzLmFkZF9zZXJ2ZXIo Y2xzLnRlc3RlcikKKworICAgICAgICAjIENvbm5lY3QgdG8gc2VydmVyCisg ICAgICAgIGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSwgY2xzLnNlcnZl cl9ncm91cCwgY2xzLnNlcnZlcl9pZHMgPSBcCisgICAgICAgICAgICBzZXJ2 ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoY2xzLnRlc3RlcikKKworICAgICAg ICBpZiBsZW4oY2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlKSA9PSAwOgor ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyBTZXJ2ZXIocykgY29u bmVjdGVkIHRvIGFkZCB0aGUgcm9sZXMhISEiKQorCisgICAgICAgICMgQWRk IHRhYmxlc3BhY2UKKyAgICAgICAgdGFibGVzcGFjZV91dGlscy5hZGRfdGFi bGVfc3BhY2UoY2xzLnRlc3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj bHMuc2VydmVyX2dyb3VwLCBjbHMuc2VydmVyX2lkcykKKworICAgIGRlZiBy dW5UZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHRlc3Rz IHRoZSBkZWxldGUgdGFibGUgc3BhY2Ugc2NlbmFyaW8iIiIKKworICAgICAg ICB0YWJsZXNwYWNlX3V0aWxzLmRlbGV0ZV90YWJsZV9zcGFjZShzZWxmLnRl c3RlcikKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiB0ZWFyRG93bkNs YXNzKGNscyk6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0 aGUgc2VydmVyIGFuZCBwYXJlbnQgaWQgZmlsZSIiIgorCisgICAgICAgIHNl cnZlcl91dGlscy5kZWxldGVfc2VydmVyKGNscy50ZXN0ZXIpCisgICAgICAg IHV0aWxzLmRlbGV0ZV9wYXJlbnRfaWRfZmlsZSgpCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJs ZXNwYWNlcy90ZXN0cy90ZXN0X3Ric3BjX2dldC5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rl c3RzL3Rlc3RfdGJzcGNfZ2V0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmIyNmQ3MWQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNw YWNlcy90ZXN0cy90ZXN0X3Ric3BjX2dldC5weQpAQCAtMCwwICsxLDc4IEBA CisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBv c3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAx NiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3 YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UK KyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVn cmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLnRlc3RzIGltcG9y dCB1dGlscyBhcyBzZXJ2ZXJfdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMg YXMgdGFibGVzcGFjZV91dGlscworCisKK2NsYXNzIFRhYmxlc3BhY2VHZXRU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFz cyB0ZXN0cyB0aGUgZ2V0IHRhYmxlIHNwYWNlIHNjZW5hcmlvIiIiCisKKyAg ICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBV UkwgZm9yIHJvbGVzIG5vZGUuCisgICAgICAgICgnQ2hlY2sgVGFibGVzcGFj ZSBOb2RlJywgZGljdCh1cmw9Jy9icm93c2VyL3RhYmxlc3BhY2Uvb2JqLycp KQorICAgIF0KKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBzZXRVcENs YXNzKGNscyk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9u IHVzZWQgdG8gYWRkIHRoZSBzZXZlcgorCisgICAgICAgIDpyZXR1cm46IE5v bmUKKyAgICAgICAgIiIiCisKKyAgICAgICAgIyBBZGQgdGhlIHNlcnZlcgor ICAgICAgICBzZXJ2ZXJfdXRpbHMuYWRkX3NlcnZlcihjbHMudGVzdGVyKQor CisgICAgICAgICMgQ29ubmVjdCB0byBzZXJ2ZXIKKyAgICAgICAgY2xzLnNl cnZlcl9jb25uZWN0X3Jlc3BvbnNlLCBjbHMuc2VydmVyX2dyb3VwLCBjbHMu c2VydmVyX2lkcyA9IFwKKyAgICAgICAgICAgIHNlcnZlcl91dGlscy5jb25u ZWN0X3NlcnZlcihjbHMudGVzdGVyKQorCisgICAgICAgIGlmIGxlbihjbHMu c2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UpID09IDA6CisgICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oIk5vIFNlcnZlcihzKSBjb25uZWN0ZWQgdG8gYWRk IHRoZSByb2xlcyEhISIpCisKKyAgICAgICAgIyBBZGQgdGFibGVzcGFjZQor ICAgICAgICB0YWJsZXNwYWNlX3V0aWxzLmFkZF90YWJsZV9zcGFjZShjbHMu dGVzdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjbHMuc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5zZXJ2ZXJfZ3Jv dXAsIGNscy5zZXJ2ZXJfaWRzKQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6 CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gdGVzdCB0aGUgZ2V0IHRhYmxl IHNwYWNlIHNjZW5hcmlvIiIiCisKKyAgICAgICAgdGFibGVzcGFjZV9pZHNf ZGljdCA9IE5vbmUKKyAgICAgICAgYWxsX2lkID0gdXRpbHMuZ2V0X2lkcygp CisgICAgICAgIHNlcnZlcl9pZHMgPSBhbGxfaWRbInNpZCJdCisgICAgICAg IGlmICJ0c2lkIiBpbiBhbGxfaWQgYW5kIGFsbF9pZFsidHNpZCJdOgorICAg ICAgICAgICAgdGFibGVzcGFjZV9pZHNfZGljdCA9IGFsbF9pZFsidHNpZCJd WzBdCisKKyAgICAgICAgaWYgdGFibGVzcGFjZV9pZHNfZGljdDoKKyAgICAg ICAgICAgIGZvciBzZXJ2ZXJfaWQgaW4gc2VydmVyX2lkczoKKyAgICAgICAg ICAgICAgICB0YWJsZXNwYWNlX2lkID0gdGFibGVzcGFjZV9pZHNfZGljdFtp bnQoc2VydmVyX2lkKV0KKyAgICAgICAgICAgICAgICBzZXJ2ZXJfcmVzcG9u c2UgPSBzZXJ2ZXJfdXRpbHMudmVyaWZ5X3NlcnZlcihzZWxmLnRlc3RlciwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyX2lkKQorICAgICAgICAgICAgICAgIGlmIHNlcnZl cl9yZXNwb25zZVsnZGF0YSddWydjb25uZWN0ZWQnXToKKyAgICAgICAgICAg ICAgICAgICAgdGFibGVzcGFjZV91dGlscy52ZXJpZnlfdGFibGVfc3BhY2Uo CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3RlciwgdXRpbHMu U0VSVkVSX0dST1VQLCBzZXJ2ZXJfaWQsIHRhYmxlc3BhY2VfaWQpCisgICAg ICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAor ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMu U0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAg ICBzdHIoc2VydmVyX2lkKSArICcvJyArIHN0cigKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0YWJsZXNwYWNlX2lkKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKyAgICAgICAgICAg ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2Nv ZGUsIDIwMCkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiB0ZWFyRG93 bkNsYXNzKGNscyk6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRl cyB0aGUgdGFibGVzcGFjZXMsc2VydmVyIGFuZCBwYXJlbnQgaWQgZmlsZSIi IgorCisgICAgICAgIHRhYmxlc3BhY2VfdXRpbHMuZGVsZXRlX3RhYmxlX3Nw YWNlKGNscy50ZXN0ZXIpCisgICAgICAgIHNlcnZlcl91dGlscy5kZWxldGVf c2VydmVyKGNscy50ZXN0ZXIpCisgICAgICAgIHV0aWxzLmRlbGV0ZV9wYXJl bnRfaWRfZmlsZSgpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZXN0cy90ZXN0 X3Ric3BjX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3Rlc3RfdGJzcGNfcHV0 LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyMjU3 ZjkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZXN0cy90ZXN0X3Ri c3BjX3B1dC5weQpAQCAtMCwwICsxLDkwIEBACisjICMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMK KyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2 ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVu ZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisKK2ltcG9ydCBqc29uCisKK2Zyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVz c2lvbiBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLnRlc3RzIGltcG9ydCB1 dGlscyBhcyBzZXJ2ZXJfdXRpbHMKK2Zyb20gdGVzdF9zZXR1cCBpbXBvcnQg YWR2YW5jZWRfY29uZmlnX2RhdGEKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMg dGFibGVzcGFjZV91dGlscworCisKK2NsYXNzIFRhYmxlU3BhY2VVcGRhdGVU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFz cyBoYXMgdXBkYXRlIHRhYmxlc3BhY2Ugc2NlbmFyaW8iIiIKKworICAgIHNj ZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBm b3Igcm9sZXMgbm9kZS4KKyAgICAgICAgKCdDaGVjayBUYWJsZXNwYWNlIE5v ZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvdGFibGVzcGFjZS9vYmovJykpCisg ICAgXQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHNldFVwQ2xhc3Mo Y2xzKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gdXNl ZCB0byBhZGQgdGhlIHNldmVyCisKKyAgICAgICAgOnJldHVybjogTm9uZQor ICAgICAgICAiIiIKKworICAgICAgICAjIEFkZCB0aGUgc2VydmVyCisgICAg ICAgIHNlcnZlcl91dGlscy5hZGRfc2VydmVyKGNscy50ZXN0ZXIpCisKKyAg ICAgICAgIyBDb25uZWN0IHRvIHNlcnZlcgorICAgICAgICBjbHMuc2VydmVy X2Nvbm5lY3RfcmVzcG9uc2UsIGNscy5zZXJ2ZXJfZ3JvdXAsIGNscy5zZXJ2 ZXJfaWRzID0gXAorICAgICAgICAgICAgc2VydmVyX3V0aWxzLmNvbm5lY3Rf c2VydmVyKGNscy50ZXN0ZXIpCisKKyAgICAgICAgaWYgbGVuKGNscy5zZXJ2 ZXJfY29ubmVjdF9yZXNwb25zZSkgPT0gMDoKKyAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiTm8gU2VydmVyKHMpIGNvbm5lY3RlZCB0byBhZGQgdGhl IHJvbGVzISEhIikKKworICAgICAgICAjIEFkZCB0YWJsZXNwYWNlCisgICAg ICAgIHRhYmxlc3BhY2VfdXRpbHMuYWRkX3RhYmxlX3NwYWNlKGNscy50ZXN0 ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNlcnZlcl9ncm91cCwg Y2xzLnNlcnZlcl9pZHMpCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAg ICAgICAgIiIiVGhpcyBmdW5jdGlvbiB0ZXN0cyB0aGUgdXBkYXRlIHRhYmxl c3BhY2UgZGF0YSBzY2VuYXJpbyIiIgorCisgICAgICAgIHRhYmxlc3BhY2Vf aWRzX2RpY3QgPSBOb25lCisgICAgICAgIGFsbF9pZCA9IHV0aWxzLmdldF9p ZHMoKQorICAgICAgICBzZXJ2ZXJfaWRzID0gYWxsX2lkWyJzaWQiXQorICAg ICAgICBpZiAidHNpZCIgaW4gYWxsX2lkIGFuZCBhbGxfaWRbInRzaWQiXToK KyAgICAgICAgICAgIHRhYmxlc3BhY2VfaWRzX2RpY3QgPSBhbGxfaWRbInRz aWQiXVswXQorCisgICAgICAgIGlmIHRhYmxlc3BhY2VfaWRzX2RpY3Q6Cisg ICAgICAgICAgICBmb3Igc2VydmVyX2lkIGluIHNlcnZlcl9pZHM6CisgICAg ICAgICAgICAgICAgdGFibGVzcGFjZV9pZCA9IHRhYmxlc3BhY2VfaWRzX2Rp Y3RbaW50KHNlcnZlcl9pZCldCisgICAgICAgICAgICAgICAgdGFibGVzcGFj ZV9yZXNwb25zZSA9IHRhYmxlc3BhY2VfdXRpbHMudmVyaWZ5X3RhYmxlX3Nw YWNlKAorICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3RlciwKKyAgICAg ICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLCBzZXJ2ZXJfaWQs CisgICAgICAgICAgICAgICAgICAgIHRhYmxlc3BhY2VfaWQpCisgICAgICAg ICAgICAgICAgaWYgbGVuKHRhYmxlc3BhY2VfcmVzcG9uc2UpID09IDA6Cisg ICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gdGFibGVz cGFjZShzKSB0byB1cGRhdGUhISEiKQorCisgICAgICAgICAgICAgICAgZGF0 YSA9IHsKKyAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogYWR2 YW5jZWRfY29uZmlnX2RhdGFbInRic3BjX3VwZGF0ZV9kYXRhIl0KKyAgICAg ICAgICAgICAgICAgICAgWyJjb21tZW50Il0sCisgICAgICAgICAgICAgICAg ICAgICJ0YWJsZV9zcGFjZV9pZCI6IHRhYmxlc3BhY2VfaWQKKyAgICAgICAg ICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBwdXRfcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5wdXQoCisgICAgICAgICAgICAgICAgICAgIHNlbGYudXJs ICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAg ICAgICAgICAgICBzdHIoc2VydmVyX2lkKSArICcvJyArIHN0cigKKyAgICAg ICAgICAgICAgICAgICAgICAgIHRhYmxlc3BhY2VfaWQpLAorICAgICAgICAg ICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgICAg ICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAgICAgICAg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHB1dF9yZXNwb25zZS5zdGF0dXNf Y29kZSwgMjAwKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHRlYXJE b3duQ2xhc3MoY2xzKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxl dGVzIHRoZSB0YWJsZXNwYWNlcyxzZXJ2ZXIgYW5kIHBhcmVudCBpZCBmaWxl IiIiCisKKyAgICAgICAgdGFibGVzcGFjZV91dGlscy5kZWxldGVfdGFibGVf c3BhY2UoY2xzLnRlc3RlcikKKyAgICAgICAgc2VydmVyX3V0aWxzLmRlbGV0 ZV9zZXJ2ZXIoY2xzLnRlc3RlcikKKyAgICAgICAgdXRpbHMuZGVsZXRlX3Bh cmVudF9pZF9maWxlKCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3V0 aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdXRpbHMucHkKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk0Mzg0MgotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3V0aWxzLnB5CkBAIC0wLDAgKzEsMTkw IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAt IFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0g MjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNv ZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gX19mdXR1 cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IGpzb24KK2lt cG9ydCBvcworaW1wb3J0IHBpY2tsZQoraW1wb3J0IHV1aWQKK2ltcG9ydCBz eXMKKworZnJvbSByZWdyZXNzaW9uLnRlc3Rfc2V0dXAgaW1wb3J0IHBpY2ts ZV9wYXRoLCBjb25maWdfZGF0YSwgXAorICAgIGFkdmFuY2VkX2NvbmZpZ19k YXRhCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIHNlcnZlcl91dGlscworZnJvbSBy ZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCisKK1RBQkxF X1NQQUNFX1VSTCA9ICcvYnJvd3Nlci90YWJsZXNwYWNlL29iai8nCisKKwor IyBUYWJsZXNwYWNlIHV0aWxpdHkKK2RlZiBnZXRfdGFibGVzcGFjZV9kYXRh KHNlcnZlcl9jb25uZWN0KToKKyAgICAiIiJUaGlzIGZ1bmN0aW9uIHJldHVy bnMgdGhlIHRhYmxlc3BhY2UgZGF0YSBmcm9tIGNvbmZpZyBmaWxlIiIiCisK KyAgICBhZHZfY29uZmlnX2RhdGEgPSBOb25lCisgICAgZGF0YSA9IE5vbmUK KyAgICBkYl91c2VyID0gc2VydmVyX2Nvbm5lY3RbJ2RhdGEnXVsndXNlcidd WyduYW1lJ10KKyAgICBzZXJ2ZXJfY29uZmlnX2RhdGEgPSBjb25maWdfZGF0 YVsnc2VydmVyX2NyZWRlbnRpYWxzJ10KKworICAgICMgR2V0IHRoZSBjb25m aWcgZGF0YSBvZiBhcHByb3ByaWF0ZSBkYiB1c2VyCisgICAgZm9yIGNvbmZp Z190ZXN0X2RhdGEgaW4gYWR2YW5jZWRfY29uZmlnX2RhdGFbJ3RhYmxlc3Bj X2NyZWRlbnRpYWxzJ106CisgICAgICAgIGlmIGRiX3VzZXIgPT0gY29uZmln X3Rlc3RfZGF0YVsnc3BjX3VzZXInXToKKyAgICAgICAgICAgICMgQWRkIHRo ZSB0YWJsZXNwYWNlIHBhdGggZnJvbSBzZXJ2ZXIgY29uZmlnCisgICAgICAg ICAgICBzZXJ2ZXJfY29uZmlnID0gKGl0ZW0gZm9yIGl0ZW0gaW4gc2VydmVy X2NvbmZpZ19kYXRhIGlmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGl0ZW1bImRiX3VzZXJuYW1lIl0gPT0gZGJfdXNlcikubmV4dCgpCisgICAg ICAgICAgICBjb25maWdfdGVzdF9kYXRhWydzcGNfbG9jYXRpb24nXSA9IHNl cnZlcl9jb25maWdbJ3RhYmxlc3BhY2VfcGF0aCddCisgICAgICAgICAgICBh ZHZfY29uZmlnX2RhdGEgPSBjb25maWdfdGVzdF9kYXRhCisKKyAgICBpZiBh ZHZfY29uZmlnX2RhdGEgaXMgbm90IE5vbmU6CisgICAgICAgIGRhdGEgPSB7 CisgICAgICAgICAgICAibmFtZSI6IHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0s CisgICAgICAgICAgICAic2VjbGFiZWxzIjogYWR2X2NvbmZpZ19kYXRhWyJz cGNfc2VjbGFibGUiXSwKKyAgICAgICAgICAgICJzcGNhY2wiOiBhZHZfY29u ZmlnX2RhdGFbInNwY19hY2wiXSwKKyAgICAgICAgICAgICJzcGNsb2NhdGlv biI6IGFkdl9jb25maWdfZGF0YVsic3BjX2xvY2F0aW9uIl0sCisgICAgICAg ICAgICAic3Bjb3B0aW9ucyI6IGFkdl9jb25maWdfZGF0YVsic3BjX29wdHMi XSwKKyAgICAgICAgICAgICJzcGN1c2VyIjogYWR2X2NvbmZpZ19kYXRhWyJz cGNfdXNlciJdCisgICAgICAgIH0KKyAgICByZXR1cm4gZGF0YQorCisKK2Rl ZiB3cml0ZV90YWJsZXNwYWNlX2lkKHJlc3BvbnNlX2RhdGEpOgorICAgICIi IgorICAgIFRoaXMgZnVuY3Rpb24gd3JpdGUgdGhlIHRhYmxlIHNwYWNlIGlk IHRvIHBhcmVudF9pZC5wa2wKKworICAgIDpwYXJhbSByZXNwb25zZV9kYXRh OiBjcmVhdGUgdGFibGUgc3BhY2UgQVBJIHJlc3BvbnNlIGRhdGEKKyAgICA6 dHlwZSByZXNwb25zZV9kYXRhOiBkaWN0CisgICAgOnJldHVybjogTm9uZQor ICAgICIiIgorCisgICAgdGFibGVfc3BhY2VfaWQgPSByZXNwb25zZV9kYXRh Wydub2RlJ11bJ19pZCddCisgICAgc2VydmVyX2lkID0gcmVzcG9uc2VfZGF0 YVsnbm9kZSddWydfcGlkJ10KKyAgICBwaWNrbGVfaWRfZGljdCA9IHV0aWxz LmdldF9waWNrbGVfaWRfZGljdCgpCisgICAgaWYgb3MucGF0aC5pc2ZpbGUo cGlja2xlX3BhdGgpOgorICAgICAgICBleGlzdGluZ19zZXJ2ZXJfaWQgPSBv cGVuKHBpY2tsZV9wYXRoLCAncmInKQorICAgICAgICB0b2xfc2VydmVyX2lk ID0gcGlja2xlLmxvYWQoZXhpc3Rpbmdfc2VydmVyX2lkKQorICAgICAgICBw aWNrbGVfaWRfZGljdCA9IHRvbF9zZXJ2ZXJfaWQKKyAgICBpZiAndHNpZCcg aW4gcGlja2xlX2lkX2RpY3Q6CisgICAgICAgIGlmIHBpY2tsZV9pZF9kaWN0 Wyd0c2lkJ106CisgICAgICAgICAgICAjIEFkZCB0aGUgZGJfaWQgYXMgdmFs dWUgaW4gZGljdAorICAgICAgICAgICAgcGlja2xlX2lkX2RpY3RbInRzaWQi XVswXS51cGRhdGUoCisgICAgICAgICAgICAgICAge3NlcnZlcl9pZDogdGFi bGVfc3BhY2VfaWR9KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBD cmVhdGUgbmV3IGRpY3Qgd2l0aCBzZXJ2ZXJfaWQgYW5kIGRiX2lkCisgICAg ICAgICAgICBwaWNrbGVfaWRfZGljdFsidHNpZCJdLmFwcGVuZCgKKyAgICAg ICAgICAgICAgICB7c2VydmVyX2lkOiB0YWJsZV9zcGFjZV9pZH0pCisgICAg ZGJfb3V0cHV0ID0gb3BlbihwaWNrbGVfcGF0aCwgJ3diJykKKyAgICBwaWNr bGUuZHVtcChwaWNrbGVfaWRfZGljdCwgZGJfb3V0cHV0KQorICAgIGRiX291 dHB1dC5jbG9zZSgpCisKKworZGVmIGFkZF90YWJsZV9zcGFjZSh0ZXN0ZXIs IHNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLCBzZXJ2ZXJfZ3JvdXAsIHNlcnZl cl9pZHMpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0 byBhZGQgdGhlIHJvbGVzIHRvIHNlcnZlcgorCisgICAgOnBhcmFtIHRlc3Rl cjogZmxhc2sgdGVzdCBjbGllbnQKKyAgICA6dHlwZSB0ZXN0ZXI6IGZsYXNr IHRlc3QgY2xpZW50IG9iamVjdAorICAgIDpwYXJhbSBzZXJ2ZXJfY29ubmVj dF9yZXNwb25zZTogc2VydmVyIGNvbm5lY3QgQVBJIHJlc3BvbnNlCisgICAg OnR5cGUgc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2U6IGRpY3QKKyAgICA6cGFy YW0gc2VydmVyX2dyb3VwOiBzZXJ2ZXIgZ3JvdXAKKyAgICA6dHlwZSBzZXJ2 ZXJfZ3JvdXA6IGludAorICAgIDpwYXJhbSBzZXJ2ZXJfaWRzOiBsaXN0IG9m IHNlcnZlciBpZAorICAgIDp0eXBlIHNlcnZlcl9pZHM6IGxpc3QKKyAgICA6 cmV0dXJuOiBOb25lCisgICAgIiIiCisKKyAgICB0b3RhbF9zZXJ2ZXJzX2Nv dW50ID0gbGVuKHNlcnZlcl9pZHMpCisgICAgc2VydmVyc193aXRob3V0X3Rh Ymxlc3BhY2VfcGF0aCA9IFtdCisKKyAgICBmb3Igc2VydmVyX2Nvbm5lY3Qs IHNlcnZlcl9pZCBpbiB6aXAoc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZl cl9pZHMpOgorICAgICAgICBmaWxlX25hbWUgPSBvcy5wYXRoLmJhc2VuYW1l KHN5cy5fZ2V0ZnJhbWUoKS5mX2JhY2suZl9jb2RlLmNvX2ZpbGVuYW1lKQor ICAgICAgICAjIFNraXAgdGhlIHRlc3QgY2FzZSBpZiB0YWJsZXNwYWNlX3Bh dGggZG9lcyBub3QgZXhpc3QKKyAgICAgICAgaWYgbm90IHN0cihzZXJ2ZXJf Y29ubmVjdFsndGFibGVzcGFjZV9wYXRoJ10pOgorICAgICAgICAgICAgc2Vy dmVyc193aXRob3V0X3RhYmxlc3BhY2VfcGF0aC5hcHBlbmQoc2VydmVyX2lk KQorICAgICAgICAgICAgaWYgdG90YWxfc2VydmVyc19jb3VudCA9PSBsZW4o c2VydmVyc193aXRob3V0X3RhYmxlc3BhY2VfcGF0aCk6CisgICAgICAgICAg ICAgICAgcHJpbnQoIlNraXBwaW5nIHRhYmxlc3BhY2VzIHRlc3QgY2FzZXMg Zm9yIHRoZSAgZmlsZSA8ezB9PiwgIgorICAgICAgICAgICAgICAgICAgICAg ICJUYWJsZXNwYWNlIHBhdGggbm90IGZvdW5kIGZvciBhbnkgb2YgdGhlIHNl cnZlciA6ICIKKyAgICAgICAgICAgICAgICAgICAgICAiezF9Ii5mb3JtYXQo ZmlsZV9uYW1lLCBzZXJ2ZXJfaWRzKSwgZmlsZT1zeXMuc3RkZXJyKQorICAg ICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICAgICBwcmludCgiU2tpcHBpbmcgdGFibGVzcGFjZXMgdGVzdCBj YXNlIGZvciB0aGUgZmlsZSA8ezB9PjogIgorICAgICAgICAgICAgICAgICAg ICAgICJUYWJsZXNwYWNlIHBhdGggbm90IGZvdW5kIGZvciBzZXJ2ZXIgOiB7 MX0iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVfbmFt ZSwgc2VydmVyX2lkKSwgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICAgICAg ICAgIGNvbnRpbnVlCisKKyAgICAgICAgaWYgc2VydmVyX2Nvbm5lY3RbJ2Rh dGEnXVsnY29ubmVjdGVkJ106CisgICAgICAgICAgICBkYXRhID0gZ2V0X3Rh Ymxlc3BhY2VfZGF0YShzZXJ2ZXJfY29ubmVjdCkKKyAgICAgICAgICAgIHJl c3BvbnNlID0gdGVzdGVyLnBvc3QoVEFCTEVfU1BBQ0VfVVJMICsgc3RyKHNl cnZlcl9ncm91cCkgKyAnLycKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKyBzZXJ2ZXJfaWQgKyAnLycsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBl PSdodG1sL2pzb24nKQorICAgICAgICAgICAgYXNzZXJ0IHJlc3BvbnNlLnN0 YXR1c19jb2RlID09IDIwMAorICAgICAgICAgICAgcmVzcG9uc2VfZGF0YSA9 IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCisg ICAgICAgICAgICB3cml0ZV90YWJsZXNwYWNlX2lkKHJlc3BvbnNlX2RhdGEp CisKKworZGVmIHZlcmlmeV90YWJsZV9zcGFjZSh0ZXN0ZXIsIHNlcnZlcl9n cm91cCwgc2VydmVyX2lkLCB0YWJsZXNwYWNlX2lkKToKKyAgICAiIiIKKyAg ICBUaGlzIGZ1bmN0aW9uIGNhbGxzIHRoZSBHRVQgQVBJIGZvciByb2xlIHRv IHZlcmlmeQorCisgICAgOnBhcmFtIHRlc3RlcjogdGVzdCBjbGllbnQKKyAg ICA6dHlwZSB0ZXN0ZXI6IGZsYXNrIHRlc3QgY2xpZW50IG9iamVjdAorICAg IDpwYXJhbSBzZXJ2ZXJfZ3JvdXA6IHNlcnZlciBncm91cCBpZAorICAgIDp0 eXBlIHNlcnZlcl9ncm91cDogaW50CisgICAgOnBhcmFtIHNlcnZlcl9pZDog c2VydmVyIGlkCisgICAgOnR5cGUgc2VydmVyX2lkOiBzdHIKKyAgICA6cGFy YW0gdGFibGVzcGFjZV9pZDogdGFibGUgc3BhY2UgaWQKKyAgICA6dHlwZSB0 YWJsZXNwYWNlX2lkOiBpbnQKKyAgICA6cmV0dXJuOiBkaWN0L05vbmUKKyAg ICAiIiIKKworICAgIHNydl9jb25uZWN0ID0gc2VydmVyX3V0aWxzLnZlcmlm eV9zZXJ2ZXIodGVzdGVyLCBzZXJ2ZXJfZ3JvdXAsIHNlcnZlcl9pZCkKKyAg ICBpZiBzcnZfY29ubmVjdFsnZGF0YSddWydjb25uZWN0ZWQnXToKKyAgICAg ICAgcmVzcG9uc2UgPSB0ZXN0ZXIuZ2V0KAorICAgICAgICAgICAgJ3swfXsx fS97Mn0vezN9Jy5mb3JtYXQoVEFCTEVfU1BBQ0VfVVJMLCBzZXJ2ZXJfZ3Jv dXAsIHNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRhYmxlc3BhY2VfaWQpLAorICAgICAgICAgICAgY29udGVudF90 eXBlPSdodG1sL2pzb24nKQorICAgICAgICBhc3NlcnQgcmVzcG9uc2Uuc3Rh dHVzX2NvZGUgPT0gMjAwCisgICAgICAgIHRlbXBfcmVzcG9uc2UgPSBqc29u LmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQorICAgICAg ICByZXR1cm4gdGVtcF9yZXNwb25zZQorICAgIGVsc2U6CisgICAgICAgIHJl dHVybiBOb25lCisKKworZGVmIGRlbGV0ZV90YWJsZV9zcGFjZSh0ZXN0ZXIp OgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gdXNlIHRvIGRlbGV0ZSB0 aGUgZXhpc3RpbmcgdGFibGVzcGFjZSBpbiB0aGUgc2VydmVycworCisgICAg OnBhcmFtIHRlc3RlcjogZmxhc2sgdGVzdCBjbGllbnQKKyAgICA6dHlwZSB0 ZXN0ZXI6IGZsYXNrIHRlc3Qgb2JqZWN0CisgICAgOnJldHVybjogTm9uZQor ICAgICIiIgorCisgICAgYWxsX2lkID0gdXRpbHMuZ2V0X2lkcygpCisgICAg c2VydmVyX2lkcyA9IGFsbF9pZFsic2lkIl0KKyAgICBpZiAidHNpZCIgaW4g YWxsX2lkIGFuZCBhbGxfaWRbInRzaWQiXToKKyAgICAgICAgdGFibGVzcGFj ZV9pZHNfZGljdCA9IGFsbF9pZFsidHNpZCJdWzBdCisgICAgZWxzZToKKyAg ICAgICAgdGFibGVzcGFjZV9pZHNfZGljdCA9IE5vbmUKKworICAgIGlmIHRh Ymxlc3BhY2VfaWRzX2RpY3QgaXMgbm90IE5vbmU6CisgICAgICAgIGZvciBz ZXJ2ZXJfaWQgaW4gc2VydmVyX2lkczoKKyAgICAgICAgICAgIHRhYmxlc3Bh Y2VfaWQgPSB0YWJsZXNwYWNlX2lkc19kaWN0W2ludChzZXJ2ZXJfaWQpXQor ICAgICAgICAgICAgcm9sZV9yZXNwb25zZSA9IHZlcmlmeV90YWJsZV9zcGFj ZSh0ZXN0ZXIsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0YWJsZXNwYWNlX2lkKQorICAgICAgICAgICAgaWYgbGVuKHJvbGVfcmVz cG9uc2UpID09IDA6CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJObyB0YWJsZXNwYWNlKHMpIHRvIGRlbGV0ZSEhISIpCisgICAgICAgICAg ICByZXNwb25zZSA9IHRlc3Rlci5kZWxldGUoCisgICAgICAgICAgICAgICAg VEFCTEVfU1BBQ0VfVVJMICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAn LycgKworICAgICAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsg c3RyKHRhYmxlc3BhY2VfaWQpLAorICAgICAgICAgICAgICAgIGZvbGxvd19y ZWRpcmVjdHM9VHJ1ZSkKKyAgICAgICAgICAgIGFzc2VydCByZXNwb25zZS5z dGF0dXNfY29kZSA9PSAyMDAKKyAgICAgICAgICAgIGRlbGV0ZV9yZXNwb25z ZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRm LTgnKSkKKyAgICAgICAgICAgIGFzc2VydCBkZWxldGVfcmVzcG9uc2VfZGF0 YVsnc3VjY2VzcyddID09IDEKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVy X2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2FkZC5weQppbmRleCAyYjFlYjQ1 Li43MzQ4YTQ3IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9hZGQucHkK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvdGVzdHMvdGVzdF9zZXJ2ZXJfYWRkLnB5CkBAIC03LDEwICs3LDkgQEAK ICMKICMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAotaW1wb3J0 IGpzb24KLQogZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNl VGVzdEdlbmVyYXRvcgogZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0 aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHNlcnZlcl91 dGlscwogCiAKIGNsYXNzIFNlcnZlcnNBZGRUZXN0Q2FzZShCYXNlVGVzdEdl bmVyYXRvcik6CkBAIC0yMSwyNCArMjAsMTcgQEAgY2xhc3MgU2VydmVyc0Fk ZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgKCdEZWZh dWx0IFNlcnZlciBOb2RlIHVybCcsIGRpY3QodXJsPScvYnJvd3Nlci9zZXJ2 ZXIvb2JqLycpKQogICAgIF0KIAotICAgIGRlZiBzZXRVcChzZWxmKToKKyAg ICBAY2xhc3NtZXRob2QKKyAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgogICAg ICAgICBwYXNzCiAKICAgICBkZWYgcnVuVGVzdChzZWxmKToKICAgICAgICAg IiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgdGhlIHNlcnZlciB1bmRlciBk ZWZhdWx0IHNlcnZlciBncm91cC4iIiIKIAotICAgICAgICBzZXJ2ZXJfZ3Jv dXAsIGNvbmZpZ19kYXRhLCBwaWNrbGVfaWRfZGljdCA9IHV0aWxzLmdldF9j b25maWdfZGF0YSgpCi0gICAgICAgIGZvciBzZXJ2ZXJfZGF0YSBpbiBjb25m aWdfZGF0YToKLSAgICAgICAgICAgIHVybCA9ICJ7MH17MX0vIi5mb3JtYXQo c2VsZi51cmwsIHNlcnZlcl9ncm91cCkKLSAgICAgICAgICAgIHJlc3BvbnNl ID0gc2VsZi50ZXN0ZXIucG9zdCh1cmwsIGRhdGE9anNvbi5kdW1wcyhzZXJ2 ZXJfZGF0YSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQotCi0gICAgICAgICAg ICBzZWxmLmFzc2VydFRydWUocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkK LQotICAgICAgICAgICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVz cG9uc2UuZGF0YS5kZWNvZGUoKSkKLSAgICAgICAgICAgIHV0aWxzLndyaXRl X3BhcmVudF9pZChyZXNwb25zZV9kYXRhLCBwaWNrbGVfaWRfZGljdCkKKyAg ICAgICAgc2VydmVyX3V0aWxzLmFkZF9zZXJ2ZXIoc2VsZi50ZXN0ZXIpCiAK LSAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgQGNsYXNzbWV0aG9kCisg ICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKICAgICAgICAgIiIiCiAgICAg ICAgIFRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgYWRkZWQgc2VydmVyIGFu ZCB0aGUgJ3BhcmVudF9pZC5wa2wnIGZpbGUKICAgICAgICAgd2hpY2ggaXMg Y3JlYXRlZCBpbiBzZXR1cCgpIGZ1bmN0aW9uLgpAQCAtNDYsNSArMzgsNSBA QCBjbGFzcyBTZXJ2ZXJzQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3Ip OgogICAgICAgICA6cmV0dXJuOiBOb25lCiAgICAgICAgICIiIgogCi0gICAg ICAgIHV0aWxzLmRlbGV0ZV9zZXJ2ZXIoc2VsZi50ZXN0ZXIpCisgICAgICAg IHNlcnZlcl91dGlscy5kZWxldGVfc2VydmVyKGNscy50ZXN0ZXIpCiAgICAg ICAgIHV0aWxzLmRlbGV0ZV9wYXJlbnRfaWRfZmlsZSgpCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90 ZXN0cy90ZXN0X3NlcnZlcl9kZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9k ZWxldGUucHkKaW5kZXggNGZkMjA3Yi4uNjQzMWJlYyAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVz dHMvdGVzdF9zZXJ2ZXJfZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVy X2RlbGV0ZS5weQpAQCAtNywxMiArNywxMSBAQAogIwogIyAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKIAotaW1wb3J0IGpzb24KIAogZnJvbSBwZ2FkbWluLnV0 aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogZnJvbSByZWdy ZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCi1mcm9tIHJlZ3Jl c3Npb24udGVzdF9zZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEKLWZyb20gcmVn cmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRzCisKK2Zyb20gLiBp bXBvcnQgdXRpbHMgYXMgc2VydmVyX3V0aWxzCiAKIAogY2xhc3MgU2VydmVy RGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgpAQCAtMjMsNyAr MjIsOCBAQCBjbGFzcyBTZXJ2ZXJEZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdl bmVyYXRvcik6CiAgICAgICAgICgnRGVmYXVsdCBTZXJ2ZXIgTm9kZSB1cmwn LCBkaWN0KHVybD0nL2Jyb3dzZXIvc2VydmVyL29iai8nKSkKICAgICBdCiAK LSAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgQGNsYXNzbWV0aG9kCisgICAg ZGVmIHNldFVwQ2xhc3MoY2xzKToKICAgICAgICAgIiIiCiAgICAgICAgIFRo aXMgZnVuY3Rpb24gaXMgdXNlZCB0byBhZGQgdGhlIHNlcnZlcgogCkBAIC0z MSwyOCArMzEsMTYgQEAgY2xhc3MgU2VydmVyRGVsZXRlVGVzdENhc2UoQmFz ZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAiIiIKIAogICAgICAgICAjIEZp cnN0bHksIGFkZCB0aGUgc2VydmVyCi0gICAgICAgIHV0aWxzLmFkZF9zZXJ2 ZXIoc2VsZi50ZXN0ZXIpCisgICAgICAgIHNlcnZlcl91dGlscy5hZGRfc2Vy dmVyKGNscy50ZXN0ZXIpCiAKICAgICBkZWYgcnVuVGVzdChzZWxmKToKICAg ICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBnZXQgYWxsIGF2YWlsYWJs ZSBzZXJ2ZXJzIHVuZGVyIG9iamVjdCBicm93c2VyCiAgICAgICAgIGFuZCBk ZWxldGUgdGhlIGxhc3Qgc2VydmVyIHVzaW5nIHNlcnZlciBpZC4iIiIKIAot ICAgICAgICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dy b3VwJ10KLSAgICAgICAgYWxsX2lkID0gZ2V0X2lkcygpCi0gICAgICAgIHNl cnZlcl9pZHMgPSBhbGxfaWRbInNpZCJdCi0KLSAgICAgICAgdXJsID0gc2Vs Zi51cmwgKyBzdHIoc3J2X2dycCkgKyAiLyIKLSAgICAgICAgaWYgbGVuKHNl cnZlcl9pZHMpID09IDA6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o Ik5vIHNlcnZlcihzKSB0byBkZWxldGUhISEiKQotCi0gICAgICAgICMgQ2Fs bCBhcGkgdG8gZGVsZXRlIHRoZSBzZXJ2ZXJzCi0gICAgICAgIGZvciBzZXJ2 ZXJfaWQgaW4gc2VydmVyX2lkczoKLSAgICAgICAgICAgIHJlc3BvbnNlID0g c2VsZi50ZXN0ZXIuZGVsZXRlKHVybCArIHN0cihzZXJ2ZXJfaWQpKQotICAg ICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3BvbnNlLnN0YXR1c19jb2Rl LCAyMDApCi0gICAgICAgICAgICByZXNwb25zZV9kYXRhID0ganNvbi5sb2Fk cyhyZXNwb25zZS5kYXRhLmRlY29kZSgpKQotICAgICAgICAgICAgc2VsZi5h c3NlcnRUcnVlKHJlc3BvbnNlX2RhdGFbJ3N1Y2Nlc3MnXSwgMSkKKyAgICAg ICAgc2VydmVyX3V0aWxzLmRlbGV0ZV9zZXJ2ZXIoc2VsZi50ZXN0ZXIpCiAK LSAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgQGNsYXNzbWV0aG9kCisg ICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKICAgICAgICAgIiIiCiAgICAg ICAgIFRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgJ3BhcmVudF9pZC5wa2wn IGZpbGUgd2hpY2ggaXMgY3JlYXRlZCBpbgogICAgICAgICBzZXR1cCgpIGZ1 bmN0aW9uLgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfZ2V0LnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVz dHMvdGVzdF9zZXJ2ZXJfZ2V0LnB5CmluZGV4IGVhM2M2M2YuLmU1NDEyNDcg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2dldC5weQorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90 ZXN0X3NlcnZlcl9nZXQucHkKQEAgLTksOCArOSw3IEBACiAKIGZyb20gcGdh ZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKIGZy b20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwotZnJv bSByZWdyZXNzaW9uLnRlc3Rfc2V0dXAgaW1wb3J0IGNvbmZpZ19kYXRhCi1m cm9tIHJlZ3Jlc3Npb24udGVzdF91dGlscyBpbXBvcnQgZ2V0X2lkcworZnJv bSAuIGltcG9ydCB1dGlscyBhcyBzZXJ2ZXJfdXRpbHMKIAogCiBjbGFzcyBT ZXJ2ZXJzR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgpAQCAtMjQs MjggKzIzLDIzIEBAIGNsYXNzIFNlcnZlcnNHZXRUZXN0Q2FzZShCYXNlVGVz dEdlbmVyYXRvcik6CiAgICAgICAgICgnRGVmYXVsdCBTZXJ2ZXIgTm9kZSB1 cmwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvc2VydmVyL29iai8nKSkKICAgICBd CiAKLSAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgQGNsYXNzbWV0aG9kCisg ICAgZGVmIHNldFVwQ2xhc3MoY2xzKToKICAgICAgICAgIiIiCiAgICAgICAg IFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBhZGQgdGhlIHNlcnZlcgogCiAg ICAgICAgIDpyZXR1cm46IE5vbmUKICAgICAgICAgIiIiCiAKLSAgICAgICAg dXRpbHMuYWRkX3NlcnZlcihzZWxmLnRlc3RlcikKKyAgICAgICAgc2VydmVy X3V0aWxzLmFkZF9zZXJ2ZXIoY2xzLnRlc3RlcikKIAogICAgIGRlZiBydW5U ZXN0KHNlbGYpOgogICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGZl dGNoIHRoZSBhZGRlZCBzZXJ2ZXJzIHRvIG9iamVjdCBicm93c2VyLiAiIiIK IAotICAgICAgICBhbGxfaWQgPSBnZXRfaWRzKCkKLSAgICAgICAgc2VydmVy X2lkcyA9IGFsbF9pZFsic2lkIl0KLSAgICAgICAgc3J2X2dycCA9IGNvbmZp Z19kYXRhWyd0ZXN0X3NlcnZlcl9ncm91cCddCisgICAgICAgIHNlcnZlcl91 dGlscy5nZXRfc2VydmVyKHNlbGYudGVzdGVyKQogCi0gICAgICAgIGZvciBz ZXJ2ZXJfaWQgaW4gc2VydmVyX2lkczoKLSAgICAgICAgICAgIHVybCA9ICJ7 MH17MX0vezJ9Ii5mb3JtYXQoc2VsZi51cmwsIHNydl9ncnAsIHNlcnZlcl9p ZCkKLSAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHVy bCwgY29udGVudF90eXBlPSdodG1sL2pzb24nKQotICAgICAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLQot ICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICBAY2xhc3NtZXRob2QKKyAg ICBkZWYgdGVhckRvd25DbGFzcyhjbHMpOgogICAgICAgICAiIiIKICAgICAg ICAgVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSBhZGRlZCBzZXJ2ZXIgYW5k IHRoZSAncGFyZW50X2lkLnBrbCcgZmlsZQogICAgICAgICB3aGljaCBpcyBj cmVhdGVkIGluIHNldHVwKCkgZnVuY3Rpb24uCkBAIC01Myw1ICs0Nyw1IEBA IGNsYXNzIFNlcnZlcnNHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6 CiAgICAgICAgIDpyZXR1cm46IE5vbmUKICAgICAgICAgIiIiCiAKLSAgICAg ICAgdXRpbHMuZGVsZXRlX3NlcnZlcihzZWxmLnRlc3RlcikKKyAgICAgICAg c2VydmVyX3V0aWxzLmRlbGV0ZV9zZXJ2ZXIoY2xzLnRlc3RlcikKICAgICAg ICAgdXRpbHMuZGVsZXRlX3BhcmVudF9pZF9maWxlKCkKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rl c3RzL3Rlc3Rfc2VydmVyX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX3B1dC5w eQppbmRleCA1ZTgxMGJhLi45YWM2NDY4IDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0 X3NlcnZlcl9wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfcHV0LnB5CkBA IC04LDEwICs4LDkgQEAKICMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKIAogaW1wb3J0IGpzb24KLQogZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRl IGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogZnJvbSByZWdyZXNzaW9uIGlt cG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCi1mcm9tIHJlZ3Jlc3Npb24udGVz dF9zZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEKK2Zyb20gLiBpbXBvcnQgdXRp bHMgYXMgc2VydmVyX3V0aWxzCiAKIAogY2xhc3MgU2VydmVyVXBkYXRlVGVz dENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgpAQCAtMjIsNyArMjEsOCBAQCBj bGFzcyBTZXJ2ZXJVcGRhdGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6 CiAgICAgICAgICgnRGVmYXVsdCBTZXJ2ZXIgTm9kZSB1cmwnLCBkaWN0KHVy bD0nL2Jyb3dzZXIvc2VydmVyL29iai8nKSkKICAgICBdCiAKLSAgICBkZWYg c2V0VXAoc2VsZik6CisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHNldFVw Q2xhc3MoY2xzKToKICAgICAgICAgIiIiCiAgICAgICAgIFRoaXMgZnVuY3Rp b24gcGVyZm9ybSB0aGUgZm91ciB0YXNrcwogICAgICAgICAgMS4gQWRkIHRo ZSB0ZXN0IHNlcnZlcgpAQCAtMzMsMTMgKzMzLDE2IEBAIGNsYXNzIFNlcnZl clVwZGF0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAg IiIiCiAKICAgICAgICAgIyBGaXJzdGx5LCBhZGQgdGhlIHNlcnZlcgotICAg ICAgICB1dGlscy5hZGRfc2VydmVyKHNlbGYudGVzdGVyKQorICAgICAgICBz ZXJ2ZXJfdXRpbHMuYWRkX3NlcnZlcihjbHMudGVzdGVyKQorCiAgICAgICAg ICMgR2V0IHRoZSBzZXJ2ZXIKLSAgICAgICAgdXRpbHMuZ2V0X3NlcnZlcihz ZWxmLnRlc3RlcikKKyAgICAgICAgc2VydmVyX3V0aWxzLmdldF9zZXJ2ZXIo Y2xzLnRlc3RlcikKKwogICAgICAgICAjIENvbm5lY3QgdG8gc2VydmVyCi0g ICAgICAgIHNlbGYuc2VydmVyX2Nvbm5lY3QsIHNlbGYuc2VydmVyX2dyb3Vw LCBzZWxmLnNlcnZlcl9pZHMgPSBcCi0gICAgICAgICAgICB1dGlscy5jb25u ZWN0X3NlcnZlcihzZWxmLnRlc3RlcikKLSAgICAgICAgaWYgbGVuKHNlbGYu c2VydmVyX2Nvbm5lY3QpID09IDA6CisgICAgICAgIGNscy5zZXJ2ZXJfY29u bmVjdCwgY2xzLnNlcnZlcl9ncm91cCwgY2xzLnNlcnZlcl9pZHMgPSBcCisg ICAgICAgICAgICBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoY2xzLnRl c3RlcikKKworICAgICAgICBpZiBsZW4oY2xzLnNlcnZlcl9jb25uZWN0KSA9 PSAwOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyBTZXJ2ZXIo cykgY29ubmVjdGVkIHRvIHVwZGF0ZSEhISIpCiAKICAgICBkZWYgcnVuVGVz dChzZWxmKToKQEAgLTQ4LDcgKzUxLDggQEAgY2xhc3MgU2VydmVyVXBkYXRl VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICBmb3Igc2Vy dmVyX2lkIGluIHNlbGYuc2VydmVyX2lkczoKICAgICAgICAgICAgIGRhdGEg PSB7CiAgICAgICAgICAgICAgICAgImNvbW1lbnQiOgotICAgICAgICAgICAg ICAgICAgICBjb25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfdXBkYXRlX2RhdGEn XVswXVsndGVzdF9jb21tZW50J10sCisgICAgICAgICAgICAgICAgICAgIHNl cnZlcl91dGlscy5jb25maWdfZGF0YVsnc2VydmVyX3VwZGF0ZV9kYXRhJ11b MF1bCisgICAgICAgICAgICAgICAgICAgICAgICAnY29tbWVudCddLAogICAg ICAgICAgICAgICAgICJpZCI6IHNlcnZlcl9pZAogICAgICAgICAgICAgfQog ICAgICAgICAgICAgcHV0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KApA QCAtNjAsNyArNjQsOCBAQCBjbGFzcyBTZXJ2ZXJVcGRhdGVUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICByZXNwb25zZV9kYXRh ID0ganNvbi5sb2FkcyhwdXRfcmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKICAg ICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwb25zZV9kYXRhWydzdWNj ZXNzJ10sIDEpCiAKLSAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgQGNs YXNzbWV0aG9kCisgICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKICAgICAg ICAgIiIiCiAgICAgICAgIFRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgYWRk ZWQgc2VydmVyIGFuZCB0aGUgJ3BhcmVudF9pZC5wa2wnIGZpbGUKICAgICAg ICAgd2hpY2ggaXMgY3JlYXRlZCBpbiBzZXR1cCgpIGZ1bmN0aW9uLgpAQCAt NjgsNSArNzMsNSBAQCBjbGFzcyBTZXJ2ZXJVcGRhdGVUZXN0Q2FzZShCYXNl VGVzdEdlbmVyYXRvcik6CiAgICAgICAgIDpyZXR1cm46IE5vbmUKICAgICAg ICAgIiIiCiAKLSAgICAgICAgdXRpbHMuZGVsZXRlX3NlcnZlcihzZWxmLnRl c3RlcikKKyAgICAgICAgc2VydmVyX3V0aWxzLmRlbGV0ZV9zZXJ2ZXIoY2xz LnRlc3RlcikKICAgICAgICAgdXRpbHMuZGVsZXRlX3BhcmVudF9pZF9maWxl KCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3Rlc3RzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdXRpbHMucHkKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmUzZjE2NgotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3Rlc3RzL3V0aWxzLnB5CkBAIC0wLDAgKzEsMTYwIEBA CisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjICNwZ0Fk bWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjICNDb3B5cmlnaHQgKEMp IDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisj ICNUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3Jl U1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKworaW1wb3J0IGpzb24KK2ltcG9ydCBvcworaW1wb3J0IHBpY2tsZQor Citmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMK K2Zyb20gcmVncmVzc2lvbi50ZXN0X3NldHVwIGltcG9ydCBwaWNrbGVfcGF0 aCwgY29uZmlnX2RhdGEKKworU0VSVkVSX1VSTCA9ICcvYnJvd3Nlci9zZXJ2 ZXIvb2JqLycKK1NFUlZFUl9DT05ORUNUX1VSTCA9ICdicm93c2VyL3NlcnZl ci9jb25uZWN0LycKKworCitkZWYgd3JpdGVfc2VydmVyX2lkKHJlc3BvbnNl X2RhdGEsIHBpY2tsZV9pZF9kaWN0KToKKyAgICAiIiIKKyAgICBUaGlzIGZ1 bmN0aW9uIHdyaXRlcyB0aGUgc2VydmVyJ3MgZGV0YWlscyB0byBmaWxlIHBh cmVudF9pZC5wa2wKKworICAgIDpwYXJhbSByZXNwb25zZV9kYXRhOiBzZXJ2 ZXIncyBkYXRhCisgICAgOnR5cGUgcmVzcG9uc2VfZGF0YTogbGlzdCBvZiBk aWN0aW9uYXJ5CisgICAgOnBhcmFtIHBpY2tsZV9pZF9kaWN0OiBjb250YWlu cyBpZHMgb2Ygc2VydmVyLGRhdGFiYXNlLHRhYmxlcyBldGMuCisgICAgOnR5 cGUgcGlja2xlX2lkX2RpY3Q6IGRpY3QKKyAgICA6cmV0dXJuOiBOb25lCisg ICAgIiIiCisKKyAgICBzZXJ2ZXJfaWQgPSByZXNwb25zZV9kYXRhWydub2Rl J11bJ19pZCddCisgICAgaWYgb3MucGF0aC5pc2ZpbGUocGlja2xlX3BhdGgp OgorICAgICAgICBleGlzdGVkX3NlcnZlcl9pZCA9IG9wZW4ocGlja2xlX3Bh dGgsICdyYicpCisgICAgICAgIHBpY2tsZV9pZF9kaWN0ID0gcGlja2xlLmxv YWQoZXhpc3RlZF9zZXJ2ZXJfaWQpCisKKyAgICBwaWNrbGVfaWRfZGljdFsi c2lkIl0uYXBwZW5kKHN0cihzZXJ2ZXJfaWQpKQorICAgIG91dHB1dCA9IG9w ZW4ocGlja2xlX3BhdGgsICd3YicpCisgICAgcGlja2xlLmR1bXAocGlja2xl X2lkX2RpY3QsIG91dHB1dCkKKyAgICBvdXRwdXQuY2xvc2UoKQorCisKK2Rl ZiBhZGRfc2VydmVyKHRlc3Rlcik6CisgICAgIiIiCisgICAgVGhpcyBmdW5j dGlvbiBhZGQgdGhlIHNlcnZlciBpbiB0aGUgZXhpc3Rpbmcgc2VydmVyIGdy b3VwCisKKyAgICA6cGFyYW0gdGVzdGVyOiB0ZXN0IG9iamVjdAorICAgIDp0 eXBlIHRlc3RlcjogZmxhc2sgdGVzdCBvYmplY3QKKyAgICA6cmV0dXJuOk5v bmUKKyAgICAiIiIKKworICAgIHNlcnZlcl9ncm91cCwgZGJfZGF0YSwgcGlj a2xlX2lkX2RpY3QgPSB1dGlscy5nZXRfY29uZmlnX2RhdGEoKQorICAgIHVy bCA9ICJ7MH17MX0vIi5mb3JtYXQoU0VSVkVSX1VSTCwgc2VydmVyX2dyb3Vw KQorICAgIGZvciBkYl9kZXRhaWwgaW4gZGJfZGF0YToKKyAgICAgICAgcmVz cG9uc2UgPSB0ZXN0ZXIucG9zdCh1cmwsIGRhdGE9anNvbi5kdW1wcyhkYl9k ZXRhaWwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRl bnRfdHlwZT0naHRtbC9qc29uJykKKyAgICAgICAgYXNzZXJ0IHJlc3BvbnNl LnN0YXR1c19jb2RlID09IDIwMAorICAgICAgICByZXNwb25zZV9kYXRhID0g anNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKKyAg ICAgICAgd3JpdGVfc2VydmVyX2lkKHJlc3BvbnNlX2RhdGEsIHBpY2tsZV9p ZF9kaWN0KQorCisKK2RlZiBnZXRfc2VydmVyKHRlc3Rlcik6CisgICAgIiIi CisgICAgVGhpcyBmdW5jdGlvbiBnZXRzIHRoZSBhZGRlZCBzZXJlciBkZXRh aWxzCisKKyAgICA6cGFyYW0gdGVzdGVyOiB0ZXN0IGNsaWVudCBvYmplY3QK KyAgICA6dHlwZSB0ZXN0ZXI6IGZsYXNrIHRlc3Qgb2JqZWN0CisgICAgOnJl dHVybjogcmVzcG9uc2VfZGF0YQorICAgIDpydHlwZTogbGlzdAorICAgICIi IgorCisgICAgYWxsX2lkID0gdXRpbHMuZ2V0X2lkcygpCisgICAgc2VydmVy X2lkcyA9IGFsbF9pZFsic2lkIl0KKyAgICBmb3Igc2VydmVyX2lkIGluIHNl cnZlcl9pZHM6CisgICAgICAgIHJlc3BvbnNlID0gdGVzdGVyLmdldChTRVJW RVJfVVJMICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3Rz PVRydWUpCisgICAgICAgIGFzc2VydCByZXNwb25zZS5zdGF0dXNfY29kZSA9 PSAyMDAKKworCitkZWYgY29ubmVjdF9zZXJ2ZXIodGVzdGVyKToKKyAgICAi IiIKKyAgICBUaGlzIGZ1bmN0aW9uIHVzZWQgdG8gY29ubmVjdCBhZGRlZCBz ZXJ2ZXIKKworICAgIDpwYXJhbSB0ZXN0ZXI6dGVzdCBjbGllbnQgb2JqZWN0 CisgICAgOnR5cGUgdGVzdGVyOiBmbGFzayB0ZXN0IG9iamVjdAorICAgIDpw YXJhbSBhZGRfZGJfZmxhZzogZmxhZyBmb3IgZGIgYWRkIHRlc3QgY2FzZQor ICAgIDp0eXBlIGFkZF9kYl9mbGFnOiBib29sCisgICAgOnJldHVybjogc2Vy dmVyX2Nvbm5lY3QsIHNlcnZlcl9ncm91cCwgc2VydmVyX2lkCisgICAgOnJ0 eXBlOiBzZXJ2ZXJfY29ubmVjdDpkaWN0LCBzZXJ2ZXJfZ3JvdXA6ZGljdCwg c2VydmVyX2lkOnN0cgorICAgICIiIgorCisgICAgc2VydmVyX2Nvbm5lY3Qg PSBbXQorICAgIHNlcnZlcnMgPSBbXQorICAgIHNlcnZlcl9jb25maWcgPSBO b25lCisKKyAgICBzcnZfaWQgPSB1dGlscy5nZXRfaWRzKCkKKyAgICBzZXJ2 ZXJfaWRzID0gc3J2X2lkWyJzaWQiXQorCisgICAgIyBDb25uZWN0IHRvIGFs bCBzZXJ2ZXJzCisgICAgZm9yIHNlcnZlcl9pZCBpbiBzZXJ2ZXJfaWRzOgor ICAgICAgICByZXNwb25zZSA9IHRlc3Rlci5wb3N0KFNFUlZFUl9DT05ORUNU X1VSTCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnLycgKyBzZXJ2ZXJfaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1kaWN0KAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzd29yZD1jb25maWdfZGF0 YQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3NlcnZl cl9jcmVkZW50aWFscyddWzBdCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFsnZGJfcGFzc3dvcmQnXSksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorICAgICAg ICBzZXJ2ZXJfY29ubmVjdF9kZXRhaWwgPSBqc29uLmxvYWRzKHJlc3BvbnNl LmRhdGEuZGVjb2RlKCd1dGYtOCcpKQorICAgICAgICBkYl91c2VyID0gc2Vy dmVyX2Nvbm5lY3RfZGV0YWlsWydkYXRhJ11bJ3VzZXInXVsnbmFtZSddCisg ICAgICAgIHNlcnZlcl9jb25uZWN0X2RldGFpbFsndGFibGVzcGFjZV9wYXRo J10gPSBOb25lCisKKyAgICAgICAgIyBHZXQgdGhlIHNlcnZlciBjb25maWcg b2YgYXBwcm9wcmlhdGUgZGIgdXNlcgorICAgICAgICBmb3IgY29uZmlnIGlu IGNvbmZpZ19kYXRhWydzZXJ2ZXJfY3JlZGVudGlhbHMnXToKKyAgICAgICAg ICAgIGlmIGRiX3VzZXIgPT0gY29uZmlnWydkYl91c2VybmFtZSddOgorICAg ICAgICAgICAgICAgIHNlcnZlcl9jb25maWcgPSBjb25maWcKKworICAgICAg ICBpZiAidGFibGVzcGFjZV9wYXRoIiBpbiBzZXJ2ZXJfY29uZmlnOgorICAg ICAgICAgICAgc2VydmVyX2Nvbm5lY3RfZGV0YWlsWyd0YWJsZXNwYWNlX3Bh dGgnXSA9IFwKKyAgICAgICAgICAgICAgICBzZXJ2ZXJfY29uZmlnWyd0YWJs ZXNwYWNlX3BhdGgnXQorCisgICAgICAgIHNlcnZlcl9jb25uZWN0LmFwcGVu ZChzZXJ2ZXJfY29ubmVjdF9kZXRhaWwpCisgICAgICAgIHNlcnZlcnMuYXBw ZW5kKHNlcnZlcl9pZCkKKyAgICByZXR1cm4gc2VydmVyX2Nvbm5lY3QsIHV0 aWxzLlNFUlZFUl9HUk9VUCwgc2VydmVycworCisKK2RlZiB2ZXJpZnlfc2Vy dmVyKHRlc3Rlciwgc2VydmVyX2dyb3VwLCBzZXJ2ZXJfaWQpOgorICAgICIi IlRoaXMgZnVuY3Rpb24gdmVyaWZpZXMgdGhhdCBzZXJ2ZXIgaXMgY29ubmVj dGluZyBvciBub3QiIiIKKworICAgIHJlc3BvbnNlID0gdGVzdGVyLnBvc3Qo CisgICAgICAgICd7MH17MX0vezJ9Jy5mb3JtYXQoU0VSVkVSX0NPTk5FQ1Rf VVJMLCBzZXJ2ZXJfZ3JvdXAsIHNlcnZlcl9pZCksCisgICAgICAgIGRhdGE9 ZGljdChwYXNzd29yZD1jb25maWdfZGF0YQorICAgICAgICBbJ3NlcnZlcl9j cmVkZW50aWFscyddWzBdCisgICAgICAgIFsnZGJfcGFzc3dvcmQnXSksCisg ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKyAgICBzcnZfY29ubmVj dCA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04Jykp CisgICAgcmV0dXJuIHNydl9jb25uZWN0CisKKworZGVmIGRlbGV0ZV9zZXJ2 ZXIodGVzdGVyKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHVzZWQg dG8gZGVsZXRlIHRoZSBhZGRlZCBzZXJ2ZXJzCisKKyAgICA6cGFyYW0gdGVz dGVyOiB0ZXN0IGNsaWVudCBvYmplY3QKKyAgICA6cmV0dXJuOiBOb25lCisg ICAgIiIiCisKKyAgICBhbGxfaWQgPSB1dGlscy5nZXRfaWRzKCkKKyAgICBz ZXJ2ZXJfaWRzID0gYWxsX2lkWyJzaWQiXQorICAgIHVybCA9IFNFUlZFUl9V UkwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICIvIgorCisgICAgaWYg bGVuKHNlcnZlcl9pZHMpID09IDA6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiTm8gc2VydmVyKHMpIHRvIGRlbGV0ZSEhISIpCisKKyAgICAjIENhbGwg YXBpIHRvIGRlbGV0ZSB0aGUgc2VydmVycworICAgIGZvciBzZXJ2ZXJfaWQg aW4gc2VydmVyX2lkczoKKyAgICAgICAgcmVzcG9uc2UgPSB0ZXN0ZXIuZGVs ZXRlKHVybCArIHN0cihzZXJ2ZXJfaWQpKQorICAgICAgICBhc3NlcnQgcmVz cG9uc2Uuc3RhdHVzX2NvZGUgPT0gMjAwCisgICAgICAgIHJlc3BvbnNlX2Rh dGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcp KQorICAgICAgICBhc3NlcnQgcmVzcG9uc2VfZGF0YVsnc3VjY2VzcyddID09 IDEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvdGVzdHMvdGVzdF9z Z19nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv dGVzdHMvdGVzdF9zZ19nZXQucHkKaW5kZXggNmMxNjRiZS4uNWRmNjdjOSAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3Rlc3RzL3Rlc3Rfc2dfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy90ZXN0cy90ZXN0X3NnX2dldC5weQpAQCAtMjYs NyArMjYsNyBAQCBjbGFzcyBTZ05vZGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVy YXRvcik6CiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAgICAgICAgICIiIlRo aXMgZnVuY3Rpb24gd2lsbCBjaGVjayBhdmFpbGFibGUgc2VydmVyIGdyb3Vw cy4iIiIKIAotICAgICAgICBzZXJ2ZXJfZ3JvdXBfaWQgPSBjb25maWdfZGF0 YVsndGVzdF9zZXJ2ZXJfZ3JvdXAnXQorICAgICAgICBzZXJ2ZXJfZ3JvdXBf aWQgPSBjb25maWdfZGF0YVsnc2VydmVyX2dyb3VwJ10KICAgICAgICAgcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoc2VsZi51cmwgKyBzdHIoc2VydmVy X2dyb3VwX2lkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQogICAgICAgICBzZWxmLmFz c2VydFRydWUocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9jaGFuZ2VfcGFz c3dvcmQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfY2hh bmdlX3Bhc3N3b3JkLnB5CmluZGV4IDJmNzE0YTcuLjViN2M5MTggMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9jaGFuZ2Vf cGFzc3dvcmQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90 ZXN0X2NoYW5nZV9wYXNzd29yZC5weQpAQCAtOCw5ICs4LDEyIEBACiAjICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKIGltcG9ydCB1dWlkCitp bXBvcnQganNvbgogCiBmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0 IEJhc2VUZXN0R2VuZXJhdG9yCiBmcm9tIHJlZ3Jlc3Npb24udGVzdF9zZXR1 cCBpbXBvcnQgY29uZmlnX2RhdGEKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQg dGVzdF91dGlscyBhcyB1dGlscworZnJvbSB1dGlscyBpbXBvcnQgY2hhbmdl X3Bhc3N3b3JkCiAKIAogY2xhc3MgQ2hhbmdlUGFzc3dvcmRUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CkBAIC0yNCw5ICsyNyw5IEBAIGNsYXNzIENo YW5nZVBhc3N3b3JkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAg ICAgICAjIFRoaXMgdGVzdGNhc2UgdmFsaWRhdGVzIGludmFsaWQgY29uZmly bWF0aW9uIHBhc3N3b3JkCiAgICAgICAgICgnVGVzdENhc2UgZm9yIFZhbGlk YXRpbmcgSW5jb3JyZWN0X05ld19QYXNzd29yZCcsIGRpY3QoCiAgICAgICAg ICAgICBwYXNzd29yZD0oY29uZmlnX2RhdGFbJ3BnQWRtaW40X2xvZ2luX2Ny ZWRlbnRpYWxzJ10KLSAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfbG9n aW5fcGFzc3dvcmQnXSksCisgICAgICAgICAgICAgICAgICAgICAgWydsb2dp bl9wYXNzd29yZCddKSwKICAgICAgICAgICAgIG5ld19wYXNzd29yZD0oY29u ZmlnX2RhdGFbJ3BnQWRtaW40X2xvZ2luX2NyZWRlbnRpYWxzJ10KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X25ld19wYXNzd29yZCddKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgWyduZXdfcGFzc3dvcmQnXSks CiAgICAgICAgICAgICBuZXdfcGFzc3dvcmRfY29uZmlybT1zdHIodXVpZC51 dWlkNCgpKVs0OjhdLAogICAgICAgICAgICAgcmVzcGRhdGE9J1Bhc3N3b3Jk cyBkbyBub3QgbWF0Y2gnKSksCiAKQEAgLTM0LDcgKzM3LDcgQEAgY2xhc3Mg Q2hhbmdlUGFzc3dvcmRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAg ICAgICAgICMgbWluaW11bSBsZW5ndGgKICAgICAgICAgKCdUZXN0Q2FzZSBm b3IgVmFsaWRhdGluZyBOZXdfUGFzc3dvcmRfTGVzc19UaGFuX01pbl9MZW5n dGgnLAogICAgICAgICAgZGljdChwYXNzd29yZD0oY29uZmlnX2RhdGFbJ3Bn QWRtaW40X2xvZ2luX2NyZWRlbnRpYWxzJ10KLSAgICAgICAgICAgICAgICAg ICAgICAgIFsndGVzdF9sb2dpbl9wYXNzd29yZCddKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgIFsnbG9naW5fcGFzc3dvcmQnXSksCiAgICAgICAgICAg ICAgIG5ld19wYXNzd29yZD1zdHIodXVpZC51dWlkNCgpKVs0OjhdLAogICAg ICAgICAgICAgICBuZXdfcGFzc3dvcmRfY29uZmlybT1zdHIodXVpZC51dWlk NCgpKVs0OjhdLAogICAgICAgICAgICAgICByZXNwZGF0YT0nUGFzc3dvcmQg bXVzdCBiZSBhdCBsZWFzdCA2IGNoYXJhY3RlcnMnKSksCkBAIC00Miw3ICs0 NSw3IEBAIGNsYXNzIENoYW5nZVBhc3N3b3JkVGVzdENhc2UoQmFzZVRlc3RH ZW5lcmF0b3IpOgogICAgICAgICAjIFRoaXMgdGVzdGNhc2UgdmFsaWRhdGVz IGlmIGJvdGggcGFzc3dvcmQgZmllbGRzIGFyZSBsZWZ0IGJsYW5rCiAgICAg ICAgICgnVGVzdENhc2UgZm9yIFZhbGlkYXRpbmcgRW1wdHlfTmV3X1Bhc3N3 b3JkJywgZGljdCgKICAgICAgICAgICAgIHBhc3N3b3JkPShjb25maWdfZGF0 YVsncGdBZG1pbjRfbG9naW5fY3JlZGVudGlhbHMnXQotICAgICAgICAgICAg ICAgICAgICAgIFsndGVzdF9sb2dpbl9wYXNzd29yZCddKSwKKyAgICAgICAg ICAgICAgICAgICAgICBbJ2xvZ2luX3Bhc3N3b3JkJ10pLAogICAgICAgICAg ICAgbmV3X3Bhc3N3b3JkPScnLCBuZXdfcGFzc3dvcmRfY29uZmlybT0nJywK ICAgICAgICAgICAgIHJlc3BkYXRhPSdQYXNzd29yZCBub3QgcHJvdmlkZWQn KSksCiAKQEAgLTUwLDU3ICs1Myw2NiBAQCBjbGFzcyBDaGFuZ2VQYXNzd29y ZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgKCdUZXN0 Q2FzZSBmb3IgVmFsaWRhdGluZyBJbmNvcnJlY3RfQ3VycmVudF9QYXNzd29y ZCcsIGRpY3QoCiAgICAgICAgICAgICBwYXNzd29yZD1zdHIodXVpZC51dWlk NCgpKVs0OjhdLAogICAgICAgICAgICAgbmV3X3Bhc3N3b3JkPShjb25maWdf ZGF0YVsncGdBZG1pbjRfbG9naW5fY3JlZGVudGlhbHMnXQotICAgICAgICAg ICAgICAgICAgICAgICAgICBbJ3Rlc3RfbmV3X3Bhc3N3b3JkJ10pLAorICAg ICAgICAgICAgICAgICAgICAgICAgICBbJ25ld19wYXNzd29yZCddKSwKICAg ICAgICAgICAgIG5ld19wYXNzd29yZF9jb25maXJtPSgKICAgICAgICAgICAg ICAgICBjb25maWdfZGF0YVsncGdBZG1pbjRfbG9naW5fY3JlZGVudGlhbHMn XQotICAgICAgICAgICAgICAgIFsndGVzdF9uZXdfcGFzc3dvcmQnXSksCisg ICAgICAgICAgICAgICAgWyduZXdfcGFzc3dvcmQnXSksCiAgICAgICAgICAg ICByZXNwZGF0YT0nSW52YWxpZCBwYXNzd29yZCcpKSwKIAotICAgICAgICAj IFRoaXMgdGVzdGNhc2UgY2hlY2tzIGZvciB2YWxpZCBwYXNzd29yZAorICAg ICAgICAjIFRoaXMgdGVzdCBjYXNlIGNoZWNrcyBmb3IgdmFsaWQgcGFzc3dv cmQKICAgICAgICAgKCdUZXN0Q2FzZSBmb3IgQ2hhbmdpbmcgVmFsaWRfUGFz c3dvcmQnLCBkaWN0KAotICAgICAgICAgICAgcGFzc3dvcmQ9KGNvbmZpZ19k YXRhWydwZ0FkbWluNF9sb2dpbl9jcmVkZW50aWFscyddCi0gICAgICAgICAg ICAgICAgICAgICAgWyd0ZXN0X2xvZ2luX3Bhc3N3b3JkJ10pLAotICAgICAg ICAgICAgbmV3X3Bhc3N3b3JkPShjb25maWdfZGF0YVsncGdBZG1pbjRfbG9n aW5fY3JlZGVudGlhbHMnXQotICAgICAgICAgICAgICAgICAgICAgICAgICBb J3Rlc3RfbmV3X3Bhc3N3b3JkJ10pLAotICAgICAgICAgICAgbmV3X3Bhc3N3 b3JkX2NvbmZpcm09KAotICAgICAgICAgICAgICAgIGNvbmZpZ19kYXRhWydw Z0FkbWluNF9sb2dpbl9jcmVkZW50aWFscyddCi0gICAgICAgICAgICAgICAg Wyd0ZXN0X25ld19wYXNzd29yZCddKSwKLSAgICAgICAgICAgIHJlc3BkYXRh PSdZb3Ugc3VjY2Vzc2Z1bGx5IGNoYW5nZWQgeW91ciBwYXNzd29yZC4nKSks Ci0gICAgICAgICgnUmVhc3NpZ25pbmdfUGFzc3dvcmQnLCBkaWN0KAotICAg ICAgICAgICAgdGVzdF9jYXNlPSdyZWFzc2lnbmluZ19wYXNzd29yZCcsCi0g ICAgICAgICAgICBwYXNzd29yZD0oY29uZmlnX2RhdGFbJ3BnQWRtaW40X2xv Z2luX2NyZWRlbnRpYWxzJ10KLSAgICAgICAgICAgICAgICAgICAgICBbJ3Rl c3RfbmV3X3Bhc3N3b3JkJ10pLAotICAgICAgICAgICAgbmV3X3Bhc3N3b3Jk PShjb25maWdfZGF0YVsncGdBZG1pbjRfbG9naW5fY3JlZGVudGlhbHMnXQot ICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfbG9naW5fcGFzc3dv cmQnXSksCisgICAgICAgICAgICB2YWxpZF9wYXNzd29yZD0ncmVhc3NpZ25p bmdfcGFzc3dvcmQnLAorICAgICAgICAgICAgdXNlcm5hbWU9KGNvbmZpZ19k YXRhWydwZ0FkbWluNF90ZXN0X3VzZXJfY3JlZGVudGlhbHMnXQorICAgICAg ICAgICAgICAgICAgICAgIFsnbG9naW5fdXNlcm5hbWUnXSksCisgICAgICAg ICAgICBwYXNzd29yZD0oY29uZmlnX2RhdGFbJ3BnQWRtaW40X3Rlc3RfdXNl cl9jcmVkZW50aWFscyddCisgICAgICAgICAgICAgICAgICAgICAgWydsb2dp bl9wYXNzd29yZCddKSwKKyAgICAgICAgICAgIG5ld19wYXNzd29yZD0oY29u ZmlnX2RhdGFbJ3BnQWRtaW40X3Rlc3RfdXNlcl9jcmVkZW50aWFscyddCisg ICAgICAgICAgICAgICAgICAgICAgICAgIFsnbmV3X3Bhc3N3b3JkJ10pLAog ICAgICAgICAgICAgbmV3X3Bhc3N3b3JkX2NvbmZpcm09KAotICAgICAgICAg ICAgICAgIGNvbmZpZ19kYXRhWydwZ0FkbWluNF9sb2dpbl9jcmVkZW50aWFs cyddCi0gICAgICAgICAgICAgICAgWyd0ZXN0X2xvZ2luX3Bhc3N3b3JkJ10p LAorICAgICAgICAgICAgICAgIGNvbmZpZ19kYXRhWydwZ0FkbWluNF90ZXN0 X3VzZXJfY3JlZGVudGlhbHMnXQorICAgICAgICAgICAgICAgIFsnbmV3X3Bh c3N3b3JkJ10pLAogICAgICAgICAgICAgcmVzcGRhdGE9J1lvdSBzdWNjZXNz ZnVsbHkgY2hhbmdlZCB5b3VyIHBhc3N3b3JkLicpKQotCiAgICAgXQogCisg ICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHNldFVwQ2xhc3MoY2xzKToKKyAg ICAgICAgcGFzcworCiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAgICAgICAg ICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBjaGVjayBjaGFuZ2UgcGFzc3dvcmQg ZnVuY3Rpb25hbGl0eS4iIiIKIAotICAgICAgICAjIENoZWNrIGZvciAndGVz dF9jYXNlJyBleGlzdHMgaW4gc2VsZiBGb3IgcmVhc3NpZ25pbmcgdGhlIHBh c3N3b3JkLgotICAgICAgICAjIFBhc3N3b3JkIGdldHMgY2hhbmdlIGluIGNo YW5nZSBwYXNzd29yZCB0ZXN0IGNhc2UuCi0gICAgICAgIGlmICd0ZXN0X2Nh c2UnIGluIGRpcihzZWxmKToKLSAgICAgICAgICAgIGVtYWlsID0gXAotICAg ICAgICAgICAgICAgIGNvbmZpZ19kYXRhWydwZ0FkbWluNF9sb2dpbl9jcmVk ZW50aWFscyddWwotICAgICAgICAgICAgICAgICAgICAndGVzdF9sb2dpbl91 c2VybmFtZSddCi0gICAgICAgICAgICBwYXNzd29yZCA9IFwKLSAgICAgICAg ICAgICAgICBjb25maWdfZGF0YVsncGdBZG1pbjRfbG9naW5fY3JlZGVudGlh bHMnXVsKLSAgICAgICAgICAgICAgICAgICAgJ3Rlc3RfbmV3X3Bhc3N3b3Jk J10KKyAgICAgICAgIyBDaGVjayBmb3IgJ3ZhbGlkX3Bhc3N3b3JkJyBleGlz dHMgaW4gc2VsZiB0byB0ZXN0ICd2YWxpZCBwYXNzd29yZCcKKyAgICAgICAg IyB0ZXN0IGNhc2UKKyAgICAgICAgaWYgJ3ZhbGlkX3Bhc3N3b3JkJyBpbiBk aXIoc2VsZik6CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVy LnBvc3QoJy91c2VyX21hbmFnZW1lbnQvdXNlci8nLCBkYXRhPWRpY3QoCisg ICAgICAgICAgICAgICAgZW1haWw9c2VsZi51c2VybmFtZSwgbmV3UGFzc3dv cmQ9c2VsZi5wYXNzd29yZCwKKyAgICAgICAgICAgICAgICBjb25maXJtUGFz c3dvcmQ9c2VsZi5wYXNzd29yZCwgYWN0aXZlPTEsIHJvbGU9IjIiKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3df cmVkaXJlY3RzPVRydWUpCisgICAgICAgICAgICB1c2VyX2lkID0ganNvbi5s b2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSlbJ2lkJ10KKwor ICAgICAgICAgICAgIyBMb2dvdXQgdGhlIEFkbWluaXN0cmF0b3IgYmVmb3Jl IGxvZ2luIG5vcm1hbCB1c2VyCisgICAgICAgICAgICB1dGlscy5sb2dvdXRf dGVzdGVyX2FjY291bnQoc2VsZi50ZXN0ZXIpCisKICAgICAgICAgICAgIHJl c3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgnL2xvZ2luJywgZGF0YT1kaWN0 KAotICAgICAgICAgICAgICAgIGVtYWlsPWVtYWlsLCBwYXNzd29yZD1wYXNz d29yZCksIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLQotICAgICAgICByZXNw b25zZSA9IHNlbGYudGVzdGVyLmdldCgnL2NoYW5nZScsIGZvbGxvd19yZWRp cmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRJbigncGdBZG1pbiA0 IFBhc3N3b3JkIENoYW5nZScsIHJlc3BvbnNlLmRhdGEuZGVjb2RlKAotICAg ICAgICAgICAgJ3V0Zi04JykpCi0KLSAgICAgICAgcmVzcG9uc2UgPSBzZWxm LnRlc3Rlci5wb3N0KCcvY2hhbmdlJywgZGF0YT1kaWN0KAotICAgICAgICAg ICAgcGFzc3dvcmQ9c2VsZi5wYXNzd29yZCwKLSAgICAgICAgICAgIG5ld19w YXNzd29yZD1zZWxmLm5ld19wYXNzd29yZCwKLSAgICAgICAgICAgIG5ld19w YXNzd29yZF9jb25maXJtPXNlbGYubmV3X3Bhc3N3b3JkX2NvbmZpcm0pLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3Jl ZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYucmVz cGRhdGEsIHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQorICAgICAg ICAgICAgICAgIGVtYWlsPXNlbGYudXNlcm5hbWUsIHBhc3N3b3JkPXNlbGYu cGFzc3dvcmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKyAgICAgICAgICAgIGFz c2VydCByZXNwb25zZS5zdGF0dXNfY29kZSA9PSAyMDAKKworICAgICAgICAg ICAgIyB0ZXN0IHRoZSAnY2hhbmdlIHBhc3N3b3JkJyB0ZXN0IGNhc2UKKyAg ICAgICAgICAgIGNoYW5nZV9wYXNzd29yZChzZWxmKQorCisgICAgICAgICAg ICAjIERlbGV0ZSB0aGUgbm9ybWFsIHVzZXIgYWZ0ZXIgY2hhbmdpbmcgaXQn cyBwYXNzd29yZAorICAgICAgICAgICAgdXRpbHMubG9nb3V0X3Rlc3Rlcl9h Y2NvdW50KHNlbGYudGVzdGVyKQorCisgICAgICAgICAgICAjIExvZ2luIHRo ZSBBZG1pbmlzdHJhdG9yIGJlZm9yZSBkZWxldGluZyBub3JtYWwgdXNlcgor ICAgICAgICAgICAgdXRpbHMubG9naW5fdGVzdGVyX2FjY291bnQoc2VsZi50 ZXN0ZXIpCisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmRl bGV0ZSgKKyAgICAgICAgICAgICAgICAnL3VzZXJfbWFuYWdlbWVudC91c2Vy LycgKyBzdHIodXNlcl9pZCksCisgICAgICAgICAgICAgICAgZm9sbG93X3Jl ZGlyZWN0cz1UcnVlKQorICAgICAgICAgICAgYXNzZXJ0IHJlc3BvbnNlLnN0 YXR1c19jb2RlID09IDIwMAorICAgICAgICBlbHNlOgorICAgICAgICAgICAg Y2hhbmdlX3Bhc3N3b3JkKHNlbGYpCisKKyAgICBAY2xhc3NtZXRob2QKKyAg ICBkZWYgdGVhckRvd25DbGFzcyhjbHMpOgorICAgICAgICB1dGlscy5sb2dp bl90ZXN0ZXJfYWNjb3VudChjbHMudGVzdGVyKQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2xvZ2luLnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2xvZ2luLnB5CmluZGV4IGIwZWEz NjEuLmY2YmM2YjUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv dGVzdHMvdGVzdF9sb2dpbi5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3Rlc3RzL3Rlc3RfbG9naW4ucHkKQEAgLTI0LDIwICsyNCwyMCBAQCBjbGFz cyBMb2dpblRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAg IyBUaGlzIHRlc3QgY2FzZSB2YWxpZGF0ZXMgdGhlIGludmFsaWQvaW5jb3Jy ZWN0IHBhc3N3b3JkCiAgICAgICAgICgnVGVzdENhc2UgZm9yIENoZWNraW5n IEludmFsaWRfUGFzc3dvcmQnLCBkaWN0KAogICAgICAgICAgICAgZW1haWw9 KGNvbmZpZ19kYXRhWydwZ0FkbWluNF9sb2dpbl9jcmVkZW50aWFscyddCi0g ICAgICAgICAgICAgICAgICAgWyd0ZXN0X2xvZ2luX3VzZXJuYW1lJ10pLAor ICAgICAgICAgICAgICAgICAgIFsnbG9naW5fdXNlcm5hbWUnXSksCiAgICAg ICAgICAgICBwYXNzd29yZD1zdHIodXVpZC51dWlkNCgpKVs0OjhdLAogICAg ICAgICAgICAgcmVzcGRhdGE9J0ludmFsaWQgcGFzc3dvcmQnKSksCiAKICAg ICAgICAgIyBUaGlzIHRlc3QgY2FzZSB2YWxpZGF0ZXMgdGhlIGVtcHR5IHBh c3N3b3JkIGZpZWxkCiAgICAgICAgICgnRW1wdHlfUGFzc3dvcmQnLCBkaWN0 KAogICAgICAgICAgICAgZW1haWw9KGNvbmZpZ19kYXRhWydwZ0FkbWluNF9s b2dpbl9jcmVkZW50aWFscyddCi0gICAgICAgICAgICAgICAgICAgWyd0ZXN0 X2xvZ2luX3VzZXJuYW1lJ10pLCBwYXNzd29yZD0nJywKKyAgICAgICAgICAg ICAgICAgICBbJ2xvZ2luX3VzZXJuYW1lJ10pLCBwYXNzd29yZD0nJywKICAg ICAgICAgICAgIHJlc3BkYXRhPSdQYXNzd29yZCBub3QgcHJvdmlkZWQnKSks CiAKICAgICAgICAgIyBUaGlzIHRlc3QgY2FzZSB2YWxpZGF0ZXMgYmxhbmsg ZW1haWwgZmllbGQKICAgICAgICAgKCdFbXB0eV9FbWFpbCcsIGRpY3QoCiAg ICAgICAgICAgICBlbWFpbD0nJywgcGFzc3dvcmQ9KGNvbmZpZ19kYXRhWydw Z0FkbWluNF9sb2dpbl9jcmVkZW50aWFscyddCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFsndGVzdF9sb2dpbl9wYXNzd29yZCddKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydsb2dpbl9wYXNzd29y ZCddKSwKICAgICAgICAgICAgIHJlc3BkYXRhPSdFbWFpbCBub3QgcHJvdmlk ZWQnKSksCiAKICAgICAgICAgIyBUaGlzIHRlc3QgY2FzZSB2YWxpZGF0ZXMg ZW1wdHkgZW1haWwgYW5kIHBhc3N3b3JkCkBAIC00OSw3ICs0OSw3IEBAIGNs YXNzIExvZ2luVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAg ICAoJ0ludmFsaWRfRW1haWwnLCBkaWN0KAogICAgICAgICAgICAgZW1haWw9 c3RyKHV1aWQudXVpZDQoKSlbMTo2XSArICdAeHl6LmNvbScsCiAgICAgICAg ICAgICBwYXNzd29yZD0oY29uZmlnX2RhdGFbJ3BnQWRtaW40X2xvZ2luX2Ny ZWRlbnRpYWxzJ10KLSAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfbG9n aW5fcGFzc3dvcmQnXSksCisgICAgICAgICAgICAgICAgICAgICAgWydsb2dp bl9wYXNzd29yZCddKSwKICAgICAgICAgICAgIHJlc3BkYXRhPSdTcGVjaWZp ZWQgdXNlciBkb2VzIG5vdCBleGlzdCcpKSwKIAogICAgICAgICAjIFRoaXMg dGVzdCBjYXNlIHZhbGlkYXRlcyBpbnZhbGlkIGVtYWlsIGFuZCBwYXNzd29y ZApAQCAtNjIsMjEgKzYyLDIyIEBAIGNsYXNzIExvZ2luVGVzdENhc2UoQmFz ZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAjIHRvIGxvZ2luIHBnQWRtaW4g NAogICAgICAgICAoJ1ZhbGlkX0NyZWRlbnRpYWxzJywgZGljdCgKICAgICAg ICAgICAgIGVtYWlsPShjb25maWdfZGF0YVsncGdBZG1pbjRfbG9naW5fY3Jl ZGVudGlhbHMnXQotICAgICAgICAgICAgICAgICAgIFsndGVzdF9sb2dpbl91 c2VybmFtZSddKSwKKyAgICAgICAgICAgICAgICAgICBbJ2xvZ2luX3VzZXJu YW1lJ10pLAogICAgICAgICAgICAgcGFzc3dvcmQ9KGNvbmZpZ19kYXRhWydw Z0FkbWluNF9sb2dpbl9jcmVkZW50aWFscyddCi0gICAgICAgICAgICAgICAg ICAgICAgWyd0ZXN0X2xvZ2luX3Bhc3N3b3JkJ10pLAorICAgICAgICAgICAg ICAgICAgICAgIFsnbG9naW5fcGFzc3dvcmQnXSksCiAgICAgICAgICAgICBy ZXNwZGF0YT0nR3JhdmF0YXIgaW1hZ2UgZm9yICVzJyAlCiAgICAgICAgICAg ICAgICAgICAgICBjb25maWdfZGF0YVsncGdBZG1pbjRfbG9naW5fY3JlZGVu dGlhbHMnXQotICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X2xvZ2luX3Vz ZXJuYW1lJ10pKQorICAgICAgICAgICAgICAgICAgICAgWydsb2dpbl91c2Vy bmFtZSddKSkKICAgICBdCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6CisgICAg QGNsYXNzbWV0aG9kCisgICAgZGVmIHNldFVwQ2xhc3MoY2xzKToKICAgICAg ICAgIiIiCiAgICAgICAgIFdlIG5lZWQgdG8gbG9nb3V0IHRoZSB0ZXN0IGNs aWVudCBhcyB3ZSBhcmUgdGVzdGluZyBzY2VuYXJpb3Mgb2YKICAgICAgICAg bG9nZ2luZyBpbiB0aGUgY2xpZW50IGxpa2UgaW52YWxpZCBwYXNzd29yZCwg aW52YWxpZCBlbWFpbHMsCiAgICAgICAgIGVtcHR5IGNyZWRlbnRpYWxzIGV0 Yy4KICAgICAgICAgIiIiCi0gICAgICAgIHV0aWxzLmxvZ291dF90ZXN0ZXJf YWNjb3VudChzZWxmLnRlc3RlcikKKyAgICAgICAgdXRpbHMubG9nb3V0X3Rl c3Rlcl9hY2NvdW50KGNscy50ZXN0ZXIpCiAKICAgICBkZWYgcnVuVGVzdChz ZWxmKToKICAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBjaGVja3MgbG9naW4g ZnVuY3Rpb25hbGl0eS4iIiIKQEAgLTg2LDkgKzg3LDEwIEBAIGNsYXNzIExv Z2luVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVl KQogICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYucmVzcGRhdGEsIHJlc3Bv bnNlLmRhdGEuZGVjb2RlKCd1dGY4JykpCiAKLSAgICBkZWYgdGVhckRvd24o c2VsZik6CisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHRlYXJEb3duQ2xh c3MoY2xzKToKICAgICAgICAgIiIiCiAgICAgICAgIFdlIG5lZWQgdG8gYWdh aW4gbG9naW4gdGhlIHRlc3QgY2xpZW50IGFzIHNvb24gYXMgdGVzdCBzY2Vu YXJpb3MKICAgICAgICAgZmluaXNoZXMuCiAgICAgICAgICIiIgotICAgICAg ICB1dGlscy5sb2dpbl90ZXN0ZXJfYWNjb3VudChzZWxmLnRlc3RlcikKKyAg ICAgICAgdXRpbHMubG9naW5fdGVzdGVyX2FjY291bnQoY2xzLnRlc3RlcikK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9s b2dvdXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfbG9n b3V0LnB5CmluZGV4IDcyOWY3YjEuLjU2OTdkZTYgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9sb2dvdXQucHkKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2xvZ291dC5weQpAQCAt MjQsNyArMjQsOCBAQCBjbGFzcyBMb2dvdXRUZXN0KEJhc2VUZXN0R2VuZXJh dG9yKToKICAgICAgICAgKCdMb2dnaW5nIE91dCcsIGRpY3QocmVzcGRhdGE9 J1JlZGlyZWN0aW5nLi4uJykpCiAgICAgXQogCi0gICAgZGVmIHNldFVwKHNl bGYpOgorICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBzZXRVcENsYXNzKGNs cyk6CiAgICAgICAgIHBhc3MKIAogICAgIGRlZiBydW5UZXN0KHNlbGYpOgpA QCAtMzMsOSArMzQsMTAgQEAgY2xhc3MgTG9nb3V0VGVzdChCYXNlVGVzdEdl bmVyYXRvcik6CiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0 KCcvbG9nb3V0JykKICAgICAgICAgc2VsZi5hc3NlcnRJbihzZWxmLnJlc3Bk YXRhLCByZXNwb25zZS5kYXRhLmRlY29kZSgndXRmOCcpKQogCi0gICAgZGVm IHRlYXJEb3duKHNlbGYpOgorICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiB0 ZWFyRG93bkNsYXNzKGNscyk6CiAgICAgICAgICIiIgogICAgICAgICBXZSBu ZWVkIHRvIGFnYWluIGxvZ2luIHRoZSB0ZXN0IGNsaWVudCBhcyBzb29uIGFz IHRlc3Qgc2NlbmFyaW9zCiAgICAgICAgIGZpbmlzaGVzLgogICAgICAgICAi IiIKLSAgICAgICAgdXRpbHMubG9naW5fdGVzdGVyX2FjY291bnQoc2VsZi50 ZXN0ZXIpCisgICAgICAgIHV0aWxzLmxvZ2luX3Rlc3Rlcl9hY2NvdW50KGNs cy50ZXN0ZXIpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Rl c3RzL3Rlc3RfcmVzZXRfcGFzc3dvcmQucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3Rlc3RzL3Rlc3RfcmVzZXRfcGFzc3dvcmQucHkKaW5kZXggOTQyMGM3 Mi4uMGRjZjBiZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90 ZXN0cy90ZXN0X3Jlc2V0X3Bhc3N3b3JkLnB5CisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvdGVzdHMvdGVzdF9yZXNldF9wYXNzd29yZC5weQpAQCAtMzQs MTEgKzM0LDEyIEBAIGNsYXNzIFJlc2V0UGFzc3dvcmRUZXN0Q2FzZShCYXNl VGVzdEdlbmVyYXRvcik6CiAgICAgICAgICMgVGhpcyB0ZXN0IGNhc2UgdmFs aWRhdGVzIHRoZSB2YWxpZCBlbWFpbCBpZAogICAgICAgICAoJ1Rlc3RDYXNl IGZvciBWYWxpZGF0aW5nIFZhbGlkX0VtYWlsJywgZGljdCgKICAgICAgICAg ICAgIGVtYWlsPWNvbmZpZ19kYXRhWydwZ0FkbWluNF9sb2dpbl9jcmVkZW50 aWFscyddCi0gICAgICAgICAgICBbJ3Rlc3RfbG9naW5fdXNlcm5hbWUnXSwg cmVzcGRhdGE9J3BnQWRtaW4gNCcpKQorICAgICAgICAgICAgWydsb2dpbl91 c2VybmFtZSddLCByZXNwZGF0YT0ncGdBZG1pbiA0JykpCiAgICAgXQogCi0g ICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBsb2dvdXRfdGVzdGVyX2Fj Y291bnQoc2VsZi50ZXN0ZXIpCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVm IHNldFVwQ2xhc3MoY2xzKToKKyAgICAgICAgbG9nb3V0X3Rlc3Rlcl9hY2Nv dW50KGNscy50ZXN0ZXIpCiAKICAgICBkZWYgcnVuVGVzdChzZWxmKToKICAg ICAgICAgIiIiVGhpcyBmdW5jdGlvbiBjaGVja3MgcmVzZXQgcGFzc3dvcmQg ZnVuY3Rpb25hbGl0eS4iIiIKQEAgLTUxLDUgKzUyLDYgQEAgY2xhc3MgUmVz ZXRQYXNzd29yZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAg ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKICAgICAgICAgc2VsZi5h c3NlcnRJbihzZWxmLnJlc3BkYXRhLCByZXNwb25zZS5kYXRhLmRlY29kZSgn dXRmLTgnKSkKIAotICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAg bG9naW5fdGVzdGVyX2FjY291bnQoc2VsZi50ZXN0ZXIpCisgICAgQGNsYXNz bWV0aG9kCisgICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKKyAgICAgICAg bG9naW5fdGVzdGVyX2FjY291bnQoY2xzLnRlc3RlcikKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdXRpbHMucHkgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3Rlc3RzL3V0aWxzLnB5Cm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjE4NTQ4Y2UKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3V0aWxzLnB5CkBAIC0wLDAg KzEsMjEgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMK KyMgI3BnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgI0NvcHly aWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50 IFRlYW0KKyMgI1RoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCisKK2RlZiBjaGFuZ2VfcGFzc3dvcmQoc2VsZik6Cisg ICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoJy9jaGFuZ2UnLCBmb2xs b3dfcmVkaXJlY3RzPVRydWUpCisgICAgc2VsZi5hc3NlcnRJbigncGdBZG1p biA0IFBhc3N3b3JkIENoYW5nZScsIHJlc3BvbnNlLmRhdGEuZGVjb2RlKAor ICAgICAgICAndXRmLTgnKSkKKworICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0 ZXIucG9zdCgnL2NoYW5nZScsIGRhdGE9ZGljdCgKKyAgICAgICAgcGFzc3dv cmQ9c2VsZi5wYXNzd29yZCwKKyAgICAgICAgbmV3X3Bhc3N3b3JkPXNlbGYu bmV3X3Bhc3N3b3JkLAorICAgICAgICBuZXdfcGFzc3dvcmRfY29uZmlybT1z ZWxmLm5ld19wYXNzd29yZF9jb25maXJtKSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorICAgIHNl bGYuYXNzZXJ0SW4oc2VsZi5yZXNwZGF0YSwgcmVzcG9uc2UuZGF0YS5kZWNv ZGUoJ3V0Zi04JykpClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vdXRpbHMvcm91dGUucHkgYi93ZWIvcGdh ZG1pbi91dGlscy9yb3V0ZS5weQppbmRleCBjN2VmMWY4Li4wMjI2ZThkIDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi91dGlscy9yb3V0ZS5weQorKysgYi93 ZWIvcGdhZG1pbi91dGlscy9yb3V0ZS5weQpAQCAtODQsNSArODQsNiBAQCBj bGFzcyBCYXNlVGVzdEdlbmVyYXRvcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAg ICAgICAgIHNlbGYuYXBwID0gYXBwCiAKICAgICAjIEluaXRpYWxpemluZyB0 ZXN0X2NsaWVudC4KLSAgICBkZWYgc2V0VGVzdENsaWVudChzZWxmLCB0ZXN0 X2NsaWVudCk6Ci0gICAgICAgIHNlbGYudGVzdGVyID0gdGVzdF9jbGllbnQK KyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgc2V0VGVzdENsaWVudChjbHMs IHRlc3RfY2xpZW50KToKKyAgICAgICAgY2xzLnRlc3RlciA9IHRlc3RfY2xp ZW50CmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi90ZXN0X2FkdmFuY2Vk X2NvbmZpZy5qc29uLmluIGIvd2ViL3JlZ3Jlc3Npb24vdGVzdF9hZHZhbmNl ZF9jb25maWcuanNvbi5pbgppbmRleCBjMGQyNzhiLi5mYzhkOThmIDEwMDY0 NAotLS0gYS93ZWIvcmVncmVzc2lvbi90ZXN0X2FkdmFuY2VkX2NvbmZpZy5q c29uLmluCisrKyBiL3dlYi9yZWdyZXNzaW9uL3Rlc3RfYWR2YW5jZWRfY29u ZmlnLmpzb24uaW4KQEAgLTEsNyArMSw3IEBACiB7Ci0gICJ0ZXN0X2FkZF9k YXRhYmFzZV9kYXRhIjogWworICAiYWRkX2RhdGFiYXNlX2RhdGEiOiBbCiAg ICB7Ci0gICAgInRlc3RfcHJpdmlsZWdlc19hY2wiOiBbCisgICAgInByaXZp bGVnZXNfYWNsIjogWwogICAgICAgewogICAgICAgICAiZ3JhbnRlZSI6ICJw b3N0Z3JlcyIsCiAgICAgICAgICJncmFudG9yIjogInBvc3RncmVzIiwKQEAg LTE5LDkgKzE5LDkgQEAKICAgICAgICAgXQogICAgICAgfQogICAgIF0sCi0g ICAgInRlc3RfY29ubl9saW1pdCI6IC0xLAotICAgICJ0ZXN0X293bmVyIjog InBvc3RncmVzIiwKLSAgICAidGVzdF9mdW5fYWNsIjogWworICAgICJjb25u X2xpbWl0IjogLTEsCisgICAgIm93bmVyIjogInBvc3RncmVzIiwKKyAgICAi ZnVuX2FjbCI6IFsKICAgICAgIHsKICAgICAgICAgImdyYW50ZWUiOiAicG9z dGdyZXMiLAogICAgICAgICAiZ3JhbnRvciI6ICJwb3N0Z3JlcyIsCkBAIC0z NCw3ICszNCw3IEBACiAgICAgICAgIF0KICAgICAgIH0KICAgICBdLAotICAg ICJ0ZXN0X3NlcV9hY2wiOiBbCisgICAgInNlcV9hY2wiOiBbCiAgICAgICB7 CiAgICAgICAgICJncmFudGVlIjogInBvc3RncmVzIiwKICAgICAgICAgImdy YW50b3IiOiAicG9zdGdyZXMiLApAQCAtNTcsNyArNTcsNyBAQAogICAgICAg ICBdCiAgICAgICB9CiAgICAgXSwKLSAgICAidGVzdF90YmxfYWNsIjogWwor ICAgICJ0YmxfYWNsIjogWwogICAgICAgewogICAgICAgICAiZ3JhbnRlZSI6 ICJwb3N0Z3JlcyIsCiAgICAgICAgICJncmFudG9yIjogInBvc3RncmVzIiwK QEAgLTc1LDcgKzc1LDcgQEAKICAgICAgICAgXQogICAgICAgfQogICAgIF0s Ci0gICAgInRlc3RfdHlwZV9hY2wiOiBbCisgICAgInR5cGVfYWNsIjogWwog ICAgICAgewogICAgICAgICAiZ3JhbnRlZSI6ICJwb3N0Z3JlcyIsCiAgICAg ICAgICJncmFudG9yIjogInBvc3RncmVzIiwKQEAgLTg4LDExMiArODgsNjAg QEAKICAgICAgICAgXQogICAgICAgfQogICAgIF0sCi0gICAgInRlc3RfZW5j b2RpbmciOiAiVVRGOCIsCi0gICAgInRlc3RfbmFtZSI6ICJ0ZXN0X2RiX2F1 dG9tYXRpb24iLAotICAgICJ0ZXN0X3ByaXZpbGVnZXMiOiBbXSwKLSAgICAi dGVzdF9zZWN1cml0aWVzIjogW10sCi0gICAgInRlc3RfdmFyaWFibGVzIjog W10KLSAgfSwKLSAgICAgICB7Ci0gICAgICAgICAidGVzdF9wcml2aWxlZ2Vz X2FjbCI6IFsKLSAgICAgICAgICAgewotICAgICAgICAgICAgICJncmFudGVl IjogImVudGVycHJpc2VkYiIsCi0gICAgICAgICAgICAgImdyYW50b3IiOiAi ZW50ZXJwcmlzZWRiIiwKLSAgICAgICAgICAgICAicHJpdmlsZWdlcyI6IFsK LSAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgInByaXZpbGVn ZV90eXBlIjogIkMiLAotICAgICAgICAgICAgICAgICAicHJpdmlsZWdlIjog dHJ1ZSwKLSAgICAgICAgICAgICAgICAgIndpdGhfZ3JhbnQiOiB0cnVlCi0g ICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgewotICAgICAgICAg ICAgICAgICAicHJpdmlsZWdlX3R5cGUiOiAiVCIsCi0gICAgICAgICAgICAg ICAgICJwcml2aWxlZ2UiOiB0cnVlLAotICAgICAgICAgICAgICAgICAid2l0 aF9ncmFudCI6IGZhbHNlCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAg ICAgXQotICAgICAgICAgICB9Ci0gICAgICAgICBdLAotICAgICAgICAgInRl c3RfY29ubl9saW1pdCI6IC0xLAotICAgICAgICAgInRlc3Rfb3duZXIiOiAi ZW50ZXJwcmlzZWRiIiwKLSAgICAgICAgICJ0ZXN0X2Z1bl9hY2wiOiBbCi0g ICAgICAgICAgIHsKLSAgICAgICAgICAgICAiZ3JhbnRlZSI6ICJlbnRlcnBy aXNlZGIiLAotICAgICAgICAgICAgICJncmFudG9yIjogImVudGVycHJpc2Vk YiIsCi0gICAgICAgICAgICAgInByaXZpbGVnZXMiOiBbCi0gICAgICAgICAg ICAgICB7Ci0gICAgICAgICAgICAgICAgICJwcml2aWxlZ2VfdHlwZSI6ICJY IiwKLSAgICAgICAgICAgICAgICAgInByaXZpbGVnZSI6IHRydWUsCi0gICAg ICAgICAgICAgICAgICJ3aXRoX2dyYW50IjogZmFsc2UKLSAgICAgICAgICAg ICAgIH0KLSAgICAgICAgICAgICBdCi0gICAgICAgICAgIH0KLSAgICAgICAg IF0sCi0gICAgICAgICAidGVzdF9zZXFfYWNsIjogWwotICAgICAgICAgICB7 Ci0gICAgICAgICAgICAgImdyYW50ZWUiOiAiZW50ZXJwcmlzZWRiIiwKLSAg ICAgICAgICAgICAiZ3JhbnRvciI6ICJlbnRlcnByaXNlZGIiLAotICAgICAg ICAgICAgICJwcml2aWxlZ2VzIjogWwotICAgICAgICAgICAgICAgewotICAg ICAgICAgICAgICAgICAicHJpdmlsZWdlX3R5cGUiOiAiciIsCi0gICAgICAg ICAgICAgICAgICJwcml2aWxlZ2UiOiB0cnVlLAotICAgICAgICAgICAgICAg ICAid2l0aF9ncmFudCI6IGZhbHNlCi0gICAgICAgICAgICAgICB9LAotICAg ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAicHJpdmlsZWdlX3R5 cGUiOiAidyIsCi0gICAgICAgICAgICAgICAgICJwcml2aWxlZ2UiOiB0cnVl LAotICAgICAgICAgICAgICAgICAid2l0aF9ncmFudCI6IGZhbHNlCi0gICAg ICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgewotICAgICAgICAgICAg ICAgICAicHJpdmlsZWdlX3R5cGUiOiAiVSIsCi0gICAgICAgICAgICAgICAg ICJwcml2aWxlZ2UiOiB0cnVlLAotICAgICAgICAgICAgICAgICAid2l0aF9n cmFudCI6IGZhbHNlCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg XQotICAgICAgICAgICB9Ci0gICAgICAgICBdLAotICAgICAgICAgInRlc3Rf dGJsX2FjbCI6IFsKLSAgICAgICAgICAgewotICAgICAgICAgICAgICJncmFu dGVlIjogImVudGVycHJpc2VkYiIsCi0gICAgICAgICAgICAgImdyYW50b3Ii OiAiZW50ZXJwcmlzZWRiIiwKLSAgICAgICAgICAgICAicHJpdmlsZWdlcyI6 IFsKLSAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgInByaXZp bGVnZV90eXBlIjogImEiLAotICAgICAgICAgICAgICAgICAicHJpdmlsZWdl IjogdHJ1ZSwKLSAgICAgICAgICAgICAgICAgIndpdGhfZ3JhbnQiOiB0cnVl Ci0gICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgewotICAgICAg ICAgICAgICAgICAicHJpdmlsZWdlX3R5cGUiOiAiciIsCi0gICAgICAgICAg ICAgICAgICJwcml2aWxlZ2UiOiB0cnVlLAotICAgICAgICAgICAgICAgICAi d2l0aF9ncmFudCI6IGZhbHNlCi0gICAgICAgICAgICAgICB9Ci0gICAgICAg ICAgICAgXQotICAgICAgICAgICB9Ci0gICAgICAgICBdLAotICAgICAgICAg InRlc3RfdHlwZV9hY2wiOiBbCi0gICAgICAgICAgIHsKLSAgICAgICAgICAg ICAiZ3JhbnRlZSI6ICJlbnRlcnByaXNlZGIiLAotICAgICAgICAgICAgICJn cmFudG9yIjogImVudGVycHJpc2VkYiIsCi0gICAgICAgICAgICAgInByaXZp bGVnZXMiOiBbCi0gICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg ICJwcml2aWxlZ2VfdHlwZSI6ICJVIiwKLSAgICAgICAgICAgICAgICAgInBy aXZpbGVnZSI6IHRydWUsCi0gICAgICAgICAgICAgICAgICJ3aXRoX2dyYW50 IjogZmFsc2UKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICBdCi0g ICAgICAgICAgIH0KLSAgICAgICAgIF0sCi0gICAgICAgICAidGVzdF9lbmNv ZGluZyI6ICJVVEY4IiwKLSAgICAgICAgICJ0ZXN0X25hbWUiOiAidGVzdF9k Yl9hdXRvbWF0aW9uIiwKLSAgICAgICAgICJ0ZXN0X3ByaXZpbGVnZXMiOiBb XSwKLSAgICAgICAgICJ0ZXN0X3NlY3VyaXRpZXMiOiBbXSwKLSAgICAgICAg ICJ0ZXN0X3ZhcmlhYmxlcyI6IFtdCi0gICAgICAgfQorICAgICJlbmNvZGlu ZyI6ICJVVEY4IiwKKyAgICAibmFtZSI6ICJ0ZXN0X2RiX2F1dG9tYXRpb24i LAorICAgICJwcml2aWxlZ2VzIjogW10sCisgICAgInNlY3VyaXRpZXMiOiBb XSwKKyAgICAidmFyaWFibGVzIjogW10KKyAgfQogIF0sCi0KLSAgInRlc3Rf ZGJfdXBkYXRlX2RhdGEiOiBbCisgICJkYl91cGRhdGVfZGF0YSI6IFsKICAg ewotICAgICAgInRlc3RfY29tbWVudCI6ICJUaGlzIGlzIGRiIHVwZGF0ZSBj b21tZW50IgorICAgICAgImNvbW1lbnQiOiAiVGhpcyBpcyBkYiB1cGRhdGUg Y29tbWVudCIKICAgfQotIF0KKyBdLAorCisgICJscl9jcmVkZW50aWFscyI6 IHsKKyAgICAgICJjYW5fbG9naW4iOiAidHJ1ZSIsCisgICAgICAiY29ubl9s aW1pdCI6IC0xLAorICAgICAgImNyZWF0ZV9yb2xlIjogInRydWUiLAorICAg ICAgInJvbGVfaW5oZXJpdCI6ICJ0cnVlIiwKKyAgICAgICJyb2xlX21lbWJl cnNoaXAiOiBbXSwKKyAgICAgICJscl9uYW1lIjogICJ0ZXN0bHJnMSIsCisg ICAgICAibHJfcGFzc3dvcmQiOiAiZWRiIiwKKyAgICAgICJscl92YWxpZGl0 eSI6ICIxMi8yNy8yMDE2IiwKKyAgICAgICJzZWNfbGFibGUiOiBbXSwKKyAg ICAgICJ2YXJpYWJsZSI6WworICAgICAgICAgICAgICAgICAgICAgICAgeyJu YW1lIjoid29ya19tZW0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAi ZGF0YWJhc2UiOiJwb3N0Z3JlcyIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICJ2YWx1ZSI6NjUKKyAgICAgICAgICAgICAgICAgICAgICAgIH1dCisg ICAgfSwKKyAgImxyX3VwZGF0ZV9kYXRhIjogeworICAgICAgImNvbW1lbnQi OiAiVGhpcyBpcyBkYiB1cGRhdGUgY29tbWVudCIKKyAgfSwKKworICAidGFi bGVzcGNfY3JlZGVudGlhbHMiOlt7CisgICAgInRibHNwYWNlX25hbWUiOiAi dGVzdF90YWJsZXNwYWNlIiwKKyAgICAic3BjX3NlY2xhYmxlIjogW10sCisg ICAgInNwY19hY2wiOiBbCisgICAgICB7CisgICAgICAgICJncmFudGVlIjoi cG9zdGdyZXMiLAorICAgICAgICAiZ3JhbnRvciI6InBvc3RncmVzIiwKKyAg ICAgICAgInByaXZpbGVnZXMiOlsKKyAgICAgICAgICB7CisgICAgICAgICAg ICAicHJpdmlsZWdlX3R5cGUiOiJDIiwKKyAgICAgICAgICAgICJwcml2aWxl Z2UiOnRydWUsCisgICAgICAgICAgICAid2l0aF9ncmFudCI6ZmFsc2UKKyAg ICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdLAorICAgICJz cGNfb3B0cyI6IFtdLAorICAgICJzcGNfdXNlciI6ICJwb3N0Z3JlcyIKKyAg fV0sCiAKKyAgICAidGJzcGNfdXBkYXRlX2RhdGEiOiB7CisgICAgImNvbW1l bnQiOiAiVGhpcyBpcyB0YWJsZXNwYWNlIHVwZGF0ZSBjb21tZW50IgorICB9 CiB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv d2ViL3JlZ3Jlc3Npb24vdGVzdF9jb25maWcuanNvbi5pbiBiL3dlYi9yZWdy ZXNzaW9uL3Rlc3RfY29uZmlnLmpzb24uaW4KaW5kZXggMDI4ZDFlNy4uMTMy OGI2YiAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vdGVzdF9jb25maWcu anNvbi5pbgorKysgYi93ZWIvcmVncmVzc2lvbi90ZXN0X2NvbmZpZy5qc29u LmluCkBAIC0xLDM1ICsxLDMxIEBACiB7CiAgICJwZ0FkbWluNF9sb2dpbl9j cmVkZW50aWFscyI6IHsKLSAgICAidGVzdF9uZXdfcGFzc3dvcmQiOiAiTkVX UEFTU1dPUkQiLAotICAgICJ0ZXN0X2xvZ2luX3Bhc3N3b3JkIjogIlBBU1NX T1JEIiwKLSAgICAidGVzdF9sb2dpbl91c2VybmFtZSI6ICJVU0VSQEVYQU1Q TEUuQ09NIgorICAgICJuZXdfcGFzc3dvcmQiOiAiTkVXUEFTU1dPUkQiLAor ICAgICJsb2dpbl9wYXNzd29yZCI6ICJQQVNTV09SRCIsCisgICAgImxvZ2lu X3VzZXJuYW1lIjogIlVTRVJARVhBTVBMRS5DT00iCiAgIH0sCi0gICJ0ZXN0 X3NlcnZlcl9ncm91cCI6IDEsCi0gICJ0ZXN0X3NlcnZlcl9jcmVkZW50aWFs cyI6IFsKKyAgInBnQWRtaW40X3Rlc3RfdXNlcl9jcmVkZW50aWFscyI6IHsK KyAgICAibmV3X3Bhc3N3b3JkIjogIk5FV1BBU1NXT1JEIiwKKyAgICAibG9n aW5fcGFzc3dvcmQiOiAiUEFTU1dPUkQiLAorICAgICJsb2dpbl91c2VybmFt ZSI6ICJVU0VSQEVYQU1QTEUuQ09NIgorICB9LAorICAic2VydmVyX2dyb3Vw IjogMSwKKyAgInNlcnZlcl9jcmVkZW50aWFscyI6IFsKICAgICB7Ci0gICAg ICAidGVzdF9uYW1lIjogIlBvc3RncmVTUUwgOS40IiwKLSAgICAgICJ0ZXN0 X2NvbW1lbnQiOiAiUG9zdGdyZVNRTCA5LjQgU2VydmVyIChFREIgSW5zdGFs bGVyKSIsCi0gICAgICAidGVzdF9kYl91c2VybmFtZSI6ICJwb3N0Z3JlcyIs Ci0gICAgICAidGVzdF9ob3N0IjogImxvY2FsaG9zdCIsCi0gICAgICAidGVz dF9kYl9wYXNzd29yZCI6ICJQQVNTV09SRCIsCi0gICAgICAidGVzdF9kYl9w b3J0IjogNTQzMiwKLSAgICAgICJ0ZXN0X21haW50ZW5hbmNlX2RiIjogInBv c3RncmVzIiwKLSAgICAgICJ0ZXN0X3NzbG1vZGUiOiAicHJlZmVyIgotICAg IH0sCi0gICAgIHsKLSAgICAgICAidGVzdF9uYW1lIjogIlBvc3RncmVzIFBs dXMgQWR2YW5jZWQgU2VydmVyIDkuNCIsCi0gICAgICAgInRlc3RfY29tbWVu dCI6ICJQb3N0Z3JlcyBQbHVzIEFkdmFuY2VkIDkuNCBTZXJ2ZXIgKEVEQiBJ bnN0YWxsZXIpIiwKLSAgICAgICAidGVzdF9kYl91c2VybmFtZSI6ICJlbnRl cnByaXNlZGIiLAotICAgICAgICJ0ZXN0X2hvc3QiOiAibG9jYWxob3N0IiwK LSAgICAgICAidGVzdF9kYl9wYXNzd29yZCI6ICJlZGIiLAotICAgICAgICJ0 ZXN0X2RiX3BvcnQiOiA1NDQ0LAotICAgICAgICJ0ZXN0X21haW50ZW5hbmNl X2RiIjogImVkYiIsCi0gICAgICAgInRlc3Rfc3NsbW9kZSI6ICJwcmVmZXIi Ci0gICAgIH0KKyAgICAgICJuYW1lIjogIlBvc3RncmVTUUwgOS40IiwKKyAg ICAgICJjb21tZW50IjogIlBvc3RncmVTUUwgOS40IFNlcnZlciAoRURCIElu c3RhbGxlcikiLAorICAgICAgImRiX3VzZXJuYW1lIjogInBvc3RncmVzIiwK KyAgICAgICJob3N0IjogImxvY2FsaG9zdCIsCisgICAgICAiZGJfcGFzc3dv cmQiOiAiUEFTU1dPUkQiLAorICAgICAgImRiX3BvcnQiOiA1NDMyLAorICAg ICAgIm1haW50ZW5hbmNlX2RiIjogInBvc3RncmVzIiwKKyAgICAgICJzc2xt b2RlIjogInByZWZlciIsCisgICAgICAidGFibGVzcGFjZV9wYXRoIjogIiIK KyAgICB9CiAgIF0sCi0gICJ0ZXN0X3NlcnZlcl91cGRhdGVfZGF0YSI6IFsK KyAgInNlcnZlcl91cGRhdGVfZGF0YSI6IFsKICAgICB7Ci0gICAgICAidGVz dF9jb21tZW50IjogIlRoaXMgaXMgdGVzdCB1cGRhdGUgY29tbWVudCIKKyAg ICAgICJjb21tZW50IjogIlRoaXMgaXMgdGVzdCB1cGRhdGUgY29tbWVudCIK ICAgICB9CiAgIF0KIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi90ZXN0X3NldHVwLnB5IGIvd2Vi L3JlZ3Jlc3Npb24vdGVzdF9zZXR1cC5weQppbmRleCBmNzc2NWJjLi5jODA1 YjFlIDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi90ZXN0X3NldHVwLnB5 CisrKyBiL3dlYi9yZWdyZXNzaW9uL3Rlc3Rfc2V0dXAucHkKQEAgLTEyLDEw ICsxMiwyNCBAQCBpbXBvcnQgb3MKIAogQ1VSUkVOVF9QQVRIID0gb3MucGF0 aC5kaXJuYW1lKG9zLnBhdGgucmVhbHBhdGgoX19maWxlX18pKQogCi13aXRo IG9wZW4oQ1VSUkVOVF9QQVRIICsgJy90ZXN0X2NvbmZpZy5qc29uJykgYXMg ZGF0YV9maWxlOgotICAgIGNvbmZpZ19kYXRhID0ganNvbi5sb2FkKGRhdGFf ZmlsZSkKKyMgd2l0aCBvcGVuKENVUlJFTlRfUEFUSCArICcvdGVzdF9jb25m aWcuanNvbicpIGFzIGRhdGFfZmlsZToKKyMgICAgIGNvbmZpZ19kYXRhID0g anNvbi5sb2FkKGRhdGFfZmlsZSkKKyMKKyMgd2l0aCBvcGVuKENVUlJFTlRf UEFUSCArICcvdGVzdF9hZHZhbmNlZF9jb25maWcuanNvbicpIGFzIGRhdGFf ZmlsZToKKyMgICAgIGFkdmFuY2VkX2NvbmZpZ19kYXRhID0ganNvbi5sb2Fk KGRhdGFfZmlsZSkKKwordHJ5OgorICAgIHdpdGggb3BlbihDVVJSRU5UX1BB VEggKyAnL3Rlc3RfY29uZmlnLmpzb24nKSBhcyBkYXRhX2ZpbGU6CisgICAg ICAgIGNvbmZpZ19kYXRhID0ganNvbi5sb2FkKGRhdGFfZmlsZSkKK2V4Y2Vw dDoKKyAgICB3aXRoIG9wZW4oQ1VSUkVOVF9QQVRIICsgJy90ZXN0X2NvbmZp Zy5qc29uLmluJykgYXMgZGF0YV9maWxlOgorICAgICAgICBjb25maWdfZGF0 YSA9IGpzb24ubG9hZChkYXRhX2ZpbGUpCiAKLXdpdGggb3BlbihDVVJSRU5U X1BBVEggKyAnL3Rlc3RfYWR2YW5jZWRfY29uZmlnLmpzb24nKSBhcyBkYXRh X2ZpbGU6Ci0gICAgYWR2YW5jZWRfY29uZmlnX2RhdGEgPSBqc29uLmxvYWQo ZGF0YV9maWxlKQordHJ5OgorICAgIHdpdGggb3BlbihDVVJSRU5UX1BBVEgg KyAnL3Rlc3RfYWR2YW5jZWRfY29uZmlnLmpzb24nKSBhcyBkYXRhX2ZpbGU6 CisgICAgICAgIGFkdmFuY2VkX2NvbmZpZ19kYXRhID0ganNvbi5sb2FkKGRh dGFfZmlsZSkKK2V4Y2VwdDoKKyAgICB3aXRoIG9wZW4oQ1VSUkVOVF9QQVRI ICsgJy90ZXN0X2FkdmFuY2VkX2NvbmZpZy5qc29uLmluJykgYXMgZGF0YV9m aWxlOgorICAgICAgICBhZHZhbmNlZF9jb25maWdfZGF0YSA9IGpzb24ubG9h ZChkYXRhX2ZpbGUpCiAKIHBpY2tsZV9wYXRoID0gb3MucGF0aC5qb2luKENV UlJFTlRfUEFUSCwgJ3BhcmVudF9pZC5wa2wnKQpkaWZmIC0tZ2l0IGEvd2Vi L3JlZ3Jlc3Npb24vdGVzdF91dGlscy5weSBiL3dlYi9yZWdyZXNzaW9uL3Rl c3RfdXRpbHMucHkKaW5kZXggNmJlMmJiMi4uMTZjMmQ0NiAxMDA2NDQKLS0t IGEvd2ViL3JlZ3Jlc3Npb24vdGVzdF91dGlscy5weQorKysgYi93ZWIvcmVn cmVzc2lvbi90ZXN0X3V0aWxzLnB5CkBAIC05LDE2ICs5LDI0IEBACiAKIGlt cG9ydCBvcwogaW1wb3J0IHBpY2tsZQotaW1wb3J0IGpzb24KLWltcG9ydCB1 dWlkCiAKLWZyb20gdGVzdF9zZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEsIGFk dmFuY2VkX2NvbmZpZ19kYXRhLCBcCi0gICAgcGlja2xlX3BhdGgKK2Zyb20g dGVzdF9zZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEsIHBpY2tsZV9wYXRoCiAK LVNFUlZFUl9VUkwgPSAnL2Jyb3dzZXIvc2VydmVyL29iai8nCi1TRVJWRVJf Q09OTkVDVF9VUkwgPSAnYnJvd3Nlci9zZXJ2ZXIvY29ubmVjdC8nCi1EQVRB QkFTRV9VUkwgPSAnL2Jyb3dzZXIvZGF0YWJhc2Uvb2JqLycKLURBVEFCQVNF X0NPTk5FQ1RfVVJMID0gJ2Jyb3dzZXIvZGF0YWJhc2UvY29ubmVjdC8nCisK K1NFUlZFUl9HUk9VUCA9IGNvbmZpZ19kYXRhWydzZXJ2ZXJfZ3JvdXAnXQor CisKK2RlZiBnZXRfcGlja2xlX2lkX2RpY3QoKToKKyAgICAiIiJUaGlzIGZ1 bmN0aW9uIHJldHVybnMgdGhlIGVtcHR5IGRpY3Qgb2Ygc2VydmVyIGNvbmZp ZyBkYXRhIiIiCisKKyAgICBwaWNrbGVfaWRfZGljdCA9IHsKKyAgICAgICAg InNpZCI6IFtdLCAgIyBzZXJ2ZXIKKyAgICAgICAgImRpZCI6IFtdLCAgIyBk YXRhYmFzZQorICAgICAgICAibHJpZCI6IFtdLCAgIyByb2xlCisgICAgICAg ICJ0c2lkIjogW10sICAjIHRhYmxlc3BhY2UKKyAgICAgICAgInNjaWQiOiBb XSAgIyBzY2hlbWEKKyAgICB9CisgICAgcmV0dXJuIHBpY2tsZV9pZF9kaWN0 CiAKIAogZGVmIGdldF9pZHModXJsPXBpY2tsZV9wYXRoKToKQEAgLTM0LDQz ICs0Miw5IEBAIGRlZiBnZXRfaWRzKHVybD1waWNrbGVfcGF0aCk6CiAgICAg b3V0cHV0ID0gb3Blbih1cmwsICdyYicpCiAgICAgaWRzID0gcGlja2xlLmxv YWQob3V0cHV0KQogICAgIG91dHB1dC5jbG9zZSgpCi0KICAgICByZXR1cm4g aWRzCiAKIAotZGVmIHZlcmlmeV9kYXRhYmFzZSh0ZXN0ZXIsIHNlcnZlcl9n cm91cCwgc2VydmVyX2lkLCBkYl9pZCk6Ci0gICAgIiIiCi0gICAgVGhpcyBm dW5jdGlvbiB2ZXJpZmllcyB0aGF0IGRhdGFiYXNlIGlzIGV4aXN0cyBhbmQg d2hldGhlciBpdCBjb25uZWN0Ci0gICAgc3VjY2Vzc2Z1bGx5IG9yIG5vdAot Ci0gICAgOnBhcmFtIHRlc3RlcjogdGVzdCBjbGllbnQKLSAgICA6dHlwZSB0 ZXN0ZXI6IGZsYXNrIHRlc3QgY2xpZW50IG9iamVjdAotICAgIDpwYXJhbSBz ZXJ2ZXJfZ3JvdXA6IHNlcnZlciBncm91cCBpZAotICAgIDp0eXBlIHNlcnZl cl9ncm91cDogaW50Ci0gICAgOnBhcmFtIHNlcnZlcl9pZDogc2VydmVyIGlk Ci0gICAgOnR5cGUgc2VydmVyX2lkOiBzdHIKLSAgICA6cGFyYW0gZGJfaWQ6 IGRhdGFiYXNlIGlkCi0gICAgOnR5cGUgZGJfaWQ6IHN0cgotICAgIDpyZXR1 cm46IHRlbXBfZGJfY29uCi0gICAgOnJ0eXBlOiBsaXN0Ci0gICAgIiIiCi0K LSAgICAjIENvbm5lY3QgdG8gc2VydmVyCi0gICAgcmVzcG9uc2UgPSB0ZXN0 ZXIucG9zdCgnezB9ezF9L3syfScuZm9ybWF0KAotICAgICAgICBTRVJWRVJf Q09OTkVDVF9VUkwsIHNlcnZlcl9ncm91cCwgc2VydmVyX2lkKSwgZGF0YT1k aWN0KAotICAgICAgICBwYXNzd29yZD1jb25maWdfZGF0YVsndGVzdF9zZXJ2 ZXJfY3JlZGVudGlhbHMnXVswXVsKLSAgICAgICAgICAgICd0ZXN0X2RiX3Bh c3N3b3JkJ10pLAotICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0K LSAgICAjIENvbm5lY3QgdG8gZGF0YWJhc2UKLSAgICBjb25fcmVzcG9uc2Ug PSB0ZXN0ZXIucG9zdCgnezB9ezF9L3syfS97M30nLmZvcm1hdCgKLSAgICAg ICAgREFUQUJBU0VfQ09OTkVDVF9VUkwsIHNlcnZlcl9ncm91cCwgc2VydmVy X2lkLCBkYl9pZCksCi0gICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkK LSAgICB0ZW1wX2RiX2NvbiA9IGpzb24ubG9hZHMoY29uX3Jlc3BvbnNlLmRh dGEuZGVjb2RlKCd1dGYtOCcpKQotCi0gICAgcmV0dXJuIHRlbXBfZGJfY29u Ci0KLQogZGVmIHRlc3RfZ2V0bm9kZXModGVzdGVyPU5vbmUpOgogICAgICMg Q29ubmVjdCB0byBzZXJ2ZXIgYW5kIGRhdGFiYXNlLgogCkBAIC04MSw1MyAr NTUsMTQgQEAgZGVmIHRlc3RfZ2V0bm9kZXModGVzdGVyPU5vbmUpOgogCiAg ICAgc2VydmVyX2lkcyA9IGFsbF9pZFsic2lkIl0KICAgICBkYl9pZHNfZGlj dCA9IGFsbF9pZFsiZGlkIl1bMF0KLSAgICBzcnZfZ3JwID0gY29uZmlnX2Rh dGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KIAogICAgIGRiX2NvbiA9IFtdCiAg ICAgZm9yIHNlcnZlcl9pZCBpbiBzZXJ2ZXJfaWRzOgogICAgICAgICBkYl9p ZCA9IGRiX2lkc19kaWN0W2ludChzZXJ2ZXJfaWQpXQotICAgICAgICBkYl9j b24uYXBwZW5kKHZlcmlmeV9kYXRhYmFzZSh0ZXN0ZXIsIHNydl9ncnAsIHNl cnZlcl9pZCwgZGJfaWQpKQorICAgICAgICBkYl9jb24uYXBwZW5kKHZlcmlm eV9kYXRhYmFzZSh0ZXN0ZXIsIFNFUlZFUl9HUk9VUCwgc2VydmVyX2lkLCBk Yl9pZCkpCiAgICAgcmV0dXJuIGRiX2NvbgogCiAKLWRlZiBnZXRfZGJfZGF0 YShzZXJ2ZXJfY29ubmVjdF9kYXRhKToKLSAgICAiIiIKLSAgICBUaGlzIGZ1 bmN0aW9uIGlzIHVzZWQgdG8gZ2V0IGFkdmFuY2UgY29uZmlnIHRlc3QgZGF0 YSBmb3IgYXBwcm9wcmlhdGUKLSAgICBzZXJ2ZXIKLQotICAgIDpwYXJhbSBz ZXJ2ZXJfY29ubmVjdF9kYXRhOiBsaXN0IG9mIHNlcnZlciBkZXRhaWxzCi0g ICAgOnJldHVybiBkYXRhOiBkYXRhYmFzZSBkZXRhaWxzCi0gICAgOnJ0eXBl OiBkaWN0Ci0gICAgIiIiCi0KLSAgICBhZHZfY29uZmlnX2RhdGEgPSBOb25l Ci0gICAgZGF0YSA9IE5vbmUKLSAgICBkYl91c2VyID0gc2VydmVyX2Nvbm5l Y3RfZGF0YVsnZGF0YSddWyd1c2VyJ11bJ25hbWUnXQotCi0gICAgIyBHZXQg dGhlIGNvbmZpZyBkYXRhIG9mIGFwcHJvcHJpYXRlIGRiIHVzZXIKLSAgICBm b3IgY29uZmlnX3Rlc3RfZGF0YSBpbiBhZHZhbmNlZF9jb25maWdfZGF0YVsn dGVzdF9hZGRfZGF0YWJhc2VfZGF0YSddOgotICAgICAgICBpZiBkYl91c2Vy ID09IGNvbmZpZ190ZXN0X2RhdGFbJ3Rlc3Rfb3duZXInXToKLSAgICAgICAg ICAgIGFkdl9jb25maWdfZGF0YSA9IGNvbmZpZ190ZXN0X2RhdGEKLQotICAg IGlmIGFkdl9jb25maWdfZGF0YSBpcyBub3QgTm9uZToKLSAgICAgICAgZGF0 YSA9IHsKLSAgICAgICAgICAgICJkYXRhY2wiOiBhZHZfY29uZmlnX2RhdGFb J3Rlc3RfcHJpdmlsZWdlc19hY2wnXSwKLSAgICAgICAgICAgICJkYXRjb25u bGltaXQiOiBhZHZfY29uZmlnX2RhdGFbJ3Rlc3RfY29ubl9saW1pdCddLAot ICAgICAgICAgICAgImRhdG93bmVyIjogYWR2X2NvbmZpZ19kYXRhWyd0ZXN0 X293bmVyJ10sCi0gICAgICAgICAgICAiZGVmZnVuY2FjbCI6IGFkdl9jb25m aWdfZGF0YVsndGVzdF9mdW5fYWNsJ10sCi0gICAgICAgICAgICAiZGVmc2Vx YWNsIjogYWR2X2NvbmZpZ19kYXRhWyd0ZXN0X3NlcV9hY2wnXSwKLSAgICAg ICAgICAgICJkZWZ0YmxhY2wiOiBhZHZfY29uZmlnX2RhdGFbJ3Rlc3RfdGJs X2FjbCddLAotICAgICAgICAgICAgImRlZnR5cGVhY2wiOiBhZHZfY29uZmln X2RhdGFbJ3Rlc3RfdHlwZV9hY2wnXSwKLSAgICAgICAgICAgICJlbmNvZGlu ZyI6IGFkdl9jb25maWdfZGF0YVsndGVzdF9lbmNvZGluZyddLAotICAgICAg ICAgICAgIm5hbWUiOiBzdHIodXVpZC51dWlkNCgpKVsxOjhdLAotICAgICAg ICAgICAgInByaXZpbGVnZXMiOiBhZHZfY29uZmlnX2RhdGFbJ3Rlc3RfcHJp dmlsZWdlcyddLAotICAgICAgICAgICAgInNlY3VyaXRpZXMiOiBhZHZfY29u ZmlnX2RhdGFbJ3Rlc3Rfc2VjdXJpdGllcyddLAotICAgICAgICAgICAgInZh cmlhYmxlcyI6IGFkdl9jb25maWdfZGF0YVsndGVzdF92YXJpYWJsZXMnXQot ICAgICAgICB9Ci0KLSAgICByZXR1cm4gZGF0YQotCi0KIGRlZiBsb2dpbl90 ZXN0ZXJfYWNjb3VudCh0ZXN0ZXIpOgogICAgICIiIgogICAgIFRoaXMgZnVu Y3Rpb24gbG9naW4gdGhlIHRlc3QgYWNjb3VudCB1c2luZyBjcmVkZW50aWFs cyBtZW50aW9uZWQgaW4KQEAgLTEzOSw5ICs3NCw5IEBAIGRlZiBsb2dpbl90 ZXN0ZXJfYWNjb3VudCh0ZXN0ZXIpOgogICAgICIiIgogCiAgICAgZW1haWwg PSBcCi0gICAgICAgIGNvbmZpZ19kYXRhWydwZ0FkbWluNF9sb2dpbl9jcmVk ZW50aWFscyddWyd0ZXN0X2xvZ2luX3VzZXJuYW1lJ10KKyAgICAgICAgY29u ZmlnX2RhdGFbJ3BnQWRtaW40X2xvZ2luX2NyZWRlbnRpYWxzJ11bJ2xvZ2lu X3VzZXJuYW1lJ10KICAgICBwYXNzd29yZCA9IFwKLSAgICAgICAgY29uZmln X2RhdGFbJ3BnQWRtaW40X2xvZ2luX2NyZWRlbnRpYWxzJ11bJ3Rlc3RfbG9n aW5fcGFzc3dvcmQnXQorICAgICAgICBjb25maWdfZGF0YVsncGdBZG1pbjRf bG9naW5fY3JlZGVudGlhbHMnXVsnbG9naW5fcGFzc3dvcmQnXQogICAgIHJl c3BvbnNlID0gdGVzdGVyLnBvc3QoJy9sb2dpbicsIGRhdGE9ZGljdCgKICAg ICAgICAgZW1haWw9ZW1haWwsIHBhc3N3b3JkPXBhc3N3b3JkKSwgZm9sbG93 X3JlZGlyZWN0cz1UcnVlKQogCkBAIC0xNTgsNiArOTMsNyBAQCBkZWYgbG9n b3V0X3Rlc3Rlcl9hY2NvdW50KHRlc3Rlcik6CiAgICAgcmVzcG9uc2UgPSB0 ZXN0ZXIuZ2V0KCcvbG9nb3V0JykKIAogCisjIENvbmZpZyBkYXRhIGZvciBw YXJlbnRfaWQucGtsCiBkZWYgZ2V0X2NvbmZpZ19kYXRhKCk6CiAgICAgIiIi CiAgICAgVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRhdGEgcmVsYXRlZCB0byBz ZXJ2ZXIgZ3JvdXAgYW5kIGRhdGFiYXNlCkBAIC0xNjgsMjMgKzEwNCwxOCBA QCBkZWYgZ2V0X2NvbmZpZ19kYXRhKCk6CiAgICAgIiIiCiAKICAgICBkYl9k YXRhID0gW10KKyAgICBwaWNrbGVfaWRfZGljdCA9IGdldF9waWNrbGVfaWRf ZGljdCgpCisgICAgc2VydmVyX2dyb3VwID0gY29uZmlnX2RhdGFbJ3NlcnZl cl9ncm91cCddCiAKLSAgICBwaWNrbGVfaWRfZGljdCA9IHsKLSAgICAgICAg InNpZCI6IFtdLCAgIyBzZXJ2ZXIKLSAgICAgICAgImRpZCI6IFtdICAjIGRh dGFiYXNlCi0gICAgfQotCi0gICAgc2VydmVyX2dyb3VwID0gY29uZmlnX2Rh dGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KLQotICAgIGZvciBzcnYgaW4gY29u ZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2NyZWRlbnRpYWxzJ106Ci0gICAgICAg IGRhdGEgPSB7Im5hbWUiOiBzcnZbJ3Rlc3RfbmFtZSddLAorICAgIGZvciBz cnYgaW4gY29uZmlnX2RhdGFbJ3NlcnZlcl9jcmVkZW50aWFscyddOgorICAg ICAgICBkYXRhID0geyJuYW1lIjogc3J2WyduYW1lJ10sCiAgICAgICAgICAg ICAgICAgImNvbW1lbnQiOiAiIiwKLSAgICAgICAgICAgICAgICAiaG9zdCI6 IHNydlsndGVzdF9ob3N0J10sCi0gICAgICAgICAgICAgICAgInBvcnQiOiBz cnZbJ3Rlc3RfZGJfcG9ydCddLAotICAgICAgICAgICAgICAgICJkYiI6IHNy dlsndGVzdF9tYWludGVuYW5jZV9kYiddLAotICAgICAgICAgICAgICAgICJ1 c2VybmFtZSI6IHNydlsndGVzdF9kYl91c2VybmFtZSddLAorICAgICAgICAg ICAgICAgICJob3N0Ijogc3J2Wydob3N0J10sCisgICAgICAgICAgICAgICAg InBvcnQiOiBzcnZbJ2RiX3BvcnQnXSwKKyAgICAgICAgICAgICAgICAiZGIi OiBzcnZbJ21haW50ZW5hbmNlX2RiJ10sCisgICAgICAgICAgICAgICAgInVz ZXJuYW1lIjogc3J2WydkYl91c2VybmFtZSddLAogICAgICAgICAgICAgICAg ICJyb2xlIjogIiIsCi0gICAgICAgICAgICAgICAgInNzbG1vZGUiOiBzcnZb J3Rlc3Rfc3NsbW9kZSddfQorICAgICAgICAgICAgICAgICJzc2xtb2RlIjog c3J2Wydzc2xtb2RlJ119CiAgICAgICAgIGRiX2RhdGEuYXBwZW5kKGRhdGEp CiAgICAgcmV0dXJuIHNlcnZlcl9ncm91cCwgZGJfZGF0YSwgcGlja2xlX2lk X2RpY3QKIApAQCAtMjA1LDQwICsxMzYsMTIgQEAgZGVmIHdyaXRlX3BhcmVu dF9pZChyZXNwb25zZV9kYXRhLCBwaWNrbGVfaWRfZGljdCk6CiAgICAgICAg IGV4aXN0ZWRfc2VydmVyX2lkID0gb3BlbihwaWNrbGVfcGF0aCwgJ3JiJykK ICAgICAgICAgcGlja2xlX2lkX2RpY3QgPSBwaWNrbGUubG9hZChleGlzdGVk X3NlcnZlcl9pZCkKIAotICAgIHBpY2tsZV9pZF9kaWN0WyJzaWQiXS5hcHBl bmQoc2VydmVyX2lkKQorICAgIHBpY2tsZV9pZF9kaWN0WyJzaWQiXS5hcHBl bmQoc3RyKHNlcnZlcl9pZCkpCiAgICAgb3V0cHV0ID0gb3BlbihwaWNrbGVf cGF0aCwgJ3diJykKICAgICBwaWNrbGUuZHVtcChwaWNrbGVfaWRfZGljdCwg b3V0cHV0KQogICAgIG91dHB1dC5jbG9zZSgpCiAKIAotZGVmIHdyaXRlX2Ri X3BhcmVudF9pZChyZXNwb25zZV9kYXRhKToKLSAgICAiIiIKLSAgICBUaGlz IGZ1bmN0aW9uIHdyaXRlcyB0aGUgc2VydmVyIGFuZCBkYXRhYmFzZSByZWxh dGVkIGRhdGEgbGlrZSBzZXJ2ZXIKLSAgICBuYW1lLCBzZXJ2ZXIgaWQgLCBk YXRhYmFzZSBuYW1lLCBkYXRhYmFzZSBpZCBldGMuCi0KLSAgICA6cGFyYW0g cmVzcG9uc2VfZGF0YTogc2VydmVyIGFuZCBkYXRhYmFzZXMgZGV0YWlscwot ICAgIDp0eXBlIHJlc3BvbnNlX2RhdGE6IGRpY3QKLSAgICA6cmV0dXJuOiBO b25lCi0gICAgIiIiCi0KLSAgICBkYl9pZCA9IHJlc3BvbnNlX2RhdGFbJ25v ZGUnXVsnX2lkJ10KLSAgICBzZXJ2ZXJfaWQgPSByZXNwb25zZV9kYXRhWydu b2RlJ11bJ19waWQnXQotICAgIGlmIG9zLnBhdGguaXNmaWxlKHBpY2tsZV9w YXRoKToKLSAgICAgICAgZXhpc3Rpbmdfc2VydmVyX2lkID0gb3BlbihwaWNr bGVfcGF0aCwgJ3JiJykKLSAgICAgICAgdG9sX3NlcnZlcl9pZCA9IHBpY2ts ZS5sb2FkKGV4aXN0aW5nX3NlcnZlcl9pZCkKLSAgICAgICAgcGlja2xlX2lk X2RpY3QgPSB0b2xfc2VydmVyX2lkCi0gICAgICAgIGlmICdkaWQnIGluIHBp Y2tsZV9pZF9kaWN0OgotICAgICAgICAgICAgaWYgcGlja2xlX2lkX2RpY3Rb J2RpZCddOgotICAgICAgICAgICAgICAgICMgQWRkIHRoZSBkYl9pZCBhcyB2 YWx1ZSBpbiBkaWN0Ci0gICAgICAgICAgICAgICAgcGlja2xlX2lkX2RpY3Rb ImRpZCJdWzBdLnVwZGF0ZSh7c2VydmVyX2lkOiBkYl9pZH0pCi0gICAgICAg ICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMgQ3JlYXRlIG5ldyBkaWN0 IHdpdGggc2VydmVyX2lkIGFuZCBkYl9pZAotICAgICAgICAgICAgICAgIHBp Y2tsZV9pZF9kaWN0WyJkaWQiXS5hcHBlbmQoe3NlcnZlcl9pZDogZGJfaWR9 KQotICAgICAgICBkYl9vdXRwdXQgPSBvcGVuKHBpY2tsZV9wYXRoLCAnd2In KQotICAgICAgICBwaWNrbGUuZHVtcChwaWNrbGVfaWRfZGljdCwgZGJfb3V0 cHV0KQotICAgICAgICBkYl9vdXRwdXQuY2xvc2UoKQotCi0KIGRlZiBkZWxl dGVfcGFyZW50X2lkX2ZpbGUoKToKICAgICAiIiIKICAgICBUaGlzIGZ1bmN0 aW9uIGRlbGV0ZXMgdGhlIGZpbGUgcGFyZW50X2lkLnBrbCB3aGljaCBjb250 YWlucyBzZXJ2ZXIgYW5kCkBAIC0yNTAsMTQ4ICsxNTMsMyBAQCBkZWYgZGVs ZXRlX3BhcmVudF9pZF9maWxlKCk6CiAgICAgaWYgb3MucGF0aC5pc2ZpbGUo cGlja2xlX3BhdGgpOgogICAgICAgICBvcy5yZW1vdmUocGlja2xlX3BhdGgp CiAKLQotZGVmIGFkZF9zZXJ2ZXIodGVzdGVyKToKLSAgICAiIiIKLSAgICBU aGlzIGZ1bmN0aW9uIGFkZCB0aGUgc2VydmVyIGluIHRoZSBleGlzdGluZyBz ZXJ2ZXIgZ3JvdXAKLQotICAgIDpwYXJhbSB0ZXN0ZXI6IHRlc3Qgb2JqZWN0 Ci0gICAgOnR5cGUgdGVzdGVyOiBmbGFzayB0ZXN0IG9iamVjdAotICAgIDpy ZXR1cm46Tm9uZQotICAgICIiIgotCi0gICAgc2VydmVyX2dyb3VwLCBkYl9k YXRhLCBwaWNrbGVfaWRfZGljdCA9IGdldF9jb25maWdfZGF0YSgpCi0gICAg dXJsID0gInswfXsxfS8iLmZvcm1hdChTRVJWRVJfVVJMLCBzZXJ2ZXJfZ3Jv dXApCi0gICAgZm9yIGRiX2RldGFpbCBpbiBkYl9kYXRhOgotICAgICAgICBy ZXNwb25zZSA9IHRlc3Rlci5wb3N0KHVybCwgZGF0YT1qc29uLmR1bXBzKGRi X2RldGFpbCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u dGVudF90eXBlPSdodG1sL2pzb24nKQotICAgICAgICByZXNwb25zZV9kYXRh ID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgpKQotICAgICAg ICB3cml0ZV9wYXJlbnRfaWQocmVzcG9uc2VfZGF0YSwgcGlja2xlX2lkX2Rp Y3QpCi0KLQotZGVmIGdldF9zZXJ2ZXIodGVzdGVyKToKLSAgICAiIiIKLSAg ICBUaGlzIGZ1bmN0aW9uIGdldHMgdGhlIGFkZGVkIHNlcmVyIGRldGFpbHMK LQotICAgIDpwYXJhbSB0ZXN0ZXI6IHRlc3QgY2xpZW50IG9iamVjdAotICAg IDp0eXBlIHRlc3RlcjogZmxhc2sgdGVzdCBvYmplY3QKLSAgICA6cmV0dXJu OiByZXNwb25zZV9kYXRhCi0gICAgOnJ0eXBlOiBsaXN0Ci0gICAgIiIiCi0K LSAgICBhbGxfaWQgPSBnZXRfaWRzKCkKLSAgICBzZXJ2ZXJfaWRzID0gYWxs X2lkWyJzaWQiXQotICAgIHNlcnZlcl9ncm91cCA9IGNvbmZpZ19kYXRhWyd0 ZXN0X3NlcnZlcl9ncm91cCddCi0gICAgZm9yIHNlcnZlcl9pZCBpbiBzZXJ2 ZXJfaWRzOgotICAgICAgICByZXNwb25zZSA9IHRlc3Rlci5nZXQoU0VSVkVS X1VSTCArIHN0cihzZXJ2ZXJfZ3JvdXApICsgJy8nICsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQot ICAgICAgICByZXNwb25zZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5k YXRhLmRlY29kZSgpKQotCi0KLWRlZiBjb25uZWN0X3NlcnZlcih0ZXN0ZXIp OgotICAgICIiIgotICAgIFRoaXMgZnVuY3Rpb24gdXNlZCB0byBjb25uZWN0 IGFkZGVkIHNlcnZlcgotCi0gICAgOnBhcmFtIHRlc3Rlcjp0ZXN0IGNsaWVu dCBvYmplY3QKLSAgICA6dHlwZSB0ZXN0ZXI6IGZsYXNrIHRlc3Qgb2JqZWN0 Ci0gICAgOnJldHVybjogc2VydmVyX2Nvbm5lY3QsIHNlcnZlcl9ncm91cCwg c2VydmVyX2lkCi0gICAgOnJ0eXBlOiBzZXJ2ZXJfY29ubmVjdDpkaWN0LCBz ZXJ2ZXJfZ3JvdXA6ZGljdCwgc2VydmVyX2lkOnN0cgotICAgICIiIgotCi0g ICAgc2VydmVyX2Nvbm5lY3QgPSBbXQotICAgIHNlcnZlcnMgPSBbXQotCi0g ICAgc3J2X2lkID0gZ2V0X2lkcygpCi0gICAgc2VydmVyX2lkcyA9IHNydl9p ZFsic2lkIl0KLSAgICBzZXJ2ZXJfZ3JvdXAgPSBjb25maWdfZGF0YVsndGVz dF9zZXJ2ZXJfZ3JvdXAnXQotCi0gICAgIyBDb25uZWN0IHRvIGFsbCBzZXJ2 ZXJzCi0gICAgZm9yIHNlcnZlcl9pZCBpbiBzZXJ2ZXJfaWRzOgotICAgICAg ICByZXNwb25zZSA9IHRlc3Rlci5wb3N0KFNFUlZFUl9DT05ORUNUX1VSTCAr IHN0cihzZXJ2ZXJfZ3JvdXApICsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnLycgKyBzZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGF0YT1kaWN0KAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwYXNzd29yZD1jb25maWdfZGF0YQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3Rfc2VydmVyX2NyZWRl bnRpYWxzJ11bMF0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgWyd0ZXN0X2RiX3Bhc3N3b3JkJ10pLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAg c2VydmVyX2Nvbm5lY3RfZGV0YWlsID0ganNvbi5sb2FkcyhyZXNwb25zZS5k YXRhLmRlY29kZSgpKQotICAgICAgICBjb25uZWN0X2RhdGFiYXNlKHRlc3Rl ciwgc2VydmVyX2Nvbm5lY3RfZGV0YWlsLCBzZXJ2ZXJfaWQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgc2VydmVyX2dyb3VwKQotICAgICAgICBzZXJ2 ZXJfY29ubmVjdC5hcHBlbmQoc2VydmVyX2Nvbm5lY3RfZGV0YWlsKQotICAg ICAgICBzZXJ2ZXJzLmFwcGVuZChzZXJ2ZXJfaWQpCi0gICAgcmV0dXJuIHNl cnZlcl9jb25uZWN0LCBzZXJ2ZXJfZ3JvdXAsIHNlcnZlcnMKLQotCi1kZWYg Y29ubmVjdF9kYXRhYmFzZSh0ZXN0ZXIsIHNlcnZlcl9jb25uZWN0LCBzZXJ2 ZXJfaWQsIHNlcnZlcl9ncm91cCk6Ci0gICAgIiIiCi0gICAgVGhpcyBmdW5j dGlvbiBpcyB1c2VkIHRvIGNvbm5lY3QgZGF0YWJhc2UgYW5kIHdyaXRlcyBp dCdzIGRldGFpbHMgdG8KLSAgICBmaWxlICdwYXJlbnRfaWQucGtsJwotCi0g ICAgOnBhcmFtIHRlc3RlcjogdGVzdCBjbGllbnQgb2JqZWN0Ci0gICAgOnR5 cGUgdGVzdGVyOiBmbGFzayB0ZXN0IGNsaWVudCBvYmplY3QKLSAgICA6cGFy YW0gc2VydmVyX2Nvbm5lY3Q6IHNlcnZlcidzIGRhdGEKLSAgICA6dHlwZSBz ZXJ2ZXJfY29ubmVjdDogZGljdAotICAgIDpwYXJhbSBzZXJ2ZXJfaWQ6IHNl cnZlciBpZAotICAgIDp0eXBlIHNlcnZlcl9pZDogc3RyCi0gICAgOnBhcmFt IHNlcnZlcl9ncm91cDogc2VydmVyIGdyb3VwIG5hbWUKLSAgICA6dHlwZSBz ZXJ2ZXJfZ3JvdXA6IHN0cgotICAgIDpyZXR1cm46IE5vbmUKLSAgICAiIiIK LQotICAgIGlmIHNlcnZlcl9jb25uZWN0WydkYXRhJ11bJ2Nvbm5lY3RlZCdd OgotICAgICAgICBkYl9kYXRhID0gZ2V0X2RiX2RhdGEoc2VydmVyX2Nvbm5l Y3QpCi0gICAgICAgIGRiX3Jlc3BvbnNlID0gdGVzdGVyLnBvc3QoCi0gICAg ICAgICAgICBEQVRBQkFTRV9VUkwgKyBzdHIoc2VydmVyX2dyb3VwKSArICIv IiArIHNlcnZlcl9pZCArICIvIiwKLSAgICAgICAgICAgIGRhdGE9anNvbi5k dW1wcyhkYl9kYXRhKSwKLSAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRt bC9qc29uJykKLSAgICAgICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMo ZGJfcmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKLSAgICAgICAgd3JpdGVfZGJf cGFyZW50X2lkKHJlc3BvbnNlX2RhdGEpCi0KLQotZGVmIGRlbGV0ZV9zZXJ2 ZXIodGVzdGVyKToKLSAgICAiIiIKLSAgICBUaGlzIGZ1bmN0aW9uIHVzZWQg dG8gZGVsZXRlIHRoZSBhZGRlZCBzZXJ2ZXJzCi0KLSAgICA6cGFyYW0gdGVz dGVyOiB0ZXN0IGNsaWVudCBvYmplY3QKLSAgICA6cmV0dXJuOiBOb25lCi0g ICAgIiIiCi0KLSAgICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2Vy dmVyX2dyb3VwJ10KLSAgICBhbGxfaWQgPSBnZXRfaWRzKCkKLSAgICBzZXJ2 ZXJfaWRzID0gYWxsX2lkWyJzaWQiXQotICAgIHVybCA9IFNFUlZFUl9VUkwg KyBzdHIoc3J2X2dycCkgKyAiLyIKLQotICAgICMgQ2FsbCBhcGkgdG8gZGVs ZXRlIHRoZSBzZXJ2ZXJzCi0gICAgZm9yIHNlcnZlcl9pZCBpbiBzZXJ2ZXJf aWRzOgotICAgICAgICByZXNwb25zZSA9IHRlc3Rlci5kZWxldGUodXJsICsg c3RyKHNlcnZlcl9pZCkpCi0gICAgICAgIGFzc2VydCByZXNwb25zZS5zdGF0 dXNfY29kZSA9PSAyMDAKLSAgICAgICAgcmVzcG9uc2VfZGF0YSA9IGpzb24u bG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKLSAgICAgICAgYXNzZXJ0 IHJlc3BvbnNlX2RhdGFbJ3N1Y2Nlc3MnXSA9PSAxCi0KLQotZGVmIGRlbGV0 ZV9kYXRhYmFzZSh0ZXN0ZXIpOgotICAgICIiIgotICAgIFRoaXMgZnVuY3Rp b24gdXNlZCB0byBkZWxldGUgdGhlIGFkZGVkIGRhdGFiYXNlcwotCi0gICAg OnBhcmFtIHRlc3RlcjogdGVzdCBjbGllbnQgb2JqZWN0Ci0gICAgOnJldHVy bjogTm9uZQotICAgICIiIgotCi0gICAgc3J2X2dycCA9IGNvbmZpZ19kYXRh Wyd0ZXN0X3NlcnZlcl9ncm91cCddCi0gICAgYWxsX2lkID0gZ2V0X2lkcygp Ci0gICAgc2VydmVyX2lkcyA9IGFsbF9pZFsic2lkIl0KLSAgICBkYl9pZHNf ZGljdCA9IGFsbF9pZFsnZGlkJ11bMF0KLQotICAgIGRiX2NvbiA9IHRlc3Rf Z2V0bm9kZXModGVzdGVyKQotICAgIGlmIGxlbihkYl9jb24pID09IDA6Ci0g ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gZGF0YWJhc2UocykgdG8gZGVs ZXRlLiIpCi0KLSAgICBmb3Igc2VydmVyX2lkIGluIHNlcnZlcl9pZHM6Ci0g ICAgICAgIGRiX2lkID0gZGJfaWRzX2RpY3RbaW50KHNlcnZlcl9pZCldCi0g ICAgICAgIHJlc3BvbnNlID0gdGVzdGVyLmRlbGV0ZShEQVRBQkFTRV9VUkwg KyBzdHIoc3J2X2dycCkgKyAnLycgKwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQp LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3Jl ZGlyZWN0cz1UcnVlKQotICAgICAgICBhc3NlcnQgcmVzcG9uc2Uuc3RhdHVz X2NvZGUgPT0gMjAwCi0gICAgICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxv YWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQotICAgICAgICBh c3NlcnQgcmVzcG9uc2VfZGF0YVsnc3VjY2VzcyddID09IDEK --001a1134f2ec16971c05398ff021 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a1134f2ec16971c05398ff021--