Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bKLI2-0000Yt-7S for pgadmin-hackers@arkaria.postgresql.org; Tue, 05 Jul 2016 08:01:06 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bKLI0-0000jA-E6 for pgadmin-hackers@arkaria.postgresql.org; Tue, 05 Jul 2016 08:01:04 +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 1bKLHi-0000US-Bm for pgadmin-hackers@postgresql.org; Tue, 05 Jul 2016 08:00:46 +0000 Received: from mail-qt0-x22e.google.com ([2607:f8b0:400d:c0d::22e]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1bKLHZ-0006Vd-US for pgadmin-hackers@postgresql.org; Tue, 05 Jul 2016 08:00:44 +0000 Received: by mail-qt0-x22e.google.com with SMTP id c34so97122166qte.0 for ; Tue, 05 Jul 2016 01:00:37 -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=brCxwokzCKbPl/J9T0Sz86DpzDwFxEUojLpx/9RnDf0=; b=p87A0WhxwvreCMhmP5l91y3syNH6vS9Wc6RYAXPHGJbkuHqgv1gN/oJUCnLZnpBuQT KTgsfSDCt8v9O+POZB8yGc5Mjopql/geB/KYT9TWK/58cqEgwitLQ1UaBYEYJ8T0z0od C8K9V8e6B/EgFPi6EugeUnvTUwL8Q1LYC5pOXW/GsbUzBeQ6de46TLNq7QPmINlDHCVL 5BspFVZ8nTiPNfVcvDDl1Al3/YpIegems770T6MHTtuubd+A47qhKw2v9BOuP13hB/Z7 f7PrZFx26bnGon0L1Q5XMe9BdWcJrCCOFJ25zLnVYKNWkZ00zKeqgHXI9bYgjB0m56N3 6Oog== 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=brCxwokzCKbPl/J9T0Sz86DpzDwFxEUojLpx/9RnDf0=; b=kmockZy5jVq7NAqpYwSpjYOzCvgojH+0NlHe49PjTXq4LSIKyNjFMPK2RIXSAps/DB mrr3zfOpaungrpIvA3j9CsVMtKW6peBKeb1aMxfvET2YtQODochLBbowdniZLRz1WgPQ JXDGOaX1Sbku13QfFB1J1bHFO/zy0ZhTkUi5QBm/XT/KCH+x85a7hq9iyoi1G1vaJqSc FMRohfSP3JTrOywcLuFbbgm1e5lCS5YCx89rZeVd/jU5oNPXVrXRhRJuZ236zI6Qagtc STd7kNpoTqqukDLpweZjZpQyTTxuYJYA7FtAPXnLacoTuAJuvhl2Jbth3Zrb8aH3t9l1 4jXw== X-Gm-Message-State: ALyK8tJaQVhupdmrUTsacmOlmgWgDL2PLGvZJoUxtjVUSr2WCTADFENCkRigtJxt1BjZbaZZLNshYSO/QqJb9sr2 X-Received: by 10.200.34.19 with SMTP id o19mr24684136qto.97.1467705636601; Tue, 05 Jul 2016 01:00:36 -0700 (PDT) MIME-Version: 1.0 Received: by 10.237.45.165 with HTTP; Tue, 5 Jul 2016 01:00:17 -0700 (PDT) In-Reply-To: <1C830532-F2F0-4FBC-BD17-4428CE9AA53D@pgadmin.org> References: <1C830532-F2F0-4FBC-BD17-4428CE9AA53D@pgadmin.org> From: Priyanka Shendge Date: Tue, 5 Jul 2016 13:30:17 +0530 Message-ID: Subject: Re: pgAdmin IV API test cases patch To: Dave Page Cc: pgadmin-hackers , Kanchan Mohitey Content-Type: multipart/mixed; boundary=001a11394dbe1b14aa0536ded920 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 --001a11394dbe1b14aa0536ded920 Content-Type: multipart/alternative; boundary=001a11394dbe1b14a70536ded91e --001a11394dbe1b14a70536ded91e Content-Type: text/plain; charset=UTF-8 Hi Dave, I tried running the testsuite against PG9.4 and unable to reproduce the failures. I have added debug statements to previous patch. Patch attached. Could you please re-run the same and send me the logs and output? Thank you. On 4 July 2016 at 17:30, Dave Page wrote: > Hi > > The test data was the default, and I ran against PG 9.4. All other logs > were attached to my previous email. > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK:http://www.enterprisedb.com > The Enterprise PostgreSQL Company > > On 4 Jul 2016, at 12:16, Priyanka Shendge < > priyanka.shendge@enterprisedb.com> wrote: > > Hi Dave, > > I am unable to reproduce issue on my side; tried on Python 2.7 and Python > 3.4. > Could you please provide me DEBUG logs and test data using for database > node? > > Thank you. > > On 30 June 2016 at 00:51, Dave Page wrote: > >> Hi, >> >> That's better. I tweaked a few things and fixed a bug related to >> recent changes to the schema version config. Patch attached. >> >> However, there are still issues: >> >> 1) The testsuite doesn't run to completion. See the attached >> stdout.txt and logger.txt files. >> 2) stdout should only display the test summary - what tests are >> currently running (and pass/fail), and a summary at the end - even if >> there's a crash like I saw. >> 3) The output log file should contain the full output, including >> what's sent to stdout. >> 4) The output advises the user to check ".../pgadmin4/web/regression". >> This should be in the summary at the end, and should be corrected to >> show the correct (full) path. >> >> Thanks. >> >> >> On Wed, Jun 29, 2016 at 2:52 PM, Priyanka Shendge >> wrote: >> > Hi Dave, >> > >> > As per discussion over mail i have created separate config files for >> > credentials and test data. >> > >> > PFA patch for same. Kindly, review and let me know for modifications. >> > >> > On 27 June 2016 at 15:10, Priyanka Shendge >> > wrote: >> >> >> >> >> >> >> >> On 27 June 2016 at 13:24, Dave Page wrote: >> >>> >> >>> On Sun, Jun 26, 2016 at 12:05 PM, Priyanka Shendge >> >>> wrote: >> >>> > >> >>> > >> >>> > On 24 June 2016 at 16:17, Dave Page wrote: >> >>> >> >> >>> >> Hi >> >>> >> >> >>> >> On Thu, Jun 23, 2016 at 2:41 PM, Priyanka Shendge >> >>> >> wrote: >> >>> >> > >> >>> >> > >> >>> >> > On 15 June 2016 at 15:05, Priyanka Shendge >> >>> >> > wrote: >> >>> >> >> >> >>> >> >> Thanks a lot Dave. >> >>> >> >> >> >>> >> >> On 15 June 2016 at 14:09, Dave Page wrote: >> >>> >> >>> >> >>> >> >>> Hi >> >>> >> >>> >> >>> >> >>> On Thu, Jun 9, 2016 at 1:37 PM, Priyanka Shendge >> >>> >> >>> wrote: >> >>> >> >>> > Hi Dave, >> >>> >> >>> > >> >>> >> >>> > PFA updated patch. I have made changes suggested by you. >> >>> >> >>> > >> >>> >> >>> > Kindly, review and let me know for more changes. >> >>> >> >>> >> >>> >> >>> OK, I got a bit further this time, but not there yet. >> >>> >> >>> >> >>> >> >>> 1) The patch overwrote my test_config.json file. That should >> never >> >>> >> >>> happen (that file shouldn't be in the source tree). >> >>> >> >>> test_config.json.in should be the file that's included in the >> >>> >> >>> patch. >> >>> >> >> >> >>> >> >> >> >>> >> >> OK. >> >>> >> >>> >> >>> >> >>> >> >>> >> >>> 2) The updated test_config.json file is huge. >> >>> >> > >> >>> >> > >> >>> >> > Current configuration file web/regression/test_config.json >> contains >> >>> >> > test >> >>> >> > data(credentials) for each tree node; >> >>> >> > which is used while adding and updating the respective node. >> >>> >> >> >>> >> Why would we need that? >> >>> > >> >>> > >> >>> > Each node file (e.g. test_db_add.py and test_db_put.py) uses >> respective >> >>> > credentials test data from >> >>> > test_config.json while execution. >> >>> >> >>> That doesn't answer my question - why do we need separate credentials >> >>> for each node? >> >> >> >> >> >> Sorry for typo, its test data not credentials. >> >> >> >>> >> >>> >> >>> >> We should have just one set of credentials for >> >>> >> everything. >> >>> > >> >>> > >> >>> > Let me know if my understanding is clear: >> >>> > >> >>> > Should i keep basic credentials of each node (database, schema) into >> >>> > test_config.json >> >>> > instead taking care of each field? >> >>> >> >>> You should have one set of credentials that's used for the entire test >> >>> run. >> >> >> >> >> >> Sure. I'll separate the credentials and test data into 2 different >> files. >> >> So, a normal user can run the tests into one go after some minor >> >> credentials changes. >> >> And an advanced user can have an option to change the test data if he >> >> wants. >> >>> >> >>> >> >>> >> >>> I should only need to >> >>> >> >>> define one or more connections, then be able to run the tests. >> If >> >>> >> >>> you >> >>> >> >>> need to keep configuration info for "advanced users", let's >> put it >> >>> >> >>> in >> >>> >> >>> a different file to avoid confusing/scaring everyone else. >> Maybe >> >>> >> >>> split >> >>> >> >>> it into config.json for the stuff the user needs to edit >> >>> >> >>> (config.json.in would go in git), and test_config.json for the >> >>> >> >>> test >> >>> >> >>> configuration. >> >>> >> > >> >>> >> > >> >>> >> > Should i keep login and server credentials into >> >>> >> > web/regression/test_config.json file and >> >>> >> > put respective node details into config.json file of respective >> >>> >> > node's >> >>> >> > tests >> >>> >> > directory? >> >>> >> >> >>> >> Not if you expect users to need to edit them - and if not, why are >> the >> >>> >> values not just hard-coded? >> >>> >> >> >>> >> > e.g. for database node: >> >>> >> > I'll create config.json file into .../databases/tests/ directory >> >>> >> > put database add and update credentials into config.json >> >>> >> >> >>> >> The key here is to make it simple for users. >> >>> >> >> >>> >> - To run the default tests, they should be able to copy/edit a >> simple >> >>> >> file, and just add database server details for the server to run >> >>> >> against. >> >>> >> >> >>> >> - If we have configurable tests (because making them configurable >> adds >> >>> >> genuine value), then we can use an "advanced" config file to allow >> the >> >>> >> user to adjust settings as they want. >> >>> >> >> >>> >> In the simple case, the user should be able to run the tests >> >>> >> successfully within a minute or two from starting. >> >>> >> >> >>> >> In designing the layout for files etc, remember the following: >> >>> >> >> >>> >> - Users should never edit a file that is in our source control. >> That's >> >>> >> why we have .in files that we expect them to copy. >> >>> >> >> >>> >> - Unless they're an advanced user, they shouldn't need to copy the >> >>> >> config file for advanced options. That means that the tests should >> >>> >> have defaults that match what is in the template advanced config >> file >> >>> >> (or, the tests could read advanced.json.in if advanced.json >> doesn't >> >>> >> exist, though that does seem a little icky). Of course, those are >> >>> >> example filenames, not necessarily what you may choose. >> >>> >> >> >>> >> -- >> >>> >> Dave Page >> >>> >> Blog: http://pgsnake.blogspot.com >> >>> >> Twitter: @pgsnake >> >>> >> >> >>> >> EnterpriseDB UK: http://www.enterprisedb.com >> >>> >> The Enterprise PostgreSQL Company >> >>> > >> >>> > >> >>> > >> >>> > >> >>> > -- >> >>> > Best, >> >>> > Priyanka >> >>> > >> >>> > EnterpriseDB Corporation >> >>> > The Enterprise PostgreSQL Company >> >>> >> >>> >> >>> >> >>> -- >> >>> Dave Page >> >>> Blog: http://pgsnake.blogspot.com >> >>> Twitter: @pgsnake >> >>> >> >>> EnterpriseDB UK: http://www.enterprisedb.com >> >>> The Enterprise PostgreSQL Company >> >>> >> >>> >> >>> -- >> >>> Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org >> ) >> >>> To make changes to your subscription: >> >>> http://www.postgresql.org/mailpref/pgadmin-hackers >> >> >> >> >> >> >> >> >> >> -- >> >> Best, >> >> Priyanka >> >> >> >> EnterpriseDB Corporation >> >> The Enterprise PostgreSQL Company >> > >> > >> > >> > >> > -- >> > Best, >> > Priyanka >> > >> > EnterpriseDB Corporation >> > The Enterprise PostgreSQL Company >> >> >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> > > > > -- > Best, > Priyanka > > EnterpriseDB Corporation > The Enterprise PostgreSQL Company > > -- Best, Priyanka EnterpriseDB Corporation The Enterprise PostgreSQL Company --001a11394dbe1b14a70536ded91e Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave,

I tried running the testsuite = against PG9.4 and unable to reproduce the failures.
I have added = debug statements to previous patch. Patch attached.
Could you ple= ase re-run the same and send me the logs and output?

Thank you.

On 4 July 2016 at 17:30, Dave Page <dpage@pgadmin.org> wrote:
Hi
=

The test data was the default, and I ran against PG 9.4= . All other logs were attached to my previous email.
--=C2=A0
Dave Pag= e
Blog:=C2=A0= http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK= :http://www.ente= rprisedb.com
The Enterprise PostgreSQL Company

On 4 Jul 2016, at 12:16, Priyanka Shendge <= ;pri= yanka.shendge@enterprisedb.com> wrote:

Hi Dave,

I am unable to = reproduce issue on my side; tried on Python 2.7 and Python 3.4.
C= ould you please provide me DEBUG logs and test data using for database node= ?=C2=A0

Thank you.

On 30 June 2016 at 00:51, Dave Page <= span dir=3D"ltr"><dpage@pgadmin.org> wrote:
= Hi,

That's better. I tweaked a few things and fixed a bug related to
recent changes to the schema version config. Patch attached.

However, there are still issues:

1) The testsuite doesn't run to completion. See the attached
stdout.txt and logger.txt files.
2) stdout should only display the test summary - what tests are
currently running (and pass/fail), and a summary at the end - even if
there's a crash like I saw.
3) The output log file should contain the full output, including
what's sent to stdout.
4) The output advises the user to check ".../pgadmin4/web/regression&q= uot;.
This should be in the summary at the end, and should be corrected to
show the correct (full) path.

