Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fhx6P-0000K4-E1 for pgadmin-hackers@arkaria.postgresql.org; Tue, 24 Jul 2018 13:11:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fhx6N-0002MG-IQ for pgadmin-hackers@arkaria.postgresql.org; Tue, 24 Jul 2018 13:11:43 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fhx6M-0002M2-M5 for pgadmin-hackers@lists.postgresql.org; Tue, 24 Jul 2018 13:11:43 +0000 Received: from mail-lj1-x243.google.com ([2a00:1450:4864:20::243]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1fhx6I-0003co-3y for pgadmin-hackers@postgresql.org; Tue, 24 Jul 2018 13:11:41 +0000 Received: by mail-lj1-x243.google.com with SMTP id p6-v6so3538853ljc.5 for ; Tue, 24 Jul 2018 06:11:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=5LnxCtNrM2HtI3o8IOlPj83PtDwTX20thInRODcxYjg=; b=NxT8jeGFhRIwzYhuSOOIEYJyfuBfdHB0Y65tTQMmOM/aD51R9IFO8wxcuZ6BAYu9zR tiam6GRh23tOk7lSj9c5LDrQKN4oiL7X0JsU3KX/00ECRISUKj2kq8aiqAjSihQF1NII 3YQrjKt5zdpTABR0tTvMR1vmOJXvf1YN0xDk7+19vVgK7a7nhYiZdCGePpNaOUnOTweE 1L7d8+YbUqM9OSkXMwXX8aDIcTOTUx8UyX9WBRQq7o2cE2NK90xMwStozrgnYDuwK2h5 3LEuol49b9yuguPC02b6IVBmXy9YszGYDqalsvcjDewFwKJVaFB0LXwnXOjvpySl0w+T zufQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=5LnxCtNrM2HtI3o8IOlPj83PtDwTX20thInRODcxYjg=; b=OcMuIiXl4AzmHcBDc34Y3NAl9VcalvbaRyTzBYGHlCJEjNHSPy8hpMKSKr2uQLnmkC d2LeQyZLm9Dj3rmk2m/7hAKe2SE+2yTr06Dt0/IAI6psf8/HpQGaQl5FjBp8Gqgw6nls eG2rZ3tgZGI+J9gSHdFiukVt6wgTd2fSg6E1t1pdojUEFfZmF9qdzzZnWQxV1RjHEXHQ zvJ2dixGpC20c1ZrQnjg5lHgK6w/H8YX8Bsg3MuyAC/2jX+M+bCd05ZQXW8+fSPsL1Hg lwWcjPow5HgBOXp6sDfDj+BUyQCHsniLl5dgT5O27wETLOzH6l8LRdro34atOaCW2Hk4 i0mQ== X-Gm-Message-State: AOUpUlGSms7EYQ/Il4BjM0vpeAOgPA4jjQvsNXfjD0+GtE3uD9Nxr4AH +OFCNS8HEE0BWiPBEHKnASyLM9oidjsI1+BBZ1bMNw== X-Google-Smtp-Source: AAOMgpf+FFAWoRNJkmMNQhbsawdGXSbIc4JIrRScj4NCtXO5qRT97ChSpJJtKATrcbaIasye4lA1/3VQvum4wvAD/hQ= X-Received: by 2002:a2e:40c:: with SMTP id 12-v6mr12611424lje.146.1532437895212; Tue, 24 Jul 2018 06:11:35 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a2e:8703:0:0:0:0:0 with HTTP; Tue, 24 Jul 2018 06:11:34 -0700 (PDT) In-Reply-To: References: From: Aditya Toshniwal Date: Tue, 24 Jul 2018 18:41:34 +0530 Message-ID: Subject: Re: [pgAdmin4][RM3294] User need to reset the layout to see the changed preferences parameters To: Dave Page Cc: Akshay Joshi , pgadmin-hackers Content-Type: multipart/mixed; boundary="00000000000062b1a30571be80ac" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --00000000000062b1a30571be80ac Content-Type: multipart/alternative; boundary="00000000000062b1a00571be80aa" --00000000000062b1a00571be80aa Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, Attached is the updated patch. On Tue, Jul 24, 2018 at 4:32 PM, Dave Page wrote: > Hi > > On Tue, Jul 24, 2018 at 11:39 AM, Aditya Toshniwal enterprisedb.com> wrote: > >> Hi Hackers, >> >> Attached is the second part of the changes for making preferences >> realtime. The patch includes dashboard and debugger modules. >> > > All my dashboard graphs now seem to be straight lines. I'm guessing > there's a bug somewhere, as I've never seen one PG server sustain it's I/= O > levels so perfectly, let alone the three I tested with :-) > =E2=80=8BFixed. :P =E2=80=8B > > >> I would also request to create RMs for javascript test cases for >> dashboard and debugger modules as currently there is no setup for the te= st >> cases of these two modules. >> > > Please do. As well as that I'd also like to see a Python test to ensure > that the invocation SQL for various different types of function/procedure > is correct. We've messed that up a few times over the years. > > Thanks. > > The changes are on the JS side and so patch does not have any test cases >> included. >> > >> Kindly review. >> >> >> On Thu, Jul 5, 2018 at 4:09 PM, Dave Page wrote: >> >>> Thanks - patch applied! >>> >>> On Wed, Jul 4, 2018 at 10:19 AM, Aditya Toshniwal < >>> aditya.toshniwal@enterprisedb.com> wrote: >>> >>>> Hi Hackers, >>>> >>>> Attached is the updated patch for the RM. Change of the flags like aut= o >>>> commit, explain->verbose, etc. will reflect in all other open sql edit= ors. >>>> Kindly review. >>>> >>>> On Fri, Jun 29, 2018 at 10:39 PM, Aditya Toshniwal < >>>> aditya.toshniwal@enterprisedb.com> wrote: >>>> >>>>> Hi Dave, >>>>> >>>>> On Fri, Jun 29, 2018 at 9:30 PM, Dave Page wrote: >>>>> >>>>>> Hi >>>>>> >>>>>> On Fri, Jun 29, 2018 at 3:14 PM, Aditya Toshniwal < >>>>>> aditya.toshniwal@enterprisedb.com> wrote: >>>>>> >>>>>>> Hi Hackers, >>>>>>> >>>>>>> Attached is the updated patch. >>>>>>> >>>>>> >>>>>> This seems to work for the most part, however I saw what seemed like >>>>>> odd behaviour. If I have 2 query tool windows open; >>>>>> >>>>>> - Changing a preference from the Preferences dialogue updates both >>>>>> query tools. >>>>>> >>>>>> - Changing a preference from a Query Tool updates the Preferences >>>>>> dialogue. >>>>>> >>>>>> - Changing a preference from a Query Tool does *not* update the othe= r >>>>>> Query Tool. >>>>>> >>>>>> The last point seems odd to me, though it also kinda makes sense to >>>>>> not have one query tool affect the other. The problem with that is t= hat it >>>>>> could get quite confusing when they get out of sync. I think it woul= d be >>>>>> better for a change in one Query Tool to update the other(s). >>>>>> >>>>>> What do you think? Was this behaviour intentional? >>>>>> >>>>> >>>>> =E2=80=8BNo this was not intentional. It should reflect in other quer= y tools >>>>> as well because changing the flags like Auto Commit changes the prefe= rences >>>>> config and is not local to a Query tool. I missed the fact that some >>>>> preferences can be changed from other than preference dialog.=E2=80= =8B >>>>> >>>>> =E2=80=8BWill send the updated patch with the fix.=E2=80=8B >>>>> >>>>>> >>>>>> (FYI, in case this was a one-off bug, I was testing using "Auto >>>>>> Commit?") >>>>>> >>>>>> >>>>>>> >>>>>>> On Fri, Jun 29, 2018 at 4:46 PM, Aditya Toshniwal < >>>>>>> aditya.toshniwal@enterprisedb.com> wrote: >>>>>>> >>>>>>>> Hi Akshay, >>>>>>>> >>>>>>>> On Fri, Jun 29, 2018 at 3:42 PM, Akshay Joshi < >>>>>>>> akshay.joshi@enterprisedb.com> wrote: >>>>>>>> >>>>>>>>> Hi Aditya >>>>>>>>> >>>>>>>>> I have applied your patch and run pgAdmin4. I have found followin= g >>>>>>>>> two issue in the browser: >>>>>>>>> >>>>>>>>> - Found error while open Preferences dialog. Refer >>>>>>>>> Open_Preferences_Dialog.png >>>>>>>>> >>>>>>>>> =E2=80=8BThis error occurs even with the latest pull without chan= ges.=E2=80=8B >>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> - Set the preferences setting "Open in new browser tab" to >>>>>>>>> True and open the query tool. Refer "Open_In_New_Broswer.png". >>>>>>>>> >>>>>>>>> =E2=80=8BWill look into this.=E2=80=8B >>>>>>>> >>>>>>>> >>>>>>>>> I haven't review the code. >>>>>>>>> >>>>>>>>> On Thu, Jun 28, 2018 at 8:04 PM, Aditya Toshniwal < >>>>>>>>> aditya.toshniwal@enterprisedb.com> wrote: >>>>>>>>> >>>>>>>>>> Hi Hackers, >>>>>>>>>> >>>>>>>>>> Attached is the patch for making preferences realtime and >>>>>>>>>> applying without reseting the layout. Please note, the patch is = only for >>>>>>>>>> one module - SQL Editor and is the first part for the RM. There = are lot of >>>>>>>>>> changes to be done to cover all and hence sending in parts. This= will not >>>>>>>>>> affect/break existing code. Further patches will cover other mod= ules. >>>>>>>>>> >>>>>>>>>> Highlights of this patch include: >>>>>>>>>> - Changes will affect SQL Editors in Create dialog boxes, SQL ta= b >>>>>>>>>> of the main screen, Query tool, History entries in the query too= l, Query >>>>>>>>>> tool opened in New Tab/Window >>>>>>>>>> - All the components of SQL editor will refer to single source o= f >>>>>>>>>> preferences which is cached in the Browser object. All other red= undant ajax >>>>>>>>>> get preference calls are removed. >>>>>>>>>> - SQL editor will not refer template JS variables anymore, once >>>>>>>>>> all the references are removed the template variables will also = be removed. >>>>>>>>>> - Code refactoring wherever possible. >>>>>>>>>> - Covered JS test cases wherever possible. >>>>>>>>>> >>>>>>>>>> Request you to kindly review. >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Thanks and Regards, >>>>>>>>>> Aditya Toshniwal >>>>>>>>>> Software Engineer | EnterpriseDB Software Solutions | Pune >>>>>>>>>> "Don't Complain about Heat, Plant a tree" >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> *Akshay Joshi* >>>>>>>>> >>>>>>>>> *Sr. Software Architect * >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Thanks and Regards, >>>>>>>> Aditya Toshniwal >>>>>>>> Software Engineer | EnterpriseDB Software Solutions | Pune >>>>>>>> "Don't Complain about Heat, Plant a tree" >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Thanks and Regards, >>>>>>> Aditya Toshniwal >>>>>>> Software Engineer | EnterpriseDB Software Solutions | Pune >>>>>>> "Don't Complain about Heat, Plant a tree" >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Dave Page >>>>>> Blog: http://pgsnake.blogspot.com >>>>>> Twitter: @pgsnake >>>>>> >>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>> The Enterprise PostgreSQL Company >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Thanks and Regards, >>>>> Aditya Toshniwal >>>>> Software Engineer | EnterpriseDB Software Solutions | Pune >>>>> "Don't Complain about Heat, Plant a tree" >>>>> >>>> >>>> >>>> >>>> -- >>>> Thanks and Regards, >>>> Aditya Toshniwal >>>> Software Engineer | EnterpriseDB Software Solutions | Pune >>>> "Don't Complain about Heat, Plant a tree" >>>> >>> >>> >>> >>> -- >>> Dave Page >>> Blog: http://pgsnake.blogspot.com >>> Twitter: @pgsnake >>> >>> EnterpriseDB UK: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >> >> >> >> -- >> Thanks and Regards, >> Aditya Toshniwal >> Software Engineer | EnterpriseDB Software Solutions | Pune >> "Don't Complain about Heat, Plant a tree" >> > > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --=20 Thanks and Regards, Aditya Toshniwal Software Engineer | EnterpriseDB Software Solutions | Pune "Don't Complain about Heat, Plant a tree" --00000000000062b1a00571be80aa Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,=C2=A0

Attached is the updated patch.


The changes are on the JS side and so patch does not have an= y test cases included.

Kindly review.


On Thu, Jul 5, 2018 at 4:09= PM, Dave Page <dpage@pgadmin.org> wrote:
Thanks - patch applied!

On Wed, Jul 4, 2018 at 10:19 AM, Aditya Toshniwal <aditya.toshniwal@enterprisedb.com> wrote:<= br>
Hi Hackers,

Attached = is the updated patch for the RM. Change of the flags like auto commit, expl= ain->verbose, etc. will reflect in all other open sql editors.
Kindly review.

On Fri= , Jun 29, 2018 at 10:39 PM, Aditya Toshniwal <aditya.tosh= niwal@enterprisedb.com> wrote:
Hi = Dave,

= On Fri, Jun 29, 2018 at 9:30 PM, Dave Page <dpage@pgadmin.org> wrote:
Hi

On Fri, Jun 29, 201= 8 at 3:14 PM, Aditya Toshniwal <aditya.toshniwal@enterpris= edb.com> wrote:
Hi Hackers,= =C2=A0

Attached is the updated patch.
=

This seems to work for the most part= , however I saw what seemed like odd behaviour. If I have 2 query tool wind= ows open;

- Changing a preference from the Prefere= nces dialogue updates both query tools.

- Changing= a preference from a Query Tool updates the Preferences dialogue.

- Changing a preference from a Query Tool does *not* update= the other Query Tool.

The last point seems odd to= me, though it also kinda makes sense to not have one query tool affect the= other. The problem with that is that it could get quite confusing when the= y get out of sync. I think it would be better for a change in one Query Too= l to update the other(s).=C2=A0

What do you think?= Was this behaviour intentional?
=C2=A0
= =E2=80=8BNo this was not intentional. It should reflect in other query tool= s as well because changing the flags like Auto Commit changes the preferenc= es config and is not local to a Query tool. I missed the fact that some pre= ferences can be changed from other than preference dialog.=E2=80=8B
= =C2=A0
=E2=80= =8BWill send the updated patch with the fix.=E2=80=8B

