Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bMb4X-0001et-8B for pgadmin-hackers@arkaria.postgresql.org; Mon, 11 Jul 2016 13:16:29 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bMb4W-0007fB-Qv for pgadmin-hackers@arkaria.postgresql.org; Mon, 11 Jul 2016 13:16:28 +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 1bMb4E-00076C-KZ for pgadmin-hackers@postgresql.org; Mon, 11 Jul 2016 13:16:11 +0000 Received: from mail-qk0-x22e.google.com ([2607:f8b0:400d:c09::22e]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1bMb49-0003th-Q5 for pgadmin-hackers@postgresql.org; Mon, 11 Jul 2016 13:16:09 +0000 Received: by mail-qk0-x22e.google.com with SMTP id s63so56134588qkb.2 for ; Mon, 11 Jul 2016 06:16:05 -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=HtHCcuuV8jHRUDp6ibbHOVjU1mAEY7Q+dkJ644PzMts=; b=T7q6DfqrXp+kFl3s+VZyxcluqv4RwasycpMDiaOPVgEWwYnrHjoKg9O58rOqZOEuB0 gDH5XI4ck+RB7EuFFYqsXxOkXjj05nV8vlzzdRRXQvymlo65DTiM1qr2/BEZHCaordN/ cvJi4BYdv7C3SO4pYESTkMu+T3zfCqC9jNxawVvc/oX0B+hGR7r+UlsTY8rb5g770zZn rX0B58VK9flinZ8GNt4fdSFX5iClKXB7Ys5wshSMo89UiYsH3/xOR48c0eHSoQcQ3diU zHgKLiiObCajcE+hPl96ucOFYCDVHmgnCSuSEX6rK79qbdQbQQLPlqAqhM1wZqSWhlOu Z99g== 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=HtHCcuuV8jHRUDp6ibbHOVjU1mAEY7Q+dkJ644PzMts=; b=R5WzDnJR5M4dWdAj910pFokCi518o2DIEpSxlpl6K2I9baWRu60IsCij/MUHT/F83n U2QUQje66y/wkh+eFPaW3W2SWftn+S8erzzjbZHBRbRyjWZt3JLn61qniJ+jOsz+Wfpf 952kfhGhofSJ50j5Y47kdGxjVLCZXajih3+bGKtjbWHXDCePBsG+Q++ebrr5EHiJ62A7 sCbMmWviUeJlPYVLudvUOHE/nNdbFCvKmoTVWc6nc062Qsc9AZQEQx6qVUt2VHdvSZ2p s3cyG1diSXEaDil0AkdrI9IkLnR1gcDHTMeJ093otauwSTjWCZcKOx9hDzL2vMFx8dC6 x9lQ== X-Gm-Message-State: ALyK8tJH5Hc1GppygtycdN2KQu9HXYqrH4gJvAQ0RoA90HBqF0U62FBoyCdA+OktCVoS13RLcQ8pYvYZikC8Go0Z X-Received: by 10.55.183.129 with SMTP id h123mr24392475qkf.105.1468242965062; Mon, 11 Jul 2016 06:16:05 -0700 (PDT) MIME-Version: 1.0 Received: by 10.200.41.93 with HTTP; Mon, 11 Jul 2016 06:16:04 -0700 (PDT) In-Reply-To: References: From: Navnath Gadakh Date: Mon, 11 Jul 2016 18:46:04 +0530 Message-ID: Subject: Re: pgAdmin IV : Unittest modular patch To: Dave Page Cc: pgadmin-hackers@postgresql.org, Kanchan Mohitey Content-Type: multipart/mixed; boundary=94eb2c06af4060e2c205375bf4fa 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 --94eb2c06af4060e2c205375bf4fa Content-Type: multipart/alternative; boundary=94eb2c06af4060e2be05375bf4f8 --94eb2c06af4060e2be05375bf4f8 Content-Type: text/plain; charset=UTF-8 Hi Dave, PFA updated patch for modular API test cases. On Mon, Jul 11, 2016 at 5:11 PM, Dave Page wrote: > > > On Fri, Jul 8, 2016 at 2:30 PM, Navnath Gadakh < > navnath.gadakh@enterprisedb.com> wrote: > >> >> Hi Dave, >> >> PFA patch for modular API test cases. >> >> Kindly, review the same and let me know for any modification. >> > > Please re-create the patch so that it doesn't revert various changes made > to config.py etc. over the last couple of weeks. > config.py file was not updated at my end, I have updated it in the current patch. I have also added code related to advance test data configuration which was created by Priyanka (Seprated the test data configuration files). > What is the patch for? Is it fixing issues in Priyanka's last patch, or > something else? > This patch is for - > 1. Now we can run testsuite node/module wise(like for browser only, for > databases only) OR for all nodes/modules > 2. I have modified the existing functionality for testsuite and all test > case classes (Made all test cases independently runnable, removed > the priority logic). > For more details please refer the file 'regression/README'. > -- > 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 Gadakh* *Software Engineer* *Phone : + 91 9975389878* *The Postgres Database Company* --94eb2c06af4060e2be05375bf4f8 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave,
PFA updated patch for modular API test cases.=

On Mon, Jul 11, 2= 016 at 5:11 PM, Dave Page <dave.page@enterprisedb.com> wrote:


On Fri, Jul 8, 2016 at = 2:30 PM, Navnath Gadakh <navnath.gadakh@enterprisedb.com= > wrote:

Hi Dave,

PFA patch for modular API test cases.

Kindly, r= eview the same and let me know for any modification.=C2=A0

Please re-create= the patch so that it doesn't revert various changes made to config.py = etc. over the last couple of weeks.=C2=A0

=C2=A0 config.py=C2=A0file was not updated at my end= , I have updated it in the current patch.=C2=A0 I have=C2=A0also added code= related to advance test data configuration which was created by Priyanka= =C2=A0(Seprated the test data configuration=C2=A0files).


What is the patch for? Is it fixing issues in Pr= iyanka's last patch, or something else?
This pat= ch is for -
1. Now we can run tests= uite=C2=A0node/module=C2=A0wise(like for browser only, for databases only) = =C2=A0OR for all nodes/modules
2. I= have modified the existing functionality for testsuite and all test case= =C2=A0classes (Made all test cases=C2=A0independently=C2=A0runnable, remove= d the=C2=A0priority logic).
=C2=A0 =C2=A0=C2=A0
=C2=A0 =C2=A0 For more details please= refer the file 'regression/README'.
=C2=A0
=C2= =A0
--
Dave Page
VP, Chief Architect, Tools & Installers
Enterpr= iseDB: http://www= .enterprisedb.com
The Enterprise PostgreSQL Company

Blog: http://pgsnake.blogs= pot.com
Twitter: @pgsnake



--
Thanks,
Navnath Gadakh
Software Engineer
Phone : + 91 9975389878

The Postgres Database Company
=


--94eb2c06af4060e2be05375bf4f8-- --94eb2c06af4060e2c205375bf4fa Content-Type: text/x-patch; charset=UTF-8; name="pgadmin_unittest_modular.patch" Content-Disposition: attachment; filename="pgadmin_unittest_modular.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iqi1s0ib0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy90ZXN0cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5hYTAxMjk3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3Rlc3RzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTUgQEAKKyMgIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgI3BnQWRtaW4gNCAtIFBv c3RncmVTUUwgVG9vbHMKKyMKKyMgI0NvcHlyaWdodCAoQykgMjAxMyAtIDIw MTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgI1RoaXMgc29m dHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5j ZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9t IHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y CisKKworY2xhc3MgRGF0YWJhc2VDcmVhdGVUZXN0Q2FzZShCYXNlVGVzdEdl bmVyYXRvcik6CisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgIHJl dHVybgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfYWRkLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfYWRkLnB5Cm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjYjUwOTIKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9hZGQucHkKQEAgLTAsMCArMSw5 MyBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAt IDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNl bmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQganNv bgoraW1wb3J0IHV1aWQKKworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGlt cG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uIGltcG9y dCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIHJlZ3Jlc3Npb24uY29uZmln IGltcG9ydCBhZHZhbmNlX2NvbmZpZ19kYXRhCisKKworY2xhc3MgRGF0YWJh c2VBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiCisg ICAgVGhpcyBjbGFzcyB3aWxsIGNoZWNrIHNlcnZlciBncm91cCBub2RlIHBy ZXNlbnQgb24gdGhlIG9iamVjdCBicm93c2VyJ3MKKyAgICB0cmVlIG5vZGUg YnkgcmVzcG9uc2UgY29kZS4KKyAgICAiIiIKKworICAgIHNjZW5hcmlvcyA9 IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZGF0YWJh c2Ugbm9kZS4KKyAgICAgICAgKCdDaGVjayBEYXRhYmFzZXMgTm9kZSBVUkwn LCBkaWN0KHVybD0nL2Jyb3dzZXIvZGF0YWJhc2Uvb2JqLycpKQorICAgIF0K KworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb24gcGVyZm9ybSB0aGUgdHdvIHRhc2tzCisgICAgICAg ICAxLiBMb2dpbiB0byB0ZXN0IGNsaWVudAorICAgICAgICAgMi4gQWRkIHRo ZSB0ZXN0IHNlcnZlcgorCisgICAgICAgIDpyZXR1cm46IE5vbmUKKyAgICAg ICAgIiIiCisKKyAgICAgICAgdXRpbHMubG9naW5fdGVzdGVyX2FjY291bnQo c2VsZi50ZXN0ZXIpCisgICAgICAgICMgQWRkIHRoZSBzZXJ2ZXIKKyAgICAg ICAgdXRpbHMuYWRkX3NlcnZlcihzZWxmLnRlc3RlcikKKworICAgIGRlZiBy dW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxs IGFkZCBkYXRhYmFzZSB1bmRlciAxc3Qgc2VydmVyIG9mIHRyZWUgbm9kZS4g IiIiCisKKyAgICAgICAgc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UsIHNlcnZl cl9ncm91cCwgc2VydmVyX2lkID0gXAorICAgICAgICAgICAgdXRpbHMuY29u bmVjdF9zZXJ2ZXIoc2VsZi50ZXN0ZXIpCisKKyAgICAgICAgaWYgc2VydmVy X2Nvbm5lY3RfcmVzcG9uc2VbJ2RhdGEnXVsnY29ubmVjdGVkJ106CisgICAg ICAgICAgICBkYXRhID0geworICAgICAgICAgICAgICAgICJkYXRhY2wiOiBh ZHZhbmNlX2NvbmZpZ19kYXRhWyd0ZXN0X2FkZF9kYXRhYmFzZV9kYXRhJ11b MF0KKyAgICAgICAgICAgICAgICBbJ3Rlc3RfcHJpdmlsZWdlc19hY2wnXSwK KyAgICAgICAgICAgICAgICAiZGF0Y29ubmxpbWl0IjogYWR2YW5jZV9jb25m aWdfZGF0YQorICAgICAgICAgICAgICAgIFsndGVzdF9hZGRfZGF0YWJhc2Vf ZGF0YSddWzBdWyd0ZXN0X2Nvbm5fbGltaXQnXSwKKyAgICAgICAgICAgICAg ICAiZGF0b3duZXIiOiBhZHZhbmNlX2NvbmZpZ19kYXRhCisgICAgICAgICAg ICAgICAgWyd0ZXN0X2FkZF9kYXRhYmFzZV9kYXRhJ11bMF1bJ3Rlc3Rfb3du ZXInXSwKKyAgICAgICAgICAgICAgICAiZGVmZnVuY2FjbCI6IGFkdmFuY2Vf Y29uZmlnX2RhdGEKKyAgICAgICAgICAgICAgICBbJ3Rlc3RfYWRkX2RhdGFi YXNlX2RhdGEnXVswXVsndGVzdF9mdW5fYWNsJ10sCisgICAgICAgICAgICAg ICAgImRlZnNlcWFjbCI6IGFkdmFuY2VfY29uZmlnX2RhdGEKKyAgICAgICAg ICAgICAgICBbJ3Rlc3RfYWRkX2RhdGFiYXNlX2RhdGEnXVswXVsndGVzdF9z ZXFfYWNsJ10sCisgICAgICAgICAgICAgICAgImRlZnRibGFjbCI6IGFkdmFu Y2VfY29uZmlnX2RhdGEKKyAgICAgICAgICAgICAgICBbJ3Rlc3RfYWRkX2Rh dGFiYXNlX2RhdGEnXVswXVsndGVzdF90YmxfYWNsJ10sCisgICAgICAgICAg ICAgICAgImRlZnR5cGVhY2wiOiBhZHZhbmNlX2NvbmZpZ19kYXRhCisgICAg ICAgICAgICAgICAgWyd0ZXN0X2FkZF9kYXRhYmFzZV9kYXRhJ11bMF1bJ3Rl c3RfdHlwZV9hY2wnXSwKKyAgICAgICAgICAgICAgICAiZW5jb2RpbmciOiBh ZHZhbmNlX2NvbmZpZ19kYXRhCisgICAgICAgICAgICAgICAgWyd0ZXN0X2Fk ZF9kYXRhYmFzZV9kYXRhJ11bMF1bJ3Rlc3RfZW5jb2RpbmcnXSwKKyAgICAg ICAgICAgICAgICAibmFtZSI6IHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0sCisg ICAgICAgICAgICAgICAgInByaXZpbGVnZXMiOiBhZHZhbmNlX2NvbmZpZ19k YXRhCisgICAgICAgICAgICAgICAgWyd0ZXN0X2FkZF9kYXRhYmFzZV9kYXRh J11bMF1bJ3Rlc3RfcHJpdmlsZWdlcyddLAorICAgICAgICAgICAgICAgICJz ZWN1cml0aWVzIjogYWR2YW5jZV9jb25maWdfZGF0YQorICAgICAgICAgICAg ICAgIFsndGVzdF9hZGRfZGF0YWJhc2VfZGF0YSddWzBdWyd0ZXN0X3NlY3Vy aXRpZXMnXSwKKyAgICAgICAgICAgICAgICAidmFyaWFibGVzIjogYWR2YW5j ZV9jb25maWdfZGF0YQorICAgICAgICAgICAgICAgIFsndGVzdF9hZGRfZGF0 YWJhc2VfZGF0YSddWzBdWyd0ZXN0X3ZhcmlhYmxlcyddCisgICAgICAgICAg ICB9CisKKyAgICAgICAgICAgIGRiX3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIu cG9zdChzZWxmLnVybCArIHN0cihzZXJ2ZXJfZ3JvdXApICsgIi8iCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzZXJ2 ZXJfaWQgKyAiLyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlw ZT0naHRtbC9qc29uJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShk Yl9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAgICAgICAgICAgcmVz cG9uc2VfZGF0YSA9IGpzb24ubG9hZHMoZGJfcmVzcG9uc2UuZGF0YS5kZWNv ZGUoKSkKKyAgICAgICAgICAgIHV0aWxzLndyaXRlX2RiX3BhcmVudF9pZChy ZXNwb25zZV9kYXRhKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAg ICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSAn cGFyZW50X2lkLnBrbCcgZmlsZSB3aGljaCBpcyBjcmVhdGVkIGluCisgICAg ICAgIHNldHVwKCkgZnVuY3Rpb24uIEFsc28gdGhpcyBmdW5jdGlvbiBsb2dv dXQgdGhlIHRlc3QgY2xpZW50CisKKyAgICAgICAgOnJldHVybjogTm9uZQor ICAgICAgICAiIiIKKworICAgICAgICB1dGlscy5kZWxldGVfcGFyZW50X2lk X2ZpbGUoKQorICAgICAgICB1dGlscy5sb2dvdXRfdGVzdGVyX2FjY291bnQo c2VsZi50ZXN0ZXIpCisKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0 X2RiX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2RlbGV0ZS5w eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjE5MDVi Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfZGVs ZXRlLnB5CkBAIC0wLDAgKzEsNzAgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBD b3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9w bWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIg dGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKworaW1wb3J0IGpzb24KKworZnJvbSBwZ2FkbWluLnV0aWxzLnJv dXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9u IGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIHJlZ3Jlc3Npb24u Y29uZmlnIGltcG9ydCBjb25maWdfZGF0YQorZnJvbSByZWdyZXNzaW9uLnRl c3Rfbm9kZXMgaW1wb3J0IHRlc3RfZ2V0bm9kZXMKK2Zyb20gcmVncmVzc2lv bi50ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRzCisKKworY2xhc3MgRGF0YWJh c2VEZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIi IFRoaXMgY2xhc3Mgd2lsbCBkZWxldGUgdGhlIGRhdGFiYXNlIHVuZGVyIGxh c3QgYWRkZWQgc2VydmVyLiAiIiIKKworICAgIHNjZW5hcmlvcyA9IFsKKyAg ICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZGF0YWJhc2Ugbm9k ZS4KKyAgICAgICAgKCdDaGVjayBEYXRhYmFzZXMgTm9kZSBVUkwnLCBkaWN0 KHVybD0nL2Jyb3dzZXIvZGF0YWJhc2Uvb2JqLycpKQorICAgIF0KKworICAg IGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMg ZnVuY3Rpb24gcGVyZm9ybSB0aGUgdGhyZWUgdGFza3MKKyAgICAgICAgIDEu IExvZ2luIHRvIHRlc3QgY2xpZW50CisgICAgICAgICAyLiBBZGQgdGhlIHRl c3Qgc2VydmVyCisgICAgICAgICAzLiBDb25uZWN0IHRvIHNlcnZlcgorCisg ICAgICAgIDpyZXR1cm46IE5vbmUKKyAgICAgICAgIiIiCisKKyAgICAgICAg dXRpbHMubG9naW5fdGVzdGVyX2FjY291bnQoc2VsZi50ZXN0ZXIpCisgICAg ICAgICMgRmlyc3RseSwgYWRkIHRoZSBzZXJ2ZXIKKyAgICAgICAgdXRpbHMu YWRkX3NlcnZlcihzZWxmLnRlc3RlcikKKyAgICAgICAgIyBTZWNvbmRseSwg Y29ubmVjdCB0byBzZXJ2ZXIvZGF0YWJhc2UKKyAgICAgICAgdXRpbHMuY29u bmVjdF9zZXJ2ZXIoc2VsZi50ZXN0ZXIpCisKKyAgICBkZWYgcnVuVGVzdChz ZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUg dGhlIGRhdGFiYXNlLiIiIgorCisgICAgICAgIGFsbF9pZCA9IGdldF9pZHMo KQorICAgICAgICBzZXJ2ZXJfaWQgPSBhbGxfaWRbInNpZCJdWzBdCisgICAg ICAgIGRiX2lkID0gYWxsX2lkWyJkaWQiXVswXQorICAgICAgICBzcnZfZ3Jw ID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKyAgICAgICAg ZGJfY29uID0gdGVzdF9nZXRub2Rlcyhub2RlPXNlbGYpCisgICAgICAgIGlm IGxlbihkYl9jb24pID09IDA6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oIk5vIGRhdGFiYXNlKHMpIHRvIGRlbGV0ZSEhISIpCisgICAgICAgIHJl c3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKHNlbGYudXJsICsgc3RyKHNy dl9ncnApICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3df cmVkaXJlY3RzPVRydWUpCisKKyAgICAgICAgcmVzcG9uc2VfZGF0YSA9IGpz b24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKyAgICAgICAgc2Vs Zi5hc3NlcnRUcnVlKHJlc3BvbnNlX2RhdGFbJ3N1Y2Nlc3MnXSwgMSkKKwor ICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgJ3BhcmVudF9pZC5wa2wnIGZp bGUgd2hpY2ggaXMgY3JlYXRlZCBpbgorICAgICAgICBzZXR1cCgpIGZ1bmN0 aW9uLiBBbHNvIHRoaXMgZnVuY3Rpb24gbG9nb3V0IHRoZSB0ZXN0IGNsaWVu dAorCisgICAgICAgIDpyZXR1cm46IE5vbmUKKyAgICAgICAgIiIiCisKKyAg ICAgICAgdXRpbHMuZGVsZXRlX3BhcmVudF9pZF9maWxlKCkKKyAgICAgICAg dXRpbHMubG9nb3V0X3Rlc3Rlcl9hY2NvdW50KHNlbGYudGVzdGVyKQorCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9nZXQucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvdGVzdHMvdGVzdF9kYl9nZXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uZTA3ZmJiYQotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy90ZXN0cy90ZXN0X2RiX2dldC5weQpAQCAtMCwwICsxLDY3IEBACisj ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3Rn cmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwg VGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJl IGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMK KyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVz c2lvbiBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSByZWdyZXNz aW9uLmNvbmZpZyBpbXBvcnQgY29uZmlnX2RhdGEKK2Zyb20gcmVncmVzc2lv bi50ZXN0X25vZGVzIGltcG9ydCB0ZXN0X2dldG5vZGVzCitmcm9tIHJlZ3Jl c3Npb24udGVzdF91dGlscyBpbXBvcnQgZ2V0X2lkcworCisKK2NsYXNzIERh dGFiYXNlc0dldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAi IiIKKyAgICBUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggZGF0YWJhc2UgYWRkZWQg dW5kZXIgbGFzdCBhZGRlZCBzZXJ2ZXIuCisgICAgIiIiCisKKyAgICBzY2Vu YXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9y IGRhdGFiYXNlIG5vZGUuCisgICAgICAgICgnQ2hlY2sgRGF0YWJhc2VzIE5v ZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL2RhdGFiYXNlL29iai8nKSkK KyAgICBdCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgICIiIgor ICAgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm0gdGhlIHRocmVlIHRhc2tz CisgICAgICAgICAxLiBMb2dpbiB0byB0ZXN0IGNsaWVudAorICAgICAgICAg Mi4gQWRkIHRoZSB0ZXN0IHNlcnZlcgorICAgICAgICAgMy4gQ29ubmVjdCB0 byBzZXJ2ZXIKKworICAgICAgICA6cmV0dXJuOiBOb25lCisgICAgICAgICIi IgorCisgICAgICAgIHV0aWxzLmxvZ2luX3Rlc3Rlcl9hY2NvdW50KHNlbGYu dGVzdGVyKQorICAgICAgICAjIEZpcnN0bHksIGFkZCB0aGUgc2VydmVyCisg ICAgICAgIHV0aWxzLmFkZF9zZXJ2ZXIoc2VsZi50ZXN0ZXIpCisgICAgICAg ICMgU2Vjb25kbHksIGNvbm5lY3QgdG8gc2VydmVyL2RhdGFiYXNlCisgICAg ICAgIHV0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYudGVzdGVyKQorCisgICAg ZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9u IHdpbGwgZmV0Y2ggYWRkZWQgZGF0YWJhc2UuICIiIgorCisgICAgICAgIGFs bF9pZCA9IGdldF9pZHMoKQorICAgICAgICBzZXJ2ZXJfaWQgPSBhbGxfaWRb InNpZCJdWzBdCisgICAgICAgIGRiX2lkID0gYWxsX2lkWyJkaWQiXVswXQor ICAgICAgICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dy b3VwJ10KKworICAgICAgICBkYl9jb24gPSB0ZXN0X2dldG5vZGVzKG5vZGU9 c2VsZikKKyAgICAgICAgaWYgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNl IGNvbm5lY3RlZC4iOgorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5nZXQoc2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAnLycgKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZl cl9pZCkgKyAnLycgKyBzdHIoZGJfaWQpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQor ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVz X2NvZGUsIDIwMCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgJ3Bh cmVudF9pZC5wa2wnIGZpbGUgd2hpY2ggaXMgY3JlYXRlZCBpbgorICAgICAg ICBzZXR1cCgpIGZ1bmN0aW9uLiBBbHNvIHRoaXMgZnVuY3Rpb24gbG9nb3V0 IHRoZSB0ZXN0IGNsaWVudAorCisgICAgICAgIDpyZXR1cm46IE5vbmUKKyAg ICAgICAgIiIiCisKKyAgICAgICAgdXRpbHMuZGVsZXRlX3BhcmVudF9pZF9m aWxlKCkKKyAgICAgICAgdXRpbHMubG9nb3V0X3Rlc3Rlcl9hY2NvdW50KHNl bGYudGVzdGVyKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJf cHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfcHV0LnB5Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkMzY0MDAKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9wdXQucHkKQEAgLTAs MCArMSw3NiBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0Fk bWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykg MjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMg VGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNR TCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBv cnQganNvbgorCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJh c2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3Rf dXRpbHMgYXMgdXRpbHMKK2Zyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0 IGNvbmZpZ19kYXRhLCBhZHZhbmNlX2NvbmZpZ19kYXRhCitmcm9tIHJlZ3Jl c3Npb24udGVzdF9ub2RlcyBpbXBvcnQgdGVzdF9nZXRub2RlcworZnJvbSBy ZWdyZXNzaW9uLnRlc3RfdXRpbHMgaW1wb3J0IGdldF9pZHMKKworCitjbGFz cyBEYXRhYmFzZXNVcGRhdGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6 CisgICAgIiIiCisgICAgVGhpcyBjbGFzcyB3aWxsIHVwZGF0ZSB0aGUgZGF0 YWJhc2UgdW5kZXIgbGFzdCBhZGRlZCBzZXJ2ZXIuCisgICAgIiIiCisKKyAg ICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBV UkwgZm9yIGRhdGFiYXNlIG5vZGUuCisgICAgICAgICgnQ2hlY2sgRGF0YWJh c2VzIE5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvZGF0YWJhc2Uvb2JqLycp KQorICAgIF0KKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgIiIi CisgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybSB0aGUgdGhyZWUgdGFz a3MKKyAgICAgICAgIDEuIExvZ2luIHRvIHRlc3QgY2xpZW50CisgICAgICAg ICAyLiBBZGQgdGhlIHRlc3Qgc2VydmVyCisgICAgICAgICAzLiBDb25uZWN0 IHRvIHNlcnZlcgorCisgICAgICAgIDpyZXR1cm46IE5vbmUKKyAgICAgICAg IiIiCisKKyAgICAgICAgdXRpbHMubG9naW5fdGVzdGVyX2FjY291bnQoc2Vs Zi50ZXN0ZXIpCisgICAgICAgICMgRmlyc3RseSwgYWRkIHRoZSBzZXJ2ZXIK KyAgICAgICAgdXRpbHMuYWRkX3NlcnZlcihzZWxmLnRlc3RlcikKKyAgICAg ICAgIyBTZWNvbmRseSwgY29ubmVjdCB0byBzZXJ2ZXIvZGF0YWJhc2UKKyAg ICAgICAgdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZi50ZXN0ZXIpCisKKyAg ICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rp b24gd2lsbCB1cGRhdGUgdGhlIGNvbW1lbnRzIGZpZWxkIG9mIGRhdGFiYXNl LiIiIgorCisgICAgICAgIGFsbF9pZCA9IGdldF9pZHMoKQorICAgICAgICBz ZXJ2ZXJfaWQgPSBhbGxfaWRbInNpZCJdWzBdCisgICAgICAgIGRiX2lkID0g YWxsX2lkWyJkaWQiXVswXQorICAgICAgICB0ZXN0X2dldG5vZGVzKG5vZGU9 c2VsZikKKyAgICAgICAgc3J2X2dycCA9IGNvbmZpZ19kYXRhWyd0ZXN0X3Nl cnZlcl9ncm91cCddCisKKyAgICAgICAgZGF0YSA9IHsKKyAgICAgICAgICAg ICJjb21tZW50cyI6IGFkdmFuY2VfY29uZmlnX2RhdGFbInRlc3RfZGJfdXBk YXRlX2RhdGEiXVswXQorICAgICAgICAgICAgWyJ0ZXN0X2NvbW1lbnQiXSwK KyAgICAgICAgICAgICJpZCI6IGRiX2lkCisgICAgICAgIH0KKworICAgICAg ICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoc2VsZi51cmwgKyBz dHIoc3J2X2dycCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJf aWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorICAg ICAgICBzZWxmLmFzc2VydEVxdWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2Nv ZGUsIDIwMCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAg IiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgJ3BhcmVu dF9pZC5wa2wnIGZpbGUgd2hpY2ggaXMgY3JlYXRlZCBpbgorICAgICAgICBz ZXR1cCgpIGZ1bmN0aW9uLiBBbHNvIHRoaXMgZnVuY3Rpb24gbG9nb3V0IHRo ZSB0ZXN0IGNsaWVudAorCisgICAgICAgIDpyZXR1cm46IE5vbmUKKyAgICAg ICAgIiIiCisKKyAgICAgICAgdXRpbHMuZGVsZXRlX3BhcmVudF9pZF9maWxl KCkKKyAgICAgICAgdXRpbHMubG9nb3V0X3Rlc3Rlcl9hY2NvdW50KHNlbGYu dGVzdGVyKQorCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL19f aW5pdF9fLnB5CmluZGV4IDI4Y2RiOTQuLjU1YTNhMTcgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rl c3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0xMiw0 ICsxMiw0IEBAIGZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKIAogY2xhc3MgU2VydmVyR2VuZXJhdGVUZXN0Q2Fz ZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6 Ci0gICAgICAgIHByaW50ICgiSW4gU2VydmVyR2VuZXJhdGVUZXN0Q2FzZS4u LiIpCisgICAgICAgIHJldHVybgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2FkZC5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rl c3Rfc2VydmVyX2FkZC5weQppbmRleCAwYWYxM2QzLi4zNTkyY2YyIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy90ZXN0cy90ZXN0X3NlcnZlcl9hZGQucHkKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9z ZXJ2ZXJfYWRkLnB5CkBAIC05LDQ1ICs5LDQ3IEBACiAKIGltcG9ydCBqc29u CiAKLWZyb20gcGdhZG1pbi5icm93c2VyLnRlc3RzLnRlc3RfbG9naW4gaW1w b3J0IExvZ2luVGVzdENhc2UKLWZyb20gcmVncmVzc2lvbi5jb25maWcgaW1w b3J0IGNvbmZpZ19kYXRhCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1w b3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0 IHRlc3RfdXRpbHMgYXMgdXRpbHMKIAogCi1jbGFzcyBTZXJ2ZXJzQWRkVGVz dENhc2UoTG9naW5UZXN0Q2FzZSk6Ci0gICAgIiIiCi0gICAgVGhpcyBjbGFz cyB3aWxsIGFkZCB0aGUgc2VydmVycyB1bmRlciBkZWZhdWx0IHNlcnZlciBn cm91cCBhbmQgdmVyaWZ5IHdpdGgKLSAgICBzZXJ2ZXIncyBuYW1lLgotICAg ICIiIgotCi0gICAgcHJpb3JpdHkgPSA0CitjbGFzcyBTZXJ2ZXJzQWRkVGVz dENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIiBUaGlzIGNsYXNz IHdpbGwgYWRkIHRoZSBzZXJ2ZXJzIHVuZGVyIGRlZmF1bHQgc2VydmVyIGdy b3VwLiAiIiIKIAogICAgIHNjZW5hcmlvcyA9IFsKICAgICAgICAgIyBGZXRj aCB0aGUgZGVmYXVsdCB1cmwgZm9yIHNlcnZlciBvYmplY3QKICAgICAgICAg KCdEZWZhdWx0IFNlcnZlciBOb2RlIHVybCcsIGRpY3QodXJsPScvYnJvd3Nl ci9zZXJ2ZXIvb2JqLycpKQogICAgIF0KIAotICAgIGRlZiBydW5UZXN0KHNl bGYpOgorICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgIiIiCi0gICAg ICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgdGhlIHNlcnZlciB1bmRlciBk ZWZhdWx0IHNlcnZlciBncm91cC4KLSAgICAgICAgVmVyaWZ5IHRoZSBhZGRl ZCBzZXJ2ZXIgd2l0aCByZXNwb25zZSBjb2RlIGFzIHdlbGwgYXMgc2VydmVy IG5hbWUuCisgICAgICAgIFRoaXMgZnVuY3Rpb24gbG9naW4gdGhlIHRlc3Qg YWNjb3VudCBiZWZvcmUgcnVubmluZyB0aGUgbG9nb3V0CisgICAgICAgIHRl c3QgY2FzZQogICAgICAgICAiIiIKIAotICAgICAgICBzcnZfZ3JwID0gY29u ZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KLQotICAgICAgICBmb3Ig c3J2IGluIGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZlcl9jcmVkZW50aWFscydd OgotICAgICAgICAgICAgZGF0YSA9IHsibmFtZSI6IHNydlsndGVzdF9uYW1l J10sCi0gICAgICAgICAgICAgICAgICAgICJjb21tZW50IjogIiIsCi0gICAg ICAgICAgICAgICAgICAgICJob3N0Ijogc3J2Wyd0ZXN0X2hvc3QnXSwKLSAg ICAgICAgICAgICAgICAgICAgInBvcnQiOiBzcnZbJ3Rlc3RfZGJfcG9ydCdd LAotICAgICAgICAgICAgICAgICAgICAiZGIiOiBzcnZbJ3Rlc3RfbWFpbnRl bmFuY2VfZGInXSwKLSAgICAgICAgICAgICAgICAgICAgInVzZXJuYW1lIjog c3J2Wyd0ZXN0X2RiX3VzZXJuYW1lJ10sCi0gICAgICAgICAgICAgICAgICAg ICJyb2xlIjogIiIsCi0gICAgICAgICAgICAgICAgICAgICJzc2xtb2RlIjog c3J2Wyd0ZXN0X3NzbG1vZGUnXX0KKyAgICAgICAgdXRpbHMubG9naW5fdGVz dGVyX2FjY291bnQoc2VsZi50ZXN0ZXIpCiAKLSAgICAgICAgICAgIHVybCA9 IHNlbGYudXJsICsgc3RyKHNydl9ncnApICsgIi8iCisgICAgZGVmIHJ1blRl c3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRk IHRoZSBzZXJ2ZXIgdW5kZXIgZGVmYXVsdCBzZXJ2ZXIgZ3JvdXAuIiIiCiAK LSAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCh1cmws IGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgc2VydmVyX2dyb3Vw LCBjb25maWdfZGF0YSwgcGlja2xlX2lkX2RpY3QgPSB1dGlscy5nZXRfY29u ZmlnX2RhdGEoKQorICAgICAgICBmb3Igc2VydmVyX2RhdGEgaW4gY29uZmln X2RhdGE6CisgICAgICAgICAgICB1cmwgPSAiezB9ezF9LyIuZm9ybWF0KHNl bGYudXJsLCBzZXJ2ZXJfZ3JvdXApCisgICAgICAgICAgICByZXNwb25zZSA9 IHNlbGYudGVzdGVyLnBvc3QodXJsLCBkYXRhPWpzb24uZHVtcHMoc2VydmVy X2RhdGEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKwogICAgICAgICAgICAg c2VsZi5hc3NlcnRUcnVlKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCi0g ICAgICAgICAgICByZXNwZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0 YSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwZGF0YVsnbm9k ZSddWydsYWJlbCddLCBzcnZbJ3Rlc3RfbmFtZSddKQorCisgICAgICAgICAg ICByZXNwb25zZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRl Y29kZSgpKQorICAgICAgICAgICAgdXRpbHMud3JpdGVfcGFyZW50X2lkKHJl c3BvbnNlX2RhdGEsIHBpY2tsZV9pZF9kaWN0KQorCisgICAgZGVmIHRlYXJE b3duKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlv biBkZWxldGVzIHRoZSAncGFyZW50X2lkLnBrbCcgZmlsZSB3aGljaCBpcyBj cmVhdGVkIGluCisgICAgICAgIHNldHVwKCkgZnVuY3Rpb24uIEFsc28gdGhp cyBmdW5jdGlvbiBsb2dvdXQgdGhlIHRlc3QgY2xpZW50CisKKyAgICAgICAg OnJldHVybjogTm9uZQorICAgICAgICAiIiIKKworICAgICAgICB1dGlscy5k ZWxldGVfcGFyZW50X2lkX2ZpbGUoKQorICAgICAgICB1dGlscy5sb2dvdXRf dGVzdGVyX2FjY291bnQoc2VsZi50ZXN0ZXIpCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90 ZXN0X3NlcnZlcl9kZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9kZWxldGUu cHkKaW5kZXggMzI5ZDc0Zi4uMWU5YTY4NiAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVz dF9zZXJ2ZXJfZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2RlbGV0 ZS5weQpAQCAtOSw0OSArOSw1NiBAQAogCiBpbXBvcnQganNvbgogCi1mcm9t IHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dp blRlc3RDYXNlCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJh c2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3Rf dXRpbHMgYXMgdXRpbHMKIGZyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0 IGNvbmZpZ19kYXRhCiAKIAotY2xhc3MgU2VydmVyc0RlbGV0ZVRlc3RDYXNl KExvZ2luVGVzdENhc2UpOgotICAgICIiIgotICAgIFRoaXMgY2xhc3Mgd2ls bCBjaGVjayBzZXJ2ZXIgbm9kZSBwcmVzZW50IG9uIHRoZSBvYmplY3QgYnJv d3NlcidzIHRyZWUgbm9kZQotICAgIGJ5IHJlc3BvbnNlIGNvZGUuCi0gICAg IiIiCi0gICAgcHJpb3JpdHkgPSA3CitjbGFzcyBTZXJ2ZXJEZWxldGVUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiIFRoaXMgY2xhc3Mg d2lsbCBkZWxldGUgdGhlIGxhc3Qgc2VydmVyIHByZXNlbnQgdW5kZXIgdHJl ZSBub2RlLiIiIgogCiAgICAgc2NlbmFyaW9zID0gWwogICAgICAgICAjIEZl dGNoaW5nIHRoZSBkZWZhdWx0IHVybCBmb3Igc2VydmVyIG5vZGUKICAgICAg ICAgKCdEZWZhdWx0IFNlcnZlciBOb2RlIHVybCcsIGRpY3QodXJsPScvYnJv d3Nlci9zZXJ2ZXIvb2JqLycpKQogICAgIF0KIAotICAgIGRlZiBydW5UZXN0 KHNlbGYpOgorICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgIiIiCi0g ICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBnZXQgYWxsIGF2YWlsYWJsZSBz ZXJ2ZXJzIHVuZGVyIG9iamVjdCBicm93c2VyCi0gICAgICAgIGFuZCBkZWxl dGUgdGhlIHNlcnZlcnMgdXNpbmcgc2VydmVyIGlkLgorICAgICAgICBUaGlz IGZ1bmN0aW9uIHBlcmZvcm0gdGhlIHR3byB0YXNrcworICAgICAgICAgMS4g TG9naW4gdG8gdGVzdCBjbGllbnQKKyAgICAgICAgIDIuIEFkZCB0aGUgdGVz dCBzZXJ2ZXIKKworICAgICAgICA6cmV0dXJuOiBOb25lCiAgICAgICAgICIi IgogCi0gICAgICAgIHNydl9ncnAgPSBjb25maWdfZGF0YVsndGVzdF9zZXJ2 ZXJfZ3JvdXAnXQorICAgICAgICB1dGlscy5sb2dpbl90ZXN0ZXJfYWNjb3Vu dChzZWxmLnRlc3RlcikKKyAgICAgICAgIyBGaXJzdGx5LCBhZGQgdGhlIHNl cnZlcgorICAgICAgICB1dGlscy5hZGRfc2VydmVyKHNlbGYudGVzdGVyKQog Ci0gICAgICAgIGZvciBzcnYgaW4gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVy X2NyZWRlbnRpYWxzJ106CisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAg ICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2V0IGFsbCBhdmFpbGFibGUg c2VydmVycyB1bmRlciBvYmplY3QgYnJvd3NlcgorICAgICAgICBhbmQgZGVs ZXRlIHRoZSBsYXN0IHNlcnZlciB1c2luZyBzZXJ2ZXIgaWQuIiIiCiAKLSAg ICAgICAgICAgIGRhdGEgPSB7Im5hbWUiOiBzcnZbJ3Rlc3RfbmFtZSddLAot ICAgICAgICAgICAgICAgICAgICAiaG9zdCI6IHNydlsndGVzdF9ob3N0J10s Ci0gICAgICAgICAgICAgICAgICAgICJwb3J0Ijogc3J2Wyd0ZXN0X2RiX3Bv cnQnXSwKLSAgICAgICAgICAgICAgICAgICAgImRiIjogc3J2Wyd0ZXN0X21h aW50ZW5hbmNlX2RiJ10sCi0gICAgICAgICAgICAgICAgICAgICJ1c2VybmFt ZSI6IHNydlsndGVzdF9kYl91c2VybmFtZSddLAotICAgICAgICAgICAgICAg ICAgICAicm9sZSI6ICIiLAotICAgICAgICAgICAgICAgICAgICAic3NsbW9k ZSI6IHNydlsndGVzdF9zc2xtb2RlJ119CisgICAgICAgIHNydl9ncnAgPSBj b25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3JvdXAnXQorICAgICAgICB1cmwg PSBzZWxmLnVybCArIHN0cihzcnZfZ3JwKSArICIvIgorICAgICAgICByZXNw b25zZSA9IHNlbGYudGVzdGVyLmdldCh1cmwpCisgICAgICAgIHJlc3BvbnNl X2RhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCkpCisg ICAgICAgIGlmIGxlbihyZXNwb25zZV9kYXRhKSA9PSAwOgorICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJObyBzZXJ2ZXIocykgdG8gZGVsZXRlISEh IikKIAotICAgICAgICAgICAgdXJsID0gc2VsZi51cmwgKyBzdHIoc3J2X2dy cCkgKyAiLyIKKyAgICAgICAgIyBEZWxldGUgbGFzdCBzZXJ2ZXIKKyAgICAg ICAgc2VydmVyID0gcmVzcG9uc2VfZGF0YVstMV0KKyAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5kZWxldGUodXJsICsgc3RyKHNlcnZlclsnaWQn XSkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwb25zZS5zdGF0dXNf Y29kZSwgMjAwKQorICAgICAgICByZXNwb25zZV9kYXRhID0ganNvbi5sb2Fk cyhyZXNwb25zZS5kYXRhLmRlY29kZSgpKQorICAgICAgICBzZWxmLmFzc2Vy dFRydWUocmVzcG9uc2VfZGF0YVsnc3VjY2VzcyddLCAxKQogCi0gICAgICAg ICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCh1cmwsIGRhdGE9anNv bi5kdW1wcyhkYXRhKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKLSAgICAgICAg ICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAw KQotICAgICAgICAgICAgcmVzcGRhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNl LmRhdGEpCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAiIiIK KyAgICAgICAgVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSAncGFyZW50X2lk LnBrbCcgZmlsZSB3aGljaCBpcyBjcmVhdGVkIGluCisgICAgICAgIHNldHVw KCkgZnVuY3Rpb24uIEFsc28gdGhpcyBmdW5jdGlvbiBsb2dvdXQgdGhlIHRl c3QgY2xpZW50CiAKLSAgICAgICAgICAgIGZvciBzZXJ2ZXIgaW4gcmVzcGRh dGE6Ci0gICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5k ZWxldGUodXJsICsganNvbi5kdW1wcyhzZXJ2ZXJbJ2lkJ10pKQotICAgICAg ICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwb25zZS5zdGF0dXNfY29k ZSwgMjAwKQotICAgICAgICAgICAgICAgIHJlc3BkYXRhID0ganNvbi5sb2Fk cyhyZXNwb25zZS5kYXRhKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0 VHJ1ZShyZXNwZGF0YVsnc3VjY2VzcyddLCAxKQorICAgICAgICA6cmV0dXJu OiBOb25lCisgICAgICAgICIiIgorICAgICAgICB1dGlscy5kZWxldGVfcGFy ZW50X2lkX2ZpbGUoKQorICAgICAgICB1dGlscy5sb2dvdXRfdGVzdGVyX2Fj Y291bnQoc2VsZi50ZXN0ZXIpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZl cl9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9nZXQucHkKaW5kZXggMDUwODQz ZS4uYWJmNDlhMyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfZ2V0LnB5 CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2dldC5weQpAQCAtNyw0MyArNyw1MyBA QAogIwogIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCi1pbXBv cnQganNvbgotCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xv Z2luIGltcG9ydCBMb2dpblRlc3RDYXNlCitmcm9tIHBnYWRtaW4udXRpbHMu cm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Np b24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gcmVncmVzc2lv bi5jb25maWcgaW1wb3J0IGNvbmZpZ19kYXRhCitmcm9tIHJlZ3Jlc3Npb24u dGVzdF91dGlscyBpbXBvcnQgZ2V0X2lkcwogCiAKLWNsYXNzIFNlcnZlcnNH ZXRUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKK2NsYXNzIFNlcnZlcnNHZXRU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgIiIiCi0gICAgVGhp cyBjbGFzcyB3aWxsIGNoZWNrIHNlcnZlciBub2RlIHByZXNlbnQgb24gdGhl IG9iamVjdCBicm93c2VyJ3MgdHJlZSBub2RlCisgICAgVGhpcyBjbGFzcyB3 aWxsIGZldGNoIGFkZGVkIHNlcnZlcnMgdW5kZXIgZGVmYXVsdCBzZXJ2ZXIg Z3JvdXAKICAgICBieSByZXNwb25zZSBjb2RlLgogICAgICIiIgogCi0gICAg cHJpb3JpdHkgPSA1Ci0KICAgICBzY2VuYXJpb3MgPSBbCiAgICAgICAgICMg RmV0Y2ggdGhlIGRlZmF1bHQgdXJsIGZvciBzZXJ2ZXIgbm9kZQogICAgICAg ICAoJ0RlZmF1bHQgU2VydmVyIE5vZGUgdXJsJywgZGljdCh1cmw9Jy9icm93 c2VyL3NlcnZlci9vYmovJykpCiAgICAgXQogCi0gICAgZGVmIHJ1blRlc3Qo c2VsZik6CisgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICAiIiIKLSAg ICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGdldCBhbGwgYXZhaWxhYmxlIHNl cnZlcnMgcHJlc2VudCB1bmRlcgotICAgICAgICBvYmplY3QgYnJvd3Nlci4K KyAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtIHRoZSB0d28gdGFza3MK KyAgICAgICAgIDEuIExvZ2luIHRvIHRlc3QgY2xpZW50CisgICAgICAgICAy LiBBZGQgdGhlIHRlc3Qgc2VydmVyCisKKyAgICAgICAgOnJldHVybjogTm9u ZQogICAgICAgICAiIiIKIAorICAgICAgICB1dGlscy5sb2dpbl90ZXN0ZXJf YWNjb3VudChzZWxmLnRlc3RlcikKKyAgICAgICAgdXRpbHMuYWRkX3NlcnZl cihzZWxmLnRlc3RlcikKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAg ICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIHRoZSBhZGRlZCBz ZXJ2ZXJzIHRvIG9iamVjdCBicm93c2VyLiAiIiIKKworICAgICAgICBhbGxf aWQgPSBnZXRfaWRzKCkKKyAgICAgICAgc2VydmVyX2lkcyA9IGFsbF9pZFsi c2lkIl0KICAgICAgICAgc3J2X2dycCA9IGNvbmZpZ19kYXRhWyd0ZXN0X3Nl cnZlcl9ncm91cCddCiAKLSAgICAgICAgZm9yIHNydiBpbiBjb25maWdfZGF0 YVsndGVzdF9zZXJ2ZXJfY3JlZGVudGlhbHMnXToKLSAgICAgICAgICAgIGRh dGEgPSB7Im5hbWUiOiBzcnZbJ3Rlc3RfbmFtZSddLAotICAgICAgICAgICAg ICAgICAgICAiaG9zdCI6IHNydlsndGVzdF9ob3N0J10sCi0gICAgICAgICAg ICAgICAgICAgICJwb3J0Ijogc3J2Wyd0ZXN0X2RiX3BvcnQnXSwKLSAgICAg ICAgICAgICAgICAgICAgImRiIjogc3J2Wyd0ZXN0X21haW50ZW5hbmNlX2Ri J10sCi0gICAgICAgICAgICAgICAgICAgICJ1c2VybmFtZSI6IHNydlsndGVz dF9kYl91c2VybmFtZSddLAotICAgICAgICAgICAgICAgICAgICAicm9sZSI6 ICIiLAotICAgICAgICAgICAgICAgICAgICAic3NsbW9kZSI6IHNydlsndGVz dF9zc2xtb2RlJ119Ci0KLSAgICAgICAgICAgIHVybCA9IHNlbGYudXJsICsg c3RyKHNydl9ncnApICsgIi8iCi0gICAgICAgICAgICByZXNwb25zZSA9IHNl bGYudGVzdGVyLmdldCh1cmwsIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRf dHlwZT0naHRtbC9qc29uJykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1 ZShyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAgICAgICBmb3Igc2Vy dmVyX2lkIGluIHNlcnZlcl9pZHM6CisgICAgICAgICAgICB1cmwgPSAiezB9 ezF9L3syfSIuZm9ybWF0KHNlbGYudXJsLCBzcnZfZ3JwLCBzZXJ2ZXJfaWQp CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCh1cmws IGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKyAgICAgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAg ICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBU aGlzIGZ1bmN0aW9uIGRlbGV0ZXMgdGhlICdwYXJlbnRfaWQucGtsJyBmaWxl IHdoaWNoIGlzIGNyZWF0ZWQgaW4KKyAgICAgICAgc2V0dXAoKSBmdW5jdGlv bi4gQWxzbyB0aGlzIGZ1bmN0aW9uIGxvZ291dCB0aGUgdGVzdCBjbGllbnQK KworICAgICAgICA6cmV0dXJuOiBOb25lCisgICAgICAgICIiIgorICAgICAg ICB1dGlscy5kZWxldGVfcGFyZW50X2lkX2ZpbGUoKQorICAgICAgICB1dGls cy5sb2dvdXRfdGVzdGVyX2FjY291bnQoc2VsZi50ZXN0ZXIpCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy90ZXN0cy90ZXN0X3NlcnZlcl9wdXQucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9w dXQucHkKaW5kZXggMzA2YmIwMy4uZTJjZDMyOSAxMDA2NDQKLS0tIGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMv dGVzdF9zZXJ2ZXJfcHV0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX3B1dC5w eQpAQCAtOSw1NyArOSw2NiBAQAogCiBpbXBvcnQganNvbgogCi1mcm9tIHBn YWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dpblRl c3RDYXNlCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRp bHMgYXMgdXRpbHMKIGZyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0IGNv bmZpZ19kYXRhCiAKIAotY2xhc3MgU2VydmVyc1VwZGF0ZVRlc3RDYXNlKExv Z2luVGVzdENhc2UpOgotICAgICIiIgotICAgIFRoaXMgY2xhc3Mgd2lsbCBj aGVjayBzZXJ2ZXIgbm9kZSBwcmVzZW50IG9uIHRoZSBvYmplY3QgYnJvd3Nl cidzIHRyZWUgbm9kZQotICAgIGJ5IHJlc3BvbnNlIGNvZGUuCi0gICAgIiIi Ci0KLSAgICBwcmlvcml0eSA9IDYKK2NsYXNzIFNlcnZlclVwZGF0ZVRlc3RD YXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3 aWxsIHVwZGF0ZSBzZXJ2ZXIncyBjb21tZW50IGZpZWxkLiAiIiIKIAogICAg IHNjZW5hcmlvcyA9IFsKICAgICAgICAgIyBGZXRjaGluZyB0aGUgZGVmYXVs dCB1cmwgZm9yIHNlcnZlciBub2RlCiAgICAgICAgICgnRGVmYXVsdCBTZXJ2 ZXIgTm9kZSB1cmwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvc2VydmVyL29iai8n KSkKICAgICBdCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAg IiIiCi0gICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBlZGl0IGFuZCB1cGRh dGUgdGhlIHNlcnZlcidzIGNvbW1lbnQgZmllbGQKLSAgICAgICAgYnkgdGhl IHNlcnZlciBpZC4KKyAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgICIi IgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm0gdGhlIGZvdXIgdGFz a3MKKyAgICAgICAgIDEuIExvZ2luIHRvIHRlc3QgY2xpZW50CisgICAgICAg ICAyLiBBZGQgdGhlIHRlc3Qgc2VydmVyCisgICAgICAgICAzLiBHZXQgdGhl IHNlcnZlcgorICAgICAgICAgNC4gQ29ubmVjdCB0byBzZXJ2ZXIKIAotICAg ICAgICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3Vw J10KKyAgICAgICAgOnJldHVybjogTm9uZQorICAgICAgICAiIiIKIAotICAg ICAgICBmb3Igc3J2IGluIGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZlcl9jcmVk ZW50aWFscyddOgorICAgICAgICB1dGlscy5sb2dpbl90ZXN0ZXJfYWNjb3Vu dChzZWxmLnRlc3RlcikKKyAgICAgICAgIyBGaXJzdGx5LCBhZGQgdGhlIHNl cnZlcgorICAgICAgICB1dGlscy5hZGRfc2VydmVyKHNlbGYudGVzdGVyKQor ICAgICAgICAjIEdldCB0aGUgc2VydmVyCisgICAgICAgIHV0aWxzLmdldF9z ZXJ2ZXIoc2VsZi50ZXN0ZXIpCisgICAgICAgICMgQ29ubmVjdCB0byBzZXJ2 ZXIKKyAgICAgICAgc2VsZi5zZXJ2ZXJfY29ubmVjdCwgc2VsZi5zZXJ2ZXJf Z3JvdXAsIHNlbGYuc2VydmVyX2lkID0gXAorICAgICAgICAgICAgdXRpbHMu Y29ubmVjdF9zZXJ2ZXIoc2VsZi50ZXN0ZXIpCisgICAgICAgIGlmIGxlbihz ZWxmLnNlcnZlcl9jb25uZWN0KSA9PSAwOgorICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJObyBTZXJ2ZXIocykgY29ubmVjdGVkIHRvIHVwZGF0ZSEh ISIpCiAKLSAgICAgICAgICAgIGRhdGEgPSB7Im5hbWUiOiBzcnZbJ3Rlc3Rf bmFtZSddLAotICAgICAgICAgICAgICAgICAgICAiaG9zdCI6IHNydlsndGVz dF9ob3N0J10sCi0gICAgICAgICAgICAgICAgICAgICJwb3J0Ijogc3J2Wyd0 ZXN0X2RiX3BvcnQnXSwKLSAgICAgICAgICAgICAgICAgICAgImRiIjogc3J2 Wyd0ZXN0X21haW50ZW5hbmNlX2RiJ10sCi0gICAgICAgICAgICAgICAgICAg ICJ1c2VybmFtZSI6IHNydlsndGVzdF9kYl91c2VybmFtZSddLAotICAgICAg ICAgICAgICAgICAgICAicm9sZSI6ICIiLAotICAgICAgICAgICAgICAgICAg ICAic3NsbW9kZSI6IHNydlsndGVzdF9zc2xtb2RlJ119CisgICAgZGVmIHJ1 blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwg dXBkYXRlIHRoZSBzZXJ2ZXIncyBjb21tZW50IGZpZWxkLiAiIiIKIAotICAg ICAgICAgICAgdXJsID0gc2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAiLyIK KyAgICAgICAgZGF0YSA9IHsKKyAgICAgICAgICAgICJjb21tZW50IjoKKyAg ICAgICAgICAgICAgICBjb25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfdXBkYXRl X2RhdGEnXVsndGVzdF9jb21tZW50J10sCisgICAgICAgICAgICAiaWQiOiBz ZWxmLnNlcnZlcl9pZAorICAgICAgICB9CiAKLSAgICAgICAgICAgIHJlc3Bv bnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHVybCwgZGF0YT1qc29uLmR1bXBzKGRh dGEpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAgICAgICBwdXRfcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5wdXQoCisgICAgICAgICAgICBzZWxmLnVybCAr IHN0cihzZWxmLnNlcnZlcl9ncm91cCkgKyAnLycgKworICAgICAgICAgICAg c3RyKHNlbGYuc2VydmVyX2lkKSwgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAor ICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAgICAg ICBzZWxmLmFzc2VydEVxdWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUs IDIwMCkKIAotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3BvbnNl LnN0YXR1c19jb2RlLCAyMDApCi0gICAgICAgICAgICByZXNwZGF0YSA9IGpz b24ubG9hZHMocmVzcG9uc2UuZGF0YSkKKyAgICAgICAgcmVzcG9uc2VfZGF0 YSA9IGpzb24ubG9hZHMocHV0X3Jlc3BvbnNlLmRhdGEuZGVjb2RlKCkpCisg ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwb25zZV9kYXRhWydzdWNjZXNz J10sIDEpCiAKLSAgICAgICAgICAgIGZvciBzZXJ2ZXIgaW4gcmVzcGRhdGE6 CisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAg ICAgVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSAncGFyZW50X2lkLnBrbCcg ZmlsZSB3aGljaCBpcyBjcmVhdGVkIGluCisgICAgICAgIHNldHVwKCkgZnVu Y3Rpb24uIEFsc28gdGhpcyBmdW5jdGlvbiBsb2dvdXQgdGhlIHRlc3QgY2xp ZW50CiAKLSAgICAgICAgICAgICAgICB1cmwgPSBzZWxmLnVybCArIHN0cihz cnZfZ3JwKSArICIvIiArIGpzb24uZHVtcHMoc2VydmVyWydpZCddKQorICAg ICAgICA6cmV0dXJuOiBOb25lCisgICAgICAgICIiIgogCi0gICAgICAgICAg ICAgICAgZm9yIHNlcnZlciBpbiBjb25maWdfZGF0YVsndGVzdF9zZXJ2ZXJf dXBkYXRlX2RhdGEnXToKLSAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHsi Y29tbWVudCI6IHNlcnZlclsndGVzdF9jb21tZW50J119Ci0gICAgICAgICAg ICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KHVybCwgZGF0 YT1qc29uLmR1bXBzKGRhdGEpLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNv bicpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNw b25zZS5zdGF0dXNfY29kZSwgMjAwKQotICAgICAgICAgICAgICAgICAgICBy ZXNwZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YSkKLSAgICAgICAg ICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3BkYXRhWydzdWNjZXNz J10sIDEpCisgICAgICAgIHV0aWxzLmRlbGV0ZV9wYXJlbnRfaWRfZmlsZSgp CisgICAgICAgIHV0aWxzLmxvZ291dF90ZXN0ZXJfYWNjb3VudChzZWxmLnRl c3RlcikKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy90ZXN0cy9fX2luaXRfXy5weQppbmRleCA5ZmFi ZWQ5Li43ZmRkNWM3IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvdGVzdHMvX19pbml0X18ucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Rlc3RzL19faW5pdF9fLnB5 CkBAIC0xMiw0ICsxMiw0IEBAIGZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBp bXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKIAogY2xhc3MgU0dHZW5lcmF0ZVRl c3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICBkZWYgcnVuVGVzdChz ZWxmKToKLSAgICAgICAgcHJpbnQgKCJJbiBTR0dlbmVyYXRlVGVzdENhc2Uu Li4iKQorICAgICAgICByZXR1cm4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm aWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvdGVzdHMvdGVzdF9zZ19hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvdGVzdHMvdGVzdF9zZ19hZGQucHkKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3MGJiNjUuLjAwMDAwMDAKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Rlc3RzL3Rl c3Rfc2dfYWRkLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAot IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIHBnQWRtaW4g NCAtIFBvc3RncmVTUUwgVG9vbHMKLSMKLSMgQ29weXJpZ2h0IChDKSAyMDEz IC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQotIyBUaGlz IHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExp Y2VuY2UKLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1p bXBvcnQganNvbgotCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0 X2xvZ2luIGltcG9ydCBMb2dpblRlc3RDYXNlCi1mcm9tIHJlZ3Jlc3Npb24u Y29uZmlnIGltcG9ydCBjb25maWdfZGF0YQotCi0KLWNsYXNzIFNnTm9kZVRl c3RDYXNlKExvZ2luVGVzdENhc2UpOgotICAgICIiIgotICAgICBUaGlzIGNs YXNzIHdpbGwgY2hlY2sgYXZhaWxhYmxlIHNlcnZlciBncm91cHMgaW4gcGdB ZG1pbi4KLSAgICAiIiIKLQotICAgIHByaW9yaXR5ID0gMQotCi0gICAgc2Nl bmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIHRoZSBkZWZhdWx0IHVy bCBmb3Igc2VydmVyIGdyb3VwIG5vZGUKLSAgICAgICAgKCdDaGVjayBTZXJ2 ZXIgR3JvdXAgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci9zZXJ2ZXItZ3Jv dXAvb2JqLycpKQotICAgIF0KLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgot ICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgY2hlY2sgYXZhaWxhYmxl IHNlcnZlciBncm91cHMuIiIiCi0KLSAgICAgICAgaSA9IGNvbmZpZ19kYXRh Wyd0ZXN0X3NlcnZlcl9ncm91cCddCi0KLSAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5nZXQoc2VsZi51cmwgKyBzdHIoaSksIGNvbnRlbnRfdHlw ZT0naHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3Bv bnNlLnN0YXR1c19jb2RlLCAyMDApCi0gICAgICAgIHJlc3BkYXRhID0ganNv bi5sb2FkcyhyZXNwb25zZS5kYXRhKQotICAgICAgICBzZWxmLmFzc2VydFRy dWUocmVzcGRhdGFbJ2lkJ10sIGkpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvdGVzdHMvdGVzdF9zZ19nZXQucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvdGVzdHMvdGVz dF9zZ19nZXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMDdiYmU5NgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy90ZXN0cy90ZXN0X3NnX2dldC5weQpAQCAt MCwwICsxLDQ4IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5 cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVu dCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisKK2ltcG9ydCBqc29uCisKK2Zyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVz c2lvbiBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSByZWdyZXNz aW9uLmNvbmZpZyBpbXBvcnQgY29uZmlnX2RhdGEKKworCitjbGFzcyBTZ05v ZGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiCisgICAg IFRoaXMgY2xhc3Mgd2lsbCBjaGVjayBhdmFpbGFibGUgc2VydmVyIGdyb3Vw cyBpbiBwZ0FkbWluLgorICAgICIiIgorCisgICAgc2NlbmFyaW9zID0gWwor ICAgICAgICAjIEZldGNoaW5nIHRoZSBkZWZhdWx0IHVybCBmb3Igc2VydmVy IGdyb3VwIG5vZGUKKyAgICAgICAgKCdDaGVjayBTZXJ2ZXIgR3JvdXAgTm9k ZScsIGRpY3QodXJsPScvYnJvd3Nlci9zZXJ2ZXItZ3JvdXAvb2JqLycpKQor ICAgIF0KKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgIiIiCisg ICAgICAgIFRoaXMgZnVuY3Rpb24gbG9naW4gdGhlIHRlc3QgYWNjb3VudCBi ZWZvcmUgcnVubmluZyB0aGUgbG9nb3V0CisgICAgICAgIHRlc3QgY2FzZQor ICAgICAgICAiIiIKKworICAgICAgICB1dGlscy5sb2dpbl90ZXN0ZXJfYWNj b3VudChzZWxmLnRlc3RlcikKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgor ICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgY2hlY2sgYXZhaWxhYmxl IHNlcnZlciBncm91cHMuIiIiCisKKyAgICAgICAgc2VydmVyX2dyb3VwX2lk ID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKyAgICAgICAg cmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoc2VsZi51cmwgKyBzdHIoc2Vy dmVyX2dyb3VwX2lkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAgICAgICBzZWxm LmFzc2VydFRydWUocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAg ICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5k ZWNvZGUoJ3V0ZjgnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3Bv bnNlX2RhdGFbJ2lkJ10sIHNlcnZlcl9ncm91cF9pZCkKKworICAgIGRlZiB0 ZWFyRG93bihzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBsb2dv dXQgdGhlIHRlc3QgYWNjb3VudCAiIiIKKworICAgICAgICB1dGlscy5sb2dv dXRfdGVzdGVyX2FjY291bnQoc2VsZi50ZXN0ZXIpCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci90ZXN0cy9fX2luaXRfXy5weQppbmRleCAyMzgxZWZk Li4zZmFiNmZlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Rl c3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVz dHMvX19pbml0X18ucHkKQEAgLTEyLDQgKzEyLDQgQEAgZnJvbSBwZ2FkbWlu LnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogCiBjbGFz cyBCcm93c2VyR2VuZXJhdGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6 CiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgIHByaW50ICgiSW4g QnJvd3NlckdlbmVyYXRlVGVzdENhc2UuLi4iKQorICAgICAgICByZXR1cm4K XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfY2hhbmdlX3Bhc3N3b3JkLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2NoYW5nZV9wYXNz d29yZC5weQppbmRleCBkZWRiN2Q5Li44YjQ3ZTI1IDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfY2hhbmdlX3Bhc3N3b3Jk LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9jaGFu Z2VfcGFzc3dvcmQucHkKQEAgLTksMTkgKzksMTggQEAKIAogaW1wb3J0IHV1 aWQKIAotZnJvbSBwZ2FkbWluLmJyb3dzZXIudGVzdHMudGVzdF9sb2dpbiBp bXBvcnQgTG9naW5UZXN0Q2FzZQorZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRl IGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogZnJvbSByZWdyZXNzaW9uLmNv bmZpZyBpbXBvcnQgY29uZmlnX2RhdGEKK2Zyb20gcmVncmVzc2lvbiBpbXBv cnQgdGVzdF91dGlscyBhcyB1dGlscwogCiAKLWNsYXNzIENoYW5nZVBhc3N3 b3JkVGVzdENhc2UoTG9naW5UZXN0Q2FzZSk6CitjbGFzcyBDaGFuZ2VQYXNz d29yZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAiIiIKICAg ICBUaGlzIGNsYXNzIHZhbGlkYXRlcyB0aGUgY2hhbmdlIHBhc3N3b3JkIGZ1 bmN0aW9uYWxpdHkKICAgICBieSBkZWZpbmluZyBjaGFuZ2UgcGFzc3dvcmQg c2NlbmFyaW9zOyB3aGVyZSBkaWN0IG9mCiAgICAgcGFyYW1ldGVycyBkZXNj cmliZXMgdGhlIHNjZW5hcmlvIGFwcGVuZGVkIGJ5IHRlc3QgbmFtZS4KICAg ICAiIiIKIAotICAgIHByaW9yaXR5ID0gMgotCiAgICAgc2NlbmFyaW9zID0g WwogICAgICAgICAjIFRoaXMgdGVzdGNhc2UgdmFsaWRhdGVzIGludmFsaWQg Y29uZmlybWF0aW9uIHBhc3N3b3JkCiAgICAgICAgICgnVGVzdENhc2UgZm9y IFZhbGlkYXRpbmcgSW5jb3JyZWN0X05ld19QYXNzd29yZCcsIGRpY3QoCkBA IC00OCw4ICs0Nyw3IEBAIGNsYXNzIENoYW5nZVBhc3N3b3JkVGVzdENhc2Uo TG9naW5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBuZXdfcGFzc3dvcmQ9Jycs IG5ld19wYXNzd29yZF9jb25maXJtPScnLAogICAgICAgICAgICAgcmVzcGRh dGE9J1Bhc3N3b3JkIG5vdCBwcm92aWRlZCcpKSwKIAotICAgICAgICAjIFRo aXMgdGVzdGNhc2UgdmFsaWRhdGVzIGlmIGN1cnJlbnQgZW50ZXJlZCBwYXNz d29yZAotICAgICAgICAjIGlzIGluY29ycmVjdAorICAgICAgICAjIFRoaXMg dGVzdGNhc2UgdmFsaWRhdGVzIGlmIGN1cnJlbnQgZW50ZXJlZCBwYXNzd29y ZCBpcyBpbmNvcnJlY3QKICAgICAgICAgKCdUZXN0Q2FzZSBmb3IgVmFsaWRh dGluZyBJbmNvcnJlY3RfQ3VycmVudF9QYXNzd29yZCcsIGRpY3QoCiAgICAg ICAgICAgICBwYXNzd29yZD1zdHIodXVpZC51dWlkNCgpKVs0OjhdLAogICAg ICAgICAgICAgbmV3X3Bhc3N3b3JkPShjb25maWdfZGF0YVsncGdBZG1pbjRf bG9naW5fY3JlZGVudGlhbHMnXQpAQCAtNzAsNiArNjgsNyBAQCBjbGFzcyBD aGFuZ2VQYXNzd29yZFRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgogICAgICAg ICAgICAgICAgIFsndGVzdF9uZXdfcGFzc3dvcmQnXSksCiAgICAgICAgICAg ICByZXNwZGF0YT0nWW91IHN1Y2Nlc3NmdWxseSBjaGFuZ2VkIHlvdXIgcGFz c3dvcmQuJykpLAogICAgICAgICAoJ1JlYXNzaWduaW5nX1Bhc3N3b3JkJywg ZGljdCgKKyAgICAgICAgICAgIHRlc3RfY2FzZT0ncmVhc3NpZ25pbmdfcGFz c3dvcmQnLAogICAgICAgICAgICAgcGFzc3dvcmQ9KGNvbmZpZ19kYXRhWydw Z0FkbWluNF9sb2dpbl9jcmVkZW50aWFscyddCiAgICAgICAgICAgICAgICAg ICAgICAgWyd0ZXN0X25ld19wYXNzd29yZCddKSwKICAgICAgICAgICAgIG5l d19wYXNzd29yZD0oY29uZmlnX2RhdGFbJ3BnQWRtaW40X2xvZ2luX2NyZWRl bnRpYWxzJ10KQEAgLTgxLDE0ICs4MCw0NCBAQCBjbGFzcyBDaGFuZ2VQYXNz d29yZFRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgogCiAgICAgXQogCisgICAg ZGVmIHNldFVwKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBm dW5jdGlvbiBsb2dpbiB0aGUgdGVzdCBhY2NvdW50IGJlZm9yZSBydW5uaW5n IHRoZSBsb2dvdXQKKyAgICAgICAgdGVzdCBjYXNlCisgICAgICAgICIiIgor CisgICAgICAgIHV0aWxzLmxvZ2luX3Rlc3Rlcl9hY2NvdW50KHNlbGYudGVz dGVyKQorCiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAgICAgICAgICIiIlRo aXMgZnVuY3Rpb24gd2lsbCBjaGVjayBjaGFuZ2UgcGFzc3dvcmQgZnVuY3Rp b25hbGl0eS4iIiIKIAorICAgICAgICAjIENoZWNrIGZvciAndGVzdF9jYXNl JyBleGlzdHMgaW4gc2VsZiBGb3IgcmVhc3NpZ25pbmcgdGhlIHBhc3N3b3Jk LgorICAgICAgICAjIFBhc3N3b3JkIGdldHMgY2hhbmdlIGluIGNoYW5nZSBw YXNzd29yZCB0ZXN0IGNhc2UuCisgICAgICAgIGlmICd0ZXN0X2Nhc2UnIGlu IGRpcihzZWxmKToKKyAgICAgICAgICAgIGVtYWlsID0gXAorICAgICAgICAg ICAgICAgIGNvbmZpZ19kYXRhWydwZ0FkbWluNF9sb2dpbl9jcmVkZW50aWFs cyddWworICAgICAgICAgICAgICAgICAgICAndGVzdF9sb2dpbl91c2VybmFt ZSddCisgICAgICAgICAgICBwYXNzd29yZCA9IFwKKyAgICAgICAgICAgICAg ICBjb25maWdfZGF0YVsncGdBZG1pbjRfbG9naW5fY3JlZGVudGlhbHMnXVsK KyAgICAgICAgICAgICAgICAgICAgJ3Rlc3RfbmV3X3Bhc3N3b3JkJ10KKyAg ICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgnL2xvZ2lu JywgZGF0YT1kaWN0KAorICAgICAgICAgICAgICAgIGVtYWlsPWVtYWlsLCBw YXNzd29yZD1wYXNzd29yZCksIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKwog ICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgnL2NoYW5nZScs IGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRJ bigncGdBZG1pbiA0IFBhc3N3b3JkIENoYW5nZScsIHJlc3BvbnNlLmRhdGEp CisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ3BnQWRtaW4gNCBQYXNzd29yZCBD aGFuZ2UnLCByZXNwb25zZS5kYXRhLmRlY29kZSgpKQorCiAgICAgICAgIHJl c3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgnL2NoYW5nZScsIGRhdGE9ZGlj dCgKICAgICAgICAgICAgIHBhc3N3b3JkPXNlbGYucGFzc3dvcmQsCiAgICAg ICAgICAgICBuZXdfcGFzc3dvcmQ9c2VsZi5uZXdfcGFzc3dvcmQsCiAgICAg ICAgICAgICBuZXdfcGFzc3dvcmRfY29uZmlybT1zZWxmLm5ld19wYXNzd29y ZF9jb25maXJtKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3Nl cnRJbihzZWxmLnJlc3BkYXRhLCByZXNwb25zZS5kYXRhKQorICAgICAgICBz ZWxmLmFzc2VydEluKHNlbGYucmVzcGRhdGEsIHJlc3BvbnNlLmRhdGEuZGVj b2RlKCkpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICIi IgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGxvZ291dCB0aGUgdGVzdCBjbGll bnQKKworICAgICAgICA6cmV0dXJuOiBOb25lCisgICAgICAgICIiIgorCisg ICAgICAgIHV0aWxzLmxvZ291dF90ZXN0ZXJfYWNjb3VudChzZWxmLnRlc3Rl cikKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVz dF9sb2dpbi5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9s b2dpbi5weQppbmRleCA3YzJiNzk2Li44ODU2NzAwIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfbG9naW4ucHkKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2xvZ2luLnB5CkBAIC04 LDkgKzgsOSBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAog aW1wb3J0IHV1aWQKLQogZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgogZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBp bXBvcnQgY29uZmlnX2RhdGEKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVz dF91dGlscyBhcyB1dGlscwogCiAKIGNsYXNzIExvZ2luVGVzdENhc2UoQmFz ZVRlc3RHZW5lcmF0b3IpOgpAQCAtMjAsOCArMjAsNiBAQCBjbGFzcyBMb2dp blRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICBkZXNjcmliZSB0 aGUgc2NlbmFyaW8gYXBwZW5kZWQgYnkgdGVzdCBuYW1lLgogICAgICIiIgog Ci0gICAgcHJpb3JpdHkgPSAwCi0KICAgICBzY2VuYXJpb3MgPSBbCiAgICAg ICAgICMgVGhpcyB0ZXN0IGNhc2UgdmFsaWRhdGVzIHRoZSBpbnZhbGlkL2lu Y29ycmVjdCBwYXNzd29yZAogICAgICAgICAoJ1Rlc3RDYXNlIGZvciBDaGVj a2luZyBJbnZhbGlkX1Bhc3N3b3JkJywgZGljdCgKQEAgLTY3LDEzICs2NSwy OCBAQCBjbGFzcyBMb2dpblRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK ICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfbG9naW5fdXNlcm5hbWUnXSks CiAgICAgICAgICAgICBwYXNzd29yZD0oY29uZmlnX2RhdGFbJ3BnQWRtaW40 X2xvZ2luX2NyZWRlbnRpYWxzJ10KICAgICAgICAgICAgICAgICAgICAgICBb J3Rlc3RfbG9naW5fcGFzc3dvcmQnXSksCi0gICAgICAgICAgICByZXNwZGF0 YT0nWW91IGFyZSBjdXJyZW50bHkgcnVubmluZyB2ZXJzaW9uJykpCisgICAg ICAgICAgICByZXNwZGF0YT0nR3JhdmF0YXIgaW1hZ2UgZm9yICVzJyAlCisg ICAgICAgICAgICAgICAgICAgICBjb25maWdfZGF0YVsncGdBZG1pbjRfbG9n aW5fY3JlZGVudGlhbHMnXQorICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0 X2xvZ2luX3VzZXJuYW1lJ10pKQogICAgIF0KIAorICAgIGRlZiBzZXRVcChz ZWxmKToKKyAgICAgICAgcGFzcworCiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6 CiAgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gY2hlY2tzIGxvZ2luIGZ1bmN0 aW9uYWxpdHkuIiIiCiAKICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5wb3N0KCcvbG9naW4nLCBkYXRhPWRpY3QoCiAgICAgICAgICAgICBlbWFp bD1zZWxmLmVtYWlsLCBwYXNzd29yZD1zZWxmLnBhc3N3b3JkKSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVj dHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRJbihzZWxmLnJlc3BkYXRh LCByZXNwb25zZS5kYXRhKQorICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYu cmVzcGRhdGEsIHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGY4JykpCisKKyAg ICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBU aGlzIGZ1bmN0aW9uIGRlbGV0ZXMgdGhlICdwYXJlbnRfaWQucGtsJyBmaWxl IHdoaWNoIGlzIGNyZWF0ZWQgaW4KKyAgICAgICAgc2V0dXAoKSBmdW5jdGlv bi4gQWxzbyB0aGlzIGZ1bmN0aW9uIGxvZ291dCB0aGUgdGVzdCBjbGllbnQK KworICAgICAgICA6cmV0dXJuOiBOb25lCisgICAgICAgICIiIgorCisgICAg ICAgIHV0aWxzLmxvZ291dF90ZXN0ZXJfYWNjb3VudChzZWxmLnRlc3RlcikK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9s b2dvdXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfbG9n b3V0LnB5CmluZGV4IDg5NzFlNzIuLmMyY2NmOTQgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9sb2dvdXQucHkKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2xvZ291dC5weQpAQCAt NywzOCArNywzMyBAQAogIwogIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwogCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2lu IGltcG9ydCBMb2dpblRlc3RDYXNlCi1mcm9tIHJlZ3Jlc3Npb24uY29uZmln IGltcG9ydCBjb25maWdfZGF0YQogCitmcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24g aW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIAotY2xhc3MgTG9nb3V0VGVz dChMb2dpblRlc3RDYXNlKToKKworY2xhc3MgTG9nb3V0VGVzdChCYXNlVGVz dEdlbmVyYXRvcik6CiAgICAgIiIiCiAgICAgVGhpcyBjbGFzcyB2ZXJpZmll cyB0aGUgbG9nb3V0IGZ1bmN0aW9uYWxpdHk7IHByb3ZpZGVkIHRoZSB1c2Vy IGlzIGFscmVhZHkKICAgICBsb2dnZWQtaW4uIERpY3Rpb25hcnkgcGFyYW1l dGVycyBkZWZpbmUgdGhlIHNjZW5hcmlvIGFwcGVuZGVkIGJ5IHRlc3QKICAg ICBuYW1lLgogICAgICIiIgogCi0gICAgcHJpb3JpdHkgPSAzCi0KICAgICBz Y2VuYXJpb3MgPSBbCiAgICAgICAgICMgVGhpcyB0ZXN0IGNhc2UgdmFsaWRh dGUgdGhlIGxvZ291dCBwYWdlCiAgICAgICAgICgnTG9nZ2luZyBPdXQnLCBk aWN0KHJlc3BkYXRhPSdSZWRpcmVjdGluZy4uLicpKQogICAgIF0KIAorICAg IGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMg ZnVuY3Rpb24gbG9naW4gdGhlIHRlc3QgYWNjb3VudCBiZWZvcmUgcnVubmlu ZyB0aGUgbG9nb3V0CisgICAgICAgIHRlc3QgY2FzZQorICAgICAgICAiIiIK KworICAgICAgICB1dGlscy5sb2dpbl90ZXN0ZXJfYWNjb3VudChzZWxmLnRl c3RlcikKKwogICAgIGRlZiBydW5UZXN0KHNlbGYpOgogICAgICAgICAiIiJU aGlzIGZ1bmN0aW9uIGNoZWNrcyB0aGUgbG9nb3V0IGZ1bmN0aW9uYWxpdHku IiIiCiAKICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoJy9s b2dvdXQnKQotICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYucmVzcGRhdGEs IHJlc3BvbnNlLmRhdGEpCi0KLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0g ICAgICAgICIiIgotICAgICAgICBEZWZpbmluZyB0ZWFyIGRvd24gY2xhc3Ms IHdoaWNoIHdpbGwgcnVuIGFmdGVyIGVhY2ggdGVzdCBtZXRob2QgZXhlY3V0 ZS4KLSAgICAgICAgUmUtbG9nZ2luZyBpbiBhcyBmdXJ0aGVyIG1vZHVsZXMg cmVxdWlyZSBsb2dpbi4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi50 ZXN0ZXIucG9zdCgnL2xvZ2luJywgZGF0YT1kaWN0KAotICAgICAgICAgICAg ZW1haWw9KGNvbmZpZ19kYXRhWydwZ0FkbWluNF9sb2dpbl9jcmVkZW50aWFs cyddCi0gICAgICAgICAgICAgICAgICAgWyd0ZXN0X2xvZ2luX3VzZXJuYW1l J10pLAotICAgICAgICAgICAgcGFzc3dvcmQ9KGNvbmZpZ19kYXRhWydwZ0Fk bWluNF9sb2dpbl9jcmVkZW50aWFscyddCi0gICAgICAgICAgICAgICAgICAg ICAgWyd0ZXN0X2xvZ2luX3Bhc3N3b3JkJ10pKSwgZm9sbG93X3JlZGlyZWN0 cz1UcnVlKQorICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYucmVzcGRhdGEs IHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGY4JykpCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfcmVzZXRfcGFzc3dvcmQu cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfcmVzZXRfcGFz c3dvcmQucHkKaW5kZXggMDMwYjE4Mi4uMjZkZDgwYyAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X3Jlc2V0X3Bhc3N3b3Jk LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9yZXNl dF9wYXNzd29yZC5weQpAQCAtMTEsNiArMTEsNyBAQCBpbXBvcnQgdXVpZAog CiBmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2Vu ZXJhdG9yCiBmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdf ZGF0YQorZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0 aWxzCiAKIAogY2xhc3MgUmVzZXRQYXNzd29yZFRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKQEAgLTE5LDcgKzIwLDYgQEAgY2xhc3MgUmVzZXRQYXNz d29yZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICBzY2VuYXJp b3M7IEVhY2ggZGljdCBwYXJhbWV0ZXIgZGVzY3JpYmUgYSBzY2VuYXJpbyBh cHBlbmRlZCBieQogICAgIHRlc3QgbmFtZS4KICAgICAiIiIKLSAgICBwcmlv cml0eSA9IDEKIAogICAgIHNjZW5hcmlvcyA9IFsKICAgICAgICAgIyBUaGlz IHRlc3QgY2FzZSB2YWxpZGF0ZXMgdGhlIGVtcHR5IGVtYWlsIGZpZWxkCkBA IC0zNywxMiArMzcsMjkgQEAgY2xhc3MgUmVzZXRQYXNzd29yZFRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgIFsndGVzdF9sb2dp bl91c2VybmFtZSddLCByZXNwZGF0YT0ncGdBZG1pbiA0JykpCiAgICAgXQog CisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAg VGhpcyBmdW5jdGlvbiBsb2dpbiB0aGUgdGVzdCBhY2NvdW50IGJlZm9yZSBy dW5uaW5nIHRoZSBsb2dvdXQKKyAgICAgICAgdGVzdCBjYXNlCisgICAgICAg ICIiIgorCisgICAgICAgIHV0aWxzLmxvZ2luX3Rlc3Rlcl9hY2NvdW50KHNl bGYudGVzdGVyKQorCiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAgICAgICAg ICIiIlRoaXMgZnVuY3Rpb24gY2hlY2tzIHJlc2V0IHBhc3N3b3JkIGZ1bmN0 aW9uYWxpdHkuIiIiCiAKICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5nZXQoJy9yZXNldCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0SW4oJ1JlY292 ZXIgcGdBZG1pbiA0IFBhc3N3b3JkJywgcmVzcG9uc2UuZGF0YSkKKyAgICAg ICAgc2VsZi5hc3NlcnRJbignUmVjb3ZlciBwZ0FkbWluIDQgUGFzc3dvcmQn LCByZXNwb25zZS5kYXRhLmRlY29kZSgpKQogICAgICAgICByZXNwb25zZSA9 IHNlbGYudGVzdGVyLnBvc3QoCiAgICAgICAgICAgICAnL3Jlc2V0JywgZGF0 YT1kaWN0KGVtYWlsPXNlbGYuZW1haWwpLAogICAgICAgICAgICAgZm9sbG93 X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYu cmVzcGRhdGEsIHJlc3BvbnNlLmRhdGEpCisgICAgICAgIHNlbGYuYXNzZXJ0 SW4oc2VsZi5yZXNwZGF0YSwgcmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKwor ICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb24gbG9nb3V0IHRoZSB0ZXN0IGNsaWVudAorCisgICAg ICAgIDpyZXR1cm46IE5vbmUKKyAgICAgICAgIiIiCisKKyAgICAgICAgdXRp bHMubG9nb3V0X3Rlc3Rlcl9hY2NvdW50KHNlbGYudGVzdGVyKQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vdXRpbHMvcm91dGUucHkgYi93ZWIvcGdhZG1p bi91dGlscy9yb3V0ZS5weQppbmRleCBmYjlkZTY5Li5hMmNkMWViIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi91dGlscy9yb3V0ZS5weQorKysgYi93ZWIv cGdhZG1pbi91dGlscy9yb3V0ZS5weQpAQCAtNTIsOCArNTIsMTAgQEAgY2xh c3MgVGVzdHNHZW5lcmF0b3JSZWdpc3RyeShBQkNNZXRhKToKICAgICAgICAg ZnJvbSB3ZXJremV1Zy51dGlscyBpbXBvcnQgZmluZF9tb2R1bGVzCiAKICAg ICAgICAgZm9yIG1vZHVsZV9uYW1lIGluIGZpbmRfbW9kdWxlcyhwa2csIEZh bHNlLCBUcnVlKToKLSAgICAgICAgICAgIG1vZHVsZSA9IGltcG9ydF9tb2R1 bGUobW9kdWxlX25hbWUpCi0KKyAgICAgICAgICAgIHRyeToKKyAgICAgICAg ICAgICAgICBtb2R1bGUgPSBpbXBvcnRfbW9kdWxlKG1vZHVsZV9uYW1lKQor ICAgICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICAgICAg ICAgIHBhc3MKIAogaW1wb3J0IHNpeAogCmRpZmYgLS1naXQgYS93ZWIvcmVn cmVzc2lvbi9SRUFETUUgYi93ZWIvcmVncmVzc2lvbi9SRUFETUUKaW5kZXgg ZTAwMDNlNC4uZWY5ZmQyOSAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24v UkVBRE1FCisrKyBiL3dlYi9yZWdyZXNzaW9uL1JFQURNRQpAQCAtNDAsMjkg KzQwLDQwIEBAIEdlbmVyYWwgSW5mb3JtYXRpb24KICAgICAzLiB0ZXN0X3Nl cnZlcl9nZXQucHkKICAgICA0LiB0ZXN0X3NlcnZlcl91cGRhdGUucHkKIAot MikgVGhlIHBnQWRtaW40IHNvdXJjZSB0cmVlIGluY2x1ZGVzIGEgZmlsZSB0 ZW1wbGF0ZSBmb3IgdGhlIHNlcnZlciBjb25maWd1cmF0aW9uCi0gICBuYW1l ZCDigJh0ZXN0X2NvbmZpZy5qc29uLmluJyBpbiB0aGUg4oCYcGdBZG1pbjQv d2ViL3JlZ3Jlc3Npb27igJkgZGlyZWN0b3J5LiBBZnRlcgotICAgY29tcGxl dGluZyB0aGUgcGdBZG1pbjQgY29uZmlndXJhdGlvbiwgeW91IG11c3QgbWFr ZSBhIHdvcmtpbmcgY29weSBvZiB0aGUKLSAgIHRlbXBsYXRlIGNhbGxlZCB0 ZXN0X2NvbmZpZy5qc29uIGJlZm9yZSBtb2RpZnlpbmcgdGhlIGZpbGUgY29u dGVudHMuCisyKSBUaGUgcGdBZG1pbjQgc291cmNlIHRyZWUgaW5jbHVkZXMg MiBkaWZmZXJlbnQgY29uZmlndXJhdGlvbiBmaWxlIHRlbXBsYXRlcy4KKyAg IE9uZSBmaWxlIHRlbXBsYXRlIGZvciB0aGUgc2VydmVyIGNvbmZpZ3VyYXRp b24KKyAgIG5hbWVkIOKAmHRlc3RfY29uZmlnLmpzb24uaW4nIGFuZCBhbm90 aGVyIGZvciB0ZXN0IGNvbmZpZ3VyYXRpb24gbmFtZWQKKyAgICd0ZXN0X2Fk dmFuY2VfY29uZmlnLmpzb24uaW4nIGluIHRoZSDigJhwZ0FkbWluNC93ZWIv cmVncmVzc2lvbuKAmSBkaXJlY3RvcnkuCisgICBBZnRlciBjb21wbGV0aW5n IHRoZSBwZ0FkbWluNCBjb25maWd1cmF0aW9uLCB5b3UgbXVzdCBtYWtlIGEg d29ya2luZyBjb3B5IG9mCisgICB0aGUgdGVtcGxhdGVzIGNhbGxlZCB0ZXN0 X2NvbmZpZy5qc29uIGFuZCB0ZXN0X2FkdmFuY2VfY29uZmlnLmpzb24KKyAg IGJlZm9yZSBtb2RpZnlpbmcgdGhlIGZpbGUgY29udGVudHMuCiAKLQkyYSkg VGhlIGZvbGxvd2luZyBjb21tYW5kIGNvcGllcyB0aGUgdGVzdF9jb25maWcu anNvbi5pbiBmaWxlLCBjcmVhdGluZyBhCi0JICAgIGNvbmZpZ3VyYXRpb24g ZmlsZSBuYW1lZCB0ZXN0X2NvbmZpZy5qc29uCisgICAgMmEpIFRoZSBmb2xs b3dpbmcgY29tbWFuZCBjb3BpZXMgdGhlIHRlc3RfY29uZmlnLmpzb24uaW4g ZmlsZSwgY3JlYXRpbmcgYQorICAgICAgICBjb25maWd1cmF0aW9uIGZpbGUg bmFtZWQgdGVzdF9jb25maWcuanNvbiAoc2FtZSB3YXkgdXNlciBjYW4gY29w eQorICAgICAgICB0ZXN0X2FkdmFuY2VfY29uZmlnLmpzb24uaW4gZmlsZSBp bnRvIHRlc3RfYWR2YW5jZV9jb25maWcuanNvbikKIAotICAgICAgICAgICAg IyBjcCBwZ2FkbWluNC93ZWIvcmVncmVzc2lvbi90ZXN0X2NvbmZpZy5qc29u LmluIFwKLSAgICAgICAgICAgICAgcGdhZG1pbjQvd2ViL3JlZ3Jlc3Npb24v dGVzdF9jb25maWcuanNvbgorICAgICAgICAgICAgICMgY3AgcGdhZG1pbjQv d2ViL3JlZ3Jlc3Npb24vdGVzdF9jb25maWcuanNvbi5pbiBcCisgICAgICAg ICAgICAgICBwZ2FkbWluNC93ZWIvcmVncmVzc2lvbi90ZXN0X2NvbmZpZy5q c29uCiAKLQkyYikgQWZ0ZXIgY3JlYXRpbmcgdGhlIHNlcnZlciBjb25maWd1 cmF0aW9uIGZpbGUsIGFkZCAob3IgbW9kaWZ5KQotCSAgICBwYXJhbWV0ZXIg dmFsdWVzIGFzIHBlciByZXF1aXJlbWVudHMuIFRoZSBjb25maWd1cmF0aW9u Ci0JICAgIGZpbGVzIGFyZSBvd25lZCBieSByb290L3VzZXIuIFRoZSBwZ0Fk bWluNCByZWdyZXNzaW9uIGZyYW1ld29yayBleHBlY3RzCi0JICAgIHRvIGZp bmQgdGhlIGZpbGVzIGluIHRoZSAgZGlyZWN0b3J5ICcvPGluc3RhbGxhdGlv biBkaXI+L3dlYi9yZWdyZXNzaW9uLycuCi0JICAgIElmIHlvdSBtb3ZlIHRo ZSBmaWxlIHRvIGFub3RoZXIgbG9jYXRpb24sIHlvdSBtdXN0IGNyZWF0ZSBh IHN5bWJvbGljIGxpbmsKLQkgICAgdGhhdCBzcGVjaWZpZXMgdGhlIG5ldyBs b2NhdGlvbi4KKyAgICAyYikgQWZ0ZXIgY3JlYXRpbmcgdGhlIHNlcnZlciBh bmQgdGVzdCBjb25maWd1cmF0aW9uIGZpbGUsIGFkZCAob3IgbW9kaWZ5KQor ICAgICAgICBwYXJhbWV0ZXIgdmFsdWVzIGFzIHBlciByZXF1aXJlbWVudHMu IFRoZSBjb25maWd1cmF0aW9uCisgICAgICAgIGZpbGVzIGFyZSBvd25lZCBi eSByb290L3VzZXIuIFRoZSBwZ0FkbWluNCByZWdyZXNzaW9uIGZyYW1ld29y ayBleHBlY3RzCisgICAgICAgIHRvIGZpbmQgdGhlIGZpbGVzIGluIHRoZSAg ZGlyZWN0b3J5ICcvPGluc3RhbGxhdGlvbiBkaXI+L3dlYi9yZWdyZXNzaW9u LycuCisgICAgICAgIElmIHlvdSBtb3ZlIHRoZSBmaWxlIHRvIGFub3RoZXIg bG9jYXRpb24sIHlvdSBtdXN0IGNyZWF0ZSBhIHN5bWJvbGljCisgICAgICAg IGxpbmsgdGhhdCBzcGVjaWZpZXMgdGhlIG5ldyBsb2NhdGlvbi4KIAotCTJj KSBTcGVjaWZ5aW5nIFNlcnZlciBDb25maWd1cmF0aW9uIGZpbGU6CisgICAg MmMpIFNwZWNpZnlpbmcgU2VydmVyIENvbmZpZ3VyYXRpb24gZmlsZToKKwor ICAgICAgICBzZXJ2ZXIgZGV0YWlscyBhbmQgY29ubmVjdGlvbiBwcm9wZXJ0 aWVzIGFzIHBlciB0aGVpciBsb2NhbCBzZXR1cC4gVGhlCisgICAgICAgIHRl c3RfY29uZmlnIGZpbGUgaXMgaW4ganNvbiBmb3JtYXQgYW5kIHByb3BlcnR5 IHZhbHVlcyBhcmUKKyAgICAgICAgY2FzZS1zZW5zaXRpdmUuCisKKyAgICAy ZCkgU3BlY2lmeWluZyB0aGUgVGVzdCBDb25maWd1cmF0aW9uIGZpbGU6CisK KyAgICAgICAgVGhlIHVzZXIgY2FuIGFkZC9jaGFuZ2UgdGVzdCBkYXRhIGFz IHBlciB0aGVpciBuZWVkLiBUaGUKKyAgICAgICAgdGVzdF9hZHZhbmNlX2Nv bmZpZyBmaWxlIGlzIGluIGpzb24gZm9ybWF0IGFuZCBwcm9wZXJ0eSB2YWx1 ZXMgYXJlCisgICAgICAgIGNhc2Utc2Vuc2l0aXZlLgogCi0JICAgIFRoZSB1 c2VyIGNhbiB1c2UgdGhlIHBhcmFtZXRlcnMgaW4gdGhlIGNvbmZpZ3VyYXRp b24gZmlsZSB0byBzcGVjaWZ5IHRoZQotCSAgICBzZXJ2ZXIgZGV0YWlscyBh bmQgY29ubmVjdGlvbiBwcm9wZXJ0aWVzIGFzIHBlciB0aGVpciBsb2NhbCBz ZXR1cC4gVGhlCi0JICAgIHRlc3RfY29uZmlnIGZpbGUgaXMgaW4ganNvbiBm b3JtYXQgYW5kIHByb3BlcnR5IHZhbHVlcyBhcmUgY2FzZS1zZW5zaXRpdmUu CiAKIFRlc3QgRGF0YSBEZXRhaWxzCiAtLS0tLS0tLS0tLS0tLS0tLQpAQCAt OTIsNSArMTAzLDE4IEBAIEV4ZWN1dGlvbjoKICAgYW5kIHJlZ2lzdGVyZWQg YXV0b21hdGljYWxseSBieSBpdHMgbW9kdWxlIG5hbWUgaW4KICAgJ3BnYWRt aW40L3dlYi9wZ2FkbWluL3V0aWxzL3Rlc3QucHknIGZpbGUuCiAKLS0gRXhl Y3V0ZSB0ZXN0IGZyYW1ld29yayBydW4gJ3JlZ3Jlc3Npb24vdGVzdHN1aXRl LnB5JyBmaWxlLgorLSBBcyB0aGUgdGVzdCBmcmFtZXdvcmsgaXMgbW9kdWxh ciBhbmQgZHluYW1pY2FsbHkgbG9jYXRlcyB0aGUgdGVzdHMKKyAgcGFja2Fn ZSwgV2UgY2FuIG5vdyBleGVjdXRlcyB0ZXN0IGZyYW1ld29yayBub2RlIHdp c2UKKworLSBFeGVjdXRlIHRlc3QgZnJhbWV3b3JrIGZvciBhbGwgbm9kZXMK KyAgICAgcnVuICdyZWdyZXNzaW9uL3Rlc3RzdWl0ZS5weSAtLXBrZyBhbGwn CisKKy0gRXhlY3V0ZSB0ZXN0IGZyYW1ld29yayBmb3Igc2luZ2xlIG5vZGUg YXQgYSB0aW1lCisKKyAgICAgRXhhbXBsZSAxKSBSdW4gdGVzdCBmcmFtZXdv cmsgZm9yICdicm93c2VyJyBub2RlCisgICAgIHJ1biAncmVncmVzc2lvbi90 ZXN0c3VpdGUucHkgLS1wa2cgYnJvd3NlcicKKworICAgICBFeGFtcGxlIDIp IFJ1biB0ZXN0IGZyYW1ld29yayBmb3IgJ2RhdGFiYXNlJyBub2RlCisgICAg IHJ1biAncmVncmVzc2lvbi90ZXN0c3VpdGUucHkgLS1wa2cgYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzJworCiAKZGlmZiAtLWdp dCBhL3dlYi9yZWdyZXNzaW9uL2NvbmZpZy5weSBiL3dlYi9yZWdyZXNzaW9u L2NvbmZpZy5weQppbmRleCBiZWY2NWZiLi5mNDhlYWRlIDEwMDY0NAotLS0g YS93ZWIvcmVncmVzc2lvbi9jb25maWcucHkKKysrIGIvd2ViL3JlZ3Jlc3Np b24vY29uZmlnLnB5CkBAIC0xNCwzICsxNCw4IEBAIHJvb3QgPSBvcy5wYXRo LmRpcm5hbWUob3MucGF0aC5yZWFscGF0aChfX2ZpbGVfXykpCiAKIHdpdGgg b3Blbihyb290ICsgJy90ZXN0X2NvbmZpZy5qc29uJykgYXMgZGF0YV9maWxl OgogICAgIGNvbmZpZ19kYXRhID0ganNvbi5sb2FkKGRhdGFfZmlsZSkKKwor d2l0aCBvcGVuKHJvb3QgKyAnL3Rlc3RfYWR2YW5jZV9jb25maWcuanNvbicp IGFzIGRhdGFfZmlsZToKKyAgICBhZHZhbmNlX2NvbmZpZ19kYXRhID0ganNv bi5sb2FkKGRhdGFfZmlsZSkKKworcGlja2xlX3BhdGggPSBvcy5wYXRoLmpv aW4ocm9vdCwgJ3BhcmVudF9pZC5wa2wnKQpkaWZmIC0tZ2l0IGEvd2ViL3Jl Z3Jlc3Npb24vdGVzdF9hZHZhbmNlX2NvbmZpZy5qc29uLmluIGIvd2ViL3Jl Z3Jlc3Npb24vdGVzdF9hZHZhbmNlX2NvbmZpZy5qc29uLmluCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjYjg2N2MKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcmVncmVzc2lvbi90ZXN0X2FkdmFuY2VfY29uZmln Lmpzb24uaW4KQEAgLTAsMCArMSwxMDUgQEAKK3sKKyAgInRlc3RfYWRkX2Rh dGFiYXNlX2RhdGEiOiBbCisgICB7CisgICAgInRlc3RfcHJpdmlsZWdlc19h Y2wiOiBbCisgICAgICB7CisgICAgICAgICJncmFudGVlIjogInBvc3RncmVz IiwKKyAgICAgICAgImdyYW50b3IiOiAicG9zdGdyZXMiLAorICAgICAgICAi cHJpdmlsZWdlcyI6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAicHJp dmlsZWdlX3R5cGUiOiAiQyIsCisgICAgICAgICAgICAicHJpdmlsZWdlIjog dHJ1ZSwKKyAgICAgICAgICAgICJ3aXRoX2dyYW50IjogdHJ1ZQorICAgICAg ICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgInByaXZpbGVnZV90 eXBlIjogIlQiLAorICAgICAgICAgICAgInByaXZpbGVnZSI6IHRydWUsCisg ICAgICAgICAgICAid2l0aF9ncmFudCI6IGZhbHNlCisgICAgICAgICAgfQor ICAgICAgICBdCisgICAgICB9CisgICAgXSwKKyAgICAidGVzdF9jb25uX2xp bWl0IjogLTEsCisgICAgInRlc3Rfb3duZXIiOiAicG9zdGdyZXMiLAorICAg ICJ0ZXN0X2Z1bl9hY2wiOiBbCisgICAgICB7CisgICAgICAgICJncmFudGVl IjogInBvc3RncmVzIiwKKyAgICAgICAgImdyYW50b3IiOiAicG9zdGdyZXMi LAorICAgICAgICAicHJpdmlsZWdlcyI6IFsKKyAgICAgICAgICB7CisgICAg ICAgICAgICAicHJpdmlsZWdlX3R5cGUiOiAiWCIsCisgICAgICAgICAgICAi cHJpdmlsZWdlIjogdHJ1ZSwKKyAgICAgICAgICAgICJ3aXRoX2dyYW50Ijog ZmFsc2UKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBd LAorICAgICJ0ZXN0X3NlcV9hY2wiOiBbCisgICAgICB7CisgICAgICAgICJn cmFudGVlIjogInBvc3RncmVzIiwKKyAgICAgICAgImdyYW50b3IiOiAicG9z dGdyZXMiLAorICAgICAgICAicHJpdmlsZWdlcyI6IFsKKyAgICAgICAgICB7 CisgICAgICAgICAgICAicHJpdmlsZWdlX3R5cGUiOiAiciIsCisgICAgICAg ICAgICAicHJpdmlsZWdlIjogdHJ1ZSwKKyAgICAgICAgICAgICJ3aXRoX2dy YW50IjogZmFsc2UKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAg ICAgICAgICJwcml2aWxlZ2VfdHlwZSI6ICJ3IiwKKyAgICAgICAgICAgICJw cml2aWxlZ2UiOiB0cnVlLAorICAgICAgICAgICAgIndpdGhfZ3JhbnQiOiBm YWxzZQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAg InByaXZpbGVnZV90eXBlIjogIlUiLAorICAgICAgICAgICAgInByaXZpbGVn ZSI6IHRydWUsCisgICAgICAgICAgICAid2l0aF9ncmFudCI6IGZhbHNlCisg ICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXSwKKyAgICAi dGVzdF90YmxfYWNsIjogWworICAgICAgeworICAgICAgICAiZ3JhbnRlZSI6 ICJwb3N0Z3JlcyIsCisgICAgICAgICJncmFudG9yIjogInBvc3RncmVzIiwK KyAgICAgICAgInByaXZpbGVnZXMiOiBbCisgICAgICAgICAgeworICAgICAg ICAgICAgInByaXZpbGVnZV90eXBlIjogImEiLAorICAgICAgICAgICAgInBy aXZpbGVnZSI6IHRydWUsCisgICAgICAgICAgICAid2l0aF9ncmFudCI6IHRy dWUKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJw cml2aWxlZ2VfdHlwZSI6ICJyIiwKKyAgICAgICAgICAgICJwcml2aWxlZ2Ui OiB0cnVlLAorICAgICAgICAgICAgIndpdGhfZ3JhbnQiOiBmYWxzZQorICAg ICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0sCisgICAgInRl c3RfdHlwZV9hY2wiOiBbCisgICAgICB7CisgICAgICAgICJncmFudGVlIjog InBvc3RncmVzIiwKKyAgICAgICAgImdyYW50b3IiOiAicG9zdGdyZXMiLAor ICAgICAgICAicHJpdmlsZWdlcyI6IFsKKyAgICAgICAgICB7CisgICAgICAg ICAgICAicHJpdmlsZWdlX3R5cGUiOiAiVSIsCisgICAgICAgICAgICAicHJp dmlsZWdlIjogdHJ1ZSwKKyAgICAgICAgICAgICJ3aXRoX2dyYW50IjogZmFs c2UKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdLAor ICAgICJ0ZXN0X2VuY29kaW5nIjogIlVURjgiLAorICAgICJ0ZXN0X25hbWUi OiAidGVzdF9kYl9hdXRvbWF0aW9uIiwKKyAgICAidGVzdF9wcml2aWxlZ2Vz IjogW10sCisgICAgInRlc3Rfc2VjdXJpdGllcyI6IFtdLAorICAgICJ0ZXN0 X3ZhcmlhYmxlcyI6IFtdCisgIH0KKyBdLAorCisgICJ0ZXN0X2RiX3VwZGF0 ZV9kYXRhIjogWworICB7CisgICAgICAidGVzdF9jb21tZW50IjogIlRoaXMg aXMgZGIgdXBkYXRlIGNvbW1lbnQiCisgIH0KKyBdCisKK30KXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lv bi90ZXN0X25vZGVzLnB5IGIvd2ViL3JlZ3Jlc3Npb24vdGVzdF9ub2Rlcy5w eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZmE0Njk1 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3JlZ3Jlc3Npb24vdGVzdF9ub2Rl cy5weQpAQCAtMCwwICsxLDQwIEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHly aWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50 IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUg UG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworCitpbXBvcnQganNvbgorCitmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGlt cG9ydCBjb25maWdfZGF0YQorZnJvbSByZWdyZXNzaW9uLnRlc3RfdXRpbHMg aW1wb3J0IGdldF9pZHMKKworCitkZWYgdGVzdF9nZXRub2Rlcyhub2RlPU5v bmUpOgorICAgICMgQ29ubmVjdCB0byBzZXJ2ZXIgYW5kIGRhdGFiYXNlLgor CisgICAgaWYgbm90IG5vZGU6CisgICAgICAgIHJldHVybiBOb25lCisKKyAg ICBhbGxfaWQgPSBnZXRfaWRzKCkKKworICAgIHNlcnZlcl9pZCA9IGFsbF9p ZFsic2lkIl1bMF0KKyAgICBkYl9pZCA9IGFsbF9pZFsiZGlkIl1bMF0KKyAg ICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10K KworICAgICMgQ29ubmVjdCB0byBzZXJ2ZXIKKyAgICByZXNwb25zZSA9IG5v ZGUudGVzdGVyLnBvc3QoJ2Jyb3dzZXIvc2VydmVyL2Nvbm5lY3QvezB9L3sx fScuZm9ybWF0KAorICAgICAgICBzcnZfZ3JwLCBzZXJ2ZXJfaWQpLCBkYXRh ID0gZGljdCgKKyAgICAgICAgcGFzc3dvcmQ9Y29uZmlnX2RhdGFbJ3Rlc3Rf c2VydmVyX2NyZWRlbnRpYWxzJ11bMF1bJ3Rlc3RfZGJfcGFzc3dvcmQnXSks CisgICAgICAgIGZvbGxvd19yZWRpcmVjdHMgPSBUcnVlKQorCisgICAgIyBD b25uZWN0IHRvIGRhdGFiYXNlCisgICAgY29uX3Jlc3BvbnNlID0gbm9kZS50 ZXN0ZXIucG9zdCgKKyAgICAgICAgJ2Jyb3dzZXIvZGF0YWJhc2UvY29ubmVj dC97MH0vezF9L3syfScuZm9ybWF0KAorICAgICAgICAgICAgc3J2X2dycCwg c2VydmVyX2lkLCBkYl9pZCksIGZvbGxvd19yZWRpcmVjdHMgPSBUcnVlKQor CisgICAgZGJfY29uID0ganNvbi5sb2Fkcyhjb25fcmVzcG9uc2UuZGF0YS5k ZWNvZGUoKSkKKworICAgIHJldHVybiBkYl9jb24KXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi90ZXN0 X3V0aWxzLnB5IGIvd2ViL3JlZ3Jlc3Npb24vdGVzdF91dGlscy5weQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MDBmNDA1Ci0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3JlZ3Jlc3Npb24vdGVzdF91dGlscy5weQpA QCAtMCwwICsxLDI5MCBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIwor IyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdo dCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRl YW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9z dGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor CitpbXBvcnQgb3MKK2ltcG9ydCBwaWNrbGUKK2ltcG9ydCBqc29uCitpbXBv cnQgdXVpZAorCitpbXBvcnQgY29uZmlnCitmcm9tIHJlZ3Jlc3Npb24uY29u ZmlnIGltcG9ydCBjb25maWdfZGF0YSwgYWR2YW5jZV9jb25maWdfZGF0YQor CitTRVJWRVJfVVJMID0gJy9icm93c2VyL3NlcnZlci9vYmovJworU0VSVkVS X0NPTk5FQ1RfVVJMID0gJ2Jyb3dzZXIvc2VydmVyL2Nvbm5lY3QvJworREFU QUJBU0VfQ09OTkVDVF9VUkwgPSAnL2Jyb3dzZXIvZGF0YWJhc2Uvb2JqLycK KworCitkZWYgZ2V0X2lkcyh1cmw9Y29uZmlnLkFQUF9ST09UICsgJy9yZWdy ZXNzaW9uL3BhcmVudF9pZC5wa2wnKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1 bmN0aW9uIHJlYWQgdGhlIHBhcmVudCBub2RlJ3MgaWQgYW5kIHJldHVybiBp dAorCisgICAgOnBhcmFtIHVybDogZmlsZSBwYXRoIGZyb20gd2hpY2ggaXQg d2lsbCByZWQgdGhlIGlkcworICAgIDp0eXBlIHVybDogc3RyCisgICAgOnJl dHVybjogbm9kZSBpZHMKKyAgICA6cnR5cGU6IGRpY3QKKyAgICAiIiIKKwor ICAgIG91dHB1dCA9IG9wZW4odXJsLCAncmInKQorICAgIGlkcyA9IHBpY2ts ZS5sb2FkKG91dHB1dCkKKyAgICBvdXRwdXQuY2xvc2UoKQorCisgICAgcmV0 dXJuIGlkcworCisKK2RlZiBsb2dpbl90ZXN0ZXJfYWNjb3VudCh0ZXN0ZXIp OgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gbG9naW4gdGhlIHRlc3Qg YWNjb3VudCB1c2luZyBjcmVkZW50aWFscyBtZW50aW9uZWQgaW4KKyAgICBj b25maWcgZmlsZQorCisgICAgOnBhcmFtIHRlc3RlcjogdGVzdCBjbGllbnQK KyAgICA6dHlwZSB0ZXN0ZXI6IGZsYXNrIHRlc3QgY2xpZW50IG9iamVjdAor ICAgIDpyZXR1cm46IE5vbmUKKyAgICAiIiIKKworICAgIGVtYWlsID0gXAor ICAgICAgICBjb25maWdfZGF0YVsncGdBZG1pbjRfbG9naW5fY3JlZGVudGlh bHMnXVsndGVzdF9sb2dpbl91c2VybmFtZSddCisgICAgcGFzc3dvcmQgPSBc CisgICAgICAgIGNvbmZpZ19kYXRhWydwZ0FkbWluNF9sb2dpbl9jcmVkZW50 aWFscyddWyd0ZXN0X2xvZ2luX3Bhc3N3b3JkJ10KKyAgICByZXNwb25zZSA9 IHRlc3Rlci5wb3N0KCcvbG9naW4nLCBkYXRhPWRpY3QoCisgICAgICAgIGVt YWlsPWVtYWlsLCBwYXNzd29yZD1wYXNzd29yZCksIGZvbGxvd19yZWRpcmVj dHM9VHJ1ZSkKKworCitkZWYgbG9nb3V0X3Rlc3Rlcl9hY2NvdW50KHRlc3Rl cik6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiBsb2dvdXQgdGhlIHRl c3QgYWNjb3VudAorCisgICAgOnBhcmFtIHRlc3RlcjogdGVzdCBjbGllbnQK KyAgICA6dHlwZSB0ZXN0ZXI6IGZsYXNrIHRlc3QgY2xpZW50IG9iamVjdAor ICAgIDpyZXR1cm46IE5vbmUKKyAgICAiIiIKKworICAgIHJlc3BvbnNlID0g dGVzdGVyLmdldCgnL2xvZ291dCcpCisKKworZGVmIGdldF9jb25maWdfZGF0 YSgpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gZ2V0IHRoZSBkYXRh IHJlbGF0ZWQgdG8gc2VydmVyIGdyb3VwIGFuZCBkYXRhYmFzZQorICAgIGxp a2UgZGIgbmFtZSwgaG9zdCwgcG9ydCBhbmQgdXNlcm5hbWUgZXRjLgorCisg ICAgOnJldHVybjogc2VydmVyX2dyb3VwLCBkYl9kYXRhLCBwaWNrbGVfaWRf ZGljdAorICAgIDpydHlwZTogc2VydmVyX2dyb3VwOmRpY3QsIGRiX2RhdGE6 bGlzdCwgcGlja2xlX2lkX2RpY3Q6ZGljdAorICAgICIiIgorCisgICAgZGJf ZGF0YSA9IFtdCisKKyAgICBwaWNrbGVfaWRfZGljdCA9IHsKKyAgICAgICAg InNpZCI6IFtdLCAgIyBzZXJ2ZXIKKyAgICAgICAgImRpZCI6IFtdLCAgIyBk YXRhYmFzZQorICAgICAgICAibHJpZCI6IFtdLCAgIyBsb2dpbiByb2xlCisg ICAgICAgICJ0c2lkIjogW10sICAjIHRhYmxzcGFjZQorICAgICAgICAiY2lk IjogW10sICAjIGNhc3QKKyAgICAgICAgImVpZCI6IFtdLCAgIyBleHRlbnRp b24KKyAgICAgICAgImxpZCI6IFsxMjM5N10sICAjIGxhbmd1YWdlCisgICAg ICAgICJzY2lkIjogW10sICAjIHNjaGVtYQorICAgICAgICAidGZuaWQiOiBb XSwgICMgdHJpZ2dlciBmdW5jdGlvbgorICAgICAgICAiZXRpZCI6IFtdLCAg IyBldmVudCB0cmlnZ2VyCisgICAgICAgICJjb2lkIjogW10sICAjIGNvbGxh dGlvbgorICAgICAgICAiZmlkIjogW10sICAjIEZEVworICAgICAgICAiZG9p ZCI6IFtdLCAgIyBEb21haW4KKyAgICAgICAgInNlaWQiOiBbXSwgICMgU2Vx dWVuY2UKKyAgICAgICAgInRpZCI6IFtdLCAgIyB0YWJsZQorICAgICAgICAi dmlkIjogW10sICAjIHZpZXcKKyAgICAgICAgIm12aWQiOiBbXSwgICMgbXZp ZXcKKyAgICAgICAgImZzaWQiOiBbXSwgICMgZm9yZWlnbiBzZXJ2ZXIKKyAg ICAgICAgInVtaWQiOiBbXSwgICMgVXNlciBtYXBwaW5nCisgICAgICAgICJm b2lkIjogW10gICMgZm9yZWlnbiB0YWJsZQorICAgIH0KKworICAgIHNlcnZl cl9ncm91cCA9IGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZlcl9ncm91cCddCisK KyAgICBmb3Igc3J2IGluIGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZlcl9jcmVk ZW50aWFscyddOgorICAgICAgICBkYXRhID0geyJuYW1lIjogc3J2Wyd0ZXN0 X25hbWUnXSwKKyAgICAgICAgICAgICAgICAiY29tbWVudCI6ICIiLAorICAg ICAgICAgICAgICAgICJob3N0Ijogc3J2Wyd0ZXN0X2hvc3QnXSwKKyAgICAg ICAgICAgICAgICAicG9ydCI6IHNydlsndGVzdF9kYl9wb3J0J10sCisgICAg ICAgICAgICAgICAgImRiIjogc3J2Wyd0ZXN0X21haW50ZW5hbmNlX2RiJ10s CisgICAgICAgICAgICAgICAgInVzZXJuYW1lIjogc3J2Wyd0ZXN0X2RiX3Vz ZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgInJvbGUiOiAiIiwKKyAgICAg ICAgICAgICAgICAic3NsbW9kZSI6IHNydlsndGVzdF9zc2xtb2RlJ119Cisg ICAgICAgIGRiX2RhdGEuYXBwZW5kKGRhdGEpCisgICAgcmV0dXJuIHNlcnZl cl9ncm91cCwgZGJfZGF0YSwgcGlja2xlX2lkX2RpY3QKKworCitkZWYgd3Jp dGVfcGFyZW50X2lkKHJlc3BvbnNlX2RhdGEsIHBpY2tsZV9pZF9kaWN0KToK KyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHdyaXRlcyB0aGUgc2VydmVy J3MgZGV0YWlscyB0byBmaWxlIHBhcmVudF9pZC5wa2wKKworICAgIDpwYXJh bSByZXNwb25zZV9kYXRhOiBzZXJ2ZXIncyBkYXRhCisgICAgOnR5cGUgcmVz cG9uc2VfZGF0YTogbGlzdCBvZiBkaWN0aW9uYXJ5CisgICAgOnBhcmFtIHBp Y2tsZV9pZF9kaWN0OiBjb250YWlucyBpZHMgb2Ygc2VydmVyLGRhdGFiYXNl LHRhYmxlcyBldGMuCisgICAgOnR5cGUgcGlja2xlX2lkX2RpY3Q6IGRpY3QK KyAgICA6cmV0dXJuOiBOb25lCisgICAgIiIiCisKKyAgICBzZXJ2ZXJfaWQg PSByZXNwb25zZV9kYXRhWydub2RlJ11bJ19pZCddCisgICAgaWYgb3MucGF0 aC5pc2ZpbGUoY29uZmlnLkFQUF9ST09UICsgJy9yZWdyZXNzaW9uL3BhcmVu dF9pZC5wa2wnKToKKyAgICAgICAgZXhpc3RlZF9zZXJ2ZXJfaWQgPSBvcGVu KAorICAgICAgICAgICAgY29uZmlnLkFQUF9ST09UICsgJy9yZWdyZXNzaW9u L3BhcmVudF9pZC5wa2wnLCAncmInKQorICAgICAgICBwaWNrbGVfaWRfZGlj dCA9IHBpY2tsZS5sb2FkKGV4aXN0ZWRfc2VydmVyX2lkKQorCisgICAgcGlj a2xlX2lkX2RpY3RbInNpZCJdLmFwcGVuZChzZXJ2ZXJfaWQpCisgICAgb3V0 cHV0ID0gb3Blbihjb25maWcuQVBQX1JPT1QgKyAnL3JlZ3Jlc3Npb24vcGFy ZW50X2lkLnBrbCcsICd3YicpCisgICAgcGlja2xlLmR1bXAocGlja2xlX2lk X2RpY3QsIG91dHB1dCkKKyAgICBvdXRwdXQuY2xvc2UoKQorCisKK2RlZiB3 cml0ZV9kYl9wYXJlbnRfaWQocmVzcG9uc2VfZGF0YSk6CisgICAgIiIiCisg ICAgVGhpcyBmdW5jdGlvbiB3cml0ZXMgdGhlIHNlcnZlciBhbmQgZGF0YWJh c2UgcmVsYXRlZCBkYXRhIGxpa2Ugc2VydmVyCisgICAgbmFtZSwgc2VydmVy IGlkICwgZGF0YWJhc2UgbmFtZSwgZGF0YWJhc2UgaWQgZXRjLgorCisgICAg OnBhcmFtIHJlc3BvbnNlX2RhdGE6IHNlcnZlciBhbmQgZGF0YWJhc2VzIGRl dGFpbHMKKyAgICA6dHlwZSByZXNwb25zZV9kYXRhOiBkaWN0CisgICAgOnJl dHVybjogTm9uZQorICAgICIiIgorCisgICAgZGJfaWQgPSByZXNwb25zZV9k YXRhWydub2RlJ11bJ19pZCddCisgICAgaWYgb3MucGF0aC5pc2ZpbGUoY29u ZmlnLkFQUF9ST09UICsgJy9yZWdyZXNzaW9uL3BhcmVudF9pZC5wa2wnKToK KyAgICAgICAgZXhpc3Rpbmdfc2VydmVyX2lkID0gb3BlbigKKyAgICAgICAg ICAgIGNvbmZpZy5BUFBfUk9PVCArICcvcmVncmVzc2lvbi9wYXJlbnRfaWQu cGtsJywgJ3JiJykKKyAgICAgICAgdG9sX3NlcnZlcl9pZCA9IHBpY2tsZS5s b2FkKGV4aXN0aW5nX3NlcnZlcl9pZCkKKyAgICAgICAgcGlja2xlX2lkX2Rp Y3QgPSB0b2xfc2VydmVyX2lkCisKKyAgICAgICAgcGlja2xlX2lkX2RpY3Rb ImRpZCJdLmFwcGVuZChkYl9pZCkKKworICAgICAgICBkYl9vdXRwdXQgPSBv cGVuKAorICAgICAgICAgICAgY29uZmlnLkFQUF9ST09UICsgJy9yZWdyZXNz aW9uL3BhcmVudF9pZC5wa2wnLCAnd2InKQorICAgICAgICBwaWNrbGUuZHVt cChwaWNrbGVfaWRfZGljdCwgZGJfb3V0cHV0KQorICAgICAgICBkYl9vdXRw dXQuY2xvc2UoKQorCisKK2RlZiBkZWxldGVfcGFyZW50X2lkX2ZpbGUoKToK KyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIGRlbGV0ZXMgdGhlIGZpbGUg cGFyZW50X2lkLnBrbCB3aGljaCBjb250YWlucyBzZXJ2ZXIgYW5kCisgICAg ZGF0YWJhc2UgZGV0YWlscworCisgICAgOnJldHVybjogTm9uZQorICAgICIi IgorCisgICAgaWYgb3MucGF0aC5pc2ZpbGUoY29uZmlnLkFQUF9ST09UICsg Jy9yZWdyZXNzaW9uL3BhcmVudF9pZC5wa2wnKToKKyAgICAgICAgb3MucmVt b3ZlKGNvbmZpZy5BUFBfUk9PVCArICcvcmVncmVzc2lvbi9wYXJlbnRfaWQu cGtsJykKKworCitkZWYgYWRkX3NlcnZlcih0ZXN0ZXIpOgorICAgICIiIgor ICAgIFRoaXMgZnVuY3Rpb24gYWRkIHRoZSBzZXJ2ZXIgaW4gdGhlIGV4aXN0 aW5nIHNlcnZlciBncm91cAorCisgICAgOnBhcmFtIHRlc3RlcjogdGVzdCBv YmplY3QKKyAgICA6dHlwZSB0ZXN0ZXI6IGZsYXNrIHRlc3Qgb2JqZWN0Cisg ICAgOnJldHVybjpOb25lCisgICAgIiIiCisKKyAgICBzZXJ2ZXJfZ3JvdXAs IGRiX2RhdGEsIHBpY2tsZV9pZF9kaWN0ID0gZ2V0X2NvbmZpZ19kYXRhKCkK KyAgICB1cmwgPSAiezB9ezF9LyIuZm9ybWF0KFNFUlZFUl9VUkwsIHNlcnZl cl9ncm91cCkKKyAgICByZXNwb25zZSA9IHRlc3Rlci5wb3N0KHVybCwgZGF0 YT1qc29uLmR1bXBzKGRiX2RhdGFbMF0pLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAgIHJlc3Bv bnNlX2RhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCkp CisgICAgd3JpdGVfcGFyZW50X2lkKHJlc3BvbnNlX2RhdGEsIHBpY2tsZV9p ZF9kaWN0KQorCisKK2RlZiBnZXRfc2VydmVyKHRlc3Rlcik6CisgICAgIiIi CisgICAgVGhpcyBmdW5jdGlvbiBnZXRzIHRoZSBhZGRlZCBzZXJlciBkZXRh aWxzCisKKyAgICA6cGFyYW0gdGVzdGVyOiB0ZXN0IGNsaWVudCBvYmplY3QK KyAgICA6dHlwZSB0ZXN0ZXI6IGZsYXNrIHRlc3Qgb2JqZWN0CisgICAgOnJl dHVybjogcmVzcG9uc2VfZGF0YQorICAgIDpydHlwZTogbGlzdAorICAgICIi IgorCisgICAgYWxsX2lkID0gZ2V0X2lkcygpCisgICAgc2VydmVyX2lkID0g YWxsX2lkWyJzaWQiXVswXQorICAgIHNlcnZlcl9ncm91cCA9IGNvbmZpZ19k YXRhWyd0ZXN0X3NlcnZlcl9ncm91cCddCisKKyAgICByZXNwb25zZSA9IHRl c3Rlci5nZXQoU0VSVkVSX1VSTCArIHN0cihzZXJ2ZXJfZ3JvdXApICsgJy8n ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCks CisgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9 VHJ1ZSkKKyAgICByZXNwb25zZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25z ZS5kYXRhLmRlY29kZSgpKQorICAgIHJldHVybiByZXNwb25zZV9kYXRhCisK KworZGVmIGNvbm5lY3Rfc2VydmVyKHRlc3Rlcik6CisgICAgIiIiCisgICAg VGhpcyBmdW5jdGlvbiB1c2VkIHRvIGNvbm5lY3QgYWRkZWQgc2VydmVyCisK KyAgICA6cGFyYW0gdGVzdGVyOnRlc3QgY2xpZW50IG9iamVjdAorICAgIDp0 eXBlIHRlc3RlcjogZmxhc2sgdGVzdCBvYmplY3QKKyAgICA6cmV0dXJuOiBz ZXJ2ZXJfY29ubmVjdCwgc2VydmVyX2dyb3VwLCBzZXJ2ZXJfaWQKKyAgICA6 cnR5cGU6IHNlcnZlcl9jb25uZWN0OmRpY3QsIHNlcnZlcl9ncm91cDpkaWN0 LCBzZXJ2ZXJfaWQ6c3RyCisgICAgIiIiCisKKyAgICBzcnZfaWQgPSBnZXRf aWRzKCkKKyAgICBzZXJ2ZXJfaWQgPSBzcnZfaWRbInNpZCJdWzBdCisgICAg c2VydmVyX2dyb3VwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3Vw J10KKyAgICByZXNwb25zZSA9IHRlc3Rlci5wb3N0KFNFUlZFUl9DT05ORUNU X1VSTCArIHN0cihzZXJ2ZXJfZ3JvdXApICsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICcvJyArIHNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRhdGE9ZGljdCgKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwYXNzd29yZD1jb25maWdfZGF0YQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFsndGVzdF9zZXJ2ZXJfY3JlZGVudGlhbHMnXVsw XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsndGVzdF9kYl9w YXNzd29yZCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxv d19yZWRpcmVjdHM9VHJ1ZSkKKyAgICBzZXJ2ZXJfY29ubmVjdCA9IGpzb24u bG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKyAgICBjb25uZWN0X2Rh dGFiYXNlKHRlc3Rlciwgc2VydmVyX2Nvbm5lY3QsIHNlcnZlcl9pZCwgc2Vy dmVyX2dyb3VwKQorICAgIHJldHVybiBzZXJ2ZXJfY29ubmVjdCwgc2VydmVy X2dyb3VwLCBzZXJ2ZXJfaWQKKworCitkZWYgY29ubmVjdF9kYXRhYmFzZSh0 ZXN0ZXIsIHNlcnZlcl9jb25uZWN0LCBzZXJ2ZXJfaWQsIHNlcnZlcl9ncm91 cCk6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGNv bm5lY3QgZGF0YWJhc2UgYW5kIHdyaXRlcyBpdCdzIGRldGFpbHMgdG8KKyAg ICBmaWxlICdwYXJlbnRfaWQucGtsJworCisgICAgOnBhcmFtIHRlc3Rlcjog dGVzdCBjbGllbnQgb2JqZWN0CisgICAgOnR5cGUgdGVzdGVyOiBmbGFzayB0 ZXN0IGNsaWVudCBvYmplY3QKKyAgICA6cGFyYW0gc2VydmVyX2Nvbm5lY3Q6 IHNlcnZlcidzIGRhdGEKKyAgICA6dHlwZSBzZXJ2ZXJfY29ubmVjdDogZGlj dAorICAgIDpwYXJhbSBzZXJ2ZXJfaWQ6IHNlcnZlciBpZAorICAgIDp0eXBl IHNlcnZlcl9pZDogc3RyCisgICAgOnBhcmFtIHNlcnZlcl9ncm91cDogc2Vy dmVyIGdyb3VwIG5hbWUKKyAgICA6dHlwZSBzZXJ2ZXJfZ3JvdXA6IHN0cgor ICAgIDpyZXR1cm46IE5vbmUKKyAgICAiIiIKKworICAgIGlmIHNlcnZlcl9j b25uZWN0WydkYXRhJ11bJ2Nvbm5lY3RlZCddOgorICAgICAgICBkYXRhID0g eworICAgICAgICAgICAgImRhdGFjbCI6IGFkdmFuY2VfY29uZmlnX2RhdGFb J3Rlc3RfYWRkX2RhdGFiYXNlX2RhdGEnXVswXQorICAgICAgICAgICAgWyd0 ZXN0X3ByaXZpbGVnZXNfYWNsJ10sCisgICAgICAgICAgICAiZGF0Y29ubmxp bWl0IjogYWR2YW5jZV9jb25maWdfZGF0YQorICAgICAgICAgICAgWyd0ZXN0 X2FkZF9kYXRhYmFzZV9kYXRhJ11bMF1bJ3Rlc3RfY29ubl9saW1pdCddLAor ICAgICAgICAgICAgImRhdG93bmVyIjogYWR2YW5jZV9jb25maWdfZGF0YQor ICAgICAgICAgICAgWyd0ZXN0X2FkZF9kYXRhYmFzZV9kYXRhJ11bMF1bJ3Rl c3Rfb3duZXInXSwKKyAgICAgICAgICAgICJkZWZmdW5jYWNsIjogYWR2YW5j ZV9jb25maWdfZGF0YQorICAgICAgICAgICAgWyd0ZXN0X2FkZF9kYXRhYmFz ZV9kYXRhJ11bMF1bJ3Rlc3RfZnVuX2FjbCddLAorICAgICAgICAgICAgImRl ZnNlcWFjbCI6IGFkdmFuY2VfY29uZmlnX2RhdGEKKyAgICAgICAgICAgIFsn dGVzdF9hZGRfZGF0YWJhc2VfZGF0YSddWzBdWyd0ZXN0X3NlcV9hY2wnXSwK KyAgICAgICAgICAgICJkZWZ0YmxhY2wiOiBhZHZhbmNlX2NvbmZpZ19kYXRh CisgICAgICAgICAgICBbJ3Rlc3RfYWRkX2RhdGFiYXNlX2RhdGEnXVswXVsn dGVzdF90YmxfYWNsJ10sCisgICAgICAgICAgICAiZGVmdHlwZWFjbCI6IGFk dmFuY2VfY29uZmlnX2RhdGEKKyAgICAgICAgICAgIFsndGVzdF9hZGRfZGF0 YWJhc2VfZGF0YSddWzBdWyd0ZXN0X3R5cGVfYWNsJ10sCisgICAgICAgICAg ICAiZW5jb2RpbmciOiBhZHZhbmNlX2NvbmZpZ19kYXRhCisgICAgICAgICAg ICBbJ3Rlc3RfYWRkX2RhdGFiYXNlX2RhdGEnXVswXVsndGVzdF9lbmNvZGlu ZyddLAorICAgICAgICAgICAgIm5hbWUiOiBzdHIodXVpZC51dWlkNCgpKVsx OjhdLAorICAgICAgICAgICAgInByaXZpbGVnZXMiOiBhZHZhbmNlX2NvbmZp Z19kYXRhCisgICAgICAgICAgICBbJ3Rlc3RfYWRkX2RhdGFiYXNlX2RhdGEn XVswXVsndGVzdF9wcml2aWxlZ2VzJ10sCisgICAgICAgICAgICAic2VjdXJp dGllcyI6IGFkdmFuY2VfY29uZmlnX2RhdGEKKyAgICAgICAgICAgIFsndGVz dF9hZGRfZGF0YWJhc2VfZGF0YSddWzBdWyd0ZXN0X3NlY3VyaXRpZXMnXSwK KyAgICAgICAgICAgICJ2YXJpYWJsZXMiOiBhZHZhbmNlX2NvbmZpZ19kYXRh CisgICAgICAgICAgICBbJ3Rlc3RfYWRkX2RhdGFiYXNlX2RhdGEnXVswXVsn dGVzdF92YXJpYWJsZXMnXQorICAgICAgICB9CisKKyAgICAgICAgZGJfcmVz cG9uc2UgPSB0ZXN0ZXIucG9zdCgKKyAgICAgICAgICAgIERBVEFCQVNFX0NP Tk5FQ1RfVVJMICsgc3RyKHNlcnZlcl9ncm91cCkgKyAiLyIgKyBzZXJ2ZXJf aWQgKyAiLyIsCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSks CisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisgICAg ICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRzKGRiX3Jlc3BvbnNlLmRh dGEuZGVjb2RlKCkpCisgICAgICAgIHdyaXRlX2RiX3BhcmVudF9pZChyZXNw b25zZV9kYXRhKQpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vdGVzdHN1 aXRlLnB5IGIvd2ViL3JlZ3Jlc3Npb24vdGVzdHN1aXRlLnB5CmluZGV4IDc1 ZDQzN2IuLmNmODI0YjkgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL3Rl c3RzdWl0ZS5weQorKysgYi93ZWIvcmVncmVzc2lvbi90ZXN0c3VpdGUucHkK QEAgLTEwLDcwICsxMCwxNDcgQEAKICIiIiBUaGlzIGZpbGUgY29sbGVjdCBh bGwgbW9kdWxlcy9maWxlcyBwcmVzZW50IGluIHRlc3RzIGRpcmVjdG9yeSBh bmQgYWRkCiB0aGVtIHRvIFRlc3RTdWl0ZS4gIiIiCiAKK2ltcG9ydCBhcmdw YXJzZQogaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiBpbXBvcnQgdW5pdHRlc3QK K2ltcG9ydCBsb2dnaW5nCiAKIGZyb20gdGVzdHNjZW5hcmlvcy5zY2VuYXJp b3MgaW1wb3J0IGdlbmVyYXRlX3NjZW5hcmlvcwogCi0jIFdlIG5lZWQgdG8g aW5jbHVkZSB0aGUgcm9vdCBkaXJlY3RvcnkgaW4gc3lzLnBhdGggdG8gZW5z dXJlIHRoYXQgd2UgY2FuCi0jIGZpbmQgZXZlcnl0aGluZyB3ZSBuZWVkIHdo ZW4gcnVubmluZyBpbiB0aGUgc3RhbmRhbG9uZSBydW50aW1lLgotY3VycmVu dF9wYXRoID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGgucmVhbHBhdGgoX19m aWxlX18pKQotcm9vdCA9IG9zLnBhdGguZGlybmFtZShjdXJyZW50X3BhdGgp CitDVVJSRU5UX1BBVEggPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5yZWFs cGF0aChfX2ZpbGVfXykpCiAKLWlmIHN5cy5wYXRoWzBdICE9IHJvb3Q6Ci0g ICAgc3lzLnBhdGguaW5zZXJ0KDAsIHJvb3QpCiAKLWZyb20gcGdhZG1pbiBp bXBvcnQgY3JlYXRlX2FwcAotaW1wb3J0IGNvbmZpZworZGVmIGNyZWF0ZV9w Z2FkbWluX2FwcCgpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gY3Jl YXRlcyB0aGUgcGdhZG1pbiBhcHAgZm9yIHRlc3RpbmcKIAotIyBHZXQgdGhl IGNvbmZpZyBkYXRhYmFzZSBzY2hlbWEgdmVyc2lvbi4gV2Ugc3RvcmUgdGhp cyBpbiBwZ2FkbWluLm1vZGVsCi0jIGFzIGl0IHR1cm5zIG91dCB0aGF0IHB1 dHRpbmcgaXQgaW4gdGhlIGNvbmZpZyBmaWxlcyBpc24ndCBhIGdyZWF0IGlk ZWEKLWZyb20gcGdhZG1pbi5tb2RlbCBpbXBvcnQgU0NIRU1BX1ZFUlNJT04K LWNvbmZpZy5TRVRUSU5HU19TQ0hFTUFfVkVSU0lPTiA9IFNDSEVNQV9WRVJT SU9OCisgICAgOnJldHVybjogdGVzdCBjbGllbnQKKyAgICA6cnR5cGU6IHRl c3QgYXBwIG9iamVjdAorICAgICIiIgogCi0jIENyZWF0ZSB0aGUgYXBwIQot YXBwID0gY3JlYXRlX2FwcCgpCisgICAgIyBTZXQgc3lzIHBhdGggdG8gY3Vy cmVudCBkaXJlY3Rvcnkgc28gdGhhdCB3ZSBjYW4gaW1wb3J0IHBnYWRtaW4g cGFja2FnZQorICAgIHJvb3QgPSBvcy5wYXRoLmRpcm5hbWUoQ1VSUkVOVF9Q QVRIKQorICAgIGlmIHN5cy5wYXRoWzBdICE9IHJvb3Q6CisgICAgICAgIHN5 cy5wYXRoLmluc2VydCgwLCByb290KQogCi0jIERpc2FibGluZyBDcm9zcy1z aXRlIHJlcXVlc3QgZm9yZ2VyeShDU1JGIHRva2VuKSBmb3IgdGVzdGluZyBw dXJwb3NlLgotIyBDU1JGIHByZXZlbnQgc2Vzc2lvbiBhZ2FpbnN0IG1hbGlj aW91cyBXZWIgc2l0ZSwgb3IgZW5kIHVzZXJzIHdobyB3YW50cyB0bwotIyBl eGVjdXRlIHVud2FudGVkIGFjdGlvbnMuCi1hcHAuY29uZmlnWydXVEZfQ1NS Rl9FTkFCTEVEJ10gPSBGYWxzZQorICAgIGZyb20gcGdhZG1pbiBpbXBvcnQg Y3JlYXRlX2FwcAorICAgIGltcG9ydCBjb25maWcKIAotZnJvbSBwZ2FkbWlu LnV0aWxzLnJvdXRlIGltcG9ydCBUZXN0c0dlbmVyYXRvclJlZ2lzdHJ5Cisg ICAgIyBHZXQgdGhlIGNvbmZpZyBkYXRhYmFzZSBzY2hlbWEgdmVyc2lvbi4g V2Ugc3RvcmUgdGhpcyBpbiBwZ2FkbWluLm1vZGVsCisgICAgIyBhcyBpdCB0 dXJucyBvdXQgdGhhdCBwdXR0aW5nIGl0IGluIHRoZSBjb25maWcgZmlsZXMg aXNuJ3QgYSBncmVhdCBpZGVhCisgICAgZnJvbSBwZ2FkbWluLm1vZGVsIGlt cG9ydCBTQ0hFTUFfVkVSU0lPTgogCi0jIFJlZ2lzdHJ5IHdpbGwgbG9hZCBh bGwgdGhlIHRlc3RjYXNlcy9tb2R1bGVzIGZyb20gcGdhZG1pbiBwYXRoIHRo b3NlIGFyZQotIyByZWdpc3RlciBhcyBCYXNlVGVzdEdlbmVyYXRvci4KLVRl c3RzR2VuZXJhdG9yUmVnaXN0cnkubG9hZF9nZW5lcmF0b3JzKCdwZ2FkbWlu JykKKyAgICBjb25maWcuU0VUVElOR1NfU0NIRU1BX1ZFUlNJT04gPSBTQ0hF TUFfVkVSU0lPTgogCi0jIENyZWF0ZSB0ZXN0IGNsaWVudAotIyB3ZXJremV1 ZyBwcm92aWRlcyBhIHRlc3QgY2xpZW50IHdoaWNoIGdpdmVzIGEgc2ltcGxl IGludGVyZmFjZSB0byB0aGUKLSMgYXBwbGljYXRpb24uIFdlIGNhbiB0cmln Z2VyIHRlc3QgcmVxdWVzdCB0byB0aGUgYXBwbGljYXRpb24uCi10ZXN0X2Ns aWVudCA9IGFwcC50ZXN0X2NsaWVudCgpCisgICAgIyBDcmVhdGUgdGhlIGFw cAorICAgIGFwcCA9IGNyZWF0ZV9hcHAoKQorICAgIGFwcC5jb25maWdbJ1dU Rl9DU1JGX0VOQUJMRUQnXSA9IEZhbHNlCisgICAgdGVzdF9hcHBfY2xpZW50 ID0gYXBwLnRlc3RfY2xpZW50KCkKIAorICAgIHJldHVybiB0ZXN0X2FwcF9j bGllbnQKIAotZGVmIHN1aXRlKCk6Ci0gICAgIiIiIERlZmluaW5nIHRlc3Qg c3VpdGUgd2hpY2ggd2lsbCBleGVjdXRlIGFsbCB0aGUgdGVzdGNhc2VzIHBy ZXNlbnQgaW4KLSAgICB0ZXN0cyBkaXJlY3RvcnkgYWNjb3JkaW5nIHRvIHNl dCBwcmlvcml0eS4iIiIKIAotICAgIHBnYWRtaW5fc3VpdGUgPSB1bml0dGVz dC5UZXN0U3VpdGUoKQorZGVmIGdldF9zdWl0ZShhcmd1bWVudHMsIHRlc3Rf YXBwX2NsaWVudCk6CisgICAgIiIiCisgICAgIFRoaXMgZnVuY3Rpb24gbG9h ZHMgdGhlIGFsbCBtb2R1bGVzIGluIHRoZSB0ZXN0cyBkaXJlY3RvcnkgaW50 byB0ZXN0aW5nCisgICAgIGVudmlyb25tZW50LgorCisgICAgOnBhcmFtIGFy Z3VtZW50czogdGhpcyBpcyBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGZvciBt b2R1bGUgbmFtZSB0bworICAgIHdoaWNoIHRlc3Qgc3VpdGUgd2lsbCBydW4K KyAgICA6dHlwZSBhcmd1bWVudHM6IHN0cgorICAgIDpwYXJhbSB0ZXN0X2Fw cF9jbGllbnQ6IHRlc3QgY2xpZW50CisgICAgOnR5cGUgdGVzdF9hcHBfY2xp ZW50OiBwZ2FkbWluIGFwcCBvYmplY3QKKyAgICA6cmV0dXJuIHBnYWRtaW5f c3VpdGU6IHRlc3Qgc3VpdGUgd2l0aCB0ZXN0IGNhc2VzCisgICAgOnJ0eXBl OiBUZXN0U3VpdGUKKyAgICAiIiIKKworICAgIGZyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgVGVzdHNHZW5lcmF0b3JSZWdpc3RyeQogCiAgICAg bW9kdWxlcyA9IFtdCisgICAgcGdhZG1pbl9zdWl0ZSA9IHVuaXR0ZXN0LlRl c3RTdWl0ZSgpCisKKyAgICAjIExvYWQgdGhlIHRlc3QgbW9kdWxlcyB3aGlj aCBhcmUgaW4gZ2l2ZW4gcGFja2FnZShpLmUuIGFyZ3VtZW50cy5wa2cpCisg ICAgaWYgYXJndW1lbnRzLnBrZyA9PSAiYWxsIjoKKyAgICAgICAgVGVzdHNH ZW5lcmF0b3JSZWdpc3RyeS5sb2FkX2dlbmVyYXRvcnMoJ3BnYWRtaW4nKQor ICAgIGVsc2U6CisgICAgICAgIFRlc3RzR2VuZXJhdG9yUmVnaXN0cnkubG9h ZF9nZW5lcmF0b3JzKCdwZ2FkbWluLnt9LnRlc3RzJy5mb3JtYXQoCisgICAg ICAgICAgICBhcmd1bWVudHMucGtnKSkKIAorICAgICMgR2V0IHRoZSBlYWNo IHRlc3QgbW9kdWxlIGFuZCBhZGQgaW50byBsaXN0CiAgICAgZm9yIGtleSwg a2xhc3MgaW4gVGVzdHNHZW5lcmF0b3JSZWdpc3RyeS5yZWdpc3RyeS5pdGVt cygpOgogICAgICAgICBnZW4gPSBrbGFzcworICAgICAgICBtb2R1bGVzLmFw cGVuZChnZW4pCiAKLSAgICAgICAgbW9kdWxlcy5pbnNlcnQoZ2VuLnByaW9y aXR5LCBnZW4pCi0KLSAgICBmb3IgbSBpbiBtb2R1bGVzOgotICAgICAgICBv YmogPSBtKCkKLSAgICAgICAgb2JqLnNldFRlc3RDbGllbnQodGVzdF9jbGll bnQpCisgICAgIyBTZXQgdGhlIHRlc3QgY2xpZW50IHRvIGVhY2ggbW9kdWxl ICYgZ2VuZXJhdGUgdGhlIHNjZW5hcmlvcworICAgIGZvciBtb2R1bGUgaW4g bW9kdWxlczoKKyAgICAgICAgb2JqID0gbW9kdWxlKCkKKyAgICAgICAgb2Jq LnNldFRlc3RDbGllbnQodGVzdF9hcHBfY2xpZW50KQogICAgICAgICBzY2Vu YXJpbyA9IGdlbmVyYXRlX3NjZW5hcmlvcyhvYmopCiAgICAgICAgIHBnYWRt aW5fc3VpdGUuYWRkVGVzdHMoc2NlbmFyaW8pCiAKICAgICByZXR1cm4gcGdh ZG1pbl9zdWl0ZQogCiAKK2RlZiBhZGRfYXJndW1lbnRzKCk6CisgICAgIiIi CisgICAgVGhpcyBmdW5jdGlvbiBwYXJzZSB0aGUgY29tbWFuZCBsaW5lIGFy Z3VtZW50cyhwcm9qZWN0J3MgcGFja2FnZSBuYW1lCisgICAgZS5nLiBicm93 c2VyKSAmIGFkZCBpbnRvIHBhcnNlcgorCisgICAgOnJldHVybiBhcmdzOiBj b21tYW5kIGxpbmUgYXJndW1lbnQgZm9yIHBnYWRtaW4ncyBwYWNrYWdlIG5h bWUKKyAgICA6cnR5cGU6IGFyZ3BhcnNlIG5hbWVzcGFjZQorICAgICIiIgor CisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3Jp cHRpb249J1Rlc3Qgc3VpdGUgZm9yIHBnQWRtaW40JykKKyAgICBwYXJzZXIu YWRkX2FyZ3VtZW50KCctLXBrZycsIGhlbHA9J0V4ZWN1dGVzIHRoZSB0ZXN0 IGNhc2VzIG9mIHBhcnRpY3VsYXInCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICcgcGFja2FnZScpCisgICAgYXJnID0gcGFyc2Vy LnBhcnNlX2FyZ3MoKQorCisgICAgcmV0dXJuIGFyZworCisKK2NsYXNzIFN0 cmVhbVRvTG9nZ2VyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYs IGxvZ2dlciwgbG9nX2xldmVsPWxvZ2dpbmcuSU5GTyk6CisgICAgICAgIHNl bGYudGVybWluYWwgPSBzeXMuc3RkZXJyCisgICAgICAgIHNlbGYubG9nZ2Vy ID0gbG9nZ2VyCisgICAgICAgIHNlbGYubG9nX2xldmVsID0gbG9nX2xldmVs CisgICAgICAgIHNlbGYubGluZWJ1ZiA9ICcnCisKKyAgICBkZWYgd3JpdGUo c2VsZiwgYnVmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rp b24gd3JpdGVzIHRoZSBsb2cgaW4gdGhlIGxvZ2dlciBmaWxlIGFzIHdlbGwg YXMgb24gY29uc29sZQorCisgICAgICAgIDpwYXJhbSBidWY6IGxvZyBtZXNz YWdlCisgICAgICAgIDp0eXBlIGJ1Zjogc3RyCisgICAgICAgIDpyZXR1cm46 IE5vbmUKKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi50ZXJtaW5hbC53 cml0ZShidWYpCisgICAgICAgIGZvciBsaW5lIGluIGJ1Zi5yc3RyaXAoKS5z cGxpdGxpbmVzKCk6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5sb2coc2Vs Zi5sb2dfbGV2ZWwsIGxpbmUucnN0cmlwKCkpCisKKyAgICBkZWYgZmx1c2go c2VsZik6CisgICAgICAgIHBhc3MKKworCiBpZiBfX25hbWVfXyA9PSAnX19t YWluX18nOgotICAgIHN1aXRlID0gc3VpdGUoKQotICAgIHRlc3RzID0gdW5p dHRlc3QuVGV4dFRlc3RSdW5uZXIoZGVzY3JpcHRpb25zPVRydWUsIHZlcmJv c2l0eT0yKS5ydW4oc3VpdGUpCisgICAgIyBTZXQgYmFzaWMgbG9nZ2luZyBj b25maWd1cmF0aW9uIGZvciBsb2cgZmlsZQorICAgIGxvZ2dpbmcuYmFzaWND b25maWcobGV2ZWw9bG9nZ2luZy5ERUJVRywKKyAgICAgICAgICAgICAgICAg ICAgICAgIGZvcm1hdD0nJShhc2N0aW1lKXM6JShsZXZlbG5hbWUpczolKG5h bWUpczolKG1lc3NhZ2UpcycsCisgICAgICAgICAgICAgICAgICAgICAgICBm aWxlbmFtZT0ibG9nZ2VyLmxvZyIsCisgICAgICAgICAgICAgICAgICAgICAg ICBmaWxlbW9kZT0ndycKKyAgICAgICAgICAgICAgICAgICAgICAgICkKKwor ICAgICMgQ3JlYXRlIGxvZ2dlciB0byB3cml0ZSBsb2cgaW4gdGhlIGxvZ2dl ciBmaWxlIHdpdGggb24gY29uc29sZQorICAgIHN0ZGVycl9sb2dnZXIgPSBs b2dnaW5nLmdldExvZ2dlcignU1RERVJSJykKKyAgICBzeXMuc3RkZXJyID0g U3RyZWFtVG9Mb2dnZXIoc3RkZXJyX2xvZ2dlciwgbG9nZ2luZy5FUlJPUikK KworICAgICMgQ3JlYXRlIHRoZSBwZ2FkbWluIGFwcAorICAgIHRlc3RfY2xp ZW50ID0gY3JlYXRlX3BnYWRtaW5fYXBwKCkKKyAgICBhcmdzID0gYWRkX2Fy Z3VtZW50cygpCisgICAgc3VpdGUgPSBnZXRfc3VpdGUoYXJncywgdGVzdF9j bGllbnQpCisgICAgdGVzdHMgPSB1bml0dGVzdC5UZXh0VGVzdFJ1bm5lcihz dHJlYW09c3lzLnN0ZGVyciwgZGVzY3JpcHRpb25zPVRydWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJib3NpdHk9MikucnVu KHN1aXRlKQorCisgICAgcHJpbnQoIlxuXG4gUGxlYXNlIGNoZWNrIG91dHB1 dCBpbiBmaWxlOiBsb2dnZXIubG9nIHBsYWNlZCBhdCAiLAorICAgICAgICAg IENVUlJFTlRfUEFUSCkK --94eb2c06af4060e2c205375bf4fa 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 --94eb2c06af4060e2c205375bf4fa--