Thanks.


On Wed, Jun 29, 2016 at 2:52 PM, Priyanka Shendge
<priyanka.shendge@enterprisedb.com> wrote:
> Hi Dave,
>
> As per discussion over mail i have created separate config files for > credentials and test data.
>
> PFA patch for same. Kindly, review and let me know for modifications.<= br> >
> On 27 June 2016 at 15:10, Priyanka Shendge
> <priyanka.shendge@enterprisedb.com> wrote:
>>
>>
>>
>> On 27 June 2016 at 13:24, Dave Page <dpage@pgadmin.org> wrote:
>>>
>>> On Sun, Jun 26, 2016 at 12:05 PM, Priyanka Shendge
>>> <priyanka.shendge@enterprisedb.com> wrote:
>>> >
>>> >
>>> > On 24 June 2016 at 16:17, Dave Page <dpage@pgadmin.org> wrote:
>>> >>
>>> >> Hi
>>> >>
>>> >> On Thu, Jun 23, 2016 at 2:41 PM, Priyanka Shendge
>>> >> <priyanka.shendge@enterprisedb.com> wrote:
>>> >> >
>>> >> >
>>> >> > On 15 June 2016 at 15:05, Priyanka Shendge
>>> >> > <priyanka.shendge@enterprisedb.com> wrote:=
>>> >> >>
>>> >> >> Thanks a lot Dave.
>>> >> >>
>>> >> >> On 15 June 2016 at 14:09, Dave Page <dpage@pgadmin.org>= ; wrote:
>>> >> >>>
>>> >> >>> Hi
>>> >> >>>
>>> >> >>> On Thu, Jun 9, 2016 at 1:37 PM, Priyanka= Shendge
>>> >> >>> <priyanka.shendge@enterprisedb.com>= ; wrote:
>>> >> >>> > Hi Dave,
>>> >> >>> >
>>> >> >>> > PFA updated patch. I have made chan= ges suggested by you.
>>> >> >>> >
>>> >> >>> > Kindly, review and let me know for = more changes.
>>> >> >>>
>>> >> >>> OK, I got a bit further this time, but n= ot there yet.
>>> >> >>>
>>> >> >>> 1) The patch overwrote my test_config.js= on file. That should never
>>> >> >>> happen (that file shouldn't be in th= e source tree).
>>> >> >>> test_config.json.in should be the f= ile that's included in the
>>> >> >>> patch.
>>> >> >>
>>> >> >>
>>> >> >> OK.
>>> >> >>>
>>> >> >>>
>>> >> >>> 2) The updated test_config.json file is = huge.
>>> >> >
>>> >> >
>>> >> > Current configuration file web/regression/test_c= onfig.json contains
>>> >> > test
>>> >> > data(credentials) for each tree node;
>>> >> > which is used while adding and updating the resp= ective node.
>>> >>
>>> >> Why would we need that?
>>> >
>>> >
>>> > Each node file (e.g. test_db_add.py and test_db_put.py) u= ses respective
>>> > credentials test data=C2=A0 from
>>> > test_config.json while execution.
>>>
>>> That doesn't answer my question - why do we need separate = credentials
>>> for each node?
>>
>>
>> Sorry for typo, its test data not credentials.
>>
>>>
>>>
>>> >> We should have just one set of credentials for
>>> >> everything.
>>> >
>>> >
>>> > Let me know if my understanding is clear:
>>> >
>>> > Should i keep basic credentials of each node (database, s= chema) into
>>> > test_config.json
>>> > instead=C2=A0 taking care of each field?
>>>
>>> You should have one set of credentials that's used for the= entire test
>>> run.
>>
>>
>> Sure.=C2=A0 I'll separate the credentials and test data into 2= different files.
>> So, a normal user can run the tests into one go after some minor >> credentials changes.
>> And an advanced user can have an option to change the test data if= he
>> wants.
>>>
>>>
>>> >> >>> I should only need to
>>> >> >>> define one or more connections, then be = able to run the tests. If
>>> >> >>> you
>>> >> >>> need to keep configuration info for &quo= t;advanced users", let's put it
>>> >> >>> in
>>> >> >>> a different file to avoid confusing/scar= ing everyone else. Maybe
>>> >> >>> split
>>> >> >>> it into config.json for the stuff the us= er needs to edit
>>> >> >>> (config.json.in would go in git), and = test_config.json for the
>>> >> >>> test
>>> >> >>> configuration.
>>> >> >
>>> >> >
>>> >> > Should i keep login and server credentials into<= br> >>> >> > web/regression/test_config.json file and
>>> >> > put respective node details into config.json fil= e of respective
>>> >> > node's
>>> >> > tests
>>> >> > directory?
>>> >>
>>> >> Not if you expect users to need to edit them - and if= not, why are the
>>> >> values not just hard-coded?
>>> >>
>>> >> > e.g. for database node:
>>> >> > I'll create config.json file into .../databa= ses/tests/ directory
>>> >> > put database add and update credentials into con= fig.json
>>> >>
>>> >> The key here is to make it simple for users.
>>> >>
>>> >> - To run the default tests, they should be able to co= py/edit a simple
>>> >> file, and just add database server details for the se= rver to run
>>> >> against.
>>> >>
>>> >> - If we have configurable tests (because making them = configurable adds
>>> >> genuine value), then we can use an "advanced&quo= t; config file to allow the
>>> >> user to adjust settings as they want.
>>> >>
>>> >> In the simple case, the user should be able to run th= e tests
>>> >> successfully within a minute or two from starting.
>>> >>
>>> >> In designing the layout for files etc, remember the f= ollowing:
>>> >>
>>> >> - Users should never edit a file that is in our sourc= e control. That's
>>> >> why we have .in files that we expect them to copy.
>>> >>
>>> >> - Unless they're an advanced user, they shouldn&#= 39;t need to copy the
>>> >> config file for advanced options. That means that the= tests should
>>> >> have defaults that match what is in the template adva= nced config file
>>> >> (or, the tests could read advanced.json.in if advan= ced.json doesn't
>>> >> exist, though that does seem a little icky). Of cours= e, those are
>>> >> example filenames, not necessarily what you may choos= e.
>>> >>
>>> >> --
>>> >> Dave Page
>>> >> Blog: http://pgsnake.blogspot.com
>>> >> Twitter: @pgsnake
>>> >>
>>> >> EnterpriseDB UK: http://www.enterprisedb.com
>>> >> The Enterprise PostgreSQL Company
>>> >
>>> >
>>> >
>>> >
>>> > --
>>> > Best,
>>> > Priyanka
>>> >
>>> > EnterpriseDB Corporation
>>> > The Enterprise PostgreSQL Company
>>>
>>>
>>>
>>> --
>>> Dave Page
>>> Blog: http://pgsnake.blogspot.com
>>> Twitter: @pgsnake
>>>
>>> EnterpriseDB UK: http://www.enterprisedb.com
>>> The Enterprise PostgreSQL Company
>>>
>>>
>>> --
>>> Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org= )
>>> To make changes to your subscription:
>>> http://www.postgresql.org/mailpref/pg= admin-hackers
>>
>>
>>
>>
>> --
>> Best,
>> Priyanka
>>
>> EnterpriseDB Corporation
>> The Enterprise PostgreSQL Company
>
>
>
>
> --
> Best,
> Priyanka
>
> EnterpriseDB Corporation
> The Enterprise PostgreSQL Company



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
=
Best,
Priyanka=

Enterpri= seDB Corporation
The Enterprise PostgreSQL Company




--
Best,
Priyanka

EnterpriseDB Corporation
The = Enterprise PostgreSQL Company