(FYI,= in case this was a one-off bug, I was testing using "Auto Commit?&quo= t;)
=C2=A0<= /div>

On Fri, Jun 29, 2018 at 4:46 PM, Aditya Toshniwal <aditya.toshniwal@enterprisedb.com> wrote:
Hi Akshay,

On Fri, Jun 29, 2018 at 3:42 PM, Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi Aditya=C2=A0

=
I have applied your patch and run pgAdmin4. I have found following two= issue in the browser:
  • Found error while open Preferences= dialog. Refer Open_Preferences_Dialog.png
= =E2=80=8BThis error occurs even with the latest pull without changes.=E2=80= =8B
=C2=A0
=
  • Set the preferences setting "Open in new browser tab"= ; to True and open the query tool. Refer "Open_In_New_Broswer.png"= ;.
=E2=80=8BWill look into this.=E2=80=8B=C2=A0
I haven't review the code.

On Thu, Jun 28, 2018 at 8:04 PM, Aditya Toshniwal <aditya.toshniwal@enterprisedb.com> wrote:
Hi Hackers,
=
Attached is the pat= ch for making preferences realtime and applying without reseting the layout= . Please note, the patch is only for one module - SQL Editor and is the fir= st part for the RM. There are lot of changes to be done to cover all and he= nce sending in parts. This will not affect/break existing code. Further pat= ches will cover other modules.

Highlights o= f this patch include:
- = Changes will affect SQL Editors in Create dialog boxes, SQL tab of the main= screen, Query tool, History entries in the query tool, Query tool opened i= n New Tab/Window
- All t= he components of SQL editor will refer to single source of preferences whic= h is cached in the Browser object. All other redundant ajax get preference = calls are removed.
-=C2= =A0SQL editor will not refer template JS variables anymore, once all the = references are removed the template variables will also be removed.<= /div>
- Code refactoring where= ver possible.
- Covered = JS test cases wherever possible.

Request yo= u to kindly review.

--
Thanks = and Regards,
<= font size=3D"2" color=3D"#000000" face=3D"verdana, sans-serif">Aditya Toshn= iwal
S= oftware Engineer |=C2=A0EnterpriseDB Software Solutions |=C2=A0Pune
=
"Don't Complain about Heat, Plant a tree"



--
Akshay Joshi
Sr. So= ftware Architect
<= b>

Phone: +91 20-3058-9517
Mobile: +91 976-788-8246
=



--
<= font face=3D"trebuchet ms, sans-serif" size=3D"2" color=3D"#000000">Thanks = and Regards,
<= font face=3D"trebuchet ms, sans-serif" size=3D"2" color=3D"#000000">Aditya = Toshniwal
Software Engineer |=C2=A0EnterpriseDB Software Solutions |=C2=A0<= /span>Pune
"Don't Complain about Heat, Plant a tree"=



--
Thanks and Regards,
Aditya Toshniwal
Software Engineer |=C2=A0EnterpriseDB Software Sol= utions |=C2=A0Pune
"Don't Complain about Heat, Plant a tr= ee"


--



--
Thanks and Regards,
Aditya Toshniwal
Software Engineer |=C2=A0EnterpriseDB So= ftware Solutions |=C2=A0Pune
"Don't Complain about Heat, = Plant a tree"



--
=



--
=
Thanks a= nd Regards,
Aditya T= oshniwal
Software Engineer |=C2=A0EnterpriseDB Software Solutions |=C2=A0Pune
"Don't Complain about Heat, Plant a tree"<= /div>



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

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



--
Thanks and Regards,
Aditya Toshniwal
Software Engineer |=C2=A0EnterpriseDB Software Sol= utions |=C2=A0Pune
"Don't Complain about Heat, Plant a tr= ee"
--00000000000062b1a00571be80aa-- --00000000000062b1a30571be80ac Content-Type: application/octet-stream; name="0002-RM3294.patch" Content-Disposition: attachment; filename="0002-RM3294.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jjzpxv740 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL3BhbmVsLmpzIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvcGFuZWwuanMKaW5kZXggYWIwNjgxYTkuLjUyMzhk Y2VlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9wYW5lbC5qcwor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9wYW5lbC5qcwpAQCAtMTcwLDEwICsx NzAsOSBAQCBkZWZpbmUoCiAgICAgICAgICAgaWYgKHBnQnJvd3Nlci50cmVlKSB7CiAgICAgICAg ICAgICBwZ0Jyb3dzZXIuc2F2ZV9jdXJyZW50X2xheW91dChwZ0Jyb3dzZXIpOwogICAgICAgICAg ICAgdmFyIHNlbGVjdGVkTm9kZSA9IHBnQnJvd3Nlci50cmVlLnNlbGVjdGVkKCk7Ci0gICAgICAg ICAgICAvLyBEaXNjb250aW51ZSB0aGlzIGV2ZW50IGFmdGVyIGZpcnN0IHRpbWUgdmlzaWJsZQot ICAgICAgICAgICAgdGhpcy5vZmYod2NEb2NrZXIuRVZFTlQuVklTSUJJTElUWV9DSEFOR0VEKTsK LSAgICAgICAgICAgIGlmICghXy5pc1VuZGVmaW5lZChwZ0FkbWluLkRhc2hib2FyZCkpCi0gICAg ICAgICAgICAgIHBnQWRtaW4uRGFzaGJvYXJkLnRvZ2dsZVZpc2liaWxpdHkodHJ1ZSk7CisgICAg ICAgICAgICBpZiAoIV8uaXNVbmRlZmluZWQocGdBZG1pbi5EYXNoYm9hcmQpKSB7CisgICAgICAg ICAgICAgIHBnQWRtaW4uRGFzaGJvYXJkLnRvZ2dsZVZpc2liaWxpdHkocGdCcm93c2VyLnBhbmVs cy5kYXNoYm9hcmQucGFuZWwuaXNWaXNpYmxlKCkpOworICAgICAgICAgICAgfQogICAgICAgICAg ICAgLy8gRXhwbGljaXRseSB0cmlnZ2VyIHRyZWUgc2VsZWN0ZWQgZXZlbnQgd2hlbiB3ZSBhZGQg dGhlIHRhYi4KICAgICAgICAgICAgIHBnQnJvd3Nlci5FdmVudHMudHJpZ2dlcigncGdhZG1pbi1i cm93c2VyOnRyZWU6c2VsZWN0ZWQnLCBzZWxlY3RlZE5vZGUsCiAgICAgICAgICAgICAgIHBnQnJv d3Nlci50cmVlLml0ZW1EYXRhKHNlbGVjdGVkTm9kZSksIHBnQnJvd3Nlci5Ob2RlKTsKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Rhc2hib2FyZC9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Rh c2hib2FyZC9fX2luaXRfXy5weQppbmRleCA5MTE2MmY3Ni4uZmZkNGE3YmMgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Rhc2hib2FyZC9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9kYXNo Ym9hcmQvX19pbml0X18ucHkKQEAgLTI4MCw4ICsyODAsNiBAQCBkZWYgaW5kZXgoc2lkPU5vbmUs IGRpZD1Ob25lKToKICAgICByYXRlcyA9IHt9CiAgICAgc2V0dGluZ3MgPSB7fQogCi0gICAgcHJl ZnMgPSBQcmVmZXJlbmNlcy5tb2R1bGUoJ2Rhc2hib2FyZHMnKQotCiAgICAgIyBHZXQgdGhlIHNl cnZlciB2ZXJzaW9uCiAgICAgaWYgc2lkIGlzIG5vdCBOb25lOgogICAgICAgICBnLm1hbmFnZXIg PSBnZXRfZHJpdmVyKApAQCAtMjkzLDIyICsyOTEsNiBAQCBkZWYgaW5kZXgoc2lkPU5vbmUsIGRp ZD1Ob25lKToKICAgICAgICAgaWYgbm90IGcuY29ubi5jb25uZWN0ZWQoKToKICAgICAgICAgICAg IGcudmVyc2lvbiA9IDAKIAotICAgIHNlc3Npb25fc3RhdHNfcmVmcmVzaF9wcmVmID0gcHJlZnMu cHJlZmVyZW5jZSgnc2Vzc2lvbl9zdGF0c19yZWZyZXNoJykKLSAgICByYXRlc1snc2Vzc2lvbl9z dGF0c19yZWZyZXNoJ10gPSBzZXNzaW9uX3N0YXRzX3JlZnJlc2hfcHJlZi5nZXQoKQotICAgIHRw c19zdGF0c19yZWZyZXNoX3ByZWYgPSBwcmVmcy5wcmVmZXJlbmNlKCd0cHNfc3RhdHNfcmVmcmVz aCcpCi0gICAgcmF0ZXNbJ3Rwc19zdGF0c19yZWZyZXNoJ10gPSB0cHNfc3RhdHNfcmVmcmVzaF9w cmVmLmdldCgpCi0gICAgdGlfc3RhdHNfcmVmcmVzaF9wcmVmID0gcHJlZnMucHJlZmVyZW5jZSgn dGlfc3RhdHNfcmVmcmVzaCcpCi0gICAgcmF0ZXNbJ3RpX3N0YXRzX3JlZnJlc2gnXSA9IHRpX3N0 YXRzX3JlZnJlc2hfcHJlZi5nZXQoKQotICAgIHRvX3N0YXRzX3JlZnJlc2hfcHJlZiA9IHByZWZz LnByZWZlcmVuY2UoJ3RvX3N0YXRzX3JlZnJlc2gnKQotICAgIHJhdGVzWyd0b19zdGF0c19yZWZy ZXNoJ10gPSB0b19zdGF0c19yZWZyZXNoX3ByZWYuZ2V0KCkKLSAgICBiaW9fc3RhdHNfcmVmcmVz aF9wcmVmID0gcHJlZnMucHJlZmVyZW5jZSgnYmlvX3N0YXRzX3JlZnJlc2gnKQotICAgIHJhdGVz WydiaW9fc3RhdHNfcmVmcmVzaCddID0gYmlvX3N0YXRzX3JlZnJlc2hfcHJlZi5nZXQoKQotICAg ICMgV2hldGhlciB0byBkaXNwbGF5IGdyYXBocyBhbmQgc2VydmVyIGFjdGl2aXR5IHByZWZlcmVu Y2VzCi0gICAgc2hvd19ncmFwaHNfcHJlZiA9IHByZWZzLnByZWZlcmVuY2UoJ3Nob3dfZ3JhcGhz JykKLSAgICBzZXR0aW5nc1snc2hvd19ncmFwaHMnXSA9IHNob3dfZ3JhcGhzX3ByZWYuZ2V0KCkK LSAgICBzaG93X2FjdGl2aXR5X3ByZWYgPSBwcmVmcy5wcmVmZXJlbmNlKCdzaG93X2FjdGl2aXR5 JykKLSAgICBzZXR0aW5nc1snc2hvd19hY3Rpdml0eSddID0gc2hvd19hY3Rpdml0eV9wcmVmLmdl dCgpCi0KICAgICAjIFNob3cgdGhlIGFwcHJvcHJpYXRlIGRhc2hib2FyZCBiYXNlZCBvbiB0aGUg aWRlbnRpZmllcnMgcGFzc2VkIHRvIHVzCiAgICAgaWYgc2lkIGlzIE5vbmUgYW5kIGRpZCBpcyBO b25lOgogICAgICAgICByZXR1cm4gcmVuZGVyX3RlbXBsYXRlKCcvZGFzaGJvYXJkL3dlbGNvbWVf ZGFzaGJvYXJkLmh0bWwnKQpAQCAtMzE3LDggKzI5OSw3IEBAIGRlZiBpbmRleChzaWQ9Tm9uZSwg ZGlkPU5vbmUpOgogICAgICAgICAgICAgJy9kYXNoYm9hcmQvc2VydmVyX2Rhc2hib2FyZC5odG1s JywKICAgICAgICAgICAgIHNpZD1zaWQsCiAgICAgICAgICAgICByYXRlcz1yYXRlcywKLSAgICAg ICAgICAgIHZlcnNpb249Zy52ZXJzaW9uLAotICAgICAgICAgICAgc2V0dGluZ3M9c2V0dGluZ3MK KyAgICAgICAgICAgIHZlcnNpb249Zy52ZXJzaW9uCiAgICAgICAgICkKICAgICBlbHNlOgogICAg ICAgICByZXR1cm4gcmVuZGVyX3RlbXBsYXRlKApAQCAtMzI2LDggKzMwNyw3IEBAIGRlZiBpbmRl eChzaWQ9Tm9uZSwgZGlkPU5vbmUpOgogICAgICAgICAgICAgc2lkPXNpZCwKICAgICAgICAgICAg IGRpZD1kaWQsCiAgICAgICAgICAgICByYXRlcz1yYXRlcywKLSAgICAgICAgICAgIHZlcnNpb249 Zy52ZXJzaW9uLAotICAgICAgICAgICAgc2V0dGluZ3M9c2V0dGluZ3MKKyAgICAgICAgICAgIHZl cnNpb249Zy52ZXJzaW9uCiAgICAgICAgICkKIAogCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9k YXNoYm9hcmQvc3RhdGljL2Nzcy9kYXNoYm9hcmQuY3NzIGIvd2ViL3BnYWRtaW4vZGFzaGJvYXJk L3N0YXRpYy9jc3MvZGFzaGJvYXJkLmNzcwppbmRleCAyZmM3ODk3Yy4uNjExNzRmMzMgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2Rhc2hib2FyZC9zdGF0aWMvY3NzL2Rhc2hib2FyZC5jc3MKKysr IGIvd2ViL3BnYWRtaW4vZGFzaGJvYXJkL3N0YXRpYy9jc3MvZGFzaGJvYXJkLmNzcwpAQCAtMiw4 ICsyLDggQEAKICAgICBwYWRkaW5nOiAxNXB4OwogfQogCi0uZGFzaGJvYXJkLWhlYWRlci1zcGFj ZXIgewotICAgIHBhZGRpbmctdG9wOiAxNXB4OworLmRhc2hib2FyZC1yb3cgeworICAgIG1hcmdp bi1ib3R0b206IDE1cHg7CiB9CiAKIC5kYXNoYm9hcmQtbGluayB7CkBAIC0xNzUsNCArMTc1LDYg QEAKICAgICBtYXJnaW4tYm90dG9tOiAwJTsKIH0KIAotLyogQ1NTIHRvIG1ha2Ugc3Vibm9kZSBj b250cm9sIGxvb2sgcHJlZXR5IGluIGJhY2tncmlkIC0gRU5EICovCisuZGFzaGJvYXJkLWhpZGRl biB7CisgIGRpc3BsYXk6IG5vbmU7Cit9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9kYXNoYm9h cmQvc3RhdGljL2pzL2Rhc2hib2FyZC5qcyBiL3dlYi9wZ2FkbWluL2Rhc2hib2FyZC9zdGF0aWMv anMvZGFzaGJvYXJkLmpzCmluZGV4IDAyYzdkNDM5Li5jNDExYTg0YSAxMDA2NDQKLS0tIGEvd2Vi L3BnYWRtaW4vZGFzaGJvYXJkL3N0YXRpYy9qcy9kYXNoYm9hcmQuanMKKysrIGIvd2ViL3BnYWRt aW4vZGFzaGJvYXJkL3N0YXRpYy9qcy9kYXNoYm9hcmQuanMKQEAgLTE5Miw2ICsxOTIsMTAgQEAg ZGVmaW5lKCdwZ2FkbWluLmRhc2hib2FyZCcsIFsKIAogICAgICAgdGhpcy5pbml0aWFsaXplZCA9 IHRydWU7CiAKKyAgICAgIHRoaXMuc2lkID0gdGhpcy5kaWQgPSAtMTsKKyAgICAgIHRoaXMudmVy c2lvbiA9IC0xOworCisKICAgICAgIC8vIEJpbmQgdGhlIERhc2hib2FyZCBvYmplY3Qgd2l0aCB0 aGUgJ29iamVjdF9zZWxlY3RlZCcgZnVuY3Rpb24KICAgICAgIHZhciBzZWxlY3RlZCA9IHRoaXMu b2JqZWN0X3NlbGVjdGVkLmJpbmQodGhpcyk7CiAgICAgICB2YXIgZGlzY29ubmVjdGVkID0gdGhp cy5vYmplY3RfZGlzY29ubmVjdGVkLmJpbmQodGhpcyk7CkBAIC0yMDUsNiArMjA5LDExIEBAIGRl ZmluZSgncGdhZG1pbi5kYXNoYm9hcmQnLCBbCiAgICAgICAvLyBMb2FkIHRoZSBkZWZhdWx0IHdl bGNvbWUgZGFzaGJvYXJkCiAgICAgICB2YXIgdXJsID0gdXJsX2ZvcignZGFzaGJvYXJkLmluZGV4 Jyk7CiAKKyAgICAgIC8qIFN0b3JlIHRoZSBpbnRlcnZhbCBpZHMgb2YgdGhlIGdyYXBoIGludGVy dmFsIGZ1bmN0aW9ucyBzbyB0aGF0IHdlIGNhbiBjbGVhcgorICAgICAgICogdGhlbSB3aGVuIGdy YXBocyBhcmUgZGlzYWJsZWQKKyAgICAgICAqLworICAgICAgdGhpcy5pbnRlcnZhbElkcyA9IHt9 OworCiAgICAgICB2YXIgZGFzaGJvYXJkUGFuZWwgPSBwZ0Jyb3dzZXIucGFuZWxzWydkYXNoYm9h cmQnXS5wYW5lbDsKICAgICAgIGlmIChkYXNoYm9hcmRQYW5lbCkgewogICAgICAgICB2YXIgZGl2 ID0gZGFzaGJvYXJkUGFuZWwubGF5b3V0KCkuc2NlbmUoKS5maW5kKCcucGctcGFuZWwtY29udGVu dCcpOwpAQCAtMjM4LDE0ICsyNDcsMTcgQEAgZGVmaW5lKCdwZ2FkbWluLmRhc2hib2FyZCcsIFsK IAogICAgIC8vIEhhbmRsZSB0cmVldmlldyBjbGlja3MKICAgICBvYmplY3Rfc2VsZWN0ZWQ6IGZ1 bmN0aW9uKGl0ZW0sIGl0ZW1EYXRhLCBub2RlKSB7CisgICAgICBsZXQgc2VsZiA9IHRoaXM7Cisg ICAgICAvKiBDbGVhciBhbGwgdGhlIGludGVydmFsIGZ1bmN0aW9ucyBvZiBwcmV2aW91cyBkYXNo Ym9hcmRzICovCisgICAgICBzZWxmLmNsZWFySW50ZXJ2YWxJZCgpOwogICAgICAgaWYgKGl0ZW1E YXRhICYmIGl0ZW1EYXRhLl90eXBlICYmIGRhc2hib2FyZFZpc2libGUpIHsKICAgICAgICAgdmFy IHRyZWVIaWVyYXJjaHkgPSBub2RlLmdldFRyZWVOb2RlSGllcmFyY2h5KGl0ZW0pLAogICAgICAg ICAgIHVybCA9IHVybF9mb3IoJ2Rhc2hib2FyZC5pbmRleCcpLAotICAgICAgICAgIHNpZCA9IC0x LAotICAgICAgICAgIGRpZCA9IC0xLAogICAgICAgICAgIGIgPSBwZ0FkbWluLkJyb3dzZXIsCiAg ICAgICAgICAgbSA9IGIgJiYgYi5Ob2Rlc1tpdGVtRGF0YS5fdHlwZV07CiAKKyAgICAgICAgc2Vs Zi5zaWQgPSBzZWxmLmRpZCA9IC0xOworICAgICAgICBzZWxmLnZlcnNpb24gPSBpdGVtRGF0YS52 ZXJzaW9uOwogICAgICAgICBjYW5jZWxfcXVlcnlfdXJsID0gdXJsX2ZvcignZGFzaGJvYXJkLmlu ZGV4JykgKyAnY2FuY2VsX3F1ZXJ5Lyc7CiAgICAgICAgIHRlcm1pbmF0ZV9zZXNzaW9uX3VybCA9 IHVybF9mb3IoJ2Rhc2hib2FyZC5pbmRleCcpICsgJ3Rlcm1pbmF0ZV9zZXNzaW9uLyc7CiAKQEAg LTI3MSwyMCArMjgzLDIxIEBAIGRlZmluZSgncGdhZG1pbi5kYXNoYm9hcmQnLCBbCiAgICAgICAg ICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgIGlmICgnZGF0YWJhc2UnIGluIHRyZWVI aWVyYXJjaHkpIHsKLSAgICAgICAgICAgIHNpZCA9IHRyZWVIaWVyYXJjaHkuc2VydmVyLl9pZDsK LSAgICAgICAgICAgIGRpZCA9IHRyZWVIaWVyYXJjaHkuZGF0YWJhc2UuX2lkOworICAgICAgICAg ICAgc2VsZi5zaWQgPSB0cmVlSGllcmFyY2h5LnNlcnZlci5faWQ7CisgICAgICAgICAgICBzZWxm LmRpZCA9IHRyZWVIaWVyYXJjaHkuZGF0YWJhc2UuX2lkOwogICAgICAgICAgICAgaXNfc2VydmVy X2Rhc2hib2FyZCA9IGZhbHNlOwogICAgICAgICAgICAgaXNfZGF0YWJhc2VfZGFzaGJvYXJkID0g dHJ1ZTsKLSAgICAgICAgICAgIHVybCArPSBzaWQgKyAnLycgKyBkaWQ7Ci0gICAgICAgICAgICBj YW5jZWxfcXVlcnlfdXJsICs9IHNpZCArICcvJyArIGRpZCArICcvJzsKLSAgICAgICAgICAgIHRl cm1pbmF0ZV9zZXNzaW9uX3VybCArPSBzaWQgKyAnLycgKyBkaWQgKyAnLyc7CisgICAgICAgICAg ICB1cmwgKz0gc2VsZi5zaWQgKyAnLycgKyBzZWxmLmRpZDsKKyAgICAgICAgICAgIGNhbmNlbF9x dWVyeV91cmwgKz0gc2VsZi5zaWQgKyAnLycgKyBzZWxmLmRpZCArICcvJzsKKyAgICAgICAgICAg IHRlcm1pbmF0ZV9zZXNzaW9uX3VybCArPSBzZWxmLnNpZCArICcvJyArIHNlbGYuZGlkICsgJy8n OwogICAgICAgICAgIH0gZWxzZSBpZiAoJ3NlcnZlcicgaW4gdHJlZUhpZXJhcmNoeSkgewotICAg ICAgICAgICAgc2lkID0gdHJlZUhpZXJhcmNoeS5zZXJ2ZXIuX2lkOworICAgICAgICAgICAgc2Vs Zi5zaWQgPSB0cmVlSGllcmFyY2h5LnNlcnZlci5faWQ7CisgICAgICAgICAgICBzZWxmLmRpZCA9 IC0xOwogICAgICAgICAgICAgaXNfc2VydmVyX2Rhc2hib2FyZCA9IHRydWU7CiAgICAgICAgICAg ICBpc19kYXRhYmFzZV9kYXNoYm9hcmQgPSBmYWxzZTsKLSAgICAgICAgICAgIHVybCArPSBzaWQ7 Ci0gICAgICAgICAgICBjYW5jZWxfcXVlcnlfdXJsICs9IHNpZCArICcvJzsKLSAgICAgICAgICAg IHRlcm1pbmF0ZV9zZXNzaW9uX3VybCArPSBzaWQgKyAnLyc7CisgICAgICAgICAgICB1cmwgKz0g c2VsZi5zaWQ7CisgICAgICAgICAgICBjYW5jZWxfcXVlcnlfdXJsICs9IHNlbGYuc2lkICsgJy8n OworICAgICAgICAgICAgdGVybWluYXRlX3Nlc3Npb25fdXJsICs9IHNlbGYuc2lkICsgJy8nOwog ICAgICAgICAgIH0KICAgICAgICAgfQogCkBAIC0yOTksNyArMzEyLDYgQEAgZGVmaW5lKCdwZ2Fk bWluLmRhc2hib2FyZCcsIFsKICAgICAgICAgICAgICAgLy8gQXZvaWQgdW5uZWNlc3NhcnkgcmVs b2FkcwogICAgICAgICAgICAgICBpZiAodXJsICE9ICQoZGFzaGJvYXJkUGFuZWwpLmRhdGEoJ2Rh c2hib2FyZF91cmwnKSB8fAogICAgICAgICAgICAgICAgICh1cmwgPT0gJChkYXNoYm9hcmRQYW5l bCkuZGF0YSgnZGFzaGJvYXJkX3VybCcpICYmICQoZGFzaGJvYXJkUGFuZWwpLmRhdGEoJ3NlcnZl cl9zdGF0dXMnKSA9PSBmYWxzZSkpIHsKLSAgICAgICAgICAgICAgICAvLyBDbGVhciBvdXQgZXZl cnl0aGluZyBzbyBhbnkgZXhpc3RpbmcgdGltZXJzIGRpZSBvZmYKICAgICAgICAgICAgICAgICAk KGRpdikuZW1wdHkoKTsKIAogICAgICAgICAgICAgICAgICQuYWpheCh7CkBAIC0zMDksNiArMzIx LDcgQEAgZGVmaW5lKCdwZ2FkbWluLmRhc2hib2FyZCcsIFsKICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgIC5kb25lKGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgICAgICAgICAg ICQoZGl2KS5odG1sKGRhdGEpOworICAgICAgICAgICAgICAgICAgc2VsZi5pbml0X2Rhc2hib2Fy ZCgpOwogICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgLmZhaWwoZnVuY3Rpb24o KSB7CiAgICAgICAgICAgICAgICAgICAkKGRpdikuaHRtbCgKQEAgLTMxNyw3ICszMzAsOSBAQCBk ZWZpbmUoJ3BnYWRtaW4uZGFzaGJvYXJkJywgWwogICAgICAgICAgICAgICAgIH0pOwogICAgICAg ICAgICAgICAgICQoZGFzaGJvYXJkUGFuZWwpLmRhdGEoJ3NlcnZlcl9zdGF0dXMnLCB0cnVlKTsK ICAgICAgICAgICAgICAgfQotCisgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAg IHNlbGYuaW5pdF9kYXNoYm9hcmQoKTsKKyAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBl bHNlIHsKICAgICAgICAgICAgICAgJChkaXYpLmVtcHR5KCk7CiAgICAgICAgICAgICAgICQoZGl2 KS5odG1sKApAQCAtMzI3LDEwMiArMzQyLDE2IEBAIGRlZmluZSgncGdhZG1pbi5kYXNoYm9hcmQn LCBbCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBDYWNoZSB0aGUgY3VycmVudCBJRHMg Zm9yIG5leHQgdGltZQogICAgICAgICAgICAgJChkYXNoYm9hcmRQYW5lbCkuZGF0YSgnZGFzaGJv YXJkX3VybCcsIHVybCk7Ci0KICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgIH0KICAgICB9 LAogCi0gICAgLy8gUmVuZGVyIGEgY2hhcnQKLSAgICByZW5kZXJfY2hhcnQ6IGZ1bmN0aW9uKAot ICAgICAgY29udGFpbmVyLCBkYXRhLCBkYXRhc2V0LCBzaWQsIGRpZCwgdXJsLCBvcHRpb25zLCBj b3VudGVyLCByZWZyZXNoCi0gICAgKSB7Ci0KLSAgICAgIC8vIERhdGEgZm9ybWF0OgotICAgICAg Ly8gWwotICAgICAgLy8gICAgIHsgZGF0YTogW1swLCB5MF0sIFsxLCB5MV0uLi5dLCBsYWJlbDog J0xhYmVsIDEnLCBbb3B0aW9uc10gfSwKLSAgICAgIC8vICAgICB7IGRhdGE6IFtbMCwgeTBdLCBb MSwgeTFdLi4uXSwgbGFiZWw6ICdMYWJlbCAyJywgW29wdGlvbnNdIH0sCi0gICAgICAvLyAgICAg eyBkYXRhOiBbWzAsIHkwXSwgWzEsIHkxXS4uLl0sIGxhYmVsOiAnTGFiZWwgMycsIFtvcHRpb25z XSB9Ci0gICAgICAvLyBdCi0KLSAgICAgIGlmICghZGFzaGJvYXJkVmlzaWJsZSkKLSAgICAgICAg cmV0dXJuOwotCi0gICAgICB2YXIgeSA9IDAsCi0gICAgICAgIHg7Ci0gICAgICBpZiAoZGF0YXNl dC5sZW5ndGggPT0gMCkgewotICAgICAgICBpZiAoY291bnRlciA9PSB0cnVlKSB7Ci0gICAgICAg ICAgLy8gSGF2ZSB3ZSBzdGFzaGVkIGluaXRpYWwgdmFsdWVzPwotICAgICAgICAgIGlmIChfLmlz VW5kZWZpbmVkKCQoY29udGFpbmVyKS5kYXRhKCdjb3VudGVyX3ByZXZpb3VzX3ZhbHMnKSkpIHsK LSAgICAgICAgICAgICQoY29udGFpbmVyKS5kYXRhKCdjb3VudGVyX3ByZXZpb3VzX3ZhbHMnLCBk YXRhWzBdKTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBp bml0aWFsIGRhdGEgc3RydWN0dXJlCi0gICAgICAgICAgICBmb3IgKHggaW4gZGF0YVswXSkgewot ICAgICAgICAgICAgICBkYXRhc2V0LnB1c2goewotICAgICAgICAgICAgICAgICdkYXRhJzogWwot ICAgICAgICAgICAgICAgICAgWzAsIGRhdGFbMF1beF0gLSAkKGNvbnRhaW5lcikuZGF0YSgnY291 bnRlcl9wcmV2aW91c192YWxzJylbeF1dLAotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAg ICAgICAgJ2xhYmVsJzogeCwKLSAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9Ci0gICAg ICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIC8vIENyZWF0ZSB0aGUgaW5pdGlh bCBkYXRhIHN0cnVjdHVyZQotICAgICAgICAgIGZvciAoeCBpbiBkYXRhWzBdKSB7Ci0gICAgICAg ICAgICBkYXRhc2V0LnB1c2goewotICAgICAgICAgICAgICAnZGF0YSc6IFsKLSAgICAgICAgICAg ICAgICBbMCwgZGF0YVswXVt4XV0sCi0gICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICds YWJlbCc6IHgsCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAg IH0gZWxzZSB7Ci0gICAgICAgIGZvciAoeCBpbiBkYXRhWzBdKSB7Ci0gICAgICAgICAgLy8gUHVz aCBuZXcgdmFsdWVzIG9udG8gdGhlIGV4aXN0aW5nIGRhdGEgc3RydWN0dXJlCi0gICAgICAgICAg Ly8gSWYgdGhpcyBpcyBhIGNvdW50ZXIgc3RhdCwgd2UgbmVlZCB0byBzdWJ0cmFjdCB0aGUgcHJl dmlvdXMgdmFsdWUKLSAgICAgICAgICBpZiAoY291bnRlciA9PSBmYWxzZSkgewotICAgICAgICAg ICAgZGF0YXNldFt5XVsnZGF0YSddLnVuc2hpZnQoWzAsIGRhdGFbMF1beF1dKTsKLSAgICAgICAg ICB9IGVsc2UgewotICAgICAgICAgICAgLy8gU3RvcmUgdGhlIGN1cnJlbnQgdmFsdWUsIG1pbnVz IHRoZSBwcmV2aW91cyBvbmUgd2Ugc3Rhc2hlZC4KLSAgICAgICAgICAgIC8vIEl0J3MgcG9zc2li bGUgdGhlIHRhYiBoYXMgYmVlbiByZWxvYWRlZCwgaW4gd2hpY2ggY2FzZSBvdXQgcHJldmlvdXMg dmFsdWVzIGFyZSBnb25lCi0gICAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZCgkKGNvbnRhaW5l cikuZGF0YSgnY291bnRlcl9wcmV2aW91c192YWxzJykpKQotICAgICAgICAgICAgICByZXR1cm47 Ci0KLSAgICAgICAgICAgIGRhdGFzZXRbeV1bJ2RhdGEnXS51bnNoaWZ0KFswLCBkYXRhWzBdW3hd IC0gJChjb250YWluZXIpLmRhdGEoJ2NvdW50ZXJfcHJldmlvdXNfdmFscycpW3hdXSk7Ci0gICAg ICAgICAgfQotCi0gICAgICAgICAgLy8gUmVzZXQgdGhlIHRpbWUgaW5kZXggdG8gZ2V0IGEgcHJv cGVyIHNjcm9sbGluZyBkaXNwbGF5Ci0gICAgICAgICAgZm9yICh2YXIgeiA9IDA7IHogPCBkYXRh c2V0W3ldWydkYXRhJ10ubGVuZ3RoOyB6KyspIHsKLSAgICAgICAgICAgIGRhdGFzZXRbeV1bJ2Rh dGEnXVt6XVswXSA9IHo7Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgeSsrOwotICAgICAgICB9 Ci0gICAgICAgICQoY29udGFpbmVyKS5kYXRhKCdjb3VudGVyX3ByZXZpb3VzX3ZhbHMnLCBkYXRh WzBdKTsKLSAgICAgIH0KLQotICAgICAgLy8gUmVtb3ZlIHVuZWVkZWQgZWxlbWVudHMKLSAgICAg IGZvciAoeCA9IDA7IHggPCBkYXRhc2V0Lmxlbmd0aDsgeCsrKSB7Ci0gICAgICAgIC8vIFJlbW92 ZSBvbGQgZGF0YSBwb2ludHMKLSAgICAgICAgaWYgKGRhdGFzZXRbeF1bJ2RhdGEnXS5sZW5ndGgg PiAxMDEpIHsKLSAgICAgICAgICBkYXRhc2V0W3hdWydkYXRhJ10ucG9wKCk7Ci0gICAgICAgIH0K LSAgICAgIH0KLQotICAgICAgLy8gRHJhdyBHcmFwaCwgaWYgdGhlIGNvbnRhaW5lciBzdGlsbCBl eGlzdHMgYW5kIGhhcyBhIHNpemUKLSAgICAgIHZhciBkYXNoYm9hcmRQYW5lbCA9IHBnQnJvd3Nl ci5wYW5lbHNbJ2Rhc2hib2FyZCddLnBhbmVsOwotICAgICAgdmFyIGRpdiA9IGRhc2hib2FyZFBh bmVsLmxheW91dCgpLnNjZW5lKCkuZmluZCgnLnBnLXBhbmVsLWNvbnRlbnQnKTsKLSAgICAgIGlm ICgkKGRpdikuZmluZChjb250YWluZXIpLmxlbmd0aCkgeyAvLyBFeGlzdHM/Ci0gICAgICAgIGlm IChjb250YWluZXIuY2xpZW50SGVpZ2h0ID4gMCAmJiBjb250YWluZXIuY2xpZW50V2lkdGggPiAw KSB7IC8vIE5vdCBoaWRkZW4/Ci0gICAgICAgICAgRmxvdHIuZHJhdyhjb250YWluZXIsIGRhdGFz ZXQsIG9wdGlvbnMpOwotICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm47 Ci0gICAgICB9CisgICAgcmVuZGVyQ2hhcnRMb29wOiBmdW5jdGlvbihjb250YWluZXIsIHNpZCwg ZGlkLCB1cmwsIG9wdGlvbnMsIGNvdW50ZXIsIHJlZnJlc2gpIHsKKyAgICAgIHZhciBkYXRhID0g W10sCisgICAgICAgIGRhdGFzZXQgPSBbXTsKIAotICAgICAgLy8gQW5pbWF0ZQotICAgICAgdmFy IHNldFRpbWVvdXRGdW5jID0gZnVuY3Rpb24oKSB7CisgICAgICB2YXIgdGhlSW50ZXJ2YWxGdW5j ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIHZhciBwYXRoID0gdXJsICsgc2lkOwogICAgICAgICBp ZiAoZGlkICE9IC0xKSB7CiAgICAgICAgICAgcGF0aCArPSAnLycgKyBkaWQ7CkBAIC00MzUsNyAr MzY0LDgyIEBAIGRlZmluZSgncGdhZG1pbi5kYXNoYm9hcmQnLCBbCiAgICAgICAgIC5kb25lKGZ1 bmN0aW9uKHJlc3ApIHsKICAgICAgICAgICAkKGNvbnRhaW5lcikucmVtb3ZlQ2xhc3MoJ2dyYXBo LWVycm9yJyk7CiAgICAgICAgICAgZGF0YSA9IEpTT04ucGFyc2UocmVzcCk7Ci0gICAgICAgICAg cGdBZG1pbi5EYXNoYm9hcmQucmVuZGVyX2NoYXJ0KGNvbnRhaW5lciwgZGF0YSwgZGF0YXNldCwg c2lkLCBkaWQsIHVybCwgb3B0aW9ucywgY291bnRlciwgcmVmcmVzaCk7CisgICAgICAgICAgaWYg KCFkYXNoYm9hcmRWaXNpYmxlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgdmFy IHkgPSAwLAorICAgICAgICAgICAgeDsKKyAgICAgICAgICBpZiAoZGF0YXNldC5sZW5ndGggPT0g MCkgeworICAgICAgICAgICAgaWYgKGNvdW50ZXIgPT0gdHJ1ZSkgeworICAgICAgICAgICAgICAv LyBIYXZlIHdlIHN0YXNoZWQgaW5pdGlhbCB2YWx1ZXM/CisgICAgICAgICAgICAgIGlmIChfLmlz VW5kZWZpbmVkKCQoY29udGFpbmVyKS5kYXRhKCdjb3VudGVyX3ByZXZpb3VzX3ZhbHMnKSkpIHsK KyAgICAgICAgICAgICAgICAkKGNvbnRhaW5lcikuZGF0YSgnY291bnRlcl9wcmV2aW91c192YWxz JywgZGF0YVswXSk7CisgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8g Q3JlYXRlIHRoZSBpbml0aWFsIGRhdGEgc3RydWN0dXJlCisgICAgICAgICAgICAgICAgZm9yICh4 IGluIGRhdGFbMF0pIHsKKyAgICAgICAgICAgICAgICAgIGRhdGFzZXQucHVzaCh7CisgICAgICAg ICAgICAgICAgICAgICdkYXRhJzogWworICAgICAgICAgICAgICAgICAgICAgIFswLCBkYXRhWzBd W3hdIC0gJChjb250YWluZXIpLmRhdGEoJ2NvdW50ZXJfcHJldmlvdXNfdmFscycpW3hdXSwKKyAg ICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgJ2xhYmVsJzogeCwKKyAg ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBpbml0aWFs IGRhdGEgc3RydWN0dXJlCisgICAgICAgICAgICAgIGZvciAoeCBpbiBkYXRhWzBdKSB7CisgICAg ICAgICAgICAgICAgZGF0YXNldC5wdXNoKHsKKyAgICAgICAgICAgICAgICAgICdkYXRhJzogWwor ICAgICAgICAgICAgICAgICAgICBbMCwgZGF0YVswXVt4XV0sCisgICAgICAgICAgICAgICAgICBd LAorICAgICAgICAgICAgICAgICAgJ2xhYmVsJzogeCwKKyAgICAgICAgICAgICAgICB9KTsKKyAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg ICAgICBmb3IgKHggaW4gZGF0YVswXSkgeworICAgICAgICAgICAgICAvLyBQdXNoIG5ldyB2YWx1 ZXMgb250byB0aGUgZXhpc3RpbmcgZGF0YSBzdHJ1Y3R1cmUKKyAgICAgICAgICAgICAgLy8gSWYg dGhpcyBpcyBhIGNvdW50ZXIgc3RhdCwgd2UgbmVlZCB0byBzdWJ0cmFjdCB0aGUgcHJldmlvdXMg dmFsdWUKKyAgICAgICAgICAgICAgaWYgKGNvdW50ZXIgPT0gZmFsc2UpIHsKKyAgICAgICAgICAg ICAgICBkYXRhc2V0W3ldWydkYXRhJ10udW5zaGlmdChbMCwgZGF0YVswXVt4XV0pOworICAgICAg ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFN0b3JlIHRoZSBjdXJyZW50IHZh bHVlLCBtaW51cyB0aGUgcHJldmlvdXMgb25lIHdlIHN0YXNoZWQuCisgICAgICAgICAgICAgICAg Ly8gSXQncyBwb3NzaWJsZSB0aGUgdGFiIGhhcyBiZWVuIHJlbG9hZGVkLCBpbiB3aGljaCBjYXNl IG91dCBwcmV2aW91cyB2YWx1ZXMgYXJlIGdvbmUKKyAgICAgICAgICAgICAgICBpZiAoXy5pc1Vu ZGVmaW5lZCgkKGNvbnRhaW5lcikuZGF0YSgnY291bnRlcl9wcmV2aW91c192YWxzJykpKQorICAg ICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgZGF0YXNldFt5XVsnZGF0 YSddLnVuc2hpZnQoWzAsIGRhdGFbMF1beF0gLSAkKGNvbnRhaW5lcikuZGF0YSgnY291bnRlcl9w cmV2aW91c192YWxzJylbeF1dKTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIC8v IFJlc2V0IHRoZSB0aW1lIGluZGV4IHRvIGdldCBhIHByb3BlciBzY3JvbGxpbmcgZGlzcGxheQor ICAgICAgICAgICAgICBmb3IgKHZhciB6ID0gMDsgeiA8IGRhdGFzZXRbeV1bJ2RhdGEnXS5sZW5n dGg7IHorKykgeworICAgICAgICAgICAgICAgIGRhdGFzZXRbeV1bJ2RhdGEnXVt6XVswXSA9IHo7 CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICB5Kys7CisgICAgICAgICAgICB9Cisg ICAgICAgICAgICAkKGNvbnRhaW5lcikuZGF0YSgnY291bnRlcl9wcmV2aW91c192YWxzJywgZGF0 YVswXSk7CisgICAgICAgICAgfQorCisgICAgICAgICAgLy8gUmVtb3ZlIHVuZWVkZWQgZWxlbWVu dHMKKyAgICAgICAgICBmb3IgKHggPSAwOyB4IDwgZGF0YXNldC5sZW5ndGg7IHgrKykgeworICAg ICAgICAgICAgLy8gUmVtb3ZlIG9sZCBkYXRhIHBvaW50cworICAgICAgICAgICAgaWYgKGRhdGFz ZXRbeF1bJ2RhdGEnXS5sZW5ndGggPiAxMDEpIHsKKyAgICAgICAgICAgICAgZGF0YXNldFt4XVsn ZGF0YSddLnBvcCgpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKworICAgICAgICAgIC8v IERyYXcgR3JhcGgsIGlmIHRoZSBjb250YWluZXIgc3RpbGwgZXhpc3RzIGFuZCBoYXMgYSBzaXpl CisgICAgICAgICAgdmFyIGRhc2hib2FyZFBhbmVsID0gcGdCcm93c2VyLnBhbmVsc1snZGFzaGJv YXJkJ10ucGFuZWw7CisgICAgICAgICAgdmFyIGRpdiA9IGRhc2hib2FyZFBhbmVsLmxheW91dCgp LnNjZW5lKCkuZmluZCgnLnBnLXBhbmVsLWNvbnRlbnQnKTsKKyAgICAgICAgICBpZiAoJChkaXYp LmZpbmQoY29udGFpbmVyKS5sZW5ndGgpIHsgLy8gRXhpc3RzPworICAgICAgICAgICAgaWYgKGNv bnRhaW5lci5jbGllbnRIZWlnaHQgPiAwICYmIGNvbnRhaW5lci5jbGllbnRXaWR0aCA+IDApIHsg Ly8gTm90IGhpZGRlbj8KKyAgICAgICAgICAgICAgRmxvdHIuZHJhdyhjb250YWluZXIsIGRhdGFz ZXQsIG9wdGlvbnMpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg ICAgICByZXR1cm47CisgICAgICAgICAgfQorCiAgICAgICAgIH0pCiAgICAgICAgIC5mYWlsKGZ1 bmN0aW9uKHhocikgewogICAgICAgICAgIGxldCBlcnIgPSAnJzsKQEAgLTQ2MywxNSArNDY3LDM2 IEBAIGRlZmluZSgncGdhZG1pbi5kYXNoYm9hcmQnLCBbCiAgICAgICAgICAgJChjb250YWluZXIp Lmh0bWwoCiAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtJyArIGNscyArICcg cGctcGFuZWwtbWVzc2FnZSIgcm9sZT0iYWxlcnQiPicgKyBtc2cgKyAnPC9kaXY+JwogICAgICAg ICAgICk7Ci0KLSAgICAgICAgICAvLyBUcnkgYWdhaW4uLi4KLSAgICAgICAgICBpZiAoY29udGFp bmVyLmNsaWVudEhlaWdodCA+IDAgJiYgY29udGFpbmVyLmNsaWVudFdpZHRoID4gMCkgewotICAg ICAgICAgICAgc2V0VGltZW91dChzZXRUaW1lb3V0RnVuYywgcmVmcmVzaCAqIDEwMDApOwotICAg ICAgICAgIH0KICAgICAgICAgfSk7CiAgICAgICB9OworICAgICAgLyogRXhlY3V0ZSBvbmNlIGZv ciB0aGUgZmlyc3QgdGltZSBhcyBzZXRJbnRlcnZhbCB3aWxsIG5vdCBkbyAqLworICAgICAgdGhl SW50ZXJ2YWxGdW5jKCk7CisgICAgICByZXR1cm4gc2V0SW50ZXJ2YWwodGhlSW50ZXJ2YWxGdW5j LCByZWZyZXNoICogMTAwMCk7CisgICAgfSwKKworICAgIC8vIFJlbmRlciBhIGNoYXJ0CisgICAg cmVuZGVyX2NoYXJ0OiBmdW5jdGlvbigKKyAgICAgIGNvbnRhaW5lciwgdXJsLCBvcHRpb25zLCBj b3VudGVyLCBjaGFydE5hbWUsIHByZWZOYW1lCisgICAgKSB7CisKKyAgICAgIC8vIERhdGEgZm9y bWF0OgorICAgICAgLy8gWworICAgICAgLy8gICAgIHsgZGF0YTogW1swLCB5MF0sIFsxLCB5MV0u Li5dLCBsYWJlbDogJ0xhYmVsIDEnLCBbb3B0aW9uc10gfSwKKyAgICAgIC8vICAgICB7IGRhdGE6 IFtbMCwgeTBdLCBbMSwgeTFdLi4uXSwgbGFiZWw6ICdMYWJlbCAyJywgW29wdGlvbnNdIH0sCisg ICAgICAvLyAgICAgeyBkYXRhOiBbWzAsIHkwXSwgWzEsIHkxXS4uLl0sIGxhYmVsOiAnTGFiZWwg MycsIFtvcHRpb25zXSB9CisgICAgICAvLyBdCiAKLSAgICAgIHNldFRpbWVvdXQoc2V0VGltZW91 dEZ1bmMsIHJlZnJlc2ggKiAxMDAwKTsKKyAgICAgIGxldCBzZWxmID0gdGhpczsKKyAgICAgIGlm KHNlbGYuaW50ZXJ2YWxJZHNbY2hhcnROYW1lXQorICAgICAgICAmJiBzZWxmLm9sZF9wcmVmZXJl bmNlc1twcmVmTmFtZV0gIT0gc2VsZi5wcmVmZXJlbmNlc1twcmVmTmFtZV0pIHsKKyAgICAgICAg c2VsZi5jbGVhckludGVydmFsSWQoY2hhcnROYW1lKTsKKyAgICAgIH0KKyAgICAgIGlmKCFzZWxm LmludGVydmFsSWRzW2NoYXJ0TmFtZV0pIHsKKyAgICAgICAgc2VsZi5pbnRlcnZhbElkc1tjaGFy dE5hbWVdID0gc2VsZi5yZW5kZXJDaGFydExvb3AoCisgICAgICAgICAgY29udGFpbmVyLCBzZWxm LnNpZCwgc2VsZi5kaWQsIHVybCwKKyAgICAgICAgICBvcHRpb25zLCBjb3VudGVyLCBzZWxmLnBy ZWZlcmVuY2VzW3ByZWZOYW1lXQorICAgICAgICApOworICAgICAgfQogICAgIH0sCiAKICAgICAv LyBIYW5kbGVyIGZ1bmN0aW9uIHRvIHN1cHBvcnQgdGhlICJBZGQgU2VydmVyIiBsaW5rCkBAIC01 MDMsMTIgKzUyOCwxMyBAQCBkZWZpbmUoJ3BnYWRtaW4uZGFzaGJvYXJkJywgWwogICAgIH0sCiAK ICAgICAvLyBSZW5kZXIgYSBncmlkCi0gICAgcmVuZGVyX2dyaWQ6IGZ1bmN0aW9uKGNvbnRhaW5l ciwgc2lkLCBkaWQsIHVybCwgY29sdW1ucykgewotICAgICAgdmFyIERhdHVtID0gQmFja2JvbmUu TW9kZWwuZXh0ZW5kKHt9KTsKKyAgICByZW5kZXJfZ3JpZDogZnVuY3Rpb24oY29udGFpbmVyLCB1 cmwsIGNvbHVtbnMpIHsKKyAgICAgIHZhciBEYXR1bSA9IEJhY2tib25lLk1vZGVsLmV4dGVuZCh7 fSksCisgICAgICAgIHNlbGYgPSB0aGlzOwogCi0gICAgICB2YXIgcGF0aCA9IHVybCArIHNpZDsK LSAgICAgIGlmIChkaWQgIT0gLTEpIHsKLSAgICAgICAgcGF0aCArPSAnLycgKyBkaWQ7CisgICAg ICB2YXIgcGF0aCA9IHVybCArIHNlbGYuc2lkOworICAgICAgaWYgKHNlbGYuZGlkICE9IC0xKSB7 CisgICAgICAgIHBhdGggKz0gJy8nICsgc2VsZi5kaWQ7CiAgICAgICB9CiAKICAgICAgIHZhciBE YXRhID0gQmFja2JvbmUuQ29sbGVjdGlvbi5leHRlbmQoewpAQCAtNTI3LDYgKzU1Myw3IEBAIGRl ZmluZSgncGdhZG1pbi5kYXNoYm9hcmQnLCBbCiAgICAgICB9KTsKIAogICAgICAgLy8gUmVuZGVy IHRoZSBncmlkCisgICAgICAkKGNvbnRhaW5lcikuZW1wdHkoKTsKICAgICAgICQoY29udGFpbmVy KS5hcHBlbmQoZ3JpZC5yZW5kZXIoKS5lbCk7CiAKICAgICAgIC8vIEluaXRpYWxpemUgYSBjbGll bnQtc2lkZSBmaWx0ZXIgdG8gZmlsdGVyIG9uIHRoZSBjbGllbnQKQEAgLTYxNSw0MSArNjQyLDU5 IEBAIGRlZmluZSgncGdhZG1pbi5kYXNoYm9hcmQnLCBbCiAgICAgICB9KTsKICAgICB9LAogCi0g ICAgLy8gUm9jayBuJyByb2xsIG9uIHRoZSBzZXJ2ZXIgZGFzaGJvYXJkCi0gICAgaW5pdF9zZXJ2 ZXJfZGFzaGJvYXJkOiBmdW5jdGlvbigKLSAgICAgIHNpZCwKLSAgICAgIHZlcnNpb24sCi0gICAg ICBzZXNzaW9uX3N0YXRzX3JlZnJlc2gsCi0gICAgICB0cHNfc3RhdHNfcmVmcmVzaCwKLSAgICAg IHRpX3N0YXRzX3JlZnJlc2gsCi0gICAgICB0b19zdGF0c19yZWZyZXNoLAotICAgICAgYmlvX3N0 YXRzX3JlZnJlc2gsCi0gICAgICBzaG93X2dyYXBocywKLSAgICAgIHNob3dfc2VydmVyX2FjdGl2 aXR5Ci0gICAgKSB7CisgICAgY2xlYXJJbnRlcnZhbElkOiBmdW5jdGlvbihpbnRlcnZhbElkKSB7 CisgICAgICB2YXIgc2VsZiA9IHRoaXM7CisgICAgICBpZighaW50ZXJ2YWxJZCl7CisgICAgICAg IF8uZWFjaChzZWxmLmludGVydmFsSWRzLCBmdW5jdGlvbihpZCwga2V5KSB7CisgICAgICAgICAg Y2xlYXJJbnRlcnZhbChpZCk7CisgICAgICAgICAgZGVsZXRlIHNlbGYuaW50ZXJ2YWxJZHNba2V5 XTsKKyAgICAgICAgfSk7CisgICAgICB9CisgICAgICBlbHNlIHsKKyAgICAgICAgY2xlYXJJbnRl cnZhbChzZWxmLmludGVydmFsSWRzW2ludGVydmFsSWRdKTsKKyAgICAgICAgZGVsZXRlIHNlbGYu aW50ZXJ2YWxJZHNbaW50ZXJ2YWxJZF07CisgICAgICB9CisgICAgfSwKKworICAgIC8vIFJvY2sg bicgcm9sbCBvbiB0aGUgZGFzaGJvYXJkCisgICAgaW5pdF9kYXNoYm9hcmQ6IGZ1bmN0aW9uKCkg eworICAgICAgbGV0IHNlbGYgPSB0aGlzOworCisgICAgICBpZihzZWxmLnNpZCA9PT0gLTEgJiYg c2VsZi5kaWQgPT09IC0xKSB7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgLyog Q2FjaGUgbWF5IHRha2UgdGltZSB0byBsb2FkIGZvciB0aGUgZmlyc3QgdGltZQorICAgICAgICog S2VlcCB0cnlpbmcgdGlsbCBhdmFpbGFibGUKKyAgICAgICAqLworICAgICAgbGV0IGNhY2hlSW50 ZXJ2YWxJZCA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkgeworICAgICAgICB0cnkgeworICAgICAg ICAgIGlmKHdpbmRvdy50b3AucGdBZG1pbi5Ccm93c2VyLnByZWZlcmVuY2VfdmVyc2lvbigpID4g MCkgeworICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChjYWNoZUludGVydmFsSWQpOworICAgICAg ICAgICAgc2VsZi5yZWZsZWN0UHJlZmVyZW5jZXMoKTsKKyAgICAgICAgICB9CisgICAgICAgIH0K KyAgICAgICAgY2F0Y2goZXJyKSB7CisgICAgICAgICAgY2xlYXJJbnRlcnZhbChjYWNoZUludGVy dmFsSWQpOworICAgICAgICAgIHRocm93IGVycjsKKyAgICAgICAgfQorICAgICAgfSwwKTsKKwor ICAgICAgLyogUmVnaXN0ZXIgZm9yIHByZWZlcmVuY2UgY2hhbmdlZCBldmVudCBicm9hZGNhc3Rl ZCAqLworICAgICAgcGdCcm93c2VyLm9uUHJlZmVyZW5jZXNDaGFuZ2UoJ2Rhc2hib2FyZHMnLCBm dW5jdGlvbigpIHsKKyAgICAgICAgc2VsZi5yZWZsZWN0UHJlZmVyZW5jZXMoKTsKKyAgICAgIH0p OworCisgICAgfSwKKworICAgIHJlZmxlY3RQcmVmZXJlbmNlczogZnVuY3Rpb24oKSB7CisgICAg ICAvKiBDb21tb24gdGhpbmdzIGNhbiBjb21lIGhlcmUgKi8KKyAgICAgIHZhciBzZWxmID0gdGhp czsKICAgICAgIHZhciBkaXZfc2Vzc2lvbnMgPSAkKCcuZGFzaGJvYXJkLWNvbnRhaW5lcicpLmZp bmQoJyNncmFwaC1zZXNzaW9ucycpWzBdOwogICAgICAgdmFyIGRpdl90cHMgPSAkKCcuZGFzaGJv YXJkLWNvbnRhaW5lcicpLmZpbmQoJyNncmFwaC10cHMnKVswXTsKICAgICAgIHZhciBkaXZfdGkg PSAkKCcuZGFzaGJvYXJkLWNvbnRhaW5lcicpLmZpbmQoJyNncmFwaC10aScpWzBdOwogICAgICAg dmFyIGRpdl90byA9ICQoJy5kYXNoYm9hcmQtY29udGFpbmVyJykuZmluZCgnI2dyYXBoLXRvJylb MF07CiAgICAgICB2YXIgZGl2X2JpbyA9ICQoJy5kYXNoYm9hcmQtY29udGFpbmVyJykuZmluZCgn I2dyYXBoLWJpbycpWzBdOwotICAgICAgdmFyIGRpdl9zZXJ2ZXJfYWN0aXZpdHkgPSAkKCcuZGFz aGJvYXJkLWNvbnRhaW5lcicpLmZpbmQoJyNzZXJ2ZXJfYWN0aXZpdHknKTsKLSAgICAgIHZhciBk aXZfc2VydmVyX2xvY2tzID0gJCgnLmRhc2hib2FyZC1jb250YWluZXInKS5maW5kKCcjc2VydmVy X2xvY2tzJyk7Ci0gICAgICB2YXIgZGl2X3NlcnZlcl9wcmVwYXJlZCA9ICQoJy5kYXNoYm9hcmQt Y29udGFpbmVyJykuZmluZCgnI3NlcnZlcl9wcmVwYXJlZCcpOwotICAgICAgdmFyIGRpdl9zZXJ2 ZXJfY29uZmlnID0gJCgnLmRhc2hib2FyZC1jb250YWluZXInKS5maW5kKCcjc2VydmVyX2NvbmZp ZycpOwotICAgICAgdmFyIGRhdGFzZXRfc2Vzc2lvbnMgPSBbXTsKLSAgICAgIHZhciBkYXRhX3Nl c3Npb25zID0gW107Ci0gICAgICB2YXIgZGF0YXNldF90cHMgPSBbXTsKLSAgICAgIHZhciBkYXRh X3RwcyA9IFtdOwotICAgICAgdmFyIGRhdGFzZXRfdGkgPSBbXTsKLSAgICAgIHZhciBkYXRhX3Rp ID0gW107Ci0gICAgICB2YXIgZGF0YXNldF90byA9IFtdOwotICAgICAgdmFyIGRhdGFfdG8gPSBb XTsKLSAgICAgIHZhciBkYXRhc2V0X2JpbyA9IFtdOwotICAgICAgdmFyIGRhdGFfYmlvID0gW107 Ci0KLSAgICAgIC8vIEZha2UgREIgSUQKLSAgICAgIHZhciBkaWQgPSAtMTsKLQogICAgICAgdmFy IG9wdGlvbnNfbGluZSA9IHsKICAgICAgICAgcGFyc2VGbG9hdDogZmFsc2UsCiAgICAgICAgIHhh eGlzOiB7CkBAIC02NjQsNDAgKzcwOSw4NSBAQCBkZWZpbmUoJ3BnYWRtaW4uZGFzaGJvYXJkJywg WwogICAgICAgICAgIHBvc2l0aW9uOiAnbncnLAogICAgICAgICAgIGJhY2tncm91bmRDb2xvcjog JyNEMkU4RkYnLAogICAgICAgICB9LAorICAgICAgICBzaGFkb3dTaXplOiAwLAorICAgICAgICBy ZXNvbHV0aW9uIDogNSwKICAgICAgIH07CiAKLSAgICAgIC8vIERpc3BsYXkgZ3JhcGhzCi0gICAg ICBpZihzaG93X2dyYXBocykgeworICAgICAgLyogV2Ugd2lsbCB1c2Ugb2xkIHByZWZlcmVuY2Vz IGZvciBzZWxlY3RpdmUgZ3JhcGggdXBkYXRlcyBvbiBwcmVmZXJlbmNlIGNoYW5nZSAqLworICAg ICAgaWYoc2VsZi5wcmVmZXJlbmNlcykgeworICAgICAgICBzZWxmLm9sZF9wcmVmZXJlbmNlcyA9 IHNlbGYucHJlZmVyZW5jZXM7CisgICAgICAgIHNlbGYucHJlZmVyZW5jZXMgPSB3aW5kb3cudG9w LnBnQWRtaW4uQnJvd3Nlci5nZXRfcHJlZmVyZW5jZXNfZm9yX21vZHVsZSgnZGFzaGJvYXJkcycp OworICAgICAgfQorICAgICAgZWxzZSB7CisgICAgICAgIHNlbGYucHJlZmVyZW5jZXMgPSB3aW5k b3cudG9wLnBnQWRtaW4uQnJvd3Nlci5nZXRfcHJlZmVyZW5jZXNfZm9yX21vZHVsZSgnZGFzaGJv YXJkcycpOworICAgICAgICBzZWxmLm9sZF9wcmVmZXJlbmNlcyA9IHNlbGYucHJlZmVyZW5jZXM7 CisgICAgICB9CisKKyAgICAgIGlmKHNlbGYucHJlZmVyZW5jZXMuc2hvd19ncmFwaHMgJiYgJCgn I2Rhc2hib2FyZC1ncmFwaHMnKS5oYXNDbGFzcygnZGFzaGJvYXJkLWhpZGRlbicpKSB7CisgICAg ICAgICQoJyNkYXNoYm9hcmQtZ3JhcGhzJykucmVtb3ZlQ2xhc3MoJ2Rhc2hib2FyZC1oaWRkZW4n KTsKKyAgICAgIH0KKyAgICAgIGVsc2UgaWYoIXNlbGYucHJlZmVyZW5jZXMuc2hvd19ncmFwaHMp IHsKKyAgICAgICAgJCgnI2Rhc2hib2FyZC1ncmFwaHMnKS5hZGRDbGFzcygnZGFzaGJvYXJkLWhp ZGRlbicpOworICAgICAgICBzZWxmLmNsZWFySW50ZXJ2YWxJZCgpOworICAgICAgfQorCisgICAg ICBpZiAoc2VsZi5wcmVmZXJlbmNlcy5zaG93X2FjdGl2aXR5ICYmICQoJyNkYXNoYm9hcmQtYWN0 aXZpdHknKS5oYXNDbGFzcygnZGFzaGJvYXJkLWhpZGRlbicpKSB7CisgICAgICAgICQoJyNkYXNo Ym9hcmQtYWN0aXZpdHknKS5yZW1vdmVDbGFzcygnZGFzaGJvYXJkLWhpZGRlbicpOworICAgICAg fQorICAgICAgZWxzZSBpZighc2VsZi5wcmVmZXJlbmNlcy5zaG93X2FjdGl2aXR5KSB7CisgICAg ICAgICQoJyNkYXNoYm9hcmQtYWN0aXZpdHknKS5hZGRDbGFzcygnZGFzaGJvYXJkLWhpZGRlbicp OworICAgICAgfQorCisgICAgICBpZihzZWxmLnByZWZlcmVuY2VzLnNob3dfZ3JhcGhzKSB7CiAg ICAgICAgIC8vIFJlbmRlciB0aGUgZ3JhcGhzCiAgICAgICAgIHBnQWRtaW4uRGFzaGJvYXJkLnJl bmRlcl9jaGFydCgKLSAgICAgICAgICBkaXZfc2Vzc2lvbnMsIGRhdGFfc2Vzc2lvbnMsIGRhdGFz ZXRfc2Vzc2lvbnMsIHNpZCwgZGlkLAotICAgICAgICAgIHVybF9mb3IoJ2Rhc2hib2FyZC5zZXNz aW9uX3N0YXRzJyksIG9wdGlvbnNfbGluZSwgZmFsc2UsCi0gICAgICAgICAgc2Vzc2lvbl9zdGF0 c19yZWZyZXNoCisgICAgICAgICAgZGl2X3Nlc3Npb25zLCB1cmxfZm9yKCdkYXNoYm9hcmQuc2Vz c2lvbl9zdGF0cycpLCBvcHRpb25zX2xpbmUsIGZhbHNlLAorICAgICAgICAgICdzZXNzaW9uX3N0 YXRzJywgJ3Nlc3Npb25fc3RhdHNfcmVmcmVzaCcKICAgICAgICAgKTsKICAgICAgICAgcGdBZG1p bi5EYXNoYm9hcmQucmVuZGVyX2NoYXJ0KAotICAgICAgICAgIGRpdl90cHMsIGRhdGFfdHBzLCBk YXRhc2V0X3Rwcywgc2lkLCBkaWQsCi0gICAgICAgICAgdXJsX2ZvcignZGFzaGJvYXJkLnRwc19z dGF0cycpLCBvcHRpb25zX2xpbmUsIHRydWUsCi0gICAgICAgICAgdHBzX3N0YXRzX3JlZnJlc2gK KyAgICAgICAgICBkaXZfdHBzLCB1cmxfZm9yKCdkYXNoYm9hcmQudHBzX3N0YXRzJyksIG9wdGlv bnNfbGluZSwgdHJ1ZSwKKyAgICAgICAgICAndHBzX3N0YXRzJywndHBzX3N0YXRzX3JlZnJlc2gn CiAgICAgICAgICk7CiAgICAgICAgIHBnQWRtaW4uRGFzaGJvYXJkLnJlbmRlcl9jaGFydCgKLSAg ICAgICAgICBkaXZfdGksIGRhdGFfdGksIGRhdGFzZXRfdGksIHNpZCwgZGlkLAotICAgICAgICAg IHVybF9mb3IoJ2Rhc2hib2FyZC50aV9zdGF0cycpLCBvcHRpb25zX2xpbmUsIHRydWUsCi0gICAg ICAgICAgdGlfc3RhdHNfcmVmcmVzaAorICAgICAgICAgIGRpdl90aSwgdXJsX2ZvcignZGFzaGJv YXJkLnRpX3N0YXRzJyksIG9wdGlvbnNfbGluZSwgdHJ1ZSwKKyAgICAgICAgICAndGlfc3RhdHMn LCAndGlfc3RhdHNfcmVmcmVzaCcKICAgICAgICAgKTsKICAgICAgICAgcGdBZG1pbi5EYXNoYm9h cmQucmVuZGVyX2NoYXJ0KAotICAgICAgICAgIGRpdl90bywgZGF0YV90bywgZGF0YXNldF90bywg c2lkLCBkaWQsCi0gICAgICAgICAgdXJsX2ZvcignZGFzaGJvYXJkLnRvX3N0YXRzJyksIG9wdGlv bnNfbGluZSwgdHJ1ZSwKLSAgICAgICAgICB0b19zdGF0c19yZWZyZXNoCisgICAgICAgICAgZGl2 X3RvLCB1cmxfZm9yKCdkYXNoYm9hcmQudG9fc3RhdHMnKSwgb3B0aW9uc19saW5lLCB0cnVlLAor ICAgICAgICAgICd0b19zdGF0cycsJ3RvX3N0YXRzX3JlZnJlc2gnCiAgICAgICAgICk7CiAgICAg ICAgIHBnQWRtaW4uRGFzaGJvYXJkLnJlbmRlcl9jaGFydCgKLSAgICAgICAgICBkaXZfYmlvLCBk YXRhX2JpbywgZGF0YXNldF9iaW8sIHNpZCwgZGlkLAotICAgICAgICAgIHVybF9mb3IoJ2Rhc2hi b2FyZC5iaW9fc3RhdHMnKSwgb3B0aW9uc19saW5lLCB0cnVlLAotICAgICAgICAgIGJpb19zdGF0 c19yZWZyZXNoCisgICAgICAgICAgZGl2X2JpbywgdXJsX2ZvcignZGFzaGJvYXJkLmJpb19zdGF0 cycpLCBvcHRpb25zX2xpbmUsIHRydWUsCisgICAgICAgICAgJ2Jpb19zdGF0cycsJ2Jpb19zdGF0 c19yZWZyZXNoJwogICAgICAgICApOwogICAgICAgfQogCisgICAgICAvKiBEYXNoYm9hcmQgc3Bl Y2lmaWMgcHJlZmVyZW5jZXMgY2FuIGJlIHVwZGF0ZWQgaW4gdGhlCisgICAgICAgKiBhcHByb3By aWF0ZSBmdW5jdGlvbnMKKyAgICAgICAqLworICAgICAgaWYoaXNfc2VydmVyX2Rhc2hib2FyZCkg eworICAgICAgICBzZWxmLnJlZmxlY3RQcmVmZXJlbmNlc1NlcnZlcigpOworICAgICAgfQorICAg ICAgZWxzZSBpZihpc19kYXRhYmFzZV9kYXNoYm9hcmQpIHsKKyAgICAgICAgc2VsZi5yZWZsZWN0 UHJlZmVyZW5jZXNEYXRhYmFzZSgpOworICAgICAgfQorCisgICAgICBpZighc2VsZi5wcmVmZXJl bmNlcy5zaG93X2dyYXBocyAmJiAhc2VsZi5wcmVmZXJlbmNlcy5zaG93X2FjdGl2aXR5KSB7Cisg ICAgICAgICQoJyNkYXNoYm9hcmQtbm9uZS1zaG93JykucmVtb3ZlQ2xhc3MoJ2Rhc2hib2FyZC1o aWRkZW4nKTsKKyAgICAgIH0KKyAgICAgIGVsc2UgeworICAgICAgICAkKCcjZGFzaGJvYXJkLW5v bmUtc2hvdycpLmFkZENsYXNzKCdkYXNoYm9hcmQtaGlkZGVuJyk7CisgICAgICB9CisgICAgfSwK KyAgICByZWZsZWN0UHJlZmVyZW5jZXNTZXJ2ZXI6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHNl bGYgPSB0aGlzOworICAgICAgdmFyIGRpdl9zZXJ2ZXJfYWN0aXZpdHkgPSAkKCcuZGFzaGJvYXJk LWNvbnRhaW5lcicpLmZpbmQoJyNzZXJ2ZXJfYWN0aXZpdHknKTsKKyAgICAgIHZhciBkaXZfc2Vy dmVyX2xvY2tzID0gJCgnLmRhc2hib2FyZC1jb250YWluZXInKS5maW5kKCcjc2VydmVyX2xvY2tz Jyk7CisgICAgICB2YXIgZGl2X3NlcnZlcl9wcmVwYXJlZCA9ICQoJy5kYXNoYm9hcmQtY29udGFp bmVyJykuZmluZCgnI3NlcnZlcl9wcmVwYXJlZCcpOworICAgICAgdmFyIGRpdl9zZXJ2ZXJfY29u ZmlnID0gJCgnLmRhc2hib2FyZC1jb250YWluZXInKS5maW5kKCcjc2VydmVyX2NvbmZpZycpOwor CiAgICAgICAvLyBEaXNwbGF5IHNlcnZlciBhY3Rpdml0eQotICAgICAgaWYgKHNob3dfc2VydmVy X2FjdGl2aXR5KSB7CisgICAgICBpZiAoc2VsZi5wcmVmZXJlbmNlcy5zaG93X2FjdGl2aXR5KSB7 CiAgICAgICAgIHZhciBzZXJ2ZXJfYWN0aXZpdHlfY29sdW1ucyA9IFt7CiAgICAgICAgICAgbmFt ZTogJ3BpZCcsCiAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1BJRCcpLApAQCAtNzM1LDcgKzgy NSw3IEBAIGRlZmluZSgncGdhZG1pbi5kYXNoYm9hcmQnLCBbCiAgICAgICAgICAgY2VsbDogJ3N0 cmluZycsCiAgICAgICAgIH1dOwogCi0gICAgICAgIGlmICh2ZXJzaW9uIDwgOTA2MDApIHsKKyAg ICAgICAgaWYgKHNlbGYudmVyc2lvbiA8IDkwNjAwKSB7CiAgICAgICAgICAgc2VydmVyX2FjdGl2 aXR5X2NvbHVtbnMgPSBzZXJ2ZXJfYWN0aXZpdHlfY29sdW1ucy5jb25jYXQoCiAgICAgICAgICAg ICBbewogICAgICAgICAgICAgICBuYW1lOiAnd2FpdGluZycsCkBAIC03NjYsNyArODU2LDcgQEAg ZGVmaW5lKCdwZ2FkbWluLmRhc2hib2FyZCcsIFsKIAogICAgICAgICAvLyBBZGQgdmVyc2lvbiB0 byBlYWNoIGZpZWxkCiAgICAgICAgIF8uZWFjaChzdWJOb2RlRmllbGRzTW9kZWxbMF0uZmllbGRz LCBmdW5jdGlvbihvYmopIHsKLSAgICAgICAgICBvYmpbJ3ZlcnNpb24nXSA9IHZlcnNpb247Cisg ICAgICAgICAgb2JqWyd2ZXJzaW9uJ10gPSBzZWxmLnZlcnNpb247CiAgICAgICAgIH0pOwogCiAg ICAgICAgIC8vIEFkZCBjYW5jZWwgYWN0aXZlIHF1ZXJ5IGJ1dHRvbgpAQCAtNzc1LDcgKzg2NSw3 IEBAIGRlZmluZSgncGdhZG1pbi5kYXNoYm9hcmQnLCBbCiAgICAgICAgICAgbGFiZWw6ICcnLAog ICAgICAgICAgIGNlbGw6IFNlc3Npb25EZXRhaWxzQ2VsbCwKICAgICAgICAgICBjZWxsX3ByaW9y aXR5OiAtMSwKLSAgICAgICAgICBwb3N0Z3Jlc192ZXJzaW9uOiB2ZXJzaW9uLAorICAgICAgICAg IHBvc3RncmVzX3ZlcnNpb246IHNlbGYudmVyc2lvbiwKICAgICAgICAgICBzY2hlbWE6IHN1Yk5v ZGVGaWVsZHNNb2RlbCwKICAgICAgICAgfSk7CiAKQEAgLTc4OCw3ICs4NzgsNyBAQCBkZWZpbmUo J3BnYWRtaW4uZGFzaGJvYXJkJywgWwogICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZSwKICAgICAg ICAgICBjZWxsX3ByaW9yaXR5OiAtMSwKICAgICAgICAgICBjYW5EZWxldGVSb3c6IHBnQWRtaW4u RGFzaGJvYXJkLmNhbl90YWtlX2FjdGlvbiwKLSAgICAgICAgICBwb3N0Z3Jlc192ZXJzaW9uOiB2 ZXJzaW9uLAorICAgICAgICAgIHBvc3RncmVzX3ZlcnNpb246IHNlbGYudmVyc2lvbiwKICAgICAg ICAgfSk7CiAKICAgICAgICAgc2VydmVyX2FjdGl2aXR5X2NvbHVtbnMudW5zaGlmdCh7CkBAIC03 OTksNyArODg5LDcgQEAgZGVmaW5lKCdwZ2FkbWluLmRhc2hib2FyZCcsIFsKICAgICAgICAgICBl ZGl0YWJsZTogZmFsc2UsCiAgICAgICAgICAgY2VsbF9wcmlvcml0eTogLTEsCiAgICAgICAgICAg Y2FuRGVsZXRlUm93OiBwZ0FkbWluLkRhc2hib2FyZC5jYW5fdGFrZV9hY3Rpb24sCi0gICAgICAg ICAgcG9zdGdyZXNfdmVyc2lvbjogdmVyc2lvbiwKKyAgICAgICAgICBwb3N0Z3Jlc192ZXJzaW9u OiBzZWxmLnZlcnNpb24sCiAgICAgICAgIH0pOwogCiAgICAgICAgIHZhciBzZXJ2ZXJfbG9ja3Nf Y29sdW1ucyA9IFt7CkBAIC05MjksMjAgKzEwMTksMTYgQEAgZGVmaW5lKCdwZ2FkbWluLmRhc2hi b2FyZCcsIFsKIAogICAgICAgICAvLyBSZW5kZXIgdGhlIHRhYnMsIGJ1dCBvbmx5IGdldCBkYXRh IGZvciB0aGUgYWN0aXZpdHkgdGFiIGZvciBub3cKICAgICAgICAgcGdBZG1pbi5EYXNoYm9hcmQu cmVuZGVyX2dyaWQoCi0gICAgICAgICAgZGl2X3NlcnZlcl9hY3Rpdml0eSwgc2lkLCBkaWQsCi0g ICAgICAgICAgdXJsX2ZvcignZGFzaGJvYXJkLmFjdGl2aXR5JyksIHNlcnZlcl9hY3Rpdml0eV9j b2x1bW5zCisgICAgICAgICAgZGl2X3NlcnZlcl9hY3Rpdml0eSwgdXJsX2ZvcignZGFzaGJvYXJk LmFjdGl2aXR5JyksIHNlcnZlcl9hY3Rpdml0eV9jb2x1bW5zCiAgICAgICAgICk7CiAgICAgICAg IHBnQWRtaW4uRGFzaGJvYXJkLnJlbmRlcl9ncmlkKAotICAgICAgICAgIGRpdl9zZXJ2ZXJfbG9j a3MsIHNpZCwgZGlkLCB1cmxfZm9yKCdkYXNoYm9hcmQubG9ja3MnKSwKLSAgICAgICAgICBzZXJ2 ZXJfbG9ja3NfY29sdW1ucworICAgICAgICAgIGRpdl9zZXJ2ZXJfbG9ja3MsIHVybF9mb3IoJ2Rh c2hib2FyZC5sb2NrcycpLCBzZXJ2ZXJfbG9ja3NfY29sdW1ucwogICAgICAgICApOwogICAgICAg ICBwZ0FkbWluLkRhc2hib2FyZC5yZW5kZXJfZ3JpZCgKLSAgICAgICAgICBkaXZfc2VydmVyX3By ZXBhcmVkLCBzaWQsIGRpZCwgdXJsX2ZvcignZGFzaGJvYXJkLnByZXBhcmVkJyksCi0gICAgICAg ICAgc2VydmVyX3ByZXBhcmVkX2NvbHVtbnMKKyAgICAgICAgICBkaXZfc2VydmVyX3ByZXBhcmVk LCB1cmxfZm9yKCdkYXNoYm9hcmQucHJlcGFyZWQnKSwgc2VydmVyX3ByZXBhcmVkX2NvbHVtbnMK ICAgICAgICAgKTsKICAgICAgICAgcGdBZG1pbi5EYXNoYm9hcmQucmVuZGVyX2dyaWQoCi0gICAg ICAgICAgZGl2X3NlcnZlcl9jb25maWcsIHNpZCwgZGlkLCB1cmxfZm9yKCdkYXNoYm9hcmQuY29u ZmlnJyksCi0gICAgICAgICAgc2VydmVyX2NvbmZpZ19jb2x1bW5zCisgICAgICAgICAgZGl2X3Nl cnZlcl9jb25maWcsIHVybF9mb3IoJ2Rhc2hib2FyZC5jb25maWcnKSwgc2VydmVyX2NvbmZpZ19j b2x1bW5zCiAgICAgICAgICk7CiAKICAgICAgICAgcGdBZG1pbi5EYXNoYm9hcmQucmVuZGVyX2dy aWRfZGF0YShkaXZfc2VydmVyX2FjdGl2aXR5KTsKQEAgLTk2OSw3ICsxMDU1LDcgQEAgZGVmaW5l KCdwZ2FkbWluLmRhc2hib2FyZCcsIFsKICAgICAgICAgfSk7CiAKICAgICAgICAgLy8gSGFuZGxl IGJ1dHRvbiBjbGlja3MKLSAgICAgICAgJCgnYnV0dG9uJykub24oJ2NsaWNrJywoKSA9PiB7Cisg ICAgICAgICQoJ2J1dHRvbicpLm9mZignY2xpY2snKS5vbignY2xpY2snLCgpID0+IHsKICAgICAg ICAgICBzd2l0Y2ggKHRoaXMuaWQpIHsKICAgICAgICAgICBjYXNlICdidG5fc2VydmVyX2FjdGl2 aXR5X3JlZnJlc2gnOgogICAgICAgICAgICAgcGdBZG1pbi5EYXNoYm9hcmQucmVuZGVyX2dyaWRf ZGF0YShkaXZfc2VydmVyX2FjdGl2aXR5KTsKQEAgLTk5MCw4NyArMTA3NiwxNCBAQCBkZWZpbmUo J3BnYWRtaW4uZGFzaGJvYXJkJywgWwogICAgICAgICB9KTsKICAgICAgIH0KICAgICB9LAotCi0g ICAgLy8gUm9jayBuJyByb2xsIG9uIHRoZSBkYXRhYmFzZSBkYXNoYm9hcmQKLSAgICBpbml0X2Rh dGFiYXNlX2Rhc2hib2FyZDogZnVuY3Rpb24oCi0gICAgICBzaWQsCi0gICAgICBkaWQsCi0gICAg ICB2ZXJzaW9uLAotICAgICAgc2Vzc2lvbl9zdGF0c19yZWZyZXNoLAotICAgICAgdHBzX3N0YXRz X3JlZnJlc2gsCi0gICAgICB0aV9zdGF0c19yZWZyZXNoLAotICAgICAgdG9fc3RhdHNfcmVmcmVz aCwKLSAgICAgIGJpb19zdGF0c19yZWZyZXNoLAotICAgICAgc2hvd19ncmFwaHMsCi0gICAgICBz aG93X2RhdGFiYXNlX2FjdGl2aXR5Ci0gICAgKSB7Ci0gICAgICB2YXIgZGl2X3Nlc3Npb25zID0g ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dyYXBoLXNlc3Npb25zJyk7Ci0gICAgICB2YXIgZGl2 X3RwcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdncmFwaC10cHMnKTsKLSAgICAgIHZhciBk aXZfdGkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3JhcGgtdGknKTsKLSAgICAgIHZhciBk aXZfdG8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3JhcGgtdG8nKTsKLSAgICAgIHZhciBk aXZfYmlvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dyYXBoLWJpbycpOworICAgIHJlZmxl Y3RQcmVmZXJlbmNlc0RhdGFiYXNlOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBzZWxmID0gdGhp czsKICAgICAgIHZhciBkaXZfZGF0YWJhc2VfYWN0aXZpdHkgPSBkb2N1bWVudC5nZXRFbGVtZW50 QnlJZCgnZGF0YWJhc2VfYWN0aXZpdHknKTsKICAgICAgIHZhciBkaXZfZGF0YWJhc2VfbG9ja3Mg PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGF0YWJhc2VfbG9ja3MnKTsKICAgICAgIHZhciBk aXZfZGF0YWJhc2VfcHJlcGFyZWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGF0YWJhc2Vf cHJlcGFyZWQnKTsKLSAgICAgIHZhciBkYXRhc2V0X3Nlc3Npb25zID0gW107Ci0gICAgICB2YXIg ZGF0YV9zZXNzaW9ucyA9IFtdOwotICAgICAgdmFyIGRhdGFzZXRfdHBzID0gW107Ci0gICAgICB2 YXIgZGF0YV90cHMgPSBbXTsKLSAgICAgIHZhciBkYXRhc2V0X3RpID0gW107Ci0gICAgICB2YXIg ZGF0YV90aSA9IFtdOwotICAgICAgdmFyIGRhdGFzZXRfdG8gPSBbXTsKLSAgICAgIHZhciBkYXRh X3RvID0gW107Ci0gICAgICB2YXIgZGF0YXNldF9iaW8gPSBbXTsKLSAgICAgIHZhciBkYXRhX2Jp byA9IFtdOwotCi0gICAgICB2YXIgb3B0aW9uc19saW5lID0gewotICAgICAgICBwYXJzZUZsb2F0 OiBmYWxzZSwKLSAgICAgICAgeGF4aXM6IHsKLSAgICAgICAgICBtaW46IDEwMCwKLSAgICAgICAg ICBtYXg6IDAsCi0gICAgICAgICAgYXV0b3NjYWxlOiAwLAotICAgICAgICB9LAotICAgICAgICB5 YXhpczogewotICAgICAgICAgIGF1dG9zY2FsZTogMSwKLSAgICAgICAgfSwKLSAgICAgICAgbGVn ZW5kOiB7Ci0gICAgICAgICAgcG9zaXRpb246ICdudycsCi0gICAgICAgICAgYmFja2dyb3VuZENv bG9yOiAnI0QyRThGRicsCi0gICAgICAgIH0sCi0gICAgICB9OwotCi0gICAgICAvLyBEaXNwbGF5 IGdyYXBocwotICAgICAgaWYoc2hvd19ncmFwaHMpIHsKLSAgICAgICAgLy8gUmVuZGVyIHRoZSBn cmFwaHMKLSAgICAgICAgcGdBZG1pbi5EYXNoYm9hcmQucmVuZGVyX2NoYXJ0KAotICAgICAgICAg IGRpdl9zZXNzaW9ucywgZGF0YV9zZXNzaW9ucywgZGF0YXNldF9zZXNzaW9ucywgc2lkLCBkaWQs Ci0gICAgICAgICAgdXJsX2ZvcignZGFzaGJvYXJkLnNlc3Npb25fc3RhdHMnKSwgb3B0aW9uc19s aW5lLCBmYWxzZSwKLSAgICAgICAgICBzZXNzaW9uX3N0YXRzX3JlZnJlc2gKLSAgICAgICAgKTsK LSAgICAgICAgcGdBZG1pbi5EYXNoYm9hcmQucmVuZGVyX2NoYXJ0KAotICAgICAgICAgIGRpdl90 cHMsIGRhdGFfdHBzLCBkYXRhc2V0X3Rwcywgc2lkLCBkaWQsCi0gICAgICAgICAgdXJsX2Zvcign ZGFzaGJvYXJkLnRwc19zdGF0cycpLCBvcHRpb25zX2xpbmUsIHRydWUsCi0gICAgICAgICAgdHBz X3N0YXRzX3JlZnJlc2gKLSAgICAgICAgKTsKLSAgICAgICAgcGdBZG1pbi5EYXNoYm9hcmQucmVu ZGVyX2NoYXJ0KAotICAgICAgICAgIGRpdl90aSwgZGF0YV90aSwgZGF0YXNldF90aSwgc2lkLCBk aWQsCi0gICAgICAgICAgdXJsX2ZvcignZGFzaGJvYXJkLnRpX3N0YXRzJyksIG9wdGlvbnNfbGlu ZSwgdHJ1ZSwKLSAgICAgICAgICB0aV9zdGF0c19yZWZyZXNoCi0gICAgICAgICk7Ci0gICAgICAg IHBnQWRtaW4uRGFzaGJvYXJkLnJlbmRlcl9jaGFydCgKLSAgICAgICAgICBkaXZfdG8sIGRhdGFf dG8sIGRhdGFzZXRfdG8sIHNpZCwgZGlkLAotICAgICAgICAgIHVybF9mb3IoJ2Rhc2hib2FyZC50 b19zdGF0cycpLCBvcHRpb25zX2xpbmUsIHRydWUsCi0gICAgICAgICAgdG9fc3RhdHNfcmVmcmVz aAotICAgICAgICApOwotICAgICAgICBwZ0FkbWluLkRhc2hib2FyZC5yZW5kZXJfY2hhcnQoCi0g ICAgICAgICAgZGl2X2JpbywgZGF0YV9iaW8sIGRhdGFzZXRfYmlvLCBzaWQsIGRpZCwKLSAgICAg ICAgICB1cmxfZm9yKCdkYXNoYm9hcmQuYmlvX3N0YXRzJyksIG9wdGlvbnNfbGluZSwgdHJ1ZSwK LSAgICAgICAgICBiaW9fc3RhdHNfcmVmcmVzaAotICAgICAgICApOwotICAgICAgfQogCiAgICAg ICAvLyBEaXNwbGF5IHNlcnZlciBhY3Rpdml0eQotICAgICAgaWYgKHNob3dfZGF0YWJhc2VfYWN0 aXZpdHkpIHsKKyAgICAgIGlmIChzZWxmLnByZWZlcmVuY2VzLnNob3dfYWN0aXZpdHkpIHsKICAg ICAgICAgdmFyIGRhdGFiYXNlX2FjdGl2aXR5X2NvbHVtbnMgPSBbewogICAgICAgICAgIG5hbWU6 ICdwaWQnLAogICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdQSUQnKSwKQEAgLTExMDMsNyArMTEx Niw3IEBAIGRlZmluZSgncGdhZG1pbi5kYXNoYm9hcmQnLCBbCiAgICAgICAgICAgY2VsbDogJ3N0 cmluZycsCiAgICAgICAgIH1dOwogCi0gICAgICAgIGlmICh2ZXJzaW9uIDwgOTA2MDApIHsKKyAg ICAgICAgaWYgKHNlbGYudmVyc2lvbiA8IDkwNjAwKSB7CiAgICAgICAgICAgZGF0YWJhc2VfYWN0 aXZpdHlfY29sdW1ucyA9IGRhdGFiYXNlX2FjdGl2aXR5X2NvbHVtbnMuY29uY2F0KAogICAgICAg ICAgICAgW3sKICAgICAgICAgICAgICAgbmFtZTogJ3dhaXRpbmcnLApAQCAtMTEzNCw3ICsxMTQ3 LDcgQEAgZGVmaW5lKCdwZ2FkbWluLmRhc2hib2FyZCcsIFsKIAogICAgICAgICAvLyBBZGQgdmVy c2lvbiB0byBlYWNoIGZpZWxkCiAgICAgICAgIF8uZWFjaChzdWJOb2RlRmllbGRzTW9kZWxbMF0u ZmllbGRzLCBmdW5jdGlvbihvYmopIHsKLSAgICAgICAgICBvYmpbJ3ZlcnNpb24nXSA9IHZlcnNp b247CisgICAgICAgICAgb2JqWyd2ZXJzaW9uJ10gPSBzZWxmLnZlcnNpb247CiAgICAgICAgIH0p OwogCiAgICAgICAgIC8vIEFkZCBjYW5jZWwgYWN0aXZlIHF1ZXJ5IGJ1dHRvbgpAQCAtMTE0Myw3 ICsxMTU2LDcgQEAgZGVmaW5lKCdwZ2FkbWluLmRhc2hib2FyZCcsIFsKICAgICAgICAgICBsYWJl bDogJycsCiAgICAgICAgICAgY2VsbDogU2Vzc2lvbkRldGFpbHNDZWxsLAogICAgICAgICAgIGNl bGxfcHJpb3JpdHk6IC0xLAotICAgICAgICAgIHBvc3RncmVzX3ZlcnNpb246IHZlcnNpb24sCisg ICAgICAgICAgcG9zdGdyZXNfdmVyc2lvbjogc2VsZi52ZXJzaW9uLAogICAgICAgICAgIHNjaGVt YTogc3ViTm9kZUZpZWxkc01vZGVsLAogICAgICAgICB9KTsKIApAQCAtMTE1NSw3ICsxMTY4LDcg QEAgZGVmaW5lKCdwZ2FkbWluLmRhc2hib2FyZCcsIFsKICAgICAgICAgICBlZGl0YWJsZTogZmFs c2UsCiAgICAgICAgICAgY2VsbF9wcmlvcml0eTogLTEsCiAgICAgICAgICAgY2FuRGVsZXRlUm93 OiBwZ0FkbWluLkRhc2hib2FyZC5jYW5fdGFrZV9hY3Rpb24sCi0gICAgICAgICAgcG9zdGdyZXNf dmVyc2lvbjogdmVyc2lvbiwKKyAgICAgICAgICBwb3N0Z3Jlc192ZXJzaW9uOiBzZWxmLnZlcnNp b24sCiAgICAgICAgIH0pOwogICAgICAgICBkYXRhYmFzZV9hY3Rpdml0eV9jb2x1bW5zLnVuc2hp ZnQoewogICAgICAgICAgIG5hbWU6ICdwZy1iYWNrZm9ybS1kZWxldGUnLApAQCAtMTE2NSw3ICsx MTc4LDcgQEAgZGVmaW5lKCdwZ2FkbWluLmRhc2hib2FyZCcsIFsKICAgICAgICAgICBlZGl0YWJs ZTogZmFsc2UsCiAgICAgICAgICAgY2VsbF9wcmlvcml0eTogLTEsCiAgICAgICAgICAgY2FuRGVs ZXRlUm93OiBwZ0FkbWluLkRhc2hib2FyZC5jYW5fdGFrZV9hY3Rpb24sCi0gICAgICAgICAgcG9z dGdyZXNfdmVyc2lvbjogdmVyc2lvbiwKKyAgICAgICAgICBwb3N0Z3Jlc192ZXJzaW9uOiBzZWxm LnZlcnNpb24sCiAgICAgICAgIH0pOwogCiAgICAgICAgIHZhciBkYXRhYmFzZV9sb2Nrc19jb2x1 bW5zID0gW3sKQEAgLTEyNTgsMjIgKzEyNzEsMTkgQEAgZGVmaW5lKCdwZ2FkbWluLmRhc2hib2Fy ZCcsIFsKIAogICAgICAgICAvLyBSZW5kZXIgdGhlIHRhYnMsIGJ1dCBvbmx5IGdldCBkYXRhIGZv ciB0aGUgYWN0aXZpdHkgdGFiIGZvciBub3cKICAgICAgICAgcGdBZG1pbi5EYXNoYm9hcmQucmVu ZGVyX2dyaWQoCi0gICAgICAgICAgZGl2X2RhdGFiYXNlX2FjdGl2aXR5LCBzaWQsIGRpZCwgdXJs X2ZvcignZGFzaGJvYXJkLmFjdGl2aXR5JyksCi0gICAgICAgICAgZGF0YWJhc2VfYWN0aXZpdHlf Y29sdW1ucworICAgICAgICAgIGRpdl9kYXRhYmFzZV9hY3Rpdml0eSwgdXJsX2ZvcignZGFzaGJv YXJkLmFjdGl2aXR5JyksIGRhdGFiYXNlX2FjdGl2aXR5X2NvbHVtbnMKICAgICAgICAgKTsKICAg ICAgICAgcGdBZG1pbi5EYXNoYm9hcmQucmVuZGVyX2dyaWQoCi0gICAgICAgICAgZGl2X2RhdGFi YXNlX2xvY2tzLCBzaWQsIGRpZCwgdXJsX2ZvcignZGFzaGJvYXJkLmxvY2tzJyksCi0gICAgICAg ICAgZGF0YWJhc2VfbG9ja3NfY29sdW1ucworICAgICAgICAgIGRpdl9kYXRhYmFzZV9sb2Nrcywg dXJsX2ZvcignZGFzaGJvYXJkLmxvY2tzJyksIGRhdGFiYXNlX2xvY2tzX2NvbHVtbnMKICAgICAg ICAgKTsKICAgICAgICAgcGdBZG1pbi5EYXNoYm9hcmQucmVuZGVyX2dyaWQoCi0gICAgICAgICAg ZGl2X2RhdGFiYXNlX3ByZXBhcmVkLCBzaWQsIGRpZCwgdXJsX2ZvcignZGFzaGJvYXJkLnByZXBh cmVkJyksCi0gICAgICAgICAgZGF0YWJhc2VfcHJlcGFyZWRfY29sdW1ucworICAgICAgICAgIGRp dl9kYXRhYmFzZV9wcmVwYXJlZCwgdXJsX2ZvcignZGFzaGJvYXJkLnByZXBhcmVkJyksIGRhdGFi YXNlX3ByZXBhcmVkX2NvbHVtbnMKICAgICAgICAgKTsKIAogICAgICAgICBwZ0FkbWluLkRhc2hi b2FyZC5yZW5kZXJfZ3JpZF9kYXRhKGRpdl9kYXRhYmFzZV9hY3Rpdml0eSk7CiAKICAgICAgICAg Ly8gKFJlKXJlbmRlciB0aGUgYXBwcm9wcmlhdGUgdGFiCi0gICAgICAgICQoJ2FbZGF0YS10b2dn bGU9InRhYiJdJykub24oJ3Nob3duLmJzLnRhYicsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgJCgn YVtkYXRhLXRvZ2dsZT0idGFiIl0nKS5vZmYoJ3Nob3duLmJzLnRhYicpLm9uKCdzaG93bi5icy50 YWInLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgc3dpdGNoICgkKGUudGFyZ2V0KS5hdHRyKCdh cmlhLWNvbnRyb2xzJykpIHsKICAgICAgICAgICBjYXNlICd0YWJfZGF0YWJhc2VfYWN0aXZpdHkn OgogICAgICAgICAgICAgcGdBZG1pbi5EYXNoYm9hcmQucmVuZGVyX2dyaWRfZGF0YShkaXZfZGF0 YWJhc2VfYWN0aXZpdHkpOwpAQCAtMTI5MCw3ICsxMzAwLDcgQEAgZGVmaW5lKCdwZ2FkbWluLmRh c2hib2FyZCcsIFsKICAgICAgICAgfSk7CiAKICAgICAgICAgLy8gSGFuZGxlIGJ1dHRvbiBjbGlj a3MKLSAgICAgICAgJCgnYnV0dG9uJykub24oJ2NsaWNrJywoKSA9PiB7CisgICAgICAgICQoJ2J1 dHRvbicpLm9mZignY2xpY2snKS5vbignY2xpY2snLCgpID0+IHsKICAgICAgICAgICBzd2l0Y2gg KHRoaXMuaWQpIHsKICAgICAgICAgICBjYXNlICdidG5fZGF0YWJhc2VfYWN0aXZpdHlfcmVmcmVz aCc6CiAgICAgICAgICAgICBwZ0FkbWluLkRhc2hib2FyZC5yZW5kZXJfZ3JpZF9kYXRhKGRpdl9k YXRhYmFzZV9hY3Rpdml0eSk7CkBAIC0xMzA4LDcgKzEzMTgsMTIgQEAgZGVmaW5lKCdwZ2FkbWlu LmRhc2hib2FyZCcsIFsKICAgICAgIH0KICAgICB9LAogICAgIHRvZ2dsZVZpc2liaWxpdHk6IGZ1 bmN0aW9uKGZsYWcpIHsKKy8vICAgICAgbGV0IHNlbGYgPSB0aGlzOwogICAgICAgZGFzaGJvYXJk VmlzaWJsZSA9IGZsYWc7CisKKy8vICAgICAgaWYoZGFzaGJvYXJkVmlzaWJsZSkgeworLy8gICAg ICAgIHNlbGYuaW5pdF9kYXNoYm9hcmQoKTsKKy8vICAgICAgfQogICAgIH0sCiAgICAgY2FuX3Rh a2VfYWN0aW9uOiBmdW5jdGlvbihtKSB7CiAgICAgICAvLyBXZSB3aWxsIHZhbGlkYXRlIGlmIHVz ZXIgaXMgYWxsb3dlZCB0byBjYW5jZWwgdGhlIGFjdGl2ZSBxdWVyeQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vZGFzaGJvYXJkL3RlbXBsYXRlcy9kYXNoYm9hcmQvZGF0YWJhc2VfZGFzaGJvYXJk Lmh0bWwgYi93ZWIvcGdhZG1pbi9kYXNoYm9hcmQvdGVtcGxhdGVzL2Rhc2hib2FyZC9kYXRhYmFz ZV9kYXNoYm9hcmQuaHRtbAppbmRleCAzN2ZmNWI5Ny4uMjZjZGUwMWEgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Rhc2hib2FyZC90ZW1wbGF0ZXMvZGFzaGJvYXJkL2RhdGFiYXNlX2Rhc2hib2Fy ZC5odG1sCisrKyBiL3dlYi9wZ2FkbWluL2Rhc2hib2FyZC90ZW1wbGF0ZXMvZGFzaGJvYXJkL2Rh dGFiYXNlX2Rhc2hib2FyZC5odG1sCkBAIC0xLDEzNSArMSwxMTAgQEAKIDxkaXYgY2xhc3M9ImRh c2hib2FyZC1jb250YWluZXIiPgoteyUgaWYgc2V0dGluZ3Muc2hvd19ncmFwaHMgJX0KLSAgICA8 ZGl2IGNsYXNzPSJyb3ciPgotICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNiI+Ci0gICAgICAg ICAgICA8ZGl2IGNsYXNzPSJvYmpfcHJvcGVydGllcyI+Ci0gICAgICAgICAgICAgICAgPGxlZ2Vu ZCBjbGFzcz0iYmFkZ2UiPnt7IF8oJ0RhdGFiYXNlIHNlc3Npb25zJykgfX08L2xlZ2VuZD4KKyAg ICA8ZGl2IGlkPSJkYXNoYm9hcmQtZ3JhcGhzIiBjbGFzcz0iZGFzaGJvYXJkLWhpZGRlbiI+Cisg ICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMt NiI+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib2JqX3Byb3BlcnRpZXMiPgorICAgICAg ICAgICAgICAgICAgICA8bGVnZW5kIGNsYXNzPSJiYWRnZSI+e3sgXygnRGF0YWJhc2Ugc2Vzc2lv bnMnKSB9fTwvbGVnZW5kPgorICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgPC9k aXY+Ci0gICAgICAgIDwvZGl2PgotICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNiI+Ci0gICAg ICAgICAgICA8ZGl2IGNsYXNzPSJvYmpfcHJvcGVydGllcyI+Ci0gICAgICAgICAgICAgICAgPGxl Z2VuZCBjbGFzcz0iYmFkZ2UiPnt7IF8oJ1RyYW5zYWN0aW9ucyBwZXIgc2Vjb25kJykgfX08L2xl Z2VuZD4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy02Ij4KKyAgICAgICAgICAgICAg ICA8ZGl2IGNsYXNzPSJvYmpfcHJvcGVydGllcyI+CisgICAgICAgICAgICAgICAgICAgIDxsZWdl bmQgY2xhc3M9ImJhZGdlIj57eyBfKCdUcmFuc2FjdGlvbnMgcGVyIHNlY29uZCcpIH19PC9sZWdl bmQ+CisgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAg PC9kaXY+Ci0gICAgPC9kaXY+Ci0gICAgPGRpdiBjbGFzcz0icm93Ij4KLSAgICAgICAgPGRpdiBj bGFzcz0iY29sLXhzLTYiPgotICAgICAgICAgICAgPGRpdiBpZD0iZ3JhcGgtc2Vzc2lvbnMiIGNs YXNzPSJncmFwaC1jb250YWluZXIiPjwvZGl2PgotICAgICAgICA8L2Rpdj4KLSAgICAgICAgPGRp diBjbGFzcz0iY29sLXhzLTYiPgotICAgICAgICAgICAgPGRpdiBpZD0iZ3JhcGgtdHBzIiBjbGFz cz0iZ3JhcGgtY29udGFpbmVyIj48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0icm93IGRhc2hi b2FyZC1yb3ciPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYiPgorICAgICAgICAg ICAgICAgIDxkaXYgaWQ9ImdyYXBoLXNlc3Npb25zIiBjbGFzcz0iZ3JhcGgtY29udGFpbmVyIj48 L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhz LTYiPgorICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImdyYXBoLXRwcyIgY2xhc3M9ImdyYXBoLWNv bnRhaW5lciI+PC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgPC9kaXY+Ci0gICAg PC9kaXY+CiAKLSAgICA8ZGl2IGNsYXNzPSJyb3cgZGFzaGJvYXJkLWhlYWRlci1zcGFjZXIiPgot ICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNCI+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJv YmpfcHJvcGVydGllcyI+Ci0gICAgICAgICAgICAgICAgPGxlZ2VuZCBjbGFzcz0iYmFkZ2UiPnt7 IF8oJ1R1cGxlcyBpbicpIH19PC9sZWdlbmQ+CisgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+Cisg ICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNCI+CisgICAgICAgICAgICAgICAgPGRpdiBj bGFzcz0ib2JqX3Byb3BlcnRpZXMiPgorICAgICAgICAgICAgICAgICAgICA8bGVnZW5kIGNsYXNz PSJiYWRnZSI+e3sgXygnVHVwbGVzIGluJykgfX08L2xlZ2VuZD4KKyAgICAgICAgICAgICAgICA8 L2Rpdj4KICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICA8L2Rpdj4KLSAgICAgICAgPGRpdiBj bGFzcz0iY29sLXhzLTQiPgotICAgICAgICAgICAgPGRpdiBjbGFzcz0ib2JqX3Byb3BlcnRpZXMi PgotICAgICAgICAgICAgICAgIDxsZWdlbmQgY2xhc3M9ImJhZGdlIj57eyBfKCdUdXBsZXMgb3V0 JykgfX08L2xlZ2VuZD4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy00Ij4KKyAgICAg ICAgICAgICAgICA8ZGl2IGNsYXNzPSJvYmpfcHJvcGVydGllcyI+CisgICAgICAgICAgICAgICAg ICAgIDxsZWdlbmQgY2xhc3M9ImJhZGdlIj57eyBfKCdUdXBsZXMgb3V0JykgfX08L2xlZ2VuZD4K KyAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICA8L2Rp dj4KLSAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTQiPgotICAgICAgICAgICAgPGRpdiBjbGFz cz0ib2JqX3Byb3BlcnRpZXMiPgotICAgICAgICAgICAgICAgIDxsZWdlbmQgY2xhc3M9ImJhZGdl Ij57eyBfKCdCbG9jayBJL08nKSB9fTwvbGVnZW5kPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0i Y29sLXhzLTQiPgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9ial9wcm9wZXJ0aWVzIj4K KyAgICAgICAgICAgICAgICAgICAgPGxlZ2VuZCBjbGFzcz0iYmFkZ2UiPnt7IF8oJ0Jsb2NrIEkv TycpIH19PC9sZWdlbmQ+CisgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICA8L2Rp dj4KICAgICAgICAgPC9kaXY+Ci0gICAgPC9kaXY+CiAKLSAgICA8ZGl2IGNsYXNzPSJyb3ciPgot ICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNCI+Ci0gICAgICAgICAgICA8ZGl2IGlkPSJncmFw aC10aSIgY2xhc3M9ImdyYXBoLWNvbnRhaW5lciI+PC9kaXY+Ci0gICAgICAgIDwvZGl2PgotICAg ICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNCI+Ci0gICAgICAgICAgICA8ZGl2IGlkPSJncmFwaC10 byIgY2xhc3M9ImdyYXBoLWNvbnRhaW5lciI+PC9kaXY+Ci0gICAgICAgIDwvZGl2PgotICAgICAg ICA8ZGl2IGNsYXNzPSJjb2wteHMtNCI+Ci0gICAgICAgICAgICA8ZGl2IGlkPSJncmFwaC1iaW8i IGNsYXNzPSJncmFwaC1jb250YWluZXIiPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJyb3cg ZGFzaGJvYXJkLXJvdyI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNCI+CisgICAg ICAgICAgICAgICAgPGRpdiBpZD0iZ3JhcGgtdGkiIGNsYXNzPSJncmFwaC1jb250YWluZXIiPjwv ZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMt NCI+CisgICAgICAgICAgICAgICAgPGRpdiBpZD0iZ3JhcGgtdG8iIGNsYXNzPSJncmFwaC1jb250 YWluZXIiPjwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNz PSJjb2wteHMtNCI+CisgICAgICAgICAgICAgICAgPGRpdiBpZD0iZ3JhcGgtYmlvIiBjbGFzcz0i Z3JhcGgtY29udGFpbmVyIj48L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICA8L2Rp dj4KICAgICA8L2Rpdj4KLXslIGVuZGlmICV9Ci17JSBpZiBzZXR0aW5ncy5zaG93X2FjdGl2aXR5 ICV9Ci0gIHsjIElmIHdlIGFyZSBkaXNwbGF5aW5nIGdyYXBocyB0aGVuIG9ubHkgd2UgbmVlZCBz cGFjZSBvbiB0b3AgI30KLSAgeyUgaWYgc2V0dGluZ3Muc2hvd19ncmFwaHMgJX0KLSAgICA8ZGl2 IGNsYXNzPSJyb3cgZGFzaGJvYXJkLWhlYWRlci1zcGFjZXIiPgotICB7JSBlbHNlICV9Ci0gICAg PGRpdiBjbGFzcz0icm93Ij4KLSAgeyUgZW5kaWYgJX0KLSAgICAgICAgPGRpdiBjbGFzcz0iY29s LXhzLTEyIj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9ial9wcm9wZXJ0aWVzIj4KLSAgICAg ICAgICAgICAgICA8bGVnZW5kIGNsYXNzPSJiYWRnZSI+e3sgXygnRGF0YWJhc2UgYWN0aXZpdHkn KSB9fTwvbGVnZW5kPgorICAgIDxkaXYgaWQ9ImRhc2hib2FyZC1hY3Rpdml0eSIgY2xhc3M9ImRh c2hib2FyZC1oaWRkZW4iPgorICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgorICAgICAgICAgICAg PGRpdiBjbGFzcz0iY29sLXhzLTEyIj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvYmpf cHJvcGVydGllcyI+CisgICAgICAgICAgICAgICAgICAgIDxsZWdlbmQgY2xhc3M9ImJhZGdlIj57 eyBfKCdEYXRhYmFzZSBhY3Rpdml0eScpIH19PC9sZWdlbmQ+CisgICAgICAgICAgICAgICAgPC9k aXY+CiAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgPC9kaXY+Ci0gICAgPC9kaXY+Ci0gICAg PGRpdiBjbGFzcz0icm93Ij4KLSAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTEyIj4KLSAgICAg ICAgICAgIDxkaXYgY2xhc3M9ImRhc2hib2FyZC10YWItY29udGFpbmVyIj4KLSAgICAgICAgICAg ICAgICA8IS0tIE5hdiB0YWJzIC0tPgotICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2IG5h di10YWJzIGRhc2hib2FyZC10YWItcGFuZWwiIHJvbGU9InRhYmxpc3QiPgotICAgICAgICAgICAg ICAgICAgICA8bGkgcm9sZT0icHJlc2VudGF0aW9uIiBjbGFzcz0iYWN0aXZlIGRhc2hib2FyZC10 YWIiPjxhIGhyZWY9IiN0YWJfcGFuZWxfZGF0YWJhc2VfYWN0aXZpdHkiCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXJpYS1jb250cm9scz0idGFiX2RhdGFiYXNlX2FjdGl2aXR5IgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJvbGU9InRhYiIgZGF0YS10b2dnbGU9InRhYiI+e3sgXygnU2Vzc2lvbnMnKSB9fTwv YT4KLSAgICAgICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICAgICAgPGxpIHJv bGU9InByZXNlbnRhdGlvbiIgY2xhc3M9ImRhc2hib2FyZC10YWIiPjxhIGhyZWY9IiN0YWJfcGFu ZWxfZGF0YWJhc2VfbG9ja3MiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPSJ0YWJfZGF0YWJh c2VfbG9ja3MiIHJvbGU9InRhYiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPSJ0YWIiPnt7IF8o J0xvY2tzJykgfX08L2E+PC9saT4KLSAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9InByZXNl bnRhdGlvbiIgY2xhc3M9ImRhc2hib2FyZC10YWIiPjxhIGhyZWY9IiN0YWJfcGFuZWxfZGF0YWJh c2VfcHJlcGFyZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPSJ0YWJfZGF0YWJhc2VfcHJl cGFyZWQiIHJvbGU9InRhYiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPSJ0YWIiPnt7IF8oJ1By ZXBhcmVkIFRyYW5zYWN0aW9ucycpIH19PC9hPjwvbGk+Ci0gICAgICAgICAgICAgICAgPC91bD4K KyAgICAgICAgPGRpdiBjbGFzcz0icm93IGRhc2hib2FyZC1yb3ciPgorICAgICAgICAgICAgPGRp diBjbGFzcz0iY29sLXhzLTEyIj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkYXNoYm9h cmQtdGFiLWNvbnRhaW5lciI+CisgICAgICAgICAgICAgICAgICAgIDwhLS0gTmF2IHRhYnMgLS0+ CisgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2IG5hdi10YWJzIGRhc2hib2FyZC10 YWItcGFuZWwiIHJvbGU9InRhYmxpc3QiPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHJv bGU9InByZXNlbnRhdGlvbiIgY2xhc3M9ImFjdGl2ZSBkYXNoYm9hcmQtdGFiIj48YSBocmVmPSIj dGFiX3BhbmVsX2RhdGFiYXNlX2FjdGl2aXR5IgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlh LWNvbnRyb2xzPSJ0YWJfZGF0YWJhc2VfYWN0aXZpdHkiCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJvbGU9InRhYiIgZGF0YS10b2dnbGU9InRhYiI+e3sgXygnU2Vzc2lvbnMnKSB9fTwvYT4KKyAg ICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGkg cm9sZT0icHJlc2VudGF0aW9uIiBjbGFzcz0iZGFzaGJvYXJkLXRhYiI+PGEgaHJlZj0iI3RhYl9w YW5lbF9kYXRhYmFzZV9sb2NrcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPSJ0YWJf ZGF0YWJhc2VfbG9ja3MiIHJvbGU9InRhYiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRvZ2dsZT0i dGFiIj57eyBfKCdMb2NrcycpIH19PC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8 bGkgcm9sZT0icHJlc2VudGF0aW9uIiBjbGFzcz0iZGFzaGJvYXJkLXRhYiI+PGEgaHJlZj0iI3Rh Yl9wYW5lbF9kYXRhYmFzZV9wcmVwYXJlZCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xz PSJ0YWJfZGF0YWJhc2VfcHJlcGFyZWQiIHJvbGU9InRhYiIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh LXRvZ2dsZT0idGFiIj57eyBfKCdQcmVwYXJlZCBUcmFuc2FjdGlvbnMnKSB9fTwvYT48L2xpPgor ICAgICAgICAgICAgICAgICAgICA8L3VsPgogCi0gICAgICAgICAgICAgICAgPCEtLSBUYWIgcGFu ZXMgLS0+Ci0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWNvbnRlbnQiPgotICAgICAg ICAgICAgICAgICAgICA8ZGl2IHJvbGU9InRhYnBhbmVsIiBjbGFzcz0idGFiLXBhbmUgYWN0aXZl IiBpZD0idGFiX3BhbmVsX2RhdGFiYXNlX2FjdGl2aXR5Ij4KLSAgICAgICAgICAgICAgICAgICAg ICAgIDxkaXYgY2xhc3M9ImRhc2hib2FyZC10YWItYnRuLWdyb3VwIHBnLXByb3AtYnRuLWdyb3Vw LWFib3ZlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG5fZGF0 YWJhc2VfYWN0aXZpdHlfcmVmcmVzaCIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1kZWZh dWx0IiB0aXRsZT0ie3sgXygnUmVmcmVzaCcpIH19Ij4gPHNwYW4gY2xhc3M9ImZhIGZhLWxnIGZh LXJlZnJlc2giPjwvc3Bhbj48L2J1dHRvbj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 ZGl2IGlkPSJkYXRhYmFzZV9hY3Rpdml0eV9maWx0ZXIiPjwvZGl2PgorICAgICAgICAgICAgICAg ICAgICA8IS0tIFRhYiBwYW5lcyAtLT4KKyAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0i dGFiLWNvbnRlbnQiPgorICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByb2xlPSJ0YWJwYW5l bCIgY2xhc3M9InRhYi1wYW5lIGFjdGl2ZSIgaWQ9InRhYl9wYW5lbF9kYXRhYmFzZV9hY3Rpdml0 eSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGFzaGJvYXJkLXRh Yi1idG4tZ3JvdXAgcGctcHJvcC1idG4tZ3JvdXAtYWJvdmUiPgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG5fZGF0YWJhc2VfYWN0aXZpdHlfcmVmcmVzaCIg dHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiB0aXRsZT0ie3sgXygnUmVmcmVz aCcpIH19Ij4gPHNwYW4gY2xhc3M9ImZhIGZhLWxnIGZhLXJlZnJlc2giPjwvc3Bhbj48L2J1dHRv bj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZGF0YWJhc2VfYWN0 aXZpdHlfZmlsdGVyIj48L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJkYXRhYmFzZV9hY3Rpdml0eSIg Y2xhc3M9ImdyaWQtY29udGFpbmVyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgIDwv ZGl2PgotICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZGF0YWJhc2VfYWN0aXZpdHki IGNsYXNzPSJncmlkLWNvbnRhaW5lciI+PC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgIDwvZGl2 PgotICAgICAgICAgICAgICAgICAgICA8ZGl2IHJvbGU9InRhYnBhbmVsIiBjbGFzcz0idGFiLXBh bmUiIGlkPSJ0YWJfcGFuZWxfZGF0YWJhc2VfbG9ja3MiPgotICAgICAgICAgICAgICAgICAgICAg ICAgPGRpdiBjbGFzcz0iZGFzaGJvYXJkLXRhYi1idG4tZ3JvdXAgcGctcHJvcC1idG4tZ3JvdXAt YWJvdmUiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bl9kYXRh YmFzZV9sb2Nrc19yZWZyZXNoIiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQi IHRpdGxlPSJ7eyBfKCdSZWZyZXNoJykgfX0iPiA8c3BhbiBjbGFzcz0iZmEgZmEtbGcgZmEtcmVm cmVzaCI+PC9zcGFuPjwvYnV0dG9uPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYg aWQ9ImRhdGFiYXNlX2xvY2tzX2ZpbHRlciI+PC9kaXY+CisgICAgICAgICAgICAgICAgICAgICAg ICA8ZGl2IHJvbGU9InRhYnBhbmVsIiBjbGFzcz0idGFiLXBhbmUiIGlkPSJ0YWJfcGFuZWxfZGF0 YWJhc2VfbG9ja3MiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRh c2hib2FyZC10YWItYnRuLWdyb3VwIHBnLXByb3AtYnRuLWdyb3VwLWFib3ZlIj4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuX2RhdGFiYXNlX2xvY2tzX3Jl ZnJlc2giIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgdGl0bGU9Int7IF8o J1JlZnJlc2gnKSB9fSI+IDxzcGFuIGNsYXNzPSJmYSBmYS1sZyBmYS1yZWZyZXNoIj48L3NwYW4+ PC9idXR0b24+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImRhdGFi YXNlX2xvY2tzX2ZpbHRlciI+PC9kaXY+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9k aXY+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZGF0YWJhc2VfbG9ja3Mi IGNsYXNzPSJncmlkLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICA8 L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImRhdGFiYXNlX2xvY2tzIiBj bGFzcz0iZ3JpZC1jb250YWluZXIiPjwvZGl2PgotICAgICAgICAgICAgICAgICAgICA8L2Rpdj4K LSAgICAgICAgICAgICAgICAgICAgPGRpdiByb2xlPSJ0YWJwYW5lbCIgY2xhc3M9InRhYi1wYW5l IiBpZD0idGFiX3BhbmVsX2RhdGFiYXNlX3ByZXBhcmVkIj4KLSAgICAgICAgICAgICAgICAgICAg ICAgIDxkaXYgY2xhc3M9ImRhc2hib2FyZC10YWItYnRuLWdyb3VwIHBnLXByb3AtYnRuLWdyb3Vw LWFib3ZlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG5fZGF0 YWJhc2VfcHJlcGFyZWRfcmVmcmVzaCIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1kZWZh dWx0IiB0aXRsZT0ie3sgXygnUmVmcmVzaCcpIH19Ij4gPHNwYW4gY2xhc3M9ImZhIGZhLWxnIGZh LXJlZnJlc2giPjwvc3Bhbj48L2J1dHRvbj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 ZGl2IGlkPSJkYXRhYmFzZV9wcmVwYXJlZF9maWx0ZXIiPjwvZGl2PgorICAgICAgICAgICAgICAg ICAgICAgICAgPGRpdiByb2xlPSJ0YWJwYW5lbCIgY2xhc3M9InRhYi1wYW5lIiBpZD0idGFiX3Bh bmVsX2RhdGFiYXNlX3ByZXBhcmVkIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2 IGNsYXNzPSJkYXNoYm9hcmQtdGFiLWJ0bi1ncm91cCBwZy1wcm9wLWJ0bi1ncm91cC1hYm92ZSI+ CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bl9kYXRhYmFz ZV9wcmVwYXJlZF9yZWZyZXNoIiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQi IHRpdGxlPSJ7eyBfKCdSZWZyZXNoJykgfX0iPiA8c3BhbiBjbGFzcz0iZmEgZmEtbGcgZmEtcmVm cmVzaCI+PC9zcGFuPjwvYnV0dG9uPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 ZGl2IGlkPSJkYXRhYmFzZV9wcmVwYXJlZF9maWx0ZXIiPjwvZGl2PgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9 ImRhdGFiYXNlX3ByZXBhcmVkIiBjbGFzcz0iZ3JpZC1jb250YWluZXIiPjwvZGl2PgogICAgICAg ICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlk PSJkYXRhYmFzZV9wcmVwYXJlZCIgY2xhc3M9ImdyaWQtY29udGFpbmVyIj48L2Rpdj4KICAgICAg ICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAg ICA8L2Rpdj4KICAgICAgICAgPC9kaXY+CiAgICAgPC9kaXY+Ci17JSBlbmRpZiAlfQotCi17JSBp ZiBub3Qgc2V0dGluZ3Muc2hvd19ncmFwaHMgYW5kIG5vdCBzZXR0aW5ncy5zaG93X2FjdGl2aXR5 ICV9Ci0gICAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtaW5mbyBwZy1wYW5lbC1tZXNzYWdlIiBy b2xlPSJhbGVydCI+CisgICAgPGRpdiBpZD0iZGFzaGJvYXJkLW5vbmUtc2hvdyIgY2xhc3M9ImFs ZXJ0IGFsZXJ0LWluZm8gcGctcGFuZWwtbWVzc2FnZSBkYXNoYm9hcmQtaGlkZGVuIiByb2xlPSJh bGVydCI+CiAgICAgICAgIHt7IF8oJ0FsbCBEYXNoYm9hcmQgZWxlbWVudHMgYXJlIGN1cnJlbnRs eSBkaXNhYmxlZC4nKSB9fQogICAgIDwvZGl2PgoteyUgZW5kaWYgJX0KLQogPC9kaXY+Ci0KLTxz Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLSAgICAvLyBJbml0aWF0ZSBkYXRhYmFzZSBk YXNoYm9hcmQKLSAgICBwZ0FkbWluLkRhc2hib2FyZC5pbml0X2RhdGFiYXNlX2Rhc2hib2FyZCgK LSAgICAgIHt7IHNpZCB9fSwKLSAgICAgIHt7IGRpZCB9fSwKLSAgICAgIHt7IHZlcnNpb24gfX0s Ci0gICAgICB7eyByYXRlcy5zZXNzaW9uX3N0YXRzX3JlZnJlc2ggfX0sCi0gICAgICB7eyByYXRl cy50cHNfc3RhdHNfcmVmcmVzaCB9fSwKLSAgICAgIHt7IHJhdGVzLnRpX3N0YXRzX3JlZnJlc2gg fX0sCi0gICAgICB7eyByYXRlcy50b19zdGF0c19yZWZyZXNoIH19LAotICAgICAge3sgcmF0ZXMu YmlvX3N0YXRzX3JlZnJlc2ggfX0sCi0gICAgICB7eyBzZXR0aW5ncy5zaG93X2dyYXBoc3xsb3dl ciB9fSwKLSAgICAgIHt7IHNldHRpbmdzLnNob3dfYWN0aXZpdHl8bG93ZXIgfX0KLSAgICApOwot PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9kYXNoYm9hcmQvdGVtcGxhdGVzL2Rh c2hib2FyZC9zZXJ2ZXJfZGFzaGJvYXJkLmh0bWwgYi93ZWIvcGdhZG1pbi9kYXNoYm9hcmQvdGVt cGxhdGVzL2Rhc2hib2FyZC9zZXJ2ZXJfZGFzaGJvYXJkLmh0bWwKaW5kZXggYjM1NzgyNTMuLjVh NGRmNjZhIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9kYXNoYm9hcmQvdGVtcGxhdGVzL2Rhc2hi b2FyZC9zZXJ2ZXJfZGFzaGJvYXJkLmh0bWwKKysrIGIvd2ViL3BnYWRtaW4vZGFzaGJvYXJkL3Rl bXBsYXRlcy9kYXNoYm9hcmQvc2VydmVyX2Rhc2hib2FyZC5odG1sCkBAIC0xLDE0NCArMSwxMjAg QEAKIDxkaXYgY2xhc3M9ImRhc2hib2FyZC1jb250YWluZXIiPgoteyUgaWYgc2V0dGluZ3Muc2hv d19ncmFwaHMgJX0KLSAgICA8ZGl2IGNsYXNzPSJyb3ciPgotICAgICAgICA8ZGl2IGNsYXNzPSJj b2wteHMtNiI+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJvYmpfcHJvcGVydGllcyI+Ci0gICAg ICAgICAgICAgICAgPGxlZ2VuZCBjbGFzcz0iYmFkZ2UiPnt7IF8oJ1NlcnZlciBzZXNzaW9ucycp IH19PC9sZWdlbmQ+CisgICAgPGRpdiBpZD0iZGFzaGJvYXJkLWdyYXBocyIgY2xhc3M9ImRhc2hi b2FyZC1oaWRkZW4iPgorICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgorICAgICAgICAgICAgPGRp diBjbGFzcz0iY29sLXhzLTYiPgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9ial9wcm9w ZXJ0aWVzIj4KKyAgICAgICAgICAgICAgICAgICAgPGxlZ2VuZCBjbGFzcz0iYmFkZ2UiPnt7IF8o J1NlcnZlciBzZXNzaW9ucycpIH19PC9sZWdlbmQ+CisgICAgICAgICAgICAgICAgPC9kaXY+CiAg ICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgY2xhc3M9ImNv bC14cy02Ij4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9ial9wcm9wZXJ0aWVzIj4KLSAgICAg ICAgICAgICAgICA8bGVnZW5kIGNsYXNzPSJiYWRnZSI+e3sgXygnVHJhbnNhY3Rpb25zIHBlciBz ZWNvbmQnKSB9fTwvbGVnZW5kPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYiPgor ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9ial9wcm9wZXJ0aWVzIj4KKyAgICAgICAgICAg ICAgICAgICAgPGxlZ2VuZCBjbGFzcz0iYmFkZ2UiPnt7IF8oJ1RyYW5zYWN0aW9ucyBwZXIgc2Vj b25kJykgfX08L2xlZ2VuZD4KKyAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgIDwv ZGl2PgogICAgICAgICA8L2Rpdj4KLSAgICA8L2Rpdj4KLSAgICA8ZGl2IGNsYXNzPSJyb3ciPgot ICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNiI+Ci0gICAgICAgICAgICA8ZGl2IGlkPSJncmFw aC1zZXNzaW9ucyIgY2xhc3M9ImdyYXBoLWNvbnRhaW5lciI+PC9kaXY+Ci0gICAgICAgIDwvZGl2 PgotICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNiI+Ci0gICAgICAgICAgICA8ZGl2IGlkPSJn cmFwaC10cHMiIGNsYXNzPSJncmFwaC1jb250YWluZXIiPjwvZGl2PgorICAgICAgICA8ZGl2IGNs YXNzPSJyb3cgZGFzaGJvYXJkLXJvdyI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMt NiI+CisgICAgICAgICAgICAgICAgPGRpdiBpZD0iZ3JhcGgtc2Vzc2lvbnMiIGNsYXNzPSJncmFw aC1jb250YWluZXIiPjwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8ZGl2 IGNsYXNzPSJjb2wteHMtNiI+CisgICAgICAgICAgICAgICAgPGRpdiBpZD0iZ3JhcGgtdHBzIiBj bGFzcz0iZ3JhcGgtY29udGFpbmVyIj48L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgogICAgICAg ICA8L2Rpdj4KLSAgICA8L2Rpdj4KIAotICAgIDxkaXYgY2xhc3M9InJvdyBkYXNoYm9hcmQtaGVh ZGVyLXNwYWNlciI+Ci0gICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy00Ij4KLSAgICAgICAgICAg IDxkaXYgY2xhc3M9Im9ial9wcm9wZXJ0aWVzIj4KLSAgICAgICAgICAgICAgICA8bGVnZW5kIGNs YXNzPSJiYWRnZSI+e3sgXygnVHVwbGVzIGluJykgfX08L2xlZ2VuZD4KKyAgICAgICAgPGRpdiBj bGFzcz0icm93Ij4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy00Ij4KKyAgICAgICAg ICAgICAgICA8ZGl2IGNsYXNzPSJvYmpfcHJvcGVydGllcyI+CisgICAgICAgICAgICAgICAgICAg IDxsZWdlbmQgY2xhc3M9ImJhZGdlIj57eyBfKCdUdXBsZXMgaW4nKSB9fTwvbGVnZW5kPgorICAg ICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgIDwvZGl2Pgot ICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNCI+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJv YmpfcHJvcGVydGllcyI+Ci0gICAgICAgICAgICAgICAgPGxlZ2VuZCBjbGFzcz0iYmFkZ2UiPnt7 IF8oJ1R1cGxlcyBvdXQnKSB9fTwvbGVnZW5kPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29s LXhzLTQiPgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9ial9wcm9wZXJ0aWVzIj4KKyAg ICAgICAgICAgICAgICAgICAgPGxlZ2VuZCBjbGFzcz0iYmFkZ2UiPnt7IF8oJ1R1cGxlcyBvdXQn KSB9fTwvbGVnZW5kPgorICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgPC9kaXY+ Ci0gICAgICAgIDwvZGl2PgotICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNCI+Ci0gICAgICAg ICAgICA8ZGl2IGNsYXNzPSJvYmpfcHJvcGVydGllcyI+Ci0gICAgICAgICAgICAgICAgPGxlZ2Vu ZCBjbGFzcz0iYmFkZ2UiPnt7IF8oJ0Jsb2NrIEkvTycpIH19PC9sZWdlbmQ+CisgICAgICAgICAg ICA8ZGl2IGNsYXNzPSJjb2wteHMtNCI+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib2Jq X3Byb3BlcnRpZXMiPgorICAgICAgICAgICAgICAgICAgICA8bGVnZW5kIGNsYXNzPSJiYWRnZSI+ e3sgXygnQmxvY2sgSS9PJykgfX08L2xlZ2VuZD4KKyAgICAgICAgICAgICAgICA8L2Rpdj4KICAg ICAgICAgICAgIDwvZGl2PgogICAgICAgICA8L2Rpdj4KLSAgICA8L2Rpdj4KIAotICAgIDxkaXYg Y2xhc3M9InJvdyI+Ci0gICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy00Ij4KLSAgICAgICAgICAg IDxkaXYgaWQ9ImdyYXBoLXRpIiBjbGFzcz0iZ3JhcGgtY29udGFpbmVyIj48L2Rpdj4KLSAgICAg ICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy00Ij4KLSAgICAgICAgICAgIDxk aXYgaWQ9ImdyYXBoLXRvIiBjbGFzcz0iZ3JhcGgtY29udGFpbmVyIj48L2Rpdj4KLSAgICAgICAg PC9kaXY+Ci0gICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy00Ij4KLSAgICAgICAgICAgIDxkaXYg aWQ9ImdyYXBoLWJpbyIgY2xhc3M9ImdyYXBoLWNvbnRhaW5lciI+PC9kaXY+CisgICAgICAgIDxk aXYgY2xhc3M9InJvdyBkYXNoYm9hcmQtcm93Ij4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNv bC14cy00Ij4KKyAgICAgICAgICAgICAgICA8ZGl2IGlkPSJncmFwaC10aSIgY2xhc3M9ImdyYXBo LWNvbnRhaW5lciI+PC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDxkaXYg Y2xhc3M9ImNvbC14cy00Ij4KKyAgICAgICAgICAgICAgICA8ZGl2IGlkPSJncmFwaC10byIgY2xh c3M9ImdyYXBoLWNvbnRhaW5lciI+PC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAg ICAgIDxkaXYgY2xhc3M9ImNvbC14cy00Ij4KKyAgICAgICAgICAgICAgICA8ZGl2IGlkPSJncmFw aC1iaW8iIGNsYXNzPSJncmFwaC1jb250YWluZXIiPjwvZGl2PgorICAgICAgICAgICAgPC9kaXY+ CiAgICAgICAgIDwvZGl2PgogICAgIDwvZGl2PgoteyUgZW5kaWYgJX0KLXslIGlmIHNldHRpbmdz LnNob3dfYWN0aXZpdHkgJX0KLSAgeyMgSWYgd2UgYXJlIGRpc3BsYXlpbmcgZ3JhcGhzIHRoZW4g b25seSB3ZSBuZWVkIHNwYWNlIG9uIHRvcCAjfQotICB7JSBpZiBzZXR0aW5ncy5zaG93X2dyYXBo cyAlfQotICAgIDxkaXYgY2xhc3M9InJvdyBkYXNoYm9hcmQtaGVhZGVyLXNwYWNlciI+Ci0gIHsl IGVsc2UgJX0KLSAgICA8ZGl2IGNsYXNzPSJyb3ciPgotICB7JSBlbmRpZiAlfQotICAgICAgICA8 ZGl2IGNsYXNzPSJjb2wteHMtMTIiPgotICAgICAgICAgICAgPGRpdiBjbGFzcz0ib2JqX3Byb3Bl cnRpZXMiPgotICAgICAgICAgICAgICAgIDxsZWdlbmQgY2xhc3M9ImJhZGdlIj57eyBfKCdTZXJ2 ZXIgYWN0aXZpdHknKSB9fTwvbGVnZW5kPgorICAgIDxkaXYgaWQ9ImRhc2hib2FyZC1hY3Rpdml0 eSIgY2xhc3M9ImRhc2hib2FyZC1oaWRkZW4iPgorICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgor ICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTEyIj4KKyAgICAgICAgICAgICAgICA8ZGl2 IGNsYXNzPSJvYmpfcHJvcGVydGllcyI+CisgICAgICAgICAgICAgICAgICAgIDxsZWdlbmQgY2xh c3M9ImJhZGdlIj57eyBfKCdTZXJ2ZXIgYWN0aXZpdHknKSB9fTwvbGVnZW5kPgorICAgICAgICAg ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgIDwvZGl2PgotICAgIDwv ZGl2PgotICAgIDxkaXYgY2xhc3M9InJvdyI+Ci0gICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy0x MiI+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJkYXNoYm9hcmQtdGFiLWNvbnRhaW5lciI+Ci0g ICAgICAgICAgICAgICAgPCEtLSBOYXYgdGFicyAtLT4KLSAgICAgICAgICAgICAgICA8dWwgY2xh c3M9Im5hdiBuYXYtdGFicyBkYXNoYm9hcmQtdGFiLXBhbmVsIiByb2xlPSJ0YWJsaXN0Ij4KLSAg ICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9InByZXNlbnRhdGlvbiIgY2xhc3M9ImFjdGl2ZSBk YXNoYm9hcmQtdGFiIj48YSBocmVmPSIjdGFiX3BhbmVsX3NlcnZlcl9hY3Rpdml0eSIKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPSJ0YWJfc2VydmVyX2FjdGl2aXR5IgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJvbGU9InRhYiIgZGF0YS10b2dnbGU9InRhYiI+e3sgXygnU2Vzc2lvbnMn KSB9fTwvYT4KLSAgICAgICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICAgICAg PGxpIHJvbGU9InByZXNlbnRhdGlvbiIgY2xhc3M9ImRhc2hib2FyZC10YWIiPjxhIGhyZWY9IiN0 YWJfcGFuZWxfc2VydmVyX2xvY2tzIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz0idGFiX3Nl cnZlcl9sb2NrcyIgcm9sZT0idGFiIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9InRhYiI+e3sg XygnTG9ja3MnKSB9fTwvYT48L2xpPgotICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT0icHJl c2VudGF0aW9uIiBjbGFzcz0iZGFzaGJvYXJkLXRhYiI+PGEgaHJlZj0iI3RhYl9wYW5lbF9zZXJ2 ZXJfcHJlcGFyZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPSJ0YWJfc2VydmVyX3ByZXBh cmVkIiByb2xlPSJ0YWIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRvZ2dsZT0idGFiIj57eyBfKCdQcmVw YXJlZCBUcmFuc2FjdGlvbnMnKSB9fTwvYT48L2xpPgotICAgICAgICAgICAgICAgICAgICA8bGkg cm9sZT0icHJlc2VudGF0aW9uIiBjbGFzcz0iZGFzaGJvYXJkLXRhYiI+PGEgaHJlZj0iI3RhYl9w YW5lbF9zZXJ2ZXJfY29uZmlnIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz0idGFiX3NlcnZl cl9jb25maWciIHJvbGU9InRhYiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPSJ0YWIiPnt7IF8o J0NvbmZpZ3VyYXRpb24nKSB9fTwvYT48L2xpPgotICAgICAgICAgICAgICAgIDwvdWw+CisgICAg ICAgIDxkaXYgY2xhc3M9InJvdyBkYXNoYm9hcmQtcm93Ij4KKyAgICAgICAgICAgIDxkaXYgY2xh c3M9ImNvbC14cy0xMiI+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGFzaGJvYXJkLXRh Yi1jb250YWluZXIiPgorICAgICAgICAgICAgICAgICAgICA8IS0tIE5hdiB0YWJzIC0tPgorICAg ICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiBuYXYtdGFicyBkYXNoYm9hcmQtdGFiLXBh bmVsIiByb2xlPSJ0YWJsaXN0Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPSJw cmVzZW50YXRpb24iIGNsYXNzPSJhY3RpdmUgZGFzaGJvYXJkLXRhYiI+PGEgaHJlZj0iI3RhYl9w YW5lbF9zZXJ2ZXJfYWN0aXZpdHkiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtY29udHJv bHM9InRhYl9zZXJ2ZXJfYWN0aXZpdHkiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9InRh YiIgZGF0YS10b2dnbGU9InRhYiI+e3sgXygnU2Vzc2lvbnMnKSB9fTwvYT4KKyAgICAgICAgICAg ICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT0icHJl c2VudGF0aW9uIiBjbGFzcz0iZGFzaGJvYXJkLXRhYiI+PGEgaHJlZj0iI3RhYl9wYW5lbF9zZXJ2 ZXJfbG9ja3MiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz0idGFiX3NlcnZlcl9sb2Nr cyIgcm9sZT0idGFiIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPSJ0YWIiPnt7IF8oJ0xv Y2tzJykgfX08L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPSJwcmVz ZW50YXRpb24iIGNsYXNzPSJkYXNoYm9hcmQtdGFiIj48YSBocmVmPSIjdGFiX3BhbmVsX3NlcnZl cl9wcmVwYXJlZCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPSJ0YWJfc2VydmVyX3By ZXBhcmVkIiByb2xlPSJ0YWIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9InRhYiI+e3sg XygnUHJlcGFyZWQgVHJhbnNhY3Rpb25zJykgfX08L2E+PC9saT4KKyAgICAgICAgICAgICAgICAg ICAgICAgIDxsaSByb2xlPSJwcmVzZW50YXRpb24iIGNsYXNzPSJkYXNoYm9hcmQtdGFiIj48YSBo cmVmPSIjdGFiX3BhbmVsX3NlcnZlcl9jb25maWciCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250 cm9scz0idGFiX3NlcnZlcl9jb25maWciIHJvbGU9InRhYiIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh LXRvZ2dsZT0idGFiIj57eyBfKCdDb25maWd1cmF0aW9uJykgfX08L2E+PC9saT4KKyAgICAgICAg ICAgICAgICAgICAgPC91bD4KIAotICAgICAgICAgICAgICAgIDwhLS0gVGFiIHBhbmVzIC0tPgot ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1jb250ZW50Ij4KLSAgICAgICAgICAgICAg ICAgICAgPGRpdiByb2xlPSJ0YWJwYW5lbCIgY2xhc3M9InRhYi1wYW5lIGFjdGl2ZSIgaWQ9InRh Yl9wYW5lbF9zZXJ2ZXJfYWN0aXZpdHkiPgotICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBj bGFzcz0iZGFzaGJvYXJkLXRhYi1idG4tZ3JvdXAgcGctcHJvcC1idG4tZ3JvdXAtYWJvdmUiPgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bl9zZXJ2ZXJfYWN0aXZp dHlfcmVmcmVzaCIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiB0aXRsZT0i e3sgXygnUmVmcmVzaCcpIH19Ij4gPHNwYW4gY2xhc3M9ImZhIGZhLWxnIGZhLXJlZnJlc2giPjwv c3Bhbj48L2J1dHRvbj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJzZXJ2 ZXJfYWN0aXZpdHlfZmlsdGVyIj48L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgPCEtLSBUYWIg cGFuZXMgLS0+CisgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1jb250ZW50Ij4K KyAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgcm9sZT0idGFicGFuZWwiIGNsYXNzPSJ0YWIt cGFuZSBhY3RpdmUiIGlkPSJ0YWJfcGFuZWxfc2VydmVyX2FjdGl2aXR5Ij4KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkYXNoYm9hcmQtdGFiLWJ0bi1ncm91cCBwZy1w cm9wLWJ0bi1ncm91cC1hYm92ZSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxi dXR0b24gaWQ9ImJ0bl9zZXJ2ZXJfYWN0aXZpdHlfcmVmcmVzaCIgdHlwZT0iYnV0dG9uIiBjbGFz cz0iYnRuIGJ0bi1kZWZhdWx0IiB0aXRsZT0ie3sgXygnUmVmcmVzaCcpIH19Ij4gPHNwYW4gY2xh c3M9ImZhIGZhLWxnIGZhLXJlZnJlc2giPjwvc3Bhbj48L2J1dHRvbj4KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ic2VydmVyX2FjdGl2aXR5X2ZpbHRlciI+PC9kaXY+ CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPGRpdiBpZD0ic2VydmVyX2FjdGl2aXR5IiBjbGFzcz0iZ3JpZC1jb250YWluZXIi PjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICAgICAg ICAgICAgICA8ZGl2IGlkPSJzZXJ2ZXJfYWN0aXZpdHkiIGNsYXNzPSJncmlkLWNvbnRhaW5lciI+ PC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgICAgICAgICA8 ZGl2IHJvbGU9InRhYnBhbmVsIiBjbGFzcz0idGFiLXBhbmUiIGlkPSJ0YWJfcGFuZWxfc2VydmVy X2xvY2tzIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRhc2hib2FyZC10 YWItYnRuLWdyb3VwIHBnLXByb3AtYnRuLWdyb3VwLWFib3ZlIj4KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8YnV0dG9uIGlkPSJidG5fc2VydmVyX2xvY2tzX3JlZnJlc2giIHR5cGU9ImJ1 dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgdGl0bGU9Int7IF8oJ1JlZnJlc2gnKSB9fSI+ IDxzcGFuIGNsYXNzPSJmYSBmYS1sZyBmYS1yZWZyZXNoIj48L3NwYW4+PC9idXR0b24+Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ic2VydmVyX2xvY2tzX2ZpbHRlciI+PC9k aXY+CisgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHJvbGU9InRhYnBhbmVsIiBjbGFzcz0i dGFiLXBhbmUiIGlkPSJ0YWJfcGFuZWxfc2VydmVyX2xvY2tzIj4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8ZGl2IGNsYXNzPSJkYXNoYm9hcmQtdGFiLWJ0bi1ncm91cCBwZy1wcm9wLWJ0 bi1ncm91cC1hYm92ZSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24g aWQ9ImJ0bl9zZXJ2ZXJfbG9ja3NfcmVmcmVzaCIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0 bi1kZWZhdWx0IiB0aXRsZT0ie3sgXygnUmVmcmVzaCcpIH19Ij4gPHNwYW4gY2xhc3M9ImZhIGZh LWxnIGZhLXJlZnJlc2giPjwvc3Bhbj48L2J1dHRvbj4KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPGRpdiBpZD0ic2VydmVyX2xvY2tzX2ZpbHRlciI+PC9kaXY+CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRp diBpZD0ic2VydmVyX2xvY2tzIiBjbGFzcz0iZ3JpZC1jb250YWluZXIiPjwvZGl2PgogICAgICAg ICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlk PSJzZXJ2ZXJfbG9ja3MiIGNsYXNzPSJncmlkLWNvbnRhaW5lciI+PC9kaXY+Ci0gICAgICAgICAg ICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgICAgICAgICA8ZGl2IHJvbGU9InRhYnBhbmVs IiBjbGFzcz0idGFiLXBhbmUiIGlkPSJ0YWJfcGFuZWxfc2VydmVyX3ByZXBhcmVkIj4KLSAgICAg ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRhc2hib2FyZC10YWItYnRuLWdyb3VwIHBn LXByb3AtYnRuLWdyb3VwLWFib3ZlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0 dG9uIGlkPSJidG5fc2VydmVyX3ByZXBhcmVkX3JlZnJlc2giIHR5cGU9ImJ1dHRvbiIgY2xhc3M9 ImJ0biBidG4tZGVmYXVsdCIgdGl0bGU9Int7IF8oJ1JlZnJlc2gnKSB9fSI+IDxzcGFuIGNsYXNz PSJmYSBmYS1sZyBmYS1yZWZyZXNoIj48L3NwYW4+PC9idXR0b24+Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgPGRpdiBpZD0ic2VydmVyX3ByZXBhcmVkX2ZpbHRlciI+PC9kaXY+CisgICAg ICAgICAgICAgICAgICAgICAgICA8ZGl2IHJvbGU9InRhYnBhbmVsIiBjbGFzcz0idGFiLXBhbmUi IGlkPSJ0YWJfcGFuZWxfc2VydmVyX3ByZXBhcmVkIj4KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8ZGl2IGNsYXNzPSJkYXNoYm9hcmQtdGFiLWJ0bi1ncm91cCBwZy1wcm9wLWJ0bi1ncm91 cC1hYm92ZSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0 bl9zZXJ2ZXJfcHJlcGFyZWRfcmVmcmVzaCIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1k ZWZhdWx0IiB0aXRsZT0ie3sgXygnUmVmcmVzaCcpIH19Ij4gPHNwYW4gY2xhc3M9ImZhIGZhLWxn IGZhLXJlZnJlc2giPjwvc3Bhbj48L2J1dHRvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPGRpdiBpZD0ic2VydmVyX3ByZXBhcmVkX2ZpbHRlciI+PC9kaXY+CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRp diBpZD0ic2VydmVyX3ByZXBhcmVkIiBjbGFzcz0iZ3JpZC1jb250YWluZXIiPjwvZGl2PgogICAg ICAgICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2 IGlkPSJzZXJ2ZXJfcHJlcGFyZWQiIGNsYXNzPSJncmlkLWNvbnRhaW5lciI+PC9kaXY+Ci0gICAg ICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgICAgICAgICA8ZGl2IHJvbGU9InRh YnBhbmVsIiBjbGFzcz0idGFiLXBhbmUiIGlkPSJ0YWJfcGFuZWxfc2VydmVyX2NvbmZpZyI+Ci0g ICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkYXNoYm9hcmQtdGFiLWJ0bi1ncm91 cCBwZy1wcm9wLWJ0bi1ncm91cC1hYm92ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg PGJ1dHRvbiBpZD0iYnRuX3NlcnZlcl9jb25maWdfcmVmcmVzaCIgdHlwZT0iYnV0dG9uIiBjbGFz cz0iYnRuIGJ0bi1kZWZhdWx0IiB0aXRsZT0ie3sgXygnUmVmcmVzaCcpIH19Ij4gPHNwYW4gY2xh c3M9ImZhIGZhLWxnIGZhLXJlZnJlc2giPjwvc3Bhbj48L2J1dHRvbj4KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8ZGl2IGlkPSJzZXJ2ZXJfY29uZmlnX2ZpbHRlciI+PC9kaXY+CisgICAg ICAgICAgICAgICAgICAgICAgICA8ZGl2IHJvbGU9InRhYnBhbmVsIiBjbGFzcz0idGFiLXBhbmUi IGlkPSJ0YWJfcGFuZWxfc2VydmVyX2NvbmZpZyI+CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPGRpdiBjbGFzcz0iZGFzaGJvYXJkLXRhYi1idG4tZ3JvdXAgcGctcHJvcC1idG4tZ3JvdXAt YWJvdmUiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG5f c2VydmVyX2NvbmZpZ19yZWZyZXNoIiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1 bHQiIHRpdGxlPSJ7eyBfKCdSZWZyZXNoJykgfX0iPiA8c3BhbiBjbGFzcz0iZmEgZmEtbGcgZmEt cmVmcmVzaCI+PC9zcGFuPjwvYnV0dG9uPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8ZGl2IGlkPSJzZXJ2ZXJfY29uZmlnX2ZpbHRlciI+PC9kaXY+CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0i c2VydmVyX2NvbmZpZyIgY2xhc3M9ImdyaWQtY29udGFpbmVyIj48L2Rpdj4KICAgICAgICAgICAg ICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ic2Vy dmVyX2NvbmZpZyIgY2xhc3M9ImdyaWQtY29udGFpbmVyIj48L2Rpdj4KICAgICAgICAgICAgICAg ICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICA8L2Rpdj4K ICAgICAgICAgPC9kaXY+CiAgICAgPC9kaXY+Ci17JSBlbmRpZiAlfQotCi17JSBpZiBub3Qgc2V0 dGluZ3Muc2hvd19ncmFwaHMgYW5kIG5vdCBzZXR0aW5ncy5zaG93X2FjdGl2aXR5ICV9Ci0gICAg PGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtaW5mbyBwZy1wYW5lbC1tZXNzYWdlIiByb2xlPSJhbGVy dCI+Ci0gICAgICAgIHt7IF8oJ0Rhc2hib2FyZCBoYXMgYmVlbiBkaXNhYmxlZCBieSB1c2VyLicp IH19CisgICAgPGRpdiBpZD0iZGFzaGJvYXJkLW5vbmUtc2hvdyIgY2xhc3M9ImFsZXJ0IGFsZXJ0 LWluZm8gcGctcGFuZWwtbWVzc2FnZSBkYXNoYm9hcmQtaGlkZGVuIiByb2xlPSJhbGVydCI+Cisg ICAgICAgIHt7IF8oJ0FsbCBEYXNoYm9hcmQgZWxlbWVudHMgYXJlIGN1cnJlbnRseSBkaXNhYmxl ZC4nKSB9fQogICAgIDwvZGl2PgoteyUgZW5kaWYgJX0KLQogPC9kaXY+Ci0KLTxzY3JpcHQgdHlw ZT0idGV4dC9qYXZhc2NyaXB0Ij4KLSAgICAvLyBJbml0aWF0ZSBzZXJ2ZXIgZGFzaGJvYXJkCi0g ICAgcGdBZG1pbi5EYXNoYm9hcmQuaW5pdF9zZXJ2ZXJfZGFzaGJvYXJkKAotICAgICAge3sgc2lk IH19LAotICAgICAge3sgdmVyc2lvbiB9fSwKLSAgICAgIHt7IHJhdGVzLnNlc3Npb25fc3RhdHNf cmVmcmVzaCB9fSwKLSAgICAgIHt7IHJhdGVzLnRwc19zdGF0c19yZWZyZXNoIH19LAotICAgICAg e3sgcmF0ZXMudGlfc3RhdHNfcmVmcmVzaCB9fSwKLSAgICAgIHt7IHJhdGVzLnRvX3N0YXRzX3Jl ZnJlc2ggfX0sCi0gICAgICB7eyByYXRlcy5iaW9fc3RhdHNfcmVmcmVzaCB9fSwKLSAgICAgIHt7 IHNldHRpbmdzLnNob3dfZ3JhcGhzfGxvd2VyIH19LAotICAgICAge3sgc2V0dGluZ3Muc2hvd19h Y3Rpdml0eXxsb3dlciB9fQotICAgICk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Rhc2hib2FyZC90ZXN0cy90ZXN0X2Rhc2hib2FyZF90ZW1wbGF0ZXMucHkgYi93ZWIvcGdh ZG1pbi9kYXNoYm9hcmQvdGVzdHMvdGVzdF9kYXNoYm9hcmRfdGVtcGxhdGVzLnB5CmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZDI0YmRkYy4uMDAwMDAwMDAKLS0tIGEvd2ViL3BnYWRt aW4vZGFzaGJvYXJkL3Rlc3RzL3Rlc3RfZGFzaGJvYXJkX3RlbXBsYXRlcy5weQorKysgL2Rldi9u dWxsCkBAIC0xLDI2MyArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCi0jCi0jIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTgsIFRoZSBw Z0FkbWluIERldmVsb3BtZW50IFRlYW0KLSMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRl ciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1pbXBvcnQg b3MKLWltcG9ydCBzeXMKLWZyb20gZmxhc2sgaW1wb3J0IEZsYXNrLCByZW5kZXJfdGVtcGxhdGUK LWZyb20gamluamEyIGltcG9ydCBGaWxlU3lzdGVtTG9hZGVyCi1mcm9tIHBnYWRtaW4gaW1wb3J0 IFZlcnNpb25lZFRlbXBsYXRlTG9hZGVyCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0 IEJhc2VUZXN0R2VuZXJhdG9yCi0KLWlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMyk6Ci0gICAg ZnJvbSBtb2NrIGltcG9ydCBNYWdpY01vY2sKLWVsc2U6Ci0gICAgZnJvbSB1bml0dGVzdC5tb2Nr IGltcG9ydCBNYWdpY01vY2sKLQotIyBIYXJkIGNvZGVkIGR1bW15IGlucHV0IHBhcmFtZXRlcnMg Zm9yIHRoZSB0ZW1wbGF0ZXMKLVJBVEVTID0gewotICAgICdzZXNzaW9uX3N0YXRzX3JlZnJlc2gn OiAxLAotICAgICd0cHNfc3RhdHNfcmVmcmVzaCc6IDEsCi0gICAgJ3RpX3N0YXRzX3JlZnJlc2gn OiAxLAotICAgICd0b19zdGF0c19yZWZyZXNoJzogMSwKLSAgICAnYmlvX3N0YXRzX3JlZnJlc2gn OiAxCi19Ci0KLURJU1BMQVlfREFTSEJPQVJEID0gewotICAgICdib3RoJzogewotICAgICAgICAn c2hvd19ncmFwaHMnOiBUcnVlLAotICAgICAgICAnc2hvd19hY3Rpdml0eSc6IFRydWUKLSAgICB9 LAotCi0gICAgJ29ubHlfZ3JhcGhzJzogewotICAgICAgICAnc2hvd19ncmFwaHMnOiBUcnVlLAot ICAgICAgICAnc2hvd19hY3Rpdml0eSc6IEZhbHNlCi0gICAgfSwKLQotICAgICdvbmx5X3NlcnZl cl9hY3Rpdml0eSc6IHsKLSAgICAgICAgJ3Nob3dfZ3JhcGhzJzogRmFsc2UsCi0gICAgICAgICdz aG93X2FjdGl2aXR5JzogVHJ1ZQotICAgIH0sCi0KLSAgICAnbm9uZSc6IHsKLSAgICAgICAgJ3No b3dfZ3JhcGhzJzogRmFsc2UsCi0gICAgICAgICdzaG93X2FjdGl2aXR5JzogRmFsc2UKLSAgICB9 Ci19Ci0KLVZFUlNJT04gPSA5NTAwMAotCi1TRVJWRVJfSUQgPSAxCi0KLURBVEFCQVNFX0lEID0g MTIzCi0KLQotIyBUbyBtb2tlIGdldHRleHQgZnVuY3Rpb24gdXNlZCBpbiB0aGUgdGVtcGxhdGUK LV8gPSBNYWdpY01vY2soc2lkZV9lZmZlY3Q9bGFtYmRhIHg6IHgpCi0KLQotY2xhc3MgVGVzdERh c2hib2FyZFRlbXBsYXRlcyhCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgc2NlbmFyaW9zID0gWwot ICAgICAgICAjIFNlcnZlciBkYXNoYm9hcmQKLSAgICAgICAgKAotICAgICAgICAgICAgJ0Rhc2hi b2FyZCwgd2hlbiByZXR1cm5pbmcgdGhlIGh0bWwgcGFnZSB3aXRoIGdyYXBocyBhbmQgJwotICAg ICAgICAgICAgJ3NlcnZlciBhY3Rpdml0eSByZWxhdGVkIGh0bWwgZWxlbWVudHMgZm9yIHNlcnZl ciBkYXNoYm9hcmQnLAotICAgICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICAgICB0ZW1wbGF0 ZV9wYXRoPSdkYXNoYm9hcmQvc2VydmVyX2Rhc2hib2FyZC5odG1sJywKLSAgICAgICAgICAgICAg ICBpbnB1dF9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIHNpZD1TRVJWRVJf SUQsCi0gICAgICAgICAgICAgICAgICAgIGRpZD1Ob25lLAotICAgICAgICAgICAgICAgICAgICBy YXRlcz1SQVRFUywKLSAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1WRVJTSU9OLAotICAgICAg ICAgICAgICAgICAgICBzZXR0aW5ncz1ESVNQTEFZX0RBU0hCT0FSRFsnYm90aCddLAotICAgICAg ICAgICAgICAgICAgICBfPV8KLSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgIGV4 cGVjdGVkX3JldHVybl92YWx1ZT1bCi0gICAgICAgICAgICAgICAgICAgICdTZXJ2ZXIgc2Vzc2lv bnMnLAotICAgICAgICAgICAgICAgICAgICAnU2VydmVyIGFjdGl2aXR5JwotICAgICAgICAgICAg ICAgIF0sCi0gICAgICAgICAgICAgICAgbm90X2V4cGVjdGVkX3JldHVybl92YWx1ZT1bXQotICAg ICAgICAgICAgKQotICAgICAgICApLAotICAgICAgICAoCi0gICAgICAgICAgICAnRGFzaGJvYXJk LCB3aGVuIHJldHVybmluZyB0aGUgaHRtbCBwYWdlIHdpdGggb25seSBncmFwaHMgJwotICAgICAg ICAgICAgJ3JlbGF0ZWQgaHRtbCBlbGVtZW50cyBmb3Igc2VydmVyIGRhc2hib2FyZCcsCi0gICAg ICAgICAgICBkaWN0KAotICAgICAgICAgICAgICAgIHRlbXBsYXRlX3BhdGg9J2Rhc2hib2FyZC9z ZXJ2ZXJfZGFzaGJvYXJkLmh0bWwnLAotICAgICAgICAgICAgICAgIGlucHV0X3BhcmFtZXRlcnM9 ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgc2lkPVNFUlZFUl9JRCwKLSAgICAgICAgICAgICAg ICAgICAgZGlkPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgIHJhdGVzPVJBVEVTLAotICAgICAg ICAgICAgICAgICAgICB2ZXJzaW9uPVZFUlNJT04sCi0gICAgICAgICAgICAgICAgICAgIHNldHRp bmdzPURJU1BMQVlfREFTSEJPQVJEWydvbmx5X2dyYXBocyddLAotICAgICAgICAgICAgICAgICAg ICBfPV8KLSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgIGV4cGVjdGVkX3JldHVy bl92YWx1ZT1bCi0gICAgICAgICAgICAgICAgICAgICdTZXJ2ZXIgc2Vzc2lvbnMnCi0gICAgICAg ICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBub3RfZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPVsK LSAgICAgICAgICAgICAgICAgICAgJ1NlcnZlciBhY3Rpdml0eScKLSAgICAgICAgICAgICAgICBd Ci0gICAgICAgICAgICApCi0gICAgICAgICksCi0gICAgICAgICgKLSAgICAgICAgICAgICdEYXNo Ym9hcmQsIHdoZW4gcmV0dXJuaW5nIHRoZSBodG1sIHBhZ2Ugd2l0aCBvbmx5IHNlcnZlciAnCi0g ICAgICAgICAgICAnYWN0aXZpdHkgcmVsYXRlZCBodG1sIGVsZW1lbnRzIGZvciBzZXJ2ZXIgZGFz aGJvYXJkJywKLSAgICAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgICAgdGVtcGxhdGVfcGF0 aD0nZGFzaGJvYXJkL3NlcnZlcl9kYXNoYm9hcmQuaHRtbCcsCi0gICAgICAgICAgICAgICAgaW5w dXRfcGFyYW1ldGVycz1kaWN0KAotICAgICAgICAgICAgICAgICAgICBzaWQ9U0VSVkVSX0lELAot ICAgICAgICAgICAgICAgICAgICBkaWQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgcmF0ZXM9 UkFURVMsCi0gICAgICAgICAgICAgICAgICAgIHZlcnNpb249VkVSU0lPTiwKLSAgICAgICAgICAg ICAgICAgICAgc2V0dGluZ3M9RElTUExBWV9EQVNIQk9BUkRbJ29ubHlfc2VydmVyX2FjdGl2aXR5 J10sCi0gICAgICAgICAgICAgICAgICAgIF89XwotICAgICAgICAgICAgICAgICksCi0gICAgICAg ICAgICAgICAgZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPVsKLSAgICAgICAgICAgICAgICAgICAgJ1Nl cnZlciBhY3Rpdml0eScKLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIG5vdF9l eHBlY3RlZF9yZXR1cm5fdmFsdWU9WwotICAgICAgICAgICAgICAgICAgICAnU2VydmVyIHNlc3Np b25zJwotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICkKLSAgICAgICAgKSwKLSAgICAg ICAgKAotICAgICAgICAgICAgJ0Rhc2hib2FyZCwgd2hlbiByZXR1cm5pbmcgdGhlIGh0bWwgcGFn ZSB3aXRoIG5laXRoZXIgJwotICAgICAgICAgICAgJ2dyYXBocyBub3Igc2VydmVyIGFjdGl2aXR5 IHJlbGF0ZWQgaHRtbCBlbGVtZW50cyBmb3Igc2VydmVyICcKLSAgICAgICAgICAgICdkYXNoYm9h cmQnLAotICAgICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9wYXRoPSdk YXNoYm9hcmQvc2VydmVyX2Rhc2hib2FyZC5odG1sJywKLSAgICAgICAgICAgICAgICBpbnB1dF9w YXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIHNpZD1TRVJWRVJfSUQsCi0gICAg ICAgICAgICAgICAgICAgIGRpZD1Ob25lLAotICAgICAgICAgICAgICAgICAgICByYXRlcz1SQVRF UywKLSAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1WRVJTSU9OLAotICAgICAgICAgICAgICAg ICAgICBzZXR0aW5ncz1ESVNQTEFZX0RBU0hCT0FSRFsnbm9uZSddLAotICAgICAgICAgICAgICAg ICAgICBfPV8KLSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgIGV4cGVjdGVkX3Jl dHVybl92YWx1ZT1bXSwKLSAgICAgICAgICAgICAgICBub3RfZXhwZWN0ZWRfcmV0dXJuX3ZhbHVl PVsKLSAgICAgICAgICAgICAgICAgICAgJ1NlcnZlciBhY3Rpdml0eScsCi0gICAgICAgICAgICAg ICAgICAgICdTZXJ2ZXIgc2Vzc2lvbnMnCi0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAg KQotICAgICAgICApLAotICAgICAgICAjIERhdGFiYXNlIGRhc2hib2FyZAotICAgICAgICAoCi0g ICAgICAgICAgICAnRGFzaGJvYXJkLCB3aGVuIHJldHVybmluZyB0aGUgaHRtbCBwYWdlIHdpdGgg Z3JhcGhzIGFuZCAnCi0gICAgICAgICAgICAnZGF0YWJhc2UgYWN0aXZpdHkgcmVsYXRlZCBodG1s IGVsZW1lbnRzIGZvciBkYXRhYmFzZSBkYXNoYm9hcmQnLAotICAgICAgICAgICAgZGljdCgKLSAg ICAgICAgICAgICAgICB0ZW1wbGF0ZV9wYXRoPSdkYXNoYm9hcmQvZGF0YWJhc2VfZGFzaGJvYXJk Lmh0bWwnLAotICAgICAgICAgICAgICAgIGlucHV0X3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAg ICAgICAgICAgICAgc2lkPVNFUlZFUl9JRCwKLSAgICAgICAgICAgICAgICAgICAgZGlkPURBVEFC QVNFX0lELAotICAgICAgICAgICAgICAgICAgICByYXRlcz1SQVRFUywKLSAgICAgICAgICAgICAg ICAgICAgdmVyc2lvbj1WRVJTSU9OLAotICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncz1ESVNQ TEFZX0RBU0hCT0FSRFsnYm90aCddLAotICAgICAgICAgICAgICAgICAgICBfPV8KLSAgICAgICAg ICAgICAgICApLAotICAgICAgICAgICAgICAgIGV4cGVjdGVkX3JldHVybl92YWx1ZT1bCi0gICAg ICAgICAgICAgICAgICAgICdEYXRhYmFzZSBzZXNzaW9ucycsCi0gICAgICAgICAgICAgICAgICAg ICdEYXRhYmFzZSBhY3Rpdml0eScKLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAg IG5vdF9leHBlY3RlZF9yZXR1cm5fdmFsdWU9W10KLSAgICAgICAgICAgICkKLSAgICAgICAgKSwK LSAgICAgICAgKAotICAgICAgICAgICAgJ0Rhc2hib2FyZCwgd2hlbiByZXR1cm5pbmcgdGhlIGh0 bWwgcGFnZSB3aXRoIG9ubHkgJwotICAgICAgICAgICAgJ2dyYXBocyByZWxhdGVkIGh0bWwgZWxl bWVudHMgZm9yIGRhdGFiYXNlIGRhc2hib2FyZCcsCi0gICAgICAgICAgICBkaWN0KAotICAgICAg ICAgICAgICAgIHRlbXBsYXRlX3BhdGg9J2Rhc2hib2FyZC9kYXRhYmFzZV9kYXNoYm9hcmQuaHRt bCcsCi0gICAgICAgICAgICAgICAgaW5wdXRfcGFyYW1ldGVycz1kaWN0KAotICAgICAgICAgICAg ICAgICAgICBzaWQ9U0VSVkVSX0lELAotICAgICAgICAgICAgICAgICAgICBkaWQ9REFUQUJBU0Vf SUQsCi0gICAgICAgICAgICAgICAgICAgIHJhdGVzPVJBVEVTLAotICAgICAgICAgICAgICAgICAg ICB2ZXJzaW9uPVZFUlNJT04sCi0gICAgICAgICAgICAgICAgICAgIHNldHRpbmdzPURJU1BMQVlf REFTSEJPQVJEWydvbmx5X2dyYXBocyddLAotICAgICAgICAgICAgICAgICAgICBfPV8KLSAgICAg ICAgICAgICAgICApLAotICAgICAgICAgICAgICAgIGV4cGVjdGVkX3JldHVybl92YWx1ZT1bCi0g ICAgICAgICAgICAgICAgICAgICdEYXRhYmFzZSBzZXNzaW9ucycKLSAgICAgICAgICAgICAgICBd LAotICAgICAgICAgICAgICAgIG5vdF9leHBlY3RlZF9yZXR1cm5fdmFsdWU9WwotICAgICAgICAg ICAgICAgICAgICAnRGF0YWJhc2UgYWN0aXZpdHknCi0gICAgICAgICAgICAgICAgXQotICAgICAg ICAgICAgKQotICAgICAgICApLAotICAgICAgICAoCi0gICAgICAgICAgICAnRGFzaGJvYXJkLCB3 aGVuIHJldHVybmluZyB0aGUgaHRtbCBwYWdlIHdpdGggb25seSAnCi0gICAgICAgICAgICAnZGF0 YWJhc2UgYWN0aXZpdHkgcmVsYXRlZCBodG1sIGVsZW1lbnRzIGZvciBkYXRhYmFzZSBkYXNoYm9h cmQnLAotICAgICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9wYXRoPSdk YXNoYm9hcmQvZGF0YWJhc2VfZGFzaGJvYXJkLmh0bWwnLAotICAgICAgICAgICAgICAgIGlucHV0 X3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgc2lkPVNFUlZFUl9JRCwKLSAg ICAgICAgICAgICAgICAgICAgZGlkPURBVEFCQVNFX0lELAotICAgICAgICAgICAgICAgICAgICBy YXRlcz1SQVRFUywKLSAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1WRVJTSU9OLAotICAgICAg ICAgICAgICAgICAgICBzZXR0aW5ncz1ESVNQTEFZX0RBU0hCT0FSRFsnb25seV9zZXJ2ZXJfYWN0 aXZpdHknXSwKLSAgICAgICAgICAgICAgICAgICAgXz1fCi0gICAgICAgICAgICAgICAgKSwKLSAg ICAgICAgICAgICAgICBleHBlY3RlZF9yZXR1cm5fdmFsdWU9WwotICAgICAgICAgICAgICAgICAg ICAnRGF0YWJhc2UgYWN0aXZpdHknCi0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAg ICBub3RfZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPVsKLSAgICAgICAgICAgICAgICAgICAgJ0RhdGFi YXNlIHNlc3Npb25zJwotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICkKLSAgICAgICAg KSwKLSAgICAgICAgKAotICAgICAgICAgICAgJ0Rhc2hib2FyZCwgd2hlbiByZXR1cm5pbmcgdGhl IGh0bWwgcGFnZSB3aXRoIG5laXRoZXIgJwotICAgICAgICAgICAgJ2dyYXBocyBub3IgZGF0YWJh c2UgYWN0aXZpdHkgcmVsYXRlZCBodG1sIGVsZW1lbnRzIGZvciBkYXRhYmFzZSAnCi0gICAgICAg ICAgICAnZGFzaGJvYXJkJywKLSAgICAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgICAgdGVt cGxhdGVfcGF0aD0nZGFzaGJvYXJkL2RhdGFiYXNlX2Rhc2hib2FyZC5odG1sJywKLSAgICAgICAg ICAgICAgICBpbnB1dF9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIHNpZD1T RVJWRVJfSUQsCi0gICAgICAgICAgICAgICAgICAgIGRpZD1EQVRBQkFTRV9JRCwKLSAgICAgICAg ICAgICAgICAgICAgcmF0ZXM9UkFURVMsCi0gICAgICAgICAgICAgICAgICAgIHZlcnNpb249VkVS U0lPTiwKLSAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M9RElTUExBWV9EQVNIQk9BUkRbJ25v bmUnXSwKLSAgICAgICAgICAgICAgICAgICAgXz1fCi0gICAgICAgICAgICAgICAgKSwKLSAgICAg ICAgICAgICAgICBleHBlY3RlZF9yZXR1cm5fdmFsdWU9W10sCi0gICAgICAgICAgICAgICAgbm90 X2V4cGVjdGVkX3JldHVybl92YWx1ZT1bCi0gICAgICAgICAgICAgICAgICAgICdEYXRhYmFzZSBz ZXNzaW9ucycsCi0gICAgICAgICAgICAgICAgICAgICdEYXRhYmFzZSBhY3Rpdml0eScKLSAgICAg ICAgICAgICAgICBdCi0gICAgICAgICAgICApCi0gICAgICAgICksCi0KLSAgICBdCi0KLSAgICBk ZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYubG9hZGVyID0gVmVyc2lvbmVkVGVtcGxhdGVM b2FkZXIoRmFrZUFwcCgpKQotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgIHdpdGgg RmFrZUFwcCgpLmFwcF9jb250ZXh0KCk6Ci0gICAgICAgICAgICByZXN1bHQgPSByZW5kZXJfdGVt cGxhdGUoCi0gICAgICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoLCAqKnNlbGYuaW5wdXRf cGFyYW1ldGVycwotICAgICAgICAgICAgKQotICAgICAgICAgICAgIyBjaGVja3MgZm9yIGV4cGVj dGVkIGh0bWwgZWxlbWVudHMKLSAgICAgICAgICAgIGZvciBleHBlY3RlZF9zdHJpbmcgaW4gc2Vs Zi5leHBlY3RlZF9yZXR1cm5fdmFsdWU6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigK LSAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfc3RyaW5nLCByZXN1bHQKLSAgICAgICAgICAg ICAgICApCi0KLSAgICAgICAgICAgICMgY2hlY2tzIGZvciBub3QgZXhwZWN0ZWQgaHRtbCBlbGVt ZW50cwotICAgICAgICAgICAgZm9yIG5vdF9leHBlY3RlZF9zdHJpbmcgaW4gc2VsZi5ub3RfZXhw ZWN0ZWRfcmV0dXJuX3ZhbHVlOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oCi0g ICAgICAgICAgICAgICAgICAgIG5vdF9leHBlY3RlZF9zdHJpbmcsIHJlc3VsdAotICAgICAgICAg ICAgICAgICkKLQotCi1jbGFzcyBGYWtlQXBwKEZsYXNrKToKLSAgICBkZWYgX19pbml0X18oc2Vs Zik6Ci0gICAgICAgIHN1cGVyKEZha2VBcHAsIHNlbGYpLl9faW5pdF9fKCIiKQotICAgICAgICBz ZWxmLmppbmphX2xvYWRlciA9IEZpbGVTeXN0ZW1Mb2FkZXIoCi0gICAgICAgICAgICBvcy5wYXRo LmRpcm5hbWUob3MucGF0aC5yZWFscGF0aChfX2ZpbGVfXykpICsgIi8uLi90ZW1wbGF0ZXMiCi0g ICAgICAgICkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9rZXlib2FyZF9zaG9y dGN1dHMuanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMva2V5Ym9hcmRfc2hvcnRjdXRzLmpzCmlu ZGV4IDIzMmY2N2ZkLi42NjcxMjlkZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pz L2tleWJvYXJkX3Nob3J0Y3V0cy5qcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMva2V5Ym9h cmRfc2hvcnRjdXRzLmpzCkBAIC0xMTcsMTMgKzExNywxMCBAQCBmdW5jdGlvbiB2YWxpZGF0ZVNo b3J0Y3V0S2V5cyh1c2VyX2RlZmluZWRfc2hvcnRjdXQsIGV2ZW50KSB7CiB9CiAKIC8qIERlYnVn Z2VyOiBLZXlib2FyZCBTaG9ydGN1dHMgaGFuZGxpbmcgKi8KLWZ1bmN0aW9uIGtleWJvYXJkU2hv cnRjdXRzRGVidWdnZXIoJGVsLCBldmVudCwgdXNlcl9kZWZpbmVkX3Nob3J0Y3V0cykgeworZnVu Y3Rpb24ga2V5Ym9hcmRTaG9ydGN1dHNEZWJ1Z2dlcigkZWwsIGV2ZW50LCBwcmVmZXJlbmNlcykg ewogICBsZXQgcGFuZWxfaWQsIHBhbmVsX2NvbnRlbnQsICRpbnB1dDsKLSAgbGV0IGVkaXRfZ3Jp ZF9rZXlzID0gdXNlcl9kZWZpbmVkX3Nob3J0Y3V0cy5lZGl0X2dyaWRfa2V5cywKLSAgICBuZXh0 X3BhbmVsX2tleXMgPSB1c2VyX2RlZmluZWRfc2hvcnRjdXRzLm5leHRfcGFuZWxfa2V5cywKLSAg ICBwcmV2aW91c19wYW5lbF9rZXlzID0gdXNlcl9kZWZpbmVkX3Nob3J0Y3V0cy5wcmV2aW91c19w YW5lbF9rZXlzOwogCi0gIGlmKHRoaXMudmFsaWRhdGVTaG9ydGN1dEtleXMoZWRpdF9ncmlkX2tl eXMsIGV2ZW50KSkgeworICBpZih0aGlzLnZhbGlkYXRlU2hvcnRjdXRLZXlzKHByZWZlcmVuY2Vz LmVkaXRfZ3JpZF92YWx1ZXMsIGV2ZW50KSkgewogICAgIHRoaXMuX3N0b3BFdmVudFByb3BhZ2F0 aW9uKGV2ZW50KTsKICAgICBwYW5lbF9jb250ZW50ID0gJGVsLmZpbmQoCiAgICAgICAnZGl2Lndj UGFuZWxUYWJDb250ZW50Om5vdCgiLndjUGFuZWxUYWJDb250ZW50SGlkZGVuIiknCkBAIC0xMzMs MTAgKzEzMCwxMCBAQCBmdW5jdGlvbiBrZXlib2FyZFNob3J0Y3V0c0RlYnVnZ2VyKCRlbCwgZXZl bnQsIHVzZXJfZGVmaW5lZF9zaG9ydGN1dHMpIHsKICAgICAgIGlmKCRpbnB1dC5sZW5ndGgpCiAg ICAgICAgICRpbnB1dC50cmlnZ2VyKCdjbGljaycpOwogICAgIH0KLSAgfSBlbHNlIGlmKHRoaXMu dmFsaWRhdGVTaG9ydGN1dEtleXMobmV4dF9wYW5lbF9rZXlzLCBldmVudCkpIHsKKyAgfSBlbHNl IGlmKHRoaXMudmFsaWRhdGVTaG9ydGN1dEtleXMocHJlZmVyZW5jZXMubW92ZV9uZXh0LCBldmVu dCkpIHsKICAgICB0aGlzLl9zdG9wRXZlbnRQcm9wYWdhdGlvbihldmVudCk7CiAgICAgcGFuZWxf aWQgPSB0aGlzLmdldElubmVyUGFuZWwoJGVsLCAncmlnaHQnKTsKLSAgfSBlbHNlIGlmKHRoaXMu dmFsaWRhdGVTaG9ydGN1dEtleXMocHJldmlvdXNfcGFuZWxfa2V5cywgZXZlbnQpKSB7CisgIH0g ZWxzZSBpZih0aGlzLnZhbGlkYXRlU2hvcnRjdXRLZXlzKHByZWZlcmVuY2VzLm1vdmVfcHJldmlv dXMsIGV2ZW50KSkgewogICAgIHRoaXMuX3N0b3BFdmVudFByb3BhZ2F0aW9uKGV2ZW50KTsKICAg ICBwYW5lbF9pZCA9IHRoaXMuZ2V0SW5uZXJQYW5lbCgkZWwsICdsZWZ0Jyk7CiAgIH0KZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL19faW5pdF9fLnB5IGIvd2ViL3BnYWRt aW4vdG9vbHMvZGVidWdnZXIvX19pbml0X18ucHkKaW5kZXggZjI0OTQyZDcuLjQ0NzlmODVjIDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dlci9fX2luaXRfXy5weQorKysgYi93 ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dlci9fX2luaXRfXy5weQpAQCAtMjkzLDMzICsyOTMsNiBA QCBkZWYgdXBkYXRlX3Nlc3Npb25fZnVuY3Rpb25fdHJhbnNhY3Rpb24odHJhbnNfaWQsIGRhdGEp OgogICAgIHNlc3Npb25bJ2Z1bmN0aW9uRGF0YSddID0gZnVuY3Rpb25fZGF0YQogCiAKLWRlZiBn ZXRfc2hvcnRjdXRzX2Zvcl9hY2Nlc3NrZXkoKToKLSAgICAiIiIKLSAgICBUaGlzIGZ1bmN0aW9u IHdpbGwgZmV0Y2ggYW5kIHJldHVybiBhY2Nlc3NrZXkgc2hvcnRjdXRzIGZvciBkZWJ1Z2dlcgot ICAgIHRvb2xiYXIgYnV0dG9ucwotCi0gICAgUmV0dXJuczoKLSAgICAgICAgRGljdCBvZiBzaG9y dGN1dCBrZXlzCi0gICAgIiIiCi0gICAgIyBGZXRjaCBkZWJ1Z2dlciBwcmVmZXJlbmNlcwotICAg IGRwID0gUHJlZmVyZW5jZXMubW9kdWxlKCdkZWJ1Z2dlcicpCi0gICAgYnRuX3N0YXJ0ID0gZHAu cHJlZmVyZW5jZSgnYnRuX3N0YXJ0JykuZ2V0KCkKLSAgICBidG5fc3RvcCA9IGRwLnByZWZlcmVu Y2UoJ2J0bl9zdG9wJykuZ2V0KCkKLSAgICBidG5fc3RlcF9pbnRvID0gZHAucHJlZmVyZW5jZSgn YnRuX3N0ZXBfaW50bycpLmdldCgpCi0gICAgYnRuX3N0ZXBfb3ZlciA9IGRwLnByZWZlcmVuY2Uo J2J0bl9zdGVwX292ZXInKS5nZXQoKQotICAgIGJ0bl90b2dnbGVfYnJlYWtwb2ludCA9IGRwLnBy ZWZlcmVuY2UoJ2J0bl90b2dnbGVfYnJlYWtwb2ludCcpLmdldCgpCi0gICAgYnRuX2NsZWFyX2Jy ZWFrcG9pbnRzID0gZHAucHJlZmVyZW5jZSgnYnRuX2NsZWFyX2JyZWFrcG9pbnRzJykuZ2V0KCkK LQotICAgIHJldHVybiB7Ci0gICAgICAgICdzdGFydCc6IGJ0bl9zdGFydC5nZXQoJ2tleScpLmdl dCgnY2hhcicpLAotICAgICAgICAnc3RvcCc6IGJ0bl9zdG9wLmdldCgna2V5JykuZ2V0KCdjaGFy JyksCi0gICAgICAgICdzdGVwX2ludG8nOiBidG5fc3RlcF9pbnRvLmdldCgna2V5JykuZ2V0KCdj aGFyJyksCi0gICAgICAgICdzdGVwX292ZXInOiBidG5fc3RlcF9vdmVyLmdldCgna2V5JykuZ2V0 KCdjaGFyJyksCi0gICAgICAgICd0b2dnbGVfYnJlYWtwb2ludCc6IGJ0bl90b2dnbGVfYnJlYWtw b2ludC5nZXQoJ2tleScpLmdldCgnY2hhcicpLAotICAgICAgICAnY2xlYXJfYnJlYWtwb2ludHMn OiBidG5fY2xlYXJfYnJlYWtwb2ludHMuZ2V0KCdrZXknKS5nZXQoJ2NoYXInKQotICAgIH0KLQot CiBAYmx1ZXByaW50LnJvdXRlKAogICAgICcvaW5pdC88bm9kZV90eXBlPi88aW50OnNpZD4vPGlu dDpkaWQ+LzxpbnQ6c2NpZD4vPGludDpmaWQ+JywKICAgICBtZXRob2RzPVsnR0VUJ10sIGVuZHBv aW50PSdpbml0X2Zvcl9mdW5jdGlvbicKQEAgLTU4OSw3ICs1NjIsNiBAQCBkZWYgZGlyZWN0X25l dyh0cmFuc19pZCk6CiAgICAgICAgIGlzX2xpbnV4PWlzX2xpbnV4X3BsYXRmb3JtLAogICAgICAg ICBjbGllbnRfcGxhdGZvcm09dXNlcl9hZ2VudC5wbGF0Zm9ybSwKICAgICAgICAgc3R5bGVzaGVl dHM9W3VybF9mb3IoJ2RlYnVnZ2VyLnN0YXRpYycsIGZpbGVuYW1lPSdjc3MvZGVidWdnZXIuY3Nz JyldLAotICAgICAgICBhY2Nlc3NrZXk9Z2V0X3Nob3J0Y3V0c19mb3JfYWNjZXNza2V5KCkKICAg ICApCiAKIApAQCAtODExLDEyICs3ODMsOCBAQCBkZWYgaW5pdGlhbGl6ZV90YXJnZXQoZGVidWdf dHlwZSwgc2lkLCBkaWQsIHNjaWQsIGZ1bmNfaWQsIHRyaV9pZD1Ob25lKToKICAgICAjIGlzIGlu aXRpYWxpemVkCiAgICAgZGVsIHNlc3Npb25bJ2Z1bmNEYXRhJ10KIAotICAgIHByZWYgPSBQcmVm ZXJlbmNlcy5tb2R1bGUoJ2RlYnVnZ2VyJykKLSAgICBuZXdfYnJvd3Nlcl90YWIgPSBwcmVmLnBy ZWZlcmVuY2UoJ2RlYnVnZ2VyX25ld19icm93c2VyX3RhYicpLmdldCgpCi0KICAgICByZXR1cm4g bWFrZV9qc29uX3Jlc3BvbnNlKGRhdGE9eydzdGF0dXMnOiBzdGF0dXMsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnZGVidWdnZXJUcmFuc0lkJzogdHJhbnNfaWQsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmV3QnJvd3NlclRhYic6IG5ld19icm93 c2VyX3RhYn0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVidWdnZXJU cmFuc0lkJzogdHJhbnNfaWR9KQogCiAKIEBibHVlcHJpbnQucm91dGUoCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dlci9zdGF0aWMvanMvZGVidWdnZXIuanMgYi93ZWIvcGdh ZG1pbi90b29scy9kZWJ1Z2dlci9zdGF0aWMvanMvZGVidWdnZXIuanMKaW5kZXggZDYzMjM0M2Uu LjM5Y2FjYTcxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dlci9zdGF0aWMv anMvZGVidWdnZXIuanMKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvc3RhdGljL2pz L2RlYnVnZ2VyLmpzCkBAIC0xODQsNiArMTg0LDE4IEBAIGRlZmluZShbCiAgICAgICB9KTsKIAog ICAgICAgdGhpcy5mcmFtZS5sb2FkKHBnQnJvd3Nlci5kb2NrZXIpOworCisgICAgICBsZXQgc2Vs ZiA9IHRoaXM7CisgICAgICBsZXQgY2FjaGVJbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoZnVuY3Rp b24oKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgc2VsZi5wcmVmZXJlbmNlcyA9IHdpbmRv dy50b3AucGdBZG1pbi5Ccm93c2VyOworICAgICAgICAgIGNsZWFySW50ZXJ2YWwoY2FjaGVJbnRl cnZhbElkKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChlcnIpIHsKKyAgICAgICAgICBjbGVh ckludGVydmFsKGNhY2hlSW50ZXJ2YWxJZCk7CisgICAgICAgICAgdGhyb3cgZXJyOworICAgICAg ICB9CisgICAgICB9KTsKICAgICB9LAogICAgIC8vIEl0IHdpbGwgY2hlY2sgd2VhdGhlciB0aGUg ZnVuY3Rpb24gaXMgYWN0dWFsbHkgZGVidWdnYWJsZSBvciBub3Qgd2l0aCBwcmUtcmVxdWlyZWQg Y29uZGl0aW9uLgogICAgIGNhbl9kZWJ1ZzogZnVuY3Rpb24oaXRlbURhdGEsIGl0ZW0sIGRhdGEp IHsKQEAgLTMxMyw3ICszMjUsOCBAQCBkZWZpbmUoWwogICAgICAgdmFyIHQgPSBwZ0Jyb3dzZXIu dHJlZSwKICAgICAgICAgaSA9IGl0ZW0gfHwgdC5zZWxlY3RlZCgpLAogICAgICAgICBkID0gaSAm JiBpLmxlbmd0aCA9PSAxID8gdC5pdGVtRGF0YShpKSA6IHVuZGVmaW5lZCwKLSAgICAgICAgbm9k ZSA9IGQgJiYgcGdCcm93c2VyLk5vZGVzW2QuX3R5cGVdOworICAgICAgICBub2RlID0gZCAmJiBw Z0Jyb3dzZXIuTm9kZXNbZC5fdHlwZV0sCisgICAgICAgIHNlbGYgPSB0aGlzOwogCiAgICAgICBp ZiAoIWQpCiAgICAgICAgIHJldHVybjsKQEAgLTM4NCw3ICszOTcsNyBAQCBkZWZpbmUoWwogICAg ICAgICAgICd0cmFuc19pZCc6IHJlcy5kYXRhLmRlYnVnZ2VyVHJhbnNJZCwKICAgICAgICAgfSk7 CiAKLSAgICAgICAgaWYgKHJlcy5kYXRhLm5ld0Jyb3dzZXJUYWIpIHsKKyAgICAgICAgaWYgKHNl bGYucHJlZmVyZW5jZXMuZGVidWdnZXJfbmV3X2Jyb3dzZXJfdGFiKSB7CiAgICAgICAgICAgd2lu ZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgcGdC cm93c2VyLkV2ZW50cy5vbmNlKApAQCAtNDM1LDcgKzQ0OCw4IEBAIGRlZmluZShbCiAgICAgICB2 YXIgdCA9IHBnQnJvd3Nlci50cmVlLAogICAgICAgICBpID0gaXRlbSB8fCB0LnNlbGVjdGVkKCks CiAgICAgICAgIGQgPSBpICYmIGkubGVuZ3RoID09IDEgPyB0Lml0ZW1EYXRhKGkpIDogdW5kZWZp bmVkLAotICAgICAgICBub2RlID0gZCAmJiBwZ0Jyb3dzZXIuTm9kZXNbZC5fdHlwZV07CisgICAg ICAgIG5vZGUgPSBkICYmIHBnQnJvd3Nlci5Ob2Rlc1tkLl90eXBlXSwKKyAgICAgICAgc2VsZiA9 IHRoaXM7CiAKICAgICAgIGlmICghZCkKICAgICAgICAgcmV0dXJuOwpAQCAtNDk5LDcgKzUxMyw3 IEBAIGRlZmluZShbCiAgICAgICAgICAgICAgICd0cmFuc19pZCc6IHJlcy5kYXRhLmRlYnVnZ2Vy VHJhbnNJZCwKICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICBpZiAocmVzLmRhdGEubmV3 QnJvd3NlclRhYikgeworICAgICAgICAgICAgaWYgKHNlbGYucHJlZmVyZW5jZXMuZGVidWdnZXJf bmV3X2Jyb3dzZXJfdGFiKSB7CiAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFu aycpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgcGdCcm93c2VyLkV2ZW50 cy5vbmNlKApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvc3RhdGljL2pz L2RpcmVjdC5qcyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3N0YXRpYy9qcy9kaXJlY3Qu anMKaW5kZXggYmMxYWZmMTEuLjM1YTY5NzBlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29s cy9kZWJ1Z2dlci9zdGF0aWMvanMvZGlyZWN0LmpzCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2Rl YnVnZ2VyL3N0YXRpYy9qcy9kaXJlY3QuanMKQEAgLTEzOTMsNyArMTM5Myw3IEBAIGRlZmluZShb CiAgICAgY29udHJvbGxlciBhYm91dCB0aGUgY2xpY2sgYW5kIGNvbnRyb2xsZXIgd2lsbCB0YWtl IHRoZSBhY3Rpb24gZm9yIHRoZSBzcGVjaWZpZWQgYnV0dG9uIGNsaWNrLgogICAqLwogICB2YXIg RGVidWdnZXJUb29sYmFyVmlldyA9IEJhY2tib25lLlZpZXcuZXh0ZW5kKHsKLSAgICBlbDogJy5k dWJ1Z2dlcl9tYWluX2NvbnRhaW5lcicsCisgICAgZWw6ICcuZGVidWdnZXJfbWFpbl9jb250YWlu ZXInLAogICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKCkgewogICAgICAgY29udHJvbGxlci5vbign cGdEZWJ1Z2dlcjpidXR0b246c3RhdGU6c3RvcCcsIHRoaXMuZW5hYmxlX3N0b3AsIHRoaXMpOwog ICAgICAgY29udHJvbGxlci5vbigncGdEZWJ1Z2dlcjpidXR0b246c3RhdGU6c3RlcF9vdmVyJywg dGhpcy5lbmFibGVfc3RlcF9vdmVyLCB0aGlzKTsKQEAgLTE0OTYsNDQgKzE0OTYsMTEgQEAgZGVm aW5lKFsKICAgICAgIGNvbnRyb2xsZXIuU3RlcF9pbnRvKHBnVG9vbHMuRGlyZWN0RGVidWcudHJh bnNfaWQpOwogICAgIH0sCiAgICAga2V5QWN0aW9uOiBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAg IHZhciAkZWwgPSB0aGlzLiRlbCwgcGFuZWxfaWQsIGFjdHVhbF9wYW5lbDsKLQotICAgICAgLy8g SWYgYWxyZWFkeSBmZXRjaGVkIGVhcmxpZXIgdGhlbiBkb24ndCBkbyBpdCBhZ2FpbgotICAgICAg aWYoXy5zaXplKHBnVG9vbHMuRGlyZWN0RGVidWcuZGVidWdnZXJfa2V5Ym9hcmRfc2hvcnRjdXRz KSA9PSAwKSB7Ci0gICAgICAgIC8vIEZldGNoIGtleWJvYXJkIHNob3J0Y3V0IGtleXMKLSAgICAg ICAgdmFyIGVkaXRfZ3JpZF9zaG9ydGN1dF9wZXJmLCBuZXh0X3BhbmVsX3BlcmYsIHByZXZpb3Vz X3BhbmVsX3BlcmY7Ci0gICAgICAgIGVkaXRfZ3JpZF9zaG9ydGN1dF9wZXJmID0gd2luZG93LnRv cC5wZ0FkbWluLkJyb3dzZXIuZ2V0X3ByZWZlcmVuY2UoCi0gICAgICAgICAgJ2RlYnVnZ2VyJywg J2VkaXRfZ3JpZF92YWx1ZXMnCi0gICAgICAgICk7Ci0gICAgICAgIG5leHRfcGFuZWxfcGVyZiA9 IHdpbmRvdy50b3AucGdBZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNlKAotICAgICAgICAgICdk ZWJ1Z2dlcicsICdtb3ZlX25leHQnCi0gICAgICAgICk7Ci0gICAgICAgIHByZXZpb3VzX3BhbmVs X3BlcmYgPSB3aW5kb3cudG9wLnBnQWRtaW4uQnJvd3Nlci5nZXRfcHJlZmVyZW5jZSgKLSAgICAg ICAgICAnZGVidWdnZXInLCAnbW92ZV9wcmV2aW91cycKLSAgICAgICAgKTsKLQotICAgICAgICAv LyBJZiBkZWJ1Z2dlciBvcGVuZWQgaW4gbmV3IFRhYiB0aGVuIHdpbmRvdy50b3Agd29uJ3QgYmUg YXZhaWxhYmxlCi0gICAgICAgIGlmKCFlZGl0X2dyaWRfc2hvcnRjdXRfcGVyZiB8fCAhbmV4dF9w YW5lbF9wZXJmIHx8ICFwcmV2aW91c19wYW5lbF9wZXJmKSB7Ci0gICAgICAgICAgZWRpdF9ncmlk X3Nob3J0Y3V0X3BlcmYgPSB3aW5kb3cub3BlbmVyLnBnQWRtaW4uQnJvd3Nlci5nZXRfcHJlZmVy ZW5jZSgKLSAgICAgICAgICAgICdkZWJ1Z2dlcicsICdlZGl0X2dyaWRfdmFsdWVzJwotICAgICAg ICAgICk7Ci0gICAgICAgICAgbmV4dF9wYW5lbF9wZXJmID0gd2luZG93Lm9wZW5lci5wZ0FkbWlu LkJyb3dzZXIuZ2V0X3ByZWZlcmVuY2UoCi0gICAgICAgICAgICAnZGVidWdnZXInLCAnbW92ZV9u ZXh0JwotICAgICAgICAgICk7Ci0gICAgICAgICAgcHJldmlvdXNfcGFuZWxfcGVyZiA9IHdpbmRv dy5vcGVuZXIucGdBZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNlKAotICAgICAgICAgICAgJ2Rl YnVnZ2VyJywgJ21vdmVfcHJldmlvdXMnCi0gICAgICAgICAgKTsKLSAgICAgICAgfQotCi0gICAg ICAgIHBnVG9vbHMuRGlyZWN0RGVidWcuZGVidWdnZXJfa2V5Ym9hcmRfc2hvcnRjdXRzID0gewot ICAgICAgICAgICdlZGl0X2dyaWRfa2V5cyc6IGVkaXRfZ3JpZF9zaG9ydGN1dF9wZXJmLnZhbHVl LAotICAgICAgICAgICduZXh0X3BhbmVsX2tleXMnOiBuZXh0X3BhbmVsX3BlcmYudmFsdWUsCi0g ICAgICAgICAgJ3ByZXZpb3VzX3BhbmVsX2tleXMnOiBwcmV2aW91c19wYW5lbF9wZXJmLnZhbHVl LAotICAgICAgICB9OwotICAgICAgfQorICAgICAgdmFyICRlbCA9IHRoaXMuJGVsLCBwYW5lbF9p ZCwgYWN0dWFsX3BhbmVsLAorICAgICAgICBzZWxmID0gdGhpczsKIAogICAgICAgcGFuZWxfaWQg PSBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnREZWJ1Z2dlcigKLSAgICAgICAgJGVsLCBl dmVudCwgcGdUb29scy5EaXJlY3REZWJ1Zy5kZWJ1Z2dlcl9rZXlib2FyZF9zaG9ydGN1dHMKKyAg ICAgICAgJGVsLCBldmVudCwgc2VsZi5wcmVmZXJlbmNlcwogICAgICAgKTsKIAogICAgICAgLy8g UGFuZWwgbmF2aWdhdGlvbgpAQCAtMTU3Miw3ICsxNTM5LDEwIEBAIGRlZmluZShbCiAgICAgICB0 aGlzLmRlYnVnX3Jlc3RhcnRlZCA9IGZhbHNlOwogICAgICAgdGhpcy5pc191c2VyX2Fib3J0ZWRf ZGVidWdnaW5nID0gZmFsc2U7CiAgICAgICB0aGlzLmlzX3BvbGxpbmdfcmVxdWlyZWQgPSB0cnVl OyAvLyBGbGFnIHRvIHN0b3AgdW53YW50ZWQgYWpheCBjYWxscwotICAgICAgdGhpcy5kZWJ1Z2dl cl9rZXlib2FyZF9zaG9ydGN1dHMgPSB7fTsKKworICAgICAgbGV0IGJyb3dzZXIgPSB3aW5kb3cu b3BlbmVyID8KKyAgICAgICAgICAgICAgd2luZG93Lm9wZW5lci5wZ0FkbWluLkJyb3dzZXIgOiB3 aW5kb3cudG9wLnBnQWRtaW4uQnJvd3NlcjsKKyAgICAgIHRoaXMucHJlZmVyZW5jZXMgPSBicm93 c2VyLmdldF9wcmVmZXJlbmNlc19mb3JfbW9kdWxlKCdzcWxlZGl0b3InKTsKIAogICAgICAgdGhp cy5kb2NrZXIgPSBuZXcgd2NEb2NrZXIoCiAgICAgICAgICcjY29udGFpbmVyJywgewpAQCAtMTg1 Niw2ICsxODI2LDM1IEBAIGRlZmluZShbCiAgICAgICAgIGlmKHNlbGYuZG9ja2VyLiRjb250YWlu ZXIpewogICAgICAgICAgIHNlbGYuZG9ja2VyLiRjb250YWluZXIucGFyZW50KCkuZm9jdXMoKTsK ICAgICAgICAgfQorCisgICAgICAgIGxldCBjYWNoZUludGVydmFsSWQgPSBzZXRJbnRlcnZhbChm dW5jdGlvbigpIHsKKyAgICAgICAgICB0cnkgeworICAgICAgICAgICAgbGV0IGJyb3dzZXIgPSB3 aW5kb3cub3BlbmVyID8gd2luZG93Lm9wZW5lci5wZ0FkbWluLkJyb3dzZXIgOiB3aW5kb3cudG9w LnBnQWRtaW4uQnJvd3NlcjsKKyAgICAgICAgICAgIGlmKGJyb3dzZXIucHJlZmVyZW5jZV92ZXJz aW9uKCkgPiAwKSB7CisgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoY2FjaGVJbnRlcnZhbElk KTsKKyAgICAgICAgICAgICAgc2VsZi5yZWZsZWN0UHJlZmVyZW5jZXMoKTsKKworICAgICAgICAg ICAgICAvKiBJZiBkZWJ1Z2dlciBpcyBpbiBhIG5ldyB0YWIsIGV2ZW50IGZpcmVkIGlzIG5vdCBh dmFpbGFibGUKKyAgICAgICAgICAgICAgICogaW5zdGVhZCwgYSBwb2xsZXIgaXMgc2V0IHVwIHdo byB3aWxsIGNoZWNrCisgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICBpZihzZWxmLnBy ZWZlcmVuY2VzLmRlYnVnZ2VyX25ld19icm93c2VyX3RhYikgeworICAgICAgICAgICAgICAgIGxl dCBwb2xsSW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpPT57CisgICAgICAgICAgICAgICAgICBp Zih3aW5kb3cub3BlbmVyICYmIHdpbmRvdy5vcGVuZXIucGdBZG1pbikgeworICAgICAgICAgICAg ICAgICAgICBzZWxmLnJlZmxlY3RQcmVmZXJlbmNlcygpOworICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2 YWwocG9sbEludGVydmFsSWQpOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg IH0sIDEwMDApOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgfQor ICAgICAgICAgIGNhdGNoKGVycikgeworICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChjYWNoZUlu dGVydmFsSWQpOworICAgICAgICAgICAgdGhyb3cgZXJyOworICAgICAgICAgIH0KKyAgICAgICAg fSwwKTsKKwogICAgICAgfTsKIAogICAgICAgc2VsZi5kb2NrZXIuc3RhcnRMb2FkaW5nKGdldHRl eHQoJ0xvYWRpbmcuLi4nKSk7CkBAIC0xODYzLDggKzE4NjIsNTAgQEAgZGVmaW5lKFsKIAogICAg ICAgLy8gQ3JlYXRlIHRoZSB0b29sYmFyIHZpZXcgZm9yIGRlYnVnZ2luZyB0aGUgZnVuY3Rpb24K ICAgICAgIHRoaXMudG9vbGJhclZpZXcgPSBuZXcgRGVidWdnZXJUb29sYmFyVmlldygpOwotICAg IH0sCiAKKyAgICAgIC8qIENhY2hlIG1heSB0YWtlIHRpbWUgdG8gbG9hZCBmb3IgdGhlIGZpcnN0 IHRpbWUKKyAgICAgICAqIEtlZXAgdHJ5aW5nIHRpbGwgYXZhaWxhYmxlCisgICAgICAgKi8KKwor CisgICAgICAvKiBSZWdpc3RlciBmb3IgcHJlZmVyZW5jZSBjaGFuZ2VkIGV2ZW50IGJyb2FkY2Fz dGVkIGluIHBhcmVudAorICAgICAgICogdG8gcmVsb2FkIHRoZSBzaG9yY3V0cy4KKyAgICAgICAq LworICAgICAgcGdCcm93c2VyLm9uUHJlZmVyZW5jZXNDaGFuZ2UoJ2RlYnVnZ2VyJywgZnVuY3Rp b24oKSB7CisgICAgICAgIHNlbGYucmVmbGVjdFByZWZlcmVuY2VzKCk7CisgICAgICB9KTsKKyAg ICB9LAorICAgIHJlZmxlY3RQcmVmZXJlbmNlczogZnVuY3Rpb24oKSB7CisgICAgICBsZXQgc2Vs ZiA9IHRoaXMsCisgICAgICAgIGJyb3dzZXIgPSB3aW5kb3cub3BlbmVyID8gd2luZG93Lm9wZW5l ci5wZ0FkbWluLkJyb3dzZXIgOiB3aW5kb3cudG9wLnBnQWRtaW4uQnJvd3NlcjsKKyAgICAgIHNl bGYucHJlZmVyZW5jZXMgPSBicm93c2VyLmdldF9wcmVmZXJlbmNlc19mb3JfbW9kdWxlKCdkZWJ1 Z2dlcicpOworICAgICAgc2VsZi50b29sYmFyVmlldy5wcmVmZXJlbmNlcyA9IHNlbGYucHJlZmVy ZW5jZXM7CisKKyAgICAgIC8qIFVwZGF0ZSB0aGUgc2hvcnRjdXRzIG9mIHRoZSBidXR0b25zICov CisgICAgICBzZWxmLnRvb2xiYXJWaWV3LiRlbC5maW5kKCcjYnRuLXN0ZXAtaW50bycpCisgICAg ICAgIC5hdHRyKCd0aXRsZScsIGtleWJvYXJkU2hvcnRjdXRzLnNob3J0Y3V0X2FjY2Vzc2tleV90 aXRsZSgnU3RlcCBpbnRvJyxzZWxmLnByZWZlcmVuY2VzLmJ0bl9zdGVwX2ludG8pKQorICAgICAg ICAuYXR0cignYWNjZXNza2V5Jywga2V5Ym9hcmRTaG9ydGN1dHMuc2hvcnRjdXRfa2V5KHNlbGYu cHJlZmVyZW5jZXMuYnRuX3N0ZXBfaW50bykpOworCisgICAgICBzZWxmLnRvb2xiYXJWaWV3LiRl bC5maW5kKCcjYnRuLXN0ZXAtb3ZlcicpCisgICAgICAgIC5hdHRyKCd0aXRsZScsIGtleWJvYXJk U2hvcnRjdXRzLnNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZSgnU3RlcCBvdmVyJyxzZWxmLnByZWZl cmVuY2VzLmJ0bl9zdGVwX292ZXIpKQorICAgICAgICAuYXR0cignYWNjZXNza2V5Jywga2V5Ym9h cmRTaG9ydGN1dHMuc2hvcnRjdXRfa2V5KHNlbGYucHJlZmVyZW5jZXMuYnRuX3N0ZXBfb3Zlcikp OworCisgICAgICBzZWxmLnRvb2xiYXJWaWV3LiRlbC5maW5kKCcjYnRuLWNvbnRpbnVlJykKKyAg ICAgICAgLmF0dHIoJ3RpdGxlJywga2V5Ym9hcmRTaG9ydGN1dHMuc2hvcnRjdXRfYWNjZXNza2V5 X3RpdGxlKCdDb250aW51ZS9TdGFydCcsc2VsZi5wcmVmZXJlbmNlcy5idG5fc3RhcnQpKQorICAg ICAgICAuYXR0cignYWNjZXNza2V5Jywga2V5Ym9hcmRTaG9ydGN1dHMuc2hvcnRjdXRfa2V5KHNl bGYucHJlZmVyZW5jZXMuYnRuX3N0YXJ0KSk7CisKKyAgICAgIHNlbGYudG9vbGJhclZpZXcuJGVs LmZpbmQoJyNidG4tdG9nZ2xlLWJyZWFrcG9pbnQnKQorICAgICAgICAuYXR0cigndGl0bGUnLCBr ZXlib2FyZFNob3J0Y3V0cy5zaG9ydGN1dF9hY2Nlc3NrZXlfdGl0bGUoJ1RvZ2dsZSBicmVha3Bv aW50JyxzZWxmLnByZWZlcmVuY2VzLmJ0bl90b2dnbGVfYnJlYWtwb2ludCkpCisgICAgICAgIC5h dHRyKCdhY2Nlc3NrZXknLCBrZXlib2FyZFNob3J0Y3V0cy5zaG9ydGN1dF9rZXkoc2VsZi5wcmVm ZXJlbmNlcy5idG5fdG9nZ2xlX2JyZWFrcG9pbnQpKTsKKworICAgICAgc2VsZi50b29sYmFyVmll dy4kZWwuZmluZCgnI2J0bi1jbGVhci1icmVha3BvaW50JykKKyAgICAgICAgLmF0dHIoJ3RpdGxl Jywga2V5Ym9hcmRTaG9ydGN1dHMuc2hvcnRjdXRfYWNjZXNza2V5X3RpdGxlKCdDbGVhciBhbGwg YnJlYWtwb2ludHMnLHNlbGYucHJlZmVyZW5jZXMuYnRuX2NsZWFyX2JyZWFrcG9pbnRzKSkKKyAg ICAgICAgLmF0dHIoJ2FjY2Vzc2tleScsIGtleWJvYXJkU2hvcnRjdXRzLnNob3J0Y3V0X2tleShz ZWxmLnByZWZlcmVuY2VzLmJ0bl9jbGVhcl9icmVha3BvaW50cykpOworCisgICAgICBzZWxmLnRv b2xiYXJWaWV3LiRlbC5maW5kKCcjYnRuLXN0b3AnKQorICAgICAgICAuYXR0cigndGl0bGUnLCBr ZXlib2FyZFNob3J0Y3V0cy5zaG9ydGN1dF9hY2Nlc3NrZXlfdGl0bGUoJ1N0b3AnLHNlbGYucHJl ZmVyZW5jZXMuYnRuX3N0b3ApKQorICAgICAgICAuYXR0cignYWNjZXNza2V5Jywga2V5Ym9hcmRT aG9ydGN1dHMuc2hvcnRjdXRfa2V5KHNlbGYucHJlZmVyZW5jZXMuYnRuX3N0b3ApKTsKKyAgICB9 LAogICAgIC8vIFJlZ2lzdGVyIHRoZSBwYW5lbCB3aXRoIG5ldyBkZWJ1Z2dlciBkb2NrZXIgaW5z dGFuY2UuCiAgICAgcmVnaXN0ZXJQYW5lbDogZnVuY3Rpb24obmFtZSwgdGl0bGUsIHdpZHRoLCBo ZWlnaHQsIG9uSW5pdCkgewogICAgICAgdmFyIHNlbGYgPSB0aGlzOwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvdGVtcGxhdGVzL2RlYnVnZ2VyL2RpcmVjdC5odG1sIGIv d2ViL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvdGVtcGxhdGVzL2RlYnVnZ2VyL2RpcmVjdC5odG1s CmluZGV4IDU4ZDk3YTA2Li4wODQxMjY5OCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMv ZGVidWdnZXIvdGVtcGxhdGVzL2RlYnVnZ2VyL2RpcmVjdC5odG1sCisrKyBiL3dlYi9wZ2FkbWlu L3Rvb2xzL2RlYnVnZ2VyL3RlbXBsYXRlcy9kZWJ1Z2dlci9kaXJlY3QuaHRtbApAQCAtMzUsNDcg KzM1LDQ3IEBAIHRyeSB7CiAgICAgLmRlYnVnZ2VyLWNvbnRhaW5lciAud2NMb2FkaW5nSWNvbi5m YS1wdWxzZXstd2Via2l0LWFuaW1hdGlvbjogbm9uZTt9CiA8L3N0eWxlPgogeyUgZW5kaWYgJX0K LTxkaXYgY2xhc3M9ImR1YnVnZ2VyX21haW5fY29udGFpbmVyIiB0YWJpbmRleD0iMCI+Cis8ZGl2 IGNsYXNzPSJkZWJ1Z2dlcl9tYWluX2NvbnRhaW5lciIgdGFiaW5kZXg9IjAiPgogICAgIDxuYXYg Y2xhc3M9Im5hdmJhci1pbnZlcnNlIG5hdmJhci1maXhlZC10b3AiPgogICAgICAgICA8ZGl2IGlk PSJidG4tdG9vbGJhciIgY2xhc3M9ImJ0bi10b29sYmFyIHBnLXByb3AtYnRuLWdyb3VwIGJnLWdy YXktMiBib3JkZXItZ3JheS0zIiByb2xlPSJ0b29sYmFyIiBhcmlhLWxhYmVsPSIiPgogICAgICAg ICAgICAgPGRpdiBjbGFzcz0iYnRuLWdyb3VwIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iIj4K LSAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVm YXVsdCBidG4tc3RlcC1pbnRvIgotICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9Int7IF8o J1N0ZXAgaW50bycpIH19e3sgXygnIChhY2Nlc3NrZXkrezB9KScuZm9ybWF0KGFjY2Vzc2tleS5z dGVwX2ludG8pKSB9fSIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0ie3sgYWNj ZXNza2V5LnN0ZXBfaW50byB9fSIKKyAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRv biIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBidG4tc3RlcC1pbnRvIiBpZD0iYnRuLXN0ZXAtaW50 byIKKyAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSIiCisgICAgICAgICAgICAgICAgICAg ICAgICBhY2Nlc3NrZXk9IiIKICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSIwIiBh dXRvZm9jdXM9ImF1dG9mb2N1cyI+CiAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBm YS1pbmRlbnQiPjwvaT4KICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KLSAgICAgICAgICAgICAg ICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBidG4tc3RlcC1v dmVyIgotICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9Int7IF8oJ1N0ZXAgb3ZlcicpIH19 e3sgXygnIChhY2Nlc3NrZXkrezB9KScuZm9ybWF0KGFjY2Vzc2tleS5zdGVwX292ZXIpKSB9fSIK LSAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0ie3sgYWNjZXNza2V5LnN0ZXBfb3Zl ciB9fSIKKyAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBi dG4tZGVmYXVsdCBidG4tc3RlcC1vdmVyIiBpZD0iYnRuLXN0ZXAtb3ZlciIKKyAgICAgICAgICAg ICAgICAgICAgICAgIHRpdGxlPSIiCisgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NrZXk9 IiIKICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSIwIj4KICAgICAgICAgICAgICAg ICAgICAgPGkgY2xhc3M9ImZhIGZhLW91dGRlbnQiPjwvaT4KICAgICAgICAgICAgICAgICA8L2J1 dHRvbj4KLSAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBi dG4tZGVmYXVsdCBidG4tY29udGludWUiCi0gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0i e3sgXygnQ29udGludWUvU3RhcnQnKSB9fXt7IF8oJyAoYWNjZXNza2V5K3swfSknLmZvcm1hdChh Y2Nlc3NrZXkuc3RhcnQpKSB9fSIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0i e3sgYWNjZXNza2V5LnN0YXJ0IH19IgorICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0 dG9uIiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IGJ0bi1jb250aW51ZSIgaWQ9ImJ0bi1jb250aW51 ZSIKKyAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSIiCisgICAgICAgICAgICAgICAgICAg ICAgICBhY2Nlc3NrZXk9IiIKICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSIwIj4K ICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXBsYXktY2lyY2xlIj48L2k+CiAg ICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAg IDxkaXYgY2xhc3M9ImJ0bi1ncm91cCIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9IiI+Ci0gICAg ICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQg YnRuLXRvZ2dsZS1icmVha3BvaW50IgotICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9Int7 IF8oJ1RvZ2dsZSBicmVha3BvaW50JykgfX17eyBfKCcgKGFjY2Vzc2tleSt7MH0pJy5mb3JtYXQo YWNjZXNza2V5LnRvZ2dsZV9icmVha3BvaW50KSkgfX0iCi0gICAgICAgICAgICAgICAgICAgICAg ICBhY2Nlc3NrZXk9Int7IGFjY2Vzc2tleS50b2dnbGVfYnJlYWtwb2ludCB9fSIKKyAgICAgICAg ICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBidG4t dG9nZ2xlLWJyZWFrcG9pbnQiIGlkPSJidG4tdG9nZ2xlLWJyZWFrcG9pbnQiCisgICAgICAgICAg ICAgICAgICAgICAgICB0aXRsZT0iIgorICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5 PSIiCiAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD0iMCI+CiAgICAgICAgICAgICAg ICAgICAgIDxpIGNsYXNzPSJmYSBmYS1jaXJjbGUiPjwvaT4KICAgICAgICAgICAgICAgICA8L2J1 dHRvbj4KLSAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBi dG4tZGVmYXVsdCBidG4tY2xlYXItYnJlYWtwb2ludCIKLSAgICAgICAgICAgICAgICAgICAgICAg IHRpdGxlPSJ7eyBfKCdDbGVhciBhbGwgYnJlYWtwb2ludHMnKSB9fXt7IF8oJyAoYWNjZXNza2V5 K3swfSknLmZvcm1hdChhY2Nlc3NrZXkuY2xlYXJfYnJlYWtwb2ludHMpKSB9fSIKLSAgICAgICAg ICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0ie3sgYWNjZXNza2V5LmNsZWFyX2JyZWFrcG9pbnRz IH19IgorICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0 bi1kZWZhdWx0IGJ0bi1jbGVhci1icmVha3BvaW50IiBpZD0iYnRuLWNsZWFyLWJyZWFrcG9pbnQi CisgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0iIgorICAgICAgICAgICAgICAgICAgICAg ICAgYWNjZXNza2V5PSIiCiAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD0iMCI+CiAg ICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1iYW4iPjwvaT4KICAgICAgICAgICAg ICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgPGRpdiBjbGFz cz0iYnRuLWdyb3VwIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iIj4KLSAgICAgICAgICAgICAg ICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBidG4tc3RvcCIK LSAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0ie3sgYWNjZXNza2V5LnN0b3AgfX0i Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0ie3sgXygnU3RvcCcpIH19e3sgXygnIChh Y2Nlc3NrZXkrezB9KScuZm9ybWF0KGFjY2Vzc2tleS5zdG9wKSkgfX0iCisgICAgICAgICAgICAg ICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgYnRuLXN0b3Ai IGlkPSJidG4tc3RvcCIKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0iIgorICAg ICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IiIKICAgICAgICAgICAgICAgICAgICAgICAgIHRh YmluZGV4PSIwIj4KICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXN0b3AtY2ly Y2xlIj48L2k+CiAgICAgICAgICAgICAgICAgPC9idXR0b24+Cg== --00000000000062b1a30571be80ac--