Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jUPd2-0002gF-Ha for pgadmin-hackers@arkaria.postgresql.org; Fri, 01 May 2020 06:58:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jUPd0-0004Ds-00 for pgadmin-hackers@arkaria.postgresql.org; Fri, 01 May 2020 06:58:30 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jUPcz-0004Dk-DV for pgadmin-hackers@lists.postgresql.org; Fri, 01 May 2020 06:58:29 +0000 Received: from mail-oi1-x229.google.com ([2607:f8b0:4864:20::229]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1jUPcu-0000iH-AW for pgadmin-hackers@postgresql.org; Fri, 01 May 2020 06:58:28 +0000 Received: by mail-oi1-x229.google.com with SMTP id o24so2052551oic.0 for ; Thu, 30 Apr 2020 23:58:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=MuD7GGAmdZqoDTfeqcCXUAA+UBczYTTH58NKAQQKk+Q=; b=wCf+LMwYeuVWhy55/EgaBTSzGLmnX7ukaJXd81xT94WioMXUi1e5V9rJqsTnkivhLs FgJr8MbrvvosNLnV29OXN1ebOZPJkU/PGkCqcWyvGDP+8LzHSfuBNHlV8tgEW62v6ck5 0aRybZ1acoVeTCE5NVbwvN4Amn0T5tVLeapufhstkfxr1VQBnh2S8M53Rd+59ixIWCE9 +6ZS2Wg9fR0Ts1VFldmniidTceFaoLvKWP6jfZ4s2xePCQnK93hBxGW7tNKxYx4MvDlN 1MTMOGcWnHyCxQXGoXLRkhx/mfWYFbAwOdJRNGyl16rTupWt7mMELKzHql47KREjepDB qIdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=MuD7GGAmdZqoDTfeqcCXUAA+UBczYTTH58NKAQQKk+Q=; b=M1mTooE6wAV1yPc3FnwcqkYotlcUvebvekX+tLSQMYw71e7jC3g8lR3L2w1+eWKpcK 3fjMawtB55cfvHHyBjszcgiN1KnlIkovdDt9a6QPX/lFA53Q4nLTZp6SZxJWRqWRV9Rh 82rLB8Y3a/j6/XiSpnl56rjaJ45J661TAaMgW2bjfrDblOaugeND66TTKK9j/wxpYDQ7 5uECvI7S/HdU8SA+P06T1y+DCct2j61vX5UZ1D2P4uTxxUL81vtXcu5beaib3BD3B7qZ H5YqX0y3AHPtmIBtsUlrq+jZDJami+YdZVQxWSPe9bGGUUVZRDwEGPsVlunl5ZYleEZe Q4qw== X-Gm-Message-State: AGi0PuZ5+lCOqf1CihyhUJ2+jdNfJU+kMUbB+PfxRNj3P+ade2DcmDnG D1YXa0SmUr8JZvqbTVYi+L5YQjUw62p40FA2X82L6M/eSUezchjiWWyyGkxkZsVC65EP1jb+Vg0 nSPkIZ/9ZUYWVfkDiG9s03sYdzzlOXIERvAKMsVWkRCp0J0wVw3yDvYAcVC3XqO2uz8Baqrq49p D1P0XFoZO25xwqycgv4MH5MiPKGeCGVxysX1ImrBzJ5aRRG/fHvK+91J+GNg== X-Google-Smtp-Source: APiQypLDaykyw5f6RRsogP6fB6RWcpkWSRMIO6oafa3eF2PHrxM45gPo395g6x1aO5x9gsreliIuH7lU90uwe1GyiqI= X-Received: by 2002:a54:4802:: with SMTP id j2mr2116120oij.100.1588316300937; Thu, 30 Apr 2020 23:58:20 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Yogesh Mahajan Date: Fri, 1 May 2020 12:27:44 +0530 Message-ID: Subject: Re: [pgAdmin 4 - Housekeeping #5255] Implement Selenium Grid using multi-threading & solenoid using current test framework To: Shubham Agarwal , pgadmin-hackers Cc: navnath gadakh , Akshay Joshi Content-Type: multipart/mixed; boundary="000000000000e903c905a490b4ae" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000e903c905a490b4ae Content-Type: multipart/alternative; boundary="000000000000e903c705a490b4ac" --000000000000e903c705a490b4ac Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, Please find updated patch modified according to review comments - Patch implements below things - 1.Enable the current framework to provide option to execute Feature tests in parallel on selenium grid set up. - Addition of new switch to start parallel features tests. - New parameters with respect to selenoid in test_config.json.in - Addition of new script to check solenoid updates. Thanks, Yogesh Mahajan QA - Team EnterpriseDB Corporation Phone: +91-9741705709 On Tue, Apr 21, 2020 at 1:18 PM Shubham Agarwal < shubham.agarwal@enterprisedb.com> wrote: > Hi Yogesh, > Below are the review comments- > > 1. runtests.py > a. The exception traceback logic at line number 653 in runtests.py is > not correct since it is particular to the thread > but there is much more code in that block which can throw some exception. > b. line number 447 -> The drop_database function will only try to drop > the database with the name which is newly created > at 431 line number, its probability is 1% instead of this you can write a > logic so that it will drop all the database which starts with name > =E2=80=98acceptance_test_db'. > c. line 584 - Why we are including resql test case execution in GUI > execution logic. > d. Change the function name run_test as script name is also > runtests.py > > 2. test_utils.py > a. Remove the headless chrome code from get_remote_webdriver() in > test_utils.py since we are using solenoid and it is not required anymore. > b. Create separate functions to instantiate the firefox driver and > chrome driver logic since the same code is used in multiple files. > c. launch_url_in_browser() -> you can simplify the definition of the > function like: > retry =3D 60 > =EF=BB=BF *while *retry > 0: > try: > driver.get(url) > except WebDriverException: > retry -=3D 1 > 3. Execution logs are not printing as per the logic some time, I ran the > suite for two servers and attached are the execution logs. > 4. Readme - > Please provide the Valid selenoid URL to be provided in the > test_config.json, with all the steps mentioned in the readme it is not > clear. > Revisit the readme and write the missing steps. > 5. copy_selected_query_results_feature_tests.py- > Create the function to avoid duplicate code. The code for pasting the > values is repeating 8 times in the test code. > 6. Provide the valid docstring in newly introduced functions and also > valid comments while calling it. for ex.- _update_preference() function i= s > introduced in pg_utilities_backup_restrore_test.py but from the function > name, it is not clear what preferences are going to update in it. > 7. test_index_constraint_add test case is failing due to the latest > change, please merge and update this test case > > On Thu, Apr 16, 2020 at 2:41 PM navnath gadakh < > navnath.gadakh@enterprisedb.com> wrote: > >> Hi, >> I think I am not the right person to review this patch now as I already >> reviewed this code offline in the last week. I know the approached Yoges= h >> has followed, also given some review comments on it. >> Someone else please review it. >> >> Thanks! >> >> On Mon, Apr 13, 2020 at 2:49 PM Akshay Joshi < >> akshay.joshi@enterprisedb.com> wrote: >> >>> Hi Navnath >>> >>> Can you please review it? >>> >>> On Mon, Apr 13, 2020 at 2:40 PM Yogesh Mahajan < >>> yogesh.mahajan@enterprisedb.com> wrote: >>> >>>> Hi, >>>> >>>> Please find the attached patch for running *features tests* using >>>> solenoid(selenium grid + docker). >>>> KIndly review. >>>> To sun feature tests in parallel, required prerequisites can be checke= d >>>> in '~/web/regression/README' file. >>>> Also detailed instructions are added in the same file. >>>> After applying the patch, any existing process for execution of >>>> API/Features tests remains the same. >>>> >>>> >>>> Thanks, >>>> Yogesh Mahajan >>>> QA - Team >>>> EnterpriseDB Corporation >>>> >>>> Phone: +91-9741705709 >>>> >>> >>> >>> -- >>> *Thanks & Regards* >>> *Akshay Joshi* >>> >>> *Sr. Software Architect* >>> *EnterpriseDB Software India Private Limited* >>> *Mobile: +91 976-788-8246* >>> >> >> >> -- >> Regards, >> Navnath Gadakh >> > > > -- > Thanks & Regards, > Shubham Agarwal > EnterpriseDB Corporation > > The Postgres Database Company > --000000000000e903c705a490b4ac Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Please find updated patch modified = according to review comments=C2=A0-=C2=A0
Patch implements below = things=C2=A0-=C2=A0
1.Enable the current framework to provide opt= ion to execute Feature tests in parallel =C2=A0on selenium grid set up.
=C2=A0 =C2=A0- Addition of new switch to start parallel features tes= ts.
=C2=A0 =C2=A0- New parameters with respect to selenoid in test_config.json.in
=C2= =A0 =C2=A0- Addition of new script to check solenoid=C2=A0updates.



= Thanks,
Yogesh Mahajan
QA - Team
EnterpriseDB = Corporation

Phone: +91-9741705709

<= /div>

On Tue, Apr 21, 2020 at 1:18 PM Shubham Agarwal <shubham.agarwal@enterprisedb.com> = wrote:
Hi Yogesh,
Below are the review comments-

1. runtes= ts.py
=C2=A0 =C2=A0 a. T<= span style=3D"color:rgb(0,0,0);white-space:pre-wrap">he exception traceback= logic at line number 653 in runtests.py is not correct since it is particu= lar to the thread
but there is= much more code in that block which can throw some exception.=
b. line number 447 -> The drop_database function will only = try to drop the database with the name which is newly created
at 431 line number, its probability is 1% i= nstead of this you can write a logic so that it will drop all the database = which starts with name =E2=80=98acceptance_test_db'.
=C2=A0 c. line 584 -=C2=A0Why we = are including resql test case execution in GUI execution logic.
=C2=A0 =C2=A0 d.=C2=A0Change the function name run_test as scrip= t name is also runtests.py

<= /div>
2. test_ut= ils.py
=C2=A0 =C2=A0 a.= =C2=A0Remove the headless chrome code fr= om get_remote_webdriver() in test_utils.py since we are using solenoid and it is not required anymore.
= =C2=A0 = =C2=A0 b. Crea= te separate functions to instantiate the firefox driver and chrome driver l= ogic since the same code is used in multiple files.
c. l= aunch_url_in_browser() -> you can simplify the definition of the functio= n like:
=C2=A0 =C2=A0=C2=A0retry =3D 60
=EF=BB=BF=C2=A0 =C2=A0 =C2=A0 =C2=A0 while=C2=A0retry > 0= :
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 try:
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 driver.get(url)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 except WebDriverException:
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0retry -=3D 1
3= . Execution logs are not printing as per the logic some time, I ran the sui= te for two servers and attached are the execution logs.
=
<= font face=3D"arial, sans-serif">4. Readme -
Please provide the Valid selenoid URL to be provided= in the test_config.json, with all the steps mentioned in the readme it is = not clear.
Revisit th= e readme and write the missing steps.
5. copy_selected_query_results_feature_tests.py-
Create the function to avoid du= plicate code. The code for pasting the values is repeating 8 times in the t= est code.
6. Provide the= valid docstring in newly introduced functions and also valid comments whil= e calling it. for ex.- _update_preference() function is
=
<= font face=3D"arial, sans-serif"> introduced in pg_utilities_backup_restro= re_test.py but from the function name, it is not clear what preferences are= going to update in it.
= 7. test_index_const= raint_add test case is failing due to the latest change, please merge and u= pdate this test case
=

On Thu, Apr 16, 2020 at 2:41 PM navnath gadakh <navnath.ga= dakh@enterprisedb.com> wrote:
Hi,
I think I am not the right person to review th= is patch now as I already reviewed this code offline in the last week. I kn= ow the=C2=A0approached Yogesh has followed, also given some review comments= on it.
Someone else plea= se review it.=C2=A0

<= /font>
Thanks!

On Mon,= Apr 13, 2020 at 2:49 PM Akshay Joshi <akshay.joshi@enterprisedb.com> wro= te:
Hi Navnath

Can you please review it?

On Mon, Apr 13, 2020 at 2:40 PM Yogesh Mahajan <yogesh.mahajan@enterpr= isedb.com> wrote:
=
Hi,

Please find the attached=C2=A0patch for running features tests us= ing solenoid(selenium=C2=A0grid + docker).
KIndly review.
To sun feature tests in parallel, required prerequisites can be che= cked in '~/web/regression/README' file.
Also detailed=C2=A0instructions are added in the sam= e=C2=A0file.
After applyi= ng the patch, any existing process for execution of API/Features=C2=A0tests= remains the same.

= Thanks,
Yogesh Mahajan
QA - Team
<= font face=3D"arial, sans-serif">EnterpriseDB Corporation

Phone: +91-= 9741705709


--
Thanks & Regards=
A= kshay Joshi
Sr. Software Architect
EnterpriseDB Software India Private Limited
Mobile: +91 976-788-8246


--
Regards,
Navnath = Gadakh


--
Thanks & Regards,
Shubham Agarwal
EnterpriseDB Corporation

The Postgres Database Company
--000000000000e903c705a490b4ac-- --000000000000e903c905a490b4ae Content-Type: application/octet-stream; name="Selenium_Grid_Implementation_ver2.0.patch" Content-Disposition: attachment; filename="Selenium_Grid_Implementation_ver2.0.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k9nuhbdp0 ZGlmZiAtLWdpdCBhL3Rvb2xzL3JlcXVpcmVtZW50cy50eHQgYi90b29scy9yZXF1aXJlbWVudHMu dHh0CmluZGV4IDg3ZWNjMmEuLjI4MDQwMTIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3JlcXVpcmVtZW50 cy50eHQKKysrIGIvdG9vbHMvcmVxdWlyZW1lbnRzLnR4dApAQCAtMSwzICsxLDQgQEAKIHJlcXVl c3RzPj0yLjIxLjAKIHJlcXVlc3RzW3NlY3VyaXR5XT49Mi4yMS4wCiBzYWZldHk9PTEuOC41Citw eWpxPT0yLjQuMApkaWZmIC0tZ2l0IGEvdG9vbHMvdXBkYXRlX3NlbGVub2lkX2Jyb3dzZXJzLnB5 IGIvdG9vbHMvdXBkYXRlX3NlbGVub2lkX2Jyb3dzZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmFjNGQ5MDUKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy91cGRhdGVf c2VsZW5vaWRfYnJvd3NlcnMucHkKQEAgLTAsMCArMSwyNjUgQEAKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAy MDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJl IGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworIyBVcGRhdGVzIGJyb3dzZXIgaW1hZ2VzKHNlbGVub2lkLWRvY2tlcikgZGVwZW5k aW5nIG9uIGFyZ3VtZW50cyBwYXNzZWQgd2hpbGUKKyMgcnVubmluZyB0aGlzIHNjcmlwdC4KKwor aW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQgb3MKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgc3lz CitpbXBvcnQgdHJhY2ViYWNrCitpbXBvcnQgcmVxdWVzdHMKK2ltcG9ydCBweWpxCitpbXBvcnQg anNvbgorCisKK2RlZiByZWFkX2NvbW1hbmRfbGluZSgpOgorICAgICIiIlJlYWQgdGhlIGNvbW1h bmQgbGluZSBhcmd1bWVudHMuCisgICAgUmV0dXJuczoKKyAgICAgICAgQXJndW1lbnRQYXJzZXI6 IFRoZSBwYXJzZWQgYXJndW1lbnRzIG9iamVjdAorCisgICAgIiIiCisgICAgcGFyc2VyID0gYXJn cGFyc2UuQXJndW1lbnRQYXJzZXIoCisgICAgICAgIGRlc2NyaXB0aW9uPSdHZXQgbGF0ZXN0IGJy b3dzZXIgaW1hZ2VzKGNocm9tZSAmIGZpcmVmb3gpIGZvciBzZWxlbm9pZC4nCisgICAgICAgICAg ICAgICAgICAgICdlLmcuIC0gLS1jaHJvbWUgL3Vzci9iaW4vZ29vZ2xlLWNocm9tZSAtLWZpcmVm b3ggJworICAgICAgICAgICAgICAgICAgICAnL3Vzci9iaW4vZmlyZWZveCcpCisgICAgcGFyc2Vy LmFkZF9hcmd1bWVudCgiLS1jaHJvbWUiLCBtZXRhdmFyPSJDSFJPTUUiLAorICAgICAgICAgICAg ICAgICAgICAgICAgaGVscD0idGhlIENocm9tZSBleGVjdXRhYmxlIHBhdGgiKQorICAgIHBhcnNl ci5hZGRfYXJndW1lbnQoIi0tZmlyZWZveCIsIG1ldGF2YXI9IkZJUkVGT1giLAorICAgICAgICAg ICAgICAgICAgICAgICAgaGVscD0idGhlIGZpcmVmb3ggZXhlY3V0YWJsZSBwYXRoIikKKyAgICBh cmdzX3ZhbCA9IHBhcnNlci5wYXJzZV9hcmdzKCkKKyAgICByZXR1cm4gYXJnc192YWwKKworCitk ZWYgZ2V0X2Jyb3dzZXJfdmVyc2lvbihicm93c2VyX25hbWUsIGV4ZWN1dGFibGVfcGF0aCk6Cisg ICAgIiIiCisgICAgRnVuY3Rpb24gcmV0dXJucyBicm93c2VyIHZlcnNpb24gZm9yIHNwZWNpZmll ZCBicm93c2VyIHVzaW5nIGV4ZWN1dGFibGUKKyAgICBwYXRoIHBhc3NlZCBpbiBhcmd1bWVudHMu CisgICAgOnBhcmFtIGJyb3dzZXJfbmFtZToKKyAgICA6cGFyYW0gZXhlY3V0YWJsZV9wYXRoOiBl LmcuIC91c3IvYmluL2ZpcmVmb3gKKyAgICA6cmV0dXJuOiBicm93c2VyIHZlcnNpb24KKyAgICAi IiIKKyAgICAjIE9uIExpbnV4L01hYyB3ZSBydW4gdGhlIGJyb3dzZXIgZXhlY3V0YWJsZSB3aXRo IHRoZSAtLXZlcnNpb24gZmxhZywKKyAgICAjIHRoZW4gcGFyc2UgdGhlIG91dHB1dC4KKyAgICBi cm93c2VyX3ZlcnNpb25fdmFsID0gTm9uZQorICAgIHRyeToKKyAgICAgICAgcmVzdWx0ID0gc3Vi cHJvY2Vzcy5Qb3BlbihbZXhlY3V0YWJsZV9wYXRoLCAnLS12ZXJzaW9uJ10sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKKyAgICBleGNl cHQgRmlsZU5vdEZvdW5kRXJyb3I6CisgICAgICAgIHByaW50KCdUaGUgc3BlY2lmaWVkIGJyb3dz ZXIgZXhlY3V0YWJsZSBjb3VsZCBub3QgYmUgZm91bmQuJykKKyAgICAgICAgc3lzLmV4aXQoMSkK KworICAgIHZlcnNpb25fc3RyID0gcmVzdWx0LnN0ZG91dC5yZWFkKCkuZGVjb2RlKCJ1dGYtOCIp CisKKyAgICBpZiBicm93c2VyX25hbWUubG93ZXIoKSA9PSAiY2hyb21lIjoKKyAgICAgICAgIyBD aGVjayBmb3IgJ0Nocm9tJyBub3QgJ0Nocm9tZScgaW4gY2FzZSB0aGUgdXNlciBpcyB1c2luZyBD aHJvbWl1bS4KKyAgICAgICAgaWYgIkNocm9tIiBub3QgaW4gdmVyc2lvbl9zdHI6CisgICAgICAg ICAgICBwcmludCgnVGhlIHNwZWNpZmllZCBDaHJvbWUgZXhlY3V0YWJsZSBvdXRwdXQgYW4gdW5l eHBlY3RlZCAnCisgICAgICAgICAgICAgICAgICAndmVyc2lvbiBzdHJpbmc6IHt9LicuZm9ybWF0 KHZlcnNpb25fc3RyKSkKKyAgICAgICAgICAgIHN5cy5leGl0KDEpCisgICAgICAgICMgT24gc29t ZSBsaW51eCBkaXN0cm8gYGNocm9tZS0tdmVyc2lvbmAgZ2l2ZXMgb3V0cHV0IGxpa2UKKyAgICAg ICAgIyAnR29vZ2xlIENocm9tZSA4MC4wLjM5ODcuMTMyIHVua25vd25cbicKKyAgICAgICAgIyBz byB3ZSBuZWVkIHRvIGNoZWNrIGFuZCByZW1vdmUgdGhlIHVua25vd24gc3RyaW5nIGZyb20gdGhl IHZlcnNpb24KKyAgICAgICAgaWYgdmVyc2lvbl9zdHIuZW5kc3dpdGgoInVua25vd25cbiIpOgor ICAgICAgICAgICAgdmVyc2lvbl9zdHIgPSB2ZXJzaW9uX3N0ci5zdHJpcCgidW5rbm93blxuIiku c3RyaXAoKQorCisgICAgICAgIGNocm9tZV92ZXJzaW9uID0gJy4nLmpvaW4odmVyc2lvbl9zdHIu c3BsaXQoKVstMV0uc3BsaXQoJy4nKVs6LTJdKQorCisgICAgICAgICMgTWFrZSBzdXJlIGJyb3dz ZXIgdmVyc2lvbiBoYXMgb25seSAxIGRlY2ltYWwgcG9pbnQKKyAgICAgICAgaWYgY2hyb21lX3Zl cnNpb24uY291bnQoJy4nKSAhPSAxOgorICAgICAgICAgICAgcHJpbnQoJ1RoZSBzcGVjaWZpZWQg Q2hyb21lIGV4ZWN1dGFibGUgb3V0cHV0IGFuIHVuZXhwZWN0ZWQgJworICAgICAgICAgICAgICAg ICAgJ3ZlcnNpb24gc3RyaW5nOiB7fS4nLmZvcm1hdCh2ZXJzaW9uX3N0cikpCisgICAgICAgICAg ICBzeXMuZXhpdCgxKQorICAgICAgICBicm93c2VyX3ZlcnNpb25fdmFsID0gY2hyb21lX3ZlcnNp b24KKyAgICBlbGlmIGJyb3dzZXJfbmFtZS5sb3dlcigpID09ICJmaXJlZm94IjoKKyAgICAgICAg aWYgIkZpcmVmb3giIG5vdCBpbiB2ZXJzaW9uX3N0cjoKKyAgICAgICAgICAgIHByaW50KCdUaGUg c3BlY2lmaWVkIEZpcmVmb3ggZXhlY3V0YWJsZSBvdXRwdXQgYW4gdW5leHBlY3RlZCAnCisgICAg ICAgICAgICAgICAgICAndmVyc2lvbiBzdHJpbmc6IHt9LicuZm9ybWF0KHZlcnNpb25fc3RyKSkK KyAgICAgICAgICAgIHN5cy5leGl0KDEpCisKKyAgICAgICAgIyBmaXJlZm94IC0tdmVyc2lvbiBn aXZlcyBvdXRwdXQgbGlrZQorICAgICAgICAjICdSdW5uaW5nIHdpdGhvdXQgYTExeSBzdXBwb3J0 IQorICAgICAgICAjIE1vemlsbGEgRmlyZWZveCA2OC43LjBlc3InCisgICAgICAgIGZpcmVmb3hf dmVyc2lvbiA9ICcuJy5qb2luKAorICAgICAgICAgICAgdmVyc2lvbl9zdHIuc3BsaXQoKVstMV0u c3BsaXQoJy4nKVs6LTJdKSArICcuMCcKKworICAgICAgICAjIE1ha2Ugc3VyZSBicm93c2VyIHZl cnNpb24gaGFzIG9ubHkgMSBkZWNpbWFsIHBvaW50CisgICAgICAgIGlmIGZpcmVmb3hfdmVyc2lv bi5jb3VudCgnLicpICE9IDE6CisgICAgICAgICAgICBwcmludCgnVGhlIHNwZWNpZmllZCBDaHJv bWUgZXhlY3V0YWJsZSBvdXRwdXQgYW4gdW5leHBlY3RlZCAnCisgICAgICAgICAgICAgICAgICAn dmVyc2lvbiBzdHJpbmc6IHt9LicuZm9ybWF0KHZlcnNpb25fc3RyKSkKKyAgICAgICAgICAgIHN5 cy5leGl0KDEpCisgICAgICAgIGJyb3dzZXJfdmVyc2lvbl92YWwgPSBmaXJlZm94X3ZlcnNpb24K KyAgICBlbHNlOgorICAgICAgICBwcmludCgiezB9IGlzIG5vdCByZWNvZ25pc2VkICIuZm9ybWF0 KGJyb3dzZXJfbmFtZSkpCisgICAgICAgIHN5cy5leGl0KDEpCisgICAgcmV0dXJuIGJyb3dzZXJf dmVyc2lvbl92YWwKKworCitkZWYgY2hlY2tfYW5kX2Rvd25sb2FkX3ZuY19icm93c2VyX2ltYWdl KGJyb3dzZXJfbmFtZSwgYnJvd3Nlcl92ZXJzaW9uKToKKyAgICAiIiIKKyAgICBGdW5jdGlvbiBj aGVja3MgcHJlc2VuY2UgZm9yIHZuYyBpbWFnZXMgZm9yIHBhc3NlZCBicm93c2VyCisgICAgYXQg ZG9ja2VyLmlvL3NlbGVub2lkLyByZWdpc3RyeQorICAgIDpwYXJhbSBicm93c2VyX25hbWU6Cisg ICAgOnBhcmFtIGJyb3dzZXJfdmVyc2lvbjoKKyAgICA6cmV0dXJuOnRydWUgaWYgYnJvd3NlciBp bWFnZSBpcyBhdmFpbGFibGUgJiBkb3dubG9hZGVkIGVsc2UgZmFsc2UKKyAgICAiIiIKKyAgICBy ZXMgPSByZXF1ZXN0cy5nZXQoCisgICAgICAgICdodHRwczovL3JlZ2lzdHJ5Lmh1Yi5kb2NrZXIu Y29tL3YyL3JlcG9zaXRvcmllcy9zZWxlbm9pZC92bmNfJyArCisgICAgICAgIGJyb3dzZXJfbmFt ZSArICcvdGFncy8nKQorICAgIHJlcyA9IHJlcy5qc29uKCkKKyAgICB2ZXJzaW9uX3RhZyA9IHB5 anEuYWxsKCcuWyJyZXN1bHRzIl1bXVsibmFtZSJdJywgcmVzKQorICAgIHZuY19pbWFnZV9hdmFp bGFibGUgPSBGYWxzZQorICAgIGltYWdlX25hbWUgPSAndm5jXycgKyBicm93c2VyX25hbWUgKyAn OicgKyBicm93c2VyX3ZlcnNpb24KKworICAgIGZvciBpZHgsIHRhZyBpbiBlbnVtZXJhdGUodmVy c2lvbl90YWcpOgorICAgICAgICBpZiBicm93c2VyX3ZlcnNpb24gPT0gdGFnOgorICAgICAgICAg ICAgY29tbWFuZCA9ICdkb2NrZXIgcHVsbCBzZWxlbm9pZC92bmNfJyArIGJyb3dzZXJfbmFtZSAr ICc6JyBcCisgICAgICAgICAgICAgICAgICAgICAgKyBicm93c2VyX3ZlcnNpb24KKyAgICAgICAg ICAgIHByaW50KCcgVk5DIGltYWdlIGlzIGF2YWlsYWJsZSAmIGRvd25sb2FkaW5nIG5vdy4uLiB7 MH0nLmZvcm1hdCgKKyAgICAgICAgICAgICAgICBjb21tYW5kKSkKKyAgICAgICAgICAgIHRyeToK KyAgICAgICAgICAgICAgICBzdWJwcm9jZXNzLmNhbGwoW2NvbW1hbmRdLCBzaGVsbD1UcnVlLCBz dGRvdXQ9c3VicHJvY2Vzcy5QSVBFKQorICAgICAgICAgICAgICAgIHZuY19pbWFnZV9hdmFpbGFi bGUgPSBUcnVlCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgICAg IHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICAgICAgICAgIHBy aW50KAorICAgICAgICAgICAgICAgICAgICAnezB9fSBJbWFnZSBmb3VuZCBidXQgY291bGQgbm90 IGRvd25sb2FkLicuZm9ybWF0KGNvbW1hbmQpKQorICAgICAgICAgICAgICAgIHN5cy5leGl0KDEp CisgICAgICAgICAgICBicmVhaworICAgICAgICBlbGlmIGlkeCA9PSBsZW4odmVyc2lvbl90YWcp OgorICAgICAgICAgICAgcHJpbnQoInswfSBJbWFnZSBpcyBub3QgYXZhaWxhYmxlLiIuZm9ybWF0 KGltYWdlX25hbWUpKQorICAgICAgICAgICAgdm5jX2ltYWdlX2F2YWlsYWJsZSA9IEZhbHNlCisg ICAgICAgIGVsc2U6CisgICAgICAgICAgICBwYXNzCisgICAgcmV0dXJuIHZuY19pbWFnZV9hdmFp bGFibGUKKworCitkZWYgcmVsb2FkX3NlbGVub2lkX2NvbmZpZygpOgorICAgICIiIgorICAgIEZ1 bmN0aW9uIHJ1bnMgY29tbWFuZCB0byByZWZyZXNoIHNlbGVub2lkIGNvbmZpZ3VyYXRpb24KKyAg ICA6cmV0dXJuOiB0cnVlIGlmIGNvbW1hbmQgZXhlY3V0aW9uIGZvciBzZWxlbm9pZCByZWxvYWQg aXMgc3VjY2Vzc2Z1bAorICAgIGVsc2UgZmFsc2UKKyAgICAiIiIKKyAgICBjb21tYW5kID0gJ2Rv Y2tlciBraWxsIC1zIEhVUCBzZWxlbm9pZCcKKyAgICByZWxvYWRfc3VjY2Vzc2Z1bCA9IEZhbHNl CisgICAgdHJ5OgorICAgICAgICBzdWJwcm9jZXNzLmNhbGwoW2NvbW1hbmRdLCBzaGVsbD1UcnVl LCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKQorICAgICAgICBwcmludCgiIFNlbGVub2lkIENvbmZp Z3VyYXRpb24gaXMgcmVsb2FkZWQuIikKKyAgICAgICAgcmVsb2FkX3N1Y2Nlc3NmdWwgPSBUcnVl CisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YyhmaWxl PXN5cy5zdGRlcnIpCisgICAgICAgIHByaW50KCdFcnJvciB3aGlsZSByZWxvYWRpbmcgc2VsZW5v aWQgY29uZmlndXJhdGlvbi4nKQorICAgICAgICBzeXMuZXhpdCgxKQorICAgIHJldHVybiByZWxv YWRfc3VjY2Vzc2Z1bAorCisKK2RlZiBlZGl0X2Jyb3dzZXJzX2pzb24oYnJvd3Nlcl9uYW1lLCBi cm93c2VyX3ZlcnNpb24pOgorICAgICIiIgorICAgIEZ1bmN0aW9uIGVkaXRzIGJyb3dzZXJzLmpz b24gd2hpY2ggaXMgdXNlZCBieSBzZWxlbm9pZCB0bworICAgIGxvYWQgYnJvd3NlciBjb25maWd1 cmF0aW9uLgorICAgIERlZmF1bHQgcGF0aCBmb3IgdGhpcyBmaWxlIGlzCisgICAgInVzZXJfaG9t ZV9kaXIgKyAnLy5hZXJva3ViZS9zZWxlbm9pZC9icm93c2Vycy5qc29uJyIKKyAgICBDdXJyZW50 bHkgdGhpcyBpcyBoYXJkY29kZWQsIG1pZ2h0IG5lZWQgdG8gbW9kaWZ5CisgICAgaWYgd2Ugd2Fu dCB0byBwYXNzIGN1c3RvbWl6ZSBicm93c2Vycy5qc29uCisgICAgOnBhcmFtIGJyb3dzZXJfbmFt ZToKKyAgICA6cGFyYW0gYnJvd3Nlcl92ZXJzaW9uOgorICAgIDpyZXR1cm46CisgICAgIiIiCisg ICAgZmlsZV9lZGl0ZWQgPSBUcnVlCisgICAgIyBSZWFkIGV4aXN0aW5nIGJyb3dzZXJzLmpzb24K KyAgICBqc29uX2ZpbGUgPSBvcGVuKGZpbGVfcGF0aCwgJ3InKQorICAgIGV4aXN0aW5nX2RhdGEg PSBqc29uLmxvYWQoanNvbl9maWxlKQorICAgIHVwZGF0ZWRfZGF0YSA9IE5vbmUKKworICAgICMg VXBkYXRlIGRhdGEgZm9yIG5ldyBicm93c2VyIGltYWdlcworICAgIGlmIGJyb3dzZXJfbmFtZS5s b3dlcigpID09ICdjaHJvbWUnOgorICAgICAgICB2ZXJzaW9uX2RhdGEgPSBleGlzdGluZ19kYXRh WydjaHJvbWUnXVsndmVyc2lvbnMnXQorICAgICAgICBpZiBicm93c2VyX3ZlcnNpb24gaW4gdmVy c2lvbl9kYXRhLmtleXMoKToKKyAgICAgICAgICAgIHByaW50KCIgezB9OnsxfSBpcyBhbHJlYWR5 IHVwZGF0ZWQgaW4gYnJvd3NlcnMuanNvbi4iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICBicm93 c2VyX25hbWUsIGJyb3dzZXJfdmVyc2lvbikpCisgICAgICAgICAgICBmaWxlX2VkaXRlZCA9IFRy dWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGRhdGFfdG9faW5zZXJ0ID0gZGljdCgKKyAg ICAgICAgICAgICAgICB7YnJvd3Nlcl92ZXJzaW9uOiB7CisgICAgICAgICAgICAgICAgICAgICdp bWFnZSc6ICdzZWxlbm9pZC92bmNfY2hyb21lOicgKyBicm93c2VyX3ZlcnNpb24sCisgICAgICAg ICAgICAgICAgICAgICdwb3J0JzogJzQ0NDQnLCAncGF0aCc6ICcvJ319KQorICAgICAgICAgICAg KGV4aXN0aW5nX2RhdGFbJ2Nocm9tZSddWyd2ZXJzaW9ucyddKS51cGRhdGUoZGF0YV90b19pbnNl cnQpCisgICAgICAgICAgICB1cGRhdGVkX2RhdGEgPSBleGlzdGluZ19kYXRhCisgICAgICAgICAg ICBwcmludCh1cGRhdGVkX2RhdGEpCisKKyAgICBlbGlmIGJyb3dzZXJfbmFtZS5sb3dlcigpID09 ICdmaXJlZm94JzoKKyAgICAgICAgdmVyc2lvbl9kYXRhID0gZXhpc3RpbmdfZGF0YVsnZmlyZWZv eCddWyd2ZXJzaW9ucyddCisgICAgICAgIGlmIGJyb3dzZXJfdmVyc2lvbiBpbiB2ZXJzaW9uX2Rh dGEua2V5cygpOgorICAgICAgICAgICAgcHJpbnQoIiB7MH06ezF9IGlzIGFscmVhZHkgdXBkYXRl ZCBpbiBicm93c2Vycy5qc29uLiIuZm9ybWF0KAorICAgICAgICAgICAgICAgIGJyb3dzZXJfbmFt ZSwgYnJvd3Nlcl92ZXJzaW9uKSkKKyAgICAgICAgICAgIGZpbGVfZWRpdGVkID0gVHJ1ZQorICAg ICAgICBlbHNlOgorICAgICAgICAgICAgZGF0YV90b19pbnNlcnQgPSBkaWN0KAorICAgICAgICAg ICAgICAgIHticm93c2VyX3ZlcnNpb246IHsKKyAgICAgICAgICAgICAgICAgICAgJ2ltYWdlJzog J3NlbGVub2lkL3ZuY19maXJlZm94OicgKyBicm93c2VyX3ZlcnNpb24sCisgICAgICAgICAgICAg ICAgICAgICdwb3J0JzogJzQ0NDQnLCAncGF0aCc6ICcvJ319KQorICAgICAgICAgICAgKGV4aXN0 aW5nX2RhdGFbJ2ZpcmVmb3gnXVsndmVyc2lvbnMnXSkudXBkYXRlKGRhdGFfdG9faW5zZXJ0KQor ICAgICAgICAgICAgdXBkYXRlZF9kYXRhID0gZXhpc3RpbmdfZGF0YQorICAgIGVsc2U6CisgICAg ICAgIHByaW50KCJCcm93c2VyIHZlcnNpb24gbm90IG1hdGNoZWQiKQorICAgICAgICBmaWxlX2Vk aXRlZCA9IEZhbHNlCisKKyAgICAjIFdyaXRlIHVwZGF0ZWQgZGF0YSBpbiBicm93c2Vycy5qc29u CisgICAgaWYgdXBkYXRlZF9kYXRhIGlzIG5vdCBOb25lOgorICAgICAgICBqc29uX2ZpbGUgPSBv cGVuKGZpbGVfcGF0aCwgJ3cnKQorICAgICAgICBqc29uLmR1bXAodXBkYXRlZF9kYXRhLCBqc29u X2ZpbGUpCisgICAgICAgIHByaW50KCIgJ2Jyb3dzZXJzLmpzb24nIGlzIHVwZGF0ZWQgZm9yIHsw fSB7MX0iLmZvcm1hdCgKKyAgICAgICAgICAgIGJyb3dzZXJfbmFtZSwgYnJvd3Nlcl92ZXJzaW9u KSkKKworICAgICAgICBmaWxlX2VkaXRlZCA9IFRydWUKKyAgICByZXR1cm4gZmlsZV9lZGl0ZWQK KworCisjIE1haW4gUHJvZ3JhbSBzdGFydHMgaGVyZQorIyBSZWFkIGNvbW1hbmQgbGluZSBhcmd1 bWVudHMgJiBnZXQgbGlzdCBvZiBicm93c2VyX25hbWUsIGV4ZWN1dGFibGUgcGF0aC4KK2FyZ3Mg PSB2YXJzKHJlYWRfY29tbWFuZF9saW5lKCkpCisKKyMgR2V0IHBhdGggcGF0aCBmb3IgYnJvd3Nl cnMuanNvbgordXNlcl9ob21lX2RpciA9IG9zLmdldGVudigiSE9NRSIpCitmaWxlX3BhdGggPSB1 c2VyX2hvbWVfZGlyICsgJy8uYWVyb2t1YmUvc2VsZW5vaWQvYnJvd3NlcnMuanNvbicKK3ByaW50 KCIqKioqKiBVcGRhdGluZyAnezB9JyBmb3IgbmV3IGJyb3dzZXIgdmVyc2lvbnMuKioqKioiLmZv cm1hdChmaWxlX3BhdGgpKQorCisjIEl0ZXJhdGUgb3ZlciBhcmd1bWVudHMgcGFzc2VkCitmb3Ig YnJvd3NlciwgZXhlY3V0YWJsZV9wYXRoIGluIGFyZ3MuaXRlbXMoKToKKyAgICBpZiBleGVjdXRh YmxlX3BhdGggaXMgbm90IE5vbmU6CisgICAgICAgICMgR2V0IGJyb3dzZXIgbmFtZQorICAgICAg ICBicm93c2VyX25hbWUgPSBicm93c2VyCisgICAgICAgICMgR2V0IGJyb3dzZXIgdmVyc2lvbgor ICAgICAgICBicm93c2VyX3ZlcnNpb24gPSBnZXRfYnJvd3Nlcl92ZXJzaW9uKGJyb3dzZXIsIGV4 ZWN1dGFibGVfcGF0aCkKKyAgICAgICAgcHJpbnQoCisgICAgICAgICAgICAiIEJyb3dzZXIgdmVy c2lvbiBmb3IgezB9IGlzIHsxfSBpbiBjdXJyZW50IGV4ZWN1dGFibGUgcGF0aCAiLgorICAgICAg ICAgICAgZm9ybWF0KGJyb3dzZXJfbmFtZSwgYnJvd3Nlcl92ZXJzaW9uKSkKKworICAgICAgICAj IERvd25sb2FkIHZuYyBicm93c2VyIGltYWdlLgorICAgICAgICBkb3dubG9hZF9uZXdfaW1hZ2Ug PSBjaGVja19hbmRfZG93bmxvYWRfdm5jX2Jyb3dzZXJfaW1hZ2UoCisgICAgICAgICAgICBicm93 c2VyX25hbWUsIGJyb3dzZXJfdmVyc2lvbikKKworICAgICAgICAjIElmIGJyb3dzZXIgdm5jIGlt YWdlIGlzIGF2YWlsYWJsZSwgdGhlbiBlZGl0IGJyb3dzZXJzLmpzb24KKyAgICAgICAgaWYgZG93 bmxvYWRfbmV3X2ltYWdlOgorICAgICAgICAgICAgaWYgZWRpdF9icm93c2Vyc19qc29uKGJyb3dz ZXJfbmFtZSwgYnJvd3Nlcl92ZXJzaW9uKToKKyAgICAgICAgICAgICAgICBwcmludCgKKyAgICAg ICAgICAgICAgICAgICAgIiBGaWxlICdicm93c2Vycy5qc29uJyBpcyB1cGRhdGVkIGZvciB7MH0g LSB7MX0gXG4iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfbmFtZSwg YnJvd3Nlcl92ZXJzaW9uKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcHJp bnQoCisgICAgICAgICAgICAgICAgICAgICIgRmlsZSAnYnJvd3NlcnMuanNvbicgY2FuIE5PVCBi ZSB1cGRhdGVkIGZvciB7MH0gLSB7MX0gXG4iCisgICAgICAgICAgICAgICAgICAgIC5mb3JtYXQo YnJvd3Nlcl9uYW1lLCBicm93c2VyX3ZlcnNpb24pKQorICAgICAgICBlbHNlOgorICAgICAgICAg ICAgcHJpbnQoIiBCcm93c2VyIGltYWdlIGlzIG5vdCBhdmFpbGFibGUgZm9yIHswfSwgezF9Ii5m b3JtYXQoCisgICAgICAgICAgICAgICAgYnJvd3Nlcl9uYW1lLCBicm93c2VyX3ZlcnNpb24pKQor CisjIFJlbG9hZCBzZWxlbm9pZCBjb25maWd1cmF0aW9uCitpZiByZWxvYWRfc2VsZW5vaWRfY29u ZmlnKCk6CisgICAgcHJpbnQoCisgICAgICAgICIqKioqKiBVcGRhdGVkICd7MH0nIGZvciBuZXcg YnJvd3NlciB2ZXJzaW9ucy4qKioqKiIuZm9ybWF0KGZpbGVfcGF0aCkpCmRpZmYgLS1naXQgYS93 ZWIvY29uZmlnLnB5IGIvd2ViL2NvbmZpZy5weQppbmRleCBiMzVkOGEyLi4zNzRjZDZlIDEwMDY0 NAotLS0gYS93ZWIvY29uZmlnLnB5CisrKyBiL3dlYi9jb25maWcucHkKQEAgLTU2Niw2ICs1NjYs OSBAQCB0cnk6CiBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgcGFzcwogCisjIE92ZXJyaWRlIERF RkFVTFRfU0VSVkUgdmFsdWUgZnJvbSBlbnZpcm9ubWVudCB2YXJpYWJsZS4KK2lmICdQR0FETUlO X0NPTkZJR19ERUZBVUxUX1NFUlZFUicgaW4gb3MuZW52aXJvbjoKKyAgICBERUZBVUxUX1NFUlZF UiA9IG9zLmVudmlyb25bJ1BHQURNSU5fQ09ORklHX0RFRkFVTFRfU0VSVkVSJ10KIAogIyBTVVBQ T1JUX1NTSF9UVU5ORUwgY2FuIGJlIG92ZXJyaWRlIGluIGxvY2FsIGNvbmZpZyBmaWxlIGFuZCBp ZiB0aGF0CiAjIHNldHRpbmcgaXMgRmFsc2UgaW4gbG9jYWwgY29uZmlnIHRoZW4gd2Ugc2hvdWxk IG5vdCBjaGVjayB0aGUgUHl0aG9uIHZlcnNpb24uCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29u c3RyYWludHMvaW5kZXhfY29uc3RyYWludC90ZXN0cy90ZXN0X2luZGV4X2NvbnN0cmFpbnRfYWRk LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9p bmRleF9jb25zdHJhaW50X2FkZC5weQppbmRleCBmMTI3MDYzLi44ODUyNmNhIDEwMDY0NAotLS0g YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3RyYWludC90ZXN0cy90ZXN0X2luZGV4 X2NvbnN0cmFpbnRfYWRkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25z dHJhaW50L3Rlc3RzL3Rlc3RfaW5kZXhfY29uc3RyYWludF9hZGQucHkKQEAgLTQ0LDMxICs0NCwz MCBAQCBjbGFzcyBJbmRleENvbnN0cmFpbnRBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6 CiAgICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvdW5pcXVlX2NvbnN0cmFpbnQvb2JqLycsIGRh dGE9dW5pcXVlX2tleV9kYXRhKSkKICAgICBdCiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYg c2V0VXBDbGFzcyhjbHMpOgotICAgICAgICBjbHMuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3Rb ImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAg IHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1l Il0KICAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0K LSAgICAgICAgY2xzLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAg ICBjbHMuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRh YmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKGNscywgdXRpbHMuU0VSVkVSX0dST1VQLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5zZXJ2ZXJf aWQsIGNscy5kYl9pZCkKKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2Vy dmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAg ICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMu U0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQogICAgICAgICBpZiBub3QgZGJfY29u WydkYXRhJ11bImNvbm5lY3RlZCJdOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3Vs ZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSAiCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImluZGV4IGNvbnN0cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtleSkuIikK LSAgICAgICAgY2xzLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAg ICBjbHMuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQotICAgICAgICBz Y2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoY2xzLnNlcnZlciwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNs cy5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2xzLnNjaGVtYV9uYW1lKQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVt YV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2lu Zm9bInNjaGVtYV9uYW1lIl0KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxz LnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkK ICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSBpbmRleCAiCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgImNvbnN0cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtl eSkuIikKLSAgICAgICAgY2xzLnRhYmxlX25hbWUgPSAidGFibGVfaW5kZXhjb25zdHJhaW50XyVz IiAlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkK LSAgICAgICAgY2xzLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShjbHMuc2Vy dmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNs cy5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNscy5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjbHMudGFibGVfbmFtZSkKKyAgICAgICAgc2VsZi50YWJsZV9uYW1lID0g InRhYmxlX2luZGV4Y29uc3RyYWludF8lcyIgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAg IChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVz X3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxl X25hbWUpCiAKICAgICBkZWYgcnVuVGVzdChzZWxmKToKICAgICAgICAgIiIiVGhpcyBmdW5jdGlv biB3aWxsIGFkZCBpbmRleCBjb25zdHJhaW50KHByaW1hcnkga2V5IG9yIHVuaXF1ZSBrZXkpCkBA IC04MSwxMCArODAsOSBAQCBjbGFzcyBJbmRleENvbnN0cmFpbnRBZGRUZXN0Q2FzZShCYXNlVGVz dEdlbmVyYXRvcik6CiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCiAgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBA Y2xhc3NtZXRob2QKLSAgICBkZWYgdGVhckRvd25DbGFzcyhjbHMpOgorICAgIGRlZiB0ZWFyRG93 bihzZWxmKToKICAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRh YmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKGNscywgY2xzLnNlcnZlcl9pZCwgY2xzLmRi X2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNl bGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQogCiAKIGNsYXNzIENvbnN0cmFpbnRzVXNpbmdJbmRl eEFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKQEAgLTExNywzMCArMTE1LDI4IEBAIGNs YXNzIENvbnN0cmFpbnRzVXNpbmdJbmRleEFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK ICAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci91bmlxdWVfY29uc3RyYWludC9vYmovJywgZGF0 YT11bmlxdWVfa2V5X2RhdGEpKQogICAgIF0KIAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBz ZXRVcENsYXNzKGNscyk6Ci0gICAgICAgIGNscy5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsi ZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAg c2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUi XQogICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQot ICAgICAgICBjbHMuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAg IGNscy5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFi YXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2UoY2xzLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNlcnZlcl9p ZCwgY2xzLmRiX2lkKQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2 ZXJfaWQiXQorICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAgICAg ICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5T RVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCiAgICAgICAgIGlmIG5vdCBkYl9jb25b J2RhdGEnXVsiY29ubmVjdGVkIl06CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxk IG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBhICIKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiY29uc3RyYWludCB1c2luZyBpbmRleC4iKQotICAgICAgICBjbHMuc2NoZW1hX2lk ID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIGNscy5zY2hlbWFfbmFtZSA9IHNj aGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVt YV91dGlscy52ZXJpZnlfc2NoZW1hcyhjbHMuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLmRiX25hbWUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHMuc2NoZW1hX25h bWUpCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCisg ICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQorICAg ICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5z ZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1h X3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0 aGUgc2NoZW1hIHRvIGFkZCBhIGluZGV4ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi Y29uc3RyYWludChwcmltYXJ5IGtleSBvciB1bmlxdWUga2V5KS4iKQotICAgICAgICBjbHMudGFi bGVfbmFtZSA9ICJ0YWJsZV9jb25zdHJhaW50XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhd KQotICAgICAgICBjbHMudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKGNscy5z ZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2xzLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2xzLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNscy50YWJsZV9uYW1lKQorICAgICAgICBzZWxmLnRhYmxlX25hbWUg PSAidGFibGVfY29uc3RyYWludF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAg ICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIs IHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQogCiAgICAgZGVmIHJ1blRlc3Qo c2VsZik6CiAgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgaW5kZXggY29uc3RyYWlu dChwcmltYXJ5IGtleSBvciB1bmlxdWUga2V5KQpAQCAtMTU4LDcgKzE1NCw2IEBAIGNsYXNzIENv bnN0cmFpbnRzVXNpbmdJbmRleEFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAg ICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh bHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKIAotICAgIEBjbGFzc21ldGhvZAotICAgIGRl ZiB0ZWFyRG93bkNsYXNzKGNscyk6CisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICAj IERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5l Y3RfZGF0YWJhc2UoY2xzLCBjbHMuc2VydmVyX2lkLCBjbHMuZGJfaWQpCisgICAgICAgIGRhdGFi YXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYu ZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3RyYWlu dC90ZXN0cy90ZXN0X2luZGV4X2NvbnN0cmFpbnRfZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0 cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9pbmRleF9jb25zdHJhaW50X2RlbGV0 ZS5weQppbmRleCA3ZWVhNWU5Li5mMzVhMDBiIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3Ry YWludHMvaW5kZXhfY29uc3RyYWludC90ZXN0cy90ZXN0X2luZGV4X2NvbnN0cmFpbnRfZGVsZXRl LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rlc3RzL3Rl c3RfaW5kZXhfY29uc3RyYWludF9kZWxldGUucHkKQEAgLTM4LDMxICszOCwzMCBAQCBjbGFzcyBJ bmRleENvbnN0cmFpbnREZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAg ICAgICAgIHR5cGU9IlVOSVFVRSIpKQogICAgIF0KIAotICAgIEBjbGFzc21ldGhvZAotICAgIGRl ZiBzZXRVcENsYXNzKGNscyk6Ci0gICAgICAgIGNscy5kYl9uYW1lID0gcGFyZW50X25vZGVfZGlj dFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAg ICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25h bWUiXQogICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0x XQotICAgICAgICBjbHMuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAg ICAgIGNscy5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRh dGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2UoY2xzLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNlcnZl cl9pZCwgY2xzLmRiX2lkKQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJz ZXJ2ZXJfaWQiXQorICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAg ICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGls cy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCiAgICAgICAgIGlmIG5vdCBkYl9j b25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNv dWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBhICIKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiaW5kZXggY29uc3RyYWludChwcmltYXJ5IGtleSBvciB1bmlxdWUga2V5KS4i KQotICAgICAgICBjbHMuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAg ICAgIGNscy5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAg IHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhjbHMuc2VydmVy LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2xzLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjbHMuc2NoZW1hX25hbWUpCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2No ZW1hX2luZm9bInNjaGVtYV9pZCJdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFf aW5mb1sic2NoZW1hX25hbWUiXQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRp bHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1l KQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhj ZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBhIGluZGV4ICIKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiY29uc3RyYWludChwcmltYXJ5IGtleSBvciB1bmlxdWUg a2V5KS4iKQotICAgICAgICBjbHMudGFibGVfbmFtZSA9ICJ0YWJsZV9pbmRleGNvbnN0cmFpbnRf JXMiICUgXAotICAgICAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhd KQotICAgICAgICBjbHMudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKGNscy5z ZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2xzLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2xzLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNscy50YWJsZV9uYW1lKQorICAgICAgICBzZWxmLnRhYmxlX25hbWUg PSAidGFibGVfaW5kZXhjb25zdHJhaW50XyVzIiAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJs ZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFi bGVfbmFtZSkKIAogICAgIGRlZiBydW5UZXN0KHNlbGYpOgogICAgICAgICAiIiJUaGlzIGZ1bmN0 aW9uIHdpbGwgZGVsZXRlIGluZGV4IGNvbnN0cmFpbnQocHJpbWFyeSBrZXkgb3IKQEAgLTgxLDcg KzgwLDYgQEAgY2xhc3MgSW5kZXhDb25zdHJhaW50RGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgogICAgICAgICApCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0 YXR1c19jb2RlLCAyMDApCiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgdGVhckRvd25DbGFz cyhjbHMpOgorICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICAgIyBEaXNjb25uZWN0IHRo ZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKGNs cywgY2xzLnNlcnZlcl9pZCwgY2xzLmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNj b25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9p bmRleF9jb25zdHJhaW50X2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25z dHJhaW50L3Rlc3RzL3Rlc3RfaW5kZXhfY29uc3RyYWludF9nZXQucHkKaW5kZXggYzA4YzJhYy4u ZjgzOGEyZiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFp bnQvdGVzdHMvdGVzdF9pbmRleF9jb25zdHJhaW50X2dldC5weQorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29u c3RyYWludHMvaW5kZXhfY29uc3RyYWludC90ZXN0cy90ZXN0X2luZGV4X2NvbnN0cmFpbnRfZ2V0 LnB5CkBAIC0zOCwzMSArMzgsMzAgQEAgY2xhc3MgSW5kZXhDb25zdHJhaW50R2V0VGVzdENhc2Uo QmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICB0eXBlPSJVTklRVUUiKSkKICAgICBd CiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgotICAgICAgICBj bHMuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0K KyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2Rl X2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KICAgICAgICAgc2NoZW1hX2luZm8gPSBw YXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgY2xzLnNlcnZlcl9pZCA9IHNj aGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBjbHMuZGJfaWQgPSBzY2hlbWFfaW5mb1si ZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNl KGNscywgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNscy5zZXJ2ZXJfaWQsIGNscy5kYl9pZCkKKyAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9p ZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxz LmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxm LmRiX2lkKQogICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgogICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0 byBhZGQgYSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImluZGV4IGNvbnN0cmFpbnQo cHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtleSkuIikKLSAgICAgICAgY2xzLnNjaGVtYV9pZCA9IHNj aGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBjbHMuc2NoZW1hX25hbWUgPSBzY2hlbWFf aW5mb1sic2NoZW1hX25hbWUiXQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRp bHMudmVyaWZ5X3NjaGVtYXMoY2xzLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5kYl9uYW1lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNjaGVtYV9uYW1lKQor ICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAg ICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAgICAg c2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNw b25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNj aGVtYSB0byBhZGQgYSBpbmRleCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbnN0 cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtleSkuIikKLSAgICAgICAgY2xzLnRhYmxlX25h bWUgPSAidGFibGVfaW5kZXhjb25zdHJhaW50XyVzIiAlIFwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgY2xzLnRhYmxlX2lkID0gdGFi bGVzX3V0aWxzLmNyZWF0ZV90YWJsZShjbHMuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5kYl9uYW1lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5zY2hlbWFfbmFtZSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHMudGFibGVfbmFt ZSkKKyAgICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRhYmxlX2luZGV4Y29uc3RyYWludF8lcyIg JSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQor ICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNl cnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCiAKICAgICBkZWYgcnVuVGVzdChz ZWxmKToKICAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIHRoZSBpbmRleCBjb25z dHJhaW50KHByaW1hcnkga2V5IG9yCkBAIC04MSw3ICs4MCw2IEBAIGNsYXNzIEluZGV4Q29uc3Ry YWludEdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgKQogICAgICAgICBz ZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogCi0gICAgQGNsYXNz bWV0aG9kCi0gICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKKyAgICBkZWYgdGVhckRvd24oc2Vs Zik6CiAgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2Vf dXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShjbHMsIGNscy5zZXJ2ZXJfaWQsIGNscy5kYl9pZCkK KyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNl cnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9p bmRleF9jb25zdHJhaW50L3Rlc3RzL3Rlc3RfaW5kZXhfY29uc3RyYWludF9wdXQucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3RyYWludC90ZXN0cy90ZXN0X2luZGV4X2NvbnN0 cmFpbnRfcHV0LnB5CmluZGV4IDg3Mjg5YTYuLjZiZGY3MDMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rlc3RzL3Rlc3RfaW5kZXhfY29uc3RyYWlu dF9wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQvdGVz dHMvdGVzdF9pbmRleF9jb25zdHJhaW50X3B1dC5weQpAQCAtNDAsMzEgKzQwLDMwIEBAIGNsYXNz IEluZGV4Q29uc3RyYWludFVwZGF0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAg ICAgICAgICAgdHlwZT0iVU5JUVVFIiwgZGF0YT1kYXRhKSkKICAgICBdCiAKLSAgICBAY2xhc3Nt ZXRob2QKLSAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgotICAgICAgICBjbHMuZGJfbmFtZSA9IHBh cmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICBkZWYgc2V0VXAo c2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNl Il1bLTFdWyJkYl9uYW1lIl0KICAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0 WyJzY2hlbWEiXVstMV0KLSAgICAgICAgY2xzLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2 ZXJfaWQiXQotICAgICAgICBjbHMuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAg ICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKGNscywgdXRpbHMuU0VS VkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNscy5zZXJ2ZXJfaWQsIGNscy5kYl9pZCkKKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBz Y2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZv WyJkYl9pZCJdCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQogICAgICAg ICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgogICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSAiCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImluZGV4IGNvbnN0cmFpbnQocHJpbWFyeSBrZXkgb3Ig dW5pcXVlIGtleSkuIikKLSAgICAgICAgY2xzLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hl bWFfaWQiXQotICAgICAgICBjbHMuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25h bWUiXQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVt YXMoY2xzLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNscy5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNjaGVtYV9uYW1lKQorICAgICAgICBzZWxmLnNj aGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBzZWxmLnNjaGVtYV9u YW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNl ID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKICAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSBp bmRleCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbnN0cmFpbnQocHJpbWFyeSBr ZXkgb3IgdW5pcXVlIGtleSkuIikKLSAgICAgICAgY2xzLnRhYmxlX25hbWUgPSAidGFibGVfaW5k ZXhjb25zdHJhaW50XyVzIiAlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQu dXVpZDQoKSlbMTo4XSkKLSAgICAgICAgY2xzLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0 ZV90YWJsZShjbHMuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNscy5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNscy5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHMudGFibGVfbmFtZSkKKyAgICAgICAgc2Vs Zi50YWJsZV9uYW1lID0gInRhYmxlX2luZGV4Y29uc3RyYWludF8lcyIgJSBcCisgICAgICAgICAg ICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBzZWxmLnRh YmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNj aGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnRhYmxlX25hbWUpCiAKICAgICBkZWYgcnVuVGVzdChzZWxmKToKICAgICAgICAg IiIiVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSBpbmRleCBjb25zdHJhaW50KHByaW1hcnkga2V5 IG9yCkBAIC04NCw3ICs4Myw2IEBAIGNsYXNzIEluZGV4Q29uc3RyYWludFVwZGF0ZVRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkK ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKIAot ICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6CisgICAgZGVmIHRl YXJEb3duKHNlbGYpOgogICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAg IGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2UoY2xzLCBjbHMuc2VydmVyX2lkLCBj bHMuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2Vs Ziwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVz dHMvdGVzdF90YWJsZV9wYXJhbWV0ZXJzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVf cGFyYW1ldGVycy5weQppbmRleCBiYmVkMjY5Li4wMjIwM2QyIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvdGVzdHMvdGVzdF90YWJsZV9wYXJhbWV0ZXJzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90 ZXN0X3RhYmxlX3BhcmFtZXRlcnMucHkKQEAgLTQ2LDggKzQ2LDkgQEAgY2xhc3MgVGFibGVVcGRh dGVQYXJhbWV0ZXJUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICApCiAgICAg XQogCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHNldFVwQ2xhc3Moc2VsZik6CisgICAgdGFi bGVfbmFtZSA9ICJ0ZXN0X3RhYmxlX3BhcmFtZXRlcnNfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0pCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgIHNlbGYuZGJfbmFtZSA9IHBh cmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KICAgICAgICAgc2NoZW1h X2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KICAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KQEAgLTYzLDEyICs2NCwxNCBAQCBjbGFz cyBUYWJsZVVwZGF0ZVBhcmFtZXRlclRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2No ZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CiAgICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIGEgdGFibGUu IikKLSAgICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRlc3RfdGFibGVfcGFyYW1ldGVyc18lcyIg JSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKIAotICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFi bGVzX3V0aWxzLmNyZWF0ZV90YWJsZSgKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRi X25hbWUsCi0gICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgc2VsZi50 YWJsZV9uYW1lKQorICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmdldF90YWJs ZV9pZChzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCisgICAgICAgIGlmIHNl bGYudGFibGVfaWQgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNf dXRpbHMuY3JlYXRlX3RhYmxlKAorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRi X25hbWUsCisgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAg ICBzZWxmLnRhYmxlX25hbWUpCiAKICAgICBkZWYgcnVuVGVzdChzZWxmKToKICAgICAgICAgIiIi VGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIGFkZGVkIHRhYmxlIHVuZGVyIHNjaGVtYSBub2RlLiIi IgpAQCAtMTMwLDcgKzEzMyw2IEBAIGNsYXNzIFRhYmxlVXBkYXRlUGFyYW1ldGVyVGVzdENhc2Uo QmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm b2xsb3dfcmVkaXJlY3RzPVRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNl LnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgdGVhckRvd25D bGFzcyhzZWxmKToKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgICMgRGlzY29ubmVj dCB0aGUgZGF0YWJhc2UKICAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFz ZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy90ZXN0cy91dGlscy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy91dGlscy5weQppbmRleCAwYTI5NjNh Li44ZTVmNjY1IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdXRpbHMucHkKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL3Rlc3RzL3V0aWxzLnB5CkBAIC00ODMsMyArNDgzLDI2IEBAIGRlZiBnZXRfaGFzaF9w YXJ0aXRpb25zX2RhdGEoZGF0YSk6CiAgICAgICAgICAgfV0KICAgICBkYXRhWydwYXJ0aXRpb25f a2V5cyddID0gXAogICAgICAgICBbeydrZXlfdHlwZSc6ICdjb2x1bW4nLCAncHRfY29sdW1uJzog J2VtcG5vJ31dCisKKworZGVmIGdldF90YWJsZV9pZChzZXJ2ZXIsIGRiX25hbWUsIHRhYmxlX25h bWUpOgorICAgIHRyeToKKyAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0 aW9uKGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZXJ2ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsncG9ydCddLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydzc2xtb2RlJ10pCisgICAg ICAgIHBnX2N1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAgcGdfY3Vyc29yLmV4 ZWN1dGUoInNlbGVjdCBvaWQgZnJvbSBwZ19jbGFzcyB3aGVyZSByZWxuYW1lPSclcyciICUKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVfbmFtZSkKKyAgICAgICAgdGFibGUgPSBwZ19j dXJzb3IuZmV0Y2hvbmUoKQorICAgICAgICBpZiB0YWJsZToKKyAgICAgICAgICAgIHRhYmxlX2lk ID0gdGFibGVbMF0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHRhYmxlX2lkID0gTm9uZQor ICAgICAgICBjb25uZWN0aW9uLmNsb3NlKCkKKyAgICAgICAgcmV0dXJuIHRhYmxlX2lkCisgICAg ZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPXN5cy5z dGRlcnIpCisgICAgICAgIHJhaXNlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0cy90ZXN0X212 aWV3c19wYXJhbWV0ZXJzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVzdHMvdGVzdF9tdmlld3NfcGFyYW1ldGVy cy5weQppbmRleCBjODQyNzZlLi4xZjYzZWY1IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0cy90 ZXN0X212aWV3c19wYXJhbWV0ZXJzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rlc3RzL3Rlc3RfbXZpZXdz X3BhcmFtZXRlcnMucHkKQEAgLTQ1LDggKzQ1LDkgQEAgY2xhc3MgTVZpZXdzVXBkYXRlUGFyYW1l dGVyVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgKQogICAgIF0KIAotICAg IEBjbGFzc21ldGhvZAotICAgIGRlZiBzZXRVcENsYXNzKHNlbGYpOgorICAgIG1fdmlld19uYW1l ID0gInRlc3RfbXZpZXdfcHV0XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorCisgICAg ZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0 WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCiAgICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50 X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCiAgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1h X2luZm9bInNlcnZlcl9pZCJdCkBAIC03MCwxNyArNzEsMTkgQEAgY2xhc3MgTVZpZXdzVXBkYXRl UGFyYW1ldGVyVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICBpZiBub3Qgc2No ZW1hX3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmlu ZCB0aGUgc2NoZW1hIHRvIHVwZGF0ZSBhIG12aWV3LiIpCiAKLSAgICAgICAgc2VsZi5tX3ZpZXdf bmFtZSA9ICJ0ZXN0X212aWV3X3B1dF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAg ICAgICAgbV92aWV3X3NxbCA9ICJDUkVBVEUgTUFURVJJQUxJWkVEIFZJRVcgJXMuJXMgVEFCTEVT UEFDRSBwZ19kZWZhdWx0ICIgXAotICAgICAgICAgICAgICAgICAgICAgIkFTIFNFTEVDVCAndGVz dF9wZ2FkbWluJyBXSVRIIE5PIERBVEE7QUxURVIgVEFCTEUgIiBcCi0gICAgICAgICAgICAgICAg ICAgICAiJXMuJXMgT1dORVIgVE8gJXMiCi0KLSAgICAgICAgc2VsZi5tX3ZpZXdfaWQgPSB2aWV3 c191dGlscy5jcmVhdGVfdmlldyhzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3ZpZXdfc3FsLAor ICAgICAgICBzZWxmLm1fdmlld19pZCA9IHZpZXdzX3V0aWxzLmdldF92aWV3X2lkKHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5tX3ZpZXdfbmFtZSkKIAorICAgICAgICBpZiBzZWxmLm1fdmlld19p ZCBpcyBOb25lOgorICAgICAgICAgICAgbV92aWV3X3NxbCA9ICJDUkVBVEUgTUFURVJJQUxJWkVE IFZJRVcgJXMuJXMgVEFCTEVTUEFDRSAiIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAicGdf ZGVmYXVsdCBBUyBTRUxFQ1QgJ3Rlc3RfcGdhZG1pbicgV0lUSCBOTyAiIFwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAiREFUQTtBTFRFUiBUQUJMRSAlcy4lcyBPV05FUiBUTyAlcyIKKyAgICAg ICAgICAgIHNlbGYubV92aWV3X2lkID0gdmlld3NfdXRpbHMuY3JlYXRlX3ZpZXcoc2VsZi5zZXJ2 ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbV92aWV3X3NxbCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tX3ZpZXdfbmFtZSkKKwog ICAgIGRlZiBydW5UZXN0KHNlbGYpOgogICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgdXBk YXRlIHRoZSB2aWV3L212aWV3IHVuZGVyIHNjaGVtYSBub2RlLiIiIgogICAgICAgICBtdmlld19y ZXNwb25zZSA9IHZpZXdzX3V0aWxzLnZlcmlmeV92aWV3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25h bWUsCkBAIC0xNDEsNyArMTQ0LDYgQEAgY2xhc3MgTVZpZXdzVXBkYXRlUGFyYW1ldGVyVGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3Bv bnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgdGVhckRv d25DbGFzcyhzZWxmKToKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgICMgRGlzY29u bmVjdCB0aGUgZGF0YWJhc2UKICAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRh YmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3Rlc3RzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVzdHMvdXRpbHMucHkKaW5kZXggZDYxODBj NC4uNzYxOWVlNiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVzdHMvdXRpbHMucHkKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVzdHMvdXRpbHMucHkKQEAgLTg2LDMgKzg2LDI4IEBAIGRlZiB2ZXJpZnlfdmlldyhz ZXJ2ZXIsIGRiX25hbWUsIHZpZXdfbmFtZSk6CiAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAg ICAgdHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPXN5cy5zdGRlcnIpCiAgICAgICAgIHJhaXNlCisK KworZGVmIGdldF92aWV3X2lkKHNlcnZlciwgZGJfbmFtZSwgdmlld19uYW1lKToKKyAgICB0cnk6 CisgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihkYl9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWyd1c2Vy bmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vy dmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyWydob3N0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlcnZlclsnc3NsbW9kZSddKQorICAgICAgICBvbGRfaXNvbGF0 aW9uX2xldmVsID0gY29ubmVjdGlvbi5pc29sYXRpb25fbGV2ZWwKKyAgICAgICAgY29ubmVjdGlv bi5zZXRfaXNvbGF0aW9uX2xldmVsKDApCisgICAgICAgIHBnX2N1cnNvciA9IGNvbm5lY3Rpb24u Y3Vyc29yKCkKKyAgICAgICAgIyBHZXQgJ29pZCcgZnJvbSBuZXdseSBjcmVhdGVkIHZpZXcKKyAg ICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoInNlbGVjdCBvaWQgZnJvbSBwZ19jbGFzcyB3aGVyZSBy ZWxuYW1lPSclcyciICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld19uYW1lKQorICAg ICAgICB2aWV3ID0gcGdfY3Vyc29yLmZldGNob25lKCkKKyAgICAgICAgdmlld19pZCA9IE5vbmUK KyAgICAgICAgaWYgdmlldzoKKyAgICAgICAgICAgIHZpZXdfaWQgPSB2aWV3WzBdCisgICAgICAg IGNvbm5lY3Rpb24uY2xvc2UoKQorICAgICAgICByZXR1cm4gdmlld19pZAorICAgIGV4Y2VwdCBF eGNlcHRpb246CisgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQor ICAgICAgICByYWlzZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9jb3B5 X3NlbGVjdGVkX3F1ZXJ5X3Jlc3VsdHNfZmVhdHVyZV90ZXN0LnB5IGIvd2ViL3BnYWRtaW4vZmVh dHVyZV90ZXN0cy9jb3B5X3NlbGVjdGVkX3F1ZXJ5X3Jlc3VsdHNfZmVhdHVyZV90ZXN0LnB5Cmlu ZGV4IDcwOTFmZmEuLjFmM2JkNjUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVz dHMvY29weV9zZWxlY3RlZF9xdWVyeV9yZXN1bHRzX2ZlYXR1cmVfdGVzdC5weQorKysgYi93ZWIv cGdhZG1pbi9mZWF0dXJlX3Rlc3RzL2NvcHlfc2VsZWN0ZWRfcXVlcnlfcmVzdWx0c19mZWF0dXJl X3Rlc3QucHkKQEAgLTgsNyArOCw2IEBACiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCiBmcm9tIF9fZnV0 dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi1pbXBvcnQgcHlwZXJjbGlwCiBpbXBvcnQgcmFu ZG9tCiAKIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyIGltcG9ydCBBY3Rpb25DaGFpbnMKQEAgLTYw LDggKzU5LDE4IEBAIGNsYXNzIENvcHlTZWxlY3RlZFF1ZXJ5UmVzdWx0c0ZlYXR1cmVUZXN0KEJh c2VGZWF0dXJlVGVzdCk6CiAgICAgICAgIHNlbGYuX21vdXNldXBfb3V0c2lkZV9ncmlkX3N0aWxs X21ha2VzX2Ffc2VsZWN0aW9uKCkKICAgICAgICAgc2VsZi5fY29waWVzX3Jvd3Nfd2l0aF9oZWFk ZXIoKQogCisgICAgZGVmIHBhc3RlX3ZhbHVlc190b19zY3JhdGNoX3BhZChzZWxmKToKKyAgICAg ICAgc2VsZi5wYWdlLmRyaXZlci5zd2l0Y2hfdG8uZGVmYXVsdF9jb250ZW50KCkKKyAgICAgICAg c2VsZi5wYWdlLmRyaXZlci5zd2l0Y2hfdG9fZnJhbWUoCisgICAgICAgICAgICBzZWxmLnBhZ2Uu ZHJpdmVyLmZpbmRfZWxlbWVudF9ieV90YWdfbmFtZSgiaWZyYW1lIikpCisgICAgICAgIHNjcmF0 Y2hfcGFkX2VsZSA9IHNlbGYucGFnZS5maW5kX2J5X2Nzc19zZWxlY3RvcigKKyAgICAgICAgICAg IFF1ZXJ5VG9vbExvY2F0b3JzLnNjcmF0Y2hfcGFkX2NzcykKKyAgICAgICAgc2VsZi5wYWdlLnBh c3RlX3ZhbHVlcyhzY3JhdGNoX3BhZF9lbGUpCisgICAgICAgIGNsaXBib2FyZF90ZXh0ID0gc2Ny YXRjaF9wYWRfZWxlLmdldF9hdHRyaWJ1dGUoInZhbHVlIikKKyAgICAgICAgc2NyYXRjaF9wYWRf ZWxlLmNsZWFyKCkKKyAgICAgICAgcmV0dXJuIGNsaXBib2FyZF90ZXh0CisKICAgICBkZWYgX2Nv cGllc19yb3dzKHNlbGYpOgotICAgICAgICBweXBlcmNsaXAuY29weSgib2xkIGNsaXBib2FyZCBj b250ZW50cyIpCiAgICAgICAgIGZpcnN0X3JvdyA9IHNlbGYucGFnZS5maW5kX2J5X3hwYXRoKAog ICAgICAgICAgICAgUXVlcnlUb29sTG9jYXRvcnMub3V0cHV0X3Jvd194cGF0aC5mb3JtYXQoMSkp CiAgICAgICAgIGZpcnN0X3Jvdy5jbGljaygpCkBAIC03MCwxNCArNzksMTQgQEAgY2xhc3MgQ29w eVNlbGVjdGVkUXVlcnlSZXN1bHRzRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAg ICAgICAgIFF1ZXJ5VG9vbExvY2F0b3JzLmNvcHlfYnV0dG9uX2NzcykKICAgICAgICAgY29weV9i dXR0b24uY2xpY2soKQogCisgICAgICAgIGNsaXBib2FyZF90ZXh0ID0gc2VsZi5wYXN0ZV92YWx1 ZXNfdG9fc2NyYXRjaF9wYWQoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCciU29tZS1OYW1l Ilx0Nlx0InNvbWUgaW5mbyInLAotICAgICAgICAgICAgICAgICAgICAgICAgIHB5cGVyY2xpcC5w YXN0ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBib2FyZF90ZXh0KQogCiAgICAg ZGVmIF9jb3BpZXNfcm93c193aXRoX2hlYWRlcihzZWxmKToKICAgICAgICAgc2VsZi5wYWdlLmZp bmRfYnlfY3NzX3NlbGVjdG9yKCcjYnRuLWNvcHktcm93LWRyb3Bkb3duJykuY2xpY2soKQogICAg ICAgICBzZWxmLnBhZ2UuZmluZF9ieV9jc3Nfc2VsZWN0b3IoJ2EjYnRuLWNvcHktd2l0aC1oZWFk ZXInKS5jbGljaygpCiAKLSAgICAgICAgcHlwZXJjbGlwLmNvcHkoIm9sZCBjbGlwYm9hcmQgY29u dGVudHMiKQogICAgICAgICBzZWxlY3RfYWxsID0gc2VsZi5wYWdlLmZpbmRfYnlfeHBhdGgoCiAg ICAgICAgICAgICBRdWVyeVRvb2xMb2NhdG9ycy5zZWxlY3RfYWxsX2NvbHVtbikKICAgICAgICAg c2VsZWN0X2FsbC5jbGljaygpCkBAIC04NiwxMyArOTUsMTQgQEAgY2xhc3MgQ29weVNlbGVjdGVk UXVlcnlSZXN1bHRzRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgICAgIFF1 ZXJ5VG9vbExvY2F0b3JzLmNvcHlfYnV0dG9uX2NzcykKICAgICAgICAgY29weV9idXR0b24uY2xp Y2soKQogCisgICAgICAgIGNsaXBib2FyZF90ZXh0ID0gc2VsZi5wYXN0ZV92YWx1ZXNfdG9fc2Ny YXRjaF9wYWQoKQorCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIiIiXCJzb21lX2NvbHVtbiJc dCJ2YWx1ZSJcdCJkZXRhaWxzIgogXCJTb21lLU5hbWUiXHQ2XHQic29tZSBpbmZvIgogXCJTb21l LU90aGVyLU5hbWUiXHQyMlx0InNvbWUgb3RoZXIgaW5mbyIKLVwiWWV0LUFub3RoZXItTmFtZSJc dDE0XHQiY29vbCBpbmZvXCIiIiIsIHB5cGVyY2xpcC5wYXN0ZSgpKQorXCJZZXQtQW5vdGhlci1O YW1lIlx0MTRcdCJjb29sIGluZm9cIiIiIiwgY2xpcGJvYXJkX3RleHQpCiAKICAgICBkZWYgX2Nv cGllc19jb2x1bW5zKHNlbGYpOgotICAgICAgICBweXBlcmNsaXAuY29weSgib2xkIGNsaXBib2Fy ZCBjb250ZW50cyIpCiAgICAgICAgIGNvbHVtbiA9IHNlbGYucGFnZS5maW5kX2J5X2Nzc19zZWxl Y3RvcigKICAgICAgICAgICAgIFF1ZXJ5VG9vbExvY2F0b3JzLm91dHB1dF9jb2x1bW5faGVhZGVy X2Nzcy5mb3JtYXQoJ3NvbWVfY29sdW1uJykpCiAgICAgICAgIGNvbHVtbi5jbGljaygpCkBAIC0x MDEsMTQgKzExMSwxNSBAQCBjbGFzcyBDb3B5U2VsZWN0ZWRRdWVyeVJlc3VsdHNGZWF0dXJlVGVz dChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICAgICAgUXVlcnlUb29sTG9jYXRvcnMuY29weV9i dXR0b25fY3NzKQogICAgICAgICBjb3B5X2J1dHRvbi5jbGljaygpCiAKKyAgICAgICAgY2xpcGJv YXJkX3RleHQgPSBzZWxmLnBhc3RlX3ZhbHVlc190b19zY3JhdGNoX3BhZCgpCisKICAgICAgICAg c2VsZi5hc3NlcnRFcXVhbCgKICAgICAgICAgICAgICIiIlwiU29tZS1OYW1lIgogIlNvbWUtT3Ro ZXItTmFtZSIKICJZZXQtQW5vdGhlci1OYW1lXCIiIiIsCi0gICAgICAgICAgICBweXBlcmNsaXAu cGFzdGUoKSkKKyAgICAgICAgICAgIGNsaXBib2FyZF90ZXh0KQogCiAgICAgZGVmIF9jb3BpZXNf cm93X3VzaW5nX2tleWJvYXJkX3Nob3J0Y3V0KHNlbGYpOgotICAgICAgICBweXBlcmNsaXAuY29w eSgib2xkIGNsaXBib2FyZCBjb250ZW50cyIpCiAgICAgICAgIGZpcnN0X3JvdyA9IHNlbGYucGFn ZS5maW5kX2J5X3hwYXRoKAogICAgICAgICAgICAgUXVlcnlUb29sTG9jYXRvcnMub3V0cHV0X3Jv d194cGF0aC5mb3JtYXQoMSkpCiAgICAgICAgIGZpcnN0X3Jvdy5jbGljaygpCkBAIC0xMTYsMTEg KzEyNywxMiBAQCBjbGFzcyBDb3B5U2VsZWN0ZWRRdWVyeVJlc3VsdHNGZWF0dXJlVGVzdChCYXNl RmVhdHVyZVRlc3QpOgogICAgICAgICBBY3Rpb25DaGFpbnMoc2VsZi5wYWdlLmRyaXZlcikua2V5 X2Rvd24oCiAgICAgICAgICAgICBLZXlzLkNPTlRST0wpLnNlbmRfa2V5cygnYycpLmtleV91cChL ZXlzLkNPTlRST0wpLnBlcmZvcm0oKQogCisgICAgICAgIGNsaXBib2FyZF90ZXh0ID0gc2VsZi5w YXN0ZV92YWx1ZXNfdG9fc2NyYXRjaF9wYWQoKQorCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo JyJTb21lLU5hbWUiXHQ2XHQic29tZSBpbmZvIicsCi0gICAgICAgICAgICAgICAgICAgICAgICAg cHlwZXJjbGlwLnBhc3RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcGJvYXJkX3Rl eHQpCiAKICAgICBkZWYgX2NvcGllc19jb2x1bW5fdXNpbmdfa2V5Ym9hcmRfc2hvcnRjdXQoc2Vs Zik6Ci0gICAgICAgIHB5cGVyY2xpcC5jb3B5KCJvbGQgY2xpcGJvYXJkIGNvbnRlbnRzIikKICAg ICAgICAgY29sdW1uID0gc2VsZi5wYWdlLmZpbmRfYnlfY3NzX3NlbGVjdG9yKAogICAgICAgICAg ICAgUXVlcnlUb29sTG9jYXRvcnMub3V0cHV0X2NvbHVtbl9oZWFkZXJfY3NzLmZvcm1hdCgnc29t ZV9jb2x1bW4nKSkKICAgICAgICAgY29sdW1uLmNsaWNrKCkKQEAgLTEyOCwxNSArMTQwLDE1IEBA IGNsYXNzIENvcHlTZWxlY3RlZFF1ZXJ5UmVzdWx0c0ZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVz dCk6CiAgICAgICAgIEFjdGlvbkNoYWlucyhzZWxmLnBhZ2UuZHJpdmVyKS5rZXlfZG93bigKICAg ICAgICAgICAgIEtleXMuQ09OVFJPTCkuc2VuZF9rZXlzKCdjJykua2V5X3VwKEtleXMuQ09OVFJP TCkucGVyZm9ybSgpCiAKKyAgICAgICAgY2xpcGJvYXJkX3RleHQgPSBzZWxmLnBhc3RlX3ZhbHVl c190b19zY3JhdGNoX3BhZCgpCisKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKICAgICAgICAg ICAgICIiIlwiU29tZS1OYW1lIgogIlNvbWUtT3RoZXItTmFtZSIKICJZZXQtQW5vdGhlci1OYW1l XCIiIiIsCi0gICAgICAgICAgICBweXBlcmNsaXAucGFzdGUoKSkKKyAgICAgICAgICAgIGNsaXBi b2FyZF90ZXh0KQogCiAgICAgZGVmIF9jb3BpZXNfcmVjdGFuZ3VsYXJfc2VsZWN0aW9uKHNlbGYp OgotICAgICAgICBweXBlcmNsaXAuY29weSgib2xkIGNsaXBib2FyZCBjb250ZW50cyIpCi0KICAg ICAgICAgdG9wX2xlZnRfY2VsbCA9IFwKICAgICAgICAgICAgIHNlbGYucGFnZS5maW5kX2J5X3hw YXRoKAogICAgICAgICAgICAgICAgIFF1ZXJ5VG9vbExvY2F0b3JzLm91dHB1dF9jb2x1bW5fZGF0 YV94cGF0aC4KQEAgLTE1NCwxMiArMTY2LDEyIEBAIGNsYXNzIENvcHlTZWxlY3RlZFF1ZXJ5UmVz dWx0c0ZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgICAgICBzZWxmLnBhZ2Uu ZHJpdmVyCiAgICAgICAgICkua2V5X2Rvd24oS2V5cy5DT05UUk9MKS5zZW5kX2tleXMoJ2MnKS5r ZXlfdXAoS2V5cy5DT05UUk9MKS5wZXJmb3JtKCkKIAorICAgICAgICBjbGlwYm9hcmRfdGV4dCA9 IHNlbGYucGFzdGVfdmFsdWVzX3RvX3NjcmF0Y2hfcGFkKCkKKwogICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKAotICAgICAgICAgICAgJyJTb21lLU90aGVyLU5hbWUiXHQyMlxuIllldC1Bbm90aGVy LU5hbWUiXHQxNCcsIHB5cGVyY2xpcC5wYXN0ZSgpKQorICAgICAgICAgICAgJyJTb21lLU90aGVy LU5hbWUiXHQyMlxuIllldC1Bbm90aGVyLU5hbWUiXHQxNCcsIGNsaXBib2FyZF90ZXh0KQogCiAg ICAgZGVmIF9zaGlmdF9yZXNpemVzX3JlY3Rhbmd1bGFyX3NlbGVjdGlvbihzZWxmKToKLSAgICAg ICAgcHlwZXJjbGlwLmNvcHkoIm9sZCBjbGlwYm9hcmQgY29udGVudHMiKQotCiAgICAgICAgIHRv cF9sZWZ0X2NlbGwgPSBzZWxmLnBhZ2UuZmluZF9ieV94cGF0aCgKICAgICAgICAgICAgIFF1ZXJ5 VG9vbExvY2F0b3JzLm91dHB1dF9jb2x1bW5fZGF0YV94cGF0aC4KICAgICAgICAgICAgIGZvcm1h dCgnU29tZS1PdGhlci1OYW1lJykKQEAgLTE4MCwxMiArMTkyLDEyIEBAIGNsYXNzIENvcHlTZWxl Y3RlZFF1ZXJ5UmVzdWx0c0ZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgICAg ICBLZXlzLkNPTlRST0wKICAgICAgICAgKS5zZW5kX2tleXMoJ2MnKS5rZXlfdXAoS2V5cy5DT05U Uk9MKS5wZXJmb3JtKCkKIAorICAgICAgICBjbGlwYm9hcmRfdGV4dCA9IHNlbGYucGFzdGVfdmFs dWVzX3RvX3NjcmF0Y2hfcGFkKCkKKwogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCIiIlwiU29t ZS1PdGhlci1OYW1lIlx0MjJcdCJzb21lIG90aGVyIGluZm8iCi0iWWV0LUFub3RoZXItTmFtZSJc dDE0XHQiY29vbCBpbmZvXCIiIiIsIHB5cGVyY2xpcC5wYXN0ZSgpKQorIllldC1Bbm90aGVyLU5h bWUiXHQxNFx0ImNvb2wgaW5mb1wiIiIiLCBjbGlwYm9hcmRfdGV4dCkKIAogICAgIGRlZiBfc2hp ZnRfcmVzaXplc19jb2x1bW5fc2VsZWN0aW9uKHNlbGYpOgotICAgICAgICBweXBlcmNsaXAuY29w eSgib2xkIGNsaXBib2FyZCBjb250ZW50cyIpCi0KICAgICAgICAgY29sdW1uID0gc2VsZi5wYWdl LmZpbmRfYnlfY3NzX3NlbGVjdG9yKAogICAgICAgICAgICAgUXVlcnlUb29sTG9jYXRvcnMub3V0 cHV0X2NvbHVtbl9oZWFkZXJfY3NzLmZvcm1hdCgndmFsdWUnKQogICAgICAgICApCkBAIC0xOTcs MTMgKzIwOSwxMyBAQCBjbGFzcyBDb3B5U2VsZWN0ZWRRdWVyeVJlc3VsdHNGZWF0dXJlVGVzdChC YXNlRmVhdHVyZVRlc3QpOgogICAgICAgICBBY3Rpb25DaGFpbnMoc2VsZi5wYWdlLmRyaXZlciku a2V5X2Rvd24oCiAgICAgICAgICAgICBLZXlzLkNPTlRST0wpLnNlbmRfa2V5cygnYycpLmtleV91 cChLZXlzLkNPTlRST0wpLnBlcmZvcm0oKQogCisgICAgICAgIGNsaXBib2FyZF90ZXh0ID0gc2Vs Zi5wYXN0ZV92YWx1ZXNfdG9fc2NyYXRjaF9wYWQoKQorCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWwoCiAgICAgICAgICAgICAnIlNvbWUtTmFtZSJcdDZcbiJTb21lLU90aGVyLU5hbWUiXHQyMlxu IllldC1Bbm90aGVyLU5hbWUiXHQxNCcsCi0gICAgICAgICAgICBweXBlcmNsaXAucGFzdGUoKSkK KyAgICAgICAgICAgIGNsaXBib2FyZF90ZXh0KQogCiAgICAgZGVmIF9tb3VzZXVwX291dHNpZGVf Z3JpZF9zdGlsbF9tYWtlc19hX3NlbGVjdGlvbihzZWxmKToKLSAgICAgICAgcHlwZXJjbGlwLmNv cHkoIm9sZCBjbGlwYm9hcmQgY29udGVudHMiKQotCiAgICAgICAgIGJvdHRvbV9yaWdodF9jZWxs ID0gc2VsZi5wYWdlLmZpbmRfYnlfeHBhdGgoCiAgICAgICAgICAgICBRdWVyeVRvb2xMb2NhdG9y cy5vdXRwdXRfY29sdW1uX2RhdGFfeHBhdGguZm9ybWF0KCdjb29sIGluZm8nKQogICAgICAgICAp CkBAIC0yMTgsNyArMjMwLDkgQEAgY2xhc3MgQ29weVNlbGVjdGVkUXVlcnlSZXN1bHRzRmVhdHVy ZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgQWN0aW9uQ2hhaW5zKHNlbGYucGFnZS5k cml2ZXIpLmtleV9kb3duKAogICAgICAgICAgICAgS2V5cy5DT05UUk9MKS5zZW5kX2tleXMoJ2Mn KS5rZXlfdXAoS2V5cy5DT05UUk9MKS5wZXJmb3JtKCkKIAotICAgICAgICBzZWxmLmFzc2VydElu KCciY29vbCBpbmZvIicsIHB5cGVyY2xpcC5wYXN0ZSgpKQorICAgICAgICBjbGlwYm9hcmRfdGV4 dCA9IHNlbGYucGFzdGVfdmFsdWVzX3RvX3NjcmF0Y2hfcGFkKCkKKworICAgICAgICBzZWxmLmFz c2VydEluKCciY29vbCBpbmZvIicsIGNsaXBib2FyZF90ZXh0KQogCiAgICAgZGVmIGFmdGVyKHNl bGYpOgogICAgICAgICBzZWxmLnBhZ2UuY2xvc2VfcXVlcnlfdG9vbCgpCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL2ZpbGVfbWFuYWdlcl90ZXN0LnB5IGIvd2ViL3BnYWRt aW4vZmVhdHVyZV90ZXN0cy9maWxlX21hbmFnZXJfdGVzdC5weQppbmRleCA2ZDAxMjg2Li4zM2Y4 NmFkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL2ZpbGVfbWFuYWdlcl90 ZXN0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvZmlsZV9tYW5hZ2VyX3Rlc3Qu cHkKQEAgLTM4LDcgKzM4LDggQEAgY2xhc3MgQ2hlY2tGaWxlTWFuYWdlckZlYXR1cmVUZXN0KEJh c2VGZWF0dXJlVGVzdCk6CiAKICAgICAgICAgc2VsZi5wYWdlLmFkZF9zZXJ2ZXIoc2VsZi5zZXJ2 ZXIpCiAgICAgICAgIHNlbGYud2FpdCA9IFdlYkRyaXZlcldhaXQoc2VsZi5wYWdlLmRyaXZlciwg MTApCi0gICAgICAgIHNlbGYuWFNTX0ZJTEUgPSAnL3RtcC88aW1nIHNyYz14IG9ubW91c2VvdmVy PWFsZXJ0KCIxIik+LnNxbCcKKyAgICAgICAgc2VsZi5YU1NfRklMRSA9ICcvdG1wLzxpbWcgc3Jj PXggJyArIHNlbGYuc2VydmVyWyduYW1lJ11bOjEzXSBcCisgICAgICAgICAgICAgICAgICAgICAg ICArICc9YWxlcnQoIjEiKT4uc3FsJwogICAgICAgICAjIFJlbW92ZSBhbnkgcHJldmlvdXMgZmls ZQogICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShzZWxmLlhTU19GSUxFKToKICAgICAgICAgICAg IG9zLnJlbW92ZShzZWxmLlhTU19GSUxFKQpAQCAtNjcsNyArNjgsNyBAQCBjbGFzcyBDaGVja0Zp bGVNYW5hZ2VyRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgc2VsZi5wYWdl Lm9wZW5fcXVlcnlfdG9vbCgpCiAKICAgICBkZWYgX2NyZWF0ZV9uZXdfZmlsZShzZWxmKToKLSAg ICAgICAgc2VsZi5wYWdlLmZpbmRfYnlfY3NzX3NlbGVjdG9yKFF1ZXJ5VG9vbExvY2F0b3JzLmJ0 bl9zYXZlX2ZpbGUpXAorICAgICAgICBzZWxmLnBhZ2UuZmluZF9ieV9jc3Nfc2VsZWN0b3IoUXVl cnlUb29sTG9jYXRvcnMuYnRuX3NhdmVfZmlsZSkgXAogICAgICAgICAgICAgLmNsaWNrKCkKICAg ICAgICAgIyBTZXQgdGhlIFhTUyB2YWx1ZSBpbiBpbnB1dAogICAgICAgICBzZWxmLnBhZ2UuZmlu ZF9ieV9jc3Nfc2VsZWN0b3IoJy5jaGFuZ2VfZmlsZV90eXBlcycpCkBAIC0xMTIsOCArMTEzLDgg QEAgY2xhc3MgQ2hlY2tGaWxlTWFuYWdlckZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAg ICAgICAgIHNlbGYucGFnZS53YWl0X2Zvcl9xdWVyeV90b29sX2xvYWRpbmdfaW5kaWNhdG9yX3Rv X2Rpc2FwcGVhcigpCiAgICAgICAgIHNlbGYuX2NoZWNrX2VzY2FwZWRfY2hhcmFjdGVycygKICAg ICAgICAgICAgIGNvbnRlbnRzLAotICAgICAgICAgICAgJyZsdDtpbWcgc3JjPXggb25tb3VzZW92 ZXI9YWxlcnQoIjEiKSZndDsuc3FsJywKLSAgICAgICAgICAgICdGaWxlIG1hbmFnZXInCisgICAg ICAgICAgICAnJmx0O2ltZyBzcmM9eCAnICsgc2VsZi5zZXJ2ZXJbJ25hbWUnXVs6MTNdICsKKyAg ICAgICAgICAgICc9YWxlcnQoIjEiKSZndDsuc3FsJywgJ0ZpbGUgbWFuYWdlcicKICAgICAgICAg KQogCiAgICAgZGVmIF9jaGVja19lc2NhcGVkX2NoYXJhY3RlcnMoc2VsZiwgc291cmNlX2NvZGUs IHN0cmluZ190b19maW5kLCBzb3VyY2UpOgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vZmVhdHVy ZV90ZXN0cy9rZXlib2FyZF9zaG9ydGN1dF90ZXN0LnB5IGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90 ZXN0cy9rZXlib2FyZF9zaG9ydGN1dF90ZXN0LnB5CmluZGV4IGVhMzgxYjQuLmY2OGU1MzAgMTAw NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMva2V5Ym9hcmRfc2hvcnRjdXRfdGVz dC5weQorKysgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL2tleWJvYXJkX3Nob3J0Y3V0X3Rl c3QucHkKQEAgLTk0LDI0ICs5NCwzMyBAQCBjbGFzcyBLZXlib2FyZFNob3J0Y3V0RmVhdHVyZVRl c3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgICAgIE5hdk1lbnVMb2NhdG9ycy5wcmVmZXJl bmNlX21lbnVfaXRlbV9jc3MpCiAgICAgICAgIHByZWZfbWVudV9pdGVtLmNsaWNrKCkKIAotICAg ICAgICAjIFdhaXQgdGlsbCB0aGUgcHJlZmVyZW5jZSBkaWFsb2d1ZSBib3ggaXMgZGlzcGxheWVk IGJ5IGNoZWNraW5nIHRoZQotICAgICAgICAjIHZpc2liaWxpdHkgb2YgU2hvdyBTeXN0ZW0gT2Jq ZWN0IGxhYmVsCi0gICAgICAgIHNlbGYud2FpdC51bnRpbChFQy5wcmVzZW5jZV9vZl9lbGVtZW50 X2xvY2F0ZWQoCi0gICAgICAgICAgICAoQnkuWFBBVEgsIE5hdk1lbnVMb2NhdG9ycy5zaG93X3N5 c3RlbV9vYmplY3RzX3ByZWZfbGFiZWxfeHBhdGgpKQotICAgICAgICApCi0KLSAgICAgICAgbWF4 aW1pemVfYnV0dG9uID0gc2VsZi5wYWdlLmZpbmRfYnlfY3NzX3NlbGVjdG9yKAotICAgICAgICAg ICAgTmF2TWVudUxvY2F0b3JzLm1heGltaXplX3ByZWZfZGlhbG9ndWVfY3NzKQotICAgICAgICBt YXhpbWl6ZV9idXR0b24uY2xpY2soKQotCiAgICAgICAgIGJyb3dzZXJfbm9kZSA9IHNlbGYucGFn ZS5maW5kX2J5X3hwYXRoKAogICAgICAgICAgICAgTmF2TWVudUxvY2F0b3JzLnNwZWNpZmllZF9w cmVmZXJlbmNlX3RyZWVfbm9kZS5mb3JtYXQoJ0Jyb3dzZXInKSkKICAgICAgICAgaWYgc2VsZi5w YWdlLmZpbmRfYnlfeHBhdGgoCiAgICAgICAgICAgICBOYXZNZW51TG9jYXRvcnMuc3BlY2lmaWVk X3ByZWZfbm9kZV9leHBfc3RhdHVzLgogICAgICAgICAgICAgICAgIGZvcm1hdCgnQnJvd3Nlcicp KS5nZXRfYXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJykgPT0gJ2ZhbHNlJzoKLQogICAgICAgICAg ICAgQWN0aW9uQ2hhaW5zKHNlbGYuZHJpdmVyKS5kb3VibGVfY2xpY2soYnJvd3Nlcl9ub2RlKS5w ZXJmb3JtKCkKIAorICAgICAgICBkaXNwbGF5X25vZGUgPSBzZWxmLnBhZ2UuZmluZF9ieV94cGF0 aCgKKyAgICAgICAgICAgIE5hdk1lbnVMb2NhdG9ycy5zcGVjaWZpZWRfc3ViX25vZGVfb2ZfcHJl Zl90cmVlX25vZGUuZm9ybWF0KAorICAgICAgICAgICAgICAgICdCcm93c2VyJywgJ0Rpc3BsYXkn KSkKKyAgICAgICAgYXR0ZW1wdCA9IDUKKyAgICAgICAgd2hpbGUgYXR0ZW1wdCA+IDA6CisgICAg ICAgICAgICBkaXNwbGF5X25vZGUuY2xpY2soKQorICAgICAgICAgICAgIyBBZnRlciBjbGlja2lu ZyB0aGUgZWxlbWVudCBnZXRzIGxvYWRlZCBpbiB0byB0aGUgZG9tIGJ1dCBzdGlsbAorICAgICAg ICAgICAgIyBub3QgdmlzaWJsZSwgaGVuY2Ugc2xlZXBpbmcgZm9yIGEgc2VjLgorICAgICAgICAg ICAgdGltZS5zbGVlcCgxKQorICAgICAgICAgICAgaWYgc2VsZi5wYWdlLndhaXRfZm9yX2VsZW1l bnRfdG9fYmVfdmlzaWJsZSgKKyAgICAgICAgICAgICAgICBzZWxmLmRyaXZlciwKKyAgICAgICAg ICAgICAgICAgICAgTmF2TWVudUxvY2F0b3JzLnNob3dfc3lzdGVtX29iamVjdHNfcHJlZl9sYWJl bF94cGF0aCwgMyk6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgICAgYXR0ZW1wdCAtPSAxCisKKyAgICAgICAgbWF4aW1pemVfYnV0dG9uID0g c2VsZi5wYWdlLmZpbmRfYnlfY3NzX3NlbGVjdG9yKAorICAgICAgICAgICAgTmF2TWVudUxvY2F0 b3JzLm1heGltaXplX3ByZWZfZGlhbG9ndWVfY3NzKQorICAgICAgICBtYXhpbWl6ZV9idXR0b24u Y2xpY2soKQorCiAgICAgICAgIGtleWJvYXJkX25vZGUgPSBzZWxmLnBhZ2UuZmluZF9ieV94cGF0 aCgKICAgICAgICAgICAgIE5hdk1lbnVMb2NhdG9ycy5zcGVjaWZpZWRfc3ViX25vZGVfb2ZfcHJl Zl90cmVlX25vZGUuZm9ybWF0KAogICAgICAgICAgICAgICAgICdCcm93c2VyJywgJ0tleWJvYXJk IHNob3J0Y3V0cycpKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9wZ19k YXRhdHlwZV92YWxpZGF0aW9uX3Rlc3QucHkgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3Bn X2RhdGF0eXBlX3ZhbGlkYXRpb25fdGVzdC5weQppbmRleCBkYmE0ZWFkLi5iYWNjYzcwIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3BnX2RhdGF0eXBlX3ZhbGlkYXRpb25f dGVzdC5weQorKysgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3BnX2RhdGF0eXBlX3ZhbGlk YXRpb25fdGVzdC5weQpAQCAtOTIsNiArOTIsMTggQEAgY2xhc3MgUEdEYXRheXBlRmVhdHVyZVRl c3QoQmFzZUZlYXR1cmVUZXN0KToKIAogICAgICAgICB3YWl0ID0gV2ViRHJpdmVyV2FpdChzZWxm LnBhZ2UuZHJpdmVyLCAxMCkKIAorICAgICAgICBicm93c2VyX25vZGUgPSBzZWxmLnBhZ2UuZmlu ZF9ieV94cGF0aCgKKyAgICAgICAgICAgIE5hdk1lbnVMb2NhdG9ycy5zcGVjaWZpZWRfcHJlZmVy ZW5jZV90cmVlX25vZGUuZm9ybWF0KCdCcm93c2VyJykpCisgICAgICAgIGlmIHNlbGYucGFnZS5m aW5kX2J5X3hwYXRoKAorICAgICAgICAgICAgTmF2TWVudUxvY2F0b3JzLnNwZWNpZmllZF9wcmVm X25vZGVfZXhwX3N0YXR1cy4KKyAgICAgICAgICAgICAgICBmb3JtYXQoJ0Jyb3dzZXInKSkuZ2V0 X2F0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcpID09ICdmYWxzZSc6CisgICAgICAgICAgICBBY3Rp b25DaGFpbnMoc2VsZi5kcml2ZXIpLmRvdWJsZV9jbGljayhicm93c2VyX25vZGUpLnBlcmZvcm0o KQorCisgICAgICAgIHNlbGYucGFnZS5yZXRyeV9jbGljaygKKyAgICAgICAgICAgIChCeS5YUEFU SCwgTmF2TWVudUxvY2F0b3JzLnNwZWNpZmllZF9zdWJfbm9kZV9vZl9wcmVmX3RyZWVfbm9kZS4K KyAgICAgICAgICAgICBmb3JtYXQoJ0Jyb3dzZXInLCAnRGlzcGxheScpKSwKKyAgICAgICAgICAg IChCeS5YUEFUSCwgTmF2TWVudUxvY2F0b3JzLnNob3dfc3lzdGVtX29iamVjdHNfcHJlZl9sYWJl bF94cGF0aCkpCisKICAgICAgICAgIyBXYWl0IHRpbGwgdGhlIHByZWZlcmVuY2UgZGlhbG9ndWUg Ym94IGlzIGRpc3BsYXllZCBieSBjaGVja2luZyB0aGUKICAgICAgICAgIyB2aXNpYmlsaXR5IG9m IFNob3cgU3lzdGVtIE9iamVjdCBsYWJlbAogICAgICAgICB3YWl0LnVudGlsKEVDLnByZXNlbmNl X29mX2VsZW1lbnRfbG9jYXRlZCgKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVz dHMvcGdfdXRpbGl0aWVzX2JhY2t1cF9yZXN0b3JlX3Rlc3QucHkgYi93ZWIvcGdhZG1pbi9mZWF0 dXJlX3Rlc3RzL3BnX3V0aWxpdGllc19iYWNrdXBfcmVzdG9yZV90ZXN0LnB5CmluZGV4IDFkNmQ3 YTQuLjRjZjkyODIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcGdfdXRp bGl0aWVzX2JhY2t1cF9yZXN0b3JlX3Rlc3QucHkKKysrIGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90 ZXN0cy9wZ191dGlsaXRpZXNfYmFja3VwX3Jlc3RvcmVfdGVzdC5weQpAQCAtMTgsNiArMTgsNyBA QCBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMKIGZy b20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF9ndWlfaGVscGVyCiBm cm9tIHJlZ3Jlc3Npb24uZmVhdHVyZV91dGlscy5sb2NhdG9ycyBpbXBvcnQgTmF2TWVudUxvY2F0 b3JzCiBmcm9tIHJlZ3Jlc3Npb24uZmVhdHVyZV91dGlscy50cmVlX2FyZWFfbG9jYXRvcnMgaW1w b3J0IFRyZWVBcmVhTG9jYXRvcnMKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyIGltcG9ydCBBY3Rp b25DaGFpbnMKIAogCiBjbGFzcyBQR1V0aWxpdGllc0JhY2t1cEZlYXR1cmVUZXN0KEJhc2VGZWF0 dXJlVGVzdCk6CkBAIC01Niw2ICs1Nyw3IEBAIGNsYXNzIFBHVXRpbGl0aWVzQmFja3VwRmVhdHVy ZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgICAgIHNlbGYuc2VydmVyWydzc2xtb2Rl J10KICAgICAgICAgKQogICAgICAgICB0ZXN0X3V0aWxzLmRyb3BfZGF0YWJhc2UoY29ubmVjdGlv biwgc2VsZi5kYXRhYmFzZV9uYW1lKQorICAgICAgICBzZWxmLl91cGRhdGVfcHJlZmVyZW5jZXMo KQogICAgICAgICBkYl9pZCA9IHRlc3RfdXRpbHMuY3JlYXRlX2RhdGFiYXNlKHNlbGYuc2VydmVy LCBzZWxmLmRhdGFiYXNlX25hbWUpCiAgICAgICAgIGlmIG5vdCBkYl9pZDoKICAgICAgICAgICAg IHNlbGYuYXNzZXJ0VHJ1ZShGYWxzZSwgIkRhdGFiYXNlIHt9IGlzIG5vdCAiCkBAIC0xMzAsNyAr MTMyLDcgQEAgY2xhc3MgUEdVdGlsaXRpZXNCYWNrdXBGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRl c3QpOgogICAgICAgICAgICAgc2VsZi5fY2hlY2tfZGV0YWlsZWRfd2luZG93X2Zvcl94c3MoJ0Jh Y2t1cCcpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBjb21tYW5kID0gc2VsZi5wYWdlLmZp bmRfYnlfY3NzX3NlbGVjdG9yKAotICAgICAgICAgICAgICAgIE5hdk1lbnVMb2NhdG9ycy5wcm9j ZXNzX3dhdGNoZXJfZGV0YWlsZWRfY29tbWFuZF9jYW52YXNfY3NzKS5cCisgICAgICAgICAgICAg ICAgTmF2TWVudUxvY2F0b3JzLnByb2Nlc3Nfd2F0Y2hlcl9kZXRhaWxlZF9jb21tYW5kX2NhbnZh c19jc3MpLiBcCiAgICAgICAgICAgICAgICAgdGV4dAogCiAgICAgICAgICAgICBzZWxmLmFzc2Vy dEluKHNlbGYuc2VydmVyWyduYW1lJ10sIHN0cihjb21tYW5kKSkKQEAgLTE5OSw3ICsyMDEsNyBA QCBjbGFzcyBQR1V0aWxpdGllc0JhY2t1cEZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAg ICAgICAgICAgICBzZWxmLl9jaGVja19kZXRhaWxlZF93aW5kb3dfZm9yX3hzcygnUmVzdG9yZScp CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBjb21tYW5kID0gc2VsZi5wYWdlLmZpbmRfYnlf Y3NzX3NlbGVjdG9yKAotICAgICAgICAgICAgICAgIE5hdk1lbnVMb2NhdG9ycy5wcm9jZXNzX3dh dGNoZXJfZGV0YWlsZWRfY29tbWFuZF9jYW52YXNfY3NzKS5cCisgICAgICAgICAgICAgICAgTmF2 TWVudUxvY2F0b3JzLnByb2Nlc3Nfd2F0Y2hlcl9kZXRhaWxlZF9jb21tYW5kX2NhbnZhc19jc3Mp LiBcCiAgICAgICAgICAgICAgICAgdGV4dAogCiAgICAgICAgICAgICBzZWxmLmFzc2VydEluKHNl bGYuc2VydmVyWyduYW1lJ10sIHN0cihjb21tYW5kKSkKQEAgLTI0MiwzICsyNDQsNzQgQEAgY2xh c3MgUEdVdGlsaXRpZXNCYWNrdXBGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAg ICAjIEZvciBYU1Mgd2UgbmVlZCB0byBzZWFyY2ggYWdhaW5zdCBlbGVtZW50J3MgaHRtbCBjb2Rl CiAgICAgICAgIGFzc2VydCBzb3VyY2VfY29kZS5maW5kKHN0cmluZ190b19maW5kKSAhPSAtIFwK ICAgICAgICAgICAgIDEsICJ7MH0gbWlnaHQgYmUgdnVsbmVyYWJsZSB0byBYU1MgIi5mb3JtYXQo c291cmNlKQorCisgICAgZGVmIF91cGRhdGVfcHJlZmVyZW5jZXMoc2VsZik6CisgICAgICAgICIi IgorICAgICAgICBGdW5jdGlvbiB1cGRhdGVzIHByZWZlcmVuY2VzIGZvciBiaW5hcnkgcGF0aC4K KyAgICAgICAgIiIiCisgICAgICAgIGZpbGVfbWVudSA9IHNlbGYucGFnZS5maW5kX2J5X2Nzc19z ZWxlY3RvcigKKyAgICAgICAgICAgIE5hdk1lbnVMb2NhdG9ycy5maWxlX21lbnVfY3NzKQorICAg ICAgICBmaWxlX21lbnUuY2xpY2soKQorCisgICAgICAgIHByZWZfbWVudV9pdGVtID0gc2VsZi5w YWdlLmZpbmRfYnlfY3NzX3NlbGVjdG9yKAorICAgICAgICAgICAgTmF2TWVudUxvY2F0b3JzLnBy ZWZlcmVuY2VfbWVudV9pdGVtX2NzcykKKyAgICAgICAgcHJlZl9tZW51X2l0ZW0uY2xpY2soKQor CisgICAgICAgIHdhaXQgPSBXZWJEcml2ZXJXYWl0KHNlbGYucGFnZS5kcml2ZXIsIDEwKQorCisg ICAgICAgICMgV2FpdCB0aWxsIHRoZSBwcmVmZXJlbmNlIGRpYWxvZ3VlIGJveCBpcyBkaXNwbGF5 ZWQgYnkgY2hlY2tpbmcgdGhlCisgICAgICAgICMgdmlzaWJpbGl0eSBvZiBTaG93IFN5c3RlbSBP YmplY3QgbGFiZWwKKyAgICAgICAgd2FpdC51bnRpbChFQy5wcmVzZW5jZV9vZl9lbGVtZW50X2xv Y2F0ZWQoCisgICAgICAgICAgICAoQnkuWFBBVEgsIE5hdk1lbnVMb2NhdG9ycy5zaG93X3N5c3Rl bV9vYmplY3RzX3ByZWZfbGFiZWxfeHBhdGgpKQorICAgICAgICApCisKKyAgICAgICAgbWF4aW1p emVfYnV0dG9uID0gc2VsZi5wYWdlLmZpbmRfYnlfY3NzX3NlbGVjdG9yKAorICAgICAgICAgICAg TmF2TWVudUxvY2F0b3JzLm1heGltaXplX3ByZWZfZGlhbG9ndWVfY3NzKQorICAgICAgICBtYXhp bWl6ZV9idXR0b24uY2xpY2soKQorCisgICAgICAgIHBhdGggPSBzZWxmLnBhZ2UuZmluZF9ieV94 cGF0aCgKKyAgICAgICAgICAgIE5hdk1lbnVMb2NhdG9ycy5zcGVjaWZpZWRfcHJlZmVyZW5jZV90 cmVlX25vZGUuZm9ybWF0KCdQYXRocycpKQorICAgICAgICBpZiBzZWxmLnBhZ2UuZmluZF9ieV94 cGF0aCgKKyAgICAgICAgICAgIE5hdk1lbnVMb2NhdG9ycy5zcGVjaWZpZWRfcHJlZl9ub2RlX2V4 cF9zdGF0dXMuZm9ybWF0KCdQYXRocycpKS4gXAorICAgICAgICAgICAgICAgIGdldF9hdHRyaWJ1 dGUoJ2FyaWEtZXhwYW5kZWQnKSA9PSAnZmFsc2UnOgorICAgICAgICAgICAgQWN0aW9uQ2hhaW5z KHNlbGYuZHJpdmVyKS5kb3VibGVfY2xpY2socGF0aCkucGVyZm9ybSgpCisKKyAgICAgICAgYmlu YXJ5X3BhdGggPSBzZWxmLnBhZ2UuZmluZF9ieV94cGF0aCgKKyAgICAgICAgICAgIE5hdk1lbnVM b2NhdG9ycy5zcGVjaWZpZWRfc3ViX25vZGVfb2ZfcHJlZl90cmVlX25vZGUuZm9ybWF0KAorICAg ICAgICAgICAgICAgICdQYXRocycsICdCaW5hcnkgcGF0aHMnKSkKKyAgICAgICAgYmluYXJ5X3Bh dGguY2xpY2soKQorCisgICAgICAgIGRlZmF1bHRfYmluYXJ5X3BhdGggPSBzZWxmLnNlcnZlclsn ZGVmYXVsdF9iaW5hcnlfcGF0aHMnXQorICAgICAgICBpZiBkZWZhdWx0X2JpbmFyeV9wYXRoIGlz IG5vdCBOb25lOgorICAgICAgICAgICAgc2VydmVyX3R5cGVzID0gZGVmYXVsdF9iaW5hcnlfcGF0 aC5rZXlzKCkKKyAgICAgICAgICAgIGZvciBzZXJ2IGluIHNlcnZlcl90eXBlczoKKyAgICAgICAg ICAgICAgICBpZiBzZXJ2ID09ICdwZyc6CisgICAgICAgICAgICAgICAgICAgIHBhdGhfaW5wdXQg PSBzZWxmLnBhZ2UuZmluZF9ieV94cGF0aCgKKyAgICAgICAgICAgICAgICAgICAgICAgICIvL2xh YmVsW3RleHQoKT0nUG9zdGdyZVNRTCBCaW5hcnkgIgorICAgICAgICAgICAgICAgICAgICAgICAg IlBhdGgnXS9mb2xsb3dpbmctc2libGluZzo6ZGl2Ly9pbnB1dCIpCisgICAgICAgICAgICAgICAg ICAgIHBhdGhfaW5wdXQuY2xlYXIoKQorICAgICAgICAgICAgICAgICAgICBwYXRoX2lucHV0LmNs aWNrKCkKKyAgICAgICAgICAgICAgICAgICAgcGF0aF9pbnB1dC5zZW5kX2tleXMoZGVmYXVsdF9i aW5hcnlfcGF0aFsncGcnXSkKKyAgICAgICAgICAgICAgICBlbGlmIHNlcnYgPT0gJ2dwZGInOgor ICAgICAgICAgICAgICAgICAgICBwYXRoX2lucHV0ID0gc2VsZi5wYWdlLmZpbmRfYnlfeHBhdGgo CisgICAgICAgICAgICAgICAgICAgICAgICAiLy9sYWJlbFt0ZXh0KCk9J0dyZWVucGx1bSBEYXRh YmFzZSBCaW5hcnkgIgorICAgICAgICAgICAgICAgICAgICAgICAgIlBhdGgnXS9mb2xsb3dpbmct c2libGluZzo6ZGl2Ly9pbnB1dCIpCisgICAgICAgICAgICAgICAgICAgIHBhdGhfaW5wdXQuY2xl YXIoKQorICAgICAgICAgICAgICAgICAgICBwYXRoX2lucHV0LmNsaWNrKCkKKyAgICAgICAgICAg ICAgICAgICAgcGF0aF9pbnB1dC5zZW5kX2tleXMoZGVmYXVsdF9iaW5hcnlfcGF0aFsnZ3BkYidd KQorICAgICAgICAgICAgICAgIGVsaWYgc2VydiA9PSAncHBhcyc6CisgICAgICAgICAgICAgICAg ICAgIHBhdGhfaW5wdXQgPSBzZWxmLnBhZ2UuZmluZF9ieV94cGF0aCgKKyAgICAgICAgICAgICAg ICAgICAgICAgICIvL2xhYmVsW3RleHQoKT0nRURCIEFkdmFuY2VkIFNlcnZlciBCaW5hcnkgIgor ICAgICAgICAgICAgICAgICAgICAgICAgIlBhdGgnXS9mb2xsb3dpbmctc2libGluZzo6ZGl2Ly9p bnB1dCIpCisgICAgICAgICAgICAgICAgICAgIHBhdGhfaW5wdXQuY2xlYXIoKQorICAgICAgICAg ICAgICAgICAgICBwYXRoX2lucHV0LmNsaWNrKCkKKyAgICAgICAgICAgICAgICAgICAgcGF0aF9p bnB1dC5zZW5kX2tleXMoZGVmYXVsdF9iaW5hcnlfcGF0aFsncHBhcyddKQorICAgICAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHByaW50KCdCaW5hcnkgcGF0aCBLZXkgaXMg SW5jb3JyZWN0JykKKworICAgICAgICAjIHNhdmUgYW5kIGNsb3NlIHRoZSBwcmVmZXJlbmNlIGRp YWxvZy4KKyAgICAgICAgc2VsZi5wYWdlLmNsaWNrX21vZGFsKCdTYXZlJykKKworICAgICAgICBz ZWxmLnBhZ2Uud2FpdF9mb3JfZWxlbWVudF90b19kaXNhcHBlYXIoCisgICAgICAgICAgICBsYW1i ZGEgZHJpdmVyOiBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2Nzc19zZWxlY3RvcigiLmFqcy1tb2Rh bCIpCisgICAgICAgICkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcXVl cnlfdG9vbF9qb3VybmV5X3Rlc3QucHkgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3F1ZXJ5 X3Rvb2xfam91cm5leV90ZXN0LnB5CmluZGV4IDJkN2M0ZWYuLmRkYjRlM2MgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcXVlcnlfdG9vbF9qb3VybmV5X3Rlc3QucHkKKysr IGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9xdWVyeV90b29sX2pvdXJuZXlfdGVzdC5weQpA QCAtOSw3ICs5LDYgQEAKIAogZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgog aW1wb3J0IHN5cwotaW1wb3J0IHB5cGVyY2xpcAogaW1wb3J0IHJhbmRvbQogCiBmcm9tIHNlbGVu aXVtLndlYmRyaXZlciBpbXBvcnQgQWN0aW9uQ2hhaW5zCkBAIC05MCw3ICs4OSw2IEBAIGNsYXNz IFF1ZXJ5VG9vbEpvdXJuZXlUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgIHByaW50KCIg T0suIiwgZmlsZT1zeXMuc3RkZXJyKQogCiAgICAgZGVmIF90ZXN0X2NvcGllc19yb3dzKHNlbGYp OgotICAgICAgICBweXBlcmNsaXAuY29weSgib2xkIGNsaXBib2FyZCBjb250ZW50cyIpCiAgICAg ICAgIHNlbGYucGFnZS5kcml2ZXIuc3dpdGNoX3RvLmRlZmF1bHRfY29udGVudCgpCiAgICAgICAg IHNlbGYucGFnZS5kcml2ZXIuc3dpdGNoX3RvX2ZyYW1lKAogICAgICAgICAgICAgc2VsZi5wYWdl LmRyaXZlci5maW5kX2VsZW1lbnRfYnlfdGFnX25hbWUoImlmcmFtZSIpKQpAQCAtMTAzLDEyICsx MDEsMjEgQEAgY2xhc3MgUXVlcnlUb29sSm91cm5leVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAg ICAgICAgICAgIFF1ZXJ5VG9vbExvY2F0b3JzLmNvcHlfYnV0dG9uX2NzcykKICAgICAgICAgY29w eV9yb3cuY2xpY2soKQogCisgICAgICAgIHNlbGYucGFnZS5kcml2ZXIuc3dpdGNoX3RvLmRlZmF1 bHRfY29udGVudCgpCisgICAgICAgIHNlbGYucGFnZS5kcml2ZXIuc3dpdGNoX3RvX2ZyYW1lKAor ICAgICAgICAgICAgc2VsZi5wYWdlLmRyaXZlci5maW5kX2VsZW1lbnRfYnlfdGFnX25hbWUoImlm cmFtZSIpKQorCisgICAgICAgIHNjcmF0Y2hfcGFkX2VsZSA9IHNlbGYucGFnZS5maW5kX2J5X2Nz c19zZWxlY3RvcigKKyAgICAgICAgICAgIFF1ZXJ5VG9vbExvY2F0b3JzLnNjcmF0Y2hfcGFkX2Nz cykKKyAgICAgICAgc2VsZi5wYWdlLnBhc3RlX3ZhbHVlcyhzY3JhdGNoX3BhZF9lbGUpCisgICAg ICAgIGNsaXBib2FyZF90ZXh0ID0gc2NyYXRjaF9wYWRfZWxlLmdldF9hdHRyaWJ1dGUoInZhbHVl IikKKwogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCciU29tZS1OYW1lIlx0Nlx0InNvbWUgaW5m byInLAotICAgICAgICAgICAgICAgICAgICAgICAgIHB5cGVyY2xpcC5wYXN0ZSgpKQorICAgICAg ICAgICAgICAgICAgICAgICAgIGNsaXBib2FyZF90ZXh0KQogCi0gICAgZGVmIF90ZXN0X2NvcGll c19jb2x1bW5zKHNlbGYpOgotICAgICAgICBweXBlcmNsaXAuY29weSgib2xkIGNsaXBib2FyZCBj b250ZW50cyIpCisgICAgICAgIHNjcmF0Y2hfcGFkX2VsZS5jbGVhcigpCiAKKyAgICBkZWYgX3Rl c3RfY29waWVzX2NvbHVtbnMoc2VsZik6CiAgICAgICAgIHNlbGYucGFnZS5kcml2ZXIuc3dpdGNo X3RvLmRlZmF1bHRfY29udGVudCgpCiAgICAgICAgIHNlbGYucGFnZS5kcml2ZXIuc3dpdGNoX3Rv X2ZyYW1lKAogICAgICAgICAgICAgc2VsZi5wYWdlLmRyaXZlci5maW5kX2VsZW1lbnRfYnlfdGFn X25hbWUoImlmcmFtZSIpKQpAQCAtMTIxLDkgKzEyOCwyMCBAQCBjbGFzcyBRdWVyeVRvb2xKb3Vy bmV5VGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICAgICAgUXVlcnlUb29sTG9jYXRvcnMu Y29weV9idXR0b25fY3NzKQogICAgICAgICBjb3B5X2J0bi5jbGljaygpCiAKLSAgICAgICAgc2Vs Zi5hc3NlcnRUcnVlKCciU29tZS1OYW1lIicgaW4gcHlwZXJjbGlwLnBhc3RlKCkpCi0gICAgICAg IHNlbGYuYXNzZXJ0VHJ1ZSgnIlNvbWUtT3RoZXItTmFtZSInIGluIHB5cGVyY2xpcC5wYXN0ZSgp KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJyJZZXQtQW5vdGhlci1OYW1lIicgaW4gcHlwZXJj bGlwLnBhc3RlKCkpCisgICAgICAgIHNlbGYucGFnZS5kcml2ZXIuc3dpdGNoX3RvLmRlZmF1bHRf Y29udGVudCgpCisgICAgICAgIHNlbGYucGFnZS5kcml2ZXIuc3dpdGNoX3RvX2ZyYW1lKAorICAg ICAgICAgICAgc2VsZi5wYWdlLmRyaXZlci5maW5kX2VsZW1lbnRfYnlfdGFnX25hbWUoImlmcmFt ZSIpKQorCisgICAgICAgIHNjcmF0Y2hfcGFkX2VsZSA9IHNlbGYucGFnZS5maW5kX2J5X2Nzc19z ZWxlY3RvcigKKyAgICAgICAgICAgIFF1ZXJ5VG9vbExvY2F0b3JzLnNjcmF0Y2hfcGFkX2NzcykK KyAgICAgICAgc2VsZi5wYWdlLnBhc3RlX3ZhbHVlcyhzY3JhdGNoX3BhZF9lbGUpCisKKyAgICAg ICAgY2xpcGJvYXJkX3RleHQgPSBzY3JhdGNoX3BhZF9lbGUuZ2V0X2F0dHJpYnV0ZSgidmFsdWUi KQorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnIlNvbWUtTmFtZSInIGluIGNsaXBib2FyZF90 ZXh0KQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJyJTb21lLU90aGVyLU5hbWUiJyBpbiBjbGlw Ym9hcmRfdGV4dCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCciWWV0LUFub3RoZXItTmFtZSIn IGluIGNsaXBib2FyZF90ZXh0KQorICAgICAgICBzY3JhdGNoX3BhZF9lbGUuY2xlYXIoKQogCiAg ICAgZGVmIF90ZXN0X2hpc3RvcnlfdGFiKHNlbGYpOgogICAgICAgICBzZWxmLnBhZ2UuY2xlYXJf cXVlcnlfdG9vbCgpCkBAIC0zNzAsMTAgKzM4OCwxMCBAQCBjbGFzcyBRdWVyeVRvb2xKb3VybmV5 VGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICAgICAgc2VsZi5wYWdlLmZpbmRfYnlfY3Nz X3NlbGVjdG9yKAogICAgICAgICAgICAgICAgIFF1ZXJ5VG9vbExvY2F0b3JzLmJ0bl9jbGVhcl9k cm9wZG93bikKICAgICAgICAgKQotICAgICAgICBBY3Rpb25DaGFpbnMoc2VsZi5kcml2ZXIpXAor ICAgICAgICBBY3Rpb25DaGFpbnMoc2VsZi5kcml2ZXIpIFwKICAgICAgICAgICAgIC5tb3ZlX3Rv X2VsZW1lbnQoCi0gICAgICAgICAgICAgICAgc2VsZi5wYWdlLmZpbmRfYnlfY3NzX3NlbGVjdG9y KAotICAgICAgICAgICAgICAgICAgICBRdWVyeVRvb2xMb2NhdG9ycy5idG5fY2xlYXJfaGlzdG9y eSkpLnBlcmZvcm0oKQorICAgICAgICAgICAgc2VsZi5wYWdlLmZpbmRfYnlfY3NzX3NlbGVjdG9y KAorICAgICAgICAgICAgICAgIFF1ZXJ5VG9vbExvY2F0b3JzLmJ0bl9jbGVhcl9oaXN0b3J5KSku cGVyZm9ybSgpCiAgICAgICAgIHNlbGYucGFnZS5jbGlja19lbGVtZW50KAogICAgICAgICAgICAg c2VsZi5wYWdlLmZpbmRfYnlfY3NzX3NlbGVjdG9yKFF1ZXJ5VG9vbExvY2F0b3JzLmJ0bl9jbGVh cl9oaXN0b3J5KQogICAgICAgICApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rl c3RzL3ZpZXdfZGF0YV9kbWxfcXVlcmllcy5weSBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMv dmlld19kYXRhX2RtbF9xdWVyaWVzLnB5CmluZGV4IDNmNTNkODYuLjIxOTIxY2MgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvdmlld19kYXRhX2RtbF9xdWVyaWVzLnB5Cisr KyBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvdmlld19kYXRhX2RtbF9xdWVyaWVzLnB5CkBA IC0xMzEsMTMgKzEzMSwxNSBAQCBDUkVBVEUgVEFCTEUgcHVibGljLm5vbmludHBrZXkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdF9kYiwgJ3B1Ymxp YycpCiAKICAgICAgICAgc2VsZi5fbG9hZF9jb25maWdfZGF0YSgndGFibGVfaW5zZXJ0X3VwZGF0 ZV9jYXNlcycpCisgICAgICAgIGRhdGFfbG9jYWwgPSBjb25maWdfZGF0YQogICAgICAgICAjIGl0 ZXJhdGUgb24gYm90aCB0YWJsZXMKICAgICAgICAgZm9yIGNudCBpbiAoMSwgMik6Ci0gICAgICAg ICAgICBzZWxmLl9wZXJmb3JtX3Rlc3RfZm9yX3RhYmxlKCdkZWZhdWx0c197MH0nLmZvcm1hdChz dHIoY250KSkpCi0KKyAgICAgICAgICAgIHNlbGYuX3BlcmZvcm1fdGVzdF9mb3JfdGFibGUoJ2Rl ZmF1bHRzX3swfScuZm9ybWF0KHN0cihjbnQpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGF0YV9sb2NhbCkKICAgICAgICAgIyB0ZXN0IG5vbmludCBwa2V5IHRh YmxlCiAgICAgICAgIHNlbGYuX2xvYWRfY29uZmlnX2RhdGEoJ3RhYmxlX2luc2VydF91cGRhdGVf bm9uaW50JykKLSAgICAgICAgc2VsZi5fcGVyZm9ybV90ZXN0X2Zvcl90YWJsZSgnbm9uaW50cGtl eScpCisgICAgICAgIGRhdGFfbG9jYWwgPSBjb25maWdfZGF0YQorICAgICAgICBzZWxmLl9wZXJm b3JtX3Rlc3RfZm9yX3RhYmxlKCdub25pbnRwa2V5JywgZGF0YV9sb2NhbCkKIAogICAgIGRlZiBh ZnRlcihzZWxmKToKICAgICAgICAgc2VsZi5wYWdlLnJlbW92ZV9zZXJ2ZXIoc2VsZi5zZXJ2ZXIp CkBAIC0xNjcsNyArMTY5LDcgQEAgQ1JFQVRFIFRBQkxFIHB1YmxpYy5ub25pbnRwa2V5CiAgICAg ICAgIGdsb2JhbCBjb25maWdfZGF0YQogICAgICAgICBjb25maWdfZGF0YSA9IGNvbmZpZ19kYXRh X2pzb25bY29uZmlnX2tleV0KIAotICAgIGRlZiBfcGVyZm9ybV90ZXN0X2Zvcl90YWJsZShzZWxm LCB0YWJsZV9uYW1lKToKKyAgICBkZWYgX3BlcmZvcm1fdGVzdF9mb3JfdGFibGUoc2VsZiwgdGFi bGVfbmFtZSwgY29uZmlnX2RhdGFfbG9jYWwpOgogICAgICAgICBzZWxmLnBhZ2UuY2xpY2tfYV90 cmVlX25vZGUoCiAgICAgICAgICAgICB0YWJsZV9uYW1lLAogICAgICAgICAgICAgVHJlZUFyZWFM b2NhdG9ycy5zdWJfbm9kZXNfb2ZfdGFibGVzX25vZGUpCkBAIC0xNzYsMjAgKzE3OCwyMSBAQCBD UkVBVEUgVEFCTEUgcHVibGljLm5vbmludHBrZXkKIAogICAgICAgICBzZWxmLnBhZ2Uud2FpdF9m b3JfcXVlcnlfdG9vbF9sb2FkaW5nX2luZGljYXRvcl90b19kaXNhcHBlYXIoKQogICAgICAgICAj IFJ1biB0ZXN0IHRvIGluc2VydCBhIG5ldyByb3cgaW4gdGFibGUgd2l0aCBkZWZhdWx0IHZhbHVl cwotICAgICAgICBzZWxmLl9hZGRfcm93KCkKKyAgICAgICAgc2VsZi5fYWRkX3Jvdyhjb25maWdf ZGF0YV9sb2NhbCkKICAgICAgICAgc2VsZi5fdmVyaWZ5X3Jvd19kYXRhKHJvd19oZWlnaHQ9MCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19jaGVja19kYXRhPWNvbmZpZ19k YXRhWydhZGQnXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19jaGVja19k YXRhPWNvbmZpZ19kYXRhX2xvY2FsWydhZGQnXSkKIAogICAgICAgICAjIFJ1biB0ZXN0IHRvIGNv cHkvcGFzdGUgYSByb3cKLSAgICAgICAgc2VsZi5fY29weV9wYXN0ZV9yb3coKQorICAgICAgICBz ZWxmLl9jb3B5X3Bhc3RlX3Jvdyhjb25maWdfZGF0YV9sb2NhbCkKIAotICAgICAgICBzZWxmLl91 cGRhdGVfcm93KCkKKyAgICAgICAgc2VsZi5fdXBkYXRlX3Jvdyhjb25maWdfZGF0YV9sb2NhbCkK ICAgICAgICAgc2VsZi5wYWdlLmNsaWNrX3RhYigiTWVzc2FnZXMiKQogICAgICAgICBzZWxmLl92 ZXJpZnlfbWVzc3NhZ2VzKCIiKQogICAgICAgICBzZWxmLnBhZ2UuY2xpY2tfdGFiKCJEYXRhIE91 dHB1dCIpCiAgICAgICAgIHVwZGF0ZWRfcm93X2RhdGEgPSB7Ci0gICAgICAgICAgICBpOiBjb25m aWdfZGF0YVsndXBkYXRlJ11baV0gaWYgaSBpbiBjb25maWdfZGF0YVsndXBkYXRlJ10gZWxzZSB2 YWwKLSAgICAgICAgICAgIGZvciBpLCB2YWwgaW4gY29uZmlnX2RhdGFbJ2FkZCddLml0ZW1zKCkK KyAgICAgICAgICAgIGk6IGNvbmZpZ19kYXRhX2xvY2FsWyd1cGRhdGUnXVtpXSBpZiBpIGluIGNv bmZpZ19kYXRhX2xvY2FsWworICAgICAgICAgICAgICAgICd1cGRhdGUnXSBlbHNlIHZhbAorICAg ICAgICAgICAgZm9yIGksIHZhbCBpbiBjb25maWdfZGF0YV9sb2NhbFsnYWRkJ10uaXRlbXMoKQog ICAgICAgICB9CiAgICAgICAgIHNlbGYuX3ZlcmlmeV9yb3dfZGF0YShyb3dfaGVpZ2h0PTAsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdfY2hlY2tfZGF0YT11cGRhdGVkX3Jv d19kYXRhKQpAQCAtMjIxLDcgKzIyNCw2IEBAIENSRUFURSBUQUJMRSBwdWJsaWMubm9uaW50cGtl eQogICAgICAgICBSZXR1cm5zOiBOb25lCiAKICAgICAgICAgIiIiCi0KICAgICAgICAgc2VsZi53 YWl0LnVudGlsKEVDLnZpc2liaWxpdHlfb2ZfZWxlbWVudF9sb2NhdGVkKAogICAgICAgICAgICAg KEJ5LlhQQVRILCB4cGF0aCkpLCBDaGVja0ZvclZpZXdEYXRhVGVzdC5USU1FT1VUX1NUUklORwog ICAgICAgICApCkBAIC0yMzgsNyArMjQwLDcgQEAgQ1JFQVRFIFRBQkxFIHB1YmxpYy5ub25pbnRw a2V5CiAgICAgICAgICAgICBpZiB2YWx1ZSA9PSAnY2xlYXInOgogICAgICAgICAgICAgICAgIGNl bGxfZWwuZmluZF9lbGVtZW50X2J5X2Nzc19zZWxlY3RvcignaW5wdXQnKS5jbGVhcigpCiAgICAg ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIEFjdGlvbkNoYWlucyhzZWxmLmRyaXZlciku c2VuZF9rZXlzKHZhbHVlKS5cCisgICAgICAgICAgICAgICAgQWN0aW9uQ2hhaW5zKHNlbGYuZHJp dmVyKS5zZW5kX2tleXModmFsdWUpLiBcCiAgICAgICAgICAgICAgICAgICAgIHNlbmRfa2V5cyhL ZXlzLkVOVEVSKS5wZXJmb3JtKCkKICAgICAgICAgZWxpZiBjZWxsX3R5cGUgaW4gWyd0ZXh0Jywg J2pzb24nLCAndGV4dFtdJywgJ2Jvb2xlYW5bXSddOgogICAgICAgICAgICAgdGV4dF9hcmVhX2Vs ZSA9IHNlbGYucGFnZS5maW5kX2J5X2Nzc19zZWxlY3RvcigKQEAgLTI5MCw3ICsyOTIsNyBAQCBD UkVBVEUgVEFCTEUgcHVibGljLm5vbmludHBrZXkKICAgICAgICAgICAgIHNlbGYucGFnZS5kcml2 ZXIuZmluZF9lbGVtZW50X2J5X3RhZ19uYW1lKCdpZnJhbWUnKQogICAgICAgICApCiAKLSAgICBk ZWYgX2NvcHlfcGFzdGVfcm93KHNlbGYpOgorICAgIGRlZiBfY29weV9wYXN0ZV9yb3coc2VsZiwg Y29uZmlnX2RhdGFfbCk6CiAgICAgICAgIHJvdzBfY2VsbDBfeHBhdGggPSBDaGVja0ZvclZpZXdE YXRhVGVzdC5fZ2V0X2NlbGxfeHBhdGgoInIwIiwgMSkKIAogICAgICAgICBzZWxmLnBhZ2UuZmlu ZF9ieV94cGF0aChyb3cwX2NlbGwwX3hwYXRoKS5jbGljaygpCkBAIC0zMDAsMTIgKzMwMiwxMiBA QCBDUkVBVEUgVEFCTEUgcHVibGljLm5vbmludHBrZXkKICAgICAgICAgICAgIFF1ZXJ5VG9vbExv Y2F0b3JzLnBhc3RlX2J1dHRvbl9jc3MpLmNsaWNrKCkKIAogICAgICAgICAjIFVwZGF0ZSBwcmlt YXJ5IGtleSBvZiBjb3BpZWQgY2VsbAotICAgICAgICBzZWxmLl9hZGRfdXBkYXRlX3NhdmVfcm93 KGNvbmZpZ19kYXRhWydjb3B5J10sIHJvdz0yKQorICAgICAgICBzZWxmLl9hZGRfdXBkYXRlX3Nh dmVfcm93KGNvbmZpZ19kYXRhX2xbJ2NvcHknXSwgcm93PTIpCiAKICAgICAgICAgIyBWZXJpZnkg cm93IDEgYW5kIHJvdyAyIGRhdGEKICAgICAgICAgdXBkYXRlZF9yb3dfZGF0YSA9IHsKLSAgICAg ICAgICAgIGk6IGNvbmZpZ19kYXRhWydjb3B5J11baV0gaWYgaSBpbiBjb25maWdfZGF0YVsnY29w eSddIGVsc2UgdmFsCi0gICAgICAgICAgICBmb3IgaSwgdmFsIGluIGNvbmZpZ19kYXRhWydhZGQn XS5pdGVtcygpCisgICAgICAgICAgICBpOiBjb25maWdfZGF0YV9sWydjb3B5J11baV0gaWYgaSBp biBjb25maWdfZGF0YV9sWydjb3B5J10gZWxzZSB2YWwKKyAgICAgICAgICAgIGZvciBpLCB2YWwg aW4gY29uZmlnX2RhdGFfbFsnYWRkJ10uaXRlbXMoKQogICAgICAgICB9CiAgICAgICAgIHNlbGYu X3ZlcmlmeV9yb3dfZGF0YShyb3dfaGVpZ2h0PTI1LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uZmlnX2NoZWNrX2RhdGE9dXBkYXRlZF9yb3dfZGF0YSkKQEAgLTMyOSwxMSArMzMx LDExIEBAIENSRUFURSBUQUJMRSBwdWJsaWMubm9uaW50cGtleQogICAgICAgICAjIHNhdmUgYWph eCBpcyBjb21wbGV0ZWQuCiAgICAgICAgIHRpbWUuc2xlZXAoMikKIAotICAgIGRlZiBfYWRkX3Jv dyhzZWxmKToKLSAgICAgICAgc2VsZi5fYWRkX3VwZGF0ZV9zYXZlX3Jvdyhjb25maWdfZGF0YVsn YWRkJ10sIDEpCisgICAgZGVmIF9hZGRfcm93KHNlbGYsIGNvbmZpZ19kYXRhX2wpOgorICAgICAg ICBzZWxmLl9hZGRfdXBkYXRlX3NhdmVfcm93KGNvbmZpZ19kYXRhX2xbJ2FkZCddLCAxKQogCi0g ICAgZGVmIF91cGRhdGVfcm93KHNlbGYpOgotICAgICAgICBzZWxmLl9hZGRfdXBkYXRlX3NhdmVf cm93KGNvbmZpZ19kYXRhWyd1cGRhdGUnXSwgMSkKKyAgICBkZWYgX3VwZGF0ZV9yb3coc2VsZiwg Y29uZmlnX2RhdGFfbCk6CisgICAgICAgIHNlbGYuX2FkZF91cGRhdGVfc2F2ZV9yb3coY29uZmln X2RhdGFfbFsndXBkYXRlJ10sIDEpCiAKICAgICBkZWYgX3ZlcmlmeV9tZXNzc2FnZXMoc2VsZiwg dGV4dCk6CiAgICAgICAgIG1lc3NhZ2VzX2VsZSA9IHNlbGYucGFnZS5maW5kX2J5X2Nzc19zZWxl Y3RvcigKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMveHNzX2NoZWNrc19w YW5lbHNfYW5kX3F1ZXJ5X3Rvb2xfdGVzdC5weSBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMv eHNzX2NoZWNrc19wYW5lbHNfYW5kX3F1ZXJ5X3Rvb2xfdGVzdC5weQppbmRleCA5ZWZhZDhhLi42 OWMzY2JhIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3Nf cGFuZWxzX2FuZF9xdWVyeV90b29sX3Rlc3QucHkKKysrIGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90 ZXN0cy94c3NfY2hlY2tzX3BhbmVsc19hbmRfcXVlcnlfdG9vbF90ZXN0LnB5CkBAIC0yMTEsMTcg KzIxMSwyMyBAQCBjbGFzcyBDaGVja0Zvclhzc0ZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6 CiAgICAgICAgICAgICAiUXVlcnkgdG9vbCAoSGlzdG9yeSBFbnRyeSkiCiAgICAgICAgICkKIAot ICAgICAgICAjIENoZWNrIGZvciBoaXN0b3J5IGRldGFpbHMgbWVzc2FnZQotICAgICAgICBoaXN0 b3J5X2VsZSA9IHNlbGYuZHJpdmVyXAotICAgICAgICAgICAgLmZpbmRfZWxlbWVudF9ieV9jc3Nf c2VsZWN0b3IoIi5xdWVyeS1kZXRhaWwgLmNvbnRlbnQtdmFsdWUiKQotCi0gICAgICAgIHNvdXJj ZV9jb2RlID0gaGlzdG9yeV9lbGUuZ2V0X2F0dHJpYnV0ZSgnaW5uZXJIVE1MJykKKyAgICAgICAg cmV0cnkgPSAyCisgICAgICAgIHdoaWxlIHJldHJ5ID4gMDoKKyAgICAgICAgICAgIHRyeToKKyAg ICAgICAgICAgICAgICBoaXN0b3J5X2VsZSA9IHNlbGYuZHJpdmVyIFwKKyAgICAgICAgICAgICAg ICAgICAgLmZpbmRfZWxlbWVudF9ieV9jc3Nfc2VsZWN0b3IoCisgICAgICAgICAgICAgICAgICAg ICAgICAiLnF1ZXJ5LWRldGFpbCAuY29udGVudC12YWx1ZSIpCisgICAgICAgICAgICAgICAgc291 cmNlX2NvZGUgPSBoaXN0b3J5X2VsZS5nZXRfYXR0cmlidXRlKCdpbm5lckhUTUwnKQorICAgICAg ICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBleGNlcHQgU3RhbGVFbGVtZW50UmVmZXJlbmNl RXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIHJldHJ5IC09IDEKIAogICAgICAgICBzZWxmLl9j aGVja19lc2NhcGVkX2NoYXJhY3RlcnMoCiAgICAgICAgICAgICBzb3VyY2VfY29kZSwKICAgICAg ICAgICAgICcmbHQ7c2NyaXB0Jmd0O2FsZXJ0KDEpJmx0Oy9zY3JpcHQmZ3Q7JywKICAgICAgICAg ICAgICJRdWVyeSB0b29sIChIaXN0b3J5IERldGFpbHMtTWVzc2FnZSkiCiAgICAgICAgICkKKwog ICAgICAgICByZXRyeSA9IDIKICAgICAgICAgd2hpbGUgcmV0cnkgPiAwOgogICAgICAgICAgICAg dHJ5OgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdXRpbHMvcm91dGUucHkgYi93ZWIvcGdhZG1p bi91dGlscy9yb3V0ZS5weQppbmRleCBhODAzMTBlLi5mYWZmNTJhIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi91dGlscy9yb3V0ZS5weQorKysgYi93ZWIvcGdhZG1pbi91dGlscy9yb3V0ZS5weQpA QCAtMTIwLDkgKzEyMCw4IEBAIGNsYXNzIEJhc2VUZXN0R2VuZXJhdG9yKHVuaXR0ZXN0LlRlc3RD YXNlKToKICAgICAgICAgICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgnY2Fubm90IHJ1biBpbjog JXMnICUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfY29uWydkYXRh J11bJ3R5cGUnXSkKIAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBzZXRUZXN0U2VydmVyKGNs cywgc2VydmVyKToKLSAgICAgICAgY2xzLnNlcnZlciA9IHNlcnZlcgorICAgIGRlZiBzZXRUZXN0 U2VydmVyKHNlbGYsIHNlcnZlcik6CisgICAgICAgIHNlbGYuc2VydmVyID0gc2VydmVyCiAKICAg ICBAYWJzdHJhY3RtZXRob2QKICAgICBkZWYgcnVuVGVzdChzZWxmKToKQEAgLTEzNywxNyArMTM2 LDE0IEBAIGNsYXNzIEJhc2VUZXN0R2VuZXJhdG9yKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBk ZWYgc2V0VGVzdENsaWVudChjbHMsIHRlc3RfY2xpZW50KToKICAgICAgICAgY2xzLnRlc3RlciA9 IHRlc3RfY2xpZW50CiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgc2V0RHJpdmVyKGNscywg ZHJpdmVyKToKLSAgICAgICAgY2xzLmRyaXZlciA9IGRyaXZlcgorICAgIGRlZiBzZXREcml2ZXIo c2VsZiwgZHJpdmVyKToKKyAgICAgICAgc2VsZi5kcml2ZXIgPSBkcml2ZXIKIAotICAgIEBjbGFz c21ldGhvZAotICAgIGRlZiBzZXRTZXJ2ZXJJbmZvcm1hdGlvbihjbHMsIHNlcnZlcl9pbmZvcm1h dGlvbik6Ci0gICAgICAgIGNscy5zZXJ2ZXJfaW5mb3JtYXRpb24gPSBzZXJ2ZXJfaW5mb3JtYXRp b24KKyAgICBkZWYgc2V0U2VydmVySW5mb3JtYXRpb24oc2VsZiwgc2VydmVyX2luZm9ybWF0aW9u KToKKyAgICAgICAgc2VsZi5zZXJ2ZXJfaW5mb3JtYXRpb24gPSBzZXJ2ZXJfaW5mb3JtYXRpb24K IAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBzZXRUZXN0RGF0YWJhc2VOYW1lKGNscywgZGF0 YWJhc2VfbmFtZSk6Ci0gICAgICAgIGNscy50ZXN0X2RiID0gZGF0YWJhc2VfbmFtZQorICAgIGRl ZiBzZXRUZXN0RGF0YWJhc2VOYW1lKHNlbGYsIGRhdGFiYXNlX25hbWUpOgorICAgICAgICBzZWxm LnRlc3RfZGIgPSBkYXRhYmFzZV9uYW1lCiAKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgc2V0 UmVTUUxNb2R1bGVMaXN0KGNscywgbW9kdWxlX2xpc3QpOgpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jl c3Npb24vUkVBRE1FIGIvd2ViL3JlZ3Jlc3Npb24vUkVBRE1FCmluZGV4IDQ2YWRmY2MuLmE3NjQ1 NjUgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL1JFQURNRQorKysgYi93ZWIvcmVncmVzc2lv bi9SRUFETUUKQEAgLTE0MSw2ICsxNDEsNTkgQEAgUHl0aG9uIFRlc3RzOgogICBhbmQgcmVnaXN0 ZXJlZCBhdXRvbWF0aWNhbGx5IGJ5IGl0cyBtb2R1bGUgbmFtZSBpbgogICAncGdhZG1pbjQvd2Vi L3BnYWRtaW4vdXRpbHMvdGVzdC5weScgZmlsZS4KIAorLSBUbyBydW4gRmVhdHVyZSBUZXN0cyBp biBwYXJhbGxlbCB1c2luZyBzZWxlbm9pZChncmlkICsgZG9ja2VyKSwgc2VsZW5vaWQKKyAgbmVl ZCB0byBiZSBpbnN0YWxsZWQuIFN0ZXBzIHRvIGluc3RhbGwgc2VsZW5vaWQgLQorCisgIC0gSW5z dGFsbCAmIFN0YXJ0IGRvY2tlcgorICAgICR5dW0gLXkgaW5zdGFsbCBkb2NrZXIgZG9ja2VyLXJl Z2lzdHJ5CisgICAgJHZpIC9ldGMvc3lzY29uZmlnL2RvY2tlciAgICMgaW4gT1BUSU9OUyBhZGQg 4oCYLS1zZWxpbnV4LWVuYWJsZWQ9ZmFsc2XigJkKKyAgICAkc3lzdGVtY3RsIGVuYWJsZSBkb2Nr ZXIuc2VydmljZQorICAgICRzeXN0ZW1jdGwgc3RhcnQgZG9ja2VyLnNlcnZpY2UKKyAgICAkc3lz dGVtY3RsIHN0YXR1cyBkb2NrZXIuc2VydmljZQorCisgIC0gSW5zdGFsbCAmIFN0YXJ0IFNlbGVu b2lkCisgICAgJGN1cmwgLXMgaHR0cHM6Ly9hZXJva3ViZS5jb20vY20vYmFzaCB8IGJhc2gKKyAg ICAkLi9jbSBzZWxlbm9pZCBzdGFydCAtLXZuYyAtLWFyZ3MgIi1saW1pdCAzIC1jcHUgMS41IC1t ZW0gMS41ZyIKKyAgICAkLi9jbSBzZWxlbm9pZC11aSBzdGFydAorICAgIENoZWNrIHNlbGVub2lk IHN0YXR1cyAtCisgICAgaHR0cDovLzxJUCBhZGRyZXNzIG9mIFNlbGVub2lkIEluc3RhbGxlZCBt YWNoaW5lPjo0NDQ0L3N0YXR1cworICAgICAgICAgICAgLSBTaG91bGQgc2hvdyBqc29uIHdpdGgg YnJvd3NlcnMgZGV0YWlscworICAgIGh0dHA6Ly88SVAgYWRkcmVzcyBvZiBTZWxlbm9pZCBJbnN0 YWxsZWQgbWFjaGluZT46ODA4MC8jLworICAgICAgICAgICAgLSBDYXBhYmlsaXRpZXMgc2hvd3Mg YXZhaWxhYmxlIGJyb3dzZXIKKyAgICBOb3RlIDogSW4gLS1hcmdzICItbGltaXQgMyAtY3B1IDEu NSAtbWVtIDEuNWciCisgICAgICAgICAgICAgICAgLWxpbWl0IDMgOmxpbWl0cyBtYXhpbXVtIHBh cmFsbGVsIHNlc3Npb25zKGRvY2tlcnMpIGluIHNlbGVub2lkLAorICAgICAgICAgICAgICAgIC1j cHUgOmxpbWl0IG1lbW9yeSBhbmQgQ1BVIHVzYWdlLAorICAgICAgICAgICAgICAgIC1tZW0gOmxp bWl0IG1lbW9yeSBwZXIgc2Vzc2lvbi4KKyAgICAgICAgICAgR2VuZXJhbGx5IG1heCBwYXJhbGxl bCBzZXNzaW9uIGlzIHRoZSBudW1iZXIgb2YgY29yZXMgKiAxLjUg4oCTIDIKKyAgICAgICAgICAg WW91IGNhbiBsaXN0IGF2YWlsYWJsZSBmbGFncyBieSB1c2luZyAuL2NtIHNlbGVub2lkIGFyZ3MK KyAgICBBZGRpdGlvbmFsIEluZm9ybWF0aW9uIGFib3V0IHRvb2wKKyAgICAgICAgICAgIC0gaHR0 cHM6Ly9hZXJva3ViZS5jb20vc2VsZW5vaWQvbGF0ZXN0LworCisgIC0gVXBkYXRlICd0ZXN0X2Nv bmZpZy5qc29uJyB3aXRoIHNlbGVub2lkIHJlbGF0ZWQgaW5mbyBsaWtlCisgICAgcGdBZG1pbl9k ZWZhdWx0X3NlcnZlciAtCisgICAgICAgIEl0IGlzIHRoZSBJUCBhZGRyZXNzIGZvciB0aGUgbWFj aGluZSB3aGVyZSBwZ2FkbWluIHNvdXJjZSBjb2RlIGlzCisgICAgICAgIHByZXNlbnQuCisgICAg ICAgIFlvdSBjYW4gZ2V0IGl0IG9uIGxpbnV4IHJ1bm5pbmcgY29tbWFuZCAgJ2lmY29uZmlnIHwg Z3JlcCBpbmV0JworICAgICAgICBlLmcuIC0gMTkyLjE2OC4xNDMuMTIxCisgICAgbWF4X3BhcmFs bGVsX3Nlc3Npb25zIC0KKyAgICAgICAgVGhpcyBpcyBvdGhlciB3YXkgdG8gY29udHJvbCBudW1i ZXIgb2YgdGVzdHMgdG8gYmUgcnVuIGluIHBhcmFsbGVsLgorICAgICAgICBUaGlzIHNob3VsZCBi ZSBlcXVhbCBvciBsZXNzIHRoYW4gbGltaXQgc3BlY2lmaWVkIHdoaWxlIHNldHRpbmcgdXAKKyAg ICAgICAgc2VsZW5vaWQKKyAgICBjcm9zc19Ccm93c2VycyAtCisgICAgICAgIExpc3Qgb2YgYnJv d3NlciBuYW1lICYgdmVyc2lvbiBlbmNsb3NlZCBpbiB7fSBvbiB3aGljaCB0ZXN0cyB0byBiZQor ICAgICAgICBleGVjdXRlZC4KKyAgICAgICAgTWFrZSBzdXJlIGxpc3QgY29udGFpbnMgdGhvc2Ug YnJvd3NlcnMgJiB2ZXJzaW9ucyBvbmx5IHdoaWNoIGFyZSBzaG93bgorICAgICAgICBpbiBjYXBh YmlsaXRpZXMgdGFiIHdoaWxlIGluIHNlbGVub2lkIHN0YXR1cyB3ZWItcGFnZS4KKyAgICAgICAg SWYgdmVyc2lvbiBpcyBtZW50aW9uIGFzIG51bGwsIHRoZW4gbGF0ZXN0IHZlcnNpb24gYXZhaWxh YmxlIGluCisgICAgICAgIHNlbGVub2lvZCBzZXJ2ZXIgd2lsbCBiZSB1c2VkIGZvciBleGVjdXRp b24KKyAgICAgICAgZS5nLiAtIFsgeyJuYW1lIjogIkNocm9tZSIsInZlcnNpb24iOiAiODAuMCJ9 LAorICAgICAgICAgICAgICAgICB7Im5hbWUiOiAiRmlyZWZveCIsInZlcnNpb24iOiAiNzQuMCJ9 XQorICAgIHNlbGVub2lkIHVybCAtCisgICAgICAgIFVybCBmb3JtZWQgYXMgYmVsb3cgLQorICAg ICAgICBodHRwOi8vPElQIGFkZHJlc3Mgb2YgU2VsZW5vaWQgSW5zdGFsbGVkIG1hY2hpbmU+OjQ0 NDQvd2QvaHViLworICAgICAgICBlLmcuIC0gc2VsZW5vaWRfdXJsIjogImh0dHA6Ly8xOTIuMTY4 LjE0My4xMjE6NDQ0NC93ZC9odWIiCisKKwogLSBDaGFuZ2UgdG8gdGhlIHJlZ3Jlc3Npb24gdGVz dCBkaXJlY3Rvcnk6CiAgICAgIHJ1biAnY2Qgd2ViL3JlZ3Jlc3Npb24nCiAKQEAgLTE5MCw5ICsy NDMsMTQgQEAgUHl0aG9uIFRlc3RzOgogICAgICBFeGFtcGxlIDIpICBFeGVjdXRlIG9ubHkgcmV2 ZXJzZSBlbmdpbmVlcmVkIFNRTCB0ZXN0IGZyYW1ld29yayBmb3Igc29tZSBtb2R1bGVzCiAgICAg ICAgICBydW4gJ3B5dGhvbiBydW50ZXN0cy5weSAtLXBrZyByZXNxbCAtLW1vZHVsZXMgc2VxdWVu Y2VzLGZ1bmN0aW9ucycKIAorCiAgICAgIEV4YW1wbGUgMykgRXhjbHVkZSByZXZlcnNlIGVuZ2lu ZWVyZWQgU1FMIHRlc3QgZnJhbWV3b3JrIGZvciBhbGwgbW9kdWxlcwogICAgICAgICAgcnVuICdw eXRob24gcnVudGVzdHMucHkgLS1leGNsdWRlIHJlc3FsJwogCistIEV4ZWN1dGUgdWkgc2VsZW5p dW0gdGVzdHMgaW4gcGFyYWxsZWwgdXNpbmcgc2VsZW5vaWQoc2VsZW5pdW0gZ3JpZCArIGRvY2tl cikKKyAgICAgRXhhbXBsZSA6IC0tcGtnIGZlYXR1cmVfdGVzdHMgLS1wYXJhbGxlbAorCisKIENv ZGUgQ292ZXJhZ2U6CiAtLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Np b24vZmVhdHVyZV91dGlscy9hcHBfc3RhcnRlci5weSBiL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVf dXRpbHMvYXBwX3N0YXJ0ZXIucHkKaW5kZXggZmU0YzQ0MS4uN2RlMTBiMiAxMDA2NDQKLS0tIGEv d2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV91dGlscy9hcHBfc3RhcnRlci5weQorKysgYi93ZWIvcmVn cmVzc2lvbi9mZWF0dXJlX3V0aWxzL2FwcF9zdGFydGVyLnB5CkBAIC02MSwxMSArNjEsMTYgQEAg Y2xhc3MgQXBwU3RhcnRlcjoKICAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdV bmFibGUgdG8gc3RhcnQgcHl0aG9uIHNlcnZlciBldmVuIGFmdGVyICcKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdyZXRyeWluZyA2MCB0aW1lcy4nKQogCi0gICAgICAgIGxh dW5jaF9icm93c2VyKDApCisgICAgICAgIGlmIHNlbGYuZHJpdmVyIGlzIG5vdCBOb25lOgorICAg ICAgICAgICAgbGF1bmNoX2Jyb3dzZXIoMCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJl dHVybiAiaHR0cDovLyIgKyBzZWxmLmFwcF9jb25maWcuREVGQVVMVF9TRVJWRVIgKyAiOiIgXAor ICAgICAgICAgICAgICAgICAgICsgcmFuZG9tX3NlcnZlcl9wb3J0CiAKICAgICBkZWYgc3RvcF9h cHAoc2VsZik6CiAgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHN0b3AgdGhlIHN0YXJ0ZWQgYXBw IGJ5IGtpbGxpbmcgcHJvY2VzcyAiIiIKLSAgICAgICAgc2VsZi5kcml2ZXIucXVpdCgpCisgICAg ICAgIGlmIHNlbGYuZHJpdmVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5kcml2ZXIu cXVpdCgpCiAgICAgICAgICMgb3Mua2lsbHBnIHN1cHBvcnRlZCBpbiBNYWMgYW5kIFVuaXggYXMg dGhpcyBmdW5jdGlvbiBub3Qgc3VwcG9ydGVkIGluCiAgICAgICAgICMgV2luZG93cwogICAgICAg ICB0cnk6CmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3V0aWxzL2xvY2F0b3Jz LnB5IGIvd2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV91dGlscy9sb2NhdG9ycy5weQppbmRleCBiODE2 OWZhLi40NzU2MjMxIDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3V0aWxzL2xv Y2F0b3JzLnB5CisrKyBiL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdXRpbHMvbG9jYXRvcnMucHkK QEAgLTE3Miw2ICsxNzIsOCBAQCBjbGFzcyBRdWVyeVRvb2xMb2NhdG9yczoKIAogICAgIG5ld19y b3dfeHBhdGggPSAiLy9kaXZbY29udGFpbnMoQGNsYXNzLCAnbmV3LXJvdycpXSIKIAorICAgIHNj cmF0Y2hfcGFkX2NzcyA9ICIuc3FsLXNjcmF0Y2ggPiB0ZXh0YXJlYSIKKwogICAgIGNvcHlfYnV0 dG9uX2NzcyA9ICIjYnRuLWNvcHktcm93IgogCiAgICAgcGFzdGVfYnV0dG9uX2NzcyA9ICIjYnRu LXBhc3RlLXJvdyIKQEAgLTIxNyw5ICsyMTksOSBAQCBjbGFzcyBRdWVyeVRvb2xMb2NhdG9yczoK ICAgICBidG5fY29tbWl0ID0gIiNidG4tY29tbWl0IgogCiAgICAgc2hvd19xdWVyeV9pbnRlcm5h bGx5X2J0biA9IFwKLSAgICAgICAgIi8vZGl2W2xhYmVsW25vcm1hbGl6ZS1zcGFjZSgiIFwKLSAg ICAgICAgInRleHQoKSk9J1Nob3cgcXVlcmllcyBnZW5lcmF0ZWQgaW50ZXJuYWxseSBieSBwZ0Fk bWluPyddXSIgXAotICAgICAgICAiLy9kaXZbY29udGFpbnMoQGNsYXNzLCd0b2dnbGUgYnRuJyld IgorICAgICAgICAiLy9kaXZbbGFiZWxbY29udGFpbnMobm9ybWFsaXplLXNwYWNlKHRleHQoKSks IiBcCisgICAgICAgICInU2hvdyBxdWVyaWVzIGdlbmVyYXRlZCBpbnRlcm5hbGx5IGJ5JyldXS8v IiBcCisgICAgICAgICJkaXZbY29udGFpbnMoQGNsYXNzLCd0b2dnbGUgYnRuJyldIgogCiAgICAg ZWRpdGFibGVfY29sdW1uX2ljb25feHBhdGggPSAiLy9kaXZbY29udGFpbnMoQGNsYXNzLCIgXAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAnZWRpdGFibGUtY29sdW1uLWhlYWRl ci1pY29uJyldIiBcCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3V0aWxzL3Bn YWRtaW5fcGFnZS5weSBiL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdXRpbHMvcGdhZG1pbl9wYWdl LnB5CmluZGV4IGQ3ZThmZTMuLjk4YzE4MjYgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL2Zl YXR1cmVfdXRpbHMvcGdhZG1pbl9wYWdlLnB5CisrKyBiL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVf dXRpbHMvcGdhZG1pbl9wYWdlLnB5CkBAIC04OCwxMSArODgsMTcgQEAgY2xhc3MgUGdhZG1pblBh Z2U6CiAgICAgICAgICAgICAoQnkuQ1NTX1NFTEVDVE9SLCAiYnV0dG9uW3R5cGU9J3NhdmUnXS5i dG4uYnRuLXByaW1hcnkiKSkpCiAgICAgICAgIHNlbGYuZmluZF9ieV9jc3Nfc2VsZWN0b3IoImJ1 dHRvblt0eXBlPSdzYXZlJ10uYnRuLmJ0bi1wcmltYXJ5IikuXAogICAgICAgICAgICAgY2xpY2so KQotCi0gICAgICAgIFdlYkRyaXZlcldhaXQoc2VsZi5kcml2ZXIsIDEwKS51bnRpbCgKLSAgICAg ICAgICAgIEVDLnZpc2liaWxpdHlfb2ZfZWxlbWVudF9sb2NhdGVkKAotICAgICAgICAgICAgICAg IChCeS5YUEFUSCwKLSAgICAgICAgICAgICAgICAgIi8vKltAaWQ9J3RyZWUnXS8vKlsuPSciICsg c2VydmVyX2NvbmZpZ1snbmFtZSddICsgIiddIikpKQorICAgICAgICB0cnk6CisgICAgICAgICAg ICBXZWJEcml2ZXJXYWl0KHNlbGYuZHJpdmVyLCAxMCkudW50aWwoCisgICAgICAgICAgICAgICAg RUMudmlzaWJpbGl0eV9vZl9lbGVtZW50X2xvY2F0ZWQoCisgICAgICAgICAgICAgICAgICAgIChC eS5YUEFUSCwKKyAgICAgICAgICAgICAgICAgICAgICIvLypbQGlkPSd0cmVlJ10vLypbLj0nIiAr IHNlcnZlcl9jb25maWdbJ25hbWUnXSArICInXSIpKSkKKyAgICAgICAgZXhjZXB0IFRpbWVvdXRF eGNlcHRpb246CisgICAgICAgICAgICBzZWxmLnRvZ2dsZV9vcGVuX3NlcnZlcnNfZ3JvdXAoKQor ICAgICAgICAgICAgV2ViRHJpdmVyV2FpdChzZWxmLmRyaXZlciwgMTApLnVudGlsKAorICAgICAg ICAgICAgICAgIEVDLnZpc2liaWxpdHlfb2ZfZWxlbWVudF9sb2NhdGVkKAorICAgICAgICAgICAg ICAgICAgICAoQnkuWFBBVEgsCisgICAgICAgICAgICAgICAgICAgICAiLy8qW0BpZD0ndHJlZSdd Ly8qWy49JyIgKyBzZXJ2ZXJfY29uZmlnWyduYW1lJ10gKyAiJ10iKSkpCiAKICAgICBkZWYgb3Bl bl9xdWVyeV90b29sKHNlbGYpOgogICAgICAgICBzZWxmLmRyaXZlci5maW5kX2VsZW1lbnRfYnlf bGlua190ZXh0KCJUb29scyIpLmNsaWNrKCkKQEAgLTkxMCw3ICs5MTYsMTEgQEAgY2xhc3MgUGdh ZG1pblBhZ2U6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50CiAgICAgICAgICAg ICBleGNlcHQgKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24sIFdlYkRyaXZlckV4Y2VwdGlvbik6CiAg ICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KKyAgICAgICAgdGltZS5zbGVlcCgxKQorICAg ICAgICBzZWxmLmRyaXZlci5zd2l0Y2hfdG8uZGVmYXVsdF9jb250ZW50KCkKKyAgICAgICAgc2Vs Zi5kcml2ZXIuc3dpdGNoX3RvX2ZyYW1lKAorICAgICAgICAgICAgc2VsZi5kcml2ZXIuZmluZF9l bGVtZW50X2J5X3RhZ19uYW1lKCJpZnJhbWUiKSkKKyAgICAgICAgc2VsZi5maW5kX2J5X3hwYXRo KCIvL2FbdGV4dCgpPSdRdWVyeSBFZGl0b3InXSIpLmNsaWNrKCkKICAgICAgICAgY29kZW1pcnJv cl9lbGUgPSBXZWJEcml2ZXJXYWl0KAogICAgICAgICAgICAgc2VsZi5kcml2ZXIsIHRpbWVvdXQ9 c2VsZi50aW1lb3V0LCBwb2xsX2ZyZXF1ZW5jeT0wLjAxKVwKICAgICAgICAgICAgIC51bnRpbChm aW5kX2NvZGVtaXJyb3IsCkBAIC0xMTYxLDMgKzExNzEsMjMgQEAgY2xhc3MgUGdhZG1pblBhZ2U6 CiAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAgICAgICAgIGF0dGVtcHQg Kz0gMQogICAgICAgICByZXR1cm4gY2xpY2tfc3RhdHVzCisKKyAgICBkZWYgcGFzdGVfdmFsdWVz KHNlbGYsIGVsPU5vbmUpOgorICAgICAgICBhY3Rpb25zID0gQWN0aW9uQ2hhaW5zKHNlbGYuZHJp dmVyKQorICAgICAgICBpZiBlbDoKKyAgICAgICAgICAgIGVsLmNsaWNrKCkKKyAgICAgICAgICAg IGFjdGlvbnMua2V5X2Rvd24oS2V5cy5TSElGVCkKKyAgICAgICAgICAgIGFjdGlvbnMuc2VuZF9r ZXlzKEtleXMuSU5TRVJUKQorICAgICAgICAgICAgYWN0aW9ucy5rZXlfdXAoS2V5cy5TSElGVCkK KyAgICAgICAgICAgIGFjdGlvbnMucGVyZm9ybSgpCisKKyAgICBkZWYgd2FpdF9mb3JfZWxlbWVu dF90b19iZV92aXNpYmxlKHNlbGYsIGRyaXZlciwgeHBhdGgsIHRpbWVfdmFsdWU9MjApOgorICAg ICAgICAiIiJUaGlzIHdpbGwgd2FpdCB1bnRpbCBhbiBlbGVtZW50IGlzIHZpc2libGUgb24gcGFn ZSIiIgorICAgICAgICBlbGVtZW50X2xvY2F0ZWRfc3RhdHVzID0gRmFsc2UKKyAgICAgICAgdHJ5 OgorICAgICAgICAgICAgaWYgV2ViRHJpdmVyV2FpdChkcml2ZXIsIHRpbWVfdmFsdWUpLnVudGls KAorICAgICAgICAgICAgICAgIEVDLnZpc2liaWxpdHlfb2ZfZWxlbWVudF9sb2NhdGVkKChCeS5Y UEFUSCwgeHBhdGgpKSk6CisgICAgICAgICAgICAgICAgZWxlbWVudF9sb2NhdGVkX3N0YXR1cyA9 IFRydWUKKyAgICAgICAgZXhjZXB0IFRpbWVvdXRFeGNlcHRpb246CisgICAgICAgICAgICBlbGVt ZW50X2xvY2F0ZWRfc3RhdHVzID0gRmFsc2UKKyAgICAgICAgcmV0dXJuIGVsZW1lbnRfbG9jYXRl ZF9zdGF0dXMKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL3B5dGhvbl90ZXN0X3V0aWxzL3Rl c3RfdXRpbHMucHkgYi93ZWIvcmVncmVzc2lvbi9weXRob25fdGVzdF91dGlscy90ZXN0X3V0aWxz LnB5CmluZGV4IDk3MWZjMjQuLmU5NGE4YjkgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL3B5 dGhvbl90ZXN0X3V0aWxzL3Rlc3RfdXRpbHMucHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24vcHl0aG9u X3Rlc3RfdXRpbHMvdGVzdF91dGlscy5weQpAQCAtOCw2ICs4LDggQEAKICMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCiAKIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IGZp bGVpbnB1dAogaW1wb3J0IHRyYWNlYmFjawogaW1wb3J0IG9zCiBpbXBvcnQgc3lzCkBAIC0xNiw3 ICsxOCwxNyBAQCBpbXBvcnQgcHN5Y29wZzIKIGltcG9ydCBzcWxpdGUzCiBpbXBvcnQgc2h1dGls CiBmcm9tIGZ1bmN0b29scyBpbXBvcnQgcGFydGlhbAorCitmcm9tIHNlbGVuaXVtLndlYmRyaXZl ci5zdXBwb3J0LndhaXQgaW1wb3J0IFdlYkRyaXZlcldhaXQKIGZyb20gdGVzdHRvb2xzLnRlc3Rj YXNlIGltcG9ydCBjbG9uZV90ZXN0X3dpdGhfbmV3X2lkCitpbXBvcnQgcmUKK2ltcG9ydCB0aW1l Citmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBXZWJEcml2ZXJFeGNlcHRp b24KK2ltcG9ydCB1cmxsaWIucmVxdWVzdCBhcyB1cmxsaWIKK2ltcG9ydCBqc29uCitmcm9tIHNl bGVuaXVtIGltcG9ydCB3ZWJkcml2ZXIKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNocm9tZS5v cHRpb25zIGltcG9ydCBPcHRpb25zCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0IGlt cG9ydCBleHBlY3RlZF9jb25kaXRpb25zIGFzIGVjCiAKIGltcG9ydCBjb25maWcKIGltcG9ydCBy ZWdyZXNzaW9uCkBAIC0xMjE2LDMgKzEyMjgsMjQ3IEBAIGRlZiBjcmVhdGVfZXhwZWN0ZWRfb3V0 cHV0KHBhcmFtZXRlcnMsIGFjdHVhbF9kYXRhKToKICAgICAgICAgICAgIGFjdHVhbF9kYXRhLnJl bW92ZSh2YWx1ZSkKICAgICAgICAgICAgIGJyZWFrCiAgICAgcmV0dXJuIGV4cGVjdGVkX291dHB1 dAorCisKK2RlZiBpc19wYXJhbGxlbF91aV90ZXN0cyhhcmdzKToKKyAgICAiIiIKKyAgICBUaGlz IGZ1bmN0aW9uIGNoZWNrcyBmb3IgY292ZXJhZ2UgYXJncyBleGlzdHMgaW4gY29tbWFuZCBsaW5l IGFyZ3MKKyAgICA6cmV0dXJuOiBib29sZWFuCisgICAgIiIiCisgICAgaWYgInBhcmFsbGVsIiBp biBhcmdzIGFuZCBhcmdzWyJwYXJhbGxlbCJdOgorICAgICAgICByZXR1cm4gVHJ1ZQorICAgIHJl dHVybiBGYWxzZQorCisKK2RlZiBnZXRfc2VsZW5pdW1fZ3JpZF9zdGF0dXNfYW5kX2Jyb3dzZXJf bGlzdChzZWxybm9pZF91cmwpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gY2hlY2tzIHNl bGVub2lkIHN0YXR1cyBmb3IgZ2l2ZW4gdXJsCisgICAgOnBhcmFtIHNlbHJub2lkX3VybDoKKyAg ICA6cmV0dXJuOiBzdGF0dXMgb2Ygc2VsZW5vaWQgJiBsaXN0IG9mIGJyb3dzZXJzIGF2YWlsYWJs ZSB3aXRoIHNlbGVub2lkIGlmCisgICAgc3RhdHVzIGlzIHVwCisgICAgIiIiCisgICAgc2VsZW5v aWRfc3RhdHVzID0gRmFsc2UKKyAgICBicm93c2VyX2xpc3QgPSBbXQorICAgIHRyeToKKyAgICAg ICAgc2VsZW5vaWRfc3RhdHVzID0gZ2V0X3NlbGVuaXVtX2dyaWRfc3RhdHVzX2pzb24oc2Vscm5v aWRfdXJsKQorCisgICAgICAgICMgc2VsZW5vaWRfc3RhdHVzID0gdXJsbGliLnVybG9wZW4oCisg ICAgICAgICMgICAgICJodHRwOi8vIiArIHJlLnNwbGl0KCcvJywgKHJlLnNwbGl0KCcvLycsIHNl bHJub2lkX3VybCwgMSlbMV0pKVsKKyAgICAgICAgIyAgICAgICAgIDBdICsgIi9zdGF0dXMiLCB0 aW1lb3V0PTEwKQorICAgICAgICAjIHNlbGVub2lkX3N0YXR1cyA9IGpzb24ubG9hZChzZWxlbm9p ZF9zdGF0dXMpCisgICAgICAgICMgaWYgaXNpbnN0YW5jZShzZWxlbm9pZF9zdGF0dXMsIGRpY3Qp OgorICAgICAgICAjICAgICBhdmFpbGFibGVfYnJvd3NlcnMgPSBzZWxlbm9pZF9zdGF0dXNbImJy b3dzZXJzIl0KKyAgICAgICAgIyAgICAgc2VsZW5vaWRfc3RhdHVzID0gVHJ1ZQorCisgICAgICAg IGlmIHNlbGVub2lkX3N0YXR1czoKKyAgICAgICAgICAgIGF2YWlsYWJsZV9icm93c2VycyA9IHNl bGVub2lkX3N0YXR1c1siYnJvd3NlcnMiXQorICAgICAgICAgICAgbGlzdF9vZl9icm93c2VycyA9 IHRlc3Rfc2V0dXAuY29uZmlnX2RhdGFbJ3NlbGVub2lkX2luZm8nXVsKKyAgICAgICAgICAgICAg ICAnY3Jvc3NfQnJvd3NlcnMnXQorCisgICAgICAgICAgICBmb3IgYnJvd3NlciBpbiBsaXN0X29m X2Jyb3dzZXJzOgorICAgICAgICAgICAgICAgIGlmIGJyb3dzZXJbIm5hbWUiXS5sb3dlcigpIGlu IGF2YWlsYWJsZV9icm93c2Vycy5rZXlzKCk6CisgICAgICAgICAgICAgICAgICAgIHZlcnNpb25z ID0gYXZhaWxhYmxlX2Jyb3dzZXJzWyhicm93c2VyWyJuYW1lIl0ubG93ZXIoKSldCisgICAgICAg ICAgICAgICAgICAgIGlmIGJyb3dzZXJbInZlcnNpb24iXSBpcyBOb25lOgorICAgICAgICAgICAg ICAgICAgICAgICAgcHJpbnQoIlNwZWNpZmllZCB2ZXJzaW9uIGlzIE5vbmUuIEhlbmNlIHdpbGwg dXNlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsYXRlc3QgdmVyc2lvbiBhdmFp bGFibGUgd2l0aCBzZWxlbm9pZCBzZXJ2ZXIiKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJv d3Nlcl9saXN0LmFwcGVuZChicm93c2VyKQorICAgICAgICAgICAgICAgICAgICBlbGlmIGJyb3dz ZXJbInZlcnNpb24iXSBpbiB2ZXJzaW9ucy5rZXlzKCk6CisgICAgICAgICAgICAgICAgICAgICAg ICBicm93c2VyX2xpc3QuYXBwZW5kKGJyb3dzZXIpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiQXZhaWxhYmxlIHswfSB2ZXJzaW9ucyB7MX0iLmZvcm1hdCgKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYnJvd3NlclsibmFtZSJdLCB2ZXJzaW9ucy5rZXlzKCkpKQorICAg ICAgICAgICAgICAgICAgICAgICAgcHJpbnQoIlNwZWNpZmllZCBWZXJzaW9uID0gezB9Ii5mb3Jt YXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3NlclsidmVyc2lvbiJdKSkKKyAg ICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBwcmludCgiezB9IGlzIE5P VCBhdmFpbGFibGUiLmZvcm1hdChicm93c2VyWyJuYW1lIl0pKQorICAgIGV4Y2VwdCBFeGNlcHRp b24gYXMgZToKKyAgICAgICAgcHJpbnQoc3RyKGUpKQorICAgICAgICBwcmludCgiVW5hYmxlIHRv IGZpbmQgU2VsZW5vaWQgU3RhdHVzIikKKworICAgIHJldHVybiBzZWxlbm9pZF9zdGF0dXMsIGJy b3dzZXJfbGlzdAorCisKK2RlZiBpc19mZWF0dXJlX3Rlc3RfaW5jbHVkZWQoYXJndW1lbnRzKToK KyAgICAiIiIKKyAgICA6cGFyYW0gYXJndW1lbnRzOiBoaXMgaXMgY29tbWFuZCBsaW5lIGFyZ3Vt ZW50cyBmb3IgbW9kdWxlIG5hbWUgdG8KKyAgICB3aGljaCB0ZXN0IHN1aXRlIHdpbGwgcnVuCisg ICAgOnJldHVybjogYm9vbGVhbiB2YWx1ZSB3aGV0aGVyIHRvIGV4ZWN1dGUgZmVhdHVyZSB0ZXN0 cyBvciBOT1QgJgorICAgIGJyb3dzZXIgbmFtZSBpZiBmZWF0dXJlX3Rlc3RfdG9iZV9pbmNsdWRl ZCA9IFRydWUKKyAgICAiIiIKKyAgICBleGNsdWRlX3BrZ3MgPSBbXQorICAgIGlmIGFyZ3VtZW50 c1snZXhjbHVkZSddIGlzIG5vdCBOb25lOgorICAgICAgICBleGNsdWRlX3BrZ3MgKz0gYXJndW1l bnRzWydleGNsdWRlJ10uc3BsaXQoJywnKQorCisgICAgZmVhdHVyZV90ZXN0X3RvYmVfaW5jbHVk ZWQgPSAnZmVhdHVyZV90ZXN0cycgbm90IGluIGV4Y2x1ZGVfcGtncyBhbmQgXAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGFyZ3VtZW50c1sncGtnJ10gaXMgTm9uZSBvciBhcmd1 bWVudHNbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BrZyddID09ICJh bGwiIG9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzWydwa2cn XSA9PSAiZmVhdHVyZV90ZXN0cyIpCisgICAgcmV0dXJuIGZlYXR1cmVfdGVzdF90b2JlX2luY2x1 ZGVkCisKKworZGVmIGxhdW5jaF91cmxfaW5fYnJvd3Nlcihkcml2ZXJfaW5zdGFuY2UsIHVybCwg dGl0bGU9J3BnQWRtaW4gNCcsIHRpbWVvdXQ9NDApOgorICAgICIiIgorICAgIEZ1bmN0aW9uIGxh dW5jaGVzIHVybHMgaW4gc3BlY2lmaWVkIGRyaXZlciBpbnN0YW5jZQorICAgIDpwYXJhbSBkcml2 ZXJfaW5zdGFuY2U6YnJvd3NlciBpbnN0YW5jZQorICAgIDpwYXJhbSB1cmw6dXJsIHRvIGJlIGxh dW5jaGVkCisgICAgOnBhcmFtIHRpdGxlOndlYi1wYWdlIHRpbGUgb24gc3VjY2Vzc2Z1bCBsYXVu Y2ggZGVmYXVsdCBpcyAncGdBZG1pbiA0JworICAgIDpwYXJhbSB0aW1lb3V0OmluIHNlY29uZHMg Zm9yIGdldHRpbmcgc3BlY2lmaWVkIHRpdGxlIGRlZmF1bHQgaXMgMjBzZWMKKyAgICA6cmV0dXJu OgorICAgICIiIgorICAgIGNvdW50ID0gdGltZW91dCAvIDEwCisgICAgd2hpbGUgY291bnQgPiAw OgorICAgICAgICB0cnk6CisgICAgICAgICAgICBkcml2ZXJfaW5zdGFuY2UuZ2V0KHVybCkKKyAg ICAgICAgICAgIHdhaXQgPSBXZWJEcml2ZXJXYWl0KGRyaXZlcl9pbnN0YW5jZSwgMTApCisgICAg ICAgICAgICB3YWl0LnVudGlsKGVjLnRpdGxlX2lzKHRpdGxlKSkKKyAgICAgICAgICAgIGJyZWFr CisgICAgICAgIGV4Y2VwdCBXZWJEcml2ZXJFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIGNv dW50IC09IDEKKyAgICAgICAgICAgIGlmIGNvdW50ID09IDA6CisgICAgICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAnV2ViLXBhZ2UgdGl0bGUgZGlkIG5v dCBtYXRjaCB0byB7MH0gXG4nLmZvcm1hdCh0aXRsZSkpCisKKworZGVmIGdldF9yZW1vdGVfd2Vi ZHJpdmVyKGh1Yl91cmwsIGJyb3dzZXIsIGJyb3dzZXJfdmVyLCB0ZXN0X25hbWUpOgorICAgICIi IgorICAgIFRoaXMgZnVuY3Rpb25zIHJldHVybnMgcmVtb3RlIHdlYi1kcml2ZXIgaW5zdGFuY2Ug Y3JlYXRlZCBpbiBzZWxlbm9pZAorICAgIG1hY2hpbmUuCisgICAgOnBhcmFtIGh1Yl91cmwKKyAg ICA6cGFyYW0gYnJvd3NlcjogYnJvd3NlciBuYW1lCisgICAgOnBhcmFtIGJyb3dzZXJfdmVyOiB2 ZXJzaW9uIGZvciBicm93c2VyCisgICAgOnBhcmFtIHRlc3RfbmFtZTogdGVzdCBuYW1lCisgICAg OnJldHVybjogcmVtb3RlIHdlYi1kcml2ZXIgaW5zdGFuY2UgZm9yIHNwZWNpZmllZCBicm93c2Vy CisgICAgIiIiCisgICAgdGVzdF9uYW1lID0gYnJvd3NlciArIGJyb3dzZXJfdmVyICsgIl8iICsg dGVzdF9uYW1lICsgIi0iICsgdGltZS5zdHJmdGltZSgKKyAgICAgICAgIiVtXyVkXyV5XyVIXyVN XyVTIiwgdGltZS5sb2NhbHRpbWUoKSkKKyAgICBkcml2ZXJfbG9jYWwgPSBOb25lCisKKyAgICBk ZXNpcmVkX2NhcGFiaWxpdGllcyA9IHsKKyAgICAgICAgInZlcnNpb24iOiBicm93c2VyX3ZlciwK KyAgICAgICAgImVuYWJsZVZOQyI6IFRydWUsCisgICAgICAgICJlbmFibGVWaWRlbyI6IFRydWUs CisgICAgICAgICJlbmFibGVMb2ciOiBUcnVlLAorICAgICAgICAidmlkZW9OYW1lIjogdGVzdF9u YW1lICsgIi5tcDQiLAorICAgICAgICAibG9nTmFtZSI6IHRlc3RfbmFtZSArICIubG9nIiwKKyAg ICAgICAgIm5hbWUiOiB0ZXN0X25hbWUsCisgICAgICAgICJ0aW1lWm9uZSI6ICJBc2lhL0tvbGth dGEiCisgICAgfQorCisgICAgaWYgYnJvd3NlciA9PSAnZmlyZWZveCc6CisgICAgICAgIHByb2Zp bGUgPSB3ZWJkcml2ZXIuRmlyZWZveFByb2ZpbGUoKQorICAgICAgICBwcm9maWxlLnNldF9wcmVm ZXJlbmNlKCJkb20uZGlzYWJsZV9iZWZvcmV1bmxvYWQiLCBUcnVlKQorICAgICAgICBkZXNpcmVk X2NhcGFiaWxpdGllc1siYnJvd3Nlck5hbWUiXSA9ICJmaXJlZm94IgorICAgICAgICBkZXNpcmVk X2NhcGFiaWxpdGllc1sicmVxdWlyZVdpbmRvd0ZvY3VzIl0gPSBUcnVlCisgICAgICAgIGRlc2ly ZWRfY2FwYWJpbGl0aWVzWyJlbmFibGVQZXJzaXN0ZW50SG92ZXIiXSA9IEZhbHNlCisgICAgICAg IGRyaXZlcl9sb2NhbCA9IHdlYmRyaXZlci5SZW1vdGUoCisgICAgICAgICAgICBjb21tYW5kX2V4 ZWN1dG9yPWh1Yl91cmwsCisgICAgICAgICAgICBkZXNpcmVkX2NhcGFiaWxpdGllcz1kZXNpcmVk X2NhcGFiaWxpdGllcywgYnJvd3Nlcl9wcm9maWxlPXByb2ZpbGUpCisgICAgZWxpZiBicm93c2Vy ID09ICdjaHJvbWUnOgorICAgICAgICBvcHRpb25zID0gT3B0aW9ucygpCisgICAgICAgIG9wdGlv bnMuYWRkX2FyZ3VtZW50KCItLXdpbmRvdy1zaXplPTEyODAsMTAyNCIpCisgICAgICAgIGRlc2ly ZWRfY2FwYWJpbGl0aWVzWyJicm93c2VyTmFtZSJdID0gImNocm9tZSIKKyAgICAgICAgZHJpdmVy X2xvY2FsID0gd2ViZHJpdmVyLlJlbW90ZSgKKyAgICAgICAgICAgIGNvbW1hbmRfZXhlY3V0b3I9 aHViX3VybCwKKyAgICAgICAgICAgIGRlc2lyZWRfY2FwYWJpbGl0aWVzPWRlc2lyZWRfY2FwYWJp bGl0aWVzLCBvcHRpb25zPW9wdGlvbnMpCisgICAgZWxzZToKKyAgICAgICAgcHJpbnQoIlNwZWNp ZmllZCBicm93c2VyIGRvZXMgbm90IGV4aXN0LiIpCisKKyAgICAjIG1heGltaXplIGJyb3dzZXIg d2luZG93CisgICAgZHJpdmVyX2xvY2FsLm1heGltaXplX3dpbmRvdygpCisKKyAgICAjIGRyaXZl cl9sb2NhbC5pbXBsaWNpdGx5X3dhaXQoMikKKyAgICByZXR1cm4gZHJpdmVyX2xvY2FsCisKKwor ZGVmIGdldF9wYXJhbGxlbF9zZXF1ZW50aWFsX21vZHVsZV9saXN0KG1vZHVsZV9saXN0KToKKyAg ICAiIiIKKyAgICBGdW5jdGlvbnMgc2VncmVnYXRlIHBhcmFsbGVsICYgc2VxdWVudGlhbCBtb2R1 bGVzCisgICAgOnBhcmFtIG1vZHVsZV9saXN0OiBDb21wbGV0ZSBsaXN0IG9mIG1vZHVsZXMKKyAg ICA6cmV0dXJuOiBwYXJhbGxlbCAmIHNlcXVlbnRpYWwgbW9kdWxlIGxpc3RzCisgICAgIiIiCisg ICAgIyBsaXN0IG9mIGZpbGVzIGNvbnNpc3RpbmcgdGVzdHMgdGhhdCBuZWVkcyB0byBiZQorICAg ICMgZXhlY3V0ZWQgc2VxdWVudGlhbGx5CisgICAgc2VxdWVudGlhbF90ZXN0c19maWxlID0gWwor ICAgICAgICAncGdhZG1pbi5mZWF0dXJlX3Rlc3RzLnBnX3V0aWxpdGllc19iYWNrdXBfcmVzdG9y ZV90ZXN0JywKKyAgICAgICAgJ3BnYWRtaW4uZmVhdHVyZV90ZXN0cy5wZ191dGlsaXRpZXNfbWFp bnRlbmFuY2VfdGVzdCcsCisgICAgICAgICdwZ2FkbWluLmZlYXR1cmVfdGVzdHMua2V5Ym9hcmRf c2hvcnRjdXRfdGVzdCddCisKKyAgICAjICBsaXN0IG9mIHRlc3RzIGNhbiBiZSBleGVjdXRlZCBp biBwYXJhbGxlbAorICAgIHBhcmFsbGVsX3Rlc3RzID0gbGlzdChtb2R1bGVfbGlzdCkKKyAgICBm b3IgbW9kdWxlIGluIG1vZHVsZV9saXN0OgorICAgICAgICBpZiBzdHIobW9kdWxlWzBdKSBpbiBz ZXF1ZW50aWFsX3Rlc3RzX2ZpbGU6CisgICAgICAgICAgICBwYXJhbGxlbF90ZXN0cy5yZW1vdmUo bW9kdWxlKQorCisgICAgIyAgbGlzdCBvZiB0ZXN0cyBjYW4gYmUgZXhlY3V0ZWQgaW4gc2VxdWVu dGlhbGx5CisgICAgc2VxdWVudGlhbF90ZXN0cyA9IGxpc3QoCisgICAgICAgIGZpbHRlcihsYW1i ZGEgaTogaSBub3QgaW4gcGFyYWxsZWxfdGVzdHMsCisgICAgICAgICAgICAgICBtb2R1bGVfbGlz dCkpCisKKyAgICAjIHJldHVybiBwYXJhbGxlbCAmIHNlcXVlbnRpYWwgbGlzdHMKKyAgICByZXR1 cm4gcGFyYWxsZWxfdGVzdHMsIHNlcXVlbnRpYWxfdGVzdHMKKworCitkZWYgZ2V0X2Jyb3dzZXJf ZGV0YWlscyhicm93c2VyX2luZm9fZGljdCwgdXJsKToKKyAgICAiIiIKKyAgICBGdW5jdGlvbiBl eHRyYWN0cyBicm93c2VyIG5hbWUgJiB2ZXJzaW9uIGZyb20gYnJvd3NlciBpbmZvIGRpY3QKKyAg ICBpbiB0ZXN0X2NvbmZpZy5qc29uCisgICAgOnBhcmFtIGJyb3dzZXJfaW5mb19kaWN0OgorICAg IDpyZXR1cm46IGJyb3dzZXIgbmFtZSAmIHZlcnNpb24KKyAgICAiIiIKKyAgICBicm93c2VyX25h bWUgPSBicm93c2VyX2luZm9fZGljdFsibmFtZSJdLmxvd2VyKCkKKyAgICBicm93c2VyX3ZlcnNp b24gPSBicm93c2VyX2luZm9fZGljdFsidmVyc2lvbiJdCisgICAgaWYgYnJvd3Nlcl92ZXJzaW9u IGlzIE5vbmU6CisgICAgICAgIHNlbGVub2lkX3N0YXR1cyA9IGdldF9zZWxlbml1bV9ncmlkX3N0 YXR1c19qc29uKHVybCkKKyAgICAgICAgdmVyc2lvbnMgPSBzZWxlbm9pZF9zdGF0dXNbImJyb3dz ZXJzIl1bYnJvd3Nlcl9uYW1lXQorICAgICAgICBicm93c2VyX3ZlcnNpb24gPSBtYXgodmVyc2lv bnMpCisgICAgcmV0dXJuIGJyb3dzZXJfbmFtZSwgYnJvd3Nlcl92ZXJzaW9uCisKKworZGVmIHBy aW50X3Rlc3Rfc3VtbWFyeShjb21wbGV0ZV9tb2R1bGVfbGlzdCwgcGFyYWxsZWxfdGVzdGxpc3Qs CisgICAgICAgICAgICAgICAgICAgICAgIHNlcXVlbnRpYWxfdGVzdHNfbGlzdCwgYnJvd3Nlcl9u YW1lLCBicm93c2VyX3ZlcnNpb24pOgorICAgICIiIgorICAgIFByaW50cyB0ZXN0IHN1bW1hcnkg YWJvdXQgdG90YWwsIHBhcmFsbGVsLCBzZXF1ZW50aWFsLCBicm93c2VyIG5hbWUsCisgICAgYnJv d3NlciB2ZXJzaW9uIGluZm9ybWF0aW9uCisgICAgOnBhcmFtIGNvbXBsZXRlX21vZHVsZV9saXN0 OgorICAgIDpwYXJhbSBwYXJhbGxlbF90ZXN0bGlzdDoKKyAgICA6cGFyYW0gc2VxdWVudGlhbF90 ZXN0c19saXN0OgorICAgIDpwYXJhbSBicm93c2VyX25hbWU6CisgICAgOnBhcmFtIGJyb3dzZXJf dmVyc2lvbjoKKyAgICAiIiIKKyAgICBwcmludCgKKyAgICAgICAgIj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IiwKKyAgICAg ICAgZmlsZT1zeXMuc3RkZXJyCisgICAgKQorICAgIHByaW50KAorICAgICAgICAiVG90YWwgVGVz dHMgIyB7MH1cblBhcmFsbGVsIFRlc3RzICMgezF9LCAiCisgICAgICAgICJTZXF1ZW50aWFsIFRl c3RzICMgezJ9Ii5mb3JtYXQoCisgICAgICAgICAgICBsZW4oY29tcGxldGVfbW9kdWxlX2xpc3Qp LCBsZW4ocGFyYWxsZWxfdGVzdGxpc3QpLAorICAgICAgICAgICAgbGVuKHNlcXVlbnRpYWxfdGVz dHNfbGlzdCkpLAorICAgICAgICBmaWxlPXN5cy5zdGRlcnIpCisgICAgcHJpbnQoIkJyb3dzZXI6 IFtOYW1lOnswfSwgVmVyc2lvbjogezF9XSIuZm9ybWF0KAorICAgICAgICBicm93c2VyX25hbWUu Y2FwaXRhbGl6ZSgpLCBicm93c2VyX3ZlcnNpb24pLAorICAgICAgICBmaWxlPXN5cy5zdGRlcnIp CisgICAgcHJpbnQoCisgICAgICAgICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIiwKKyAgICAgICAgZmlsZT1zeXMuc3Rk ZXJyCisgICAgKQorCisKK2RlZiBnZXRfc2VsZW5pdW1fZ3JpZF9zdGF0dXNfanNvbihzZWxlbm9p ZF91cmwpOgorICAgICIiIgorICAgIEZ1bmN0aW9ucyByZXR1cm5zIGpzb24gcmVzcG9uc2UgcmVj ZWl2ZWQgZnJvbSBzZWxlbm9pZCBzZXJ2ZXIKKyAgICA6cGFyYW0gc2VsZW5vaWRfdXJsOgorICAg IDpyZXR1cm46CisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICBzZWxlbm9pZF9zdGF0dXMgPSB1 cmxsaWIudXJsb3BlbigKKyAgICAgICAgICAgICJodHRwOi8vIiArIHJlLnNwbGl0KCcvJywgKHJl LnNwbGl0KCcvLycsIHNlbGVub2lkX3VybCwgMSlbMV0pKVsKKyAgICAgICAgICAgICAgICAwXSAr ICIvc3RhdHVzIiwgdGltZW91dD0xMCkKKyAgICAgICAgc2VsZW5vaWRfc3RhdHVzID0ganNvbi5s b2FkKHNlbGVub2lkX3N0YXR1cykKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxlbm9pZF9zdGF0 dXMsIGRpY3QpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGVub2lkX3N0YXR1cworICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgcHJpbnQoc3RyKGUpKQorICAgICAgICBwcmludCgi VW5hYmxlIHRvIGZpbmQgU2VsZW5vaWQgU3RhdHVzIikKKyAgICAgICAgcmV0dXJuIE5vbmUKZGlm ZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL3J1bnRlc3RzLnB5IGIvd2ViL3JlZ3Jlc3Npb24vcnVu dGVzdHMucHkKaW5kZXggZmNmNzNhOC4uMjFjM2JhYSAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Np b24vcnVudGVzdHMucHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24vcnVudGVzdHMucHkKQEAgLTIxLDcg KzIxLDggQEAgaW1wb3J0IHRyYWNlYmFjawogaW1wb3J0IGpzb24KIGltcG9ydCByYW5kb20KIGlt cG9ydCBjb3ZlcmFnZQotCitpbXBvcnQgdGhyZWFkaW5nCitpbXBvcnQgdGltZQogaW1wb3J0IHVu aXR0ZXN0CiAKIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPj0gMzoKQEAgLTEzNiw3ICsxMzcsNyBA QCBzY2VuYXJpb3MuYXBwbHlfc2NlbmFyaW8gPSB0ZXN0X3V0aWxzLmFwcGx5X3NjZW5hcmlvCiAK IAogZGVmIGdldF9zdWl0ZShtb2R1bGVfbGlzdCwgdGVzdF9zZXJ2ZXIsIHRlc3RfYXBwX2NsaWVu dCwgc2VydmVyX2luZm9ybWF0aW9uLAotICAgICAgICAgICAgICB0ZXN0X2RiX25hbWUpOgorICAg ICAgICAgICAgICB0ZXN0X2RiX25hbWUsIGRyaXZlcl9wYXNzZWQpOgogICAgICIiIgogICAgICBU aGlzIGZ1bmN0aW9uIGFkZCB0aGUgdGVzdHMgdG8gdGVzdCBzdWl0ZSBhbmQgcmV0dXJuIG1vZGlm aWVkIHRlc3Qgc3VpdGUKICAgICAgIHZhcmlhYmxlLgpAQCAtMTY2LDcgKzE2Nyw3IEBAIGRlZiBn ZXRfc3VpdGUobW9kdWxlX2xpc3QsIHRlc3Rfc2VydmVyLCB0ZXN0X2FwcF9jbGllbnQsIHNlcnZl cl9pbmZvcm1hdGlvbiwKICAgICAgICAgb2JqLnNldEFwcChhcHApCiAgICAgICAgIG9iai5zZXRU ZXN0Q2xpZW50KHRlc3RfYXBwX2NsaWVudCkKICAgICAgICAgb2JqLnNldFRlc3RTZXJ2ZXIodGVz dF9zZXJ2ZXIpCi0gICAgICAgIG9iai5zZXREcml2ZXIoZHJpdmVyKQorICAgICAgICBvYmouc2V0 RHJpdmVyKGRyaXZlcl9wYXNzZWQpCiAgICAgICAgIG9iai5zZXRTZXJ2ZXJJbmZvcm1hdGlvbihz ZXJ2ZXJfaW5mb3JtYXRpb24pCiAgICAgICAgIG9iai5zZXRUZXN0RGF0YWJhc2VOYW1lKHRlc3Rf ZGJfbmFtZSkKICAgICAgICAgc2NlbmFyaW8gPSBzY2VuYXJpb3MuZ2VuZXJhdGVfc2NlbmFyaW9z KG9iaikKQEAgLTIwNyw1NyArMjA4LDYyIEBAIGRlZiBnZXRfdGVzdF9tb2R1bGVzKGFyZ3VtZW50 cyk6CiAgICAgICAgIGV4Y2x1ZGVfcGtncyArPSBhcmd1bWVudHNbJ2V4Y2x1ZGUnXS5zcGxpdCgn LCcpCiAKICAgICBpZiAnZmVhdHVyZV90ZXN0cycgbm90IGluIGV4Y2x1ZGVfcGtncyBhbmQgXAot ICAgICAgICAgICAgKGFyZ3VtZW50c1sncGtnJ10gaXMgTm9uZSBvciBhcmd1bWVudHNbJ3BrZydd ID09ICJhbGwiIG9yCi0gICAgICAgICAgICAgYXJndW1lbnRzWydwa2cnXSA9PSAiZmVhdHVyZV90 ZXN0cyIpOgotCi0gICAgICAgIGZyb20gc2VsZW5pdW0gaW1wb3J0IHdlYmRyaXZlcgotICAgICAg ICBmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jaHJvbWUub3B0aW9ucyBpbXBvcnQgT3B0aW9ucwot ICAgICAgICBmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uZGVzaXJlZF9jYXBhYmlsaXRp ZXMgaW1wb3J0IFwKLSAgICAgICAgICAgIERlc2lyZWRDYXBhYmlsaXRpZXMKLQotICAgICAgICBk ZWZhdWx0X2Jyb3dzZXIgPSAnY2hyb21lJwotCi0gICAgICAgICMgQ2hlY2sgZGVmYXVsdCBicm93 c2VyIHByb3ZpZGVkIHRocm91Z2ggY29tbWFuZCBsaW5lLiBJZiBwcm92aWRlZAotICAgICAgICAj IHRoZW4gdXNlIHRoYXQgYnJvd3NlciBhcyBkZWZhdWx0IGJyb3dzZXIgZWxzZSBjaGVjayBmb3Ig dGhlIHNldHRpbmcKLSAgICAgICAgIyBwcm92aWRlZCBpbiB0ZXN0X2NvbmZpZy5qc29uIGZpbGUu Ci0gICAgICAgIGlmICgKLSAgICAgICAgICAgICdkZWZhdWx0X2Jyb3dzZXInIGluIGFyZ3VtZW50 cyBhbmQKLSAgICAgICAgICAgIGFyZ3VtZW50c1snZGVmYXVsdF9icm93c2VyJ10gaXMgbm90IE5v bmUKLSAgICAgICAgKToKLSAgICAgICAgICAgIGRlZmF1bHRfYnJvd3NlciA9IGFyZ3VtZW50c1sn ZGVmYXVsdF9icm93c2VyJ10ubG93ZXIoKQotICAgICAgICBlbGlmICgKLSAgICAgICAgICAgIHRl c3Rfc2V0dXAuY29uZmlnX2RhdGEgYW5kCi0gICAgICAgICAgICAiZGVmYXVsdF9icm93c2VyIiBp biB0ZXN0X3NldHVwLmNvbmZpZ19kYXRhCi0gICAgICAgICk6Ci0gICAgICAgICAgICBkZWZhdWx0 X2Jyb3dzZXIgPSB0ZXN0X3NldHVwLmNvbmZpZ19kYXRhWydkZWZhdWx0X2Jyb3dzZXInXS5sb3dl cigpCi0KLSAgICAgICAgaWYgZGVmYXVsdF9icm93c2VyID09ICdmaXJlZm94JzoKLSAgICAgICAg ICAgIGNhcCA9IERlc2lyZWRDYXBhYmlsaXRpZXMuRklSRUZPWAotICAgICAgICAgICAgY2FwWydy ZXF1aXJlV2luZG93Rm9jdXMnXSA9IFRydWUKLSAgICAgICAgICAgIGNhcFsnZW5hYmxlUGVyc2lz dGVudEhvdmVyJ10gPSBGYWxzZQotICAgICAgICAgICAgcHJvZmlsZSA9IHdlYmRyaXZlci5GaXJl Zm94UHJvZmlsZSgpCi0gICAgICAgICAgICBwcm9maWxlLnNldF9wcmVmZXJlbmNlKCJkb20uZGlz YWJsZV9iZWZvcmV1bmxvYWQiLCBUcnVlKQotICAgICAgICAgICAgZHJpdmVyID0gd2ViZHJpdmVy LkZpcmVmb3goY2FwYWJpbGl0aWVzPWNhcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZpcmVmb3hfcHJvZmlsZT1wcm9maWxlKQotICAgICAgICAgICAgZHJpdmVyLmlt cGxpY2l0bHlfd2FpdCgxKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgb3B0aW9ucyA9IE9w dGlvbnMoKQotICAgICAgICAgICAgaWYgdGVzdF9zZXR1cC5jb25maWdfZGF0YToKLSAgICAgICAg ICAgICAgICBpZiAnaGVhZGxlc3NfY2hyb21lJyBpbiB0ZXN0X3NldHVwLmNvbmZpZ19kYXRhOgot ICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0X3NldHVwLmNvbmZpZ19kYXRhWydoZWFkbGVzc19j aHJvbWUnXToKLSAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuYWRkX2FyZ3VtZW50KCIt LWhlYWRsZXNzIikKLSAgICAgICAgICAgIG9wdGlvbnMuYWRkX2FyZ3VtZW50KCItLW5vLXNhbmRi b3giKQotICAgICAgICAgICAgb3B0aW9ucy5hZGRfYXJndW1lbnQoIi0tZGlzYWJsZS1zZXR1aWQt c2FuZGJveCIpCi0gICAgICAgICAgICBvcHRpb25zLmFkZF9hcmd1bWVudCgiLS13aW5kb3ctc2l6 ZT0xMjgwLDEwMjQiKQotICAgICAgICAgICAgb3B0aW9ucy5hZGRfYXJndW1lbnQoIi0tZGlzYWJs ZS1pbmZvYmFycyIpCi0gICAgICAgICAgICBvcHRpb25zLmFkZF9leHBlcmltZW50YWxfb3B0aW9u KCd3M2MnLCBGYWxzZSkKLSAgICAgICAgICAgIGRyaXZlciA9IHdlYmRyaXZlci5DaHJvbWUoY2hy b21lX29wdGlvbnM9b3B0aW9ucykKLQotICAgICAgICAjIG1heGltaXplIGJyb3dzZXIgd2luZG93 Ci0gICAgICAgIGRyaXZlci5tYXhpbWl6ZV93aW5kb3coKQotCi0gICAgICAgIGFwcF9zdGFydGVy ID0gQXBwU3RhcnRlcihkcml2ZXIsIGNvbmZpZykKLSAgICAgICAgYXBwX3N0YXJ0ZXIuc3RhcnRf YXBwKCkKKyAgICAgICAgKGFyZ3VtZW50c1sncGtnJ10gaXMgTm9uZSBvciBhcmd1bWVudHNbJ3Br ZyddID09ICJhbGwiIG9yCisgICAgICAgICBhcmd1bWVudHNbJ3BrZyddID09ICJmZWF0dXJlX3Rl c3RzIik6CisKKyAgICAgICAgaWYgYXJndW1lbnRzWydwa2cnXSA9PSAiZmVhdHVyZV90ZXN0cyI6 CisgICAgICAgICAgICBleGNsdWRlX3BrZ3MuZXh0ZW5kKFsncmVzcWwnXSkKKworICAgICAgICBp ZiBub3QgdGVzdF91dGlscy5pc19wYXJhbGxlbF91aV90ZXN0cyhhcmdzKToKKyAgICAgICAgICAg IGZyb20gc2VsZW5pdW0gaW1wb3J0IHdlYmRyaXZlcgorICAgICAgICAgICAgZnJvbSBzZWxlbml1 bS53ZWJkcml2ZXIuY2hyb21lLm9wdGlvbnMgaW1wb3J0IE9wdGlvbnMKKyAgICAgICAgICAgIGZy b20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5kZXNpcmVkX2NhcGFiaWxpdGllcyBpbXBvcnQg XAorICAgICAgICAgICAgICAgIERlc2lyZWRDYXBhYmlsaXRpZXMKKworICAgICAgICAgICAgZGVm YXVsdF9icm93c2VyID0gJ2Nocm9tZScKKworICAgICAgICAgICAgIyBDaGVjayBkZWZhdWx0IGJy b3dzZXIgcHJvdmlkZWQgdGhyb3VnaCBjb21tYW5kIGxpbmUuIElmIHByb3ZpZGVkCisgICAgICAg ICAgICAjIHRoZW4gdXNlIHRoYXQgYnJvd3NlciBhcyBkZWZhdWx0IGJyb3dzZXIgZWxzZSBjaGVj ayBmb3IgdGhlCisgICAgICAgICAgICAjIHNldHRpbmcgcHJvdmlkZWQgaW4gdGVzdF9jb25maWcu anNvbiBmaWxlLgorICAgICAgICAgICAgaWYgKAorICAgICAgICAgICAgICAgICdkZWZhdWx0X2Jy b3dzZXInIGluIGFyZ3VtZW50cyBhbmQKKyAgICAgICAgICAgICAgICBhcmd1bWVudHNbJ2RlZmF1 bHRfYnJvd3NlciddIGlzIG5vdCBOb25lCisgICAgICAgICAgICApOgorICAgICAgICAgICAgICAg IGRlZmF1bHRfYnJvd3NlciA9IGFyZ3VtZW50c1snZGVmYXVsdF9icm93c2VyJ10ubG93ZXIoKQor ICAgICAgICAgICAgZWxpZiAoCisgICAgICAgICAgICAgICAgdGVzdF9zZXR1cC5jb25maWdfZGF0 YSBhbmQKKyAgICAgICAgICAgICAgICAiZGVmYXVsdF9icm93c2VyIiBpbiB0ZXN0X3NldHVwLmNv bmZpZ19kYXRhCisgICAgICAgICAgICApOgorICAgICAgICAgICAgICAgIGRlZmF1bHRfYnJvd3Nl ciA9IHRlc3Rfc2V0dXAuY29uZmlnX2RhdGFbCisgICAgICAgICAgICAgICAgICAgICdkZWZhdWx0 X2Jyb3dzZXInXS5sb3dlcigpCisKKyAgICAgICAgICAgIGlmIGRlZmF1bHRfYnJvd3NlciA9PSAn ZmlyZWZveCc6CisgICAgICAgICAgICAgICAgY2FwID0gRGVzaXJlZENhcGFiaWxpdGllcy5GSVJF Rk9YCisgICAgICAgICAgICAgICAgY2FwWydyZXF1aXJlV2luZG93Rm9jdXMnXSA9IFRydWUKKyAg ICAgICAgICAgICAgICBjYXBbJ2VuYWJsZVBlcnNpc3RlbnRIb3ZlciddID0gRmFsc2UKKyAgICAg ICAgICAgICAgICBwcm9maWxlID0gd2ViZHJpdmVyLkZpcmVmb3hQcm9maWxlKCkKKyAgICAgICAg ICAgICAgICBwcm9maWxlLnNldF9wcmVmZXJlbmNlKCJkb20uZGlzYWJsZV9iZWZvcmV1bmxvYWQi LCBUcnVlKQorICAgICAgICAgICAgICAgIGRyaXZlciA9IHdlYmRyaXZlci5GaXJlZm94KGNhcGFi aWxpdGllcz1jYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZmlyZWZveF9wcm9maWxlPXByb2ZpbGUpCisgICAgICAgICAgICAgICAgZHJpdmVyLmltcGxpY2l0 bHlfd2FpdCgxKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBvcHRpb25zID0g T3B0aW9ucygpCisgICAgICAgICAgICAgICAgaWYgdGVzdF9zZXR1cC5jb25maWdfZGF0YToKKyAg ICAgICAgICAgICAgICAgICAgaWYgJ2hlYWRsZXNzX2Nocm9tZScgaW4gdGVzdF9zZXR1cC5jb25m aWdfZGF0YToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3Rfc2V0dXAuY29uZmlnX2Rh dGFbJ2hlYWRsZXNzX2Nocm9tZSddOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlv bnMuYWRkX2FyZ3VtZW50KCItLWhlYWRsZXNzIikKKyAgICAgICAgICAgICAgICBvcHRpb25zLmFk ZF9hcmd1bWVudCgiLS1uby1zYW5kYm94IikKKyAgICAgICAgICAgICAgICBvcHRpb25zLmFkZF9h cmd1bWVudCgiLS1kaXNhYmxlLXNldHVpZC1zYW5kYm94IikKKyAgICAgICAgICAgICAgICBvcHRp b25zLmFkZF9hcmd1bWVudCgiLS13aW5kb3ctc2l6ZT0xMjgwLDEwMjQiKQorICAgICAgICAgICAg ICAgIG9wdGlvbnMuYWRkX2FyZ3VtZW50KCItLWRpc2FibGUtaW5mb2JhcnMiKQorICAgICAgICAg ICAgICAgIG9wdGlvbnMuYWRkX2V4cGVyaW1lbnRhbF9vcHRpb24oJ3czYycsIEZhbHNlKQorICAg ICAgICAgICAgICAgIGRyaXZlciA9IHdlYmRyaXZlci5DaHJvbWUoY2hyb21lX29wdGlvbnM9b3B0 aW9ucykKKworICAgICAgICAgICAgIyBtYXhpbWl6ZSBicm93c2VyIHdpbmRvdworICAgICAgICAg ICAgZHJpdmVyLm1heGltaXplX3dpbmRvdygpCisKKyAgICAgICAgICAgIGFwcF9zdGFydGVyID0g QXBwU3RhcnRlcihkcml2ZXIsIGNvbmZpZykKKyAgICAgICAgICAgIGFwcF9zdGFydGVyLnN0YXJ0 X2FwcCgpCiAKICAgICBoYW5kbGVfY2xlYW51cCA9IHRlc3RfdXRpbHMuZ2V0X2NsZWFudXBfaGFu ZGxlcih0ZXN0X2NsaWVudCwgYXBwX3N0YXJ0ZXIpCiAgICAgIyBSZWdpc3RlciBjbGVhbnVwIGZ1 bmN0aW9uIHRvIGNsZWFudXAgb24gZXhpdApAQCAtMzE5LDYgKzMyNSw5IEBAIGRlZiBhZGRfYXJn dW1lbnRzKCk6CiAgICAgICAgICctLW1vZHVsZXMnLAogICAgICAgICBoZWxwPSdFeGVjdXRlcyB0 aGUgZmVhdHVyZSB0ZXN0IGZvciBzcGVjaWZpYyBtb2R1bGVzIGluIHBrZycKICAgICApCisgICAg cGFyc2VyLmFkZF9hcmd1bWVudCgnLS1wYXJhbGxlbCcsIG5hcmdzPSc/JywgY29uc3Q9VHJ1ZSwK KyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Ym9vbCwgZGVmYXVsdD1GYWxzZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgIGhlbHA9J0VuYWJsZSBwYXJhbGxlbCBGZWF0dXJlIFRlc3RzJykK ICAgICBhcmcgPSBwYXJzZXIucGFyc2VfYXJncygpCiAKICAgICByZXR1cm4gYXJnCkBAIC00MDQs NiArNDEzLDIxMiBAQCBjbGFzcyBTdHJlYW1Ub0xvZ2dlcihvYmplY3QpOgogICAgICAgICBwYXNz CiAKIAorZGVmIGV4ZWN1dGVfdGVzdCh0ZXN0X21vZHVsZV9saXN0X3Bhc3NlZCwgc2VydmVyX3Bh c3NlZCwgZHJpdmVyX3Bhc3NlZCk6CisgICAgIiIiCisgICAgRnVuY3Rpb24gZXhlY3V0ZXMgYWN0 dWFsbHkgdGVzdAorICAgIDpwYXJhbSB0ZXN0X21vZHVsZV9saXN0X3Bhc3NlZDoKKyAgICA6cGFy YW0gc2VydmVyX3Bhc3NlZDoKKyAgICA6cGFyYW0gZHJpdmVyX3Bhc3NlZDoKKyAgICA6cmV0dXJu OgorICAgICIiIgorICAgIHRyeToKKyAgICAgICAgcHJpbnQoIlxuPT09PT09PT09PT09PVJ1bm5p bmcgdGhlIHRlc3QgY2FzZXMgZm9yICclcycgPT09PT09PT09PT09PSIKKyAgICAgICAgICAgICAg JSBzZXJ2ZXJfcGFzc2VkWyduYW1lJ10sIGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAgIyBDcmVh dGUgdGVzdCBzZXJ2ZXIKKyAgICAgICAgc2VydmVyX2luZm9ybWF0aW9uID0gXAorICAgICAgICAg ICAgdGVzdF91dGlscy5jcmVhdGVfcGFyZW50X3NlcnZlcl9ub2RlKHNlcnZlcl9wYXNzZWQpCisK KyAgICAgICAgIyBDcmVhdGUgdGVzdCBkYXRhYmFzZSB3aXRoIHJhbmRvbSBudW1iZXIgdG8gYXZv aWQgY29uZmxpY3QgaW4KKyAgICAgICAgIyBwYXJhbGxlbCBleGVjdXRpb24gb24gZGlmZmVyZW50 IHBsYXRmb3Jtcy4gVGhpcyBkYXRhYmFzZSB3aWxsIGJlCisgICAgICAgICMgdXNlZCBhY3Jvc3Mg YWxsIGZlYXR1cmUgdGVzdHMuCisgICAgICAgIHRlc3RfZGJfbmFtZSA9ICJhY2NlcHRhbmNlX3Rl c3RfZGIiICsgXAorICAgICAgICAgICAgICAgICAgICAgICBzdHIocmFuZG9tLnJhbmRpbnQoMTAw MDAsIDY1NTM1KSkKKyAgICAgICAgY29ubmVjdGlvbiA9IHRlc3RfdXRpbHMuZ2V0X2RiX2Nvbm5l Y3Rpb24oCisgICAgICAgICAgICBzZXJ2ZXJfcGFzc2VkWydkYiddLAorICAgICAgICAgICAgc2Vy dmVyX3Bhc3NlZFsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgIHNlcnZlcl9wYXNzZWRbJ2RiX3Bh c3N3b3JkJ10sCisgICAgICAgICAgICBzZXJ2ZXJfcGFzc2VkWydob3N0J10sCisgICAgICAgICAg ICBzZXJ2ZXJfcGFzc2VkWydwb3J0J10sCisgICAgICAgICAgICBzZXJ2ZXJfcGFzc2VkWydzc2xt b2RlJ10KKyAgICAgICAgKQorCisgICAgICAgICMgQWRkIHRoZSBzZXJ2ZXIgdmVyc2lvbiBpbiBz ZXJ2ZXIgaW5mb3JtYXRpb24KKyAgICAgICAgc2VydmVyX2luZm9ybWF0aW9uWydzZXJ2ZXJfdmVy c2lvbiddID0gY29ubmVjdGlvbi5zZXJ2ZXJfdmVyc2lvbgorICAgICAgICBzZXJ2ZXJfaW5mb3Jt YXRpb25bJ3R5cGUnXSA9IHNlcnZlcl9wYXNzZWRbJ3R5cGUnXQorCisgICAgICAgICMgRHJvcCB0 aGUgZGF0YWJhc2UgaWYgYWxyZWFkeSBleGlzdHMuCisgICAgICAgIHRlc3RfdXRpbHMuZHJvcF9k YXRhYmFzZShjb25uZWN0aW9uLCB0ZXN0X2RiX25hbWUpCisKKyAgICAgICAgIyBDcmVhdGUgZGF0 YWJhc2UKKyAgICAgICAgdGVzdF91dGlscy5jcmVhdGVfZGF0YWJhc2Uoc2VydmVyX3Bhc3NlZCwg dGVzdF9kYl9uYW1lKQorCisgICAgICAgICMgQ29uZmlndXJlIHByZWZlcmVuY2VzIGZvciB0aGUg dGVzdCBjYXNlcworICAgICAgICB0ZXN0X3V0aWxzLmNvbmZpZ3VyZV9wcmVmZXJlbmNlcygKKyAg ICAgICAgICAgIGRlZmF1bHRfYmluYXJ5X3BhdGg9c2VydmVyX3Bhc3NlZFsnZGVmYXVsdF9iaW5h cnlfcGF0aHMnXSkKKworICAgICAgICAjIEdldCB1bml0IHRlc3Qgc3VpdAorICAgICAgICBzdWl0 ZSA9IGdldF9zdWl0ZSh0ZXN0X21vZHVsZV9saXN0X3Bhc3NlZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyX3Bhc3NlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9j bGllbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pbmZvcm1hdGlvbiwgdGVz dF9kYl9uYW1lLCBkcml2ZXJfcGFzc2VkKQorCisgICAgICAgICMgUnVuIHVuaXQgdGVzdCBzdWl0 IGNyZWF0ZWQKKyAgICAgICAgdGVzdHMgPSB1bml0dGVzdC5UZXh0VGVzdFJ1bm5lcihzdHJlYW09 c3lzLnN0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNj cmlwdGlvbnM9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 ZXJib3NpdHk9MikucnVuKHN1aXRlKQorCisgICAgICAgICMgcHJvY2Vzc2luZyByZXN1bHRzCisg ICAgICAgIHJhbl90ZXN0cywgZmFpbGVkX2Nhc2VzLCBza2lwcGVkX2Nhc2VzLCBwYXNzZWRfY2Fz ZXMgPSBcCisgICAgICAgICAgICBnZXRfdGVzdHNfcmVzdWx0KHRlc3RzKQorCisgICAgICAgICMg VGhpcyBpcyByZXF1aXJlZCB3aGVuIHNvbWUgdGVzdHMgYXJlIHJ1bm5pbmcgcGFyYWxsZWwKKyAg ICAgICAgIyAmIHNvbWUgc2VxdWVudGlhbCBpbiBjYXNlIG9mIHBhcmFsbGVsIHVpIHRlc3RzCisg ICAgICAgIGlmIHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmdldE5hbWUoKSA9PSAic2VxdWVu dGlhbF90ZXN0cyI6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgaWYgdGVzdF9y ZXN1bHRbc2VydmVyX3Bhc3NlZFsnbmFtZSddXVswXSBpcyBub3QgTm9uZToKKyAgICAgICAgICAg ICAgICAgICAgcmFuX3Rlc3RzID0gdGVzdF9yZXN1bHRbc2VydmVyX3Bhc3NlZFsnbmFtZSddXVsw XSArIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhbl90ZXN0cworICAgICAgICAgICAgICAg ICAgICBmYWlsZWRfY2FzZXMudXBkYXRlKHRlc3RfcmVzdWx0W3NlcnZlcl9wYXNzZWRbJ25hbWUn XV1bMV0pCisgICAgICAgICAgICAgICAgICAgIHNraXBwZWRfY2FzZXMudXBkYXRlKHRlc3RfcmVz dWx0W3NlcnZlcl9wYXNzZWRbJ25hbWUnXV1bMl0pCisgICAgICAgICAgICAgICAgICAgIHBhc3Nl ZF9jYXNlcy51cGRhdGUodGVzdF9yZXN1bHRbc2VydmVyX3Bhc3NlZFsnbmFtZSddXVszXSkKKyAg ICAgICAgICAgICAgICB0ZXN0X3Jlc3VsdFtzZXJ2ZXJfcGFzc2VkWyduYW1lJ11dID0gW3Jhbl90 ZXN0cywgZmFpbGVkX2Nhc2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2tpcHBlZF9jYXNlcywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3NlZF9jYXNlc10KKyAgICAgICAgICAg IGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgIyBBZGQg ZmluYWwgcmVzdWx0cyBzZXJ2ZXIgd2lzZSBpbiB0ZXN0X3Jlc3VsdCBkaWN0CisgICAgICAgIHRl c3RfcmVzdWx0W3NlcnZlcl9wYXNzZWRbJ25hbWUnXV0gPSBbcmFuX3Rlc3RzLCBmYWlsZWRfY2Fz ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcHBl ZF9jYXNlcywgcGFzc2VkX2Nhc2VzXQorCisgICAgICAgICMgU2V0IGVtcHR5IGxpc3QgZm9yICdw YXNzZWQnIHBhcmFtZXRlciBmb3IgZWFjaCB0ZXN0UnVuLgorICAgICAgICAjIFNvIHRoYXQgaXQg d2lsbCBub3QgYXBwZW5kIHNhbWUgdGVzdCBjYXNlIG5hbWUKKyAgICAgICAgdW5pdHRlc3QucmVz dWx0LlRlc3RSZXN1bHQucGFzc2VkID0gW10KKworICAgICAgICAjIERyb3AgdGhlIHRlc3Rpbmcg ZGF0YWJhc2UgY3JlYXRlZCBpbml0aWFsbHkKKyAgICAgICAgaWYgY29ubmVjdGlvbjoKKyAgICAg ICAgICAgIHRlc3RfdXRpbHMuZHJvcF9kYXRhYmFzZShjb25uZWN0aW9uLCB0ZXN0X2RiX25hbWUp CisgICAgICAgICAgICBjb25uZWN0aW9uLmNsb3NlKCkKKworICAgICAgICAjIERlbGV0ZSB0ZXN0 IHNlcnZlcgorICAgICAgICB0ZXN0X3V0aWxzLmRlbGV0ZV90ZXN0X3NlcnZlcih0ZXN0X2NsaWVu dCkKKyAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4YzoKKyAgICAgICAgdHJhY2ViYWNrLnByaW50 X2V4YyhmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgIHByaW50KHN0cihleGMpKQorICAgICAgICBw cmludCgiRXhjZXB0aW9uIGluIHswfSIuZm9ybWF0KHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgp LmlkZW50KSkKKyAgICBmaW5hbGx5OgorICAgICAgICAjIERlbGV0ZSB3ZWItZHJpdmVyIGluc3Rh bmNlCisgICAgICAgIHRocmVhZF9uYW1lID0gInBhcmFsbGVsX3Rlc3RzIiArIHNlcnZlcl9wYXNz ZWRbJ25hbWUnXQorICAgICAgICBpZiB0aHJlYWRpbmcuY3VycmVudFRocmVhZCgpLmdldE5hbWUo KSA9PSB0aHJlYWRfbmFtZToKKyAgICAgICAgICAgIGRyaXZlcl9wYXNzZWQucXVpdCgpCisgICAg ICAgICAgICB0aW1lLnNsZWVwKDIwKQorCisgICAgICAgICMgUHJpbnQgaW5mbyBhYm91dCBjb21w bGV0ZWQgdGVzdHMKKyAgICAgICAgcHJpbnQoCisgICAgICAgICAgICAiXG49PT09PT09PT09PT09 Q29tcGxldGVkIHRoZSB0ZXN0IGNhc2VzIGZvciAnJXMnPT09PT09PT09PT09PSIKKyAgICAgICAg ICAgICUgc2VydmVyX3Bhc3NlZFsnbmFtZSddLCBmaWxlPXN5cy5zdGRlcnIpCisKKworZGVmIHJ1 bl9wYXJhbGxlbF90ZXN0cyh1cmxfY2xpZW50LCBzZXJ2ZXJzX2RldGFpbHMsIHBhcmFsbGVsX3Rl c3RzX2xpc3RzLAorICAgICAgICAgICAgICAgICAgICAgICBuYW1lX29mX2Jyb3dzZXIsIHZlcnNp b25fb2ZfYnJvd3NlciwgbWF4X3RocmVhZF9jb3VudCk6CisgICAgIiIiCisgICAgRnVuY3Rpb24g dXNlZCB0byBydW4gdGVzdHMgaW4gcGFyYWxsZWwKKyAgICA6cGFyYW0gdXJsX2NsaWVudDoKKyAg ICA6cGFyYW0gc2VydmVyc19kZXRhaWxzOgorICAgIDpwYXJhbSBwYXJhbGxlbF90ZXN0c19saXN0 czoKKyAgICA6cGFyYW0gbmFtZV9vZl9icm93c2VyOgorICAgIDpwYXJhbSB2ZXJzaW9uX29mX2Jy b3dzZXI6CisgICAgOnBhcmFtIG1heF90aHJlYWRfY291bnQ6CisgICAgIiIiCisgICAgZHJpdmVy X29iamVjdCA9IE5vbmUKKyAgICB0cnk6CisgICAgICAgICMgVGhyZWFkIGxpc3QKKyAgICAgICAg dGhyZWFkc19saXN0ID0gW10KKyAgICAgICAgIyBDcmVhdGUgdGhyZWFkIGZvciBlYWNoIHNlcnZl cgorICAgICAgICBmb3Igc2VyIGluIHNlcnZlcnNfZGV0YWlsczoKKyAgICAgICAgICAgICMgTG9n aWMgdG8gYWRkIG5ldyB0aHJlYWRzCisgICAgICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAg ICAgICAgICMgSWYgYWN0aXZlIHRocmVhZCBjb3VudCA8PSBtYXhfdGhyZWFkX2NvdW50LCBhZGQg bmV3IHRocmVhZAorICAgICAgICAgICAgICAgIGlmIHRocmVhZGluZy5hY3RpdmVDb3VudCgpIDw9 IG1heF90aHJlYWRfY291bnQ6CisgICAgICAgICAgICAgICAgICAgICMgR2V0IHJlbW90ZSB3ZWIt ZHJpdmVyIGluc3RhbmNlIGF0IHNlcnZlciBsZXZlbAorICAgICAgICAgICAgICAgICAgICBkcml2 ZXJfb2JqZWN0ID0gXAorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF91dGlscy5nZXRfcmVt b3RlX3dlYmRyaXZlcihodWJfdXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBuYW1lX29mX2Jyb3dzZXIsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb25fb2ZfYnJvd3Nl ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VyWyduYW1lJ10pCisgICAgICAgICAgICAgICAgICAgICMgTGF1bmNoIGNsaWVudCB1cmwg aW4gYnJvd3NlcgorICAgICAgICAgICAgICAgICAgICB0ZXN0X3V0aWxzLmxhdW5jaF91cmxfaW5f YnJvd3Nlcihkcml2ZXJfb2JqZWN0LCB1cmxfY2xpZW50KQorCisgICAgICAgICAgICAgICAgICAg ICMgQWRkIG5hbWUgZm9yIHRocmVhZAorICAgICAgICAgICAgICAgICAgICB0aHJlYWRfbmFtZSA9 ICJwYXJhbGxlbF90ZXN0cyIgKyBzZXJbJ25hbWUnXQorCisgICAgICAgICAgICAgICAgICAgICMg U3RhcnQgdGhyZWFkCisgICAgICAgICAgICAgICAgICAgIHQgPSB0aHJlYWRpbmcuVGhyZWFkKHRh cmdldD1leGVjdXRlX3Rlc3QsIG5hbWU9dGhyZWFkX25hbWUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KHBhcmFsbGVsX3Rlc3RzX2xpc3RzLCBzZXIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyaXZlcl9vYmpl Y3QpKQorICAgICAgICAgICAgICAgICAgICB0aHJlYWRzX2xpc3QuYXBwZW5kKHQpCisgICAgICAg ICAgICAgICAgICAgIHQuc3RhcnQoKQorICAgICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDMp CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgIyBlbHNlIHNsZWVw IGZvciAxMCBzZWNvbmRzCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAg ICAgdGltZS5zbGVlcCgxMCkKKworICAgICAgICAjIFN0YXJ0IHRocmVhZHMgaW4gcGFyYWxsZWwK KyAgICAgICAgZm9yIHQgaW4gdGhyZWFkc19saXN0OgorICAgICAgICAgICAgdC5qb2luKCkKKyAg ICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4YzoKKyAgICAgICAgIyBQcmludCBleGNlcHRpb24gc3Rh Y2sgdHJhY2UKKyAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPXN5cy5zdGRlcnIpCisg ICAgICAgIHByaW50KHN0cihleGMpKQorICAgICAgICAjIENsZWFuIGRyaXZlciBvYmplY3QgY3Jl YXRlZAorICAgICAgICBpZiBkcml2ZXJfb2JqZWN0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAg ZHJpdmVyX29iamVjdC5xdWl0KCkKKworCitkZWYgcnVuX3NlcXVlbnRpYWxfdGVzdHModXJsX2Ns aWVudCwgc2VydmVyc19kZXRhaWxzLCBzZXF1ZW50aWFsX3Rlc3RzX2xpc3RzLAorICAgICAgICAg ICAgICAgICAgICAgICAgIG5hbWVfb2ZfYnJvd3NlciwgdmVyc2lvbl9vZl9icm93c2VyKToKKyAg ICAiIiIKKyAgICBGdW5jdGlvbiBpcyB1c2VkIHRvIGV4ZWN1dGUgdGVzdHMgdGhhdCBuZWVkcyB0 byBiZSBydW4gaW4gc2VxdWVudGlhbAorICAgIG1hbm5lci4KKyAgICA6cGFyYW0gdXJsX2NsaWVu dDoKKyAgICA6cGFyYW0gc2VydmVyc19kZXRhaWxzOgorICAgIDpwYXJhbSBzZXF1ZW50aWFsX3Rl c3RzX2xpc3RzOgorICAgIDpwYXJhbSBuYW1lX29mX2Jyb3dzZXI6CisgICAgOnBhcmFtIHZlcnNp b25fb2ZfYnJvd3NlcjoKKyAgICA6cmV0dXJuOgorICAgICIiIgorICAgIGRyaXZlcl9vYmplY3Qg PSBOb25lCisgICAgdHJ5OgorICAgICAgICAjIEdldCByZW1vdGUgd2ViLWRyaXZlciBpbnN0YW5j ZQorICAgICAgICBkcml2ZXJfb2JqZWN0ID0gdGVzdF91dGlscy5nZXRfcmVtb3RlX3dlYmRyaXZl cihodWJfdXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBuYW1lX29mX2Jyb3dzZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb25fb2ZfYnJvd3NlciwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNlcXVlbnRp YWxfVGVzdHMiKQorCisgICAgICAgICMgTGF1bmNoIGNsaWVudCB1cmwgaW4gYnJvd3NlcgorICAg ICAgICB0ZXN0X3V0aWxzLmxhdW5jaF91cmxfaW5fYnJvd3Nlcihkcml2ZXJfb2JqZWN0LCB1cmxf Y2xpZW50KQorCisgICAgICAgICMgQWRkIG5hbWUgZm9yIHRocmVhZAorICAgICAgICB0aHJlYWRf bmFtZSA9ICJzZXF1ZW50aWFsX3Rlc3RzIgorCisgICAgICAgICMgU3RhcnQgdGhyZWFkCisgICAg ICAgIGZvciBzZXIgaW4gc2VydmVyc19kZXRhaWxzOgorICAgICAgICAgICAgdCA9IHRocmVhZGlu Zy5UaHJlYWQodGFyZ2V0PWV4ZWN1dGVfdGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG5hbWU9dGhyZWFkX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhcmdzPShzZXF1ZW50aWFsX3Rlc3RzX2xpc3RzLCBzZXIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkcml2ZXJfb2JqZWN0KSkKKyAgICAgICAgICAgIHQuc3RhcnQo KQorICAgICAgICAgICAgdC5qb2luKCkKKyAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4YzoKKyAg ICAgICAgIyBQcmludCBleGNlcHRpb24gc3RhY2sgdHJhY2UKKyAgICAgICAgdHJhY2ViYWNrLnBy aW50X2V4YyhmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgIHByaW50KHN0cihleGMpKQorICAgIGZp bmFsbHk6CisgICAgICAgICMgQ2xlYW4gZHJpdmVyIG9iamVjdCBjcmVhdGVkCisgICAgICAgIGRy aXZlcl9vYmplY3QucXVpdCgpCisKKwogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICAj IEZhaWx1cmUgZGV0ZWN0ZWQ/CiAgICAgZmFpbHVyZSA9IEZhbHNlCkBAIC00MjMsNyArNjM4LDgg QEAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICBmaCA9IGxvZ2dpbmcuRmlsZUhhbmRs ZXIoQ1VSUkVOVF9QQVRIICsgJy8nICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Jl Z3Jlc3Npb24ubG9nJywgJ3cnLCAndXRmLTgnKQogICAgIGZoLnNldExldmVsKGxvZ2dpbmcuREVC VUcpCi0gICAgZmguc2V0Rm9ybWF0dGVyKGxvZ2dpbmcuRm9ybWF0dGVyKGNvbmZpZy5GSUxFX0xP R19GT1JNQVQpKQorICAgIGZoLnNldEZvcm1hdHRlcihsb2dnaW5nLkZvcm1hdHRlcignWyUodGhy ZWFkKWRdICcgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcu RklMRV9MT0dfRk9STUFUKSkKIAogICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkKICAg ICBsb2dnZXIuYWRkSGFuZGxlcihmaCkKQEAgLTQ1MSw2OSArNjY3LDk3IEBAIGlmIF9fbmFtZV9f ID09ICdfX21haW5fXyc6CiAgICAgICAgIGNvdiA9IGNvdmVyYWdlLkNvdmVyYWdlKGNvbmZpZ19m aWxlPUNPVkVSQUdFX0NPTkZJR19GSUxFKQogICAgICAgICBjb3Yuc3RhcnQoKQogCi0gICAgdHJ5 OgotICAgICAgICBmb3Igc2VydmVyIGluIHNlcnZlcnNfaW5mbzoKLSAgICAgICAgICAgIHByaW50 KCJcbj09PT09PT09PT09PT1SdW5uaW5nIHRoZSB0ZXN0IGNhc2VzIGZvciAnJXMnPT09PT09PT09 PT09PSIKLSAgICAgICAgICAgICAgICAgICUgc2VydmVyWyduYW1lJ10sIGZpbGU9c3lzLnN0ZGVy cikKLSAgICAgICAgICAgICMgQ3JlYXRlIHRlc3Qgc2VydmVyCi0gICAgICAgICAgICBzZXJ2ZXJf aW5mb3JtYXRpb24gPSB0ZXN0X3V0aWxzLmNyZWF0ZV9wYXJlbnRfc2VydmVyX25vZGUoc2VydmVy KQotCi0gICAgICAgICAgICAjIENyZWF0ZSB0ZXN0IGRhdGFiYXNlIHdpdGggcmFuZG9tIG51bWJl ciB0byBhdm9pZCBjb25mbGljdCBpbgotICAgICAgICAgICAgIyBwYXJhbGxlbCBleGVjdXRpb24g b24gZGlmZmVyZW50IHBsYXRmb3Jtcy4gVGhpcyBkYXRhYmFzZSB3aWxsIGJlCi0gICAgICAgICAg ICAjIHVzZWQgYWNyb3NzIGFsbCBmZWF0dXJlIHRlc3RzLgotICAgICAgICAgICAgdGVzdF9kYl9u YW1lID0gImFjY2VwdGFuY2VfdGVzdF9kYiIgKyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHIocmFuZG9tLnJhbmRpbnQoMTAwMDAsIDY1NTM1KSkKLSAgICAgICAgICAgIGNvbm5lY3Rp b24gPSB0ZXN0X3V0aWxzLmdldF9kYl9jb25uZWN0aW9uKAotICAgICAgICAgICAgICAgIHNlcnZl clsnZGInXSwKLSAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3VzZXJuYW1lJ10sCi0gICAgICAgICAg ICAgICAgc2VydmVyWydkYl9wYXNzd29yZCddLAotICAgICAgICAgICAgICAgIHNlcnZlclsnaG9z dCddLAotICAgICAgICAgICAgICAgIHNlcnZlclsncG9ydCddLAotICAgICAgICAgICAgICAgIHNl cnZlclsnc3NsbW9kZSddCi0gICAgICAgICAgICApCi0KLSAgICAgICAgICAgICMgQWRkIHRoZSBz ZXJ2ZXIgdmVyc2lvbiBpbiBzZXJ2ZXIgaW5mb3JtYXRpb24KLSAgICAgICAgICAgIHNlcnZlcl9p bmZvcm1hdGlvblsnc2VydmVyX3ZlcnNpb24nXSA9IGNvbm5lY3Rpb24uc2VydmVyX3ZlcnNpb24K LSAgICAgICAgICAgIHNlcnZlcl9pbmZvcm1hdGlvblsndHlwZSddID0gc2VydmVyWyd0eXBlJ10K LQotICAgICAgICAgICAgIyBEcm9wIHRoZSBkYXRhYmFzZSBpZiBhbHJlYWR5IGV4aXN0cy4KLSAg ICAgICAgICAgIHRlc3RfdXRpbHMuZHJvcF9kYXRhYmFzZShjb25uZWN0aW9uLCB0ZXN0X2RiX25h bWUpCi0gICAgICAgICAgICAjIENyZWF0ZSBkYXRhYmFzZQotICAgICAgICAgICAgdGVzdF91dGls cy5jcmVhdGVfZGF0YWJhc2Uoc2VydmVyLCB0ZXN0X2RiX25hbWUpCi0gICAgICAgICAgICAjIENv bmZpZ3VyZSBwcmVmZXJlbmNlcyBmb3IgdGhlIHRlc3QgY2FzZXMKLSAgICAgICAgICAgIHRlc3Rf dXRpbHMuY29uZmlndXJlX3ByZWZlcmVuY2VzKAotICAgICAgICAgICAgICAgIGRlZmF1bHRfYmlu YXJ5X3BhdGg9c2VydmVyWydkZWZhdWx0X2JpbmFyeV9wYXRocyddKQotCi0gICAgICAgICAgICBz dWl0ZSA9IGdldF9zdWl0ZSh0ZXN0X21vZHVsZV9saXN0LAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbGll bnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaW5mb3JtYXRpb24sIHRl c3RfZGJfbmFtZSkKLSAgICAgICAgICAgIHRlc3RzID0gdW5pdHRlc3QuVGV4dFRlc3RSdW5uZXIo c3RyZWFtPXN5cy5zdGRlcnIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRlc2NyaXB0aW9ucz1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2ZXJib3NpdHk9MikucnVuKHN1aXRlKQotCi0gICAgICAgICAgICByYW5f dGVzdHMsIGZhaWxlZF9jYXNlcywgc2tpcHBlZF9jYXNlcywgcGFzc2VkX2Nhc2VzID0gXAotICAg ICAgICAgICAgICAgIGdldF90ZXN0c19yZXN1bHQodGVzdHMpCi0gICAgICAgICAgICB0ZXN0X3Jl c3VsdFtzZXJ2ZXJbJ25hbWUnXV0gPSBbcmFuX3Rlc3RzLCBmYWlsZWRfY2FzZXMsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcHBlZF9jYXNlcywgcGFzc2Vk X2Nhc2VzXQotCi0gICAgICAgICAgICAjIFNldCBlbXB0eSBsaXN0IGZvciAncGFzc2VkJyBwYXJh bWV0ZXIgZm9yIGVhY2ggdGVzdFJ1bi4KLSAgICAgICAgICAgICMgU28gdGhhdCBpdCB3aWxsIG5v dCBhcHBlbmQgc2FtZSB0ZXN0IGNhc2UgbmFtZQotICAgICAgICAgICAgdW5pdHRlc3QucmVzdWx0 LlRlc3RSZXN1bHQucGFzc2VkID0gW10KLQotICAgICAgICAgICAgaWYgbGVuKGZhaWxlZF9jYXNl cykgPiAwOgotICAgICAgICAgICAgICAgIGZhaWx1cmUgPSBUcnVlCi0KLSAgICAgICAgICAgICMg RHJvcCB0aGUgdGVzdGluZyBkYXRhYmFzZSBjcmVhdGVkIGluaXRpYWxseQotICAgICAgICAgICAg aWYgY29ubmVjdGlvbjoKLSAgICAgICAgICAgICAgICB0ZXN0X3V0aWxzLmRyb3BfZGF0YWJhc2Uo Y29ubmVjdGlvbiwgdGVzdF9kYl9uYW1lKQotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uY2xv c2UoKQotCi0gICAgICAgICAgICAjIERlbGV0ZSB0ZXN0IHNlcnZlcgotICAgICAgICAgICAgdGVz dF91dGlscy5kZWxldGVfdGVzdF9zZXJ2ZXIodGVzdF9jbGllbnQpCi0gICAgZXhjZXB0IFN5c3Rl bUV4aXQ6Ci0gICAgICAgIGlmIGhhbmRsZV9jbGVhbnVwOgotICAgICAgICAgICAgaGFuZGxlX2Ns ZWFudXAoKQorICAgICMgQ2hlY2sgaWYgZmVhdHVyZSB0ZXN0cyBpbmNsdWRlZCAmIHBhcmFsbGVs IHRlc3RzIHN3aXRjaCBwYXNzZWQKKyAgICBpZiB0ZXN0X3V0aWxzLmlzX2ZlYXR1cmVfdGVzdF9p bmNsdWRlZChhcmdzKSBhbmQgXAorICAgICAgICAgICAgdGVzdF91dGlscy5pc19wYXJhbGxlbF91 aV90ZXN0cyhhcmdzKToKKworICAgICAgICAjIEdldCBzZWxlbml1bSBpbmZvIGRpY3QgaHViIHVy bAorICAgICAgICBzZWxlbm9pZF9pbmZvID0gdGVzdF9zZXR1cC5jb25maWdfZGF0YVsnc2VsZW5v aWRfaW5mbyddCisKKyAgICAgICAgIyBTZXQgREVGQVVMVF9TRVJWRVIgdmFsdWUKKyAgICAgICAg ZGVmYXVsdF9zZXJ2ZXIgPSBzZWxlbm9pZF9pbmZvWydwZ0FkbWluX2RlZmF1bHRfc2VydmVyJ10K KyAgICAgICAgb3MuZW52aXJvblsiUEdBRE1JTl9DT05GSUdfREVGQVVMVF9TRVJWRVIiXSA9IHN0 cihkZWZhdWx0X3NlcnZlcikKKyAgICAgICAgY29uZmlnLkRFRkFVTFRfU0VSVkVSID0gc3RyKGRl ZmF1bHRfc2VydmVyKQorCisgICAgICAgICMgR2V0IGh1YiB1cmwKKyAgICAgICAgaHViX3VybCA9 IHNlbGVub2lkX2luZm9bJ3NlbGVub2lkX3VybCddCisgICAgICAgICMgR2V0IHNlbGVuaXVtIGdy aWQgc3RhdHVzICYgbGlzdCBvZiBhdmFpbGFibGUgYnJvd3NlciBvdXQgcGFzc2VkCisgICAgICAg IHNlbGVuaXVtX2dyaWRfc3RhdHVzLCBsaXN0X29mX2Jyb3dzZXJzIFwKKyAgICAgICAgICAgID0g dGVzdF91dGlscy5nZXRfc2VsZW5pdW1fZ3JpZF9zdGF0dXNfYW5kX2Jyb3dzZXJfbGlzdChodWJf dXJsKQorCisgICAgICAgICMgRXhlY3V0ZSB0ZXN0cyBpZiBzZWxlbml1bS1ncmlkIGlzIHVwCisg ICAgICAgIGlmIHNlbGVuaXVtX2dyaWRfc3RhdHVzIGFuZCBsZW4obGlzdF9vZl9icm93c2Vycykg PiAwOgorCisgICAgICAgICAgICBhcHBfc3RhcnRlcl9sb2NhbCA9IE5vbmUKKyAgICAgICAgICAg IHRyeToKKyAgICAgICAgICAgICAgICAjIHJ1biBhY3Jvc3MgYnJvd3NlcnMKKyAgICAgICAgICAg ICAgICBmb3IgYnJvd3Nlcl9pbmZvIGluIGxpc3Rfb2ZfYnJvd3NlcnM6CisgICAgICAgICAgICAg ICAgICAgICMgYnJvd3NlciBpbmZvCisgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfbmFtZSwg YnJvd3Nlcl92ZXJzaW9uID0gXAorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF91dGlscy5n ZXRfYnJvd3Nlcl9kZXRhaWxzKGJyb3dzZXJfaW5mbywgaHViX3VybCkKKworICAgICAgICAgICAg ICAgICAgICAjIHRlc3RzIGxpc3RzIGNhbiBiZSBleGVjdXRlZCBpbiBwYXJhbGxlbCAmIHNlcXVl bnRpYWxseQorICAgICAgICAgICAgICAgICAgICBwYXJhbGxlbF90ZXN0cywgc2VxdWVudGlhbF90 ZXN0cyA9IFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdXRpbHMuZ2V0X3BhcmFsbGVs X3NlcXVlbnRpYWxfbW9kdWxlX2xpc3QoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz dF9tb2R1bGVfbGlzdCkKKworICAgICAgICAgICAgICAgICAgICAjIFByaW50IHRlc3Qgc3VtbWFy eQorICAgICAgICAgICAgICAgICAgICB0ZXN0X3V0aWxzLnByaW50X3Rlc3Rfc3VtbWFyeSh0ZXN0 X21vZHVsZV9saXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwYXJhbGxlbF90ZXN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VxdWVudGlhbF90ZXN0cywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyX3ZlcnNpb24pCisK KyAgICAgICAgICAgICAgICAgICAgIyBDcmVhdGUgYXBwIGZvcm0gc291cmNlIGNvZGUKKyAgICAg ICAgICAgICAgICAgICAgYXBwX3N0YXJ0ZXJfbG9jYWwgPSBBcHBTdGFydGVyKE5vbmUsIGNvbmZp ZykKKyAgICAgICAgICAgICAgICAgICAgY2xpZW50X3VybCA9IGFwcF9zdGFydGVyX2xvY2FsLnN0 YXJ0X2FwcCgpCisKKyAgICAgICAgICAgICAgICAgICAgIyBSdW5uaW5nIFBhcmFsbGVsIHRlc3Rz CisgICAgICAgICAgICAgICAgICAgIGlmIGxlbihwYXJhbGxlbF90ZXN0cykgPiAwOgorICAgICAg ICAgICAgICAgICAgICAgICAgcGFyYWxsZWxfc2Vzc2lvbnMgPSBpbnQoc2VsZW5vaWRfaW5mb1sK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4X3BhcmFsbGVsX3Nlc3Npb25zJ10pCisK KyAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9wYXJhbGxlbF90ZXN0cyhjbGllbnRfdXJsLCBz ZXJ2ZXJzX2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cGFyYWxsZWxfdGVzdHMsIGJyb3dzZXJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBicm93c2VyX3ZlcnNpb24sIHBhcmFsbGVsX3Nlc3Npb25zKQorCisg ICAgICAgICAgICAgICAgICAgICMgV2FpdCB0aWxsIGFsbCB0aHJlYWRzIHN0YXJ0ZWQgaW4gcGFy YWxsZWwgYXJlIGZpbmlzaGVkCisgICAgICAgICAgICAgICAgICAgIHdoaWxlIFRydWU6CisgICAg ICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg dGhyZWFkaW5nLmFjdGl2ZUNvdW50KCkgPD0gMToKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDEwKQorICAgICAgICAgICAgICAgICAg ICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHByaW50KHN0cihlKSkKKworICAgICAgICAgICAgICAgICAgICAjIFNlcXVlbnRp YWwgVGVzdHMKKyAgICAgICAgICAgICAgICAgICAgaWYgbGVuKHNlcXVlbnRpYWxfdGVzdHMpID4g MDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9zZXF1ZW50aWFsX3Rlc3RzKGNsaWVudF91 cmwsIHNlcnZlcnNfaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlcXVlbnRpYWxfdGVzdHMsIGJyb3dzZXJfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfdmVyc2lvbikKKworICAgICAgICAg ICAgICAgICAgICAjIENsZWFuIHVwIGVudmlyb25tZW50CisgICAgICAgICAgICAgICAgICAgIGlm IGFwcF9zdGFydGVyX2xvY2FsOgorICAgICAgICAgICAgICAgICAgICAgICAgYXBwX3N0YXJ0ZXJf bG9jYWwuc3RvcF9hcHAoKQorICAgICAgICAgICAgZXhjZXB0IFN5c3RlbUV4aXQ6CisgICAgICAg ICAgICAgICAgaWYgYXBwX3N0YXJ0ZXJfbG9jYWw6CisgICAgICAgICAgICAgICAgICAgIGFwcF9z dGFydGVyX2xvY2FsLnN0b3BfYXBwKCkKKyAgICAgICAgICAgICAgICBpZiBoYW5kbGVfY2xlYW51 cDoKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2NsZWFudXAoKQorICAgICAgICAgICAgIyBQ YXVzZSBiZWZvcmUgcHJpbnRpbmcgcmVzdWx0IGluIG9yZGVyIG5vdCB0byBtaXggb3V0cHV0Cisg ICAgICAgICAgICB0aW1lLnNsZWVwKDMpCisgICAgZWxzZToKKyAgICAgICAgdHJ5OgorICAgICAg ICAgICAgZm9yIHNlcnZlciBpbiBzZXJ2ZXJzX2luZm86CisgICAgICAgICAgICAgICAgdGhyZWFk ID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9ZXhlY3V0ZV90ZXN0LCBhcmdzPSgKKyAgICAgICAg ICAgICAgICAgICAgdGVzdF9tb2R1bGVfbGlzdCwgc2VydmVyLCBkcml2ZXIpKQorICAgICAgICAg ICAgICAgIHRocmVhZC5zdGFydCgpCisgICAgICAgICAgICAgICAgdGhyZWFkLmpvaW4oKQorICAg ICAgICBleGNlcHQgU3lzdGVtRXhpdDoKKyAgICAgICAgICAgIGlmIGhhbmRsZV9jbGVhbnVwOgor ICAgICAgICAgICAgICAgIGhhbmRsZV9jbGVhbnVwKCkKIAogICAgIHByaW50KAogICAgICAgICAi XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0iCkBAIC01NDMsNiArNzg3LDkgQEAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK ICAgICAgICAgdG90YWxfcGFzc2VkX2Nhc2VzID0gaW50KAogICAgICAgICAgICAgdGVzdF9yZXN1 bHRbc2VydmVyX3Jlc11bMF0pIC0gdG90YWxfZmFpbGVkIC0gdG90YWxfc2tpcHBlZAogCisgICAg ICAgIGlmIGxlbihmYWlsZWRfY2FzZXMpID4gMDoKKyAgICAgICAgICAgIGZhaWx1cmUgPSBUcnVl CisKICAgICAgICAgcHJpbnQoCiAgICAgICAgICAgICAiJXM6XG5cblx0JXMgdGVzdCVzIHBhc3Nl ZFxuXHQlcyB0ZXN0JXMgZmFpbGVkJXMlcyIKICAgICAgICAgICAgICJcblx0JXMgdGVzdCVzIHNr aXBwZWQlcyVzXG4iICUKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL3Rlc3RfY29uZmlnLmpz b24uaW4gYi93ZWIvcmVncmVzc2lvbi90ZXN0X2NvbmZpZy5qc29uLmluCmluZGV4IGFmMDYxYjku LmJiZDBlMWUgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL3Rlc3RfY29uZmlnLmpzb24uaW4K KysrIGIvd2ViL3JlZ3Jlc3Npb24vdGVzdF9jb25maWcuanNvbi5pbgpAQCAtMSw2ICsxLDEwIEBA CiB7CiAgICJoZWFkbGVzc19jaHJvbWUiOiBmYWxzZSwKICAgImRlZmF1bHRfYnJvd3NlciI6ICJD aHJvbWUiLAorICAic2VsZW5vaWRfaW5mbyI6eyJwZ0FkbWluX2RlZmF1bHRfc2VydmVyIjoiaXAg YWRkcmVzcyBvZiBtYWNoaW5lIHdoZXJlIHNvdXJjZSBjb2RlIGV4ZWN1dGVkIiwKKyAgICAgICAg ICAgICAgICAgICAgIm1heF9wYXJhbGxlbF9zZXNzaW9ucyI6ICIzIiwKKyAgICAgICAgICAgICAg ICAgICAgImNyb3NzX0Jyb3dzZXJzIjogW3sibmFtZSI6ICJicm93c2VyX25hbWUiLCJ2ZXJzaW9u IjogImJyb3dzZXJfdmVyc2lvbiJ9XSwKKyAgICAgICAgICAgICAgICAgICAgInNlbGVub2lkX3Vy bCI6ICJTZWxlbm9pZCBVcmwifSwKICAgInBnQWRtaW40X2xvZ2luX2NyZWRlbnRpYWxzIjogewog ICAgICJuZXdfcGFzc3dvcmQiOiAiTkVXUEFTU1dPUkQiLAogICAgICJsb2dpbl9wYXNzd29yZCI6 ICJQQVNTV09SRCIsCmRpZmYgLS1naXQgYS93ZWIveWFybi5sb2NrIGIvd2ViL3lhcm4ubG9jawpp bmRleCAxNTFlOThjLi42OTY5ODQ4IDEwMDY0NAotLS0gYS93ZWIveWFybi5sb2NrCisrKyBiL3dl Yi95YXJuLmxvY2sKQEAgLTI5LDEyICsyOSwxMiBAQAogICAgIHNlbXZlciAiXjUuNC4xIgogICAg IHNvdXJjZS1tYXAgIl4wLjUuMCIKIAotIkBiYWJlbC9nZW5lcmF0b3JAXjcuNi40IiwgIkBiYWJl bC9nZW5lcmF0b3JAXjcuOS4wIjoKLSAgdmVyc2lvbiAiNy45LjQiCi0gIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9nZW5lcmF0b3IvLS9nZW5lcmF0b3ItNy45 LjQudGd6IzEyNDQxZTkwYzNiM2M0MTU5Y2RlY2YzMTIwNzViZjFhOGNlMmRiY2UiCi0gIGludGVn cml0eSBzaGE1MTItcmpQOGFoYUR5L291aHJ2Q29VMUU1bXFhaXRXcnh3dU5HVStkeTFFcGFvSzQ4 alpheTRNZGtza0tHSU1ITFpOZXdnOHNBc3FwR1NSRUp3UDB6SDNZUUE9PQorIkBiYWJlbC9nZW5l cmF0b3JAXjcuNi40IiwgIkBiYWJlbC9nZW5lcmF0b3JAXjcuOS41IjoKKyAgdmVyc2lvbiAiNy45 LjUiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9nZW5l cmF0b3IvLS9nZW5lcmF0b3ItNy45LjUudGd6IzI3ZjA5MTc3NDFhY2M0MWU2ZWFhY2VkNmQ2OGY5 NmMzZmE5YWZhZjkiCisgIGludGVncml0eSBzaGE1MTItR2JOSXhWQjNaSmUzdExlRG0xSFNuMkFo dUQvbVZjeUxEcGd0TFhhNXRwbG1XckpkRi9lbHhCNTZYTnFDdUQ2c3p5TmtEaTZ3dW9LWGxuM1Fl Qm1DSFE9PQogICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC90eXBlcyIgIl43LjkuMCIKKyAg ICAiQGJhYmVsL3R5cGVzIiAiXjcuOS41IgogICAgIGpzZXNjICJeMi41LjEiCiAgICAgbG9kYXNo ICJeNC4xNy4xMyIKICAgICBzb3VyY2UtbWFwICJeMC41LjAiCkBAIC04MCwxNCArODAsMTQgQEAK ICAgICAiQGJhYmVsL3RyYXZlcnNlIiAiXjcuOC4zIgogICAgICJAYmFiZWwvdHlwZXMiICJeNy44 LjMiCiAKLSJAYmFiZWwvaGVscGVyLWZ1bmN0aW9uLW5hbWVAXjcuOC4zIjoKLSAgdmVyc2lvbiAi Ny44LjMiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9o ZWxwZXItZnVuY3Rpb24tbmFtZS8tL2hlbHBlci1mdW5jdGlvbi1uYW1lLTcuOC4zLnRneiNlZWVi NjY1YTAxYjFmMTEwNjhlOWZiODZhZDU2YTFjYjFhODI0Y2NhIgotICBpbnRlZ3JpdHkgc2hhNTEy LUJDeGdYMUJDMmhEL29CbElGVWdPQ1FET1BWOG5TSU54Q3dNM285M3hQNFA5RnE2YVY1c2d2MmNP T0lURE10Q2ZRKzNQdkhwM2w2ODlYWnZBTTlReU9BPT0KKyJAYmFiZWwvaGVscGVyLWZ1bmN0aW9u LW5hbWVAXjcuOC4zIiwgIkBiYWJlbC9oZWxwZXItZnVuY3Rpb24tbmFtZUBeNy45LjUiOgorICB2 ZXJzaW9uICI3LjkuNSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v QGJhYmVsL2hlbHBlci1mdW5jdGlvbi1uYW1lLy0vaGVscGVyLWZ1bmN0aW9uLW5hbWUtNy45LjUu dGd6IzJiNTM4MjBkMzUyNzUxMjBlMTg3NGE4MmU1YWFiZTEzNzY5MjBhNWMiCisgIGludGVncml0 eSBzaGE1MTItSlZjUVplWE01OUNkMXFhbkRVeHY5ZmdKcHQzTmVLVWFxQnFVRXZmbVErQkNPS3Ey eFVnYVdaVzJocjBka2J5Smdlell1cGxFb2g1a25tcm5TNjhlZnc9PQogICBkZXBlbmRlbmNpZXM6 CiAgICAgIkBiYWJlbC9oZWxwZXItZ2V0LWZ1bmN0aW9uLWFyaXR5IiAiXjcuOC4zIgogICAgICJA YmFiZWwvdGVtcGxhdGUiICJeNy44LjMiCi0gICAgIkBiYWJlbC90eXBlcyIgIl43LjguMyIKKyAg ICAiQGJhYmVsL3R5cGVzIiAiXjcuOS41IgogCiAiQGJhYmVsL2hlbHBlci1nZXQtZnVuY3Rpb24t YXJpdHlAXjcuOC4zIjoKICAgdmVyc2lvbiAiNy44LjMiCkBAIC0xODUsMTAgKzE4NSwxMCBAQAog ICBkZXBlbmRlbmNpZXM6CiAgICAgIkBiYWJlbC90eXBlcyIgIl43LjguMyIKIAotIkBiYWJlbC9o ZWxwZXItdmFsaWRhdG9yLWlkZW50aWZpZXJAXjcuOS4wIjoKLSAgdmVyc2lvbiAiNy45LjAiCi0g IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9oZWxwZXItdmFs aWRhdG9yLWlkZW50aWZpZXIvLS9oZWxwZXItdmFsaWRhdG9yLWlkZW50aWZpZXItNy45LjAudGd6 I2FkNTM1NjJhN2ZjMjliM2I5YTkxYmJmN2QxMDM5N2ZkMTQ2MzQ2ZWQiCi0gIGludGVncml0eSBz aGE1MTItNkc4YlFLak9oK29mNFBWL1RoRG0vclJxbFU3K0lHb0p1b2ZwYWdVNUdsRWwyOVZ2MFJH cXF0ODZaR1JWOFp1U09ZM28rOHlYbDV5NzgyU01jRzdTSHc9PQorIkBiYWJlbC9oZWxwZXItdmFs aWRhdG9yLWlkZW50aWZpZXJAXjcuOS4wIiwgIkBiYWJlbC9oZWxwZXItdmFsaWRhdG9yLWlkZW50 aWZpZXJAXjcuOS41IjoKKyAgdmVyc2lvbiAiNy45LjUiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9oZWxwZXItdmFsaWRhdG9yLWlkZW50aWZpZXIvLS9o ZWxwZXItdmFsaWRhdG9yLWlkZW50aWZpZXItNy45LjUudGd6IzkwOTc3YThlNmZiZjZiNDMxYTdk YzMxNzUyZWVlMjMzYmYwNTJkODAiCisgIGludGVncml0eSBzaGE1MTItLzhhckxLVUZxODgydzR0 V0dqOUpZelJwQWxaZ2lXVUorZHR0ZU5URHFyUkJ6OUlndWNrOVJuM3lrdUJEb1V3aDJUTzR0U0FK bHJ4RFVPWFdrbEplNGc9PQogCiAiQGJhYmVsL2hlbHBlci13cmFwLWZ1bmN0aW9uQF43LjguMyI6 CiAgIHZlcnNpb24gIjcuOC4zIgpAQCAtMjQ5LDEyICsyNDksMTMgQEAKICAgICAiQGJhYmVsL3Bs dWdpbi1zeW50YXgtanNvbi1zdHJpbmdzIiAiXjcuOC4wIgogCiAiQGJhYmVsL3BsdWdpbi1wcm9w b3NhbC1vYmplY3QtcmVzdC1zcHJlYWRAXjcuNi4yIjoKLSAgdmVyc2lvbiAiNy45LjAiCi0gIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tcHJvcG9z YWwtb2JqZWN0LXJlc3Qtc3ByZWFkLy0vcGx1Z2luLXByb3Bvc2FsLW9iamVjdC1yZXN0LXNwcmVh ZC03LjkuMC50Z3ojYTI4OTkzNjk5ZmMxM2RmMTY1OTk1MzYyNjkzOTYyYmE2YjA2MWQ2ZiIKLSAg aW50ZWdyaXR5IHNoYTUxMi1VZ3FCdjZianE0ZkRiOHVrdTlmK3djbTFKN1l4SjVuVDdXTy9qQnIw Y2wwUExLYjd0MU82Uk5SMWtaYmpneDJMUXRzREk5aHdvUVZtbjB5aFhlUXlvdz09CisgIHZlcnNp b24gIjcuOS41IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFi ZWwvcGx1Z2luLXByb3Bvc2FsLW9iamVjdC1yZXN0LXNwcmVhZC8tL3BsdWdpbi1wcm9wb3NhbC1v YmplY3QtcmVzdC1zcHJlYWQtNy45LjUudGd6IzNmZDY1OTExMzA2ZDg3NDYwMTRlYzBkMGNmNzhm MGUzOWExNDkxMTYiCisgIGludGVncml0eSBzaGE1MTItVlAyb1h2QWY3S0NZVHRoYlVId0JsZXdi bDFJcTA1OWY2c2VKR3N4TWl6YUNkZ0hJZWN6T3I3RkJxRUxoU3Fma0lsMDRGaThva3pXemw2M1VL YlFtbWc9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxz IiAiXjcuOC4zIgogICAgICJAYmFiZWwvcGx1Z2luLXN5bnRheC1vYmplY3QtcmVzdC1zcHJlYWQi ICJeNy44LjAiCisgICAgIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXBhcmFtZXRlcnMiICJeNy45 LjUiCiAKICJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLW9wdGlvbmFsLWNhdGNoLWJpbmRpbmdAXjcu Mi4wIjoKICAgdmVyc2lvbiAiNy44LjMiCkBAIC0zMzksMTMgKzM0MCwxMyBAQAogICAgIGxvZGFz aCAiXjQuMTcuMTMiCiAKICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1jbGFzc2VzQF43LjUuNSI6 Ci0gIHZlcnNpb24gIjcuOS4yIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9AYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1jbGFzc2VzLy0vcGx1Z2luLXRyYW5zZm9ybS1j bGFzc2VzLTcuOS4yLnRneiM4NjAzZmMzY2M0NDllMzFmZGJkYmMyNTdmNjc3MTc1MzZhMTFhZjhk IgotICBpbnRlZ3JpdHkgc2hhNTEyLVRDMnAzYlB6c2Z2U3NxQlpvMGtKbnVlbG5vSzlPM3dlbGtV cHFTcUJRdUJGNlI1TU4ycnlzb3ByaThrTnZ0bEdJYjJqbVVPN2kxNUlvb0FaSmpadU1RPT0KKyAg dmVyc2lvbiAiNy45LjUiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWNsYXNzZXMvLS9wbHVnaW4tdHJhbnNmb3JtLWNsYXNz ZXMtNy45LjUudGd6IzgwMDU5N2RkYjhhZWZjMmMyOTNlZDI3NDU5YzFmY2M5MzVhMjZjMmMiCisg IGludGVncml0eSBzaGE1MTIteDJrWm9JdUxDLy9PNWlBN1BFdmVjQjEwNW83VEx6Wm84b2ZCVmhQ NzlOK0RPM2phWCtLWWZ3dzlUUWNmQkVaRDBuaWtOeVljR0IxSUt0UnEzNnJkbWc9PQogICBkZXBl bmRlbmNpZXM6CiAgICAgIkBiYWJlbC9oZWxwZXItYW5ub3RhdGUtYXMtcHVyZSIgIl43LjguMyIK ICAgICAiQGJhYmVsL2hlbHBlci1kZWZpbmUtbWFwIiAiXjcuOC4zIgotICAgICJAYmFiZWwvaGVs cGVyLWZ1bmN0aW9uLW5hbWUiICJeNy44LjMiCisgICAgIkBiYWJlbC9oZWxwZXItZnVuY3Rpb24t bmFtZSIgIl43LjkuNSIKICAgICAiQGJhYmVsL2hlbHBlci1vcHRpbWlzZS1jYWxsLWV4cHJlc3Np b24iICJeNy44LjMiCiAgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuOC4zIgog ICAgICJAYmFiZWwvaGVscGVyLXJlcGxhY2Utc3VwZXJzIiAiXjcuOC42IgpAQCAtMzYwLDkgKzM2 MSw5IEBACiAgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuOC4zIgogCiAiQGJh YmVsL3BsdWdpbi10cmFuc2Zvcm0tZGVzdHJ1Y3R1cmluZ0BeNy42LjAiOgotICB2ZXJzaW9uICI3 LjguOCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3Bs dWdpbi10cmFuc2Zvcm0tZGVzdHJ1Y3R1cmluZy8tL3BsdWdpbi10cmFuc2Zvcm0tZGVzdHJ1Y3R1 cmluZy03LjguOC50Z3ojZmFkYjJiYzhlOTBjY2FmNTY1OGRlNmY4ZDRkMjJmZjYyNzJhMmY0YiIK LSAgaW50ZWdyaXR5IHNoYTUxMi1lUkp1NFZzMnJtdHRGQ2RoUFVNM2JWMFlvL3hQU2RQdzZNTDlL SHMvYmpCNGJMQTVIWGxidllYUE9ENXlBU29kR29kK2tyall4MjF4bTFRbUw4ZENKUT09CisgIHZl cnNpb24gIjcuOS41IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9A YmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1kZXN0cnVjdHVyaW5nLy0vcGx1Z2luLXRyYW5zZm9ybS1k ZXN0cnVjdHVyaW5nLTcuOS41LnRneiM3MmM5N2NmNWYzODYwNGFlYTNhYmYzYjkzNWIwZTE3YjFk Yjc2YTUwIgorICBpbnRlZ3JpdHkgc2hhNTEyLWozT0VzR2VsOG5ITC9pdXN2L21SZDVmWVozRHJP eFdDODJ4MG9nbWROL3ZIZkFQNE1ZdytBRktZYW56V2xrdE53aWtLdmx6VVYvL2FmQlc1RlRwMTdR PT0KICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIgIl43 LjguMyIKIApAQCAtNDc3LDEwICs0NzgsMTAgQEAKICAgICAiQGJhYmVsL2hlbHBlci1wbHVnaW4t dXRpbHMiICJeNy44LjMiCiAgICAgIkBiYWJlbC9oZWxwZXItcmVwbGFjZS1zdXBlcnMiICJeNy44 LjMiCiAKLSJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1wYXJhbWV0ZXJzQF43LjQuNCI6Ci0gIHZl cnNpb24gIjcuOS4zIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9A YmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1wYXJhbWV0ZXJzLy0vcGx1Z2luLXRyYW5zZm9ybS1wYXJh bWV0ZXJzLTcuOS4zLnRneiMzMDI4ZDBjYzIwZGRjNzMzMTY2YzZlOWM4NTM0NTU5Y2VlMDlmNTRh IgotICBpbnRlZ3JpdHkgc2hhNTEyLWZ6clFGUWhwN21JaE96bU90UGlLZmZ2Q1lRU0sxME5SOHQ2 QkJ6MnlQYmVVSGI5T0xXOFJaR3RnRFJCbjh6MmhHY3d2S0RMM3ZDN29qUFRMTnhtcUVnPT0KKyJA YmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1wYXJhbWV0ZXJzQF43LjQuNCIsICJAYmFiZWwvcGx1Z2lu LXRyYW5zZm9ybS1wYXJhbWV0ZXJzQF43LjkuNSI6CisgIHZlcnNpb24gIjcuOS41IgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXRyYW5zZm9y bS1wYXJhbWV0ZXJzLy0vcGx1Z2luLXRyYW5zZm9ybS1wYXJhbWV0ZXJzLTcuOS41LnRneiMxNzNi MjY1NzQ2ZjVlMTViMmFmZTUyN2VlZGE2NWI3MzYyM2EwNzk1IgorICBpbnRlZ3JpdHkgc2hhNTEy LTArMUZoSG5NZmo2bElJaFZ2UzRLR1FKZXVoZTFHSS8vaDV1cHRLNFB2THQrQkdCeHNvVUpiZDMv SVcwMDJ5ay8vNnNaUGxGZ3NHMWhZNk9ITGN5NmtBPT0KICAgZGVwZW5kZW5jaWVzOgogICAgICJA YmFiZWwvaGVscGVyLWdldC1mdW5jdGlvbi1hcml0eSIgIl43LjguMyIKICAgICAiQGJhYmVsL2hl bHBlci1wbHVnaW4tdXRpbHMiICJeNy44LjMiCkBAIC02MjQsMjYgKzYyNSwyNiBAQAogICAgICJA YmFiZWwvdHlwZXMiICJeNy44LjYiCiAKICJAYmFiZWwvdHJhdmVyc2VAXjcuNi4zIiwgIkBiYWJl bC90cmF2ZXJzZUBeNy44LjMiLCAiQGJhYmVsL3RyYXZlcnNlQF43LjguNiIsICJAYmFiZWwvdHJh dmVyc2VAXjcuOS4wIjoKLSAgdmVyc2lvbiAiNy45LjAiCi0gIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC90cmF2ZXJzZS8tL3RyYXZlcnNlLTcuOS4wLnRneiNk Mzg4MmMyODMwZTUxM2Y0ZmU0Y2VjOWZlNzZlYTFjYzc4NzQ3ODkyIgotICBpbnRlZ3JpdHkgc2hh NTEyLWpBWlFqMCtrbjRXVEhPNWRVWmtaS2hiRnJxWkU3SzVMQVE1SnlzTW5tdkdpait3T2RyKzhs V3FQZVcwQmNGNHdGd3JFWFh0ZEdPN3djVjZZUEpjZjN3PT0KKyAgdmVyc2lvbiAiNy45LjUiCisg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC90cmF2ZXJzZS8t L3RyYXZlcnNlLTcuOS41LnRneiM2ZTdjNTZiNDRlMmFjNzAxMWE5NDhjMjFlMjgzZGRkOWQ5ZGI5 N2EyIgorICBpbnRlZ3JpdHkgc2hhNTEyLWM0Z0gzanN2U3VHVWV6bFA2cnpTSjZqZjhmWWpMajNo c01aUngvblgwaCtmbUhOMHcrZWt1YlJySFBxbk1lYzBtZXljQTJud0NzSjdkQzhJUGVtMkZRPT0K ICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwvY29kZS1mcmFtZSIgIl43LjguMyIKLSAgICAi QGJhYmVsL2dlbmVyYXRvciIgIl43LjkuMCIKLSAgICAiQGJhYmVsL2hlbHBlci1mdW5jdGlvbi1u YW1lIiAiXjcuOC4zIgorICAgICJAYmFiZWwvZ2VuZXJhdG9yIiAiXjcuOS41IgorICAgICJAYmFi ZWwvaGVscGVyLWZ1bmN0aW9uLW5hbWUiICJeNy45LjUiCiAgICAgIkBiYWJlbC9oZWxwZXItc3Bs aXQtZXhwb3J0LWRlY2xhcmF0aW9uIiAiXjcuOC4zIgogICAgICJAYmFiZWwvcGFyc2VyIiAiXjcu OS4wIgotICAgICJAYmFiZWwvdHlwZXMiICJeNy45LjAiCisgICAgIkBiYWJlbC90eXBlcyIgIl43 LjkuNSIKICAgICBkZWJ1ZyAiXjQuMS4wIgogICAgIGdsb2JhbHMgIl4xMS4xLjAiCiAgICAgbG9k YXNoICJeNC4xNy4xMyIKIAotIkBiYWJlbC90eXBlc0BeNy42LjMiLCAiQGJhYmVsL3R5cGVzQF43 LjguMyIsICJAYmFiZWwvdHlwZXNAXjcuOC42IiwgIkBiYWJlbC90eXBlc0BeNy45LjAiOgotICB2 ZXJzaW9uICI3LjkuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v QGJhYmVsL3R5cGVzLy0vdHlwZXMtNy45LjAudGd6IzAwYjA2NGMzZGY4M2FkMzJiMmRiZjVmZjA3 MzEyYjE1YzdmMWVmYjUiCi0gIGludGVncml0eSBzaGE1MTItQlM5SktmWGt6ekpsOFJsdVc0Skdr bnpwaVVWN1pydlRheU02eWZxTFRWQkVuRnR5b3dWSU91NnJxeFJkNWNWTzZ5R29XZjRUOHU4ZGdL OW9CK0dDbmc9PQorIkBiYWJlbC90eXBlc0BeNy42LjMiLCAiQGJhYmVsL3R5cGVzQF43LjguMyIs ICJAYmFiZWwvdHlwZXNAXjcuOC42IiwgIkBiYWJlbC90eXBlc0BeNy45LjAiLCAiQGJhYmVsL3R5 cGVzQF43LjkuNSI6CisgIHZlcnNpb24gIjcuOS41IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9AYmFiZWwvdHlwZXMvLS90eXBlcy03LjkuNS50Z3ojODkyMzFmODI5 MTVhOGE1NjZhNzAzYjNiMjAxMzNmNzNkYTZiOTQ0NCIKKyAgaW50ZWdyaXR5IHNoYTUxMi1Yam52 TnFlbms4MThyNXpNYWJhK3NMUWpuYmRhMzFVZlVVUnYzZWkwcVBRdzR1K2oyak15SjViMTF5OFpI WVRSU0kzTm5JblFra2tSVDRmTHFxUGRIZz09CiAgIGRlcGVuZGVuY2llczoKLSAgICAiQGJhYmVs L2hlbHBlci12YWxpZGF0b3ItaWRlbnRpZmllciIgIl43LjkuMCIKKyAgICAiQGJhYmVsL2hlbHBl ci12YWxpZGF0b3ItaWRlbnRpZmllciIgIl43LjkuNSIKICAgICBsb2Rhc2ggIl40LjE3LjEzIgog ICAgIHRvLWZhc3QtcHJvcGVydGllcyAiXjIuMC4wIgogCkBAIC02NjAsOSArNjYxLDkgQEAKICAg aW50ZWdyaXR5IHNoYTUxMi1PTmhhS1BJdWZ6enJsTmJxdFdGRmQramxuZW1YNmxKQWdxOVplaVp0 UzdJMVBJZi9sYTdDVzRtODNyVFhSblZuc01iVzJrNTZwR1l1N0FVRkpEOVBvdz09CiAKICJAdHlw ZXMvbm9kZUAqIjoKLSAgdmVyc2lvbiAiMTMuMTEuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vQHR5cGVzL25vZGUvLS9ub2RlLTEzLjExLjAudGd6IzM5MGVhMjAy NTM5YzYxYzhmYTZiYTQ0MjhiNTdlMDViYzM2ZGM0N2IiCi0gIGludGVncml0eSBzaGE1MTItdU00 bW5tc0lJUEsveWVPKzQyRjJSUWhHVUlzMzlLMlJGbXVnY0pBTnBwWGU2SjFudkg4N1B2elBaWXB6 YTdYaGhzOFluOXlJQVZkTFo4NHo2MSsweFE9PQorICB2ZXJzaW9uICIxMy4xMS4xIgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AdHlwZXMvbm9kZS8tL25vZGUtMTMu MTEuMS50Z3ojNDlhMmE4M2RmOWQyNmRhYWNlYWQzMGQwY2NjODc2MmIxMjhkNTNjNyIKKyAgaW50 ZWdyaXR5IHNoYTUxMi1lV1FHUDNxdHh3TDhGR25lUnJDNUR3ckpMR040L2RIMWNsTlR1TGZOODFI Q3J4VnR4Ump5Z0RUVW9aSjVBU2xERWVvMHBwWUZRalFJbFhodFhwT242Zz09CiAKICJAdHlwZXMv cUBeMS41LjEiOgogICB2ZXJzaW9uICIxLjUuMiIKQEAgLTgzNyw2ICs4MzgsMTEgQEAgSlNPTlN0 cmVhbUBeMS4wLjM6CiAgICAganNvbnBhcnNlICJeMS4yLjAiCiAgICAgdGhyb3VnaCAiPj0yLjIu NyA8MyIKIAorYWJicmV2QDE6CisgIHZlcnNpb24gIjEuMS4xIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hYmJyZXYvLS9hYmJyZXYtMS4xLjEudGd6I2Y4ZjJjODg3 YWQxMGJmNjdmNjM0ZjAwNWI2OTg3ZmVkMzE3OWFhYzgiCisgIGludGVncml0eSBzaGE1MTItbm5l OS9JaVEvaHpJaFk2cGREbmJCdHo3RGpQVEtyWTAwUC96dlBTbTVwT0ZrbDZ4dUdyR25Ybi9WdFRO TmZOdEFmWjkvMVJ0ZWhrc3pVOXFjVGlpMFE9PQorCiBhY2NlcHRzQH4xLjMuNCwgYWNjZXB0c0B+ MS4zLjc6CiAgIHZlcnNpb24gIjEuMy43IgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9hY2NlcHRzLy0vYWNjZXB0cy0xLjMuNy50Z3ojNTMxYmM3MjY1MTdhM2IyYjQx Zjg1MDAyMWM2Y2MxNWVhYWI1MDdjZCIKQEAgLTk3Myw3ICs5NzksNyBAQCBhbnltYXRjaEB+My4x LjE6CiAgICAgbm9ybWFsaXplLXBhdGggIl4zLjAuMCIKICAgICBwaWNvbWF0Y2ggIl4yLjAuNCIK IAotYXByb2JhQF4xLjEuMToKK2Fwcm9iYUBeMS4wLjMsIGFwcm9iYUBeMS4xLjE6CiAgIHZlcnNp b24gIjEuMi4wIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hcHJv YmEvLS9hcHJvYmEtMS4yLjAudGd6IzY4MDJlNjI2NGVmZDE4Yzc5MGExYjBkNTE3ZjBmMjYyN2Jm MmM5NGEiCiAgIGludGVncml0eSBzaGE1MTItWTlKNlpqWHRvWWg4Um5YVkNNT1UvdHREbWsxYUJq dW5xOXZPMHRhNXg4NVdEUWlRZlVGOXNJUEJJVGRiaWlJVmNCbzAzSGkzak14aWdCdHNkZGxYUnc9 PQpAQCAtOTkwLDYgKzk5NiwxNCBAQCBhcmNoaXZlLXR5cGVAXjQuMC4wOgogICBkZXBlbmRlbmNp ZXM6CiAgICAgZmlsZS10eXBlICJeNC4yLjAiCiAKK2FyZS13ZS10aGVyZS15ZXRAfjEuMS4yOgor ICB2ZXJzaW9uICIxLjEuNSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vYXJlLXdlLXRoZXJlLXlldC8tL2FyZS13ZS10aGVyZS15ZXQtMS4xLjUudGd6IzRiMzVjMjk0 NGYwNjJhOGJmY2RhNjY0MTA3NjAzNTBmZTlkZGZjMjEiCisgIGludGVncml0eSBzaGE1MTItNWhZ ZEFrWmxjRzh0T0x1alZEVGdDVCt1UFgwVm5wQUgyOGdXc0xmenBYWW03d1A2bXA1US9nWXlSN1lR MGNLVkpjWEpubDNqMmtwQmFuMTNQdFFmNnc9PQorICBkZXBlbmRlbmNpZXM6CisgICAgZGVsZWdh dGVzICJeMS4wLjAiCisgICAgcmVhZGFibGUtc3RyZWFtICJeMi4wLjYiCisKIGFyZ3BhcnNlQF4x LjAuNiwgYXJncGFyc2VAXjEuMC43OgogICB2ZXJzaW9uICIxLjAuMTAiCiAgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2FyZ3BhcnNlLy0vYXJncGFyc2UtMS4wLjEwLnRn eiNiY2Q2NzkxZWE1YWUwOTcyNWUxN2U1YWQ5ODgxMzRjZDQwYjNkOTExIgpAQCAtMTA5NCwxMiAr MTEwOCwxMiBAQCBhdG9iQF4yLjEuMjoKICAgaW50ZWdyaXR5IHNoYTUxMi1XbTZ1a29hT0dKaS83 M3AvY2wyR3ZMalRJNUpNMWsvTzE0aXNENzNZTUw4U3RySC83L2xSRmdtZzhuSUNaZ0QzYlpadmp3 Q0d4dE1PRDN3V05BdThjZz09CiAKIGF1dG9wcmVmaXhlckBeOS42LjQ6Ci0gIHZlcnNpb24gIjku Ny41IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hdXRvcHJlZml4 ZXIvLS9hdXRvcHJlZml4ZXItOS43LjUudGd6IzhkZjEwYjlmZjliNTgxNGE4ZDQxMWE1Y2ZiYWI5 Yzc5M2MzOTIzNzYiCi0gIGludGVncml0eSBzaGE1MTItVVJvNlp2dDdWWWlmb21lQWZKbE1GbllE aG93MXJrMmJ1ZndrYmFtUEVBdFFGY0wxMW1vTGs0UG5SN245dmx1N00rQmtYQVprSEZBMG1JY1k3 dGpRRmc9PQorICB2ZXJzaW9uICI5LjcuNiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vYXV0b3ByZWZpeGVyLy0vYXV0b3ByZWZpeGVyLTkuNy42LnRneiM2M2FjNWJi YzBjZTc5MzRlNjk5NzIwN2Q1YmIwMGQ2OGZhODI5M2E0IgorICBpbnRlZ3JpdHkgc2hhNTEyLUY3 Y1lwYk43dVZWaEFDWlRlZUllZWFsd2RHTTZ3TXRmV0FSVkxUeTV4bUt0Z1ZkQk5KdmJEUm9DSzNZ TzFvcmNzN2d2L0t3WWxiM2lYd3U5VWc5QmtRPT0KICAgZGVwZW5kZW5jaWVzOgotICAgIGJyb3dz ZXJzbGlzdCAiXjQuMTEuMCIKLSAgICBjYW5pdXNlLWxpdGUgIl4xLjAuMzAwMDEwMzYiCisgICAg YnJvd3NlcnNsaXN0ICJeNC4xMS4xIgorICAgIGNhbml1c2UtbGl0ZSAiXjEuMC4zMDAwMTAzOSIK ICAgICBjaGFsayAiXjIuNC4yIgogICAgIG5vcm1hbGl6ZS1yYW5nZSAiXjAuMS4yIgogICAgIG51 bTJmcmFjdGlvbiAiXjEuMi4yIgpAQCAtMTg4Miw2MSArMTg5Niw3IEBAIGJyb3dzZXJpZnktemxp YkBeMC4yLjAsIGJyb3dzZXJpZnktemxpYkB+MC4yLjA6CiAgIGRlcGVuZGVuY2llczoKICAgICBw YWtvICJ+MS4wLjUiCiAKLWJyb3dzZXJpZnlAXjE2LjEuMDoKLSAgdmVyc2lvbiAiMTYuNS4xIgot ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9icm93c2VyaWZ5Ly0vYnJv d3NlcmlmeS0xNi41LjEudGd6IzNjMTNjOTc0MzY4MDI5MzBkNWMzYWUyODY1OGRkYzMzYmZkMzdk YzIiCi0gIGludGVncml0eSBzaGE1MTItRVFYMGg1OVBwKzBHdFNSYjVyTDZPVGZydHRsenYrdXlh VVZsSzZHWDN3MTFTUTBqS1BLeWpDLzU0UmhQUjJpYjJLbWZjRUxNMDZlOEZ4Y0k1WE5VMkE9PQot ICBkZXBlbmRlbmNpZXM6Ci0gICAgSlNPTlN0cmVhbSAiXjEuMC4zIgotICAgIGFzc2VydCAiXjEu NC4wIgotICAgIGJyb3dzZXItcGFjayAiXjYuMC4xIgotICAgIGJyb3dzZXItcmVzb2x2ZSAiXjEu MTEuMCIKLSAgICBicm93c2VyaWZ5LXpsaWIgIn4wLjIuMCIKLSAgICBidWZmZXIgIn41LjIuMSIK LSAgICBjYWNoZWQtcGF0aC1yZWxhdGl2ZSAiXjEuMC4wIgotICAgIGNvbmNhdC1zdHJlYW0gIl4x LjYuMCIKLSAgICBjb25zb2xlLWJyb3dzZXJpZnkgIl4xLjEuMCIKLSAgICBjb25zdGFudHMtYnJv d3NlcmlmeSAifjEuMC4wIgotICAgIGNyeXB0by1icm93c2VyaWZ5ICJeMy4wLjAiCi0gICAgZGVm aW5lZCAiXjEuMC4wIgotICAgIGRlcHMtc29ydCAiXjIuMC4wIgotICAgIGRvbWFpbi1icm93c2Vy ICJeMS4yLjAiCi0gICAgZHVwbGV4ZXIyICJ+MC4xLjIiCi0gICAgZXZlbnRzICJeMi4wLjAiCi0g ICAgZ2xvYiAiXjcuMS4wIgotICAgIGhhcyAiXjEuMC4wIgotICAgIGh0bWxlc2NhcGUgIl4xLjEu MCIKLSAgICBodHRwcy1icm93c2VyaWZ5ICJeMS4wLjAiCi0gICAgaW5oZXJpdHMgIn4yLjAuMSIK LSAgICBpbnNlcnQtbW9kdWxlLWdsb2JhbHMgIl43LjAuMCIKLSAgICBsYWJlbGVkLXN0cmVhbS1z cGxpY2VyICJeMi4wLjAiCi0gICAgbWtkaXJwLWNsYXNzaWMgIl4wLjUuMiIKLSAgICBtb2R1bGUt ZGVwcyAiXjYuMC4wIgotICAgIG9zLWJyb3dzZXJpZnkgIn4wLjMuMCIKLSAgICBwYXJlbnRzICJe MS4wLjEiCi0gICAgcGF0aC1icm93c2VyaWZ5ICJ+MC4wLjAiCi0gICAgcHJvY2VzcyAifjAuMTEu MCIKLSAgICBwdW55Y29kZSAiXjEuMy4yIgotICAgIHF1ZXJ5c3RyaW5nLWVzMyAifjAuMi4wIgot ICAgIHJlYWQtb25seS1zdHJlYW0gIl4yLjAuMCIKLSAgICByZWFkYWJsZS1zdHJlYW0gIl4yLjAu MiIKLSAgICByZXNvbHZlICJeMS4xLjQiCi0gICAgc2hhc3VtICJeMS4wLjAiCi0gICAgc2hlbGwt cXVvdGUgIl4xLjYuMSIKLSAgICBzdHJlYW0tYnJvd3NlcmlmeSAiXjIuMC4wIgotICAgIHN0cmVh bS1odHRwICJeMy4wLjAiCi0gICAgc3RyaW5nX2RlY29kZXIgIl4xLjEuMSIKLSAgICBzdWJhcmcg Il4xLjAuMCIKLSAgICBzeW50YXgtZXJyb3IgIl4xLjEuMSIKLSAgICB0aHJvdWdoMiAiXjIuMC4w IgotICAgIHRpbWVycy1icm93c2VyaWZ5ICJeMS4wLjEiCi0gICAgdHR5LWJyb3dzZXJpZnkgIjAu MC4xIgotICAgIHVybCAifjAuMTEuMCIKLSAgICB1dGlsICJ+MC4xMC4xIgotICAgIHZtLWJyb3dz ZXJpZnkgIl4xLjAuMCIKLSAgICB4dGVuZCAiXjQuMC4wIgotCi1icm93c2VyaWZ5QH4xNi4yLjM6 Citicm93c2VyaWZ5QF4xNi4xLjAsIGJyb3dzZXJpZnlAfjE2LjIuMzoKICAgdmVyc2lvbiAiMTYu Mi4zIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9icm93c2VyaWZ5 Ly0vYnJvd3NlcmlmeS0xNi4yLjMudGd6IzdlZTZlNjU0YmE0ZjkyYmNlNmFiMzU5OWMzNDg1YjFj YzdhMGFkMGIiCiAgIGludGVncml0eSBzaGE1MTItelF0L0dkMStXK0lZK2gveFgyTllNVzRvclFX aHFTd3lWK3hzYmx5Y1R0cE91QjI3aDFmWmhoTlF1aXBKNHQ3OW9odzRQNG1NZW0wanAvWmtJU1F0 alE9PQpAQCAtMTk5MCw3ICsxOTUwLDcgQEAgYnJvd3NlcmlmeUB+MTYuMi4zOgogICAgIHZtLWJy b3dzZXJpZnkgIl4xLjAuMCIKICAgICB4dGVuZCAiXjQuMC4wIgogCi1icm93c2Vyc2xpc3RAXjQu MC4wLCBicm93c2Vyc2xpc3RAXjQuMTEuMCwgYnJvd3NlcnNsaXN0QF40LjYuMCwgYnJvd3NlcnNs aXN0QF40LjguMzoKK2Jyb3dzZXJzbGlzdEBeNC4wLjAsIGJyb3dzZXJzbGlzdEBeNC4xMS4xLCBi cm93c2Vyc2xpc3RAXjQuNi4wLCBicm93c2Vyc2xpc3RAXjQuOC4zOgogICB2ZXJzaW9uICI0LjEx LjEiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Jyb3dzZXJzbGlz dC8tL2Jyb3dzZXJzbGlzdC00LjExLjEudGd6IzkyZjg1NWVlODhkNmUwNTBlN2U3MzExZDk4Nzk5 MjAxNGYxYTFmMWIiCiAgIGludGVncml0eSBzaGE1MTItRENUcjNrRHJLRVlOdzZKYjlIRnhWTFFO YXVlOHorMFpmUkJSam1DdW5LREVYRUJhaktEajJZK1VlbGcrUGkyOU9udmFTR3dqT3NuUnlORWtY ekhnNWc9PQpAQCAtMjA1MCwxNCArMjAxMCw2IEBAIGJ1ZmZlckBeNS4wLjIsIGJ1ZmZlckBeNS4y LjE6CiAgICAgYmFzZTY0LWpzICJeMS4wLjIiCiAgICAgaWVlZTc1NCAiXjEuMS40IgogCi1idWZm ZXJAfjUuMi4xOgotICB2ZXJzaW9uICI1LjIuMSIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vYnVmZmVyLy0vYnVmZmVyLTUuMi4xLnRneiNkZDU3ZmEwZjEwOWFjNTlj NjAyNDc5MDQ0ZGNhN2I4YjNkMGI3MWQ2IgotICBpbnRlZ3JpdHkgc2hhNTEyLWMrS28wbG9EYUZm dVBXaUwwMmxzOVhkM0dPM2NQVm1Vb2JRNnQzclhOVWszMDR1NmhHcSs4Ti9rRmkrUUVJS2h6SzN1 d29sVmhMenN6bWZMbU1MbnFnPT0KLSAgZGVwZW5kZW5jaWVzOgotICAgIGJhc2U2NC1qcyAiXjEu MC4yIgotICAgIGllZWU3NTQgIl4xLjEuNCIKLQogYnVpbHRpbi1zdGF0dXMtY29kZXNAXjMuMC4w OgogICB2ZXJzaW9uICIzLjAuMCIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vYnVpbHRpbi1zdGF0dXMtY29kZXMvLS9idWlsdGluLXN0YXR1cy1jb2Rlcy0zLjAuMC50 Z3ojODU5ODI4NzhlMjFiOThlMWM2NjQyNWUwM2QwMTc0Nzg4ZjU2OWVlOCIKQEAgLTIyMDMsMTAg KzIxNTUsMTAgQEAgY2FuaXVzZS1hcGlAXjMuMC4wOgogICAgIGxvZGFzaC5tZW1vaXplICJeNC4x LjIiCiAgICAgbG9kYXNoLnVuaXEgIl40LjUuMCIKIAotY2FuaXVzZS1saXRlQF4xLjAuMCwgY2Fu aXVzZS1saXRlQF4xLjAuMzAwMDEwMzYsIGNhbml1c2UtbGl0ZUBeMS4wLjMwMDAxMDM4OgotICB2 ZXJzaW9uICIxLjAuMzAwMDEwMzkiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2Nhbml1c2UtbGl0ZS8tL2Nhbml1c2UtbGl0ZS0xLjAuMzAwMDEwMzkudGd6I2IzODE0 YTFjMzhmZmViMjM1NjdmODMyMzUwMGMwOTUyNmE1NzdiYmUiCi0gIGludGVncml0eSBzaGE1MTIt U2V6YldDVFQzNGV5Rm9XSGd4OFVXc283WXR2dE03b29zbUZvWGJDa2RDNnFKelJmQlRlVGdFOVJF dEt0aXVLWHVNd1dUWkV2ZG5GTkdBeVZNb3J2OFE9PQorY2FuaXVzZS1saXRlQF4xLjAuMCwgY2Fu aXVzZS1saXRlQF4xLjAuMzAwMDEwMzgsIGNhbml1c2UtbGl0ZUBeMS4wLjMwMDAxMDM5OgorICB2 ZXJzaW9uICIxLjAuMzAwMDEwNDAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2Nhbml1c2UtbGl0ZS8tL2Nhbml1c2UtbGl0ZS0xLjAuMzAwMDEwNDAudGd6IzEwM2Zj OGU2ZWIxZDczOTdlOTUxMzRjZDBlOTk2NzQzMzUzZDU4ZWEiCisgIGludGVncml0eSBzaGE1MTIt RXAwdEVQZUk1d0N2bUpOclhqRTNldGdmSStsa2wxZlREVTZZM1pIMW1ocmprUGxWSTlXNHBjS2JN bytCUUxwRVdLVllZcDJFbVlhUnNxcFBDM2s3bFE9PQogCiBjYXdAXjIuMC4wLCBjYXdAXjIuMC4x OgogICB2ZXJzaW9uICIyLjAuMSIKQEAgLTIyNDgsMjIgKzIyMDAsNyBAQCBjaGVjay10eXBlc0Be OC4wLjM6CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2NoZWNrLXR5 cGVzLy0vY2hlY2stdHlwZXMtOC4wLjMudGd6IzMzNTZjY2ExOWM4ODk1NDRmMmQ3YTk1ZWQ0OWNl NTA4YTBlY2Y1NTIiCiAgIGludGVncml0eSBzaGE1MTItWXBlS1puZ1VtRzY1ckx1ZEo0dGFVN1ZM a09DVE1oTmwvdTRjdE5DNTZMUVMvekpUeU5IMExydHdtMXRmVHNiTGx3dmxmc0EyZDFjOHZDZi9L aDJLd1E9PQogCi0iY2hva2lkYXJAPj0yLjAuMCA8NC4wLjAiLCBjaG9raWRhckBeMy4wLjA6Ci0g IHZlcnNpb24gIjMuMy4xIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9jaG9raWRhci8tL2Nob2tpZGFyLTMuMy4xLnRneiNjODRlNWIzZDE4ZDlhNGQ3NzU1OGZlZjQ2 NmIxYmYxNmJiZWIzNDUwIgotICBpbnRlZ3JpdHkgc2hhNTEyLTRRWUNFV09jSzNPSnJ4d3Z5eUFP eEZ1aHB2T1ZDWWtyMzNMUGZGTkJqQUQvdzNzRXpXc3AyQlVPa0k0bDliSHZXaW9BZDByYzZObEhV T0VhV2tUZXFnPT0KLSAgZGVwZW5kZW5jaWVzOgotICAgIGFueW1hdGNoICJ+My4xLjEiCi0gICAg YnJhY2VzICJ+My4wLjIiCi0gICAgZ2xvYi1wYXJlbnQgIn41LjEuMCIKLSAgICBpcy1iaW5hcnkt cGF0aCAifjIuMS4wIgotICAgIGlzLWdsb2IgIn40LjAuMSIKLSAgICBub3JtYWxpemUtcGF0aCAi fjMuMC4wIgotICAgIHJlYWRkaXJwICJ+My4zLjAiCi0gIG9wdGlvbmFsRGVwZW5kZW5jaWVzOgot ICAgIGZzZXZlbnRzICJ+Mi4xLjIiCi0KLWNob2tpZGFyQF4yLjEuMSwgY2hva2lkYXJAXjIuMS44 OgorImNob2tpZGFyQD49Mi4wLjAgPDQuMC4wIiwgY2hva2lkYXJAXjIuMS4xLCBjaG9raWRhckBe Mi4xLjg6CiAgIHZlcnNpb24gIjIuMS44IgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9jaG9raWRhci8tL2Nob2tpZGFyLTIuMS44LnRneiM4MDRiM2E3YjZhOTkzNThj M2M1YzYxZTcxZDg3MjhmMDQxY2ZmOTE3IgogICBpbnRlZ3JpdHkgc2hhNTEyLVptWlVhemZPemYw TnZlN2R1aUNLRDIzUEZTQ3M0SlBvWXljY2pVRkYzYVFrUWFkcUJoZnpoamt3QkgybU5PRzljVEJ3 aGFtTTM3RUlzSWtadzNuUmdnPT0KQEAgLTIyODIsNiArMjIxOSwyMSBAQCBjaG9raWRhckBeMi4x LjEsIGNob2tpZGFyQF4yLjEuODoKICAgb3B0aW9uYWxEZXBlbmRlbmNpZXM6CiAgICAgZnNldmVu dHMgIl4xLjIuNyIKIAorY2hva2lkYXJAXjMuMC4wOgorICB2ZXJzaW9uICIzLjMuMSIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY2hva2lkYXIvLS9jaG9raWRhci0z LjMuMS50Z3ojYzg0ZTViM2QxOGQ5YTRkNzc1NThmZWY0NjZiMWJmMTZiYmViMzQ1MCIKKyAgaW50 ZWdyaXR5IHNoYTUxMi00UVlDRVdPY0szT0pyeHd2eXlBT3hGdWhwdk9WQ1lrcjMzTFBmRk5CakFE L3czc0V6V3NwMkJVT2tJNGw5Ykh2V2lvQWQwcmM2TmxIVU9FYVdrVGVxZz09CisgIGRlcGVuZGVu Y2llczoKKyAgICBhbnltYXRjaCAifjMuMS4xIgorICAgIGJyYWNlcyAifjMuMC4yIgorICAgIGds b2ItcGFyZW50ICJ+NS4xLjAiCisgICAgaXMtYmluYXJ5LXBhdGggIn4yLjEuMCIKKyAgICBpcy1n bG9iICJ+NC4wLjEiCisgICAgbm9ybWFsaXplLXBhdGggIn4zLjAuMCIKKyAgICByZWFkZGlycCAi fjMuMy4wIgorICBvcHRpb25hbERlcGVuZGVuY2llczoKKyAgICBmc2V2ZW50cyAifjIuMS4yIgor CiBjaG93bnJAXjEuMS4xLCBjaG93bnJAXjEuMS4yOgogICB2ZXJzaW9uICIxLjEuNCIKICAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY2hvd25yLy0vY2hvd25yLTEuMS40 LnRneiM2ZmM5ZDdiNDJkMzJhNTgzNTk2MzM3NjY2ZTdkMDgwODRkYTJjYzZiIgpAQCAtMjM2Myw2 ICsyMzE1LDExIEBAIGNvYUBeMi4wLjI6CiAgICAgY2hhbGsgIl4yLjQuMSIKICAgICBxICJeMS4x LjIiCiAKK2NvZGUtcG9pbnQtYXRAXjEuMC4wOgorICB2ZXJzaW9uICIxLjEuMCIKKyAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY29kZS1wb2ludC1hdC8tL2NvZGUtcG9p bnQtYXQtMS4xLjAudGd6IzBkMDcwYjRkMDQzYTViZWEzM2EyZjFhNDBlMmVkYjNkOWE0Y2NmNzci CisgIGludGVncml0eSBzaGExLURRY0xUUVE2Vytvem92R2tEaTdiUFpwTXozYz0KKwogY29kZW1p cnJvckBeNS41MC4wOgogICB2ZXJzaW9uICI1LjUyLjIiCiAgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2NvZGVtaXJyb3IvLS9jb2RlbWlycm9yLTUuNTIuMi50Z3ojYzI5 ZTFmNzE3OWY4NWViMGRkMTdjMDU4NmZhODEwZTQ4MzhmZjU4NCIKQEAgLTIzODMsMTYgKzIzNDAs MTEgQEAgY29sb3ItY29udmVydEBeMS45LjAsIGNvbG9yLWNvbnZlcnRAXjEuOS4xOgogICBkZXBl bmRlbmNpZXM6CiAgICAgY29sb3ItbmFtZSAiMS4xLjMiCiAKLWNvbG9yLW5hbWVAMS4xLjM6Citj b2xvci1uYW1lQDEuMS4zLCBjb2xvci1uYW1lQF4xLjAuMDoKICAgdmVyc2lvbiAiMS4xLjMiCiAg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2NvbG9yLW5hbWUvLS9jb2xv ci1uYW1lLTEuMS4zLnRneiNhN2QwNTU4YmQ4OWM0MmY3OTVkZDQyMzI4Zjc0MDgzMWNhNTNiYzI1 IgogICBpbnRlZ3JpdHkgc2hhMS1wOUJWaTlpY1F2ZVYzVUl5ajNRSU1jcFR2Q1U9CiAKLWNvbG9y LW5hbWVAXjEuMC4wOgotICB2ZXJzaW9uICIxLjEuNCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vY29sb3ItbmFtZS8tL2NvbG9yLW5hbWUtMS4xLjQudGd6I2MyYTA5 YTg3YWNiZGU2OTU0M2RlNmY2M2ZhMzk5NWM4MjZjNTM2YTIiCi0gIGludGVncml0eSBzaGE1MTIt ZE95KzNBdVczYTJ3TmJaSEl1TVpwVGNnakd1TFUvdUJML3ViY1pGOU9YYkRvOGZmNE84eVZwNUJm MGVmUzh1RW9ZbzVxNEZ4N2RZOU9nUUdYZ0FzUUE9PQotCiBjb2xvci1zdHJpbmdAXjEuNS4yOgog ICB2ZXJzaW9uICIxLjUuMyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vY29sb3Itc3RyaW5nLy0vY29sb3Itc3RyaW5nLTEuNS4zLnRneiNjOWJiYzVmMDFiNThiNTQ5 MmYzZDY4NTc0NTljYjY1OTBjZTIwNGNjIgpAQCAtMjUwNCw2ICsyNDU2LDExIEBAIGNvbnNvbGUt YnJvd3NlcmlmeUBeMS4xLjA6CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL2NvbnNvbGUtYnJvd3NlcmlmeS8tL2NvbnNvbGUtYnJvd3NlcmlmeS0xLjIuMC50Z3ojNjcw NjNjZWY1N2NlYjZjZjQ5OTNhMmFiM2E1NTg0MGFlOGM0OTMzNiIKICAgaW50ZWdyaXR5IHNoYTUx Mi1aTWtZTy9Ma0YxN1F2Q1BxTTBneHc4eVV6aWdBT1pPU1dTSGc5MUZINm9yUzd2Y0VqNWRWWlRp ZE4yZlExNHlCU2RnOTdScWhTTndMVVhJbmQ1Mk9UQT09CiAKK2NvbnNvbGUtY29udHJvbC1zdHJp bmdzQF4xLjAuMCwgY29uc29sZS1jb250cm9sLXN0cmluZ3NAfjEuMS4wOgorICB2ZXJzaW9uICIx LjEuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY29uc29sZS1j b250cm9sLXN0cmluZ3MvLS9jb25zb2xlLWNvbnRyb2wtc3RyaW5ncy0xLjEuMC50Z3ojM2Q3Y2Y0 NDY0ZGI2NDQ2ZWE2NDRiZjRiMzk1MDdmOTg1MTAwOGU4ZSIKKyAgaW50ZWdyaXR5IHNoYTEtUFh6 MFJrMjJSRzZtUkw5TE9WQi9tRkVBam80PQorCiBjb25zb2xlLXN0cmVhbUBeMC4xLjE6CiAgIHZl cnNpb24gIjAuMS4xIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9j b25zb2xlLXN0cmVhbS8tL2NvbnNvbGUtc3RyZWFtLTAuMS4xLnRneiNhMDk1ZmUwN2IyMDQ2NTk1 NWYyZmFmZDI4YjVkNzJiY2NkOTQ5ZDQ0IgpAQCAtMjUyNiwxNCArMjQ4Myw3IEBAIGNvbnRlbnQt dHlwZUB+MS4wLjQ6CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Nv bnRlbnQtdHlwZS8tL2NvbnRlbnQtdHlwZS0xLjAuNC50Z3ojZTEzOGNjNzVlMDQwYzcyN2IxOTY2 ZmU1ZTVmOGM5YWVlMjU2ZmUzYiIKICAgaW50ZWdyaXR5IHNoYTUxMi1oSVAzRUVQczh0QjlBVDFM K05VcXR3T0FwczRtazJab2I4OU1XWE1IakhXZzltaWxGL2o0b3NublFMWEJDQkZCay90dklHL3RV YzltT1VKaVBCaFBYQT09CiAKLWNvbnZlcnQtc291cmNlLW1hcEBeMS4xLjAsIGNvbnZlcnQtc291 cmNlLW1hcEBeMS4xLjM6Ci0gIHZlcnNpb24gIjEuNy4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9jb252ZXJ0LXNvdXJjZS1tYXAvLS9jb252ZXJ0LXNvdXJjZS1t YXAtMS43LjAudGd6IzE3YTJjYjg4MmQ3Zjc3ZDM0OTA1ODVlMmNlNmM1MjQ0MjRhM2E0NDIiCi0g IGludGVncml0eSBzaGE1MTItNEZKa1h6S1hFREIxc25DRlpsTFA0Z3BDM0pJTGljQ3BHYnpHOWY5 Rzd0R3FHQ3pFVFEyaFdQcmNpbkE5b1U0d3RmMmJpVWFFSDUwNjVVbk1lUjMzb0E9PQotICBkZXBl bmRlbmNpZXM6Ci0gICAgc2FmZS1idWZmZXIgIn41LjEuMSIKLQotY29udmVydC1zb3VyY2UtbWFw QH4xLjEuMDoKK2NvbnZlcnQtc291cmNlLW1hcEBeMS4xLjAsIGNvbnZlcnQtc291cmNlLW1hcEBe MS4xLjMsIGNvbnZlcnQtc291cmNlLW1hcEB+MS4xLjA6CiAgIHZlcnNpb24gIjEuMS4zIgogICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jb252ZXJ0LXNvdXJjZS1tYXAv LS9jb252ZXJ0LXNvdXJjZS1tYXAtMS4xLjMudGd6IzQ4MjljODc3ZTlmZTQ5YjMxNjFmM2JmMzY3 Mzg4OGUyMDQ2OTk4NjAiCiAgIGludGVncml0eSBzaGExLVNDbklkK24rU2JNV0h6dnpaemlJNGdS cG1HQT0KQEAgLTI2MDIsOSArMjU1Miw5IEBAIGNvcmUtanNAXjIuNC4wOgogICBpbnRlZ3JpdHkg c2hhNTEyLTV3am5wYVQvM2RWK1hCNGJvckVzbkFZUWNobjAwWFNnVEFXS0RrRXF2K0s4S2V2amJ6 bW9mSzZoZko5VFpJbHBqMk4weFFwYXp5N1BpUlFpV0hxeldnPT0KIAogY29yZS1qc0BeMy4yLjEs IGNvcmUtanNAXjMuNi40OgotICB2ZXJzaW9uICIzLjYuNCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vY29yZS1qcy8tL2NvcmUtanMtMy42LjQudGd6IzQ0MGE4MzUz NmI0NTgxMTRiOWNiMmFjMTU4MGJhMzc3ZGM0NzA2NDciCi0gIGludGVncml0eSBzaGE1MTItNHBh REdTY05nWlAySVhYaWxhZmZMOVg3OTY4UnV2d2xrSzN4V3RaUlZxZ2Q4U1lOaVZLUkp2a0ZkMWFx cUV1UGZON0U2OFpIRXA5aERqNmxIajRIeXc9PQorICB2ZXJzaW9uICIzLjYuNSIKKyAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY29yZS1qcy8tL2NvcmUtanMtMy42LjUu dGd6IzczOTVkYzI3M2FmMzdmYjJlNTBlOWJkM2Q5ZmU4NDEyODUyMzFkMWEiCisgIGludGVncml0 eSBzaGE1MTItdlpWRUV3Wm9Jc0krdlBFdW9GOUlxZjVINy9NM2VlUXFXbFFuWWE4RlNLS2VQdVlU ZjVNV254YjVTREF6Q2E2MGIzSkJSUzVnOWIrRHE3YjF5L1JDckE9PQogCiBjb3JlLXV0aWwtaXNA fjEuMC4wOgogICB2ZXJzaW9uICIxLjAuMiIKQEAgLTI4OTYsNyArMjg0Niw3IEBAIGRlYnVnQD0z LjEuMCwgZGVidWdAfjMuMS4wOgogICBkZXBlbmRlbmNpZXM6CiAgICAgbXMgIjIuMC4wIgogCi1k ZWJ1Z0BeMy4wLjAsIGRlYnVnQF4zLjIuNjoKK2RlYnVnQF4zLjIuNjoKICAgdmVyc2lvbiAiMy4y LjYiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2RlYnVnLy0vZGVi dWctMy4yLjYudGd6I2U4M2QxN2RlMTZkOGE3ZWZiNzcxN2VkYmU1ZmIxMDEzNWVlZTYyOWIiCiAg IGludGVncml0eSBzaGE1MTItbWVsK2pmN25ydEVsNVBuMVF4NDZ6QVJYS0RwQmJ2emV6c2U3cDdM cUlObWRvSWs4UFlQNVN5U2F4RW1ZdjZUWjBKeUVLQTFoc0NJZDZESWhnSVR0V1E9PQpAQCAtMjk4 MCw2ICsyOTMwLDExIEBAIGRlY29tcHJlc3NAXjQuMC4wLCBkZWNvbXByZXNzQF40LjIuMDoKICAg ICBwaWZ5ICJeMi4zLjAiCiAgICAgc3RyaXAtZGlycyAiXjIuMC4wIgogCitkZWVwLWV4dGVuZEBe MC42LjA6CisgIHZlcnNpb24gIjAuNi4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9kZWVwLWV4dGVuZC8tL2RlZXAtZXh0ZW5kLTAuNi4wLnRneiNjNGZhN2M5NTQw NGExN2E5YzNlOGNhN2UxNTM3MzEyYjczNjMzMGFjIgorICBpbnRlZ3JpdHkgc2hhNTEyLUxPSHhJ T2FQWWRIbEpSdENRZkRJVlp0ZncvdWZNOCtyVmo2NDlSSUh6Y20vdkd3UVJYRnQ2T1BxSUZXc20y WEVNck5JRXRXUjY0c1kxTEVLRDJ2QU9BPT0KKwogZGVlcC1pc0B+MC4xLjM6CiAgIHZlcnNpb24g IjAuMS4zIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9kZWVwLWlz Ly0vZGVlcC1pcy0wLjEuMy50Z3ojYjM2OWQ2ZmI1ZGJjMTNlZWNmNTI0ZjkxYjA3MGZlZWRjMzU3 Y2YzNCIKQEAgLTMwMTksNiArMjk3NCwxMSBAQCBkZWZpbmVkQF4xLjAuMDoKICAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZGVmaW5lZC8tL2RlZmluZWQtMS4wLjAudGd6 I2M5OGQ5YmNlZjc1Njc0MTg4ZTExMDk2OTE1MTE5OWUzOWIxZmE2OTMiCiAgIGludGVncml0eSBz aGExLXlZMmJ6dmRXZEJpT0VRbHBGUkdaNDVzZnBwTT0KIAorZGVsZWdhdGVzQF4xLjAuMDoKKyAg dmVyc2lvbiAiMS4wLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L2RlbGVnYXRlcy8tL2RlbGVnYXRlcy0xLjAuMC50Z3ojODRjNmUxNTliODE5MDRmZGNhNTlhMGVm NDRjZDg3MGQzMTI1MGY5YSIKKyAgaW50ZWdyaXR5IHNoYTEtaE1iaFdiZ1pCUDNLV2FEdlJNMkhE VEVsRDVvPQorCiBkZXBkQH4xLjEuMjoKICAgdmVyc2lvbiAiMS4xLjIiCiAgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2RlcGQvLS9kZXBkLTEuMS4yLnRneiM5YmNkNTJl MTRjMDk3NzYzZTc0OWIyNzRjNDM0NmVkMmU1NjBiNWE5IgpAQCAtMzA1Miw2ICszMDEyLDExIEBA IGRldGVjdC1maWxlQF4xLjAuMDoKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vZGV0ZWN0LWZpbGUvLS9kZXRlY3QtZmlsZS0xLjAuMC50Z3ojZjBkNjZkMDM2NzJhODI1 Y2IxYjczYmRiM2ZlNjIzMTBjOGU1NTJiNyIKICAgaW50ZWdyaXR5IHNoYTEtOE5adEEyY3FnbHl4 dHp2YlArWWpFTWpsVXJjPQogCitkZXRlY3QtbGliY0BeMS4wLjI6CisgIHZlcnNpb24gIjEuMC4z IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9kZXRlY3QtbGliYy8t L2RldGVjdC1saWJjLTEuMC4zLnRneiNmYTEzN2M0YmQ2OThlZGY1NWNkNWNkMDJhYzU1OWY5MWE0 YzRiYTliIgorICBpbnRlZ3JpdHkgc2hhMS0raE44UzlhWTdmVmMxYzBDckZXZmthVEV1cHM9CisK IGRldGVjdGl2ZUBeNS4yLjA6CiAgIHZlcnNpb24gIjUuMi4wIgogICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9kZXRlY3RpdmUvLS9kZXRlY3RpdmUtNS4yLjAudGd6I2Zl YjJhNzdlODViOTA0ZWNkZWE0NTlhZDg5N2NjOTBhOTliZDJhN2IiCkBAIC0zMjIwLDkgKzMxODUs OSBAQCBlanNAXjMuMC4wOgogICBpbnRlZ3JpdHkgc2hhNTEyLUluY21VcG4xeU44NGh5MnNoYjBQ T0o4MEZXcmZHTlkwY3hPOWY0disvc0c3cWNCdkF0VldVQTFJZHpZLzhFWVVtT1Zob0tKVmRKak5k M0FaY254T2pBPT0KIAogZWxlY3Ryb24tdG8tY2hyb21pdW1AXjEuMy4zOTA6Ci0gIHZlcnNpb24g IjEuMy4zOTciCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2VsZWN0 cm9uLXRvLWNocm9taXVtLy0vZWxlY3Ryb24tdG8tY2hyb21pdW0tMS4zLjM5Ny50Z3ojZGI2NDBj MmU2N2IwOGQ1OTBhNTA0YzIwYjU2OTA0NTM3YWEyYmFmYSIKLSAgaW50ZWdyaXR5IHNoYTUxMi16 Y1VkMXAvN3l6VFNkV2tDVHJxR3ZibkVPQVN5OTZkMFJKTC9sYzVCREpvTzIzWjNHL1ZIZDB5SVBi Z3VEVTluOFFOVVRDaWdMTzdvRWR0T2I3ZnAyQT09CisgIHZlcnNpb24gIjEuMy40MDIiCisgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2VsZWN0cm9uLXRvLWNocm9taXVt Ly0vZWxlY3Ryb24tdG8tY2hyb21pdW0tMS4zLjQwMi50Z3ojOWFkOTNjMGM4ZWEyZTU3MTQzMTcz OWUwZDc2YmQ2YmM5Nzg4YTg0NiIKKyAgaW50ZWdyaXR5IHNoYTUxMi1nYUNEZlg3SVVIMHMzSm1C aUhDRFBydlZjZG5UVFAxcjRXTEpjMmRIa1lZYkxtWFoyWEhpSkNjR1E5QmFsZjkxYUtUdnVDS0N5 dTJKakpZUnlrb0kxdz09CiAKIGVsbGlwdGljQF42LjAuMDoKICAgdmVyc2lvbiAiNi41LjIiCkBA IC0zOTQxLDIwICszOTA2LDEzIEBAIGZsdXNoLXdyaXRlLXN0cmVhbUBeMS4wLjA6CiAgICAgaW5o ZXJpdHMgIl4yLjAuMyIKICAgICByZWFkYWJsZS1zdHJlYW0gIl4yLjMuNiIKIAotZm9sbG93LXJl ZGlyZWN0c0AxLjUuMTA6Citmb2xsb3ctcmVkaXJlY3RzQDEuNS4xMCwgZm9sbG93LXJlZGlyZWN0 c0BeMS4wLjA6CiAgIHZlcnNpb24gIjEuNS4xMCIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vZm9sbG93LXJlZGlyZWN0cy8tL2ZvbGxvdy1yZWRpcmVjdHMtMS41LjEw LnRneiM3YjdhOWY5YWVhMmZkZmYzNjc4NmE5NGZmNjQzZWQwN2Y0ZmY1ZTJhIgogICBpbnRlZ3Jp dHkgc2hhNTEyLTBWNWw0Q2l6enZxdDVENDRhVFhiRlp6K0Z0eVhWMXZyRE42cXJlbHh0ZllRS1cw S08wVzJUL2hrRTh4dkdhLzU0MExrWmxrYVVqTzRhaWxZVEZ0SFZRPT0KICAgZGVwZW5kZW5jaWVz OgogICAgIGRlYnVnICI9My4xLjAiCiAKLWZvbGxvdy1yZWRpcmVjdHNAXjEuMC4wOgotICB2ZXJz aW9uICIxLjExLjAiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Zv bGxvdy1yZWRpcmVjdHMvLS9mb2xsb3ctcmVkaXJlY3RzLTEuMTEuMC50Z3ojYWZhMTRmMDhiYTEy YTUyOTYzMTQwZmU0MzIxMjY1ODg5N2JjMGVjYiIKLSAgaW50ZWdyaXR5IHNoYTUxMi1LWm0wVits bDhQZkJyS3dNemRvNUQxM2IxYnVyOUlxOVpkL1JNbUFvUVFjbDJQeHhGbWw4Y3hYUGFhUFlWYlYw UmpOanExQ1U3ekl6QU9xdFVQdWRtQT09Ci0gIGRlcGVuZGVuY2llczoKLSAgICBkZWJ1ZyAiXjMu MC4wIgotCiBmb250LWF3ZXNvbWVAXjQuNy4wOgogICB2ZXJzaW9uICI0LjcuMCIKICAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZm9udC1hd2Vzb21lLy0vZm9udC1hd2Vz b21lLTQuNy4wLnRneiM4ZmE4Y2YwNDExYTFhMzFhZmQwN2IwNmQyOTAyYmI5ZmM4MTVhMTMzIgpA QCAtNDAxMSw2ICszOTY5LDEzIEBAIGZzLWV4dHJhQF43LjAuMToKICAgICBqc29uZmlsZSAiXjQu MC4wIgogICAgIHVuaXZlcnNhbGlmeSAiXjAuMS4wIgogCitmcy1taW5pcGFzc0BeMS4yLjU6Cisg IHZlcnNpb24gIjEuMi43IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9mcy1taW5pcGFzcy8tL2ZzLW1pbmlwYXNzLTEuMi43LnRneiNjY2ZmODU3MDg0MWU3ZmU0MjY1 NjkzZGE4ODkzNmM1NWFlZDdmN2M3IgorICBpbnRlZ3JpdHkgc2hhNTEyLUdXU1NKR0Z5NGU5R1Vl Q2NiSWtFRCtiZ0FvRnlqN1hGMW1WOHJtYTNRVzROSXFYOUt5eDc5Ti9QRjYxSDV1ZE9WM2FZMUlh TUxzNnBHYkg3MW5sQ1RBPT0KKyAgZGVwZW5kZW5jaWVzOgorICAgIG1pbmlwYXNzICJeMi42LjAi CisKIGZzLW1pbmlwYXNzQF4yLjAuMDoKICAgdmVyc2lvbiAiMi4xLjAiCiAgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2ZzLW1pbmlwYXNzLy0vZnMtbWluaXBhc3MtMi4x LjAudGd6IzdmNTAzNmZkYmYxMmM2M2MxNjkxOTBjYmU0MTk5Yzg1MjI3MWY5ZmIiCkBAIC00MDU2 LDYgKzQwMjEsMjAgQEAgZnVuY3Rpb25hbC1yZWQtYmxhY2stdHJlZUBeMS4wLjE6CiAgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Z1bmN0aW9uYWwtcmVkLWJsYWNrLXRy ZWUvLS9mdW5jdGlvbmFsLXJlZC1ibGFjay10cmVlLTEuMC4xLnRneiMxYjBhYjNiZDU1M2IyYTBk NjM5OWQyOWMwZTNlYTBiMjUyMDc4MzI3IgogICBpbnRlZ3JpdHkgc2hhMS1Hd3F6dlZVN0tnMWpt ZEtjRGo2Z3NsSUhneWM9CiAKK2dhdWdlQH4yLjcuMzoKKyAgdmVyc2lvbiAiMi43LjQiCisgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2dhdWdlLy0vZ2F1Z2UtMi43LjQu dGd6IzJjMDM0MDVjNzUzOGMzOWQ3ZWIzN2IzMTcwMjJlMzI1ZmIwMThiZjciCisgIGludGVncml0 eSBzaGExLUxBTkFYSFU0dzUxK3Mzc3hjQ0xqSmZzQmkvYz0KKyAgZGVwZW5kZW5jaWVzOgorICAg IGFwcm9iYSAiXjEuMC4zIgorICAgIGNvbnNvbGUtY29udHJvbC1zdHJpbmdzICJeMS4wLjAiCisg ICAgaGFzLXVuaWNvZGUgIl4yLjAuMCIKKyAgICBvYmplY3QtYXNzaWduICJeNC4xLjAiCisgICAg c2lnbmFsLWV4aXQgIl4zLjAuMCIKKyAgICBzdHJpbmctd2lkdGggIl4xLjAuMSIKKyAgICBzdHJp cC1hbnNpICJeMy4wLjEiCisgICAgd2lkZS1hbGlnbiAiXjEuMS4wIgorCiBnZW9tZXRyeS1pbnRl cmZhY2VzQF4xLjEuNDoKICAgdmVyc2lvbiAiMS4xLjQiCiAgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2dlb21ldHJ5LWludGVyZmFjZXMvLS9nZW9tZXRyeS1pbnRlcmZh Y2VzLTEuMS40LnRneiM5ZTgyYWY2NzAwY2E2MzlhNjc1Mjk5ZjA4ZTFmNWZiYzRhNzlkNDhkIgpA QCAtNDMyMSw2ICs0MzAwLDExIEBAIGhhcy10by1zdHJpbmctdGFnLXhAXjEuMi4wOgogICBkZXBl bmRlbmNpZXM6CiAgICAgaGFzLXN5bWJvbC1zdXBwb3J0LXggIl4xLjQuMSIKIAoraGFzLXVuaWNv ZGVAXjIuMC4wOgorICB2ZXJzaW9uICIyLjAuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vaGFzLXVuaWNvZGUvLS9oYXMtdW5pY29kZS0yLjAuMS50Z3ojZTBlNmZl NmEyOGNmNTExMzg4NTVlMDg2ZDE2OTFlNzcxZGUyYThiOSIKKyAgaW50ZWdyaXR5IHNoYTEtNE9i K2FpalBVUk9JVmVDRzBXa2VkeDNpcUxrPQorCiBoYXMtdmFsdWVAXjAuMy4xOgogICB2ZXJzaW9u ICIwLjMuMSIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vaGFzLXZh bHVlLy0vaGFzLXZhbHVlLTAuMy4xLnRneiM3YjFmNThiYWRhNjJjYTgyN2VjMGEyMDc4MDI1NjU0 ODQ1OTk1ZTFmIgpAQCAtNDQzNiw3ICs0NDIwLDcgQEAgaHR0cC1jYWNoZS1zZW1hbnRpY3NAMy44 LjE6CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2h0dHAtY2FjaGUt c2VtYW50aWNzLy0vaHR0cC1jYWNoZS1zZW1hbnRpY3MtMy44LjEudGd6IzM5YjBlMTZhZGQ5YjYw NWJmMGE5ZWYzZDlkYWFmNDg0M2I0Y2FjZDIiCiAgIGludGVncml0eSBzaGE1MTItNWFpMmlrc3lW OFpYbW5aaEhINHJXUG94eGlzdEVleFNpNTkzNnpJUTFibk5UVzVWbkE4NUI2UC9WcFhpUk0wMTdJ Z1J2YjJrS28xYS8veSswd1NwM3c9PQogCi1odHRwLWVycm9yc0AxLjcuMjoKK2h0dHAtZXJyb3Jz QDEuNy4yLCBodHRwLWVycm9yc0B+MS43LjI6CiAgIHZlcnNpb24gIjEuNy4yIgogICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9odHRwLWVycm9ycy8tL2h0dHAtZXJyb3Jz LTEuNy4yLnRneiM0ZjUwMjljZjEzMjM5ZjMxMDM2ZTViMmU1NTI5MmJjZmJjYzg1YzhmIgogICBp bnRlZ3JpdHkgc2hhNTEyLXVVUUJ0M0gvY1NJVmZjaDZpMUV1UE55L1lzUlNPVUJYVFZmWit5Ujda amV6M3FqQno2aTkraTR6ak5hb3Fjb0ZWSTRsUUo1cGxnNjNUdkdmUlNEQ1JnPT0KQEAgLTQ0NDcs MTcgKzQ0MzEsNiBAQCBodHRwLWVycm9yc0AxLjcuMjoKICAgICBzdGF0dXNlcyAiPj0gMS41LjAg PCAyIgogICAgIHRvaWRlbnRpZmllciAiMS4wLjAiCiAKLWh0dHAtZXJyb3JzQH4xLjcuMjoKLSAg dmVyc2lvbiAiMS43LjMiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L2h0dHAtZXJyb3JzLy0vaHR0cC1lcnJvcnMtMS43LjMudGd6IzZjNjE5ZTRmOWM2MDMwOGMzODUx OTQ5OGMxNGZiYjEwYWFjZWJiMDYiCi0gIGludGVncml0eSBzaGE1MTItWlRUWDBNV3JzUTJaQWhB MWNlakF3REx5Y0ZzZDdJN25WdG5rVDNPbDBhcW9kYUtXKzBDVFpEUTF1QnY1d2hwdENuYzhlOEhl UlJKeFJzMGttbS9RZnc9PQotICBkZXBlbmRlbmNpZXM6Ci0gICAgZGVwZCAifjEuMS4yIgotICAg IGluaGVyaXRzICIyLjAuNCIKLSAgICBzZXRwcm90b3R5cGVvZiAiMS4xLjEiCi0gICAgc3RhdHVz ZXMgIj49IDEuNS4wIDwgMiIKLSAgICB0b2lkZW50aWZpZXIgIjEuMC4wIgotCiBodHRwLXByb3h5 QF4xLjEzLjA6CiAgIHZlcnNpb24gIjEuMTguMCIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vaHR0cC1wcm94eS8tL2h0dHAtcHJveHktMS4xOC4wLnRneiNkYmU1NWY2 M2U3NWEzNDdkYjdmM2Q5OTk3NGYyNjkyYTMxNGE2YTNhIgpAQCAtNDQ4Myw3ICs0NDU2LDcgQEAg aWNvbmZvbnQtd2VicGFjay1wbHVnaW5AXjQuMi4xOgogICAgIHN2Z2ljb25zMnN2Z2ZvbnQgIjku MS4xIgogICAgIHR0ZjJ3b2ZmICIyLjAuMSIKIAotaWNvbnYtbGl0ZUAwLjQuMjQsIGljb252LWxp dGVAXjAuNC4yNDoKK2ljb252LWxpdGVAMC40LjI0LCBpY29udi1saXRlQF4wLjQuMjQsIGljb252 LWxpdGVAXjAuNC40OgogICB2ZXJzaW9uICIwLjQuMjQiCiAgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2ljb252LWxpdGUvLS9pY29udi1saXRlLTAuNC4yNC50Z3ojMjAy MmI0YjI1ZmJkZGMyMWQyZjUyNDk3NGE0NzRhYWZlNzMzOTA4YiIKICAgaW50ZWdyaXR5IHNoYTUx Mi12M01YblpBY3ZueXdrVFVFWm9tSUFjdGxlN1JYWGVlZE9SMzF3d2w3Vmx5b1hPNFFpOWFydlNl bk5RV25lMVRjUndoQ0wxSHdMSTIxYkVxZHBqOC9yQT09CkBAIC00NTEyLDYgKzQ0ODUsMTMgQEAg aWZlcnJAXjAuMS41OgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9p ZmVyci8tL2lmZXJyLTAuMS41LnRneiNjNjBlZWQ2OWU2ZDhmZGI2YjMxMDRhMWZjYmNhMWMxOTJk YzViNTAxIgogICBpbnRlZ3JpdHkgc2hhMS14Zzd0YWViWS9iYXpFRW9meThvY0dTM0Z0UUU9CiAK K2lnbm9yZS13YWxrQF4zLjAuMToKKyAgdmVyc2lvbiAiMy4wLjMiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lnbm9yZS13YWxrLy0vaWdub3JlLXdhbGstMy4wLjMu dGd6IzAxN2UyNDQ3MTg0YmZlYWRlN2MyMzhlNGFlZmRkMWU4Zjk1YjFlMzciCisgIGludGVncml0 eSBzaGE1MTItbTdvNnh1T2FUMWFxaGVZSEtmOFc2SjVwWUg4NVpJOXcwNzdlck96TGplM0pzQjFn a2Fma0FoSEhZMTlkcWp1bGdJWkhGbTMyQ3A1dU5aZ2NRcWRKS3c9PQorICBkZXBlbmRlbmNpZXM6 CisgICAgbWluaW1hdGNoICJeMy4wLjQiCisKIGlnbm9yZUBeMy4zLjU6CiAgIHZlcnNpb24gIjMu My4xMCIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vaWdub3JlLy0v aWdub3JlLTMuMy4xMC50Z3ojMGE5N2ZiODc2OTg2ZTgwODFjNjMxMTYwZjhmOWYzODkxNTdmMDA0 MyIKQEAgLTQ3MDEsNyArNDY4MSw3IEBAIGluZmxpZ2h0QF4xLjAuNDoKICAgICBvbmNlICJeMS4z LjAiCiAgICAgd3JhcHB5ICIxIgogCi1pbmhlcml0c0AyLCBpbmhlcml0c0AyLjAuNCwgaW5oZXJp dHNAXjIuMC4xLCBpbmhlcml0c0BeMi4wLjMsIGluaGVyaXRzQH4yLjAuMSwgaW5oZXJpdHNAfjIu MC4zOgoraW5oZXJpdHNAMiwgaW5oZXJpdHNAXjIuMC4xLCBpbmhlcml0c0BeMi4wLjMsIGluaGVy aXRzQH4yLjAuMSwgaW5oZXJpdHNAfjIuMC4zOgogICB2ZXJzaW9uICIyLjAuNCIKICAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vaW5oZXJpdHMvLS9pbmhlcml0cy0yLjAu NC50Z3ojMGZhMmM2NGY5MzI5MTdjMzQzM2EwZGVkNTUzNjNhYWUzNzQxNmI3YyIKICAgaW50ZWdy aXR5IHNoYTUxMi1rL3ZHYVg0L1lsYTNXenlNQ3ZUUU9YWWVJSHZxT0t0bnFCZHV6VEhwenBRWnpB c2tLTWhaMksrRW5CaVNNOXpHU29JRmVNcFhLeGE0ZFllWklRcWV3UT09CkBAIC00NzE2LDcgKzQ2 OTYsNyBAQCBpbmhlcml0c0AyLjAuMzoKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vaW5oZXJpdHMvLS9pbmhlcml0cy0yLjAuMy50Z3ojNjMzYzJjODNlM2RhNDJhNTAy ZjUyNDY2MDIyNDgwZjQyMDgyNjFkZSIKICAgaW50ZWdyaXR5IHNoYTEtWXp3c2crUGFRcVVDOVNS bUFpU0E5Q0NDWWQ0PQogCi1pbmlAXjEuMy40LCBpbmlAXjEuMy41OgoraW5pQF4xLjMuNCwgaW5p QF4xLjMuNSwgaW5pQH4xLjMuMDoKICAgdmVyc2lvbiAiMS4zLjUiCiAgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2luaS8tL2luaS0xLjMuNS50Z3ojZWVlMjVmNTZkYjFj OWVjNjA4NWUwYzIyNzc4MDgzZjU5NmFiZjkyNyIKICAgaW50ZWdyaXR5IHNoYTUxMi1SWlk1aHVJ S0NNUldEVXFabEVpNzJmL2xtWEtNdnVzemNNQmR1bGlRM25uV2J4OVgvWkJRTzdEaWpNRVlTOUVo SEJiMnFhY1JVTXRDN3N2THdlMGxjdz09CkBAIC00OTQ4LDYgKzQ5MjgsMTMgQEAgaXMtZmluaXRl QF4xLjAuMDoKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vaXMtZmlu aXRlLy0vaXMtZmluaXRlLTEuMS4wLnRneiM5MDQxMzVjNzdmYjQyYzA2NDFkNmFhMWJjZGJjNGRh YThkYTA4MmYzIgogICBpbnRlZ3JpdHkgc2hhNTEyLWNkeU10cVgvQk9xcU5CQmlLbElWa3l0Tkht NDlNdE1sWXluMXp4enZKS1dtRk1sR3ptK3J5NUJCZll5ZVk5WW1OS2JSU28vbzdPWDl3OWFsZTB3 ZzN3PT0KIAoraXMtZnVsbHdpZHRoLWNvZGUtcG9pbnRAXjEuMC4wOgorICB2ZXJzaW9uICIxLjAu MCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vaXMtZnVsbHdpZHRo LWNvZGUtcG9pbnQvLS9pcy1mdWxsd2lkdGgtY29kZS1wb2ludC0xLjAuMC50Z3ojZWY5ZTMxMzg2 ZjAzMWE3ZjBkNjQzYWY4MmZkZTUwYzQ1N2VmMDBjYiIKKyAgaW50ZWdyaXR5IHNoYTEtNzU0eE9H OERHbjhOWkRyNEw5NVF4RmZ2QU1zPQorICBkZXBlbmRlbmNpZXM6CisgICAgbnVtYmVyLWlzLW5h biAiXjEuMC4wIgorCiBpcy1mdWxsd2lkdGgtY29kZS1wb2ludEBeMi4wLjA6CiAgIHZlcnNpb24g IjIuMC4wIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pcy1mdWxs d2lkdGgtY29kZS1wb2ludC8tL2lzLWZ1bGx3aWR0aC1jb2RlLXBvaW50LTIuMC4wLnRneiNhM2Iz MGE1YzRmMTk5MTgzMTY3YWFhYjkzYmVlZmFlM2RkZmI2NTRmIgpAQCAtNTEzMywxMiArNTEyMCw3 IEBAIGlzdXJsQF4xLjAuMC1hbHBoYTU6CiAgICAgaGFzLXRvLXN0cmluZy10YWcteCAiXjEuMi4w IgogICAgIGlzLW9iamVjdCAiXjEuMC4xIgogCi1qYXNtaW5lLWNvcmVAXjMuMzoKLSAgdmVyc2lv biAiMy41LjAiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2phc21p bmUtY29yZS8tL2phc21pbmUtY29yZS0zLjUuMC50Z3ojMTMyYzIzZTY0NWFmOTZkODVjOGJjYTEz Yzg3NThiMTg0MjlmYzFlNCIKLSAgaW50ZWdyaXR5IHNoYTUxMi1uQ2VBaXczN01JTUE5dzlJWHNv N2JSYUxsK2MvZWYzd254c29TQWxZcnpTK090MHpURzZuVThHL2NJZkdrcXBralgyd05hSVc5UkZH MFR3SUZuRzZiQT09Ci0KLWphc21pbmUtY29yZUB+My4zLjA6CitqYXNtaW5lLWNvcmVAXjMuMywg amFzbWluZS1jb3JlQH4zLjMuMDoKICAgdmVyc2lvbiAiMy4zLjAiCiAgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2phc21pbmUtY29yZS8tL2phc21pbmUtY29yZS0zLjMu MC50Z3ojZGVhMWNkYzYzNGJjOTNjN2UwZDRhZDI3MTg1ZGYzMGZhOTcxYjEwZSIKICAgaW50ZWdy aXR5IHNoYTUxMi0zL3hTbUcvZDM1aGY4MEJFTjY2WTZnOUNhNWwvSXNkZWcvajZ6dmJUWWxUemVL aW56bWFUTTRwOWFtNWtZcU9tRTA1RDdzMXQ4RkdqemRTbmJVYmNlQT09CkBAIC01MTg0LDE2ICs1 MTY2LDE2IEBAIGpzLXN0cmluZy1lc2NhcGVAXjEuMC4wOgogICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9qcy1zdHJpbmctZXNjYXBlLy0vanMtc3RyaW5nLWVzY2FwZS0x LjAuMS50Z3ojZTI2MjViYWRiYzBkNjdjNzUzM2U5ZWRjMTA2OGM1ODdhZTQxMzdlZiIKICAgaW50 ZWdyaXR5IHNoYTEtNG1KYnJid05aOGRUUHA3Y0VHakZoNjVCTis4PQogCi0ianMtdG9rZW5zQF4z LjAuMCB8fCBeNC4wLjAiLCBqcy10b2tlbnNAXjQuMC4wOgotICB2ZXJzaW9uICI0LjAuMCIKLSAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vanMtdG9rZW5zLy0vanMtdG9r ZW5zLTQuMC4wLnRneiMxOTIwM2ZiNTk5OTFkZjk4ZTNhMjg3MDUwZDQ2NDdjZGVhZjMyNDk5Igot ICBpbnRlZ3JpdHkgc2hhNTEyLVJkSlVmbGNFM2NVektpTXFRZ3NDdTA2RlB1OVVkSUpPMGJlWWJQ aEhONGs2YXBnSnRpZmNvQ3RUOWJjeE9wWUJ0cEQya0NNNlNiemc0Q2F1c1cvUEtRPT0KLQotanMt dG9rZW5zQF4zLjAuMjoKKyJqcy10b2tlbnNAXjMuMC4wIHx8IF40LjAuMCIsIGpzLXRva2Vuc0Be My4wLjI6CiAgIHZlcnNpb24gIjMuMC4yIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9qcy10b2tlbnMvLS9qcy10b2tlbnMtMy4wLjIudGd6Izk4NjZkZjM5NTEwMjEz MGUzOGY3Zjk5NmJjZWI2NTQ0MzIwOWMyNWIiCiAgIGludGVncml0eSBzaGExLW1HYmZPVkVDRXc0 NDkvbVd2T3RsUkRJSndscz0KIAoranMtdG9rZW5zQF40LjAuMDoKKyAgdmVyc2lvbiAiNC4wLjAi CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2pzLXRva2Vucy8tL2pz LXRva2Vucy00LjAuMC50Z3ojMTkyMDNmYjU5OTkxZGY5OGUzYTI4NzA1MGQ0NjQ3Y2RlYWYzMjQ5 OSIKKyAgaW50ZWdyaXR5IHNoYTUxMi1SZEpVZmxjRTNjVXpLaU1xUWdzQ3UwNkZQdTlVZElKTzBi ZVliUGhITjRrNmFwZ0p0aWZjb0N0VDliY3hPcFlCdHBEMmtDTTZTYnpnNENhdXNXL1BLUT09CisK IGpzLXlhbWxAXjMuMTIuMCwganMteWFtbEBeMy4xMy4xOgogICB2ZXJzaW9uICIzLjEzLjEiCiAg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2pzLXlhbWwvLS9qcy15YW1s LTMuMTMuMS50Z3ojYWZmMTUxYjMwYmZkZmE4ZTQ5ZTA1ZGEyMmU3NDE1ZTlkZmEzNzg0NyIKQEAg LTU4NjIsNiArNTg0NCwxNCBAQCBtaW5pcGFzcy1waXBlbGluZUBeMS4yLjI6CiAgIGRlcGVuZGVu Y2llczoKICAgICBtaW5pcGFzcyAiXjMuMC4wIgogCittaW5pcGFzc0BeMi42LjAsIG1pbmlwYXNz QF4yLjguNiwgbWluaXBhc3NAXjIuOS4wOgorICB2ZXJzaW9uICIyLjkuMCIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbWluaXBhc3MvLS9taW5pcGFzcy0yLjkuMC50 Z3ojZTcxMzc2MmU3ZDNlMzJmZWQ4MDMxMTVjZjkzZTA0YmNhOWZjYzlhNiIKKyAgaW50ZWdyaXR5 IHNoYTUxMi13eGZVamc5V2ViSCtDVURYL0NkYlJsaDVTbWZaaXkvaHBreGFSSTE2WTlXNTZQYTc1 c1dnZC9ydkZpbFNncmF1RDlOeUZ5bVAvK0pGVjNLd3pJc0plZz09CisgIGRlcGVuZGVuY2llczoK KyAgICBzYWZlLWJ1ZmZlciAiXjUuMS4yIgorICAgIHlhbGxpc3QgIl4zLjAuMCIKKwogbWluaXBh c3NAXjMuMC4wLCBtaW5pcGFzc0BeMy4xLjE6CiAgIHZlcnNpb24gIjMuMS4xIgogICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9taW5pcGFzcy8tL21pbmlwYXNzLTMuMS4x LnRneiM3NjA3Y2U3Nzg0NzJhMTg1YWQ2ZDg5MDgyYWEyMDcwZjc5Y2VkY2Q1IgpAQCAtNTg2OSw2 ICs1ODU5LDEzIEBAIG1pbmlwYXNzQF4zLjAuMCwgbWluaXBhc3NAXjMuMS4xOgogICBkZXBlbmRl bmNpZXM6CiAgICAgeWFsbGlzdCAiXjQuMC4wIgogCittaW5pemxpYkBeMS4yLjE6CisgIHZlcnNp b24gIjEuMy4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9taW5p emxpYi8tL21pbml6bGliLTEuMy4zLnRneiMyMjkwZGU5NjgxOGEzNGMyOTU1MWM4YThkMzAxMjE2 YmQ2NWE4NjFkIgorICBpbnRlZ3JpdHkgc2hhNTEyLTZaWU1PRW5tVnNkQ2VUSlZFMFc5WkQrcFZu RThoOUhtYS9pT3d3UkRzZFFvZVBwb1g1Ni84QjZ6M1A5Vk53cHBKdUJLTlJ1RkRSTlJxUldleFQ5 RzlRPT0KKyAgZGVwZW5kZW5jaWVzOgorICAgIG1pbmlwYXNzICJeMi45LjAiCisKIG1pc3Npc3Np cHBpQF4zLjAuMDoKICAgdmVyc2lvbiAiMy4wLjAiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL21pc3Npc3NpcHBpLy0vbWlzc2lzc2lwcGktMy4wLjAudGd6I2VhMGEz MjkxZjk3ZTBiNWU4Nzc2YjM2M2Q1ZjBhMTJkOTRjNjcwMjIiCkBAIC01ODkzLDExICs1ODkwLDYg QEAgbWl4aW4tZGVlcEBeMS4yLjA6CiAgICAgZm9yLWluICJeMS4wLjIiCiAgICAgaXMtZXh0ZW5k YWJsZSAiXjEuMC4xIgogCi1ta2RpcnAtY2xhc3NpY0BeMC41LjI6Ci0gIHZlcnNpb24gIjAuNS4y IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9ta2RpcnAtY2xhc3Np Yy8tL21rZGlycC1jbGFzc2ljLTAuNS4yLnRneiM1NGM0NDFjZTRjOTZjZDc3OTBlMTBiNDFhODdh YTUxMDY4ZWNhYjJiIgotICBpbnRlZ3JpdHkgc2hhNTEyLWVqZG5EUWNSNzVnd2tubU13L3R4MDJB dVJzOGpDdHFGb0ZxRFpNamlOeHN1ODVzUklKVlhES0h1TFl2VVVQUkJVdFYyRnBTWmE5YkwxQlVh M0JkUjJnPT0KLQogbWtkaXJwQF4wLjUuMCwgbWtkaXJwQF4wLjUuMSwgbWtkaXJwQF4wLjUuMywg bWtkaXJwQH4wLjUuMToKICAgdmVyc2lvbiAiMC41LjUiCiAgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL21rZGlycC8tL21rZGlycC0wLjUuNS50Z3ojZDkxY2VmZDYyZDE0 MzZjYTBmNDE2MjBlMjUxMjg4ZDQyMDA5OWRlZiIKQEAgLTYwMjUsNiArNjAxNywxNSBAQCBuZWF0 ZXF1YWxAXjEuMC4wOgogICBkZXBlbmRlbmNpZXM6CiAgICAgdmFyc3RyZWFtICJeMC4zLjIiCiAK K25lZWRsZUBeMi4yLjE6CisgIHZlcnNpb24gIjIuMy4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9uZWVkbGUvLS9uZWVkbGUtMi4zLjMudGd6I2EwNDFhZDFkMDRh ODcxYjBlYmI2NjZmNDBiYWFmMWZiNDc4NjcxMTciCisgIGludGVncml0eSBzaGE1MTItRWtZMEdl U3E4N3JXcDFob3Evc0gvd25UV2dGVmhZbG5Ja2JKMFlKRmZSZ0VGbHoyUnJhQ2pCcEZRK3ZyRWdF ZHAwVGhmeUhBRG1rQ2hFaGNiN1BLeXc9PQorICBkZXBlbmRlbmNpZXM6CisgICAgZGVidWcgIl4z LjIuNiIKKyAgICBpY29udi1saXRlICJeMC40LjQiCisgICAgc2F4ICJeMS4yLjQiCisKIG5lZ290 aWF0b3JAMC42LjI6CiAgIHZlcnNpb24gIjAuNi4yIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9uZWdvdGlhdG9yLy0vbmVnb3RpYXRvci0wLjYuMi50Z3ojZmVhY2Y3 Y2NmNTI1YTc3YWU5NjM0NDM2YTY0ODgzZmZlY2EzNDZmYiIKQEAgLTYwNjksMTEgKzYwNzAsMzUg QEAgbm9kZS1saWJzLWJyb3dzZXJAXjIuMi4xOgogICAgIHV0aWwgIl4wLjExLjAiCiAgICAgdm0t YnJvd3NlcmlmeSAiXjEuMC4xIgogCitub2RlLXByZS1neXBAKjoKKyAgdmVyc2lvbiAiMC4xNC4w IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9ub2RlLXByZS1neXAv LS9ub2RlLXByZS1neXAtMC4xNC4wLnRneiM5YTA1OTY1MzNiODc3Mjg5YmNhZDRlMTQzOTgyY2Ez ZDkwNGRkYzgzIgorICBpbnRlZ3JpdHkgc2hhNTEyLStDdkRDN1p0dFUvc1N0OXJGaml4L1AwNWlT NDNxSENPT0d6Y3IzUnk5OWJYRzdWWDk1Myt2RnlFdXBoL3RmcW9ZdThkdHRCa0U4NkpTS0JPMk96 Y3hBPT0KKyAgZGVwZW5kZW5jaWVzOgorICAgIGRldGVjdC1saWJjICJeMS4wLjIiCisgICAgbWtk aXJwICJeMC41LjEiCisgICAgbmVlZGxlICJeMi4yLjEiCisgICAgbm9wdCAiXjQuMC4xIgorICAg IG5wbS1wYWNrbGlzdCAiXjEuMS42IgorICAgIG5wbWxvZyAiXjQuMC4yIgorICAgIHJjICJeMS4y LjciCisgICAgcmltcmFmICJeMi42LjEiCisgICAgc2VtdmVyICJeNS4zLjAiCisgICAgdGFyICJe NC40LjIiCisKIG5vZGUtcmVsZWFzZXNAXjEuMS41MzoKICAgdmVyc2lvbiAiMS4xLjUzIgogICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9ub2RlLXJlbGVhc2VzLy0vbm9k ZS1yZWxlYXNlcy0xLjEuNTMudGd6IzJkODIxYmZhNDk5ZWQ3YzVkZmZjNWUyZjI4Yzg4ZTc4YTA4 ZWUzZjQiCiAgIGludGVncml0eSBzaGE1MTItd3A4enlRVndlZjJocFovZEpIN1NmU3JJUEQ2WW9K ejZCRFFEcEdFa2NBMHMzTHBBUW94QklZbWZJcTZRQWhDMURod3N5Q2dUYVRUY09Od1g4cXpDdVE9 PQogCitub3B0QF40LjAuMToKKyAgdmVyc2lvbiAiNC4wLjMiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL25vcHQvLS9ub3B0LTQuMC4zLnRneiNhMzc1Y2FkOWQwMmZk OTIxMjc4ZDk1NGMyMjU0ZDVhYTU3ZTE1ZTQ4IgorICBpbnRlZ3JpdHkgc2hhNTEyLUN2YUd3Vk16 dFNNSkxPZVhQcmV6N2Z5Zk9iZFpxTlVLMWNQQUV6TEhyVHliSXVhOXBNZG1tUFI1WXd0Zk5mdElP TXYzRFBVaEZheHNaTU5UUU8yMEtnPT0KKyAgZGVwZW5kZW5jaWVzOgorICAgIGFiYnJldiAiMSIK KyAgICBvc2VudiAiXjAuMS40IgorCiBub3JtYWxpemUtcGFja2FnZS1kYXRhQF4yLjMuMiwgbm9y bWFsaXplLXBhY2thZ2UtZGF0YUBeMi4zLjQ6CiAgIHZlcnNpb24gIjIuNS4wIgogICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9ub3JtYWxpemUtcGFja2FnZS1kYXRhLy0v bm9ybWFsaXplLXBhY2thZ2UtZGF0YS0yLjUuMC50Z3ojZTY2ZGIxODM4YjIwMGMxZGZjMjMzMjI1 ZDEyY2IzNjUyMGUyMzRhOCIKQEAgLTYxMTUsNiArNjE0MCwxMyBAQCBub3JtYWxpemUtdXJsQF4z LjAuMDoKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbm9ybWFsaXpl LXVybC8tL25vcm1hbGl6ZS11cmwtMy4zLjAudGd6I2IyZTFjNGRjNGY3YzZkNTc3NDNkZjczM2E0 ZjU5NzhkMTg2NTA1NTkiCiAgIGludGVncml0eSBzaGE1MTItVStKSmk3ZHVGMW8rdTJweW5icDJ6 WERXMi9QQURnQzMwZjBHc0hadFJoK0hPY1hIbncxMzdUck5seXh4UnZXVzVmaktkM2JjTEhQeG9m V3VDamFlWmc9PQogCitucG0tYnVuZGxlZEBeMS4wLjE6CisgIHZlcnNpb24gIjEuMS4xIgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9ucG0tYnVuZGxlZC8tL25wbS1i dW5kbGVkLTEuMS4xLnRneiMxZWRkNTcwODY1YTk0Y2RiMWJjODIyMDc3NWUyOTQ2NmM5ZmIyMzRi IgorICBpbnRlZ3JpdHkgc2hhNTEyLWdxa2ZnR2VQaFRwQUVnVXNHRWdjcTFycVBYQSt0di9hVkJs Z0V6Zlh3QTF5aVVKRjd4dEV0M0N0VndPak5ZUU9Wa25EazBGMjB3NThGbm0zRXRHMGZBPT0KKyAg ZGVwZW5kZW5jaWVzOgorICAgIG5wbS1ub3JtYWxpemUtcGFja2FnZS1iaW4gIl4xLjAuMSIKKwog bnBtLWNvbmZAXjEuMS4wOgogICB2ZXJzaW9uICIxLjEuMyIKICAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vbnBtLWNvbmYvLS9ucG0tY29uZi0xLjEuMy50Z3ojMjU2Y2M0 N2JkMGUyMThjMjU5YzRlOTU1MGJmNDEzYmMyMTkyYWZmOSIKQEAgLTYxMjMsNiArNjE1NSwyMCBA QCBucG0tY29uZkBeMS4xLjA6CiAgICAgY29uZmlnLWNoYWluICJeMS4xLjExIgogICAgIHBpZnkg Il4zLjAuMCIKIAorbnBtLW5vcm1hbGl6ZS1wYWNrYWdlLWJpbkBeMS4wLjE6CisgIHZlcnNpb24g IjEuMC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9ucG0tbm9y bWFsaXplLXBhY2thZ2UtYmluLy0vbnBtLW5vcm1hbGl6ZS1wYWNrYWdlLWJpbi0xLjAuMS50Z3oj NmU3OWE0MWYyM2ZkMjM1YzA2MjMyMTgyMjhkYTdkOWMyM2I4ZjZlMiIKKyAgaW50ZWdyaXR5IHNo YTUxMi1FUGZhZmw2Skw1L3JVK290NlAzZ1JTQ3BQRFc1Vm1Jelg5NTlPYjEreVNGVXV1WUhXSGVr WHB3ZFVaY0tQNUMrRFM0R0V0ZEpsdXdCam5zTkRsK2ZTQT09CisKK25wbS1wYWNrbGlzdEBeMS4x LjY6CisgIHZlcnNpb24gIjEuNC44IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9ucG0tcGFja2xpc3QvLS9ucG0tcGFja2xpc3QtMS40LjgudGd6IzU2ZWU2Y2MxMzVi OWY5OGFkM2Q1MWMxYzk1ZGEyMmJiYjliMmVmM2UiCisgIGludGVncml0eSBzaGE1MTItNStBWmd3 cnU1SWV2RjVaZG5GZ2xCNXdObEhHMUFPT3V3MjhXaFVxOC84ZW1oQm1MdjZqWDVieTRXSkNoN2xX MHVTWVpZUzZEWHFJc3laVklYUlpVOUE9PQorICBkZXBlbmRlbmNpZXM6CisgICAgaWdub3JlLXdh bGsgIl4zLjAuMSIKKyAgICBucG0tYnVuZGxlZCAiXjEuMC4xIgorICAgIG5wbS1ub3JtYWxpemUt cGFja2FnZS1iaW4gIl4xLjAuMSIKKwogbnBtLXJ1bi1wYXRoQF4yLjAuMDoKICAgdmVyc2lvbiAi Mi4wLjIiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL25wbS1ydW4t cGF0aC8tL25wbS1ydW4tcGF0aC0yLjAuMi50Z3ojMzVhOTIzMmRmYTM1ZDcwNjdiNGNiMmRkZjIz NTdiMTg3MTUzNmM1ZiIKQEAgLTYxMzAsNiArNjE3NiwxNiBAQCBucG0tcnVuLXBhdGhAXjIuMC4w OgogICBkZXBlbmRlbmNpZXM6CiAgICAgcGF0aC1rZXkgIl4yLjAuMCIKIAorbnBtbG9nQF40LjAu MjoKKyAgdmVyc2lvbiAiNC4xLjIiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL25wbWxvZy8tL25wbWxvZy00LjEuMi50Z3ojMDhhN2YyYThiZjczNDYwNDc3OWE5ZWZh NGFkNWNjNzE3YWJiOTU0YiIKKyAgaW50ZWdyaXR5IHNoYTUxMi0ydVVxYXp1S2xUYVNJL2RDOEF6 aWNVY2s3K0lyRWFPbk4vZTBqZDNYdHQxS2NHcHd4MzB2NTBtTDdvUHlyL2g5YkwzRTRhWmNjVndw d1ArNVc5VmprZz09CisgIGRlcGVuZGVuY2llczoKKyAgICBhcmUtd2UtdGhlcmUteWV0ICJ+MS4x LjIiCisgICAgY29uc29sZS1jb250cm9sLXN0cmluZ3MgIn4xLjEuMCIKKyAgICBnYXVnZSAifjIu Ny4zIgorICAgIHNldC1ibG9ja2luZyAifjIuMC4wIgorCiBudGgtY2hlY2tAXjEuMC4yOgogICB2 ZXJzaW9uICIxLjAuMiIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v bnRoLWNoZWNrLy0vbnRoLWNoZWNrLTEuMC4yLnRneiNiMmJkMjk1YzM3ZTNkZDU4YTNiZjA3MDAz NzY2NjNiYTRkOWNmMDVjIgpAQCAtNjE0Nyw2ICs2MjAzLDExIEBAIG51bTJmcmFjdGlvbkBeMS4y LjI6CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL251bTJmcmFjdGlv bi8tL251bTJmcmFjdGlvbi0xLjIuMi50Z3ojNmY2ODJiNmEwMjdhNGU5ZGRmYTQ1NjRjZDI1ODlk MWQ0ZTY2OWVkZSIKICAgaW50ZWdyaXR5IHNoYTEtYjJncmFnSjZUcDNmcEZaTTBsaWRIVTVtbnQ0 PQogCitudW1iZXItaXMtbmFuQF4xLjAuMDoKKyAgdmVyc2lvbiAiMS4wLjEiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL251bWJlci1pcy1uYW4vLS9udW1iZXItaXMt bmFuLTEuMC4xLnRneiMwOTdiNjAyYjUzNDIyYTUyMmMxYWZiODc5MDMxODMzNjk0MWEwMTFkIgor ICBpbnRlZ3JpdHkgc2hhMS1DWHRnSzFOQ0tsSXNHdnVIa0RHRE5wUWFBUjA9CisKIG9iamVjdC1h c3NpZ25AXjQuMC4xLCBvYmplY3QtYXNzaWduQF40LjEuMCwgb2JqZWN0LWFzc2lnbkBeNC4xLjE6 CiAgIHZlcnNpb24gIjQuMS4xIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9vYmplY3QtYXNzaWduLy0vb2JqZWN0LWFzc2lnbi00LjEuMS50Z3ojMjEwOWFkYzc5NjU4 ODdjZmMwNWNiYmQ0NDJjYWM4YmZiYjM2MDg2MyIKQEAgLTYyOTMsNiArNjM1NCwxMSBAQCBvcy1m aWx0ZXItb2JqQF4yLjAuMDoKICAgZGVwZW5kZW5jaWVzOgogICAgIGFyY2ggIl4yLjEuMCIKIAor b3MtaG9tZWRpckBeMS4wLjA6CisgIHZlcnNpb24gIjEuMC4yIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9vcy1ob21lZGlyLy0vb3MtaG9tZWRpci0xLjAuMi50Z3oj ZmZiYzQ5ODgzMzZlMGU4MzNkZTBjMTY4YzdlZjE1MjEyMWFhN2ZiMyIKKyAgaW50ZWdyaXR5IHNo YTEtLzd4SmlETnVEb005NE1Gb3grOFZJU0dxZjdNPQorCiBvcy1sb2NhbGVAXjMuMS4wOgogICB2 ZXJzaW9uICIzLjEuMCIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v b3MtbG9jYWxlLy0vb3MtbG9jYWxlLTMuMS4wLnRneiNhODAyYTZlZTE3ZjI0YzEwNDgzYWI5OTM1 NzE5Y2VmNGVkMTZiZjFhIgpAQCAtNjMwNywxMSArNjM3MywxOSBAQCBvcy1zaGltQF4wLjEuMzoK ICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vb3Mtc2hpbS8tL29zLXNo aW0tMC4xLjMudGd6IzZiNjJjMzc5MWNmNzkwOWVhMzVlZDQ2ZTE3NjU4YmI0MTdjYjM5MTciCiAg IGludGVncml0eSBzaGExLWEyTERlUnoza0o2alh0UnVGMldMdEJmTE9SYz0KIAotb3MtdG1wZGly QH4xLjAuMjoKK29zLXRtcGRpckBeMS4wLjAsIG9zLXRtcGRpckB+MS4wLjI6CiAgIHZlcnNpb24g IjEuMC4yIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9vcy10bXBk aXIvLS9vcy10bXBkaXItMS4wLjIudGd6I2JiZTY3NDA2Yzc5YWE4NWM1Y2ZlYzc2NmZlNTczNDU1 NWRmYTEyNzQiCiAgIGludGVncml0eSBzaGExLXUrWjBCc2VhcUZ4Yy9zZG0vbGMwVlYzNkVuUT0K IAorb3NlbnZAXjAuMS40OgorICB2ZXJzaW9uICIwLjEuNSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vb3NlbnYvLS9vc2Vudi0wLjEuNS50Z3ojODVjZGZhZmFlYjI4 ZTg2NzdmNDE2ZTI4NzU5MmI1ZjNmNDllYTQxMCIKKyAgaW50ZWdyaXR5IHNoYTUxMi0wQ1djQ0VD ZE1WYzJSdzNVNXc5WmpxWDZnYTZ1YmsxeERWS3h0QlFQSzd3aXMvMEYycjlUNms0eWRHWWhlY2w3 WVVCeEJWeGhMNW9pc1BzTnhBUGUyZz09CisgIGRlcGVuZGVuY2llczoKKyAgICBvcy1ob21lZGly ICJeMS4wLjAiCisgICAgb3MtdG1wZGlyICJeMS4wLjAiCisKIG91dHBpcGVAXjEuMS4wOgogICB2 ZXJzaW9uICIxLjEuMSIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v b3V0cGlwZS8tL291dHBpcGUtMS4xLjEudGd6IzUwY2Y4NjE2MzY1ZTg3ZTAzMWUyOWE1ZWM5MzM5 YTNkYTQ3MjVmYTIiCkBAIC03MjE4LDYgKzcyOTIsMTYgQEAgcmF3LWxvYWRlckBeMS4wLjA6CiAg ICAgbG9hZGVyLXV0aWxzICJeMS4xLjAiCiAgICAgc2NoZW1hLXV0aWxzICJeMS4wLjAiCiAKK3Jj QF4xLjIuNzoKKyAgdmVyc2lvbiAiMS4yLjgiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL3JjLy0vcmMtMS4yLjgudGd6I2NkOTI0YmY1MjAwYTA3NWI4M2MxODhjZDZi OWUyMTFiN2ZjMGQzZWQiCisgIGludGVncml0eSBzaGE1MTIteTNiR2dxS2ozUUJkeExiTGtvbWxv aGt2c0E4Z2RBaVVRbFNCSm5CaGZuK0JQeGc0YmM2MmQ4VGNCVzE1d2F2RGZnZXhDZ2NjY2toY1p2 eXd5UVlQT3c9PQorICBkZXBlbmRlbmNpZXM6CisgICAgZGVlcC1leHRlbmQgIl4wLjYuMCIKKyAg ICBpbmkgIn4xLjMuMCIKKyAgICBtaW5pbWlzdCAiXjEuMi4wIgorICAgIHN0cmlwLWpzb24tY29t bWVudHMgIn4yLjAuMSIKKwogcmVhZC1vbmx5LXN0cmVhbUBeMi4wLjA6CiAgIHZlcnNpb24gIjIu MC4wIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9yZWFkLW9ubHkt c3RyZWFtLy0vcmVhZC1vbmx5LXN0cmVhbS0yLjAuMC50Z3ojMjcyNGZkNmE4MTEzZDczNzY0YWMy ODhkNDM4NjI3MGMxZGJmMTdmMCIKQEAgLTcyNDIsNyArNzMyNiw3IEBAIHJlYWQtcGtnQF4xLjAu MDoKICAgICBub3JtYWxpemUtcGFja2FnZS1kYXRhICJeMi4zLjIiCiAgICAgcGF0aC10eXBlICJe MS4wLjAiCiAKLSJyZWFkYWJsZS1zdHJlYW1AMSB8fCAyIiwgcmVhZGFibGUtc3RyZWFtQF4yLjAu MCwgcmVhZGFibGUtc3RyZWFtQF4yLjAuMSwgcmVhZGFibGUtc3RyZWFtQF4yLjAuMiwgcmVhZGFi bGUtc3RyZWFtQF4yLjEuNSwgcmVhZGFibGUtc3RyZWFtQF4yLjIuMiwgcmVhZGFibGUtc3RyZWFt QF4yLjMuMCwgcmVhZGFibGUtc3RyZWFtQF4yLjMuMywgcmVhZGFibGUtc3RyZWFtQF4yLjMuNSwg cmVhZGFibGUtc3RyZWFtQF4yLjMuNiwgcmVhZGFibGUtc3RyZWFtQH4yLjMuNjoKKyJyZWFkYWJs ZS1zdHJlYW1AMSB8fCAyIiwgcmVhZGFibGUtc3RyZWFtQF4yLjAuMCwgcmVhZGFibGUtc3RyZWFt QF4yLjAuMSwgcmVhZGFibGUtc3RyZWFtQF4yLjAuMiwgcmVhZGFibGUtc3RyZWFtQF4yLjAuNiwg cmVhZGFibGUtc3RyZWFtQF4yLjEuNSwgcmVhZGFibGUtc3RyZWFtQF4yLjIuMiwgcmVhZGFibGUt c3RyZWFtQF4yLjMuMCwgcmVhZGFibGUtc3RyZWFtQF4yLjMuMywgcmVhZGFibGUtc3RyZWFtQF4y LjMuNSwgcmVhZGFibGUtc3RyZWFtQF4yLjMuNiwgcmVhZGFibGUtc3RyZWFtQH4yLjMuNjoKICAg dmVyc2lvbiAiMi4zLjciCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L3JlYWRhYmxlLXN0cmVhbS8tL3JlYWRhYmxlLXN0cmVhbS0yLjMuNy50Z3ojMWVjYTFjZjcxMWFl ZjgxNGMwNGY2MjI1MmEzNmE2MmY2Y2IyM2I1NyIKICAgaW50ZWdyaXR5IHNoYTUxMi1FYmhvOEs0 akliSEF4bnV4aTdvNDJPclpnRi9aVE5jc1pqNm5SS3lVbWtoTEZxOENISXRwL2Z5NmhRWnVabVAv bjN5WjlWQlVicDR6ei9tWDhobVlQdz09CkBAIC03MjY1LDE1ICs3MzQ5LDYgQEAgcmVhZGFibGUt c3RyZWFtQF4xLjAuMzM6CiAgICAgaXNhcnJheSAiMC4wLjEiCiAgICAgc3RyaW5nX2RlY29kZXIg In4wLjEwLngiCiAKLXJlYWRhYmxlLXN0cmVhbUBeMy4wLjY6Ci0gIHZlcnNpb24gIjMuNi4wIgot ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9yZWFkYWJsZS1zdHJlYW0v LS9yZWFkYWJsZS1zdHJlYW0tMy42LjAudGd6IzMzN2JiZGEzYWRjMDcwNmJkM2UwMjQ0MjZhMjg2 ZDRiNGIyYzkxOTgiCi0gIGludGVncml0eSBzaGE1MTItQlZpSHk3TEtlVHo0b05ua2NMSitsVlNM NnZwaUZlWDYvZDNvU0g4ekNXN1V4UDJvbmNoayt2VEdCMTQzeHVGakhTM2RlVGdrS29YWHltWHF5 bWlJZEE9PQotICBkZXBlbmRlbmNpZXM6Ci0gICAgaW5oZXJpdHMgIl4yLjAuMyIKLSAgICBzdHJp bmdfZGVjb2RlciAiXjEuMS4xIgotICAgIHV0aWwtZGVwcmVjYXRlICJeMS4wLjEiCi0KIHJlYWRk aXJwQF4yLjIuMToKICAgdmVyc2lvbiAiMi4yLjEiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL3JlYWRkaXJwLy0vcmVhZGRpcnAtMi4yLjEudGd6IzBlODc2MjJhMzMy NWFhMzNlODkyMjg1Y2FmOGI0ZTg0NjUyOWE1MjUiCkBAIC03NTI2LDcgKzc2MDEsNyBAQCByaW1y YWZAMi42LjM6CiAgIGRlcGVuZGVuY2llczoKICAgICBnbG9iICJeNy4xLjMiCiAKLXJpbXJhZkBe Mi41LjQsIHJpbXJhZkBeMi42LjAsIHJpbXJhZkBeMi42LjMsIHJpbXJhZkBeMi43LjE6CityaW1y YWZAXjIuNS40LCByaW1yYWZAXjIuNi4wLCByaW1yYWZAXjIuNi4xLCByaW1yYWZAXjIuNi4zLCBy aW1yYWZAXjIuNy4xOgogICB2ZXJzaW9uICIyLjcuMSIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vcmltcmFmLy0vcmltcmFmLTIuNy4xLnRneiMzNTc5N2YxM2E3ZmRh ZGM1NjYxNDJjMjlkNGYwN2NjYWQ0ODNlM2VjIgogICBpbnRlZ3JpdHkgc2hhNTEyLXVXamJhS0lL M1QxT1NWcHR6WDdObDZQdlEzcUFHdEtFdFZSalJ1YXpqZkwzQng1ZUk0MDlWWlNxZ05EKzRVTm5t ekxWZFBqOUZxRkpOUHFCWkZ2ZTR3PT0KQEAgLTc1ODAsMTIgKzc2NTUsMTIgQEAgcnhqc0BeNi40 LjA6CiAgIGRlcGVuZGVuY2llczoKICAgICB0c2xpYiAiXjEuOS4wIgogCi1zYWZlLWJ1ZmZlckA1 LjEuMiwgc2FmZS1idWZmZXJAfjUuMS4wLCBzYWZlLWJ1ZmZlckB+NS4xLjE6CitzYWZlLWJ1ZmZl ckA1LjEuMiwgc2FmZS1idWZmZXJAXjUuMS4yLCBzYWZlLWJ1ZmZlckB+NS4xLjAsIHNhZmUtYnVm ZmVyQH41LjEuMToKICAgdmVyc2lvbiAiNS4xLjIiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL3NhZmUtYnVmZmVyLy0vc2FmZS1idWZmZXItNS4xLjIudGd6Izk5MWVj NjlkMjk2ZTAzMTM3NDdkNTliZGZkMmI3NDVjMzVmODgyOGQiCiAgIGludGVncml0eSBzaGE1MTIt R2QyVVpCSkRrWGxZN0diSnhmc0U4L252S2tVRVUxRzM4YzFzaU42UVA2YTlQVDlNbUhCOEducHNj U21NSlNvRjhMT0lydDh1ZC93UHRvanlzNEc2K2c9PQogCi1zYWZlLWJ1ZmZlckBeNS4wLjEsIHNh ZmUtYnVmZmVyQF41LjEuMCwgc2FmZS1idWZmZXJAXjUuMS4xLCBzYWZlLWJ1ZmZlckBeNS4xLjIs IHNhZmUtYnVmZmVyQH41LjIuMDoKK3NhZmUtYnVmZmVyQF41LjAuMSwgc2FmZS1idWZmZXJAXjUu MS4wLCBzYWZlLWJ1ZmZlckBeNS4xLjEsIHNhZmUtYnVmZmVyQH41LjIuMDoKICAgdmVyc2lvbiAi NS4yLjAiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3NhZmUtYnVm ZmVyLy0vc2FmZS1idWZmZXItNS4yLjAudGd6I2I3NGRhZWM0OWIxMTQ4Zjg4YzY0YjY4ZDQ5YjFl ODE1YzFmMmY1MTkiCiAgIGludGVncml0eSBzaGE1MTItZlpFd1VHYlZsN2tvdVpzMWpDZE1MZHQ5 NWhkSXYwWmVIZzZMN3FQZWNpTVpoWisvZ2Rlc1c0d2dUQVJrckZXRXBzcGpFQVRBelVHUEc4TjJq Sml3Ymc9PQpAQCAtNzcyNSw3ICs3ODAwLDcgQEAgc2VydmUtc3RhdGljQDEuMTQuMToKICAgICBw YXJzZXVybCAifjEuMy4zIgogICAgIHNlbmQgIjAuMTcuMSIKIAotc2V0LWJsb2NraW5nQF4yLjAu MDoKK3NldC1ibG9ja2luZ0BeMi4wLjAsIHNldC1ibG9ja2luZ0B+Mi4wLjA6CiAgIHZlcnNpb24g IjIuMC4wIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zZXQtYmxv Y2tpbmcvLS9zZXQtYmxvY2tpbmctMi4wLjAudGd6IzA0NWY5NzgyZDAxMWFlOWE2ODAzZGRkMzgy YjI0MzkyYjNkODkwZjciCiAgIGludGVncml0eSBzaGExLUJGK1hndEFScnBwb0E5M1RnckpEa3JQ WWtQYz0KQEAgLTgxMjgsMTYgKzgyMDMsNiBAQCBzdHJlYW0taHR0cEBeMi4wLjAsIHN0cmVhbS1o dHRwQF4yLjcuMjoKICAgICB0by1hcnJheWJ1ZmZlciAiXjEuMC4wIgogICAgIHh0ZW5kICJeNC4w LjAiCiAKLXN0cmVhbS1odHRwQF4zLjAuMDoKLSAgdmVyc2lvbiAiMy4xLjAiCi0gIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3N0cmVhbS1odHRwLy0vc3RyZWFtLWh0dHAt My4xLjAudGd6IzIyZmIzM2ZlOWI0MDU2YjRlY2NmNThiZDhmNDAwYzRiOTkzZmZlNTciCi0gIGlu dGVncml0eSBzaGE1MTItY3VCNlJnTzdCcUM0RkJZem1udmhvYjVEbzN3SWRJc1hBZ0d5Y0hKblcr OTgxZ0hxb1ljWXo5bHFqSnJrOFdYUmRkYndQdXFQWVJsK2JhZzZtWXY0bHc9PQotICBkZXBlbmRl bmNpZXM6Ci0gICAgYnVpbHRpbi1zdGF0dXMtY29kZXMgIl4zLjAuMCIKLSAgICBpbmhlcml0cyAi XjIuMC4xIgotICAgIHJlYWRhYmxlLXN0cmVhbSAiXjMuMC42IgotICAgIHh0ZW5kICJeNC4wLjAi Ci0KIHN0cmVhbS1zaGlmdEBeMS4wLjA6CiAgIHZlcnNpb24gIjEuMC4xIgogICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zdHJlYW0tc2hpZnQvLS9zdHJlYW0tc2hpZnQt MS4wLjEudGd6I2Q3MDg4MjgxNTU5YWIyNzc4NDI0Mjc5YjA4NzdkYTNjMzkyZDVhM2QiCkBAIC04 MTY3LDYgKzgyMzIsMTUgQEAgc3RyaWN0LXVyaS1lbmNvZGVAXjEuMC4wOgogICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zdHJpY3QtdXJpLWVuY29kZS8tL3N0cmljdC11 cmktZW5jb2RlLTEuMS4wLnRneiMyNzliMjI1ZGYxZDU4MmIxZjU0ZTY1YWRkZDQzNTJlMThmYWEw NzEzIgogICBpbnRlZ3JpdHkgc2hhMS1KNXNpWGZIVmdySDFUbVd0M1VOUzRZK3FCeE09CiAKK3N0 cmluZy13aWR0aEBeMS4wLjEsICJzdHJpbmctd2lkdGhAXjEuMC4yIHx8IDIiOgorICB2ZXJzaW9u ICIxLjAuMiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vc3RyaW5n LXdpZHRoLy0vc3RyaW5nLXdpZHRoLTEuMC4yLnRneiMxMThiZGY1YjhjZGM1MWEyYTdlNzBkMjEx ZTA3ZTJiMGI5YjEwN2QzIgorICBpbnRlZ3JpdHkgc2hhMS1FWXZmVzR6Y1VhS241dzBoSGdmaXNM bXhCOU09CisgIGRlcGVuZGVuY2llczoKKyAgICBjb2RlLXBvaW50LWF0ICJeMS4wLjAiCisgICAg aXMtZnVsbHdpZHRoLWNvZGUtcG9pbnQgIl4xLjAuMCIKKyAgICBzdHJpcC1hbnNpICJeMy4wLjAi CisKIHN0cmluZy13aWR0aEBeMi4xLjA6CiAgIHZlcnNpb24gIjIuMS4xIgogICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zdHJpbmctd2lkdGgvLS9zdHJpbmctd2lkdGgt Mi4xLjEudGd6I2FiOTNmMjdhOGRjMTNkMjhjYWM4MTVjNDYyMTQzYTZkOTAxMmFlOWUiCkBAIC04 MTk1LDkgKzgyNjksOSBAQCBzdHJpbmcucHJvdG90eXBlLmNvZGVwb2ludGF0QF4wLjIuMDoKICAg aW50ZWdyaXR5IHNoYTUxMi0yY0JWQ2o2STRJT3ZFbmpnTy9oV3FYanFCR3NZK3p3UG1IbDEyU3Jr OUlYU1o1Nkp3d215KzY2WE81SXV0L29RVlI3dDVpaFlkTEIwR01hNGFsRVVjZz09CiAKIHN0cmlu Zy5wcm90b3R5cGUudHJpbWVuZEBeMS4wLjA6Ci0gIHZlcnNpb24gIjEuMC4wIgotICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zdHJpbmcucHJvdG90eXBlLnRyaW1lbmQv LS9zdHJpbmcucHJvdG90eXBlLnRyaW1lbmQtMS4wLjAudGd6I2VlNDk3ZmQyOTc2ODY0NmQ4NGJl MmM5YjgxOWUyOTI0Mzk2MTQzNzMiCi0gIGludGVncml0eSBzaGE1MTItRUVKbkdxYS94TmZJZzA1 U3hpUFNxUlM3Uzlxd0RoWXRzMVRTTFIxQlFmWVVmUGUxc3RvZmdHS3Z3RVJLOSs5eWYrUHBmQk1s cEJhQ0h1Y1hHUFFmVUE9PQorICB2ZXJzaW9uICIxLjAuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vc3RyaW5nLnByb3RvdHlwZS50cmltZW5kLy0vc3RyaW5nLnBy b3RvdHlwZS50cmltZW5kLTEuMC4xLnRneiM4NTgxMmE2Yjg0N2FjMDAyMjcwZjU4MDgxNDYwNjRj OTk1ZmI2OTEzIgorICBpbnRlZ3JpdHkgc2hhNTEyLUxSUHhGVWFUdHBxWXNUZU5LYUZPdzNSNGJ4 SXpXT25iUTgzN1FmQnlsbzhqSXh0Y2JLL0Evc01WN1ErT0FWL3ZXbys3czI1cE9FMTBLWVNqYVNP MDZnPT0KICAgZGVwZW5kZW5jaWVzOgogICAgIGRlZmluZS1wcm9wZXJ0aWVzICJeMS4xLjMiCiAg ICAgZXMtYWJzdHJhY3QgIl4xLjE3LjUiCkBAIC04MjIxLDkgKzgyOTUsOSBAQCBzdHJpbmcucHJv dG90eXBlLnRyaW1yaWdodEBeMi4xLjE6CiAgICAgc3RyaW5nLnByb3RvdHlwZS50cmltZW5kICJe MS4wLjAiCiAKIHN0cmluZy5wcm90b3R5cGUudHJpbXN0YXJ0QF4xLjAuMDoKLSAgdmVyc2lvbiAi MS4wLjAiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3N0cmluZy5w cm90b3R5cGUudHJpbXN0YXJ0Ly0vc3RyaW5nLnByb3RvdHlwZS50cmltc3RhcnQtMS4wLjAudGd6 I2FmZTU5NmE3Y2U5ZGU5MDU0OTY5MTk0MDZjOTczNDg0NWYwMWEyZjIiCi0gIGludGVncml0eSBz aGE1MTItaUNQOGcwMU5GWWlpQk9ud0cxWGMzV1pMeW9vK1J1Qnltd0lsV25jU2hYRERKWVdONkRi bk0zb2RzbEJKZGdDZFJscTk0QjVzNjNOV0FabGNuMkNTNHc9PQorICB2ZXJzaW9uICIxLjAuMSIK KyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vc3RyaW5nLnByb3RvdHlw ZS50cmltc3RhcnQvLS9zdHJpbmcucHJvdG90eXBlLnRyaW1zdGFydC0xLjAuMS50Z3ojMTRhZjZk OWYzNGIwNTNmN2NmYzg5YjcyZjhmMmVlMTRiOTAzOWE1NCIKKyAgaW50ZWdyaXR5IHNoYTUxMi1Y eFpuK1FwdnJCSTFGT2NnNmRJcHhVUGdXQ1B1Tlh2TUQ3MmFhUmFVUXYxZUQ0ZS9ReThpL2hGVGUw QlVtRDYwcC9RQTZiaDFhdm11UFRmTmpxVldSdz09CiAgIGRlcGVuZGVuY2llczoKICAgICBkZWZp bmUtcHJvcGVydGllcyAiXjEuMS4zIgogICAgIGVzLWFic3RyYWN0ICJeMS4xNy41IgpAQCAtODI0 Nyw3ICs4MzIxLDcgQEAgc3RyaW5nX2RlY29kZXJAfjEuMS4xOgogICBkZXBlbmRlbmNpZXM6CiAg ICAgc2FmZS1idWZmZXIgIn41LjEuMCIKIAotc3RyaXAtYW5zaUBeMy4wLjA6CitzdHJpcC1hbnNp QF4zLjAuMCwgc3RyaXAtYW5zaUBeMy4wLjE6CiAgIHZlcnNpb24gIjMuMC4xIgogICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zdHJpcC1hbnNpLy0vc3RyaXAtYW5zaS0z LjAuMS50Z3ojNmEzODVmYjg4NTNkOTUyZDVmZjA1ZDBlOGFhZjk0Mjc4ZGM2M2RjZiIKICAgaW50 ZWdyaXR5IHNoYTEtYWpoZnVJVTlsUzFmOEYwT2lxK1VKNDNHUGM4PQpAQCAtODI5NCw3ICs4MzY4 LDcgQEAgc3RyaXAtaW5kZW50QF4xLjAuMToKICAgZGVwZW5kZW5jaWVzOgogICAgIGdldC1zdGRp biAiXjQuMC4xIgogCi1zdHJpcC1qc29uLWNvbW1lbnRzQF4yLjAuMToKK3N0cmlwLWpzb24tY29t bWVudHNAXjIuMC4xLCBzdHJpcC1qc29uLWNvbW1lbnRzQH4yLjAuMToKICAgdmVyc2lvbiAiMi4w LjEiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3N0cmlwLWpzb24t Y29tbWVudHMvLS9zdHJpcC1qc29uLWNvbW1lbnRzLTIuMC4xLnRneiMzYzUzMTk0MmU5MDhjMjY5 N2MwZWMzNDQ4NThjMjg2YzdjYTBhNjBhIgogICBpbnRlZ3JpdHkgc2hhMS1QRk1aUXVrSXdtbDhE c05FaFl3b2JIeWdwZ289CkBAIC04NDU3LDYgKzg1MzEsMTkgQEAgdGFyLXN0cmVhbUBeMS41LjI6 CiAgICAgdG8tYnVmZmVyICJeMS4xLjEiCiAgICAgeHRlbmQgIl40LjAuMCIKIAordGFyQF40LjQu MjoKKyAgdmVyc2lvbiAiNC40LjEzIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS90YXIvLS90YXItNC40LjEzLnRneiM0M2IzNjRiYzUyODg4ZDU1NTI5ODYzN2IxMGQ2 MDc5MDI1NGFiNTI1IgorICBpbnRlZ3JpdHkgc2hhNTEyLXcyVndTckJvSGE1QnNTeUgrS3hFcWVR QkFsbEhoY2N5TUZWSHRHdGRNcEY0VzdJUldmWmpGaVFjZUpQQ2hPZVRzU0RWVXBFUjJUOEZBOTNw cjBMK1FBPT0KKyAgZGVwZW5kZW5jaWVzOgorICAgIGNob3duciAiXjEuMS4xIgorICAgIGZzLW1p bmlwYXNzICJeMS4yLjUiCisgICAgbWluaXBhc3MgIl4yLjguNiIKKyAgICBtaW5pemxpYiAiXjEu Mi4xIgorICAgIG1rZGlycCAiXjAuNS4wIgorICAgIHNhZmUtYnVmZmVyICJeNS4xLjIiCisgICAg eWFsbGlzdCAiXjMuMC4zIgorCiB0ZW1wLWRpckBeMS4wLjA6CiAgIHZlcnNpb24gIjEuMC4wIgog ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS90ZW1wLWRpci8tL3RlbXAt ZGlyLTEuMC4wLnRneiMwYTdjMGVhMjZkM2EzOWFmYTdlMGViZWE5YzFmYzBiYzRkYWEwMTFkIgpA QCAtODUyMSw5ICs4NjA4LDkgQEAgdGVyc2VyLXdlYnBhY2stcGx1Z2luQF4yLjIuMjoKICAgICB3 ZWJwYWNrLXNvdXJjZXMgIl4xLjQuMyIKIAogdGVyc2VyQF40LjEuMiwgdGVyc2VyQF40LjQuMywg dGVyc2VyQF40LjYuMjoKLSAgdmVyc2lvbiAiNC42LjEwIgotICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS90ZXJzZXIvLS90ZXJzZXItNC42LjEwLnRneiM5MGY1YmQwNjlm ZjQ1NmRkYmM5NTAzYjE4ZTUyZjljNDkzZDNiN2MyIgotICBpbnRlZ3JpdHkgc2hhNTEyLXFiRi8z VU9vMTFIZ2dzYnNxbTJoUGE2K0w0dzdia3IrMDlGTnNlRWU4eHJjVkQzQVBHTEZxRStPejFaS0F4 alluRnNqODByTE9mZ0F0SjBMTkpqdFRBPT0KKyAgdmVyc2lvbiAiNC42LjExIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS90ZXJzZXIvLS90ZXJzZXItNC42LjExLnRn eiMxMmZmOTlmZGQ2MmEyNmRlMmE4MmY1MDg1MTU0MDdlYjZjY2Q4YTlmIgorICBpbnRlZ3JpdHkg c2hhNTEyLTc2WW5tN09YVUc1eGhPcGJsaHl0RTdYNThvZU5TbUM4eG5OaGpXVm84Q2tzSGl0MFUw a080aGZOYlBycll3b3dMV0ZnTTJuOUwxNzZWTngyUWFIbXRBPT0KICAgZGVwZW5kZW5jaWVzOgog ICAgIGNvbW1hbmRlciAiXjIuMjAuMCIKICAgICBzb3VyY2UtbWFwICJ+MC42LjEiCkBAIC04NzI0 LDkgKzg4MTEsOSBAQCB1bWRAXjMuMC4wOgogICBpbnRlZ3JpdHkgc2hhNTEyLTRJY0dTdWZoRnNo dkxOY01DVjgwVW5RVmxaNXBNT0M4bXZOUEZvcnF3QTQrbHpZUXVldFRFU0xEUWtlTG1paHE4YlJj bnBiUWE0OFdiOExoMTYveG93PT0KIAogdW5iemlwMi1zdHJlYW1AXjEuMC45OgotICB2ZXJzaW9u ICIxLjQuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vdW5iemlw Mi1zdHJlYW0vLS91bmJ6aXAyLXN0cmVhbS0xLjQuMC50Z3ojMDk3Y2E3YjE4YjViNzFlNmM4YmM4 ZTUxNGEwZjE4ODRhMTJkNmViMSIKLSAgaW50ZWdyaXR5IHNoYTUxMi1rVng3Q0RBc2RCU1dWZjQw NE13N29JOWkwOXc1L21UVC9SdWsrUldhNjRQTFlLdnNBdWNMTEZIdlF0bnZqZUFETTRaaXp4cnZH NVNIbkY0VGU0VDJDZz09CisgIHZlcnNpb24gIjEuNC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS91bmJ6aXAyLXN0cmVhbS8tL3VuYnppcDItc3RyZWFtLTEuNC4x LnRneiMxNTFiMTA0YWY4NTNkZjNlZmRhYTEzNWQ4YjFlY2E4NTBhNDRiNDI2IgorICBpbnRlZ3Jp dHkgc2hhNTEyLXNnRFlmU0RQTXNBNEhyMi93N3ZPbHJKQmx3em15YWtrMStoVzhPYkx2eFNwMExB MzZMY0wyWEl0R3ZPVDNPU2Jsb2hTZGV2TXVUOEZRakxzcXl5NHNBPT0KICAgZGVwZW5kZW5jaWVz OgogICAgIGJ1ZmZlciAiXjUuMi4xIgogICAgIHRocm91Z2ggIl4yLjMuOCIKQEAgLTg4OTMsNyAr ODk4MCw3IEBAIHVzZXJhZ2VudEAyLjMuMDoKICAgICBscnUtY2FjaGUgIjQuMS54IgogICAgIHRt cCAiMC4wLngiCiAKLXV0aWwtZGVwcmVjYXRlQF4xLjAuMSwgdXRpbC1kZXByZWNhdGVAfjEuMC4x OgordXRpbC1kZXByZWNhdGVAfjEuMC4xOgogICB2ZXJzaW9uICIxLjAuMiIKICAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vdXRpbC1kZXByZWNhdGUvLS91dGlsLWRlcHJl Y2F0ZS0xLjAuMi50Z3ojNDUwZDRkYzlmYTcwZGU3MzI3NjJmYmQyZDRhMjg5ODE0MTlhMGNjZiIK ICAgaW50ZWdyaXR5IHNoYTEtUlExTnlmcHczbk1uWXZ2UzFLS0pnVUdhRE04PQpAQCAtOTEyNyw2 ICs5MjE0LDEzIEBAIHdoaWNoQF4xLjIuMSwgd2hpY2hAXjEuMi4xNCwgd2hpY2hAXjEuMi45LCB3 aGljaEBeMS4zLjE6CiAgIGRlcGVuZGVuY2llczoKICAgICBpc2V4ZSAiXjIuMC4wIgogCit3aWRl LWFsaWduQF4xLjEuMDoKKyAgdmVyc2lvbiAiMS4xLjMiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL3dpZGUtYWxpZ24vLS93aWRlLWFsaWduLTEuMS4zLnRneiNhZTA3 NGU2YmRjMGMxNGE0MzFlODA0ZTYyNDU0OWM2MzNiMDAwNDU3IgorICBpbnRlZ3JpdHkgc2hhNTEy LVFHa09RYzhYTDZCdDVQd25zRXhLQlB1TUtCeG5HeFdXVzNmVTU1WHQ0ZmVIb3pNVWhkVU1hQkNr MjkwcXBtL3dHNXUvUlNLendkQUM0aTUxWWlnaWhBPT0KKyAgZGVwZW5kZW5jaWVzOgorICAgIHN0 cmluZy13aWR0aCAiXjEuMC4yIHx8IDIiCisKIHdreEBeMC40LjY6CiAgIHZlcnNpb24gIjAuNC44 IgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS93a3gvLS93a3gtMC40 LjgudGd6I2EwOTJjZjA4OGQxMTI2ODNmZGM3MTgyZmQzMTQ5M2IyYzU4MjAwMDMiCkBAIC05MjEz LDcgKzkzMDcsNyBAQCB5YWxsaXN0QF4yLjEuMjoKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20veWFsbGlzdC8tL3lhbGxpc3QtMi4xLjIudGd6IzFjMTFmOTIxOGYwNzYw ODlhNDdkZDUxMmY5M2M2Njk5YTZhODFkNTIiCiAgIGludGVncml0eSBzaGExLUhCSDVJWThIWUlt a2ZkVVMrVHhtbWFhb0hWST0KIAoteWFsbGlzdEBeMy4wLjI6Cit5YWxsaXN0QF4zLjAuMCwgeWFs bGlzdEBeMy4wLjIsIHlhbGxpc3RAXjMuMC4zOgogICB2ZXJzaW9uICIzLjEuMSIKICAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20veWFsbGlzdC8tL3lhbGxpc3QtMy4xLjEu dGd6I2RiYjdkYWY5YmZkOGJhYzlhYjQ1ZWJmNjAyYjhjYmFkMGQ1ZDA4ZmQiCiAgIGludGVncml0 eSBzaGE1MTItYTRVR1FhV1BINTltT1hVWW5BRzJld25jUVM0aTRGNDNUdjNKb0FNK3MyVkRBbVM5 TnNLOEdwRE1MckNIUGtzRlQ3aDNLNlRPb1VObjJwYjdSb1h4NGc9PQo= --000000000000e903c905a490b4ae--