--001a11394dbe1b14a70536ded91e-- --001a11394dbe1b14aa0536ded920 Content-Type: application/octet-stream; name="pgadmin_api_debug.patch" Content-Disposition: attachment; filename="pgadmin_api_debug.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iq95ukvf0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy90ZXN0cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi42MGVkNGM3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3Rlc3RzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMgIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgI3BnQWRtaW4gNCAtIFBv c3RncmVTUUwgVG9vbHMKKyMKKyMgI0NvcHlyaWdodCAoQykgMjAxMyAtIDIw MTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgI1RoaXMgc29m dHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5j ZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9t IHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y CisKKworY2xhc3MgRGF0YWJhc2VHZW5lcmF0ZVRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAg ICByZXR1cm4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2Fk ZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2FkZC5weQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YmJlOWIyCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfYWRkLnB5CkBAIC0wLDAg KzEsMTAyIEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRt aW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAy MDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBU aGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FM IExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20g cmVncmVzc2lvbi5jb25maWcgaW1wb3J0IGNvbmZpZ19kYXRhLCBhZHZhbmNl X2NvbmZpZ19kYXRhLCBwaWNrbGVfcGF0aAorZnJvbSBwZ2FkbWluLmJyb3dz ZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2FzZQoraW1w b3J0IGpzb24KK2ltcG9ydCBwaWNrbGUKK2ltcG9ydCB1dWlkCitpbXBvcnQg b3MKK2Zyb20gcmVncmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRz CisKKworY2xhc3MgRGF0YWJhc2VBZGRUZXN0Q2FzZShMb2dpblRlc3RDYXNl KToKKyAgICAiIiIKKyAgICBUaGlzIGNsYXNzIHdpbGwgY2hlY2sgc2VydmVy IGdyb3VwIG5vZGUgcHJlc2VudCBvbiB0aGUgb2JqZWN0IGJyb3dzZXIncwor ICAgIHRyZWUgbm9kZSBieSByZXNwb25zZSBjb2RlLgorICAgICIiIgorICAg IHByaW9yaXR5ID0gNworCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAj IEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBkYXRhYmFzZSBub2RlLgorICAg ICAgICAoJ0NoZWNrIERhdGFiYXNlcyBOb2RlIFVSTCcsIGRpY3QodXJsPScv YnJvd3Nlci9kYXRhYmFzZS9vYmovJykpCisgICAgXQorCisgICAgZGVmIHJ1 blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwg YWRkIGRhdGFiYXNlIHVuZGVyIDFzdCBzZXJ2ZXIgb2YgdHJlZSBub2RlLiAi IiIKKworICAgICAgICBzcnZfaWQgPSBnZXRfaWRzKCkKKworICAgICAgICBz ZXJ2ZXJfaWQgPSBzcnZfaWRbInNpZCJdWzBdCisgICAgICAgIHNydl9ncnAg PSBjb25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3JvdXAnXQorCisgICAgICAg IHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgnYnJvd3Nlci9zZXJ2ZXIv Y29ubmVjdC8nICsgc3RyKHNydl9ncnApICsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICcvJyArIHNlcnZlcl9pZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGljdCgKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkPWNvbmZp Z19kYXRhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb J3Rlc3Rfc2VydmVyX2NyZWRlbnRpYWxzJ11bMF0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFsndGVzdF9kYl9wYXNzd29yZCddKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19y ZWRpcmVjdHM9VHJ1ZSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhy ZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgICAgIHNydl9jb25u ZWN0ID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgpKQorCisg ICAgICAgIGlmIHNydl9jb25uZWN0WydkYXRhJ11bJ2Nvbm5lY3RlZCddOgor CisgICAgICAgICAgICBkYXRhID0geworICAgICAgICAgICAgICAgICAgICAg ImRhdGFjbCI6IGFkdmFuY2VfY29uZmlnX2RhdGFbJ3Rlc3RfYWRkX2RhdGFi YXNlX2RhdGEnXQorICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X3ByaXZp bGVnZXNfYWNsJ10sCisgICAgICAgICAgICAgICAgICAgICAiZGF0Y29ubmxp bWl0IjogYWR2YW5jZV9jb25maWdfZGF0YQorICAgICAgICAgICAgICAgICAg ICAgWyd0ZXN0X2FkZF9kYXRhYmFzZV9kYXRhJ11bJ3Rlc3RfY29ubl9saW1p dCddLAorICAgICAgICAgICAgICAgICAgICAgImRhdG93bmVyIjogYWR2YW5j ZV9jb25maWdfZGF0YQorICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X2Fk ZF9kYXRhYmFzZV9kYXRhJ11bJ3Rlc3Rfb3duZXInXSwKKyAgICAgICAgICAg ICAgICAgICAgICJkZWZmdW5jYWNsIjogYWR2YW5jZV9jb25maWdfZGF0YQor ICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X2FkZF9kYXRhYmFzZV9kYXRh J11bJ3Rlc3RfZnVuX2FjbCddLAorICAgICAgICAgICAgICAgICAgICAgImRl ZnNlcWFjbCI6IGFkdmFuY2VfY29uZmlnX2RhdGEKKyAgICAgICAgICAgICAg ICAgICAgIFsndGVzdF9hZGRfZGF0YWJhc2VfZGF0YSddWyd0ZXN0X3NlcV9h Y2wnXSwKKyAgICAgICAgICAgICAgICAgICAgICJkZWZ0YmxhY2wiOiBhZHZh bmNlX2NvbmZpZ19kYXRhCisgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3Rf YWRkX2RhdGFiYXNlX2RhdGEnXVsndGVzdF90YmxfYWNsJ10sCisgICAgICAg ICAgICAgICAgICAgICAiZGVmdHlwZWFjbCI6IGFkdmFuY2VfY29uZmlnX2Rh dGEKKyAgICAgICAgICAgICAgICAgICAgIFsndGVzdF9hZGRfZGF0YWJhc2Vf ZGF0YSddWyd0ZXN0X3R5cGVfYWNsJ10sCisgICAgICAgICAgICAgICAgICAg ICAiZW5jb2RpbmciOiBhZHZhbmNlX2NvbmZpZ19kYXRhCisgICAgICAgICAg ICAgICAgICAgICBbJ3Rlc3RfYWRkX2RhdGFiYXNlX2RhdGEnXVsndGVzdF9l bmNvZGluZyddLAorICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiBzdHIo dXVpZC51dWlkNCgpKVsxOjhdLAorICAgICAgICAgICAgICAgICAgICAgInBy aXZpbGVnZXMiOiBhZHZhbmNlX2NvbmZpZ19kYXRhCisgICAgICAgICAgICAg ICAgICAgICBbJ3Rlc3RfYWRkX2RhdGFiYXNlX2RhdGEnXVsndGVzdF9wcml2 aWxlZ2VzJ10sCisgICAgICAgICAgICAgICAgICAgICAic2VjdXJpdGllcyI6 IGFkdmFuY2VfY29uZmlnX2RhdGEKKyAgICAgICAgICAgICAgICAgICAgIFsn dGVzdF9hZGRfZGF0YWJhc2VfZGF0YSddWyd0ZXN0X3NlY3VyaXRpZXMnXSwK KyAgICAgICAgICAgICAgICAgICAgICJ2YXJpYWJsZXMiOiBhZHZhbmNlX2Nv bmZpZ19kYXRhCisgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfYWRkX2Rh dGFiYXNlX2RhdGEnXVsndGVzdF92YXJpYWJsZXMnXQorICAgICAgICAgICAg ICAgICAgICB9CisKKyAgICAgICAgICAgIGRiX3Jlc3BvbnNlID0gc2VsZi50 ZXN0ZXIucG9zdChzZWxmLnVybCArIHN0cihzcnZfZ3JwKSArICIvIiArCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vy dmVyX2lkICsgIi8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5 cGU9J2h0bWwvanNvbicpCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1 ZShkYl9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgICAgICAg ICByZXNwZGF0YSA9IGpzb24ubG9hZHMoZGJfcmVzcG9uc2UuZGF0YS5kZWNv ZGUoKSkKKworICAgICAgICAgICAgZGJfaWQgPSByZXNwZGF0YVsnbm9kZSdd WydfaWQnXQorCisgICAgICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShwaWNr bGVfcGF0aCk6CisKKyAgICAgICAgICAgICAgICBleHN0X3NlcnZlcl9pZCA9 IG9wZW4ocGlja2xlX3BhdGgsICdyYicpCisKKyAgICAgICAgICAgICAgICB0 b2xfc2VydmVyX2lkID0gcGlja2xlLmxvYWQoZXhzdF9zZXJ2ZXJfaWQpCisg ICAgICAgICAgICAgICAgcGlja2xlX2lkX2RpY3QgPSB0b2xfc2VydmVyX2lk CisKKyAgICAgICAgICAgICAgICBwaWNrbGVfaWRfZGljdFsiZGlkIl0uYXBw ZW5kKGRiX2lkKQorICAgICAgICAgICAgICAgIHByaW50KCJcbmRiIGlkIGlu IGRiIGFkZCIsIHBpY2tsZV9pZF9kaWN0WyJkaWQiXVswXSkKKworICAgICAg ICAgICAgICAgIGRiX291dHB1dCA9IG9wZW4ocGlja2xlX3BhdGgsICd3Yicp CisgICAgICAgICAgICAgICAgcGlja2xlLmR1bXAocGlja2xlX2lkX2RpY3Qs IGRiX291dHB1dCkKKyAgICAgICAgICAgICAgICBkYl9vdXRwdXQuY2xvc2Uo KQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfZGVsZXRlLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfZGVsZXRlLnB5Cm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwZmM5M2QKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9kZWxldGUucHkKQEAgLTAs MCArMSw0OCBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0Fk bWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykg MjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMg VGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNR TCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9t IHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0YQorZnJvbSBw Z2FkbWluLmJyb3dzZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5U ZXN0Q2FzZQoraW1wb3J0IGpzb24KK2Zyb20gcmVncmVzc2lvbi50ZXN0X25v ZGVzIGltcG9ydCB0ZXN0X2dldG5vZGVzCitmcm9tIHJlZ3Jlc3Npb24udGVz dF91dGlscyBpbXBvcnQgZ2V0X2lkcworCisKK2NsYXNzIERhdGFiYXNlRGVs ZXRlVGVzdENhc2UoTG9naW5UZXN0Q2FzZSk6CisgICAgIiIiIFRoaXMgY2xh c3Mgd2lsbCBkZWxldGUgdGhlIGRhdGFiYXNlIHVuZGVyIGxhc3QgYWRkZWQg c2VydmVyLiAiIiIKKworICAgIHByaW9yaXR5ID0gOTgKKworICAgIHNjZW5h cmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3Ig ZGF0YWJhc2Ugbm9kZS4KKyAgICAgICAgKCdDaGVjayBEYXRhYmFzZXMgTm9k ZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvZGF0YWJhc2Uvb2JqLycpKQor ICAgIF0KKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIg VGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSB0aGUgYWRkZWQgZGF0YWJhc2Uu IiIiCisKKyAgICAgICAgYWxsX2lkID0gZ2V0X2lkcygpCisgICAgICAgIHNl cnZlcl9pZCA9IGFsbF9pZFsic2lkIl1bMF0KKyAgICAgICAgZGJfaWQgPSBh bGxfaWRbImRpZCJdWzBdCisgICAgICAgIHByaW50KCJcbmRiIGlkIGluIGRl bGV0ZSBkYXRhYmFzZToiLCBkYl9pZCkKKworICAgICAgICBzcnZfZ3JwID0g Y29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKworICAgICAgICBk Yl9jb24gPSB0ZXN0X2dldG5vZGVzKG5vZGU9c2VsZikKKworICAgICAgICBp ZiBsZW4oZGJfY29uKSA9PSAwOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0 aW9uKCJObyBkYXRhYmFzZShzKSB0byBkZWxldGUuIikKKworICAgICAgICBy ZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZShzZWxmLnVybCArIHN0cihz cnZfZ3JwKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKGRiX2lkKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93 X3JlZGlyZWN0cz1UcnVlKQorCisgICAgICAgIHJlc3BkYXRhID0ganNvbi5s b2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgpKQorICAgICAgICBwcmludCgi ZGF0YWJhc2UgZGVsZXRlIHJlc3BvbnNlIiwgcmVzcGRhdGEpCisgICAgICAg IHNlbGYuYXNzZXJ0VHJ1ZShyZXNwZGF0YVsnc3VjY2VzcyddLCAxKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfZ2V0LnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3Rlc3RzL3Rlc3RfZGJfZ2V0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjk4NGE5OWUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvdGVzdHMvdGVzdF9kYl9nZXQucHkKQEAgLTAsMCArMSw0NiBAQAorIyAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3Jl U1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRo ZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBp cyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisj ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHJlZ3Jlc3Npb24uY29u ZmlnIGltcG9ydCBjb25maWdfZGF0YQorZnJvbSBwZ2FkbWluLmJyb3dzZXIu dGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2FzZQorZnJvbSBy ZWdyZXNzaW9uLnRlc3Rfbm9kZXMgaW1wb3J0IHRlc3RfZ2V0bm9kZXMKK2Zy b20gcmVncmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRzCisKKwor Y2xhc3MgRGF0YWJhc2VzR2V0VGVzdENhc2UoTG9naW5UZXN0Q2FzZSk6Cisg ICAgIiIiCisgICAgVGhpcyBjbGFzcyB3aWxsIGZldGNoIGFkZGVkIGRhdGFi YXNlIHVuZGVyIHNlcnZlciBub2RlLgorICAgICIiIgorICAgIHByaW9yaXR5 ID0gOAorCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5n IGRlZmF1bHQgVVJMIGZvciBkYXRhYmFzZSBub2RlLgorICAgICAgICAoJ0No ZWNrIERhdGFiYXNlcyBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9k YXRhYmFzZS9vYmovJykpCisgICAgXQorCisgICAgZGVmIHJ1blRlc3Qoc2Vs Zik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggYWRk ZWQgZGF0YWJhc2UuICIiIgorCisgICAgICAgIGFsbF9pZCA9IGdldF9pZHMo KQorICAgICAgICBzZXJ2ZXJfaWQgPSBhbGxfaWRbInNpZCJdWzBdCisgICAg ICAgIGRiX2lkID0gYWxsX2lkWyJkaWQiXVswXQorICAgICAgICBwcmludCgi XG5kYiBpZCBpbiBnZXQgZGF0YWJhc2U6IiwgZGJfaWQpCisKKyAgICAgICAg c3J2X2dycCA9IGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZlcl9ncm91cCddCisK KyAgICAgICAgZGJfY29uID0gdGVzdF9nZXRub2Rlcyhub2RlPXNlbGYpCisK KyAgICAgICAgaWYgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorCisg ICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldChzZWxmLnVy bCArIHN0cihzcnZfZ3JwKSArICcvJyArCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHIoc2VydmVyX2lkKSArICcvJyArIHN0 cihkYl9pZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisgICAgICAgICAgICBwcmlu dCgiZGF0YWJhc2UgZ2V0IHJlc3BvbnNlIiwgcmVzcG9uc2UuZGF0YS5kZWNv ZGUoKSkKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9u c2Uuc3RhdHVzX2NvZGUsIDIwMCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0 cy90ZXN0X2RiX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX3B1dC5w eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDlmODY3 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfcHV0 LnB5CkBAIC0wLDAgKzEsNTUgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5 cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVu dCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKworZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBpbXBvcnQgY29uZmlnX2Rh dGEsICBhZHZhbmNlX2NvbmZpZ19kYXRhCitmcm9tIHBnYWRtaW4uYnJvd3Nl ci50ZXN0cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dpblRlc3RDYXNlCitpbXBv cnQganNvbgorZnJvbSByZWdyZXNzaW9uLnRlc3RfdXRpbHMgaW1wb3J0IGdl dF9pZHMKK2Zyb20gcmVncmVzc2lvbi50ZXN0X25vZGVzIGltcG9ydCB0ZXN0 X2dldG5vZGVzCisKKworY2xhc3MgRGF0YWJhc2VzVXBkYXRlVGVzdENhc2Uo TG9naW5UZXN0Q2FzZSk6CisgICAgIiIiCisgICAgVGhpcyBjbGFzcyB3aWxs IHVwZGF0ZSB0aGUgZGF0YWJhc2UgdW5kZXIgbGFzdCBhZGRlZCBzZXJ2ZXIu CisgICAgIiIiCisgICAgcHJpb3JpdHkgPSA5CisKKyAgICBzY2VuYXJpb3Mg PSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGRhdGFi YXNlIG5vZGUuCisgICAgICAgICgnQ2hlY2sgRGF0YWJhc2VzIE5vZGUnLCBk aWN0KHVybD0nL2Jyb3dzZXIvZGF0YWJhc2Uvb2JqLycpKQorICAgIF0KKwor ICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5j dGlvbiB3aWxsIHVwZGF0ZSB0aGUgY29tbWVudHMgZmllbGQgb2YgZGF0YWJh c2UuIiIiCisKKyAgICAgICAgYWxsX2lkID0gZ2V0X2lkcygpCisgICAgICAg IHNlcnZlcl9pZCA9IGFsbF9pZFsic2lkIl1bMF0KKyAgICAgICAgZGJfaWQg PSBhbGxfaWRbImRpZCJdWzBdCisgICAgICAgIHByaW50KCJcbmRiIGlkIGlu IHVwZGF0ZSBkYXRhYmFzZToiLCBkYl9pZCkKKworICAgICAgICBzcnZfZ3Jw ID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKworICAgICAg ICBkYl9jb24gPSB0ZXN0X2dldG5vZGVzKG5vZGU9c2VsZikKKworICAgICAg ICBpZiBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisKKyAgICAgICAg ICAgIGRhdGEgPSB7CisgICAgICAgICAgICAgICAgImNvbW1lbnRzIjogYWR2 YW5jZV9jb25maWdfZGF0YVsidGVzdF9kYl91cGRhdGVfZGF0YSJdCisgICAg ICAgICAgICAgICAgWyJ0ZXN0X2NvbW1lbnQiXSwKKyAgICAgICAgICAgICAg ICAiaWQiOiBkYl9pZAorICAgICAgICAgICAgICAgICAgIH0KKworICAgICAg ICAgICAgcHV0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KHNlbGYudXJs ICsgc3RyKHNydl9ncnApICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VydmVyX2lkKSArICcvJyAr IHN0cihkYl9pZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRp cmVjdHM9VHJ1ZSkKKyAgICAgICAgICAgIHByaW50KCJkYXRhYmFzZSBwdXQg cmVzcG9uc2UiLCBwdXRfcmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKworCisg ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwdXRfcmVzcG9uc2Uuc3Rh dHVzX2NvZGUsIDIwMCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL19faW5pdF9fLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVz dHMvX19pbml0X18ucHkKaW5kZXggMjhjZGI5NC4uNGZkMjA2NiAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvdGVzdHMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvX19pbml0X18ucHkKQEAg LTEyLDQgKzEyLDQgQEAgZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgogCiBjbGFzcyBTZXJ2ZXJHZW5lcmF0ZVRl c3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICBkZWYgcnVuVGVzdChz ZWxmKToKLSAgICAgICAgcHJpbnQgKCJJbiBTZXJ2ZXJHZW5lcmF0ZVRlc3RD YXNlLi4uIikKKyAgICAgICAgcmV0dXJuCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0 X3NlcnZlcl9hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9hZGQucHkKaW5kZXgg MGFmMTNkMy4uNDk5YzBhMCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJf YWRkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2FkZC5weQpAQCAtOCwxNiAr OCwxNCBAQAogIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCiBp bXBvcnQganNvbgotCitpbXBvcnQgcGlja2xlCitpbXBvcnQgb3MKIGZyb20g cGdhZG1pbi5icm93c2VyLnRlc3RzLnRlc3RfbG9naW4gaW1wb3J0IExvZ2lu VGVzdENhc2UKLWZyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0IGNvbmZp Z19kYXRhCitmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdf ZGF0YSwgcGlja2xlX3BhdGgKIAogCiBjbGFzcyBTZXJ2ZXJzQWRkVGVzdENh c2UoTG9naW5UZXN0Q2FzZSk6Ci0gICAgIiIiCi0gICAgVGhpcyBjbGFzcyB3 aWxsIGFkZCB0aGUgc2VydmVycyB1bmRlciBkZWZhdWx0IHNlcnZlciBncm91 cCBhbmQgdmVyaWZ5IHdpdGgKLSAgICBzZXJ2ZXIncyBuYW1lLgotICAgICIi IgorICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRkIHRoZSBzZXJ2ZXJzIHVu ZGVyIGRlZmF1bHQgc2VydmVyIGdyb3VwLiAiIiIKIAogICAgIHByaW9yaXR5 ID0gNAogCkBAIC0yNywxNCArMjUsMTkgQEAgY2xhc3MgU2VydmVyc0FkZFRl c3RDYXNlKExvZ2luVGVzdENhc2UpOgogICAgIF0KIAogICAgIGRlZiBydW5U ZXN0KHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAgVGhpcyBmdW5jdGlv biB3aWxsIGFkZCB0aGUgc2VydmVyIHVuZGVyIGRlZmF1bHQgc2VydmVyIGdy b3VwLgotICAgICAgICBWZXJpZnkgdGhlIGFkZGVkIHNlcnZlciB3aXRoIHJl c3BvbnNlIGNvZGUgYXMgd2VsbCBhcyBzZXJ2ZXIgbmFtZS4KLSAgICAgICAg IiIiCisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIHRoZSBz ZXJ2ZXIgdW5kZXIgZGVmYXVsdCBzZXJ2ZXIgZ3JvdXAuIiIiCisKKyAgICAg ICAgIyBTdG9yaW5nIHBhcmVudCBpZCdzIGludG8gcGlja2xlIGRpY3QKKyAg ICAgICAgcGlja2xlX2lkX2RpY3QgPSBcCisgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgInNpZCI6IFtdLCAgIyBzZXJ2ZXIKKyAgICAgICAgICAg ICAgICAiZGlkIjogW10gICAjIGRhdGFiYXNlCisgICAgICAgICAgICB9CiAK ICAgICAgICAgc3J2X2dycCA9IGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZlcl9n cm91cCddCiAKICAgICAgICAgZm9yIHNydiBpbiBjb25maWdfZGF0YVsndGVz dF9zZXJ2ZXJfY3JlZGVudGlhbHMnXToKKwogICAgICAgICAgICAgZGF0YSA9 IHsibmFtZSI6IHNydlsndGVzdF9uYW1lJ10sCiAgICAgICAgICAgICAgICAg ICAgICJjb21tZW50IjogIiIsCiAgICAgICAgICAgICAgICAgICAgICJob3N0 Ijogc3J2Wyd0ZXN0X2hvc3QnXSwKQEAgLTQ0LDEwICs0NywyMiBAQCBjbGFz cyBTZXJ2ZXJzQWRkVGVzdENhc2UoTG9naW5UZXN0Q2FzZSk6CiAgICAgICAg ICAgICAgICAgICAgICJyb2xlIjogIiIsCiAgICAgICAgICAgICAgICAgICAg ICJzc2xtb2RlIjogc3J2Wyd0ZXN0X3NzbG1vZGUnXX0KIAotICAgICAgICAg ICAgdXJsID0gc2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAiLyIKLQotICAg ICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KHVybCwgZGF0 YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5wb3N0KHNlbGYudXJsICsgc3RyKHNydl9ncnApICsgIi8i LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisK ICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwb25zZS5zdGF0dXNf Y29kZSwgMjAwKQotICAgICAgICAgICAgcmVzcGRhdGEgPSBqc29uLmxvYWRz KHJlc3BvbnNlLmRhdGEpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUo cmVzcGRhdGFbJ25vZGUnXVsnbGFiZWwnXSwgc3J2Wyd0ZXN0X25hbWUnXSkK KyAgICAgICAgICAgIHJlc3BkYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5k YXRhLmRlY29kZSgpKQorCisgICAgICAgICAgICBzZXJ2ZXJfaWQgPSByZXNw ZGF0YVsnbm9kZSddWydfaWQnXQorCisgICAgICAgICAgICBpZiBvcy5wYXRo LmlzZmlsZShwaWNrbGVfcGF0aCk6CisgICAgICAgICAgICAgICAgZXhzdF9z ZXJ2ZXJfaWQgPSBvcGVuKHBpY2tsZV9wYXRoLCAncmInKQorICAgICAgICAg ICAgICAgIHBpY2tsZV9pZF9kaWN0ID0gcGlja2xlLmxvYWQoZXhzdF9zZXJ2 ZXJfaWQpCisKKyAgICAgICAgICAgIHBpY2tsZV9pZF9kaWN0WyJzaWQiXS5h cHBlbmQoc2VydmVyX2lkKQorICAgICAgICAgICAgcHJpbnQoIlxuU2VydmVy IGlkIGluIHNlcnZlciBhZGQiLCBwaWNrbGVfaWRfZGljdFsic2lkIl1bMF0p CisKKyAgICAgICAgICAgIG91dHB1dCA9IG9wZW4ocGlja2xlX3BhdGgsICd3 YicpCisgICAgICAgICAgICBwaWNrbGUuZHVtcChwaWNrbGVfaWRfZGljdCwg b3V0cHV0KQorICAgICAgICAgICAgb3V0cHV0LmNsb3NlKCkKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L3Rlc3RzL3Rlc3Rfc2VydmVyX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVy X2RlbGV0ZS5weQppbmRleCAzMjlkNzRmLi45OTczMDhlIDEwMDY0NAotLS0g YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90 ZXN0cy90ZXN0X3NlcnZlcl9kZWxldGUucHkKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2 ZXJfZGVsZXRlLnB5CkBAIC04LDE3ICs4LDE0IEBACiAjICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwogCiBpbXBvcnQganNvbgotCiBmcm9tIHBnYWRtaW4uYnJv d3Nlci50ZXN0cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dpblRlc3RDYXNlCiBm cm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0YQogCiAK LWNsYXNzIFNlcnZlcnNEZWxldGVUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToK LSAgICAiIiIKLSAgICBUaGlzIGNsYXNzIHdpbGwgY2hlY2sgc2VydmVyIG5v ZGUgcHJlc2VudCBvbiB0aGUgb2JqZWN0IGJyb3dzZXIncyB0cmVlIG5vZGUK LSAgICBieSByZXNwb25zZSBjb2RlLgotICAgICIiIgotICAgIHByaW9yaXR5 ID0gNworY2xhc3MgU2VydmVyRGVsZXRlVGVzdENhc2UoTG9naW5UZXN0Q2Fz ZSk6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBkZWxldGUgdGhlIGxhc3Qg c2VydmVyIHByZXNlbnQgdW5kZXIgdHJlZSBub2RlLiIiIgorCisgICAgcHJp b3JpdHkgPSA5OQogCiAgICAgc2NlbmFyaW9zID0gWwogICAgICAgICAjIEZl dGNoaW5nIHRoZSBkZWZhdWx0IHVybCBmb3Igc2VydmVyIG5vZGUKQEAgLTI2 LDMyICsyMywyMiBAQCBjbGFzcyBTZXJ2ZXJzRGVsZXRlVGVzdENhc2UoTG9n aW5UZXN0Q2FzZSk6CiAgICAgXQogCiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6 Ci0gICAgICAgICIiIgotICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2V0 IGFsbCBhdmFpbGFibGUgc2VydmVycyB1bmRlciBvYmplY3QgYnJvd3Nlcgot ICAgICAgICBhbmQgZGVsZXRlIHRoZSBzZXJ2ZXJzIHVzaW5nIHNlcnZlciBp ZC4KLSAgICAgICAgIiIiCisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdp bGwgZ2V0IGFsbCBhdmFpbGFibGUgc2VydmVycyB1bmRlciBvYmplY3QgYnJv d3NlcgorICAgICAgICBhbmQgZGVsZXRlIHRoZSBsYXN0IHNlcnZlciB1c2lu ZyBzZXJ2ZXIgaWQuIiIiCiAKICAgICAgICAgc3J2X2dycCA9IGNvbmZpZ19k YXRhWyd0ZXN0X3NlcnZlcl9ncm91cCddCiAKLSAgICAgICAgZm9yIHNydiBp biBjb25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfY3JlZGVudGlhbHMnXToKLQot ICAgICAgICAgICAgZGF0YSA9IHsibmFtZSI6IHNydlsndGVzdF9uYW1lJ10s Ci0gICAgICAgICAgICAgICAgICAgICJob3N0Ijogc3J2Wyd0ZXN0X2hvc3Qn XSwKLSAgICAgICAgICAgICAgICAgICAgInBvcnQiOiBzcnZbJ3Rlc3RfZGJf cG9ydCddLAotICAgICAgICAgICAgICAgICAgICAiZGIiOiBzcnZbJ3Rlc3Rf bWFpbnRlbmFuY2VfZGInXSwKLSAgICAgICAgICAgICAgICAgICAgInVzZXJu YW1lIjogc3J2Wyd0ZXN0X2RiX3VzZXJuYW1lJ10sCi0gICAgICAgICAgICAg ICAgICAgICJyb2xlIjogIiIsCi0gICAgICAgICAgICAgICAgICAgICJzc2xt b2RlIjogc3J2Wyd0ZXN0X3NzbG1vZGUnXX0KKyAgICAgICAgdXJsID0gc2Vs Zi51cmwgKyBzdHIoc3J2X2dycCkgKyAiLyIKIAotICAgICAgICAgICAgdXJs ID0gc2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAiLyIKKyAgICAgICAgcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQodXJsKQorICAgICAgICByZXNwZGF0 YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKIAotICAg ICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQodXJsLCBkYXRh PWpzb24uZHVtcHMoZGF0YSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAg ICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzcG9uc2Uuc3RhdHVzX2NvZGUs IDIwMCkKLSAgICAgICAgICAgIHJlc3BkYXRhID0ganNvbi5sb2FkcyhyZXNw b25zZS5kYXRhKQorICAgICAgICBpZiBsZW4ocmVzcGRhdGEpID09IDA6Cisg ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIHNlcnZlcihzKSB0byBk ZWxldGUuIikKIAotICAgICAgICAgICAgZm9yIHNlcnZlciBpbiByZXNwZGF0 YToKLSAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmRl bGV0ZSh1cmwgKyBqc29uLmR1bXBzKHNlcnZlclsnaWQnXSkpCi0gICAgICAg ICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3BvbnNlLnN0YXR1c19jb2Rl LCAyMDApCi0gICAgICAgICAgICAgICAgcmVzcGRhdGEgPSBqc29uLmxvYWRz KHJlc3BvbnNlLmRhdGEpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRU cnVlKHJlc3BkYXRhWydzdWNjZXNzJ10sIDEpCisgICAgICAgICMgZGVsZXRl IGxhc3Qgc2VydmVyCisgICAgICAgIHNlcnZlciA9IHJlc3BkYXRhWy0xXQor ICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSh1cmwgKyBz dHIoc2VydmVyWydpZCddKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJl c3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIHJlc3BkYXRhID0g anNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgpKQorICAgICAgICBz ZWxmLmFzc2VydFRydWUocmVzcGRhdGFbJ3N1Y2Nlc3MnXSwgMSkKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVy X2dldC5weQppbmRleCAwNTA4NDNlLi4xNjNmZWYzIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0 cy90ZXN0X3NlcnZlcl9nZXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfZ2V0 LnB5CkBAIC03LDE1ICs3LDE0IEBACiAjCiAjICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCiAKLWltcG9ydCBqc29uCi0KIGZyb20gcGdhZG1pbi5i cm93c2VyLnRlc3RzLnRlc3RfbG9naW4gaW1wb3J0IExvZ2luVGVzdENhc2UK IGZyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0IGNvbmZpZ19kYXRhCitm cm9tIHJlZ3Jlc3Npb24udGVzdF91dGlscyBpbXBvcnQgZ2V0X2lkcwogCiAK IGNsYXNzIFNlcnZlcnNHZXRUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKICAg ICAiIiIKLSAgICBUaGlzIGNsYXNzIHdpbGwgY2hlY2sgc2VydmVyIG5vZGUg cHJlc2VudCBvbiB0aGUgb2JqZWN0IGJyb3dzZXIncyB0cmVlIG5vZGUKKyAg ICBUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggYWRkZWQgc2VydmVycyB1bmRlciBk ZWZhdWx0IHNlcnZlciBncm91cAogICAgIGJ5IHJlc3BvbnNlIGNvZGUuCiAg ICAgIiIiCiAKQEAgLTI3LDIzICsyNiwxNiBAQCBjbGFzcyBTZXJ2ZXJzR2V0 VGVzdENhc2UoTG9naW5UZXN0Q2FzZSk6CiAgICAgXQogCiAgICAgZGVmIHJ1 blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBUaGlzIGZ1bmN0 aW9uIHdpbGwgZ2V0IGFsbCBhdmFpbGFibGUgc2VydmVycyBwcmVzZW50IHVu ZGVyCi0gICAgICAgIG9iamVjdCBicm93c2VyLgotICAgICAgICAiIiIKKyAg ICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCB0aGUgYWRkZWQg c2VydmVycyB0byBvYmplY3QgYnJvd3Nlci4gIiIiCiAKKyAgICAgICAgYWxs X2lkID0gZ2V0X2lkcygpCisgICAgICAgIHNlcnZlcl9pZCA9IGFsbF9pZFsi c2lkIl0KICAgICAgICAgc3J2X2dycCA9IGNvbmZpZ19kYXRhWyd0ZXN0X3Nl cnZlcl9ncm91cCddCiAKLSAgICAgICAgZm9yIHNydiBpbiBjb25maWdfZGF0 YVsndGVzdF9zZXJ2ZXJfY3JlZGVudGlhbHMnXToKLSAgICAgICAgICAgIGRh dGEgPSB7Im5hbWUiOiBzcnZbJ3Rlc3RfbmFtZSddLAotICAgICAgICAgICAg ICAgICAgICAiaG9zdCI6IHNydlsndGVzdF9ob3N0J10sCi0gICAgICAgICAg ICAgICAgICAgICJwb3J0Ijogc3J2Wyd0ZXN0X2RiX3BvcnQnXSwKLSAgICAg ICAgICAgICAgICAgICAgImRiIjogc3J2Wyd0ZXN0X21haW50ZW5hbmNlX2Ri J10sCi0gICAgICAgICAgICAgICAgICAgICJ1c2VybmFtZSI6IHNydlsndGVz dF9kYl91c2VybmFtZSddLAotICAgICAgICAgICAgICAgICAgICAicm9sZSI6 ICIiLAotICAgICAgICAgICAgICAgICAgICAic3NsbW9kZSI6IHNydlsndGVz dF9zc2xtb2RlJ119Ci0KLSAgICAgICAgICAgIHVybCA9IHNlbGYudXJsICsg c3RyKHNydl9ncnApICsgIi8iCi0gICAgICAgICAgICByZXNwb25zZSA9IHNl bGYudGVzdGVyLmdldCh1cmwsIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAg ICAgICAgZm9yIHNydiBpbiBzZXJ2ZXJfaWQ6CisKKyAgICAgICAgICAgIHJl c3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJsICsgc3RyKHNydl9n cnApICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cihzcnYpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQotICAgICAg ICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAy MDApCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNl LnN0YXR1c19jb2RlLCAyMDApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZl cl9wdXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9wdXQucHkKaW5kZXggMzA2YmIw My4uMzVkN2MwMyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfcHV0LnB5 CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX3B1dC5weQpAQCAtOCwxNiArOCwxMyBA QAogIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCiBpbXBvcnQg anNvbgotCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2lu IGltcG9ydCBMb2dpblRlc3RDYXNlCiBmcm9tIHJlZ3Jlc3Npb24uY29uZmln IGltcG9ydCBjb25maWdfZGF0YQorZnJvbSByZWdyZXNzaW9uLnRlc3RfdXRp bHMgaW1wb3J0IGdldF9pZHMKIAogCi1jbGFzcyBTZXJ2ZXJzVXBkYXRlVGVz dENhc2UoTG9naW5UZXN0Q2FzZSk6Ci0gICAgIiIiCi0gICAgVGhpcyBjbGFz cyB3aWxsIGNoZWNrIHNlcnZlciBub2RlIHByZXNlbnQgb24gdGhlIG9iamVj dCBicm93c2VyJ3MgdHJlZSBub2RlCi0gICAgYnkgcmVzcG9uc2UgY29kZS4K LSAgICAiIiIKK2NsYXNzIFNlcnZlclVwZGF0ZVRlc3RDYXNlKExvZ2luVGVz dENhc2UpOgorICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgdXBkYXRlIHNlcnZl cidzIGNvbW1lbnQgZmllbGQuICIiIgogCiAgICAgcHJpb3JpdHkgPSA2CiAK QEAgLTI3LDM5ICsyNCw0MSBAQCBjbGFzcyBTZXJ2ZXJzVXBkYXRlVGVzdENh c2UoTG9naW5UZXN0Q2FzZSk6CiAgICAgXQogCiAgICAgZGVmIHJ1blRlc3Qo c2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBUaGlzIGZ1bmN0aW9uIHdp bGwgZWRpdCBhbmQgdXBkYXRlIHRoZSBzZXJ2ZXIncyBjb21tZW50IGZpZWxk Ci0gICAgICAgIGJ5IHRoZSBzZXJ2ZXIgaWQuCi0gICAgICAgICIiIgorICAg ICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0aGUgc2VydmVy J3MgY29tbWVudCBmaWVsZC4gIiIiCiAKKyAgICAgICAgYWxsX2lkID0gZ2V0 X2lkcygpCisgICAgICAgIHNlcnZlcl9pZCA9IGFsbF9pZFsic2lkIl1bMF0K ICAgICAgICAgc3J2X2dycCA9IGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZlcl9n cm91cCddCiAKLSAgICAgICAgZm9yIHNydiBpbiBjb25maWdfZGF0YVsndGVz dF9zZXJ2ZXJfY3JlZGVudGlhbHMnXToKKyAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5nZXQoc2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAnLycg KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2Vy dmVyX2lkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Zm9sbG93X3JlZGlyZWN0cz1UcnVlKQogCi0gICAgICAgICAgICBkYXRhID0g eyJuYW1lIjogc3J2Wyd0ZXN0X25hbWUnXSwKLSAgICAgICAgICAgICAgICAg ICAgImhvc3QiOiBzcnZbJ3Rlc3RfaG9zdCddLAotICAgICAgICAgICAgICAg ICAgICAicG9ydCI6IHNydlsndGVzdF9kYl9wb3J0J10sCi0gICAgICAgICAg ICAgICAgICAgICJkYiI6IHNydlsndGVzdF9tYWludGVuYW5jZV9kYiddLAot ICAgICAgICAgICAgICAgICAgICAidXNlcm5hbWUiOiBzcnZbJ3Rlc3RfZGJf dXNlcm5hbWUnXSwKLSAgICAgICAgICAgICAgICAgICAgInJvbGUiOiAiIiwK LSAgICAgICAgICAgICAgICAgICAgInNzbG1vZGUiOiBzcnZbJ3Rlc3Rfc3Ns bW9kZSddfQorICAgICAgICBjb25fcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5w b3N0KCdicm93c2VyL3NlcnZlci9jb25uZWN0L3swfS97MX0nLmZvcm1hdAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzcnZf Z3JwLCBzZXJ2ZXJfaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGE9ZGljdChwYXNzd29yZD0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmln X2RhdGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgWyd0ZXN0X3NlcnZlcl9jcmVkZW50aWFscyddWzBdCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFsndGVzdF9kYl9wYXNzd29yZCddKSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUp CiAKLSAgICAgICAgICAgIHVybCA9IHNlbGYudXJsICsgc3RyKHNydl9ncnAp ICsgIi8iCisgICAgICAgIHNydl9jb24gPSBqc29uLmxvYWRzKGNvbl9yZXNw b25zZS5kYXRhLmRlY29kZSgpKQogCi0gICAgICAgICAgICByZXNwb25zZSA9 IHNlbGYudGVzdGVyLmdldCh1cmwsIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRl bnRfdHlwZT0naHRtbC9qc29uJykKKyAgICAgICAgaWYgbGVuKHNydl9jb24p ID09IDA6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIFNlcnZl cihzKSBjb25uZWN0ZWQgdG8gdXBkYXRlLiIpCiAKLSAgICAgICAgICAgIHNl bGYuYXNzZXJ0VHJ1ZShyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotICAg ICAgICAgICAgcmVzcGRhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEp CisgICAgICAgIGRhdGEgPSBcCisgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgImNvbW1lbnQiOiBjb25maWdfZGF0YQorICAgICAgICAgICAgICAg IFsndGVzdF9zZXJ2ZXJfdXBkYXRlX2RhdGEnXVswXVsndGVzdF9jb21tZW50 J10sCisgICAgICAgICAgICAgICAgImlkIjogc2VydmVyX2lkCisgICAgICAg ICAgICB9CiAKLSAgICAgICAgICAgIGZvciBzZXJ2ZXIgaW4gcmVzcGRhdGE6 CisgICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dChzZWxm LnVybCArIHN0cihzcnZfZ3JwKSArICcvJyArCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VydmVyX2lkKSwgZGF0YT1q c29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQogCi0gICAg ICAgICAgICAgICAgdXJsID0gc2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAi LyIgKyBqc29uLmR1bXBzKHNlcnZlclsnaWQnXSkKKyAgICAgICAgc2VsZi5h c3NlcnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAK LSAgICAgICAgICAgICAgICBmb3Igc2VydmVyIGluIGNvbmZpZ19kYXRhWyd0 ZXN0X3NlcnZlcl91cGRhdGVfZGF0YSddOgotICAgICAgICAgICAgICAgICAg ICBkYXRhID0geyJjb21tZW50Ijogc2VydmVyWyd0ZXN0X2NvbW1lbnQnXX0K LSAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5w dXQodXJsLCBkYXRhPWpzb24uZHVtcHMoZGF0YSksCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlw ZT0naHRtbC9qc29uJykKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3Nl cnRUcnVlKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCi0gICAgICAgICAg ICAgICAgICAgIHJlc3BkYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRh KQotICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzcGRh dGFbJ3N1Y2Nlc3MnXSwgMSkKKyAgICAgICAgcmVzcGRhdGEgPSBqc29uLmxv YWRzKHB1dF9yZXNwb25zZS5kYXRhLmRlY29kZSgpKQorICAgICAgICBzZWxm LmFzc2VydFRydWUocmVzcGRhdGFbJ3N1Y2Nlc3MnXSwgMSkKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy90ZXN0cy90 ZXN0X3NnX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy90ZXN0cy90ZXN0X3NnX2dldC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5jNTUyZDhlCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Rlc3RzL3Rlc3Rf c2dfZ2V0LnB5CkBAIC0wLDAgKzEsMzYgQEAKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRv b2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxl YXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IGpzb24KK2Zyb20g cGdhZG1pbi5icm93c2VyLnRlc3RzLnRlc3RfbG9naW4gaW1wb3J0IExvZ2lu VGVzdENhc2UKK2Zyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0IGNvbmZp Z19kYXRhCisKKworY2xhc3MgU2dHZXRUZXN0Q2FzZShMb2dpblRlc3RDYXNl KToKKyAgICAiIiIKKyAgICAgVGhpcyBjbGFzcyB3aWxsIGNoZWNrIGF2YWls YWJsZSBzZXJ2ZXIgZ3JvdXBzIGluIHBnQWRtaW4uCisgICAgIiIiCisKKyAg ICBwcmlvcml0eSA9IDMKKworICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAg IyBGZXRjaGluZyB0aGUgZGVmYXVsdCB1cmwgZm9yIHNlcnZlciBncm91cCBu b2RlCisgICAgICAgICgnQ2hlY2sgU2VydmVyIEdyb3VwIE5vZGUnLCBkaWN0 KHVybD0nL2Jyb3dzZXIvc2VydmVyLWdyb3VwL29iai8nKSkKKyAgICBdCisK KyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5j dGlvbiB3aWxsIGNoZWNrIGF2YWlsYWJsZSBzZXJ2ZXIgZ3JvdXBzLiIiIgor CisgICAgICAgIHNydl9ncnAgPSBjb25maWdfZGF0YVsndGVzdF9zZXJ2ZXJf Z3JvdXAnXQorCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0 KHNlbGYudXJsICsgc3RyKHNydl9ncnApLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2Rl LCAyMDApCisgICAgICAgIHJlc3BkYXRhID0ganNvbi5sb2FkcyhyZXNwb25z ZS5kYXRhLmRlY29kZSgpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmVz cGRhdGFbJ2lkJ10sIHNydl9ncnApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJv d3Nlci90ZXN0cy9fX2luaXRfXy5weQppbmRleCAyMzgxZWZkLi40NDcwNzEx IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL19faW5p dF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvX19pbml0 X18ucHkKQEAgLTExLDUgKzExLDYgQEAgZnJvbSBwZ2FkbWluLnV0aWxzLnJv dXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogCiAKIGNsYXNzIEJyb3dz ZXJHZW5lcmF0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKwogICAg IGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICBwcmludCAoIkluIEJyb3dz ZXJHZW5lcmF0ZVRlc3RDYXNlLi4uIikKKyAgICAgICAgcmV0dXJuCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfY2hhbmdl X3Bhc3N3b3JkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0 X2NoYW5nZV9wYXNzd29yZC5weQppbmRleCBkZWRiN2Q5Li41YzQ5MzBkIDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfY2hh bmdlX3Bhc3N3b3JkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVz dHMvdGVzdF9jaGFuZ2VfcGFzc3dvcmQucHkKQEAgLTg1LDEwICs4NSwxMCBA QCBjbGFzcyBDaGFuZ2VQYXNzd29yZFRlc3RDYXNlKExvZ2luVGVzdENhc2Up OgogICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgY2hlY2sgY2hhbmdl IHBhc3N3b3JkIGZ1bmN0aW9uYWxpdHkuIiIiCiAKICAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5nZXQoJy9jaGFuZ2UnLCBmb2xsb3dfcmVkaXJl Y3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0SW4oJ3BnQWRtaW4gNCBQ YXNzd29yZCBDaGFuZ2UnLCByZXNwb25zZS5kYXRhKQorICAgICAgICBzZWxm LmFzc2VydEluKCdwZ0FkbWluIDQgUGFzc3dvcmQgQ2hhbmdlJywgcmVzcG9u c2UuZGF0YS5kZWNvZGUoJ3V0ZjgnKSkKICAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5wb3N0KCcvY2hhbmdlJywgZGF0YT1kaWN0KAogICAgICAg ICAgICAgcGFzc3dvcmQ9c2VsZi5wYXNzd29yZCwKICAgICAgICAgICAgIG5l d19wYXNzd29yZD1zZWxmLm5ld19wYXNzd29yZCwKICAgICAgICAgICAgIG5l d19wYXNzd29yZF9jb25maXJtPXNlbGYubmV3X3Bhc3N3b3JkX2NvbmZpcm0p LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93 X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYu cmVzcGRhdGEsIHJlc3BvbnNlLmRhdGEpCisgICAgICAgIHNlbGYuYXNzZXJ0 SW4oc2VsZi5yZXNwZGF0YSwgcmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zjgn KSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVz dF9sb2dpbi5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9s b2dpbi5weQppbmRleCA3YzJiNzk2Li5kMjcyYTYzIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfbG9naW4ucHkKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2xvZ2luLnB5CkBAIC04 LDcgKzgsNiBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAog aW1wb3J0IHV1aWQKLQogZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgogZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBp bXBvcnQgY29uZmlnX2RhdGEKIApAQCAtNjcsNyArNjYsOSBAQCBjbGFzcyBM b2dpblRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAg ICAgICAgICBbJ3Rlc3RfbG9naW5fdXNlcm5hbWUnXSksCiAgICAgICAgICAg ICBwYXNzd29yZD0oY29uZmlnX2RhdGFbJ3BnQWRtaW40X2xvZ2luX2NyZWRl bnRpYWxzJ10KICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfbG9naW5f cGFzc3dvcmQnXSksCi0gICAgICAgICAgICByZXNwZGF0YT0nWW91IGFyZSBj dXJyZW50bHkgcnVubmluZyB2ZXJzaW9uJykpCisgICAgICAgICAgICByZXNw ZGF0YT0nR3JhdmF0YXIgaW1hZ2UgZm9yICVzJyAlCisgICAgICAgICAgICAg ICAgICAgICBjb25maWdfZGF0YVsncGdBZG1pbjRfbG9naW5fY3JlZGVudGlh bHMnXQorICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X2xvZ2luX3VzZXJu YW1lJ10pKQogICAgIF0KIAogICAgIGRlZiBydW5UZXN0KHNlbGYpOgpAQCAt NzYsNCArNzcsNCBAQCBjbGFzcyBMb2dpblRlc3RDYXNlKEJhc2VUZXN0R2Vu ZXJhdG9yKToKICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0 KCcvbG9naW4nLCBkYXRhPWRpY3QoCiAgICAgICAgICAgICBlbWFpbD1zZWxm LmVtYWlsLCBwYXNzd29yZD1zZWxmLnBhc3N3b3JkKSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1 ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRJbihzZWxmLnJlc3BkYXRhLCByZXNw b25zZS5kYXRhKQorICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYucmVzcGRh dGEsIHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGY4JykpCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfbG9nb3V0LnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2xvZ291dC5weQppbmRl eCA4OTcxZTcyLi5kOTYxMWFlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9i cm93c2VyL3Rlc3RzL3Rlc3RfbG9nb3V0LnB5CisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvdGVzdHMvdGVzdF9sb2dvdXQucHkKQEAgLTE0LDE0ICsxNCwx MyBAQCBmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0 YQogY2xhc3MgTG9nb3V0VGVzdChMb2dpblRlc3RDYXNlKToKICAgICAiIiIK ICAgICBUaGlzIGNsYXNzIHZlcmlmaWVzIHRoZSBsb2dvdXQgZnVuY3Rpb25h bGl0eTsgcHJvdmlkZWQgdGhlIHVzZXIgaXMgYWxyZWFkeQotICAgIGxvZ2dl ZC1pbi4gRGljdGlvbmFyeSBwYXJhbWV0ZXJzIGRlZmluZSB0aGUgc2NlbmFy aW8gYXBwZW5kZWQgYnkgdGVzdAotICAgIG5hbWUuCisgICAgbG9nZ2VkLWlu LgogICAgICIiIgogCi0gICAgcHJpb3JpdHkgPSAzCisgICAgcHJpb3JpdHkg PSAxMDAKIAogICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBUaGlzIHRl c3QgY2FzZSB2YWxpZGF0ZSB0aGUgbG9nb3V0IHBhZ2UKKyAgICAgICAgIyBU aGlzIHRlc3QgY2FzZSB2YWxpZGF0ZSB0aGUgbG9nb3V0IHBhZ2UuCiAgICAg ICAgICgnTG9nZ2luZyBPdXQnLCBkaWN0KHJlc3BkYXRhPSdSZWRpcmVjdGlu Zy4uLicpKQogICAgIF0KIApAQCAtMjksNyArMjgsNyBAQCBjbGFzcyBMb2dv dXRUZXN0KExvZ2luVGVzdENhc2UpOgogICAgICAgICAiIiJUaGlzIGZ1bmN0 aW9uIGNoZWNrcyB0aGUgbG9nb3V0IGZ1bmN0aW9uYWxpdHkuIiIiCiAKICAg ICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoJy9sb2dvdXQnKQot ICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYucmVzcGRhdGEsIHJlc3BvbnNl LmRhdGEpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oc2VsZi5yZXNwZGF0YSwg cmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0ZjgnKSkKIAogICAgIGRlZiB0ZWFy RG93bihzZWxmKToKICAgICAgICAgIiIiCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfcmVzZXRfcGFzc3dvcmQucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfcmVzZXRfcGFzc3dvcmQu cHkKaW5kZXggMDMwYjE4Mi4uMzFhMzk5MiAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X3Jlc2V0X3Bhc3N3b3JkLnB5Cisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9yZXNldF9wYXNz d29yZC5weQpAQCAtNDEsOCArNDEsOSBAQCBjbGFzcyBSZXNldFBhc3N3b3Jk VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAiIiJUaGlz IGZ1bmN0aW9uIGNoZWNrcyByZXNldCBwYXNzd29yZCBmdW5jdGlvbmFsaXR5 LiIiIgogCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KCcv cmVzZXQnKQotICAgICAgICBzZWxmLmFzc2VydEluKCdSZWNvdmVyIHBnQWRt aW4gNCBQYXNzd29yZCcsIHJlc3BvbnNlLmRhdGEpCisgICAgICAgIHNlbGYu YXNzZXJ0SW4oJ1JlY292ZXIgcGdBZG1pbiA0IFBhc3N3b3JkJywKKyAgICAg ICAgICAgICAgICAgICAgICByZXNwb25zZS5kYXRhLmRlY29kZSgndXRmOCcp KQogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCiAgICAg ICAgICAgICAnL3Jlc2V0JywgZGF0YT1kaWN0KGVtYWlsPXNlbGYuZW1haWwp LAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAg ICBzZWxmLmFzc2VydEluKHNlbGYucmVzcGRhdGEsIHJlc3BvbnNlLmRhdGEp CisgICAgICAgIHNlbGYuYXNzZXJ0SW4oc2VsZi5yZXNwZGF0YSwgcmVzcG9u c2UuZGF0YS5kZWNvZGUoJ3V0ZjgnKSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL3V0aWxzL3JvdXRlLnB5IGIvd2ViL3BnYWRtaW4vdXRpbHMvcm91dGUu cHkKaW5kZXggZmI5ZGU2OS4uZTQzOTk2NSAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vdXRpbHMvcm91dGUucHkKKysrIGIvd2ViL3BnYWRtaW4vdXRpbHMv cm91dGUucHkKQEAgLTUyLDcgKzUyLDEwIEBAIGNsYXNzIFRlc3RzR2VuZXJh dG9yUmVnaXN0cnkoQUJDTWV0YSk6CiAgICAgICAgIGZyb20gd2Vya3pldWcu dXRpbHMgaW1wb3J0IGZpbmRfbW9kdWxlcwogCiAgICAgICAgIGZvciBtb2R1 bGVfbmFtZSBpbiBmaW5kX21vZHVsZXMocGtnLCBGYWxzZSwgVHJ1ZSk6Ci0g ICAgICAgICAgICBtb2R1bGUgPSBpbXBvcnRfbW9kdWxlKG1vZHVsZV9uYW1l KQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG1vZHVsZSA9 IGltcG9ydF9tb2R1bGUobW9kdWxlX25hbWUpCisgICAgICAgICAgICBleGNl cHQgSW1wb3J0RXJyb3I6CisgICAgICAgICAgICAgICAgcGFzcwogCiAKIGlt cG9ydCBzaXgKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL2NvbmZpZy5w eSBiL3dlYi9yZWdyZXNzaW9uL2NvbmZpZy5weQppbmRleCBiZWY2NWZiLi5m NDhlYWRlIDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9jb25maWcucHkK KysrIGIvd2ViL3JlZ3Jlc3Npb24vY29uZmlnLnB5CkBAIC0xNCwzICsxNCw4 IEBAIHJvb3QgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5yZWFscGF0aChf X2ZpbGVfXykpCiAKIHdpdGggb3Blbihyb290ICsgJy90ZXN0X2NvbmZpZy5q c29uJykgYXMgZGF0YV9maWxlOgogICAgIGNvbmZpZ19kYXRhID0ganNvbi5s b2FkKGRhdGFfZmlsZSkKKword2l0aCBvcGVuKHJvb3QgKyAnL3Rlc3RfYWR2 YW5jZV9jb25maWcuanNvbicpIGFzIGRhdGFfZmlsZToKKyAgICBhZHZhbmNl X2NvbmZpZ19kYXRhID0ganNvbi5sb2FkKGRhdGFfZmlsZSkKKworcGlja2xl X3BhdGggPSBvcy5wYXRoLmpvaW4ocm9vdCwgJ3BhcmVudF9pZC5wa2wnKQpk aWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vdGVzdF9hZHZhbmNlX2NvbmZp Zy5qc29uLmluIGIvd2ViL3JlZ3Jlc3Npb24vdGVzdF9hZHZhbmNlX2NvbmZp Zy5qc29uLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmU0MTU4NzYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcmVncmVzc2lvbi90 ZXN0X2FkdmFuY2VfY29uZmlnLmpzb24uaW4KQEAgLTAsMCArMSwxMDMgQEAK K3sKKyAgInRlc3RfYWRkX2RhdGFiYXNlX2RhdGEiOgorICAgeworICAgICJ0 ZXN0X3ByaXZpbGVnZXNfYWNsIjogWworICAgICAgeworICAgICAgICAiZ3Jh bnRlZSI6ICJwb3N0Z3JlcyIsCisgICAgICAgICJncmFudG9yIjogInBvc3Rn cmVzIiwKKyAgICAgICAgInByaXZpbGVnZXMiOiBbCisgICAgICAgICAgewor ICAgICAgICAgICAgInByaXZpbGVnZV90eXBlIjogIkMiLAorICAgICAgICAg ICAgInByaXZpbGVnZSI6IHRydWUsCisgICAgICAgICAgICAid2l0aF9ncmFu dCI6IHRydWUKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAg ICAgICJwcml2aWxlZ2VfdHlwZSI6ICJUIiwKKyAgICAgICAgICAgICJwcml2 aWxlZ2UiOiB0cnVlLAorICAgICAgICAgICAgIndpdGhfZ3JhbnQiOiBmYWxz ZQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0sCisg ICAgInRlc3RfY29ubl9saW1pdCI6IC0xLAorICAgICJ0ZXN0X293bmVyIjog InBvc3RncmVzIiwKKyAgICAidGVzdF9mdW5fYWNsIjogWworICAgICAgewor ICAgICAgICAiZ3JhbnRlZSI6ICJwb3N0Z3JlcyIsCisgICAgICAgICJncmFu dG9yIjogInBvc3RncmVzIiwKKyAgICAgICAgInByaXZpbGVnZXMiOiBbCisg ICAgICAgICAgeworICAgICAgICAgICAgInByaXZpbGVnZV90eXBlIjogIlgi LAorICAgICAgICAgICAgInByaXZpbGVnZSI6IHRydWUsCisgICAgICAgICAg ICAid2l0aF9ncmFudCI6IGZhbHNlCisgICAgICAgICAgfQorICAgICAgICBd CisgICAgICB9CisgICAgXSwKKyAgICAidGVzdF9zZXFfYWNsIjogWworICAg ICAgeworICAgICAgICAiZ3JhbnRlZSI6ICJwb3N0Z3JlcyIsCisgICAgICAg ICJncmFudG9yIjogInBvc3RncmVzIiwKKyAgICAgICAgInByaXZpbGVnZXMi OiBbCisgICAgICAgICAgeworICAgICAgICAgICAgInByaXZpbGVnZV90eXBl IjogInIiLAorICAgICAgICAgICAgInByaXZpbGVnZSI6IHRydWUsCisgICAg ICAgICAgICAid2l0aF9ncmFudCI6IGZhbHNlCisgICAgICAgICAgfSwKKyAg ICAgICAgICB7CisgICAgICAgICAgICAicHJpdmlsZWdlX3R5cGUiOiAidyIs CisgICAgICAgICAgICAicHJpdmlsZWdlIjogdHJ1ZSwKKyAgICAgICAgICAg ICJ3aXRoX2dyYW50IjogZmFsc2UKKyAgICAgICAgICB9LAorICAgICAgICAg IHsKKyAgICAgICAgICAgICJwcml2aWxlZ2VfdHlwZSI6ICJVIiwKKyAgICAg ICAgICAgICJwcml2aWxlZ2UiOiB0cnVlLAorICAgICAgICAgICAgIndpdGhf Z3JhbnQiOiBmYWxzZQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAg fQorICAgIF0sCisgICAgInRlc3RfdGJsX2FjbCI6IFsKKyAgICAgIHsKKyAg ICAgICAgImdyYW50ZWUiOiAicG9zdGdyZXMiLAorICAgICAgICAiZ3JhbnRv ciI6ICJwb3N0Z3JlcyIsCisgICAgICAgICJwcml2aWxlZ2VzIjogWworICAg ICAgICAgIHsKKyAgICAgICAgICAgICJwcml2aWxlZ2VfdHlwZSI6ICJhIiwK KyAgICAgICAgICAgICJwcml2aWxlZ2UiOiB0cnVlLAorICAgICAgICAgICAg IndpdGhfZ3JhbnQiOiB0cnVlCisgICAgICAgICAgfSwKKyAgICAgICAgICB7 CisgICAgICAgICAgICAicHJpdmlsZWdlX3R5cGUiOiAiciIsCisgICAgICAg ICAgICAicHJpdmlsZWdlIjogdHJ1ZSwKKyAgICAgICAgICAgICJ3aXRoX2dy YW50IjogZmFsc2UKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0K KyAgICBdLAorICAgICJ0ZXN0X3R5cGVfYWNsIjogWworICAgICAgeworICAg ICAgICAiZ3JhbnRlZSI6ICJwb3N0Z3JlcyIsCisgICAgICAgICJncmFudG9y IjogInBvc3RncmVzIiwKKyAgICAgICAgInByaXZpbGVnZXMiOiBbCisgICAg ICAgICAgeworICAgICAgICAgICAgInByaXZpbGVnZV90eXBlIjogIlUiLAor ICAgICAgICAgICAgInByaXZpbGVnZSI6IHRydWUsCisgICAgICAgICAgICAi d2l0aF9ncmFudCI6IGZhbHNlCisgICAgICAgICAgfQorICAgICAgICBdCisg ICAgICB9CisgICAgXSwKKyAgICAidGVzdF9lbmNvZGluZyI6ICJVVEY4IiwK KyAgICAidGVzdF9uYW1lIjogInRlc3RfZGJfYXV0b21hdGlvbiIsCisgICAg InRlc3RfcHJpdmlsZWdlcyI6IFtdLAorICAgICJ0ZXN0X3NlY3VyaXRpZXMi OiBbXSwKKyAgICAidGVzdF92YXJpYWJsZXMiOiBbXQorICB9LAorCisgICJ0 ZXN0X2RiX3VwZGF0ZV9kYXRhIjoKKyAgeworICAgICAgInRlc3RfY29tbWVu dCI6ICJUaGlzIGlzIGRiIHVwZGF0ZSBjb21tZW50IgorICB9CisKK30KZGlm ZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL3Rlc3Rfbm9kZXMucHkgYi93ZWIv cmVncmVzc2lvbi90ZXN0X25vZGVzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjg5MTk1OTUKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcmVncmVzc2lvbi90ZXN0X25vZGVzLnB5CkBAIC0wLDAgKzEsNDYgQEAK KyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9z dGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2 LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdh cmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQor IworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSByZWdyZXNzaW9u LmNvbmZpZyBpbXBvcnQgY29uZmlnX2RhdGEKK2ltcG9ydCBqc29uCitmcm9t IHJlZ3Jlc3Npb24udGVzdF91dGlscyBpbXBvcnQgZ2V0X2lkcworCisKK2Rl ZiB0ZXN0X2dldG5vZGVzKG5vZGU9Tm9uZSk6CisgICAgIyBDb25uZWN0IHRv IHNlcnZlciBhbmQgZGF0YWJhc2UuCisKKyAgICBpZiBub3Qgbm9kZToKKyAg ICAgICAgcmV0dXJuIE5vbmUKKworICAgIGFsbF9pZCA9IGdldF9pZHMoKQor CisgICAgc2VydmVyX2lkID0gYWxsX2lkWyJzaWQiXVswXQorICAgIGRiX2lk ID0gYWxsX2lkWyJkaWQiXVswXQorICAgIHByaW50KCJkYiBpZCBpbiB0ZXN0 IG5vZGVzOiIsIGRiX2lkKQorCisgICAgc3J2X2dycCA9IGNvbmZpZ19kYXRh Wyd0ZXN0X3NlcnZlcl9ncm91cCddCisKKyAgICAjIENvbm5lY3QgdG8gc2Vy dmVyCisgICAgcmVzcG9uc2UgPSBub2RlLnRlc3Rlci5wb3N0KCdicm93c2Vy L3NlcnZlci9jb25uZWN0L3swfS97MX0nLmZvcm1hdAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoc3J2X2dycCwgc2VydmVyX2lkKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1kaWN0KHBhc3N3 b3JkPWNvbmZpZ19kYXRhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFsndGVzdF9zZXJ2ZXJfY3JlZGVudGlhbHMnXVswXQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfZGJfcGFzc3dvcmQnXSks IGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAgICMgQ29ubmVjdCB0byBk YXRhYmFzZQorICAgIGNvbl9yZXNwb25zZSA9IG5vZGUudGVzdGVyLnBvc3Qo J2Jyb3dzZXIvZGF0YWJhc2UvY29ubmVjdC8nCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnezB9L3sxfS97Mn0nLmZvcm1hdAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNydl9ncnAsIHNl cnZlcl9pZCwgZGJfaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorICAgIHByaW50KCJj b25uZWN0IGRiIHJlc3BvbnNlIGluIHRlc3Qgbm9kZXMiLCAgY29uX3Jlc3Bv bnNlKQorCisgICAgZGJfY29uID0ganNvbi5sb2Fkcyhjb25fcmVzcG9uc2Uu ZGF0YS5kZWNvZGUoKSkKKyAgICBwcmludCgiZGIgY29ubmVjdGlvbiByZXNw b25zZSBpbiB0ZXN0IG5vZGVzIiwgZGJfY29uKQorCisgICAgcmV0dXJuIGRi X2NvbgpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vdGVzdF91dGlscy5w eSBiL3dlYi9yZWdyZXNzaW9uL3Rlc3RfdXRpbHMucHkKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzY4NzQ0ZgotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9yZWdyZXNzaW9uL3Rlc3RfdXRpbHMucHkKQEAgLTAsMCAr MSwyMCBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWlu IDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAx MyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhp cyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBM aWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQg cGlja2xlCitmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBwaWNrbGVf cGF0aAorCisKK2RlZiBnZXRfaWRzKHVybD1waWNrbGVfcGF0aCk6CisgICAg IyBUaGlzIGZ1bmN0aW9uIHdpbGwgcmVhZCBwYXJlbnQgbm9kZXMgaWQncyBm cm9tIHBpY2tsZSBhbmQgcmV0dXJuIGl0LgorCisgICAgb3V0cHV0ID0gb3Bl bih1cmwsICdyYicpCisgICAgaWRzID0gcGlja2xlLmxvYWQob3V0cHV0KQor ICAgIG91dHB1dC5jbG9zZSgpCisgICAgcmV0dXJuIGlkcwpkaWZmIC0tZ2l0 IGEvd2ViL3JlZ3Jlc3Npb24vdGVzdHN1aXRlLnB5IGIvd2ViL3JlZ3Jlc3Np b24vdGVzdHN1aXRlLnB5CmluZGV4IDc1ZDQzN2IuLjNkOGQyYzQgMTAwNjQ0 Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL3Rlc3RzdWl0ZS5weQorKysgYi93ZWIv cmVncmVzc2lvbi90ZXN0c3VpdGUucHkKQEAgLTEzLDcgKzEzLDggQEAgdGhl bSB0byBUZXN0U3VpdGUuICIiIgogaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiBp bXBvcnQgdW5pdHRlc3QKLQoraW1wb3J0IG9wZXJhdG9yCitpbXBvcnQgbG9n Z2luZwogZnJvbSB0ZXN0c2NlbmFyaW9zLnNjZW5hcmlvcyBpbXBvcnQgZ2Vu ZXJhdGVfc2NlbmFyaW9zCiAKICMgV2UgbmVlZCB0byBpbmNsdWRlIHRoZSBy b290IGRpcmVjdG9yeSBpbiBzeXMucGF0aCB0byBlbnN1cmUgdGhhdCB3ZSBj YW4KQEAgLTY1LDYgKzY2LDggQEAgZGVmIHN1aXRlKCk6CiAKICAgICAgICAg bW9kdWxlcy5pbnNlcnQoZ2VuLnByaW9yaXR5LCBnZW4pCiAKKyAgICBtb2R1 bGVzLnNvcnQoa2V5PW9wZXJhdG9yLmF0dHJnZXR0ZXIoJ3ByaW9yaXR5Jykp CisKICAgICBmb3IgbSBpbiBtb2R1bGVzOgogICAgICAgICBvYmogPSBtKCkK ICAgICAgICAgb2JqLnNldFRlc3RDbGllbnQodGVzdF9jbGllbnQpCkBAIC03 NSw1ICs3OCwyMCBAQCBkZWYgc3VpdGUoKToKIAogCiBpZiBfX25hbWVfXyA9 PSAnX19tYWluX18nOgorCisgICAgbG9nZ2luZy5iYXNpY0NvbmZpZyhsZXZl bD1sb2dnaW5nLkRFQlVHLAorICAgICAgICAgICAgICAgICAgICAgICAgZm9y bWF0PSclKGFzY3RpbWUpczolKGxldmVsbmFtZSlzOiUobmFtZSlzOiUobWVz c2FnZSlzJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lPSJs b2dnZXIubG9nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVtb2Rl PSd3JykKKwogICAgIHN1aXRlID0gc3VpdGUoKQotICAgIHRlc3RzID0gdW5p dHRlc3QuVGV4dFRlc3RSdW5uZXIoZGVzY3JpcHRpb25zPVRydWUsIHZlcmJv c2l0eT0yKS5ydW4oc3VpdGUpCisgICAgdGVzdHMgPSB1bml0dGVzdC5UZXh0 VGVzdFJ1bm5lcihkZXNjcmlwdGlvbnM9VHJ1ZSwgdmVyYm9zaXR5PTIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW09c3lz LnN0ZG91dCkucnVuKHN1aXRlKQorCisgICAgcHJpbnQoIlBsZWFzZSBjaGVj ayBvdXRwdXQgaW4gZmlsZTogbG9nZ2VyLmxvZyBwbGFjZWQgYXQiLCBjdXJy ZW50X3BhdGgpCisKKyAgICB0cnk6CisgICAgICAgIG9zLnJlbW92ZSgicGFy ZW50X2lkLnBrbCIpCisKKyAgICBleGNlcHQgRmlsZU5vdEZvdW5kRXJyb3I6 CisgICAgICAgIHBhc3MK --001a11394dbe1b14aa0536ded920 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 --001a11394dbe1b14aa0536ded920--