Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1blyF7-0006kh-QZ for pgadmin-hackers@arkaria.postgresql.org; Mon, 19 Sep 2016 13:04:18 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1blyF7-0007RR-CB for pgadmin-hackers@arkaria.postgresql.org; Mon, 19 Sep 2016 13:04:17 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1blyEq-0007DH-Q1 for pgadmin-hackers@postgresql.org; Mon, 19 Sep 2016 13:04:01 +0000 Received: from mail-qt0-x236.google.com ([2607:f8b0:400d:c0d::236]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1blyEk-0004jd-Rl for pgadmin-hackers@postgresql.org; Mon, 19 Sep 2016 13:03:59 +0000 Received: by mail-qt0-x236.google.com with SMTP id 93so71037516qtg.2 for ; Mon, 19 Sep 2016 06:03:54 -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=qZOCzlfbqbUCxedfwiKZGRTlGEYNADQoWFyPfkRe4to=; b=DdHb6bI3l5CfwOZUQxSeTa7z2W3DGt0+3oCaPT/NtRAbwcB5irns/STLQF9wsdOjTP Gjxc9DSLj1/V5lkwAKdilE/1CFIztfVy0DTn4KLKSUbKM1TRyhzsqGT5x1EQf/E5BvYR NGYs8EvEwcGI8Z5qj4figHgfVnBlhTHZ9rFg6a6hve9zh675lvY6n0/Y50Uhq3rqSi28 EMxRTUepOEgT8shBlUIRN5epEoSx1HRTOiwOV0bkQgH6VnNmDCCxra8fYySjyRlADv+8 9+sqj0eP2DhetOBLuGng0WjZI6DRaU5w7AwrWYZuKOWKZXHqD/Whsmxbyc04pjHOegES fChg== 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=qZOCzlfbqbUCxedfwiKZGRTlGEYNADQoWFyPfkRe4to=; b=iulMJAkc0QAvOmoAKx7hqwQm/K6IGmGRSN4YJ4C6nvL9tjWbXireOdofhNcUF7E5gt VgxZb/okOIcTFV19JMSQckp8ICiOYpAdsJy+KXuurMYWc2LOlDxq+MbX6mXBHkE+szIO xMB8yd8jwsMF8FUhyMAMQ+CM3gtXW6+Dxww4+Odqq3bQNN8v1++OsfC/s1Wgy4yasdXY L/BHhkKJs3rHB5WXTFfQQIzNN++lzQ7JBODIvvCXEpSQDMC+cl+smC7WdTGwPAG4WUhc iKPJBCyVByFdVqcfLsrWjVM8DyvyspmFgXVM9FtUNXaXQeArQSHIRZmN0vXMBeZ2lCOM KmXQ== X-Gm-Message-State: AE9vXwMVcjgh1DVqecTLDmY5rIuXR1wqikjOFSRH54eMj9tOTqEES3+Jmz4YYccEJxKr37xf1CxCkKlJmLjmkqGY X-Received: by 10.200.34.135 with SMTP id f7mr29980996qta.141.1474290233594; Mon, 19 Sep 2016 06:03:53 -0700 (PDT) MIME-Version: 1.0 Received: by 10.200.41.114 with HTTP; Mon, 19 Sep 2016 06:03:52 -0700 (PDT) In-Reply-To: References: From: Navnath Gadakh Date: Mon, 19 Sep 2016 18:33:52 +0530 Message-ID: Subject: Re: pgAdmin IV- Testing framework: Enhanced Test Result Summary To: Dave Page Cc: pgadmin-hackers , Kanchan Mohitey Content-Type: multipart/mixed; boundary=001a113f420cad273d053cdbf124 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 --001a113f420cad273d053cdbf124 Content-Type: multipart/alternative; boundary=001a113f420cad2736053cdbf122 --001a113f420cad2736053cdbf122 Content-Type: text/plain; charset=UTF-8 Hi Dave, In the drop objects function scenario for 'NoneType' was not handled. Code is added in the revised patch. Thanks. On Mon, Sep 19, 2016 at 2:03 PM, Dave Page wrote: > Hi > > On Mon, Sep 19, 2016 at 8:14 AM, Navnath Gadakh > wrote: > > Hi Dave, > > Error resolved. Please find the revised patch. > > I still see the error: > > Test Result Summary > ============================ > Regression - PG 9.4: 25 tests passed, 0 tests failed > ============================ > > Please check output in file: > /Users/dpage/git/pgadmin4/web/regression/regression.log > Error in atexit._run_exitfuncs: > Traceback (most recent call last): > File "/System/Library/Frameworks/Python.framework/Versions/2.7/ > lib/python2.7/atexit.py", > line 24, in _run_exitfuncs > func(*targs, **kargs) > File "/Users/dpage/git/pgadmin4/web/regression/test_utils.py", line > 360, in drop_objects > file_name, sys.exc_traceback.tb_lineno, exception)) > Exception: test_utils.py: line:337 'NoneType' object has no attribute > '__getitem__' > Error in sys.exitfunc: > Traceback (most recent call last): > File "/System/Library/Frameworks/Python.framework/Versions/2.7/ > lib/python2.7/atexit.py", > line 24, in _run_exitfuncs > func(*targs, **kargs) > File "/Users/dpage/git/pgadmin4/web/regression/test_utils.py", line > 360, in drop_objects > file_name, sys.exc_traceback.tb_lineno, exception)) > Exception: test_utils.py: line:337 'NoneType' object has no attribute > '__getitem__' > > > -- > Dave Page > VP, Chief Architect, Tools & Installers > EnterpriseDB: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > -- Regards, Navnath --001a113f420cad2736053cdbf122 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave,
=C2=A0 =C2=A0 =C2=A0 In the drop objects func= tion scenario for 'NoneType' was not handled. Code is added in the = revised patch.

Thanks.

On Mon, Sep 19, 2016 at 2:03= PM, Dave Page <dave.page@enterprisedb.com> wrote:<= br>
Hi

On Mon, Sep 19, 2016 at 8:14 AM, Navnath Gadakh
<navnath.gadakh@enter= prisedb.com> wrote:
> Hi Dave,
>=C2=A0 =C2=A0 =C2=A0Error resolved. Please find the re= vised patch.

I still see the error:

Test Result Summary
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D
Regression - PG 9.4: 25 tests passed, 0 tests failed
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D

Please check output in file:
/Users/dpage/git/pgadmin4/web/regression/regression.log
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
=C2=A0 File "/System/Library/Frameworks/Python.framework/Versions= /2.7/lib/python2.7/atexit.py",
line 24, in _run_exitfuncs
=C2=A0 =C2=A0 func(*targs, **kargs)
=C2=A0 File "/Users/dpage/git/pgadmin4/web/regression/test_utils.= py", line
360, in drop_objects
=C2=A0 =C2=A0 file_name, sys.exc_traceback.tb_lineno, exception))
Exception: test_utils.py: line:337 'NoneType' object has no attribu= te
'__getitem__'
Error in sys.exitfunc:
Traceback (most recent call last):
=C2=A0 File "/System/Library/Frameworks/Python.framework/Versions= /2.7/lib/python2.7/atexit.py",
line 24, in _run_exitfuncs
=C2=A0 =C2=A0 func(*targs, **kargs)
=C2=A0 File "/Users/dpage/git/pgadmin4/web/regression/test_utils.= py", line
360, in drop_objects
=C2=A0 =C2=A0 file_name, sys.exc_traceback.tb_lineno, exception))
Exception: test_utils.py: line:337 'NoneType' object has no attribu= te
'__getitem__'


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

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



--
=
Regards,
Navnath

=

--001a113f420cad2736053cdbf122-- --001a113f420cad273d053cdbf124 Content-Type: application/octet-stream; name="enhanced_testresult_summary.patch" Content-Disposition: attachment; filename="enhanced_testresult_summary.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ita29qf70 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2FkZC5weSBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy90ZXN0cy90ZXN0X2RiX2FkZC5weQppbmRleCA5N2UxYmY1Li40MWQ2 ZGE2IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9hZGQucHkK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfYWRkLnB5CkBAIC0yOSwyNSAr MjksMjkgQEAgY2xhc3MgRGF0YWJhc2VBZGRUZXN0Q2FzZShCYXNlVGVzdEdl bmVyYXRvcik6CiAKICAgICBkZWYgcnVuVGVzdChzZWxmKToKICAgICAgICAg IiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgZGF0YWJhc2UgdW5kZXIgMXN0 IHNlcnZlciBvZiB0cmVlIG5vZGUuICIiIgorICAgICAgICBzZWxmLmRiX25h bWUgPSAnJwogICAgICAgICBzZXJ2ZXJfaWQgPSB0ZXN0X3NlcnZlcl9kaWN0 WyJzZXJ2ZXIiXVswXVsic2VydmVyX2lkIl0KLSAgICAgICAgc2VydmVyX3V0 aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlcnZlcl9pZCkKLQotICAgICAg ICBkYXRhID0gZGF0YWJhc2VfdXRpbHMuZ2V0X2RiX2RhdGEoKQotICAgICAg ICBzZWxmLmRiX25hbWUgPSBkYXRhWyduYW1lJ10KLSAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5wb3N0KHNlbGYudXJsICsgc3RyKHV0aWxzLlNF UlZFUl9HUk9VUCkgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIi8iICsgc3RyKHNlcnZlcl9pZCkgKyAiLyIsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0 YSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250 ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCi0gICAgICAgIHJlc3Bv bnNlX2RhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1 dGYtOCcpKQotICAgICAgICBkYl9pZCA9IHJlc3BvbnNlX2RhdGFbJ25vZGUn XVsnX2lkJ10KLSAgICAgICAgZGJfZGljdCA9IHsiZGJfaWQiOiBkYl9pZCwg ImRiX25hbWUiOiBzZWxmLmRiX25hbWV9Ci0gICAgICAgIHV0aWxzLndyaXRl X25vZGVfaW5mbyhpbnQoc2VydmVyX2lkKSwgImRpZCIsIGRiX2RpY3QpCisg ICAgICAgIHNlcnZlcl9yZXNwb25zZSA9IHNlcnZlcl91dGlscy5jb25uZWN0 X3NlcnZlcihzZWxmLCBzZXJ2ZXJfaWQpCisgICAgICAgIGlmIHNlcnZlcl9y ZXNwb25zZVsiaW5mbyJdID09ICJTZXJ2ZXIgY29ubmVjdGVkLiI6CisgICAg ICAgICAgICBkYl9vd25lciA9IHNlcnZlcl9yZXNwb25zZVsnZGF0YSddWyd1 c2VyJ11bJ25hbWUnXQorICAgICAgICAgICAgc2VsZi5kYXRhID0gZGF0YWJh c2VfdXRpbHMuZ2V0X2RiX2RhdGEoZGJfb3duZXIpCisgICAgICAgICAgICBz ZWxmLmRiX25hbWUgPSBzZWxmLmRhdGFbJ25hbWUnXQorICAgICAgICAgICAg cmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KHNlbGYudXJsICsgc3RyKHV0 aWxzLlNFUlZFUl9HUk9VUCkgKworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICIvIiArIHN0cihzZXJ2ZXJfaWQpICsgIi8iLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9 anNvbi5kdW1wcyhzZWxmLmRhdGEpLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykK KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1 c19jb2RlLCAyMDApCisgICAgICAgICAgICByZXNwb25zZV9kYXRhID0ganNv bi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKKyAgICAg ICAgICAgIGRiX2lkID0gcmVzcG9uc2VfZGF0YVsnbm9kZSddWydfaWQnXQor ICAgICAgICAgICAgZGJfZGljdCA9IHsiZGJfaWQiOiBkYl9pZCwgImRiX25h bWUiOiBzZWxmLmRiX25hbWV9CisgICAgICAgICAgICB1dGlscy53cml0ZV9u b2RlX2luZm8oaW50KHNlcnZlcl9pZCksICJkaWQiLCBkYl9kaWN0KQorICAg ICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJFcnJv ciB3aGlsZSBjb25uZWN0aW5nIHNlcnZlciB0byBhZGQgdGhlIgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICIgZGF0YWJhc2UuIikKIAogICAgIGRl ZiB0ZWFyRG93bihzZWxmKToKICAgICAgICAgIiIiCi0gICAgICAgIFRoaXMg ZnVuY3Rpb24gZGVsZXRlIHRoZSBkYXRhYmFzZSBmcm9tIHNlcnZlciBhZGRl ZCBpbiBTUUxpdGUgYW5kCi0gICAgICAgIGNsZWFycyB0aGUgbm9kZV9pbmZv X2RpY3QKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIGRhdGFi YXNlIGZyb20gc2VydmVyIGFkZGVkIGluIFNRTGl0ZS4KICAgICAgICAgIiIi CiAgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlv bihzZWxmLnNlcnZlclsnZGInXSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSdd LApAQCAtNTUsNCArNTksMyBAQCBjbGFzcyBEYXRhYmFzZUFkZFRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydob3N0J10sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNlcnZlclsncG9ydCddKQogICAgICAgICB1dGlscy5kcm9wX2RhdGFi YXNlKGNvbm5lY3Rpb24sIHNlbGYuZGJfbmFtZSkKLSAgICAgICAgdXRpbHMu Y2xlYXJfbm9kZV9pbmZvX2RpY3QoKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rl c3RzL3Rlc3RfZGJfZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJf ZGVsZXRlLnB5CmluZGV4IDgzOTMxM2EuLjk4YjQxMDMgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy90ZXN0cy90ZXN0X2RiX2RlbGV0ZS5weQorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv dGVzdHMvdGVzdF9kYl9kZWxldGUucHkKQEAgLTYsNiArNiw4IEBACiAjIFRo aXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwg TGljZW5jZQogIwogIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2ltcG9ydCB1 dWlkCisKIGZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRl c3RHZW5lcmF0b3IKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91dGls cyBhcyB1dGlscwogZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3NlcnZl cl9kaWN0CkBAIC0xOSw5ICsyMSw5IEBAIGNsYXNzIERhdGFiYXNlRGVsZXRl VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAoJ0NoZWNr IERhdGFiYXNlcyBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9kYXRh YmFzZS9vYmovJykpCiAgICAgXQogCi0gICAgQGNsYXNzbWV0aG9kCi0gICAg ZGVmIHNldFVwQ2xhc3MoY2xzKToKLSAgICAgICAgY2xzLmRiX2lkID0gdXRp bHMuY3JlYXRlX2RhdGFiYXNlKGNscy5zZXJ2ZXIsICJ0ZXN0X2RiX2RlbGV0 ZSIpCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmRiX25h bWUgPSAiZGJfZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6NF0s CisgICAgICAgIHNlbGYuZGJfaWQgPSB1dGlscy5jcmVhdGVfZGF0YWJhc2Uo c2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSkKIAogICAgIGRlZiBydW5UZXN0 KHNlbGYpOgogICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0 ZSB0aGUgZGF0YWJhc2UuIiIiCkBAIC0zOCw2ICs0MCwxMSBAQCBjbGFzcyBE YXRhYmFzZURlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3Qg dG8gc2VydmVyIHRvIGRlbGV0ZSB0aGUgIgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJkYXRhYmFzZS4iKQogCi0gICAgQGNsYXNzbWV0aG9kCi0g ICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKLSAgICAgICAgcGFzcworICAg IGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlv biBkcm9wIHRoZSBhZGRlZCBkYXRhYmFzZSIiIgorICAgICAgICBjb25uZWN0 aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oc2VsZi5zZXJ2ZXJbJ2Ri J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydk Yl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2Vy dmVyWydwb3J0J10pCisgICAgICAgIHV0aWxzLmRyb3BfZGF0YWJhc2UoY29u bmVjdGlvbiwgc2VsZi5kYl9uYW1lKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rl c3RzL3Rlc3RfZGJfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfZ2V0 LnB5CmluZGV4IDQxZWQxNDAuLmVkYWE5MjMgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy90ZXN0cy90ZXN0X2RiX2dldC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVz dF9kYl9nZXQucHkKQEAgLTI1LDI0ICsyNSwyNCBAQCBjbGFzcyBEYXRhYmFz ZXNHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgZGVmIHJ1 blRlc3Qoc2VsZik6CiAgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwg ZmV0Y2ggYWRkZWQgZGF0YWJhc2UuICIiIgogICAgICAgICBzZXJ2ZXJfZGF0 YSA9IHRlc3Rfc2VydmVyX2RpY3RbImRhdGFiYXNlIl1bMF0KLSAgICAgICAg c2VydmVyX2lkID0gc2VydmVyX2RhdGFbInNlcnZlcl9pZCJdCi0gICAgICAg IGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsic2VydmVyX2lkIl0KKyAgICAgICAg c2VsZi5kYl9pZCA9IHNlcnZlcl9kYXRhWydkYl9pZCddCiAgICAgICAgIGRi X2NvbiA9IGRhdGFiYXNlX3V0aWxzLnZlcmlmeV9kYXRhYmFzZShzZWxmLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJf aWQpCi0gICAgICAgIGlmIGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBj b25uZWN0ZWQuIjoKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAg ICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKLSAgICAgICAgICAgICAg ICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcv JyArIHN0cigKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCkg KyAnLycgKwotICAgICAgICAgICAgICAgICAgICBzdHIoZGJfaWQpLCBmb2xs b3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3Nl cnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLSAgICAgICAg ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXhjZXB0aW9uOgotICAgICAgICAg ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiRXJyb3Igd2hpbGUgZ2V0dGluZyBk YXRhYmFzZS4gJXMiICUgZXhjZXB0aW9uKQotICAgICAgICAgICAgZmluYWxs eToKLSAgICAgICAgICAgICAgICAjIERpc2Nvbm5lY3QgZGF0YWJhc2UgdG8g ZGVsZXRlIGl0Ci0gICAgICAgICAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlz Y29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZXJ2ZXJfaWQsIGRiX2lkKQotCi0g ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNv dWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZl cl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIHRyeToKKyAgICAgICAg ICAgIGlmIGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQu IjoKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5nZXQoCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnVybCArIHN0 cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsgc3RyKAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkKSArICcvJyArCisg ICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCksIGZvbGxv d19yZWRpcmVjdHM9VHJ1ZSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5h c3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorICAgICAgICBl eGNlcHQgRXhjZXB0aW9uIGFzIGV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiRXJyb3Igd2hpbGUgZ2V0dGluZyBkYXRhYmFzZS4g JXMiICUgZXhjZXB0aW9uKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAg ICAgIyBEaXNjb25uZWN0IGRhdGFiYXNlIHRvIGRlbGV0ZSBpdAorICAgICAg ICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxm LCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy90ZXN0cy90ZXN0X2RiX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90 ZXN0X2RiX3B1dC5weQppbmRleCAyMTNjOTQ3Li44MDljMDRhIDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9wdXQucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3Rlc3RzL3Rlc3RfZGJfcHV0LnB5CkBAIC04LDExICs4LDExIEBACiAjICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIwogCiBpbXBvcnQganNvbgoraW1wb3J0IHV1 aWQKIAogZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVz dEdlbmVyYXRvcgogZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxz IGFzIHV0aWxzCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3Rfc2VydmVy X2RpY3QKLWZyb20gcmVncmVzc2lvbi50ZXN0X3NldHVwIGltcG9ydCBhZHZh bmNlZF9jb25maWdfZGF0YQogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBkYXRh YmFzZV91dGlscwogCiAKQEAgLTIzLDEwICsyMyw5IEBAIGNsYXNzIERhdGFi YXNlc1VwZGF0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAg ICAgKCdDaGVjayBEYXRhYmFzZXMgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nl ci9kYXRhYmFzZS9vYmovJykpCiAgICAgXQogCi0gICAgQGNsYXNzbWV0aG9k Ci0gICAgZGVmIHNldFVwQ2xhc3MoY2xzKToKLSAgICAgICAgY2xzLmRiX25h bWUgPSAidGVzdF9kYl9wdXQiCi0gICAgICAgIGNscy5kYl9pZCA9IHV0aWxz LmNyZWF0ZV9kYXRhYmFzZShjbHMuc2VydmVyLCBjbHMuZGJfbmFtZSkKKyAg ICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFtZSA9ICJ0 ZXN0X2RiX3B1dF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdLAorICAg ICAgICBzZWxmLmRiX2lkID0gdXRpbHMuY3JlYXRlX2RhdGFiYXNlKHNlbGYu c2VydmVyLCBzZWxmLmRiX25hbWUpCiAKICAgICBkZWYgcnVuVGVzdChzZWxm KToKICAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGhl IGNvbW1lbnRzIGZpZWxkIG9mIGRhdGFiYXNlLiIiIgpAQCAtMzksMTAgKzM4 LDExIEBAIGNsYXNzIERhdGFiYXNlc1VwZGF0ZVRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKICAgICAgICAgaWYgZGJfY29uWyJpbmZvIl0gPT0gIkRh dGFiYXNlIGNvbm5lY3RlZC4iOgogICAgICAgICAgICAgdHJ5OgogICAgICAg ICAgICAgICAgIGRhdGEgPSB7Ci0gICAgICAgICAgICAgICAgICAgICJjb21t ZW50cyI6IGFkdmFuY2VkX2NvbmZpZ19kYXRhWyJkYl91cGRhdGVfZGF0YSJd WyJjb21tZW50Il0sCisgICAgICAgICAgICAgICAgICAgICJjb21tZW50cyI6 ICJUaGlzIGlzIGRiIHVwZGF0ZSBjb21tZW50IiwKICAgICAgICAgICAgICAg ICAgICAgImlkIjogZGJfaWQKICAgICAgICAgICAgICAgICB9Ci0gICAgICAg ICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoc2VsZi51cmwg KyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0cigKKyAgICAg ICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKKyAgICAg ICAgICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dS T1VQKSArICcvJyArIHN0cigKICAgICAgICAgICAgICAgICAgICAgICAgIHNl cnZlcl9pZCkgKyAnLycgKwogICAgICAgICAgICAgICAgICAgICBzdHIoZGJf aWQpLCBkYXRhPWpzb24uZHVtcHMoZGF0YSksIGZvbGxvd19yZWRpcmVjdHM9 VHJ1ZSkKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNw b25zZS5zdGF0dXNfY29kZSwgMjAwKQpAQCAtNTUsMTYgKzU1LDEzIEBAIGNs YXNzIERhdGFiYXNlc1VwZGF0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiRXJyb3Igd2hpbGUgdXBkYXRpbmcgZGF0YWJhc2UgZGV0YWlscy4iKQog Ci0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xz KToKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgICIiIgotICAg ICAgICBUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgZGF0YWJhc2UgZnJvbSBz ZXJ2ZXIgYWRkZWQgaW4gU1FMaXRlIGFuZAotICAgICAgICBjbGVhcnMgdGhl IG5vZGVfaW5mb19kaWN0CisgICAgICAgIFRoaXMgZnVuY3Rpb24gZGVsZXRl IHRoZSBkYXRhYmFzZSBmcm9tIHNlcnZlciBhZGRlZCBpbiBTUUxpdGUuCiAg ICAgICAgICIiIgotICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2Ri X2Nvbm5lY3Rpb24oY2xzLnNlcnZlclsnZGInXSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5zZXJ2ZXJbJ3Vz ZXJuYW1lJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjbHMuc2VydmVyWydkYl9wYXNzd29yZCddLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNl cnZlclsnaG9zdCddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2xzLnNlcnZlclsncG9ydCddKQotICAgICAgICB1 dGlscy5kcm9wX2RhdGFiYXNlKGNvbm5lY3Rpb24sIGNscy5kYl9uYW1lKQot ICAgICAgICB1dGlscy5jbGVhcl9ub2RlX2luZm9fZGljdCgpCisgICAgICAg IGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZWxmLnNl cnZlclsnZGInXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnaG9zdCddLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zZXJ2ZXJbJ3BvcnQnXSkKKyAgICAgICAgdXRpbHMuZHJvcF9kYXRh YmFzZShjb25uZWN0aW9uLCBzZWxmLmRiX25hbWUpCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvdGVzdHMvdXRpbHMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdXRpbHMucHkK aW5kZXggNzMyZTk4ZC4uNzkwMDg2MyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rl c3RzL3V0aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy91dGlscy5weQpAQCAt MTksMjggKzE5LDEwMyBAQCBEQVRBQkFTRV9VUkwgPSAnL2Jyb3dzZXIvZGF0 YWJhc2Uvb2JqLycKIERBVEFCQVNFX0NPTk5FQ1RfVVJMID0gJ2Jyb3dzZXIv ZGF0YWJhc2UvY29ubmVjdC8nCiAKIAotZGVmIGdldF9kYl9kYXRhKCk6Ci0g ICAgIiIiVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBkYXRhYmFzZSBkZXRh aWxzIGZyb20ganNvbiBmaWxlIiIiCi0gICAgZGF0YSA9IE5vbmUKLSAgICBp ZiBhZHZhbmNlZF9jb25maWdfZGF0YVsnYWRkX2RhdGFiYXNlX2RhdGEnXSBp cyBub3QgTm9uZToKLSAgICAgICAgYWR2X2NvbmZpZ19kYXRhID0gYWR2YW5j ZWRfY29uZmlnX2RhdGFbJ2FkZF9kYXRhYmFzZV9kYXRhJ10KLSAgICAgICAg ZGF0YSA9IHsKLSAgICAgICAgICAgICJkYXRhY2wiOiBhZHZfY29uZmlnX2Rh dGFbJ3ByaXZpbGVnZXNfYWNsJ10sCi0gICAgICAgICAgICAiZGF0Y29ubmxp bWl0IjogYWR2X2NvbmZpZ19kYXRhWydjb25uX2xpbWl0J10sCi0gICAgICAg ICAgICAiZGF0b3duZXIiOiBhZHZfY29uZmlnX2RhdGFbJ293bmVyJ10sCi0g ICAgICAgICAgICAiZGVmZnVuY2FjbCI6IGFkdl9jb25maWdfZGF0YVsnZnVu X2FjbCddLAotICAgICAgICAgICAgImRlZnNlcWFjbCI6IGFkdl9jb25maWdf ZGF0YVsnc2VxX2FjbCddLAotICAgICAgICAgICAgImRlZnRibGFjbCI6IGFk dl9jb25maWdfZGF0YVsndGJsX2FjbCddLAotICAgICAgICAgICAgImRlZnR5 cGVhY2wiOiBhZHZfY29uZmlnX2RhdGFbJ3R5cGVfYWNsJ10sCi0gICAgICAg ICAgICAiZW5jb2RpbmciOiBhZHZfY29uZmlnX2RhdGFbJ2VuY29kaW5nJ10s Ci0gICAgICAgICAgICAibmFtZSI6IHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0s Ci0gICAgICAgICAgICAicHJpdmlsZWdlcyI6IGFkdl9jb25maWdfZGF0YVsn cHJpdmlsZWdlcyddLAotICAgICAgICAgICAgInNlY3VyaXRpZXMiOiBhZHZf Y29uZmlnX2RhdGFbJ3NlY3VyaXRpZXMnXSwKLSAgICAgICAgICAgICJ2YXJp YWJsZXMiOiBhZHZfY29uZmlnX2RhdGFbJ3ZhcmlhYmxlcyddCi0gICAgICAg IH0KK2RlZiBnZXRfZGJfZGF0YShkYl9vd25lcik6CisgICAgIiIiCisgICAg VGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBkYXRhYmFzZSBkZXRhaWxzIGlu IGRpY3QgZm9ybWF0CisgICAgIiIiCisgICAgZGF0YSA9IHsKKyAgICAgICAg ImRhdGNvbm5saW1pdCI6IC0xLAorICAgICAgICAiZGF0b3duZXIiOiBkYl9v d25lciwKKyAgICAgICAgImRlZmZ1bmNhY2wiOiBbCisgICAgICB7CisgICAg ICAgICJncmFudGVlIjogZGJfb3duZXIsCisgICAgICAgICJncmFudG9yIjog ZGJfb3duZXIsCisgICAgICAgICJwcml2aWxlZ2VzIjogWworICAgICAgICAg IHsKKyAgICAgICAgICAgICJwcml2aWxlZ2VfdHlwZSI6ICJYIiwKKyAgICAg ICAgICAgICJwcml2aWxlZ2UiOiBUcnVlLAorICAgICAgICAgICAgIndpdGhf Z3JhbnQiOiBGYWxzZQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAg fQorICAgIF0sCisgICAgICAgICJkZWZzZXFhY2wiOiBbCisgICAgICB7Cisg ICAgICAgICJncmFudGVlIjogZGJfb3duZXIsCisgICAgICAgICJncmFudG9y IjogZGJfb3duZXIsCisgICAgICAgICJwcml2aWxlZ2VzIjogWworICAgICAg ICAgIHsKKyAgICAgICAgICAgICJwcml2aWxlZ2VfdHlwZSI6ICJyIiwKKyAg ICAgICAgICAgICJwcml2aWxlZ2UiOiBUcnVlLAorICAgICAgICAgICAgIndp dGhfZ3JhbnQiOiBGYWxzZQorICAgICAgICAgIH0sCisgICAgICAgICAgewor ICAgICAgICAgICAgInByaXZpbGVnZV90eXBlIjogInciLAorICAgICAgICAg ICAgInByaXZpbGVnZSI6IFRydWUsCisgICAgICAgICAgICAid2l0aF9ncmFu dCI6IEZhbHNlCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAg ICAgICAicHJpdmlsZWdlX3R5cGUiOiAiVSIsCisgICAgICAgICAgICAicHJp dmlsZWdlIjogVHJ1ZSwKKyAgICAgICAgICAgICJ3aXRoX2dyYW50IjogRmFs c2UKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdLAor ICAgICAgICAiZGVmdGJsYWNsIjogWworICAgICAgeworICAgICAgICAiZ3Jh bnRlZSI6IGRiX293bmVyLAorICAgICAgICAiZ3JhbnRvciI6IGRiX293bmVy LAorICAgICAgICAicHJpdmlsZWdlcyI6IFsKKyAgICAgICAgICB7CisgICAg ICAgICAgICAicHJpdmlsZWdlX3R5cGUiOiAiYSIsCisgICAgICAgICAgICAi cHJpdmlsZWdlIjogVHJ1ZSwKKyAgICAgICAgICAgICJ3aXRoX2dyYW50Ijog VHJ1ZQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAg InByaXZpbGVnZV90eXBlIjogInIiLAorICAgICAgICAgICAgInByaXZpbGVn ZSI6IFRydWUsCisgICAgICAgICAgICAid2l0aF9ncmFudCI6IEZhbHNlCisg ICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXSwKKyAgICAg ICAgImRlZnR5cGVhY2wiOiBbCisgICAgICB7CisgICAgICAgICJncmFudGVl IjogZGJfb3duZXIsCisgICAgICAgICJncmFudG9yIjogZGJfb3duZXIsCisg ICAgICAgICJwcml2aWxlZ2VzIjogWworICAgICAgICAgIHsKKyAgICAgICAg ICAgICJwcml2aWxlZ2VfdHlwZSI6ICJVIiwKKyAgICAgICAgICAgICJwcml2 aWxlZ2UiOiBUcnVlLAorICAgICAgICAgICAgIndpdGhfZ3JhbnQiOiBGYWxz ZQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0sCisg ICAgICAgICJlbmNvZGluZyI6ICJVVEY4IiwKKyAgICAgICAgIm5hbWUiOiAi ZGJfYWRkXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6NF0sCisgICAgICAg ICJwcml2aWxlZ2VzIjogW10sCisgICAgICAgICJzZWN1cml0aWVzIjogW10s CisgICAgICAgICJ2YXJpYWJsZXMiOiBbXQorICAgIH0KICAgICByZXR1cm4g ZGF0YQogCiAKK2RlZiBjcmVhdGVfZGF0YWJhc2UoY29ubmVjdGlvbiwgZGJf bmFtZSk6CisgICAgIiIiVGhpcyBmdW5jdGlvbiB1c2VkIHRvIGNyZWF0ZSBk YXRhYmFzZSIiIgorICAgIHRyeToKKyAgICAgICAgb2xkX2lzb2xhdGlvbl9s ZXZlbCA9IGNvbm5lY3Rpb24uaXNvbGF0aW9uX2xldmVsCisgICAgICAgIGNv bm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZlbCgwKQorICAgICAgICBwZ19j dXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgIHBnX2N1cnNv ci5leGVjdXRlKCJDUkVBVEUgREFUQUJBU0UgJXMiICUgZGJfbmFtZSkKKyAg ICAgICAgY29ubmVjdGlvbi5zZXRfaXNvbGF0aW9uX2xldmVsKG9sZF9pc29s YXRpb25fbGV2ZWwpCisgICAgICAgIGNvbm5lY3Rpb24uY29tbWl0KCkKKyAg ICAgICAgcmV0dXJuIHBnX2N1cnNvcgorICAgIGV4Y2VwdCBFeGNlcHRpb24g YXMgZXhjZXB0aW9uOgorICAgICAgICByYWlzZSBFeGNlcHRpb24oIkVycm9y IHdoaWxlIGNyZWF0aW5nIGRhdGFiYXNlLiAlcyIgJSBleGNlcHRpb24pCisK KwogZGVmIHZlcmlmeV9kYXRhYmFzZShzZWxmLCBzZXJ2ZXJfZ3JvdXAsIHNl cnZlcl9pZCwgZGJfaWQpOgogICAgICIiIgogICAgIFRoaXMgZnVuY3Rpb24g dmVyaWZpZXMgdGhhdCBkYXRhYmFzZSBpcyBleGlzdHMgYW5kIHdoZXRoZXIg aXQgY29ubmVjdApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfYWRkLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv dGVzdHMvdGVzdF9zZXJ2ZXJfYWRkLnB5CmluZGV4IDA4ZWQ4ZDYuLjZhZDlj ZjcgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2FkZC5weQorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0 cy90ZXN0X3NlcnZlcl9hZGQucHkKQEAgLTExLDcgKzExLDYgQEAgaW1wb3J0 IGpzb24KIAogZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNl VGVzdEdlbmVyYXRvcgogZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0 aWxzIGFzIHV0aWxzCi1mcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHNlcnZlcl91 dGlscwogCiAKIGNsYXNzIFNlcnZlcnNBZGRUZXN0Q2FzZShCYXNlVGVzdEdl bmVyYXRvcik6CkBAIC0yMiw4ICsyMSw3IEBAIGNsYXNzIFNlcnZlcnNBZGRU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICgnRGVmYXVs dCBTZXJ2ZXIgTm9kZSB1cmwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvc2VydmVy L29iai8nKSkKICAgICBdCiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYg c2V0VXBDbGFzcyhjbHMpOgorICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAg ICAgcGFzcwogCiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CkBAIC0zMywxNCAr MzEsOSBAQCBjbGFzcyBTZXJ2ZXJzQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29udGVudF90eXBlPSdodG1sL2pzb24nKQogICAgICAgICBzZWxmLmFzc2Vy dEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogICAgICAgICBy ZXNwb25zZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29k ZSgndXRmLTgnKSkKLSAgICAgICAgc2VydmVyX2lkID0gcmVzcG9uc2VfZGF0 YVsnbm9kZSddWydfaWQnXQotICAgICAgICB1dGlscy53cml0ZV9ub2RlX2lu Zm8oaW50KHNlcnZlcl9pZCksICJzaWQiLCBzZWxmLnNlcnZlcikKLQotICAg IEBjbGFzc21ldGhvZAotICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6Ci0g ICAgICAgICIiIgotICAgICAgICBUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUg c2VydmVyIGZyb20gU1FMaXRlICYgY2xlYXJzIHRoZSBub2RlX2luZm9fZGlj dAotICAgICAgICAiIiIKLSAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX3V0 aWxzLmdldF9zZXJ2ZXJfaWQoKQotICAgICAgICB1dGlscy5kZWxldGVfc2Vy dmVyKHNlcnZlcl9pZCkKLSAgICAgICAgdXRpbHMuY2xlYXJfbm9kZV9pbmZv X2RpY3QoKQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHJlc3BvbnNlX2Rh dGFbJ25vZGUnXVsnX2lkJ10KKyAgICAgICAgdXRpbHMud3JpdGVfbm9kZV9p bmZvKGludChzZWxmLnNlcnZlcl9pZCksICJzaWQiLCBzZWxmLnNlcnZlcikK KworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIiIiVGhpcyBm dW5jdGlvbiBkZWxldGUgdGhlIHNlcnZlciBmcm9tIFNRTGl0ZSAiIiIKKyAg ICAgICAgdXRpbHMuZGVsZXRlX3NlcnZlcihzZWxmLnNlcnZlcl9pZCkKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2RlbGV0ZS5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rf c2VydmVyX2RlbGV0ZS5weQppbmRleCBkZGM4MjliLi42ZjU3ZTU1IDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy90ZXN0cy90ZXN0X3NlcnZlcl9kZWxldGUucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVz dF9zZXJ2ZXJfZGVsZXRlLnB5CkBAIC02LDEyICs2LDggQEAKICMgVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNl bmNlCiAjCiAjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1pbXBvcnQganNv bgotCiBmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMg YXMgdXRpbHMKLWZyb20gLiBpbXBvcnQgdXRpbHMgYXMgc2VydmVyX3V0aWxz CiAKIAogY2xhc3MgU2VydmVyRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgpAQCAtMjIsMjkgKzE4LDE5IEBAIGNsYXNzIFNlcnZlckRlbGV0 ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgKCdEZWZh dWx0IFNlcnZlciBOb2RlIHVybCcsIGRpY3QodXJsPScvYnJvd3Nlci9zZXJ2 ZXIvb2JqLycpKQogICAgIF0KIAotICAgIEBjbGFzc21ldGhvZAotICAgIGRl ZiBzZXRVcENsYXNzKGNscyk6CisgICAgZGVmIHNldFVwKHNlbGYpOgogICAg ICAgICAiIiJUaGlzIGZ1bmN0aW9uIGFkZCB0aGUgc2VydmVyIHRvIHRlc3Qg dGhlIERFTEVURSBBUEkiIiIKLSAgICAgICAgc2VydmVyX3V0aWxzLmFkZF9z ZXJ2ZXIoY2xzLnNlcnZlcikKKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSB1 dGlscy5jcmVhdGVfc2VydmVyKHNlbGYuc2VydmVyKQogCiAgICAgZGVmIHJ1 blRlc3Qoc2VsZik6CiAgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRl cyB0aGUgYWRkZWQgc2VydmVyIiIiCi0gICAgICAgIGFsbF9pZCA9IHV0aWxz LmdldF9ub2RlX2luZm9fZGljdCgpCi0gICAgICAgIHNlcnZlcnNfaW5mbyA9 IGFsbF9pZFsic2lkIl0KICAgICAgICAgdXJsID0gc2VsZi51cmwgKyBzdHIo dXRpbHMuU0VSVkVSX0dST1VQKSArICIvIgotCi0gICAgICAgIGlmIGxlbihz ZXJ2ZXJzX2luZm8pID09IDA6CisgICAgICAgIGlmIG5vdCBzZWxmLnNlcnZl cl9pZDoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gc2VydmVy IHRvIGRlbGV0ZSEhISIpCi0KICAgICAgICAgIyBDYWxsIEFQSSB0byBkZWxl dGUgdGhlIHNlcnZlcnMKLSAgICAgICAgc2VydmVyX2lkID0gbGlzdChzZXJ2 ZXJzX2luZm9bMF0ua2V5cygpKVswXQotICAgICAgICByZXNwb25zZSA9IHNl bGYudGVzdGVyLmRlbGV0ZSh1cmwgKyBzdHIoc2VydmVyX2lkKSkKKyAgICAg ICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUodXJsICsgc3RyKHNl bGYuc2VydmVyX2lkKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVz cG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLSAgICAgICAgcmVzcG9uc2VfZGF0 YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04Jykp Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlX2RhdGFbJ3N1 Y2Nlc3MnXSwgMSkKIAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiB0ZWFy RG93bkNsYXNzKGNscyk6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gY2Fs bHMgdGhlIGNsZWFyX25vZGVfaW5mb19kaWN0KCkgZnVuY3Rpb24gdG8gY2xl YXJzCi0gICAgICAgIHRoZSBub2RlX2luZm9fZGljdCIiIgotICAgICAgICB1 dGlscy5jbGVhcl9ub2RlX2luZm9fZGljdCgpCisgICAgZGVmIHRlYXJEb3du KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUg c2VydmVyIGZyb20gU1FMaXRlICIiIgorICAgICAgICB1dGlscy5kZWxldGVf c2VydmVyKHNlbGYuc2VydmVyX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9z ZXJ2ZXJfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfcHV0LnB5CmluZGV4IGRl OTJhNjMuLjkyMTM0ZDIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX3B1 dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9wdXQucHkKQEAgLTEwLDcgKzEw LDYgQEAKIGltcG9ydCBqc29uCiBmcm9tIHBnYWRtaW4udXRpbHMucm91dGUg aW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiBmcm9tIHJlZ3Jlc3Npb24gaW1w b3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKLWZyb20gLiBpbXBvcnQgdXRpbHMg YXMgc2VydmVyX3V0aWxzCiAKIAogY2xhc3MgU2VydmVyVXBkYXRlVGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgpAQCAtMjEsMzcgKzIwLDIxIEBAIGNs YXNzIFNlcnZlclVwZGF0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK ICAgICAgICAgKCdEZWZhdWx0IFNlcnZlciBOb2RlIHVybCcsIGRpY3QodXJs PScvYnJvd3Nlci9zZXJ2ZXIvb2JqLycpKQogICAgIF0KIAotICAgIEBjbGFz c21ldGhvZAotICAgIGRlZiBzZXRVcENsYXNzKGNscyk6CisgICAgZGVmIHNl dFVwKHNlbGYpOgogICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGFkZCB0aGUg c2VydmVyIHRvIHRlc3QgdGhlIFBVVCBBUEkiIiIKLSAgICAgICAgc2VydmVy X3V0aWxzLmFkZF9zZXJ2ZXIoY2xzLnNlcnZlcikKKyAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQgPSB1dGlscy5jcmVhdGVfc2VydmVyKHNlbGYuc2VydmVyKQog CiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAgICAgICAgICIiIlRoaXMgZnVu Y3Rpb24gdXBkYXRlIHRoZSBzZXJ2ZXIgZGV0YWlscyIiIgotICAgICAgICBh bGxfaWQgPSB1dGlscy5nZXRfbm9kZV9pbmZvX2RpY3QoKQotICAgICAgICBz ZXJ2ZXJzX2luZm8gPSBhbGxfaWRbInNpZCJdCi0KLSAgICAgICAgaWYgbGVu KHNlcnZlcnNfaW5mbykgPT0gMDoKKyAgICAgICAgaWYgbm90IHNlbGYuc2Vy dmVyX2lkOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyBzZXJ2 ZXIgdG8gdXBkYXRlLiIpCi0KLSAgICAgICAgc2VydmVyX2lkID0gbGlzdChz ZXJ2ZXJzX2luZm9bMF0ua2V5cygpKVswXQotICAgICAgICBkYXRhID0gewot ICAgICAgICAgICAgImNvbW1lbnQiOgotICAgICAgICAgICAgICAgIHNlcnZl cl91dGlscy5jb25maWdfZGF0YVsnc2VydmVyX3VwZGF0ZV9kYXRhJ11bMF1b Ci0gICAgICAgICAgICAgICAgICAgICdjb21tZW50J10sCi0gICAgICAgICAg ICAiaWQiOiBzZXJ2ZXJfaWQKLSAgICAgICAgfQorICAgICAgICBkYXRhID0g eyJjb21tZW50Ijogc2VsZi5zZXJ2ZXJbJ2NvbW1lbnQnXSwgImlkIjogc2Vs Zi5zZXJ2ZXJfaWR9CiAgICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVz dGVyLnB1dCgKICAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNF UlZFUl9HUk9VUCkgKyAnLycgKwotICAgICAgICAgICAgc3RyKHNlcnZlcl9p ZCksIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgIHN0cihz ZWxmLnNlcnZlcl9pZCksIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAg ICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKICAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDAp CiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgdGVhckRvd25DbGFzcyhj bHMpOgotICAgICAgICAiIiIKLSAgICAgICAgVGhpcyBmdW5jdGlvbiBkZWxl dGUgdGhlIHNlcnZlciBmcm9tIFNRTGl0ZSAmIGNsZWFycyB0aGUgbm9kZV9p bmZvX2RpY3QKLSAgICAgICAgIiIiCi0gICAgICAgIHNlcnZlcl9pZCA9IHNl cnZlcl91dGlscy5nZXRfc2VydmVyX2lkKCkKLSAgICAgICAgdXRpbHMuZGVs ZXRlX3NlcnZlcihzZXJ2ZXJfaWQpCi0gICAgICAgIHV0aWxzLmNsZWFyX25v ZGVfaW5mb19kaWN0KCkKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAg ICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRoZSBzZXJ2ZXIgZnJvbSBT UUxpdGUiIiIKKyAgICAgICAgdXRpbHMuZGVsZXRlX3NlcnZlcihzZWxmLnNl cnZlcl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3V0aWxzLnB5IGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdXRpbHMu cHkKaW5kZXggOTRhNzgxMS4uYzFiNTI1OSAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdXRp bHMucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvdGVzdHMvdXRpbHMucHkKQEAgLTE5LDE3ICsxOSw3IEBAIGZy b20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJv bSByZWdyZXNzaW9uLnRlc3Rfc2V0dXAgaW1wb3J0IGNvbmZpZ19kYXRhCiAK IFNFUlZFUl9VUkwgPSAnL2Jyb3dzZXIvc2VydmVyL29iai8nCi1TRVJWRVJf Q09OTkVDVF9VUkwgPSAnYnJvd3Nlci9zZXJ2ZXIvY29ubmVjdC8nCi0KLQot ZGVmIGdldF9zZXJ2ZXJfaWQoKToKLSAgICAiIiJUaGlzIGZ1bmN0aW9uIHJl dHVybnMgdGhlIHNlcnZlciBpZCBmcm9tIG5vZGVfaW5mb19kaWN0IiIiCi0K LSAgICBzZXJ2ZXJfaWQgPSAwCi0gICAgaWYgInNpZCIgaW4gbm9kZV9pbmZv X2RpY3Q6Ci0gICAgICAgIGlmIG5vZGVfaW5mb19kaWN0WydzaWQnXToKLSAg ICAgICAgICAgIHNlcnZlcl9pZCA9IGxpc3Qobm9kZV9pbmZvX2RpY3RbJ3Np ZCddWzBdLmtleXMoKSlbMF0KLSAgICByZXR1cm4gc2VydmVyX2lkCitTRVJW RVJfQ09OTkVDVF9VUkwgPSAnL2Jyb3dzZXIvc2VydmVyL2Nvbm5lY3QvJwog CiAKIGRlZiBjb25uZWN0X3NlcnZlcihzZWxmLCBzZXJ2ZXJfaWQpOgpAQCAt MzcsOCArMjcsOCBAQCBkZWYgY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VydmVy X2lkKToKICAgICBUaGlzIGZ1bmN0aW9uIHVzZWQgdG8gY29ubmVjdCBhZGRl ZCBzZXJ2ZXIKICAgICA6cGFyYW0gc2VsZjogY2xhc3Mgb2JqZWN0IG9mIHNl cnZlcidzIHRlc3QgY2xhc3MKICAgICA6dHlwZSBzZWxmOiBjbGFzcwotICAg IDpwYXJhbSBzZXJ2ZXJfaWQ6IGZsYWcgZm9yIGRiIGFkZCB0ZXN0IGNhc2UK LSAgICA6dHlwZSBzZXJ2ZXJfaWQ6IGJvb2wKKyAgICA6cGFyYW0gc2VydmVy X2lkOiBzZXJ2ZXIgaWQKKyAgICA6dHlwZSBzZXJ2ZXJfaWQ6IHN0cgogICAg ICIiIgogICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdChTRVJWRVJf Q09OTkVDVF9VUkwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvJyArIHN0cihzZXJ2ZXJf aWQpLApAQCAtNDcsMjQgKzM3LDMgQEAgZGVmIGNvbm5lY3Rfc2VydmVyKHNl bGYsIHNlcnZlcl9pZCk6CiAgICAgYXNzZXJ0IHJlc3BvbnNlLnN0YXR1c19j b2RlID09IDIwMAogICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRzKHJl c3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQogICAgIHJldHVybiByZXNw b25zZV9kYXRhCi0KLQotZGVmIGFkZF9zZXJ2ZXIoc2VydmVyKToKLSAgICB0 cnk6Ci0gICAgICAgIGNvbm4gPSBzcWxpdGUzLmNvbm5lY3QoY29uZmlnLlNR TElURV9QQVRIKQotICAgICAgICBjdXIgPSBjb25uLmN1cnNvcigpCi0gICAg ICAgIHNlcnZlcl9kZXRhaWxzID0gKAotICAgICAgICAgICAgMSwgdXRpbHMu U0VSVkVSX0dST1VQLCBzZXJ2ZXJbJ25hbWUnXSwgc2VydmVyWydob3N0J10s Ci0gICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSwgc2VydmVyWydkYiddLCBz ZXJ2ZXJbJ3VzZXJuYW1lJ10sCi0gICAgICAgICAgICBzZXJ2ZXJbJ3JvbGUn XSwgc2VydmVyWydzc2xtb2RlJ10sCi0gICAgICAgICAgICBzZXJ2ZXJbJ2Nv bW1lbnQnXSkKLSAgICAgICAgY3VyLmV4ZWN1dGUoCi0gICAgICAgICAgICAn SU5TRVJUIElOVE8gc2VydmVyICh1c2VyX2lkLCBzZXJ2ZXJncm91cF9pZCwg bmFtZSwgaG9zdCwgJwotICAgICAgICAgICAgJ3BvcnQsIG1haW50ZW5hbmNl X2RiLCB1c2VybmFtZSwgcm9sZSwgc3NsX21vZGUsJwotICAgICAgICAgICAg JyBjb21tZW50KSBWQUxVRVMgKD8sPyw/LD8sPyw/LD8sPyw/LD8pJywgc2Vy dmVyX2RldGFpbHMpCi0gICAgICAgIHNlcnZlcl9pZCA9IGN1ci5sYXN0cm93 aWQKLSAgICAgICAgIyBBZGQgc2VydmVyIGluZm8gdG8gbm9kZV9pbmZvX2Rp Y3QKLSAgICAgICAgdXRpbHMud3JpdGVfbm9kZV9pbmZvKGludChzZXJ2ZXJf aWQpLCAic2lkIiwgc2VydmVyKQotICAgICAgICBjb25uLmNvbW1pdCgpCi0g ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnI6Ci0gICAgICAgIHJhaXNlIEV4 Y2VwdGlvbihlcnIpCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9fX2lu aXRfXy5weSBiL3dlYi9yZWdyZXNzaW9uL19faW5pdF9fLnB5CmluZGV4IDZh Mjc0NDguLmMwMDFiZTYgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL19f aW5pdF9fLnB5CisrKyBiL3dlYi9yZWdyZXNzaW9uL19faW5pdF9fLnB5CkBA IC0yOCw1ICsyOCw3IEBAIG5vZGVfaW5mb19kaWN0ID0gewogZ2xvYmFsIHRl c3Rfc2VydmVyX2RpY3QKIHRlc3Rfc2VydmVyX2RpY3QgPSB7CiAgICAgICAg ICJzZXJ2ZXIiOiBbXSwKLSAgICAgICAgImRhdGFiYXNlIjogW10KKyAgICAg ICAgImRhdGFiYXNlIjogW10sCisgICAgICAgICJ0YWJsZXNwYWNlIjogW10s CisgICAgICAgICJyb2xlIjogW10KIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9ydW50ZXN0cy5w eSBiL3dlYi9yZWdyZXNzaW9uL3J1bnRlc3RzLnB5CmluZGV4IGIyNDE0NTMu LjgwMTgzZTggMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL3J1bnRlc3Rz LnB5CisrKyBiL3dlYi9yZWdyZXNzaW9uL3J1bnRlc3RzLnB5CkBAIC0zMywx MSArMzMsMTIgQEAgaWYgc3lzLnBhdGhbMF0gIT0gcm9vdDoKIGZyb20gcGdh ZG1pbiBpbXBvcnQgY3JlYXRlX2FwcAogaW1wb3J0IGNvbmZpZwogaW1wb3J0 IHRlc3Rfc2V0dXAKK2ltcG9ydCByZWdyZXNzaW9uCiAKICMgRXhlY3V0ZSBz ZXR1cC5weSBpZiB0ZXN0IFNRTGl0ZSBkYXRhYmFzZSBkb2Vzbid0IGV4aXN0 LgogaWYgb3MucGF0aC5pc2ZpbGUoY29uZmlnLlRFU1RfU1FMSVRFX1BBVEgp OgotICAgIHByaW50KCJUaGUgY29uZmlndXJhdGlvbiBkYXRhYmFzZSBhbHJl YWR5IGV4aXN0cyBhdCAnJXMnLiAiCi0gICAgICAgICAgIlBsZWFzZSByZW1v dmUgdGhlIGRhdGFiYXNlIGFuZCByZS1ydW4gdGhlIHRlc3Qgc3VpdGUuIiAl CisgICAgcHJpbnQoIlRoZSBjb25maWd1cmF0aW9uIGRhdGFiYXNlIGFscmVh ZHkgZXhpc3RlZCBhdCAnJXMnLiAiCisgICAgICAgICAgIlBsZWFzZSByZW1v dmUgdGhlIGRhdGFiYXNlIGFuZCBhZ2FpbiBydW4gdGhlIHRlc3Qgc3VpdGUu IiAlCiAgICAgICAgICAgY29uZmlnLlRFU1RfU1FMSVRFX1BBVEgpCiAgICAg c3lzLmV4aXQoMSkKIGVsc2U6CkBAIC0xNTEsNiArMTUyLDI2IEBAIGRlZiBz aWdfaGFuZGxlcihzaWdubywgZnJhbWUpOgogICAgIHRlc3RfdXRpbHMuZHJv cF9vYmplY3RzKCkKIAogCitkZWYgZ2V0X3Rlc3RzX3Jlc3VsdCh0ZXN0cyk6 CisgICAgIiIiVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSB0b3RhbCByYW4g YW5kIHRvdGFsIGZhaWxlZCB0ZXN0IGNhc2VzIGNvdW50IiIiCisgICAgdG90 YWxfcmFuID0gdGVzdHMudGVzdHNSdW4KKyAgICBmYWlsZWRfY2FzZXNfcmVz dWx0ID0gW10KKyAgICBpZiB0b3RhbF9yYW46CisgICAgICAgIGlmIHRlc3Rz LmZhaWx1cmVzOgorICAgICAgICAgICAgZm9yIGZhaWxlZF9jYXNlIGluIHRl c3RzLmZhaWx1cmVzOgorICAgICAgICAgICAgICAgIGNsYXNzX25hbWUgPSBz dHIoZmFpbGVkX2Nhc2VbMF0pLnNwbGl0KCcuJylbLTFdLnNwbGl0KClbMF0u XAorICAgICAgICAgICAgICAgICAgICBzdHJpcCgnKScpCisgICAgICAgICAg ICAgICAgZmFpbGVkX2Nhc2VzX3Jlc3VsdC5hcHBlbmQoY2xhc3NfbmFtZSkK KyAgICAgICAgaWYgdGVzdHMuZXJyb3JzOgorICAgICAgICAgICAgZm9yIGVy cm9yX2Nhc2UgaW4gdGVzdHMuZXJyb3JzOgorICAgICAgICAgICAgICAgIGNs YXNzX25hbWUgPSBzdHIoZXJyb3JfY2FzZVswXSkuc3BsaXQoJy4nKVstMV0u c3BsaXQoKVswXS5cCisgICAgICAgICAgICAgICAgICAgIHN0cmlwKCcpJykK KyAgICAgICAgICAgICAgICBpZiBjbGFzc19uYW1lIG5vdCBpbiBmYWlsZWRf Y2FzZXNfcmVzdWx0OgorICAgICAgICAgICAgICAgICAgICBmYWlsZWRfY2Fz ZXNfcmVzdWx0LmFwcGVuZChjbGFzc19uYW1lKQorCisgICAgcmV0dXJuIHRv dGFsX3JhbiwgZmFpbGVkX2Nhc2VzX3Jlc3VsdAorCisKIGNsYXNzIFN0cmVh bVRvTG9nZ2VyKG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxv Z2dlciwgbG9nX2xldmVsPWxvZ2dpbmcuSU5GTyk6CiAgICAgICAgIHNlbGYu dGVybWluYWwgPSBzeXMuc3RkZXJyCkBAIC0xNzYsNiArMTk3LDcgQEAgY2xh c3MgU3RyZWFtVG9Mb2dnZXIob2JqZWN0KToKIAogCiBpZiBfX25hbWVfXyA9 PSAnX19tYWluX18nOgorICAgIHRlc3RfcmVzdWx0ID0gZGljdCgpCiAgICAg IyBSZWdpc3RlciBjbGVhbnVwIGZ1bmN0aW9uIHRvIGNsZWFudXAgb24gZXhp dAogICAgIGF0ZXhpdC5yZWdpc3Rlcih0ZXN0X3V0aWxzLmRyb3Bfb2JqZWN0 cykKICAgICAjIFNldCBzaWduYWwgaGFuZGxlciBmb3IgY2xlYW51cApAQCAt MjAzLDcgKzIyNSw5IEBAIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAg ICAgICAgIGZvciBzZXJ2ZXIgaW4gc2VydmVyc19pbmZvOgogICAgICAgICAg ICAgcHJpbnQoIlxuPT09PT09PT09PT09PVJ1bm5pbmcgdGhlIHRlc3QgY2Fz ZXMgZm9yICclcyc9PT09PT09PT09PT09IgogICAgICAgICAgICAgICAgICAg JSBzZXJ2ZXJbJ25hbWUnXSwgZmlsZT1zeXMuc3RkZXJyKQorCiAgICAgICAg ICAgICB0ZXN0X3V0aWxzLmNyZWF0ZV90ZXN0X3NlcnZlcihzZXJ2ZXIpCisK ICAgICAgICAgICAgICMgTG9naW4gdGhlIHRlc3QgY2xpZW50CiAgICAgICAg ICAgICB0ZXN0X3V0aWxzLmxvZ2luX3Rlc3Rlcl9hY2NvdW50KHRlc3RfY2xp ZW50KQogCkBAIC0yMTEsMTEgKzIzNSwyOSBAQCBpZiBfX25hbWVfXyA9PSAn X19tYWluX18nOgogICAgICAgICAgICAgdGVzdHMgPSB1bml0dGVzdC5UZXh0 VGVzdFJ1bm5lcihzdHJlYW09c3lzLnN0ZGVyciwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb25zPVRy dWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHZlcmJvc2l0eT0yKS5ydW4oc3VpdGUpCisKKyAgICAgICAgICAgIHJh bl90ZXN0cywgZmFpbGVkX2Nhc2VzID0gZ2V0X3Rlc3RzX3Jlc3VsdCh0ZXN0 cykKKyAgICAgICAgICAgIHRlc3RfcmVzdWx0W3NlcnZlclsnbmFtZSddXSA9 IFtyYW5fdGVzdHMsIGZhaWxlZF9jYXNlc10KKwogICAgICAgICAgICAgIyBM b2dvdXQgdGhlIHRlc3QgY2xpZW50CiAgICAgICAgICAgICB0ZXN0X3V0aWxz LmxvZ291dF90ZXN0ZXJfYWNjb3VudCh0ZXN0X2NsaWVudCkKIAotICAgICAg ICAgICAgdGVzdF91dGlscy5kZWxldGVfdGVzdF9zZXJ2ZXIoc2VydmVyKQor ICAgICAgICAgICAgdGVzdF91dGlscy5kZWxldGVfdGVzdF9zZXJ2ZXIoKQog ICAgIGV4Y2VwdCBTeXN0ZW1FeGl0OgogICAgICAgICB0ZXN0X3V0aWxzLmRy b3Bfb2JqZWN0cygpCiAKLSAgICBwcmludCgiUGxlYXNlIGNoZWNrIG91dHB1 dCBpbiBmaWxlOiAlcy9yZWdyZXNzaW9uLmxvZyAiICUgQ1VSUkVOVF9QQVRI KQorICAgIHByaW50KCJcblRlc3QgUmVzdWx0IFN1bW1hcnkiLCBmaWxlPXN5 cy5zdGRlcnIpCisgICAgcHJpbnQoIj09PT09PT09PT09PT09PT09PT09PT09 PT09PT0iLCBmaWxlPXN5cy5zdGRlcnIpCisgICAgZm9yIHNlcnZlcl9yZXMg aW4gdGVzdF9yZXN1bHQ6CisgICAgICAgIGZhaWxlZF9jYXNlcyA9ICIsIi5q b2luKHRlc3RfcmVzdWx0W3NlcnZlcl9yZXNdWzFdKQorICAgICAgICB0b3Rh bF9mYWlsZWQgPSBsZW4odGVzdF9yZXN1bHRbc2VydmVyX3Jlc11bMV0pCisg ICAgICAgIHRvdGFsX3Bhc3NlZCA9IGludCh0ZXN0X3Jlc3VsdFtzZXJ2ZXJf cmVzXVswXSkgLSB0b3RhbF9mYWlsZWQKKworICAgICAgICBwcmludCgiJXM6 ICVzIHRlc3QlcyBwYXNzZWQsICVzIHRlc3QlcyBmYWlsZWQgJXMlcyVzIiAl CisgICAgICAgICAgICAgIChzZXJ2ZXJfcmVzLCB0b3RhbF9wYXNzZWQsICh0 b3RhbF9wYXNzZWQgIT0gMSBhbmQgInMiIG9yICIiKSwKKyAgICAgICAgICAg ICAgIHRvdGFsX2ZhaWxlZCwgKHRvdGFsX2ZhaWxlZCAhPSAxIGFuZCAicyIg b3IgIiIpLAorICAgICAgICAgICAgICAgKHRvdGFsX2ZhaWxlZCAhPSAwIGFu ZCAiKCIgb3IgIiIpLCBmYWlsZWRfY2FzZXMsCisgICAgICAgICAgICAgICAo dG90YWxfZmFpbGVkICE9IDAgYW5kICIpIiBvciAiIikpLCBmaWxlPXN5cy5z dGRlcnIpCisgICAgcHJpbnQoIj09PT09PT09PT09PT09PT09PT09PT09PT09 PT0iLCBmaWxlPXN5cy5zdGRlcnIpCisKKyAgICBwcmludCgiXG5QbGVhc2Ug Y2hlY2sgb3V0cHV0IGluIGZpbGU6ICVzL3JlZ3Jlc3Npb24ubG9nICIgJSBD VVJSRU5UX1BBVEgpCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi90ZXN0 X3V0aWxzLnB5IGIvd2ViL3JlZ3Jlc3Npb24vdGVzdF91dGlscy5weQppbmRl eCAxYjk2YzlhLi5jODM3MmNmIDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lv bi90ZXN0X3V0aWxzLnB5CisrKyBiL3dlYi9yZWdyZXNzaW9uL3Rlc3RfdXRp bHMucHkKQEAgLTEwLDE4ICsxMCwyNCBAQCBmcm9tIF9fZnV0dXJlX18gaW1w b3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9ydCBvcwogaW1wb3J0IHN5cwor aW1wb3J0IHV1aWQKIGltcG9ydCBwc3ljb3BnMgogaW1wb3J0IHNxbGl0ZTMK KworaW1wb3J0IGxvZ2dpbmcKKwogaW1wb3J0IGNvbmZpZwogCiBpbXBvcnQg dGVzdF9zZXR1cAogaW1wb3J0IHJlZ3Jlc3Npb24KIAogU0VSVkVSX0dST1VQ ID0gdGVzdF9zZXR1cC5jb25maWdfZGF0YVsnc2VydmVyX2dyb3VwJ10KK2xv Z2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorZmlsZV9uYW1l ID0gb3MucGF0aC5iYXNlbmFtZShfX2ZpbGVfXykKIAogCiBkZWYgZ2V0X2Ri X2Nvbm5lY3Rpb24oZGIsIHVzZXJuYW1lLCBwYXNzd29yZCwgaG9zdCwgcG9y dCk6Ci0gICAgIiIiVGhpcyBmdW5jdGlvbiByZXRydW5zIHRoZSBjb25uZWN0 aW9uIG9iamVjdCBvZiBwc3ljb3BnIiIiCisgICAgIiIiVGhpcyBmdW5jdGlv biByZXR1cm5zIHRoZSBjb25uZWN0aW9uIG9iamVjdCBvZiBwc3ljb3BnIiIi CiAgICAgY29ubmVjdGlvbiA9IHBzeWNvcGcyLmNvbm5lY3QoZGF0YWJhc2U9 ZGIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj11 c2VybmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw YXNzd29yZD1wYXNzd29yZCwKQEAgLTcxLDcgKzc3LDcgQEAgZGVmIGdldF9j b25maWdfZGF0YSgpOgogICAgIHNlcnZlcl9kYXRhID0gW10KICAgICBmb3Ig c3J2IGluIHRlc3Rfc2V0dXAuY29uZmlnX2RhdGFbJ3NlcnZlcl9jcmVkZW50 aWFscyddOgogICAgICAgICBkYXRhID0geyJuYW1lIjogc3J2WyduYW1lJ10s Ci0gICAgICAgICAgICAgICAgImNvbW1lbnQiOiAiIiwKKyAgICAgICAgICAg ICAgICAiY29tbWVudCI6IHNydlsnY29tbWVudCddLAogICAgICAgICAgICAg ICAgICJob3N0Ijogc3J2Wydob3N0J10sCiAgICAgICAgICAgICAgICAgInBv cnQiOiBzcnZbJ2RiX3BvcnQnXSwKICAgICAgICAgICAgICAgICAiZGIiOiBz cnZbJ21haW50ZW5hbmNlX2RiJ10sCkBAIC0xNDIsMTkgKzE0OCwyMiBAQCBk ZWYgY3JlYXRlX2RhdGFiYXNlKHNlcnZlciwgZGJfbmFtZSk6CiAgICAgICAg IHJhaXNlIEV4Y2VwdGlvbigiRXJyb3Igd2hpbGUgY3JlYXRpbmcgZGF0YWJh c2UuICVzIiAlIGV4Y2VwdGlvbikKIAogCi1kZWYgZHJvcF9kYXRhYmFzZShj b25uZWN0aW9uLCBkYl9uYW1lKToKK2RlZiBkcm9wX2RhdGFiYXNlKGNvbm5l Y3Rpb24sIGRhdGFiYXNlX25hbWUpOgogICAgICIiIlRoaXMgZnVuY3Rpb24g dXNlZCB0byBkcm9wIHRoZSBkYXRhYmFzZSIiIgotICAgIHRyeToKKworICAg IHBnX2N1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICBwZ19jdXJz b3IuZXhlY3V0ZSgiU0VMRUNUICogRlJPTSBwZ19kYXRhYmFzZSBkYiBXSEVS RSBkYi5kYXRuYW1lPSclcyciCisgICAgICAgICAgICAgICAgICAgICAgJSBk YXRhYmFzZV9uYW1lKQorICAgIGlmIHBnX2N1cnNvci5mZXRjaGFsbCgpOgor ICAgICAgICAjIFJlbGVhc2UgcGlkIGlmIGFueSBwcm9jZXNzIHVzaW5nIGRh dGFiYXNlCisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKCJzZWxlY3QgcGdf dGVybWluYXRlX2JhY2tlbmQocGlkKSBmcm9tIgorICAgICAgICAgICAgICAg ICAgICAgICAgICAiIHBnX3N0YXRfYWN0aXZpdHkgd2hlcmUgZGF0bmFtZT0n JXMnIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlX25h bWUpCiAgICAgICAgIG9sZF9pc29sYXRpb25fbGV2ZWwgPSBjb25uZWN0aW9u Lmlzb2xhdGlvbl9sZXZlbAogICAgICAgICBjb25uZWN0aW9uLnNldF9pc29s YXRpb25fbGV2ZWwoMCkKLSAgICAgICAgcGdfY3Vyc29yID0gY29ubmVjdGlv bi5jdXJzb3IoKQotICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZSgnJydEUk9Q IERBVEFCQVNFICIlcyInJycgJSBkYl9uYW1lKQorICAgICAgICBwZ19jdXJz b3IuZXhlY3V0ZSgnJydEUk9QIERBVEFCQVNFICIlcyInJycgJSBkYXRhYmFz ZV9uYW1lKQogICAgICAgICBjb25uZWN0aW9uLnNldF9pc29sYXRpb25fbGV2 ZWwob2xkX2lzb2xhdGlvbl9sZXZlbCkKICAgICAgICAgY29ubmVjdGlvbi5j b21taXQoKQotICAgICAgICBjb25uZWN0aW9uLmNsb3NlKCkKLSAgICBleGNl cHQgRXhjZXB0aW9uIGFzIGV4Y2VwdGlvbjoKLSAgICAgICAgcmFpc2UgRXhj ZXB0aW9uKCJFeGNlcHRpb24gd2hpbGUgZHJvcHBpbmcgdGhlIGRhdGFiYXNl LiAlcyIgJQotICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uKQog CiAKIGRlZiBjcmVhdGVfc2VydmVyKHNlcnZlcik6CkBAIC0xODEsMTE2ICsx OTAsMTk4IEBAIGRlZiBkZWxldGVfc2VydmVyKHNpZCk6CiAgICAgdHJ5Ogog ICAgICAgICBjb25uID0gc3FsaXRlMy5jb25uZWN0KGNvbmZpZy5TUUxJVEVf UEFUSCkKICAgICAgICAgY3VyID0gY29ubi5jdXJzb3IoKQotICAgICAgICBz ZXJ2ZXJzID0gY3VyLmV4ZWN1dGUoJ1NFTEVDVCAqIEZST00gc2VydmVyIFdI RVJFIGlkPSVzJyAlIHNpZCkKLSAgICAgICAgc2VydmVyc19jb3VudCA9IGxl bihzZXJ2ZXJzLmZldGNoYWxsKCkpCisgICAgICAgIHNlcnZlcl9vYmplY3Rz ID0gY3VyLmV4ZWN1dGUoJ1NFTEVDVCAqIEZST00gc2VydmVyIFdIRVJFIGlk PSVzJyAlIHNpZCkKKyAgICAgICAgc2VydmVyc19jb3VudCA9IGxlbihzZXJ2 ZXJfb2JqZWN0cy5mZXRjaGFsbCgpKQogICAgICAgICBpZiBzZXJ2ZXJzX2Nv dW50OgogICAgICAgICAgICAgY3VyLmV4ZWN1dGUoJ0RFTEVURSBGUk9NIHNl cnZlciBXSEVSRSBpZD0lcycgJSBzaWQpCiAgICAgICAgICAgICBjb25uLmNv bW1pdCgpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwcmludCgiTm8g c2VydmVycyBmb3VuZCB0byBkZWxldGUuIiwgZmlsZT1zeXMuc3RkZXJyKQor ICAgICAgICBjb25uLmNsb3NlKCkKICAgICBleGNlcHQgRXhjZXB0aW9uIGFz IGVycjoKICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJFcnJvciB3aGlsZSBk ZWxldGluZyBzZXJ2ZXIgJXMiICUgZXJyKQogCiAKLWRlZiBjcmVhdGVfdGVz dF9zZXJ2ZXIoc2VydmVyKToKK2RlZiBjcmVhdGVfdGFibGVzcGFjZShzZXJ2 ZXIsIHRlc3RfdGFibGVzcGFjZV9uYW1lKToKKyAgICB0cnk6CisgICAgICAg IGNvbm5lY3Rpb24gPSBnZXRfZGJfY29ubmVjdGlvbihzZXJ2ZXJbJ2RiJ10s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2 ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2hvc3QnXSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZl clsncG9ydCddKQorICAgICAgICBvbGRfaXNvbGF0aW9uX2xldmVsID0gY29u bmVjdGlvbi5pc29sYXRpb25fbGV2ZWwKKyAgICAgICAgY29ubmVjdGlvbi5z ZXRfaXNvbGF0aW9uX2xldmVsKDApCisgICAgICAgIHBnX2N1cnNvciA9IGNv bm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUo IkNSRUFURSBUQUJMRVNQQUNFICVzIExPQ0FUSU9OICclcyciICUKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgKHRlc3RfdGFibGVzcGFjZV9uYW1lLCBz ZXJ2ZXJbJ3RhYmxlc3BhY2VfcGF0aCddKSkKKyAgICAgICAgY29ubmVjdGlv bi5zZXRfaXNvbGF0aW9uX2xldmVsKG9sZF9pc29sYXRpb25fbGV2ZWwpCisg ICAgICAgIGNvbm5lY3Rpb24uY29tbWl0KCkKKworICAgICAgICAjIEdldCAn b2lkJyBmcm9tIG5ld2x5IGNyZWF0ZWQgdGFibGVzcGFjZQorICAgICAgICBw Z19jdXJzb3IuZXhlY3V0ZSgKKyAgICAgICAgICAgICJTRUxFQ1QgdHMub2lk IGZyb20gcGdfdGFibGVzcGFjZSB0cyBXSEVSRSB0cy5zcGNuYW1lPSclcyci ICUKKyAgICAgICAgICAgIHRlc3RfdGFibGVzcGFjZV9uYW1lKQorICAgICAg ICBvaWQgPSBwZ19jdXJzb3IuZmV0Y2hvbmUoKQorICAgICAgICB0c3BjX2lk ID0gJycKKyAgICAgICAgaWYgb2lkOgorICAgICAgICAgICAgdHNwY19pZCA9 IG9pZFswXQorICAgICAgICBjb25uZWN0aW9uLmNsb3NlKCkKKyAgICAgICAg cmV0dXJuIHRzcGNfaWQKKyAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4Y2Vw dGlvbjoKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJFcnJvciB3aGlsZSBj cmVhdGluZyB0YWJsZXNwYWNlLiAlcyIgJSBleGNlcHRpb24pCisKKworZGVm IGRlbGV0ZV90YWJsZXNwYWNlKGNvbm5lY3Rpb24sIHRlc3RfdGFibGVzcGFj ZV9uYW1lKToKKyAgICB0cnk6CisgICAgICAgIHBnX2N1cnNvciA9IGNvbm5l Y3Rpb24uY3Vyc29yKCkKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoIlNF TEVDVCAqIEZST00gcGdfdGFibGVzcGFjZSB0cyBXSEVSRSIKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIiB0cy5zcGNuYW1lPSclcyciICUgdGVzdF90 YWJsZXNwYWNlX25hbWUpCisgICAgICAgIHRhYmxlc3BhY2VfY291bnQgPSBs ZW4ocGdfY3Vyc29yLmZldGNoYWxsKCkpCisgICAgICAgIGlmIHRhYmxlc3Bh Y2VfY291bnQ6CisgICAgICAgICAgICBvbGRfaXNvbGF0aW9uX2xldmVsID0g Y29ubmVjdGlvbi5pc29sYXRpb25fbGV2ZWwKKyAgICAgICAgICAgIGNvbm5l Y3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZlbCgwKQorICAgICAgICAgICAgcGdf Y3Vyc29yLmV4ZWN1dGUoIkRST1AgVEFCTEVTUEFDRSAlcyIgJSB0ZXN0X3Rh Ymxlc3BhY2VfbmFtZSkKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2V0X2lz b2xhdGlvbl9sZXZlbChvbGRfaXNvbGF0aW9uX2xldmVsKQorICAgICAgICAg ICAgY29ubmVjdGlvbi5jb21taXQoKQorICAgICAgICBjb25uZWN0aW9uLmNs b3NlKCkKKyAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4Y2VwdGlvbjoKKyAg ICAgICAgZXhjZXB0aW9uID0gIiVzOiBsaW5lOiVzICVzIiAlICgKKyAgICAg ICAgICAgIGZpbGVfbmFtZSwgc3lzLmV4Y190cmFjZWJhY2sudGJfbGluZW5v LCBleGNlcHRpb24pCisgICAgICAgIHByaW50KGV4Y2VwdGlvbiwgZmlsZT1z eXMuc3RkZXJyKQorICAgICAgICByYWlzZSBFeGNlcHRpb24oZXhjZXB0aW9u KQorCisKK2RlZiBjcmVhdGVfdGVzdF9zZXJ2ZXIoc2VydmVyX2luZm8pOgog ICAgICIiIgogICAgIFRoaXMgZnVuY3Rpb24gY3JlYXRlIHRoZSB0ZXN0IHNl cnZlciB3aGljaCB3aWxsIGFjdCBhcyBwYXJlbnQgc2VydmVyLAogICAgIHRo ZSBvdGhlciBub2RlIHdpbGwgYWRkIHVuZGVyIHRoaXMgc2VydmVyCi0gICAg OnBhcmFtIHNlcnZlcjogc2VydmVyIGRldGFpbHMKLSAgICA6dHlwZSBzZXJ2 ZXI6IGRpY3QKKyAgICA6cGFyYW0gc2VydmVyX2luZm86IHNlcnZlciBkZXRh aWxzCisgICAgOnR5cGUgc2VydmVyX2luZm86IGRpY3QKICAgICA6cmV0dXJu OiBOb25lCiAgICAgIiIiCiAgICAgIyBDcmVhdGUgdGhlIHNlcnZlcgotICAg IHNlcnZlcl9pZCA9IGNyZWF0ZV9zZXJ2ZXIoc2VydmVyKQorICAgIHNydl9p ZCA9IGNyZWF0ZV9zZXJ2ZXIoc2VydmVyX2luZm8pCiAKICAgICAjIENyZWF0 ZSB0ZXN0IGRhdGFiYXNlCi0gICAgdGVzdF9kYl9uYW1lID0gInRlc3RfZGIi Ci0gICAgZGJfaWQgPSBjcmVhdGVfZGF0YWJhc2Uoc2VydmVyLCB0ZXN0X2Ri X25hbWUpCisgICAgdGVzdF9kYl9uYW1lID0gInRlc3RfZGJfJXMiICUgc3Ry KHV1aWQudXVpZDQoKSlbMTo4XQorICAgIGRiX2lkID0gY3JlYXRlX2RhdGFi YXNlKHNlcnZlcl9pbmZvLCB0ZXN0X2RiX25hbWUpCisKKyAgICAjIFRPRE86 IE5lZWQgdG8gZGVjaWRlIGFib3V0IHRlc3QgdGFibGVzcGFjZSBjcmVhdGlv bgorICAgICMgQ3JlYXRlIHRhYmxlc3BhY2UKKyAgICAjIHRlc3RfdGFibGVz cGFjZV9uYW1lID0gInRlc3RfdGFibGVzcGFjZSIKKyAgICAjIHRhYmxlc3Bh Y2VfaWQgPSBjcmVhdGVfdGFibGVzcGFjZShzZXJ2ZXIsIHRlc3RfdGFibGVz cGFjZV9uYW1lKQogCiAgICAgIyBBZGQgc2VydmVyIGluZm8gdG8gdGVzdF9z ZXJ2ZXJfZGljdAotICAgIHJlZ3Jlc3Npb24udGVzdF9zZXJ2ZXJfZGljdFsi c2VydmVyIl0uYXBwZW5kKHsic2VydmVyX2lkIjogc2VydmVyX2lkLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAic2VydmVyIjogc2VydmVyfSkKLSAgICByZWdyZXNzaW9uLnRlc3Rfc2Vy dmVyX2RpY3RbImRhdGFiYXNlIl0uYXBwZW5kKHsic2VydmVyX2lkIjogc2Vy dmVyX2lkLAorICAgIHJlZ3Jlc3Npb24udGVzdF9zZXJ2ZXJfZGljdFsic2Vy dmVyIl0uYXBwZW5kKHsic2VydmVyX2lkIjogc3J2X2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2Vy dmVyIjogc2VydmVyX2luZm99KQorICAgIHJlZ3Jlc3Npb24udGVzdF9zZXJ2 ZXJfZGljdFsiZGF0YWJhc2UiXS5hcHBlbmQoeyJzZXJ2ZXJfaWQiOiBzcnZf aWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgImRiX2lkIjogZGJfaWQsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRiX25hbWUi OiB0ZXN0X2RiX25hbWV9KQogCiAKLWRlZiBkZWxldGVfdGVzdF9zZXJ2ZXIo c2VydmVyKToKK2RlZiBkZWxldGVfdGVzdF9zZXJ2ZXIoKToKICAgICB0ZXN0 X3NlcnZlcl9kaWN0ID0gcmVncmVzc2lvbi50ZXN0X3NlcnZlcl9kaWN0Ci0g ICAgaWYgdGVzdF9zZXJ2ZXJfZGljdDoKLSAgICAgICAgY29ubmVjdGlvbiA9 IGdldF9kYl9jb25uZWN0aW9uKHNlcnZlclsnZGInXSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUn XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl cnZlclsnZGJfcGFzc3dvcmQnXSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlcnZlclsnaG9zdCddLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydwb3J0J10pCi0g ICAgICAgIGRiX25hbWUgPSB0ZXN0X3NlcnZlcl9kaWN0WyJkYXRhYmFzZSJd WzBdWyJkYl9uYW1lIl0KLSAgICAgICAgZHJvcF9kYXRhYmFzZShjb25uZWN0 aW9uLCBkYl9uYW1lKQotICAgICAgICAjIERlbGV0ZSB0aGUgc2VydmVyCi0g ICAgICAgIHNlcnZlcl9pZCA9IHRlc3Rfc2VydmVyX2RpY3RbJ3NlcnZlcidd WzBdWyJzZXJ2ZXJfaWQiXQotICAgICAgICBjb25uID0gc3FsaXRlMy5jb25u ZWN0KGNvbmZpZy5TUUxJVEVfUEFUSCkKLSAgICAgICAgY3VyID0gY29ubi5j dXJzb3IoKQotICAgICAgICBzZXJ2ZXJzID0gY3VyLmV4ZWN1dGUoJ1NFTEVD VCAqIEZST00gc2VydmVyIFdIRVJFIGlkPSVzJyAlIHNlcnZlcl9pZCkKLSAg ICAgICAgc2VydmVyc19jb3VudCA9IGxlbihzZXJ2ZXJzLmZldGNoYWxsKCkp Ci0gICAgICAgIGlmIHNlcnZlcnNfY291bnQ6Ci0gICAgICAgICAgICBjdXIu ZXhlY3V0ZSgnREVMRVRFIEZST00gc2VydmVyIFdIRVJFIGlkPSVzJyAlIHNl cnZlcl9pZCkKLSAgICAgICAgICAgIGNvbm4uY29tbWl0KCkKLSAgICAgICAg ICAgIGNvbm4uY2xvc2UoKQotICAgICAgICAgICAgc2VydmVyX2RpY3QgPSBy ZWdyZXNzaW9uLnRlc3Rfc2VydmVyX2RpY3RbInNlcnZlciJdCisgICAgdGVz dF9zZXJ2ZXJzID0gdGVzdF9zZXJ2ZXJfZGljdFsic2VydmVyIl0KKyAgICB0 ZXN0X2RhdGFiYXNlcyA9IHRlc3Rfc2VydmVyX2RpY3RbImRhdGFiYXNlIl0K KyAgICB0ZXN0X3RhYmxlX3NwYWNlcyA9IHRlc3Rfc2VydmVyX2RpY3RbInRh Ymxlc3BhY2UiXQorICAgIHRyeToKKyAgICAgICAgZm9yIHRlc3Rfc2VydmVy IGluIHRlc3Rfc2VydmVyczoKKyAgICAgICAgICAgIHNydl9pZCA9IHRlc3Rf c2VydmVyWyJzZXJ2ZXJfaWQiXQorICAgICAgICAgICAgc2VydmVyc19kaWN0 ID0gdGVzdF9zZXJ2ZXJbInNlcnZlciJdCisgICAgICAgICAgICBmb3IgZGF0 YWJhc2UgaW4gdGVzdF9kYXRhYmFzZXM6CisgICAgICAgICAgICAgICAgY29u bmVjdGlvbiA9IGdldF9kYl9jb25uZWN0aW9uKHNlcnZlcnNfZGljdFsnZGIn XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyc19kaWN0Wyd1c2VybmFtZSddLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJzX2Rp Y3RbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcnNfZGljdFsnaG9zdCddLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZXJ2ZXJzX2RpY3RbJ3BvcnQnXSkKKyAgICAgICAgICAgICAgICBkYXRh YmFzZV9uYW1lID0gZGF0YWJhc2VbImRiX25hbWUiXQorICAgICAgICAgICAg ICAgICMgRHJvcCBkYXRhYmFzZQorICAgICAgICAgICAgICAgIGRyb3BfZGF0 YWJhc2UoY29ubmVjdGlvbiwgZGF0YWJhc2VfbmFtZSkKKworICAgICAgICAg ICAgIyBEZWxldGUgc2VydmVyCisgICAgICAgICAgICBkZWxldGVfc2VydmVy KHNydl9pZCkKKyAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4Y2VwdGlvbjoK KyAgICAgICAgZXhjZXB0aW9uID0gIkV4Y2VwdGlvbjogJXM6IGxpbmU6JXMg JXMiICUgKAorICAgICAgICAgICAgZmlsZV9uYW1lLCBzeXMuZXhjX3RyYWNl YmFjay50Yl9saW5lbm8sIGV4Y2VwdGlvbikKKyAgICAgICAgcHJpbnQoZXhj ZXB0aW9uKQorICAgICAgICBsb2dnZXIuZXhjZXB0aW9uKGV4Y2VwdGlvbikK IAotICAgICAgICAgICAgIyBQb3AgdGhlIHNlcnZlciBmcm9tIGRpY3QgaWYg aXQncyBkZWxldGVkCi0gICAgICAgICAgICBzZXJ2ZXJfZGljdCA9IFtzZXJ2 ZXJfZGljdC5wb3Aoc2VydmVyX2RpY3QuaW5kZXgoaXRlbSkpCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBzZXJ2ZXJfZGljdAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgc3RyKHNlcnZlcl9pZCkg PT0gc3RyKGl0ZW1bInNlcnZlcl9pZCJdKV0KKyAgICAjIENsZWFyIHRlc3Rf c2VydmVyX2RpY3QKKyAgICBmb3IgaXRlbSBpbiByZWdyZXNzaW9uLnRlc3Rf c2VydmVyX2RpY3Q6CisgICAgICAgIGRlbCByZWdyZXNzaW9uLnRlc3Rfc2Vy dmVyX2RpY3RbaXRlbV1bOl0KIAotICAgICAgICAgICAgIyBQb3AgdGhlIGRi IGZyb20gZGljdCBpZiBpdCdzIGRlbGV0ZWQKLSAgICAgICAgICAgIGRiX2Rp Y3QgPSByZWdyZXNzaW9uLnRlc3Rfc2VydmVyX2RpY3RbImRhdGFiYXNlIl0K LSAgICAgICAgICAgIGRiX2RpY3QgPSBbZGJfZGljdC5wb3AoZGJfZGljdC5p bmRleChpdGVtKSkgZm9yIGl0ZW0gaW4gZGJfZGljdAotICAgICAgICAgICAg ICAgICAgICAgICBpZiBzZXJ2ZXJfaWQgPT0gaXRlbVsic2VydmVyX2lkIl1d CisKK2RlZiByZW1vdmVfZGJfZmlsZSgpOgorICAgIGlmIG9zLnBhdGguaXNm aWxlKGNvbmZpZy5TUUxJVEVfUEFUSCk6CisgICAgICAgIG9zLnJlbW92ZShj b25maWcuU1FMSVRFX1BBVEgpCiAKIAogZGVmIGRyb3Bfb2JqZWN0cygpOgog ICAgICIiIlRoaXMgZnVuY3Rpb24gdXNlIHRvIGNsZWFudXAgdGhlIGNyZWF0 ZWQgdGhlIG9iamVjdHMoc2VydmVycywgZGF0YWJhc2VzLAogICAgICBzY2hl bWFzIGV0YykgZHVyaW5nIHRoZSB0ZXN0IHN1aXRlIHJ1biIiIgotCi0gICAg IyBDbGVhbnVwIGluIG5vZGVfaW5mb19kaWN0Ci0gICAgc2VydmVyc19pbmZv ID0gcmVncmVzc2lvbi5ub2RlX2luZm9fZGljdFsnc2lkJ10KLSAgICBpZiBz ZXJ2ZXJzX2luZm86Ci0gICAgICAgIGZvciBzZXJ2ZXIgaW4gc2VydmVyc19p bmZvOgotICAgICAgICAgICAgc2VydmVyX2lkID0gc2VydmVyLmtleXMoKVsw XQotICAgICAgICAgICAgc2VydmVyID0gc2VydmVyLnZhbHVlcygpWzBdCi0g ICAgICAgICAgICBpZiByZWdyZXNzaW9uLm5vZGVfaW5mb19kaWN0WydkaWQn XToKLSAgICAgICAgICAgICAgICBkYl9jb25uID0gZ2V0X2RiX2Nvbm5lY3Rp b24oc2VydmVyWydkYiddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3VzZXJuYW1lJ10sCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsn ZGJfcGFzc3dvcmQnXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VydmVyWydob3N0J10sCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsncG9ydCdd KQotICAgICAgICAgICAgICAgIGRiX2RpY3QgPSByZWdyZXNzaW9uLm5vZGVf aW5mb19kaWN0WydkaWQnXVswXQotICAgICAgICAgICAgICAgIGlmIGludChz ZXJ2ZXJfaWQpIGluIGRiX2RpY3Q6Ci0gICAgICAgICAgICAgICAgICAgIGRi X25hbWUgPSBkYl9kaWN0W2ludChzZXJ2ZXJfaWQpXVsiZGJfbmFtZSJdCi0g ICAgICAgICAgICAgICAgICAgIGRyb3BfZGF0YWJhc2UoZGJfY29ubiwgZGJf bmFtZSkKLSAgICAgICAgICAgIGRlbGV0ZV9zZXJ2ZXIoc2VydmVyX2lkKQot Ci0gICAgIyBDbGVhbnVwIGluIHRlc3Rfc2VydmVyX2RpY3QKLSAgICBzZXJ2 ZXJzID0gcmVncmVzc2lvbi50ZXN0X3NlcnZlcl9kaWN0WyJzZXJ2ZXIiXQot ICAgIGlmIHNlcnZlcnM6Ci0gICAgICAgIGZvciBzZXJ2ZXIgaW4gc2VydmVy czoKLSAgICAgICAgICAgIHNlcnZlcl9pZCA9IHNlcnZlclsic2VydmVyX2lk Il0KLSAgICAgICAgICAgIHNlcnZlciA9IHNlcnZlclsic2VydmVyIl0KLSAg ICAgICAgICAgIGlmIHJlZ3Jlc3Npb24udGVzdF9zZXJ2ZXJfZGljdFsiZGF0 YWJhc2UiXToKLSAgICAgICAgICAgICAgICBkYl9pbmZvID0gcmVncmVzc2lv bi50ZXN0X3NlcnZlcl9kaWN0WyJkYXRhYmFzZSJdCi0gICAgICAgICAgICAg ICAgZGJfZGljdCA9IFtpdGVtIGZvciBpdGVtIGluIGRiX2luZm8KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIHNlcnZlcl9pZCA9PSBpdGVtWyJz ZXJ2ZXJfaWQiXV0KLSAgICAgICAgICAgICAgICBpZiBkYl9kaWN0OgotICAg ICAgICAgICAgICAgICAgICBmb3IgZGIgaW4gZGJfZGljdDoKLSAgICAgICAg ICAgICAgICAgICAgICAgIGRiX25hbWUgPSBkYlsiZGJfbmFtZSJdCi0gICAg ICAgICAgICAgICAgICAgICAgICBkYl9jb25uID0gZ2V0X2RiX2Nvbm5lY3Rp b24oc2VydmVyWydkYiddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVy Wydob3N0J10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VydmVyWydwb3J0J10pCi0gICAgICAgICAg ICAgICAgICAgICAgICBkcm9wX2RhdGFiYXNlKGRiX2Nvbm4sIGRiX25hbWUp Ci0gICAgICAgICAgICBkZWxldGVfc2VydmVyKHNlcnZlcl9pZCkKLQotICAg ICMgUmVtb3ZlIHRoZSB0ZXN0IFNRTGl0ZSBkYXRhYmFzZQotICAgIGlmIG9z LnBhdGguaXNmaWxlKGNvbmZpZy5TUUxJVEVfUEFUSCk6Ci0gICAgICAgIG9z LnJlbW92ZShjb25maWcuU1FMSVRFX1BBVEgpCisgICAgdHJ5OgorICAgICAg ICBjb25uID0gc3FsaXRlMy5jb25uZWN0KGNvbmZpZy5TUUxJVEVfUEFUSCkK KyAgICAgICAgY3VyID0gY29ubi5jdXJzb3IoKQorICAgICAgICBzZXJ2ZXJz ID0gY3VyLmV4ZWN1dGUoJ1NFTEVDVCBuYW1lLCBob3N0LCBwb3J0LCBtYWlu dGVuYW5jZV9kYiwnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn IHVzZXJuYW1lLCBpZCAgRlJPTSBzZXJ2ZXInKQorICAgICAgICBpZiBzZXJ2 ZXJzOgorICAgICAgICAgICAgYWxsX3NlcnZlcnMgPSBzZXJ2ZXJzLmZldGNo YWxsKCkKKyAgICAgICAgICAgIGZvciBzZXJ2ZXJfaW5mbyBpbiBhbGxfc2Vy dmVyczoKKyAgICAgICAgICAgICAgICBuYW1lID0gc2VydmVyX2luZm9bMF0K KyAgICAgICAgICAgICAgICBob3N0ID0gc2VydmVyX2luZm9bMV0KKyAgICAg ICAgICAgICAgICBkYl9wb3J0ID0gc2VydmVyX2luZm9bMl0KKworICAgICAg ICAgICAgICAgIHNlcnZlcl9pZCA9IHNlcnZlcl9pbmZvWzVdCisgICAgICAg ICAgICAgICAgY29uZmlnX3NlcnZlcnMgPSB0ZXN0X3NldHVwLmNvbmZpZ19k YXRhWydzZXJ2ZXJfY3JlZGVudGlhbHMnXQorICAgICAgICAgICAgICAgIGRi X3Bhc3N3b3JkID0gJycKKyAgICAgICAgICAgICAgICAjIEdldCB0aGUgZGIg cGFzc3dvcmQgZnJvbSBjb25maWcgZmlsZSBmb3IgYXBwcm9wcmlhdGUgc2Vy dmVyCisgICAgICAgICAgICAgICAgZm9yIHNydiBpbiBjb25maWdfc2VydmVy czoKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNydlsnbmFtZSddLCBzcnZb J2hvc3QnXSwgc3J2WydkYl9wb3J0J10pID09IFwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobmFtZSwgaG9zdCwgZGJfcG9ydCk6CisgICAgICAg ICAgICAgICAgICAgICAgICBkYl9wYXNzd29yZCA9IHNydlsnZGJfcGFzc3dv cmQnXQorICAgICAgICAgICAgICAgIGlmIGRiX3Bhc3N3b3JkOgorICAgICAg ICAgICAgICAgICAgICAjIERyb3AgZGF0YWJhc2UKKyAgICAgICAgICAgICAg ICAgICAgY29ubmVjdGlvbiA9IGdldF9kYl9jb25uZWN0aW9uKHNlcnZlcl9p bmZvWzNdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VydmVyX2luZm9bNF0sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9wYXNz d29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlcnZlcl9pbmZvWzFdLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lu Zm9bMl0pCisKKyAgICAgICAgICAgICAgICAgICAgcGdfY3Vyc29yID0gY29u bmVjdGlvbi5jdXJzb3IoKQorICAgICAgICAgICAgICAgICAgICBwZ19jdXJz b3IuZXhlY3V0ZSgiU0VMRUNUIGRiLmRhdG5hbWUgRlJPTSBwZ19kYXRhYmFz ZSBkYiIpCisgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlcyA9IHBnX2N1 cnNvci5mZXRjaGFsbCgpCisgICAgICAgICAgICAgICAgICAgIGlmIGRhdGFi YXNlczoKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBkYiBpbiBkYXRh YmFzZXM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBEbyBub3Qg ZHJvcCB0aGUgZGVmYXVsdCBkYXRhYmFzZXMKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBkYlswXSBub3QgaW4gWyJwb3N0Z3JlcyIsICJ0ZW1w bGF0ZTEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgInRlbXBsYXRlMCJdOgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkcm9wX2RhdGFiYXNlKGNvbm5lY3Rpb24sIGRiWzBdKQor ICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLmNsb3NlKCkKKworICAg ICAgICAgICAgICAgICAgICAjIERlbGV0ZSB0YWJsZXNwYWNlCisgICAgICAg ICAgICAgICAgICAgIGNvbm5lY3Rpb24gPSBnZXRfZGJfY29ubmVjdGlvbihz ZXJ2ZXJfaW5mb1szXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pbmZvWzRdLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGJfcGFzc3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaW5mb1sxXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl cnZlcl9pbmZvWzJdKQorICAgICAgICAgICAgICAgICAgICBwZ19jdXJzb3Ig PSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgICAgICAgICAgICAgIHBn X2N1cnNvci5leGVjdXRlKCJTRUxFQ1QgKiBGUk9NIHBnX3RhYmxlc3BhY2Ui KQorICAgICAgICAgICAgICAgICAgICB0YWJsZV9zcGFjZXMgPSBwZ19jdXJz b3IuZmV0Y2hhbGwoKQorICAgICAgICAgICAgICAgICAgICBpZiB0YWJsZV9z cGFjZXM6CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGFibGVzcGFj ZSBpbiB0YWJsZV9zcGFjZXM6CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIyBEbyBub3QgZGVsZXRlIGRlZmF1bHQgdGFibGUgc3BhY2VzCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGFibGVzcGFjZVswXSBub3Qg aW4gWyJwZ19kZWZhdWx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgInBnX2dsb2JhbCJdOgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZXNwYWNlX25hbWUg PSB0YWJsZXNwYWNlWzBdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICMgRGVsZXRlIHRhYmxlc3BhY2UKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGVsZXRlX3RhYmxlc3BhY2UoY29ubmVjdGlvbiwgdGFi bGVzcGFjZV9uYW1lKQorCisgICAgICAgICAgICAgICAgIyBEZWxldGUgc2Vy dmVyCisgICAgICAgICAgICAgICAgZGVsZXRlX3NlcnZlcihzZXJ2ZXJfaWQp CisgICAgICAgIGNvbm4uY2xvc2UoKQorICAgICAgICAjIFJlbW92ZSBTUUxp dGUgZGIgZmlsZQorICAgICAgICByZW1vdmVfZGJfZmlsZSgpCisgICAgZXhj ZXB0IEV4Y2VwdGlvbiBhcyBleGNlcHRpb246CisgICAgICAgIHJlbW92ZV9k Yl9maWxlKCkKKyAgICAgICAgZXhjZXB0aW9uID0gIkV4Y2VwdGlvbjogJXM6 IGxpbmU6JXMgJXMiICUgKAorICAgICAgICAgICAgZmlsZV9uYW1lLCBzeXMu ZXhjX3RyYWNlYmFjay50Yl9saW5lbm8sIGV4Y2VwdGlvbikKKyAgICAgICAg cHJpbnQoZXhjZXB0aW9uKQorICAgICAgICBsb2dnZXIuZXhjZXB0aW9uKGV4 Y2VwdGlvbikK --001a113f420cad273d053cdbf124 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 --001a113f420cad273d053cdbf124--