Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1eqgrJ-0006U6-GY for pgadmin-hackers@arkaria.postgresql.org; Tue, 27 Feb 2018 15:08:01 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1eqgrI-000279-BA for pgadmin-hackers@arkaria.postgresql.org; Tue, 27 Feb 2018 15:08:00 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1eqgrI-00026z-2a for pgadmin-hackers@lists.postgresql.org; Tue, 27 Feb 2018 15:08:00 +0000 Received: from mail-wr0-x233.google.com ([2a00:1450:400c:c0c::233]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1eqgrA-0001wX-Nh for pgadmin-hackers@postgresql.org; Tue, 27 Feb 2018 15:07:59 +0000 Received: by mail-wr0-x233.google.com with SMTP id k9so25232145wre.9 for ; Tue, 27 Feb 2018 07:07:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pgadmin-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=wtVOj/76qHiD6D9MthkBACsV3d4oZaJR+g2msgxwo9E=; b=Pgl5OgkKHdsRzGqyhKw4rTjShr+88lWLX+s9IUEQ8WzlgVi+XkwcehIadG8J9WYo9a K6X7Htsqo2awFUoPCAhJJg95GulzpjEJ1zFu1g0aAIN6XHJMT+DlAgzDqSot9w0r41gB I0O1FtTcxQ+M+m+3T6iEvaGk40DGwEwz8GRKDFIsQLEfAVVI4uutzimM2Qt2gRGtzXog VZE808zS1WkyXb1Qv5hlOmSj7/pUnyY8kzGaHy1c6RUvQ7ZCcHLHYP+BJ2JJM9NF8x0Y CNHaiyNOYMPO4+HYHYIW4YmjQ9/IJHeq4BZZqh14N+PWkdKh/LPIE2/AZTeAcH5VOcOl 0Ebg== 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=wtVOj/76qHiD6D9MthkBACsV3d4oZaJR+g2msgxwo9E=; b=AR+3z1OTk1pcUzOjm9vHVhdc10VQcLCP2yDz+N5vgrrM9DlqEWyi8rHU+M0fkIO5CT eybe5Qja5WJVx7RjD9POp5Af/7zFgbzysqUjtwvpW1/oj5vi3p/c8Ii7XkxjVESj52Ly VMhTL2ALu+gUm4S4GsTvsKl5wi2zPM8wM7rE0cp0eSrKrgQRq+fEOLeWQxEF7w3D1+OI eatSzsT34APzCRNpgTgrFBxku9NsgRs7zYFpl5iDHo001gwTMc/gixw0H8tkzOpvEzUv SRiPR76Ot/2Nvj9E2yxrpOqn21OVzQML2ByvRPrROGtXgmvSAXYvz8FND4QLuJ/HxIYx 0Ffg== X-Gm-Message-State: APf1xPA3ifWJ0o540F7AA9omIx53+zcBwGJEEZ6878cn0GF1lC3Q/3Lu Kr0Y+1OGItaW96WBPHwSSf4LoY8TMioCZcM0iGhSLA== X-Google-Smtp-Source: AH8x2243K40/Wn55EVW3kTKjdaOqS99kaDowODSzUSM17GVtAA2gd2BECseSDF5YWv3FWlQpXTCAOTgzF1ukY3JKMKg= X-Received: by 10.223.178.206 with SMTP id g72mr12297082wrd.135.1519744070795; Tue, 27 Feb 2018 07:07:50 -0800 (PST) MIME-Version: 1.0 Received: by 10.28.109.7 with HTTP; Tue, 27 Feb 2018 07:07:49 -0800 (PST) In-Reply-To: References: From: Dave Page Date: Tue, 27 Feb 2018 15:07:49 +0000 Message-ID: Subject: Re: [pgAdmin4][RM#3073] Allow user to schedule without End date from UI To: Murtuza Zabuawala Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="f403045cf6b87d9cd2056632fd57" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --f403045cf6b87d9cd2056632fd57 Content-Type: multipart/alternative; boundary="f403045cf6b87d9ccf056632fd55" --f403045cf6b87d9ccf056632fd55 Content-Type: text/plain; charset="UTF-8" Hi On Tue, Feb 27, 2018 at 12:03 PM, Murtuza Zabuawala < murtuza.zabuawala@enterprisedb.com> wrote: > I'm not able to re-produce the issue, Could you hard refresh and try again? > I still see it. > > If possible could you please provide exact steps? > Attached is a dump of my test pgagent schema. 1) Load the schema dump into the maintenance database 2) Connect pgAdmin 3) Browse to pgAgent Jobs 4) Right-click Properties, and select the Schedules tab 5) Open the subnode for sched1 > > -- > Regards, > Murtuza Zabuawala > EnterpriseDB: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > > > On Tue, Feb 27, 2018 at 5:30 PM, Dave Page wrote: > >> Sorry - here it is. >> >> On Tue, Feb 27, 2018 at 11:59 AM, Murtuza Zabuawala < >> murtuza.zabuawala@enterprisedb.com> wrote: >> >>> Hi Dave, >>> >>> Could you please send screenshot? >>> >>> -- >>> Regards, >>> Murtuza Zabuawala >>> EnterpriseDB: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >>> >>> On Tue, Feb 27, 2018 at 5:24 PM, Dave Page wrote: >>> >>>> Hi >>>> >>>> Still not quite right - see the attached screenshot which is the result >>>> of simply viewing the properties of an existing job. Note that the start >>>> time is shown in the grid but not the subnode control. >>>> >>>> Thanks. >>>> >>>> On Tue, Feb 27, 2018 at 8:26 AM, Murtuza Zabuawala < >>>> murtuza.zabuawala@enterprisedb.com> wrote: >>>> >>>>> Hi Dave, >>>>> >>>>> As validation related patch was committed with RM#3148 [ Sorry about >>>>> that I forgot to checkout :) ] >>>>> PFA patch to fix the issues you mentioned, I have also removed extra >>>>> error message from sub node collection control and made it optional via >>>>> flag. >>>>> >>>>> >>>>> >>>>> -- >>>>> Regards, >>>>> Murtuza Zabuawala >>>>> EnterpriseDB: http://www.enterprisedb.com >>>>> The Enterprise PostgreSQL Company >>>>> >>>>> >>>>> On Mon, Feb 26, 2018 at 10:14 PM, Dave Page wrote: >>>>> >>>>>> Hi >>>>>> >>>>>> On Mon, Feb 26, 2018 at 2:46 PM, Murtuza Zabuawala < >>>>>> murtuza.zabuawala@enterprisedb.com> wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> PFA patch to fix the issue where user was not able to create pgAgent >>>>>>> job from UI without entering End date in schedule section. >>>>>>> >>>>>> >>>>>> Whilst this does resolve the validation issue, there are still a >>>>>> couple of other related problems, as can be seen in the attached >>>>>> screenshots: >>>>>> >>>>>> - The Start date/time in the subnode control doesn't seem to be >>>>>> properly synchronised with the value in the grid. >>>>>> >>>>>> - If you leave the End date/time blank (but maybe click into it >>>>>> first), the grid will show "Invalid date". >>>>>> >>>>>> It's possible there are other oddities as well - please check >>>>>> carefully for anything else. >>>>>> >>>>>> Thanks. >>>>>> >>>>>> -- >>>>>> Dave Page >>>>>> Blog: http://pgsnake.blogspot.com >>>>>> Twitter: @pgsnake >>>>>> >>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>> The Enterprise PostgreSQL Company >>>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> Dave Page >>>> Blog: http://pgsnake.blogspot.com >>>> Twitter: @pgsnake >>>> >>>> EnterpriseDB UK: http://www.enterprisedb.com >>>> The Enterprise PostgreSQL Company >>>> >>> >>> >> >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> > > -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company --f403045cf6b87d9ccf056632fd55 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi

On Tue, Feb 27, 2018 at 12:03 PM, Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com> wrote:
I'm not able to re-produce the issue, Could you har= d refresh and try again?

I = still see it.
=C2=A0

If possible= could you please provide exact steps?

Attached is a dump of my test pgagent schema.

<= div>1) Load the schema dump into the maintenance database
2) Conn= ect pgAdmin
3) Browse to pgAgent Jobs
4) Right-click Pr= operties, and select the Schedules tab
5) Open the subnode for sc= hed1
=C2=A0

=
--
Regards,
Murtuza Zabuawala
Enterpri= seDB:=C2=A0http://www.enterprisedb.com
The Enterprise Postgr= eSQL Company

<= /div>

On Tue, Feb 27= , 2018 at 5:30 PM, Dave Page <dpage@pgadmin.org> wrote:
<= blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px= #ccc solid;padding-left:1ex">
Sorry - here it is.

On Tue, Feb 27, 2018= at 11:59 AM, Murtuza Zabuawala <murtuza.zabuawala@enterp= risedb.com> wrote:
H= i Dave,
Could y= ou please send screenshot?

<= div dir=3D"ltr">
--
Regards,
Murtuza Zabuaw= ala
EnterpriseDB:=C2=A0http://www.enterprisedb.com
The En= terprise PostgreSQL Company
=

On Tue, Feb 27, 2018 at 5:24 PM, Dave Page <d= page@pgadmin.org> wrote:
Hi

Still not quite right - see the attach= ed screenshot which is the result of simply viewing the properties of an ex= isting job. Note that the start time is shown in the grid but not the subno= de control.

Thanks.

On Tue, Feb 27, 2018 at 8:26 AM, Mur= tuza Zabuawala <murtuza.zabuawala@enterprisedb.com> wrote:
Hi Dave,

As val= idation related patch was committed with RM#3148 [ Sorry about that I forgo= t to checkout :)=C2=A0]
PFA patch to fix the issues you mentioned, I have also = removed extra error message from sub node collection control and made it op= tional via flag.



=

On Mon, Feb 26, 2018 at 10:14 PM, Dave Page = <dpage@pgadmin.org> wrote:
Hi

On Mon, Feb 26, 2018 at 2:46 PM, Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com> wrote:
Hi,

PFA patch to fix the issue where user was not able to create = pgAgent job from UI without entering End date in schedule section.

=C2=A0Whilst this does resolve the vali= dation issue, there are still a couple of other related problems, as can be= seen in the attached screenshots:

- The Start dat= e/time in the subnode control doesn't seem to be properly synchronised = with the value in the grid.

- If you leave the End= date/time blank (but maybe click into it first), the grid will show "= Invalid date".

It'= s possible there are other oddities as well - please check carefully for an= ything else.

Thanks.

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

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



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

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




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

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




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

EnterpriseDB UK: http://www.enterprisedb.com<= br>The Enterprise PostgreSQL Company
--f403045cf6b87d9ccf056632fd55-- --f403045cf6b87d9cd2056632fd57 Content-Type: application/octet-stream; name="pgagent.sql" Content-Disposition: attachment; filename="pgagent.sql" Content-Transfer-Encoding: base64 X-Attachment-Id: f_je5sdjpc0 LS0KLS0gUG9zdGdyZVNRTCBkYXRhYmFzZSBkdW1wCi0tCgotLSBEdW1wZWQgZnJvbSBkYXRhYmFz ZSB2ZXJzaW9uIDkuNC4xMAotLSBEdW1wZWQgYnkgcGdfZHVtcCB2ZXJzaW9uIDEwLjAKClNFVCBz dGF0ZW1lbnRfdGltZW91dCA9IDA7ClNFVCBsb2NrX3RpbWVvdXQgPSAwOwpTRVQgaWRsZV9pbl90 cmFuc2FjdGlvbl9zZXNzaW9uX3RpbWVvdXQgPSAwOwpTRVQgY2xpZW50X2VuY29kaW5nID0gJ1VU RjgnOwpTRVQgc3RhbmRhcmRfY29uZm9ybWluZ19zdHJpbmdzID0gb247ClNFVCBjaGVja19mdW5j dGlvbl9ib2RpZXMgPSBmYWxzZTsKU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSB3YXJuaW5nOwpT RVQgcm93X3NlY3VyaXR5ID0gb2ZmOwoKLS0KLS0gTmFtZTogcGdhZ2VudDsgVHlwZTogU0NIRU1B OyBTY2hlbWE6IC07IE93bmVyOiBwb3N0Z3JlcwotLQoKQ1JFQVRFIFNDSEVNQSBwZ2FnZW50OwoK CkFMVEVSIFNDSEVNQSBwZ2FnZW50IE9XTkVSIFRPIHBvc3RncmVzOwoKLS0KLS0gTmFtZTogU0NI RU1BIHBnYWdlbnQ7IFR5cGU6IENPTU1FTlQ7IFNjaGVtYTogLTsgT3duZXI6IHBvc3RncmVzCi0t CgpDT01NRU5UIE9OIFNDSEVNQSBwZ2FnZW50IElTICdwZ0FnZW50IHN5c3RlbSB0YWJsZXMgLXh4 JzsKCgpTRVQgc2VhcmNoX3BhdGggPSBwZ2FnZW50LCBwZ19jYXRhbG9nOwoKLS0KLS0gTmFtZTog cGdhX2V4Y2VwdGlvbl90cmlnZ2VyKCk7IFR5cGU6IEZVTkNUSU9OOyBTY2hlbWE6IHBnYWdlbnQ7 IE93bmVyOiBwb3N0Z3JlcwotLQoKQ1JFQVRFIEZVTkNUSU9OIHBnYV9leGNlcHRpb25fdHJpZ2dl cigpIFJFVFVSTlMgdHJpZ2dlcgogICAgTEFOR1VBR0UgcGxwZ3NxbAogICAgQVMgJCQKREVDTEFS RQoKICAgIHZfam9iaWQgaW50NCA6PSAwOwoKQkVHSU4KCiAgICAgSUYgVEdfT1AgPSAnREVMRVRF JyBUSEVOCgogICAgICAgIFNFTEVDVCBJTlRPIHZfam9iaWQganNjam9iaWQgRlJPTSBwZ2FnZW50 LnBnYV9zY2hlZHVsZSBXSEVSRSBqc2NpZCA9IE9MRC5qZXhzY2lkOwoKICAgICAgICAtLSB1cGRh dGUgcGdhX2pvYiBmcm9tIHJlbWFpbmluZyBzY2hlZHVsZXMKICAgICAgICAtLSB0aGUgYWN0dWFs IGNhbGN1bGF0aW9uIG9mIGpvYm5leHRydW4gd2lsbCBiZSBwZXJmb3JtZWQgaW4gdGhlIHRyaWdn ZXIKICAgICAgICBVUERBVEUgcGdhZ2VudC5wZ2Ffam9iCiAgICAgICAgICAgU0VUIGpvYm5leHRy dW4gPSBOVUxMCiAgICAgICAgIFdIRVJFIGpvYmVuYWJsZWQgQU5EIGpvYmlkID0gdl9qb2JpZDsK ICAgICAgICBSRVRVUk4gT0xEOwogICAgRUxTRQoKICAgICAgICBTRUxFQ1QgSU5UTyB2X2pvYmlk IGpzY2pvYmlkIEZST00gcGdhZ2VudC5wZ2Ffc2NoZWR1bGUgV0hFUkUganNjaWQgPSBORVcuamV4 c2NpZDsKCiAgICAgICAgVVBEQVRFIHBnYWdlbnQucGdhX2pvYgogICAgICAgICAgIFNFVCBqb2Ju ZXh0cnVuID0gTlVMTAogICAgICAgICBXSEVSRSBqb2JlbmFibGVkIEFORCBqb2JpZCA9IHZfam9i aWQ7CiAgICAgICAgUkVUVVJOIE5FVzsKICAgIEVORCBJRjsKRU5EOwokJDsKCgpBTFRFUiBGVU5D VElPTiBwZ2FnZW50LnBnYV9leGNlcHRpb25fdHJpZ2dlcigpIE9XTkVSIFRPIHBvc3RncmVzOwoK LS0KLS0gTmFtZTogRlVOQ1RJT04gcGdhX2V4Y2VwdGlvbl90cmlnZ2VyKCk7IFR5cGU6IENPTU1F TlQ7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3RncmVzCi0tCgpDT01NRU5UIE9OIEZVTkNU SU9OIHBnYV9leGNlcHRpb25fdHJpZ2dlcigpIElTICdVcGRhdGUgdGhlIGpvYicncyBuZXh0IHJ1 biB0aW1lIHdoZW5ldmVyIGFuIGV4Y2VwdGlvbiBjaGFuZ2VzJzsKCgotLQotLSBOYW1lOiBwZ2Ff aXNfbGVhcF95ZWFyKHNtYWxsaW50KTsgVHlwZTogRlVOQ1RJT047IFNjaGVtYTogcGdhZ2VudDsg T3duZXI6IHBvc3RncmVzCi0tCgpDUkVBVEUgRlVOQ1RJT04gcGdhX2lzX2xlYXBfeWVhcihzbWFs bGludCkgUkVUVVJOUyBib29sZWFuCiAgICBMQU5HVUFHRSBwbHBnc3FsIElNTVVUQUJMRQogICAg QVMgJF8kCkJFR0lOCiAgICBJRiAkMSAlIDQgIT0gMCBUSEVOCiAgICAgICAgUkVUVVJOIEZBTFNF OwogICAgRU5EIElGOwoKICAgIElGICQxICUgMTAwICE9IDAgVEhFTgogICAgICAgIFJFVFVSTiBU UlVFOwogICAgRU5EIElGOwoKICAgIFJFVFVSTiAkMSAlIDQwMCA9IDA7CkVORDsKJF8kOwoKCkFM VEVSIEZVTkNUSU9OIHBnYWdlbnQucGdhX2lzX2xlYXBfeWVhcihzbWFsbGludCkgT1dORVIgVE8g cG9zdGdyZXM7CgotLQotLSBOYW1lOiBGVU5DVElPTiBwZ2FfaXNfbGVhcF95ZWFyKHNtYWxsaW50 KTsgVHlwZTogQ09NTUVOVDsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkNP TU1FTlQgT04gRlVOQ1RJT04gcGdhX2lzX2xlYXBfeWVhcihzbWFsbGludCkgSVMgJ1JldHVybnMg VFJVRSBpZiAkMSBpcyBhIGxlYXAgeWVhcic7CgoKLS0KLS0gTmFtZTogcGdhX2pvYl90cmlnZ2Vy KCk7IFR5cGU6IEZVTkNUSU9OOyBTY2hlbWE6IHBnYWdlbnQ7IE93bmVyOiBwb3N0Z3JlcwotLQoK Q1JFQVRFIEZVTkNUSU9OIHBnYV9qb2JfdHJpZ2dlcigpIFJFVFVSTlMgdHJpZ2dlcgogICAgTEFO R1VBR0UgcGxwZ3NxbAogICAgQVMgJCQKQkVHSU4KICAgIElGIE5FVy5qb2JlbmFibGVkIFRIRU4K ICAgICAgICBJRiBORVcuam9ibmV4dHJ1biBJUyBOVUxMIFRIRU4KICAgICAgICAgICAgIFNFTEVD VCBJTlRPIE5FVy5qb2JuZXh0cnVuCiAgICAgICAgICAgICAgICAgICAgTUlOKHBnYWdlbnQucGdh X25leHRfc2NoZWR1bGUoanNjaWQsIGpzY3N0YXJ0LCBqc2NlbmQsIGpzY21pbnV0ZXMsIGpzY2hv dXJzLCBqc2N3ZWVrZGF5cywganNjbW9udGhkYXlzLCBqc2Ntb250aHMpKQogICAgICAgICAgICAg ICBGUk9NIHBnYWdlbnQucGdhX3NjaGVkdWxlCiAgICAgICAgICAgICAgV0hFUkUganNjZW5hYmxl ZCBBTkQganNjam9iaWQ9T0xELmpvYmlkOwogICAgICAgIEVORCBJRjsKICAgIEVMU0UKICAgICAg ICBORVcuam9ibmV4dHJ1biA6PSBOVUxMOwogICAgRU5EIElGOwogICAgUkVUVVJOIE5FVzsKRU5E OwokJDsKCgpBTFRFUiBGVU5DVElPTiBwZ2FnZW50LnBnYV9qb2JfdHJpZ2dlcigpIE9XTkVSIFRP IHBvc3RncmVzOwoKLS0KLS0gTmFtZTogRlVOQ1RJT04gcGdhX2pvYl90cmlnZ2VyKCk7IFR5cGU6 IENPTU1FTlQ7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3RncmVzCi0tCgpDT01NRU5UIE9O IEZVTkNUSU9OIHBnYV9qb2JfdHJpZ2dlcigpIElTICdVcGRhdGUgdGhlIGpvYicncyBuZXh0IHJ1 biB0aW1lLic7CgoKLS0KLS0gTmFtZTogcGdhX25leHRfc2NoZWR1bGUoaW50ZWdlciwgdGltZXN0 YW1wIHdpdGggdGltZSB6b25lLCB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUsIGJvb2xlYW5bXSwg Ym9vbGVhbltdLCBib29sZWFuW10sIGJvb2xlYW5bXSwgYm9vbGVhbltdKTsgVHlwZTogRlVOQ1RJ T047IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3RncmVzCi0tCgpDUkVBVEUgRlVOQ1RJT04g cGdhX25leHRfc2NoZWR1bGUoaW50ZWdlciwgdGltZXN0YW1wIHdpdGggdGltZSB6b25lLCB0aW1l c3RhbXAgd2l0aCB0aW1lIHpvbmUsIGJvb2xlYW5bXSwgYm9vbGVhbltdLCBib29sZWFuW10sIGJv b2xlYW5bXSwgYm9vbGVhbltdKSBSRVRVUk5TIHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZQogICAg TEFOR1VBR0UgcGxwZ3NxbAogICAgQVMgJF8kCkRFQ0xBUkUKICAgIGpzY2lkICAgICAgICAgICBB TElBUyBGT1IgJDE7CiAgICBqc2NzdGFydCAgICAgICAgQUxJQVMgRk9SICQyOwogICAganNjZW5k ICAgICAgICAgIEFMSUFTIEZPUiAkMzsKICAgIGpzY21pbnV0ZXMgICAgICBBTElBUyBGT1IgJDQ7 CiAgICBqc2Nob3VycyAgICAgICAgQUxJQVMgRk9SICQ1OwogICAganNjd2Vla2RheXMgICAgIEFM SUFTIEZPUiAkNjsKICAgIGpzY21vbnRoZGF5cyAgICBBTElBUyBGT1IgJDc7CiAgICBqc2Ntb250 aHMgICAgICAgQUxJQVMgRk9SICQ4OwoKICAgIG5leHRydW4gICAgICAgICB0aW1lc3RhbXAgOj0g JzE5NzAtMDEtMDEgMDA6MDA6MDAtMDAnOwogICAgcnVuYWZ0ZXIgICAgICAgIHRpbWVzdGFtcCA6 PSAnMTk3MC0wMS0wMSAwMDowMDowMC0wMCc7CgogICAgYmluZ28gICAgICAgICAgICBib29sIDo9 IEZBTFNFOwogICAgZ290aXQgICAgICAgICAgICBib29sIDo9IEZBTFNFOwogICAgZm91bmR2YWwg ICAgICAgIGJvb2wgOj0gRkFMU0U7CiAgICBkYXl0d2VhayAgICAgICAgYm9vbCA6PSBGQUxTRTsK ICAgIG1pbnV0ZXR3ZWFrICAgICAgICBib29sIDo9IEZBTFNFOwoKICAgIGkgICAgICAgICAgICAg ICAgaW50MiA6PSAwOwogICAgZCAgICAgICAgICAgICAgICBpbnQyIDo9IDA7CgogICAgbmV4dG1p bnV0ZSAgICAgICAgaW50MiA6PSAwOwogICAgbmV4dGhvdXIgICAgICAgIGludDIgOj0gMDsKICAg IG5leHRkYXkgICAgICAgICAgICBpbnQyIDo9IDA7CiAgICBuZXh0bW9udGggICAgICAgaW50MiA6 PSAwOwogICAgbmV4dHllYXIgICAgICAgIGludDIgOj0gMDsKCgpCRUdJTgogICAgLS0gTm8gdmFs aWQgc3RhcnQgZGF0ZSBoYXMgYmVlbiBzcGVjaWZpZWQKICAgIElGIGpzY3N0YXJ0IElTIE5VTEwg VEhFTiBSRVRVUk4gTlVMTDsgRU5EIElGOwoKICAgIC0tIFRoZSBzY2hlZHVsZSBpcyBwYXN0IGl0 cyBlbmQgZGF0ZQogICAgSUYganNjZW5kIElTIE5PVCBOVUxMIEFORCBqc2NlbmQgPCBub3coKSBU SEVOIFJFVFVSTiBOVUxMOyBFTkQgSUY7CgogICAgLS0gR2V0IHRoZSB0aW1lIHRvIGZpbmQgdGhl IG5leHQgcnVuIGFmdGVyLiBJdCB3aWxsIGp1c3QgYmUgdGhlIGxhdGVyIG9mCiAgICAtLSBub3co KSArIDFtIGFuZCB0aGUgc3RhcnQgZGF0ZSBmb3IgdGhlIHRpbWUgYmVpbmcsIGhvd2V2ZXIsIHdl IG1pZ2h0IHdhbnQgdG8KICAgIC0tIGRvIG1vcmUgY29tcGxleCB0aGluZ3MgdXNpbmcgdGhpcyB2 YWx1ZSBpbiB0aGUgZnV0dXJlLgogICAgSUYgZGF0ZV90cnVuYygnTUlOVVRFJywganNjc3RhcnQp ID4gZGF0ZV90cnVuYygnTUlOVVRFJywgKG5vdygpICsgJzEgTWludXRlJzo6aW50ZXJ2YWwpKSBU SEVOCiAgICAgICAgcnVuYWZ0ZXIgOj0gZGF0ZV90cnVuYygnTUlOVVRFJywganNjc3RhcnQpOwog ICAgRUxTRQogICAgICAgIHJ1bmFmdGVyIDo9IGRhdGVfdHJ1bmMoJ01JTlVURScsIChub3coKSAr ICcxIE1pbnV0ZSc6OmludGVydmFsKSk7CiAgICBFTkQgSUY7CgogICAgLS0KICAgIC0tIEVudGVy IGEgbG9vcCwgZ2VuZXJhdGluZyBuZXh0IHJ1biB0aW1lc3RhbXBzIHVudGlsIHdlIGZpbmQgb25l CiAgICAtLSB0aGF0IGZhbGxzIG9uIHRoZSByZXF1aXJlZCB3ZWVrZGF5LCBhbmQgaXMgbm90IG1h dGNoZWQgYnkgYW4gZXhjZXB0aW9uCiAgICAtLQoKICAgIFdISUxFIGJpbmdvID0gRkFMU0UgTE9P UAoKICAgICAgICAtLQogICAgICAgIC0tIEdldCB0aGUgbmV4dCBydW4geWVhcgogICAgICAgIC0t CiAgICAgICAgbmV4dHllYXIgOj0gZGF0ZV9wYXJ0KCdZRUFSJywgcnVuYWZ0ZXIpOwoKICAgICAg ICAtLQogICAgICAgIC0tIEdldCB0aGUgbmV4dCBydW4gbW9udGgKICAgICAgICAtLQogICAgICAg IG5leHRtb250aCA6PSBkYXRlX3BhcnQoJ01PTlRIJywgcnVuYWZ0ZXIpOwogICAgICAgIGdvdGl0 IDo9IEZBTFNFOwogICAgICAgIEZPUiBpIElOIChuZXh0bW9udGgpIC4uIDEyIExPT1AKICAgICAg ICAgICAgSUYganNjbW9udGhzW2ldID0gVFJVRSBUSEVOCiAgICAgICAgICAgICAgICBuZXh0bW9u dGggOj0gaTsKICAgICAgICAgICAgICAgIGdvdGl0IDo9IFRSVUU7CiAgICAgICAgICAgICAgICBm b3VuZHZhbCA6PSBUUlVFOwogICAgICAgICAgICAgICAgRVhJVDsKICAgICAgICAgICAgRU5EIElG OwogICAgICAgIEVORCBMT09QOwogICAgICAgIElGIGdvdGl0ID0gRkFMU0UgVEhFTgogICAgICAg ICAgICBGT1IgaSBJTiAxIC4uIChuZXh0bW9udGggLSAxKSBMT09QCiAgICAgICAgICAgICAgICBJ RiBqc2Ntb250aHNbaV0gPSBUUlVFIFRIRU4KICAgICAgICAgICAgICAgICAgICBuZXh0bW9udGgg Oj0gaTsKCiAgICAgICAgICAgICAgICAgICAgLS0gV3JhcCBpbnRvIG5leHQgeWVhcgogICAgICAg ICAgICAgICAgICAgIG5leHR5ZWFyIDo9IG5leHR5ZWFyICsgMTsKICAgICAgICAgICAgICAgICAg ICBnb3RpdCA6PSBUUlVFOwogICAgICAgICAgICAgICAgICAgIGZvdW5kdmFsIDo9IFRSVUU7CiAg ICAgICAgICAgICAgICAgICAgRVhJVDsKICAgICAgICAgICAgICAgIEVORCBJRjsKICAgICAgICAg ICBFTkQgTE9PUDsKICAgICAgICBFTkQgSUY7CgogICAgICAgIC0tCiAgICAgICAgLS0gR2V0IHRo ZSBuZXh0IHJ1biBkYXkKICAgICAgICAtLQogICAgICAgIC0tIElmIHRoZSB5ZWFyLCBvciBtb250 aCBoYXZlIGluY3JlbWVudGVkLCBnZXQgdGhlIGxvd2VzdCBkYXksCiAgICAgICAgLS0gb3RoZXJ3 aXNlIGxvb2sgZm9yIHRoZSBuZXh0IGRheSBtYXRjaGluZyBvciBhZnRlciB0b2RheS4KICAgICAg ICBJRiAobmV4dHllYXIgPiBkYXRlX3BhcnQoJ1lFQVInLCBydW5hZnRlcikgT1IgbmV4dG1vbnRo ID4gZGF0ZV9wYXJ0KCdNT05USCcsIHJ1bmFmdGVyKSkgVEhFTgogICAgICAgICAgICBuZXh0ZGF5 IDo9IDE7CiAgICAgICAgICAgIEZPUiBpIElOIDEgLi4gMzIgTE9PUAogICAgICAgICAgICAgICAg SUYganNjbW9udGhkYXlzW2ldID0gVFJVRSBUSEVOCiAgICAgICAgICAgICAgICAgICAgbmV4dGRh eSA6PSBpOwogICAgICAgICAgICAgICAgICAgIGZvdW5kdmFsIDo9IFRSVUU7CiAgICAgICAgICAg ICAgICAgICAgRVhJVDsKICAgICAgICAgICAgICAgIEVORCBJRjsKICAgICAgICAgICAgRU5EIExP T1A7CiAgICAgICAgRUxTRQogICAgICAgICAgICBuZXh0ZGF5IDo9IGRhdGVfcGFydCgnREFZJywg cnVuYWZ0ZXIpOwogICAgICAgICAgICBnb3RpdCA6PSBGQUxTRTsKICAgICAgICAgICAgRk9SIGkg SU4gbmV4dGRheSAuLiAzMiBMT09QCiAgICAgICAgICAgICAgICBJRiBqc2Ntb250aGRheXNbaV0g PSBUUlVFIFRIRU4KICAgICAgICAgICAgICAgICAgICBuZXh0ZGF5IDo9IGk7CiAgICAgICAgICAg ICAgICAgICAgZ290aXQgOj0gVFJVRTsKICAgICAgICAgICAgICAgICAgICBmb3VuZHZhbCA6PSBU UlVFOwogICAgICAgICAgICAgICAgICAgIEVYSVQ7CiAgICAgICAgICAgICAgICBFTkQgSUY7CiAg ICAgICAgICAgIEVORCBMT09QOwogICAgICAgICAgICBJRiBnb3RpdCA9IEZBTFNFIFRIRU4KICAg ICAgICAgICAgICAgIEZPUiBpIElOIDEgLi4gKG5leHRkYXkgLSAxKSBMT09QCiAgICAgICAgICAg ICAgICAgICAgSUYganNjbW9udGhkYXlzW2ldID0gVFJVRSBUSEVOCiAgICAgICAgICAgICAgICAg ICAgICAgIG5leHRkYXkgOj0gaTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC0tIFdyYXAgaW50 byBuZXh0IG1vbnRoCiAgICAgICAgICAgICAgICAgICAgICAgIElGIG5leHRtb250aCA9IDEyIFRI RU4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHR5ZWFyIDo9IG5leHR5ZWFyICsgMTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRtb250aCA6PSAxOwogICAgICAgICAgICAg ICAgICAgICAgICBFTFNFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0bW9udGggOj0g bmV4dG1vbnRoICsgMTsKICAgICAgICAgICAgICAgICAgICAgICAgRU5EIElGOwogICAgICAgICAg ICAgICAgICAgICAgICBnb3RpdCA6PSBUUlVFOwogICAgICAgICAgICAgICAgICAgICAgICBmb3Vu ZHZhbCA6PSBUUlVFOwogICAgICAgICAgICAgICAgICAgICAgICBFWElUOwogICAgICAgICAgICAg ICAgICAgIEVORCBJRjsKICAgICAgICAgICAgICAgIEVORCBMT09QOwogICAgICAgICAgICBFTkQg SUY7CiAgICAgICAgRU5EIElGOwoKICAgICAgICAtLSBXYXMgdGhlIGxhc3QgZGF5IGZsYWcgc2Vs ZWN0ZWQ/CiAgICAgICAgSUYgbmV4dGRheSA9IDMyIFRIRU4KICAgICAgICAgICAgSUYgbmV4dG1v bnRoID0gMSBUSEVOCiAgICAgICAgICAgICAgICBuZXh0ZGF5IDo9IDMxOwogICAgICAgICAgICBF TFNJRiBuZXh0bW9udGggPSAyIFRIRU4KICAgICAgICAgICAgICAgIElGIHBnYWdlbnQucGdhX2lz X2xlYXBfeWVhcihuZXh0eWVhcikgPSBUUlVFIFRIRU4KICAgICAgICAgICAgICAgICAgICBuZXh0 ZGF5IDo9IDI5OwogICAgICAgICAgICAgICAgRUxTRQogICAgICAgICAgICAgICAgICAgIG5leHRk YXkgOj0gMjg7CiAgICAgICAgICAgICAgICBFTkQgSUY7CiAgICAgICAgICAgIEVMU0lGIG5leHRt b250aCA9IDMgVEhFTgogICAgICAgICAgICAgICAgbmV4dGRheSA6PSAzMTsKICAgICAgICAgICAg RUxTSUYgbmV4dG1vbnRoID0gNCBUSEVOCiAgICAgICAgICAgICAgICBuZXh0ZGF5IDo9IDMwOwog ICAgICAgICAgICBFTFNJRiBuZXh0bW9udGggPSA1IFRIRU4KICAgICAgICAgICAgICAgIG5leHRk YXkgOj0gMzE7CiAgICAgICAgICAgIEVMU0lGIG5leHRtb250aCA9IDYgVEhFTgogICAgICAgICAg ICAgICAgbmV4dGRheSA6PSAzMDsKICAgICAgICAgICAgRUxTSUYgbmV4dG1vbnRoID0gNyBUSEVO CiAgICAgICAgICAgICAgICBuZXh0ZGF5IDo9IDMxOwogICAgICAgICAgICBFTFNJRiBuZXh0bW9u dGggPSA4IFRIRU4KICAgICAgICAgICAgICAgIG5leHRkYXkgOj0gMzE7CiAgICAgICAgICAgIEVM U0lGIG5leHRtb250aCA9IDkgVEhFTgogICAgICAgICAgICAgICAgbmV4dGRheSA6PSAzMDsKICAg ICAgICAgICAgRUxTSUYgbmV4dG1vbnRoID0gMTAgVEhFTgogICAgICAgICAgICAgICAgbmV4dGRh eSA6PSAzMTsKICAgICAgICAgICAgRUxTSUYgbmV4dG1vbnRoID0gMTEgVEhFTgogICAgICAgICAg ICAgICAgbmV4dGRheSA6PSAzMDsKICAgICAgICAgICAgRUxTSUYgbmV4dG1vbnRoID0gMTIgVEhF TgogICAgICAgICAgICAgICAgbmV4dGRheSA6PSAzMTsKICAgICAgICAgICAgRU5EIElGOwogICAg ICAgIEVORCBJRjsKCiAgICAgICAgLS0KICAgICAgICAtLSBHZXQgdGhlIG5leHQgcnVuIGhvdXIK ICAgICAgICAtLQogICAgICAgIC0tIElmIHRoZSB5ZWFyLCBtb250aCBvciBkYXkgaGF2ZSBpbmNy ZW1lbnRlZCwgZ2V0IHRoZSBsb3dlc3QgaG91ciwKICAgICAgICAtLSBvdGhlcndpc2UgbG9vayBm b3IgdGhlIG5leHQgaG91ciBtYXRjaGluZyBvciBhZnRlciB0aGUgY3VycmVudCBvbmUuCiAgICAg ICAgSUYgKG5leHR5ZWFyID4gZGF0ZV9wYXJ0KCdZRUFSJywgcnVuYWZ0ZXIpIE9SIG5leHRtb250 aCA+IGRhdGVfcGFydCgnTU9OVEgnLCBydW5hZnRlcikgT1IgbmV4dGRheSA+IGRhdGVfcGFydCgn REFZJywgcnVuYWZ0ZXIpIE9SIGRheXR3ZWFrID0gVFJVRSkgVEhFTgogICAgICAgICAgICBuZXh0 aG91ciA6PSAwOwogICAgICAgICAgICBGT1IgaSBJTiAxIC4uIDI0IExPT1AKICAgICAgICAgICAg ICAgIElGIGpzY2hvdXJzW2ldID0gVFJVRSBUSEVOCiAgICAgICAgICAgICAgICAgICAgbmV4dGhv dXIgOj0gaSAtIDE7CiAgICAgICAgICAgICAgICAgICAgZm91bmR2YWwgOj0gVFJVRTsKICAgICAg ICAgICAgICAgICAgICBFWElUOwogICAgICAgICAgICAgICAgRU5EIElGOwogICAgICAgICAgICBF TkQgTE9PUDsKICAgICAgICBFTFNFCiAgICAgICAgICAgIG5leHRob3VyIDo9IGRhdGVfcGFydCgn SE9VUicsIHJ1bmFmdGVyKTsKICAgICAgICAgICAgZ290aXQgOj0gRkFMU0U7CiAgICAgICAgICAg IEZPUiBpIElOIChuZXh0aG91ciArIDEpIC4uIDI0IExPT1AKICAgICAgICAgICAgICAgIElGIGpz Y2hvdXJzW2ldID0gVFJVRSBUSEVOCiAgICAgICAgICAgICAgICAgICAgbmV4dGhvdXIgOj0gaSAt IDE7CiAgICAgICAgICAgICAgICAgICAgZ290aXQgOj0gVFJVRTsKICAgICAgICAgICAgICAgICAg ICBmb3VuZHZhbCA6PSBUUlVFOwogICAgICAgICAgICAgICAgICAgIEVYSVQ7CiAgICAgICAgICAg ICAgICBFTkQgSUY7CiAgICAgICAgICAgIEVORCBMT09QOwogICAgICAgICAgICBJRiBnb3RpdCA9 IEZBTFNFIFRIRU4KICAgICAgICAgICAgICAgIEZPUiBpIElOIDEgLi4gbmV4dGhvdXIgTE9PUAog ICAgICAgICAgICAgICAgICAgIElGIGpzY2hvdXJzW2ldID0gVFJVRSBUSEVOCiAgICAgICAgICAg ICAgICAgICAgICAgIG5leHRob3VyIDo9IGkgLSAxOwoKICAgICAgICAgICAgICAgICAgICAgICAg LS0gV3JhcCBpbnRvIG5leHQgbW9udGgKICAgICAgICAgICAgICAgICAgICAgICAgSUYgKG5leHRt b250aCA9IDEgT1IgbmV4dG1vbnRoID0gMyBPUiBuZXh0bW9udGggPSA1IE9SIG5leHRtb250aCA9 IDcgT1IgbmV4dG1vbnRoID0gOCBPUiBuZXh0bW9udGggPSAxMCBPUiBuZXh0bW9udGggPSAxMikg VEhFTgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZCA9IDMxOwogICAgICAgICAgICAgICAg ICAgICAgICBFTFNJRiAobmV4dG1vbnRoID0gNCBPUiBuZXh0bW9udGggPSA2IE9SIG5leHRtb250 aCA9IDkgT1IgbmV4dG1vbnRoID0gMTEpIFRIRU4KICAgICAgICAgICAgICAgICAgICAgICAgICAg IGQgPSAzMDsKICAgICAgICAgICAgICAgICAgICAgICAgRUxTRQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSUYgcGdhZ2VudC5wZ2FfaXNfbGVhcF95ZWFyKG5leHR5ZWFyKSA9IFRSVUUgVEhF TgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQgOj0gMjk7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFTFNFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZCA6PSAy ODsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVORCBJRjsKICAgICAgICAgICAgICAgICAg ICAgICAgRU5EIElGOwoKICAgICAgICAgICAgICAgICAgICAgICAgSUYgbmV4dGRheSA9IGQgVEhF TgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dGRheSA6PSAxOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgSUYgbmV4dG1vbnRoID0gMTIgVEhFTgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG5leHR5ZWFyIDo9IG5leHR5ZWFyICsgMTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBuZXh0bW9udGggOj0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVMU0UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0bW9udGggOj0gbmV4dG1v bnRoICsgMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVORCBJRjsKICAgICAgICAgICAg ICAgICAgICAgICAgRUxTRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dGRheSA6PSBu ZXh0ZGF5ICsgMTsKICAgICAgICAgICAgICAgICAgICAgICAgRU5EIElGOwoKICAgICAgICAgICAg ICAgICAgICAgICAgZ290aXQgOj0gVFJVRTsKICAgICAgICAgICAgICAgICAgICAgICAgZm91bmR2 YWwgOj0gVFJVRTsKICAgICAgICAgICAgICAgICAgICAgICAgRVhJVDsKICAgICAgICAgICAgICAg ICAgICBFTkQgSUY7CiAgICAgICAgICAgICAgICBFTkQgTE9PUDsKICAgICAgICAgICAgRU5EIElG OwogICAgICAgIEVORCBJRjsKCiAgICAgICAgLS0KICAgICAgICAtLSBHZXQgdGhlIG5leHQgcnVu IG1pbnV0ZQogICAgICAgIC0tCiAgICAgICAgLS0gSWYgdGhlIHllYXIsIG1vbnRoIGRheSBvciBo b3VyIGhhdmUgaW5jcmVtZW50ZWQsIGdldCB0aGUgbG93ZXN0IG1pbnV0ZSwKICAgICAgICAtLSBv dGhlcndpc2UgbG9vayBmb3IgdGhlIG5leHQgbWludXRlIG1hdGNoaW5nIG9yIGFmdGVyIHRoZSBj dXJyZW50IG9uZS4KICAgICAgICBJRiAobmV4dHllYXIgPiBkYXRlX3BhcnQoJ1lFQVInLCBydW5h ZnRlcikgT1IgbmV4dG1vbnRoID4gZGF0ZV9wYXJ0KCdNT05USCcsIHJ1bmFmdGVyKSBPUiBuZXh0 ZGF5ID4gZGF0ZV9wYXJ0KCdEQVknLCBydW5hZnRlcikgT1IgbmV4dGhvdXIgPiBkYXRlX3BhcnQo J0hPVVInLCBydW5hZnRlcikgT1IgZGF5dHdlYWsgPSBUUlVFKSBUSEVOCiAgICAgICAgICAgIG5l eHRtaW51dGUgOj0gMDsKICAgICAgICAgICAgSUYgbWludXRldHdlYWsgPSBUUlVFIFRIRU4KICAg ICAgICBkIDo9IDE7CiAgICAgICAgICAgIEVMU0UKICAgICAgICBkIDo9IGRhdGVfcGFydCgnWUVB UicsIHJ1bmFmdGVyKTo6aW50MjsKICAgICAgICAgICAgRU5EIElGOwogICAgICAgICAgICBGT1Ig aSBJTiBkIC4uIDYwIExPT1AKICAgICAgICAgICAgICAgIElGIGpzY21pbnV0ZXNbaV0gPSBUUlVF IFRIRU4KICAgICAgICAgICAgICAgICAgICBuZXh0bWludXRlIDo9IGkgLSAxOwogICAgICAgICAg ICAgICAgICAgIGZvdW5kdmFsIDo9IFRSVUU7CiAgICAgICAgICAgICAgICAgICAgRVhJVDsKICAg ICAgICAgICAgICAgIEVORCBJRjsKICAgICAgICAgICAgRU5EIExPT1A7CiAgICAgICAgRUxTRQog ICAgICAgICAgICBuZXh0bWludXRlIDo9IGRhdGVfcGFydCgnTUlOVVRFJywgcnVuYWZ0ZXIpOwog ICAgICAgICAgICBnb3RpdCA6PSBGQUxTRTsKICAgICAgICAgICAgRk9SIGkgSU4gKG5leHRtaW51 dGUgKyAxKSAuLiA2MCBMT09QCiAgICAgICAgICAgICAgICBJRiBqc2NtaW51dGVzW2ldID0gVFJV RSBUSEVOCiAgICAgICAgICAgICAgICAgICAgbmV4dG1pbnV0ZSA6PSBpIC0gMTsKICAgICAgICAg ICAgICAgICAgICBnb3RpdCA6PSBUUlVFOwogICAgICAgICAgICAgICAgICAgIGZvdW5kdmFsIDo9 IFRSVUU7CiAgICAgICAgICAgICAgICAgICAgRVhJVDsKICAgICAgICAgICAgICAgIEVORCBJRjsK ICAgICAgICAgICAgRU5EIExPT1A7CiAgICAgICAgICAgIElGIGdvdGl0ID0gRkFMU0UgVEhFTgog ICAgICAgICAgICAgICAgRk9SIGkgSU4gMSAuLiBuZXh0bWludXRlIExPT1AKICAgICAgICAgICAg ICAgICAgICBJRiBqc2NtaW51dGVzW2ldID0gVFJVRSBUSEVOCiAgICAgICAgICAgICAgICAgICAg ICAgIG5leHRtaW51dGUgOj0gaSAtIDE7CgogICAgICAgICAgICAgICAgICAgICAgICAtLSBXcmFw IGludG8gbmV4dCBob3VyCiAgICAgICAgICAgICAgICAgICAgICAgIElGIChuZXh0bW9udGggPSAx IE9SIG5leHRtb250aCA9IDMgT1IgbmV4dG1vbnRoID0gNSBPUiBuZXh0bW9udGggPSA3IE9SIG5l eHRtb250aCA9IDggT1IgbmV4dG1vbnRoID0gMTAgT1IgbmV4dG1vbnRoID0gMTIpIFRIRU4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGQgPSAzMTsKICAgICAgICAgICAgICAgICAgICAgICAg RUxTSUYgKG5leHRtb250aCA9IDQgT1IgbmV4dG1vbnRoID0gNiBPUiBuZXh0bW9udGggPSA5IE9S IG5leHRtb250aCA9IDExKSBUSEVOCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkID0gMzA7 CiAgICAgICAgICAgICAgICAgICAgICAgIEVMU0UKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElGIHBnYWdlbnQucGdhX2lzX2xlYXBfeWVhcihuZXh0eWVhcikgPSBUUlVFIFRIRU4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkIDo9IDI5OwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgRUxTRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQgOj0gMjg7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBFTkQgSUY7CiAgICAgICAgICAgICAgICAgICAgICAgIEVO RCBJRjsKCiAgICAgICAgICAgICAgICAgICAgICAgIElGIG5leHRob3VyID0gMjMgVEhFTgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgbmV4dGhvdXIgPSAwOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSUYgbmV4dGRheSA9IGQgVEhFTgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG5leHRkYXkgOj0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRiBuZXh0 bW9udGggPSAxMiBUSEVOCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHR5 ZWFyIDo9IG5leHR5ZWFyICsgMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bmV4dG1vbnRoIDo9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUxTRQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0bW9udGggOj0gbmV4dG1vbnRoICsg MTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTkQgSUY7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFTFNFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dGRh eSA6PSBuZXh0ZGF5ICsgMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVORCBJRjsKICAg ICAgICAgICAgICAgICAgICAgICAgRUxTRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4 dGhvdXIgOj0gbmV4dGhvdXIgKyAxOwogICAgICAgICAgICAgICAgICAgICAgICBFTkQgSUY7Cgog ICAgICAgICAgICAgICAgICAgICAgICBnb3RpdCA6PSBUUlVFOwogICAgICAgICAgICAgICAgICAg ICAgICBmb3VuZHZhbCA6PSBUUlVFOwogICAgICAgICAgICAgICAgICAgICAgICBFWElUOwogICAg ICAgICAgICAgICAgICAgIEVORCBJRjsKICAgICAgICAgICAgICAgIEVORCBMT09QOwogICAgICAg ICAgICBFTkQgSUY7CiAgICAgICAgRU5EIElGOwoKICAgICAgICAtLSBCdWlsZCB0aGUgcmVzdWx0 LCBhbmQgY2hlY2sgaXQgaXMgbm90IHRoZSBzYW1lIGFzIHJ1bmFmdGVyIC0gdGhpcyBtYXkKICAg ICAgICAtLSBoYXBwZW4gaWYgYWxsIGFycmF5IGVudHJpZXMgYXJlIHNldCB0byBmYWxzZS4gSW4g dGhpcyBjYXNlLCBhZGQgYSBtaW51dGUuCgogICAgICAgIG5leHRydW4gOj0gKG5leHR5ZWFyOjp2 YXJjaGFyIHx8ICctJzo6dmFyY2hhciB8fCBuZXh0bW9udGg6OnZhcmNoYXIgfHwgJy0nIHx8IG5l eHRkYXk6OnZhcmNoYXIgfHwgJyAnIHx8IG5leHRob3VyOjp2YXJjaGFyIHx8ICc6JyB8fCBuZXh0 bWludXRlOjp2YXJjaGFyKTo6dGltZXN0YW1wdHo7CgogICAgICAgIElGIG5leHRydW4gPSBydW5h ZnRlciBBTkQgZm91bmR2YWwgPSBGQUxTRSBUSEVOCiAgICAgICAgICAgICAgICBuZXh0cnVuIDo9 IG5leHRydW4gKyBJTlRFUlZBTCAnMSBNaW51dGUnOwogICAgICAgIEVORCBJRjsKCiAgICAgICAg LS0gSWYgdGhlIHJlc3VsdCBpcyBwYXN0IHRoZSBlbmQgZGF0ZSwgZXhpdC4KICAgICAgICBJRiBu ZXh0cnVuID4ganNjZW5kIFRIRU4KICAgICAgICAgICAgUkVUVVJOIE5VTEw7CiAgICAgICAgRU5E IElGOwoKICAgICAgICAtLSBDaGVjayB0byBlbnN1cmUgdGhhdCB0aGUgbmV4dHJ1biB0aW1lIGlz IGFjdHVhbGx5IHN0aWxsIHZhbGlkLiBJdHMKICAgICAgICAtLSBwb3NzaWJsZSB0aGF0IHdyYXBw ZWQgdmFsdWVzIG1heSBoYXZlIGNhcnJpZWQgdGhlIG5leHRydW4gb250byBhbgogICAgICAgIC0t IGludmFsaWQgdGltZSBvciBkYXRlLgogICAgICAgIElGICgoanNjbWludXRlcyA9ICd7ZixmLGYs ZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixm LGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGZ9 JyBPUiBqc2NtaW51dGVzW2RhdGVfcGFydCgnTUlOVVRFJywgbmV4dHJ1bikgKyAxXSA9IFRSVUUp IEFORAogICAgICAgICAgICAoanNjaG91cnMgPSAne2YsZixmLGYsZixmLGYsZixmLGYsZixmLGYs ZixmLGYsZixmLGYsZixmLGYsZixmfScgT1IganNjaG91cnNbZGF0ZV9wYXJ0KCdIT1VSJywgbmV4 dHJ1bikgKyAxXSA9IFRSVUUpIEFORAogICAgICAgICAgICAoanNjbW9udGhkYXlzID0gJ3tmLGYs ZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixm LGZ9JyBPUiBqc2Ntb250aGRheXNbZGF0ZV9wYXJ0KCdEQVknLCBuZXh0cnVuKV0gPSBUUlVFIE9S CiAgICAgICAgICAgIChqc2Ntb250aGRheXMgPSAne2YsZixmLGYsZixmLGYsZixmLGYsZixmLGYs ZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsdH0nIEFORAogICAgICAgICAgICAg KChkYXRlX3BhcnQoJ01PTlRIJywgbmV4dHJ1bikgSU4gKDEsMyw1LDcsOCwxMCwxMikgQU5EIGRh dGVfcGFydCgnREFZJywgbmV4dHJ1bikgPSAzMSkgT1IKICAgICAgICAgICAgICAoZGF0ZV9wYXJ0 KCdNT05USCcsIG5leHRydW4pIElOICg0LDYsOSwxMSkgQU5EIGRhdGVfcGFydCgnREFZJywgbmV4 dHJ1bikgPSAzMCkgT1IKICAgICAgICAgICAgICAoZGF0ZV9wYXJ0KCdNT05USCcsIG5leHRydW4p ID0gMiBBTkQgKChwZ2FnZW50LnBnYV9pc19sZWFwX3llYXIoZGF0ZV9wYXJ0KCdEQVknLCBuZXh0 cnVuKTo6aW50MikgQU5EIGRhdGVfcGFydCgnREFZJywgbmV4dHJ1bikgPSAyOSkgT1IgZGF0ZV9w YXJ0KCdEQVknLCBuZXh0cnVuKSA9IDI4KSkpKSkgQU5ECiAgICAgICAgICAgIChqc2Ntb250aHMg PSAne2YsZixmLGYsZixmLGYsZixmLGYsZixmfScgT1IganNjbW9udGhzW2RhdGVfcGFydCgnTU9O VEgnLCBuZXh0cnVuKV0gPSBUUlVFKSkgVEhFTgoKCiAgICAgICAgICAgIC0tIE5vdywgY2hlY2sg dG8gc2VlIGlmIHRoZSBuZXh0cnVuIHRpbWUgZm91bmQgaXMgYSkgb24gYW4gYWNjZXB0YWJsZQog ICAgICAgICAgICAtLSB3ZWVrZGF5LCBhbmQgYikgbm90IG1hdGNoZWQgYnkgYW4gZXhjZXB0aW9u LiBJZiBub3QsIHNldAogICAgICAgICAgICAtLSBydW5hZnRlciA9IG5leHRydW4gYW5kIHRyeSBh Z2Fpbi4KCiAgICAgICAgICAgIC0tIENoZWNrIGZvciBhIHdpbGRjYXJkIHdlZWtkYXkKICAgICAg ICAgICAgZ290aXQgOj0gRkFMU0U7CiAgICAgICAgICAgIEZPUiBpIElOIDEgLi4gNyBMT09QCiAg ICAgICAgICAgICAgICBJRiBqc2N3ZWVrZGF5c1tpXSA9IFRSVUUgVEhFTgogICAgICAgICAgICAg ICAgICAgIGdvdGl0IDo9IFRSVUU7CiAgICAgICAgICAgICAgICAgICAgRVhJVDsKICAgICAgICAg ICAgICAgIEVORCBJRjsKICAgICAgICAgICAgRU5EIExPT1A7CgogICAgICAgICAgICAtLSBPSywg aXMgdGhlIGNvcnJlY3Qgd2Vla2RheSBzZWxlY3RlZCwgb3IgYSB3aWxkY2FyZD8KICAgICAgICAg ICAgSUYgKGpzY3dlZWtkYXlzW2RhdGVfcGFydCgnRE9XJywgbmV4dHJ1bikgKyAxXSA9IFRSVUUg T1IgZ290aXQgPSBGQUxTRSkgVEhFTgoKICAgICAgICAgICAgICAgIC0tIENoZWNrIGZvciBleGNl cHRpb25zCiAgICAgICAgICAgICAgICBTRUxFQ1QgSU5UTyBkIGpleGlkIEZST00gcGdhZ2VudC5w Z2FfZXhjZXB0aW9uIFdIRVJFIGpleHNjaWQgPSBqc2NpZCBBTkQgKChqZXhkYXRlID0gbmV4dHJ1 bjo6ZGF0ZSBBTkQgamV4dGltZSA9IG5leHRydW46OnRpbWUpIE9SIChqZXhkYXRlID0gbmV4dHJ1 bjo6ZGF0ZSBBTkQgamV4dGltZSBJUyBOVUxMKSBPUiAoamV4ZGF0ZSBJUyBOVUxMIEFORCBqZXh0 aW1lID0gbmV4dHJ1bjo6dGltZSkpOwogICAgICAgICAgICAgICAgSUYgRk9VTkQgVEhFTgogICAg ICAgICAgICAgICAgICAgIC0tIE51dHMgLSBmb3VuZCBhbiBleGNlcHRpb24uIEluY3JlbWVudCB0 aGUgdGltZSBhbmQgdHJ5IGFnYWluCiAgICAgICAgICAgICAgICAgICAgcnVuYWZ0ZXIgOj0gbmV4 dHJ1biArIElOVEVSVkFMICcxIE1pbnV0ZSc7CiAgICAgICAgICAgICAgICAgICAgYmluZ28gOj0g RkFMU0U7CiAgICAgICAgICAgICAgICAgICAgbWludXRldHdlYWsgOj0gVFJVRTsKICAgICAgICAg ICAgZGF5dHdlYWsgOj0gRkFMU0U7CiAgICAgICAgICAgICAgICBFTFNFCiAgICAgICAgICAgICAg ICAgICAgYmluZ28gOj0gVFJVRTsKICAgICAgICAgICAgICAgIEVORCBJRjsKICAgICAgICAgICAg RUxTRQogICAgICAgICAgICAgICAgLS0gV2UncmUgb24gdGhlIHdyb25nIHdlZWsgZGF5IC0gaW5j cmVtZW50IGEgZGF5IGFuZCB0cnkgYWdhaW4uCiAgICAgICAgICAgICAgICBydW5hZnRlciA6PSBu ZXh0cnVuICsgSU5URVJWQUwgJzEgRGF5JzsKICAgICAgICAgICAgICAgIGJpbmdvIDo9IEZBTFNF OwogICAgICAgICAgICAgICAgbWludXRldHdlYWsgOj0gRkFMU0U7CiAgICAgICAgICAgICAgICBk YXl0d2VhayA6PSBUUlVFOwogICAgICAgICAgICBFTkQgSUY7CgogICAgICAgIEVMU0UKICAgICAg ICAgICAgcnVuYWZ0ZXIgOj0gbmV4dHJ1biArIElOVEVSVkFMICcxIE1pbnV0ZSc7CiAgICAgICAg ICAgIGJpbmdvIDo9IEZBTFNFOwogICAgICAgICAgICBtaW51dGV0d2VhayA6PSBUUlVFOwogICAg ICAgIGRheXR3ZWFrIDo9IEZBTFNFOwogICAgICAgIEVORCBJRjsKCiAgICBFTkQgTE9PUDsKCiAg ICBSRVRVUk4gbmV4dHJ1bjsKRU5EOwokXyQ7CgoKQUxURVIgRlVOQ1RJT04gcGdhZ2VudC5wZ2Ff bmV4dF9zY2hlZHVsZShpbnRlZ2VyLCB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUsIHRpbWVzdGFt cCB3aXRoIHRpbWUgem9uZSwgYm9vbGVhbltdLCBib29sZWFuW10sIGJvb2xlYW5bXSwgYm9vbGVh bltdLCBib29sZWFuW10pIE9XTkVSIFRPIHBvc3RncmVzOwoKLS0KLS0gTmFtZTogRlVOQ1RJT04g cGdhX25leHRfc2NoZWR1bGUoaW50ZWdlciwgdGltZXN0YW1wIHdpdGggdGltZSB6b25lLCB0aW1l c3RhbXAgd2l0aCB0aW1lIHpvbmUsIGJvb2xlYW5bXSwgYm9vbGVhbltdLCBib29sZWFuW10sIGJv b2xlYW5bXSwgYm9vbGVhbltdKTsgVHlwZTogQ09NTUVOVDsgU2NoZW1hOiBwZ2FnZW50OyBPd25l cjogcG9zdGdyZXMKLS0KCkNPTU1FTlQgT04gRlVOQ1RJT04gcGdhX25leHRfc2NoZWR1bGUoaW50 ZWdlciwgdGltZXN0YW1wIHdpdGggdGltZSB6b25lLCB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUs IGJvb2xlYW5bXSwgYm9vbGVhbltdLCBib29sZWFuW10sIGJvb2xlYW5bXSwgYm9vbGVhbltdKSBJ UyAnQ2FsY3VsYXRlcyB0aGUgbmV4dCBydW50aW1lIGZvciBhIGdpdmVuIHNjaGVkdWxlJzsKCgot LQotLSBOYW1lOiBwZ2Ffc2NoZWR1bGVfdHJpZ2dlcigpOyBUeXBlOiBGVU5DVElPTjsgU2NoZW1h OiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkNSRUFURSBGVU5DVElPTiBwZ2Ffc2NoZWR1 bGVfdHJpZ2dlcigpIFJFVFVSTlMgdHJpZ2dlcgogICAgTEFOR1VBR0UgcGxwZ3NxbAogICAgQVMg JCQKQkVHSU4KICAgIElGIFRHX09QID0gJ0RFTEVURScgVEhFTgogICAgICAgIC0tIHVwZGF0ZSBw Z2Ffam9iIGZyb20gcmVtYWluaW5nIHNjaGVkdWxlcwogICAgICAgIC0tIHRoZSBhY3R1YWwgY2Fs Y3VsYXRpb24gb2Ygam9ibmV4dHJ1biB3aWxsIGJlIHBlcmZvcm1lZCBpbiB0aGUgdHJpZ2dlcgog ICAgICAgIFVQREFURSBwZ2FnZW50LnBnYV9qb2IKICAgICAgICAgICBTRVQgam9ibmV4dHJ1biA9 IE5VTEwKICAgICAgICAgV0hFUkUgam9iZW5hYmxlZCBBTkQgam9iaWQ9T0xELmpzY2pvYmlkOwog ICAgICAgIFJFVFVSTiBPTEQ7CiAgICBFTFNFCiAgICAgICAgVVBEQVRFIHBnYWdlbnQucGdhX2pv YgogICAgICAgICAgIFNFVCBqb2JuZXh0cnVuID0gTlVMTAogICAgICAgICBXSEVSRSBqb2JlbmFi bGVkIEFORCBqb2JpZD1ORVcuanNjam9iaWQ7CiAgICAgICAgUkVUVVJOIE5FVzsKICAgIEVORCBJ RjsKRU5EOwokJDsKCgpBTFRFUiBGVU5DVElPTiBwZ2FnZW50LnBnYV9zY2hlZHVsZV90cmlnZ2Vy KCkgT1dORVIgVE8gcG9zdGdyZXM7CgotLQotLSBOYW1lOiBGVU5DVElPTiBwZ2Ffc2NoZWR1bGVf dHJpZ2dlcigpOyBUeXBlOiBDT01NRU5UOyBTY2hlbWE6IHBnYWdlbnQ7IE93bmVyOiBwb3N0Z3Jl cwotLQoKQ09NTUVOVCBPTiBGVU5DVElPTiBwZ2Ffc2NoZWR1bGVfdHJpZ2dlcigpIElTICdVcGRh dGUgdGhlIGpvYicncyBuZXh0IHJ1biB0aW1lIHdoZW5ldmVyIGEgc2NoZWR1bGUgY2hhbmdlcyc7 CgoKLS0KLS0gTmFtZTogcGdhZ2VudF9zY2hlbWFfdmVyc2lvbigpOyBUeXBlOiBGVU5DVElPTjsg U2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkNSRUFURSBGVU5DVElPTiBwZ2Fn ZW50X3NjaGVtYV92ZXJzaW9uKCkgUkVUVVJOUyBzbWFsbGludAogICAgTEFOR1VBR0UgcGxwZ3Nx bAogICAgQVMgJCQKQkVHSU4KICAgIC0tIFJFVFVSTlMgUEdBR0VOVCBNQUpPUiBWRVJTSU9OCiAg ICAtLSBXRSBXSUxMIENIQU5HRSBUSEUgTUFKT1IgVkVSU0lPTiwgT05MWSBJRiBUSEVSRSBJUyBB IFNDSEVNQSBDSEFOR0UKICAgIFJFVFVSTiAzOwpFTkQ7CiQkOwoKCkFMVEVSIEZVTkNUSU9OIHBn YWdlbnQucGdhZ2VudF9zY2hlbWFfdmVyc2lvbigpIE9XTkVSIFRPIHBvc3RncmVzOwoKU0VUIGRl ZmF1bHRfdGFibGVzcGFjZSA9ICcnOwoKU0VUIGRlZmF1bHRfd2l0aF9vaWRzID0gZmFsc2U7Cgot LQotLSBOYW1lOiBwZ2FfZXhjZXB0aW9uOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiBwZ2FnZW50OyBP d25lcjogcG9zdGdyZXMKLS0KCkNSRUFURSBUQUJMRSBwZ2FfZXhjZXB0aW9uICgKICAgIGpleGlk IGludGVnZXIgTk9UIE5VTEwsCiAgICBqZXhzY2lkIGludGVnZXIgTk9UIE5VTEwsCiAgICBqZXhk YXRlIGRhdGUsCiAgICBqZXh0aW1lIHRpbWUgd2l0aG91dCB0aW1lIHpvbmUKKTsKCgpBTFRFUiBU QUJMRSBwZ2FfZXhjZXB0aW9uIE9XTkVSIFRPIHBvc3RncmVzOwoKLS0KLS0gTmFtZTogcGdhX2V4 Y2VwdGlvbl9qZXhpZF9zZXE7IFR5cGU6IFNFUVVFTkNFOyBTY2hlbWE6IHBnYWdlbnQ7IE93bmVy OiBwb3N0Z3JlcwotLQoKQ1JFQVRFIFNFUVVFTkNFIHBnYV9leGNlcHRpb25famV4aWRfc2VxCiAg ICBTVEFSVCBXSVRIIDEKICAgIElOQ1JFTUVOVCBCWSAxCiAgICBOTyBNSU5WQUxVRQogICAgTk8g TUFYVkFMVUUKICAgIENBQ0hFIDE7CgoKQUxURVIgVEFCTEUgcGdhX2V4Y2VwdGlvbl9qZXhpZF9z ZXEgT1dORVIgVE8gcG9zdGdyZXM7CgotLQotLSBOYW1lOiBwZ2FfZXhjZXB0aW9uX2pleGlkX3Nl cTsgVHlwZTogU0VRVUVOQ0UgT1dORUQgQlk7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3Rn cmVzCi0tCgpBTFRFUiBTRVFVRU5DRSBwZ2FfZXhjZXB0aW9uX2pleGlkX3NlcSBPV05FRCBCWSBw Z2FfZXhjZXB0aW9uLmpleGlkOwoKCi0tCi0tIE5hbWU6IHBnYV9qb2I7IFR5cGU6IFRBQkxFOyBT Y2hlbWE6IHBnYWdlbnQ7IE93bmVyOiBwb3N0Z3JlcwotLQoKQ1JFQVRFIFRBQkxFIHBnYV9qb2Ig KAogICAgam9iaWQgaW50ZWdlciBOT1QgTlVMTCwKICAgIGpvYmpjbGlkIGludGVnZXIgTk9UIE5V TEwsCiAgICBqb2JuYW1lIHRleHQgTk9UIE5VTEwsCiAgICBqb2JkZXNjIHRleHQgREVGQVVMVCAn Jzo6dGV4dCBOT1QgTlVMTCwKICAgIGpvYmhvc3RhZ2VudCB0ZXh0IERFRkFVTFQgJyc6OnRleHQg Tk9UIE5VTEwsCiAgICBqb2JlbmFibGVkIGJvb2xlYW4gREVGQVVMVCB0cnVlIE5PVCBOVUxMLAog ICAgam9iY3JlYXRlZCB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgREVGQVVMVCBub3coKSBOT1Qg TlVMTCwKICAgIGpvYmNoYW5nZWQgdGltZXN0YW1wIHdpdGggdGltZSB6b25lIERFRkFVTFQgbm93 KCkgTk9UIE5VTEwsCiAgICBqb2JhZ2VudGlkIGludGVnZXIsCiAgICBqb2JuZXh0cnVuIHRpbWVz dGFtcCB3aXRoIHRpbWUgem9uZSwKICAgIGpvYmxhc3RydW4gdGltZXN0YW1wIHdpdGggdGltZSB6 b25lCik7CgoKQUxURVIgVEFCTEUgcGdhX2pvYiBPV05FUiBUTyBwb3N0Z3JlczsKCi0tCi0tIE5h bWU6IFRBQkxFIHBnYV9qb2I7IFR5cGU6IENPTU1FTlQ7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6 IHBvc3RncmVzCi0tCgpDT01NRU5UIE9OIFRBQkxFIHBnYV9qb2IgSVMgJ0pvYiBtYWluIGVudHJ5 JzsKCgotLQotLSBOYW1lOiBDT0xVTU4gcGdhX2pvYi5qb2JhZ2VudGlkOyBUeXBlOiBDT01NRU5U OyBTY2hlbWE6IHBnYWdlbnQ7IE93bmVyOiBwb3N0Z3JlcwotLQoKQ09NTUVOVCBPTiBDT0xVTU4g cGdhX2pvYi5qb2JhZ2VudGlkIElTICdBZ2VudCB0aGF0IGN1cnJlbnRseSBleGVjdXRlcyB0aGlz IGpvYi4nOwoKCi0tCi0tIE5hbWU6IHBnYV9qb2Jfam9iaWRfc2VxOyBUeXBlOiBTRVFVRU5DRTsg U2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkNSRUFURSBTRVFVRU5DRSBwZ2Ff am9iX2pvYmlkX3NlcQogICAgU1RBUlQgV0lUSCAxCiAgICBJTkNSRU1FTlQgQlkgMQogICAgTk8g TUlOVkFMVUUKICAgIE5PIE1BWFZBTFVFCiAgICBDQUNIRSAxOwoKCkFMVEVSIFRBQkxFIHBnYV9q b2Jfam9iaWRfc2VxIE9XTkVSIFRPIHBvc3RncmVzOwoKLS0KLS0gTmFtZTogcGdhX2pvYl9qb2Jp ZF9zZXE7IFR5cGU6IFNFUVVFTkNFIE9XTkVEIEJZOyBTY2hlbWE6IHBnYWdlbnQ7IE93bmVyOiBw b3N0Z3JlcwotLQoKQUxURVIgU0VRVUVOQ0UgcGdhX2pvYl9qb2JpZF9zZXEgT1dORUQgQlkgcGdh X2pvYi5qb2JpZDsKCgotLQotLSBOYW1lOiBwZ2Ffam9iYWdlbnQ7IFR5cGU6IFRBQkxFOyBTY2hl bWE6IHBnYWdlbnQ7IE93bmVyOiBwb3N0Z3JlcwotLQoKQ1JFQVRFIFRBQkxFIHBnYV9qb2JhZ2Vu dCAoCiAgICBqYWdwaWQgaW50ZWdlciBOT1QgTlVMTCwKICAgIGphZ2xvZ2ludGltZSB0aW1lc3Rh bXAgd2l0aCB0aW1lIHpvbmUgREVGQVVMVCBub3coKSBOT1QgTlVMTCwKICAgIGphZ3N0YXRpb24g dGV4dCBOT1QgTlVMTAopOwoKCkFMVEVSIFRBQkxFIHBnYV9qb2JhZ2VudCBPV05FUiBUTyBwb3N0 Z3JlczsKCi0tCi0tIE5hbWU6IFRBQkxFIHBnYV9qb2JhZ2VudDsgVHlwZTogQ09NTUVOVDsgU2No ZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkNPTU1FTlQgT04gVEFCTEUgcGdhX2pv YmFnZW50IElTICdBY3RpdmUgam9iIGFnZW50cyc7CgoKLS0KLS0gTmFtZTogcGdhX2pvYmNsYXNz OyBUeXBlOiBUQUJMRTsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkNSRUFU RSBUQUJMRSBwZ2Ffam9iY2xhc3MgKAogICAgamNsaWQgaW50ZWdlciBOT1QgTlVMTCwKICAgIGpj bG5hbWUgdGV4dCBOT1QgTlVMTAopOwoKCkFMVEVSIFRBQkxFIHBnYV9qb2JjbGFzcyBPV05FUiBU TyBwb3N0Z3JlczsKCi0tCi0tIE5hbWU6IFRBQkxFIHBnYV9qb2JjbGFzczsgVHlwZTogQ09NTUVO VDsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkNPTU1FTlQgT04gVEFCTEUg cGdhX2pvYmNsYXNzIElTICdKb2IgY2xhc3NpZmljYXRpb24nOwoKCi0tCi0tIE5hbWU6IHBnYV9q b2JjbGFzc19qY2xpZF9zZXE7IFR5cGU6IFNFUVVFTkNFOyBTY2hlbWE6IHBnYWdlbnQ7IE93bmVy OiBwb3N0Z3JlcwotLQoKQ1JFQVRFIFNFUVVFTkNFIHBnYV9qb2JjbGFzc19qY2xpZF9zZXEKICAg IFNUQVJUIFdJVEggMQogICAgSU5DUkVNRU5UIEJZIDEKICAgIE5PIE1JTlZBTFVFCiAgICBOTyBN QVhWQUxVRQogICAgQ0FDSEUgMTsKCgpBTFRFUiBUQUJMRSBwZ2Ffam9iY2xhc3NfamNsaWRfc2Vx IE9XTkVSIFRPIHBvc3RncmVzOwoKLS0KLS0gTmFtZTogcGdhX2pvYmNsYXNzX2pjbGlkX3NlcTsg VHlwZTogU0VRVUVOQ0UgT1dORUQgQlk7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3RncmVz Ci0tCgpBTFRFUiBTRVFVRU5DRSBwZ2Ffam9iY2xhc3NfamNsaWRfc2VxIE9XTkVEIEJZIHBnYV9q b2JjbGFzcy5qY2xpZDsKCgotLQotLSBOYW1lOiBwZ2Ffam9ibG9nOyBUeXBlOiBUQUJMRTsgU2No ZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkNSRUFURSBUQUJMRSBwZ2Ffam9ibG9n ICgKICAgIGpsZ2lkIGludGVnZXIgTk9UIE5VTEwsCiAgICBqbGdqb2JpZCBpbnRlZ2VyIE5PVCBO VUxMLAogICAgamxnc3RhdHVzIGNoYXJhY3RlcigxKSBERUZBVUxUICdyJzo6YnBjaGFyIE5PVCBO VUxMLAogICAgamxnc3RhcnQgdGltZXN0YW1wIHdpdGggdGltZSB6b25lIERFRkFVTFQgbm93KCkg Tk9UIE5VTEwsCiAgICBqbGdkdXJhdGlvbiBpbnRlcnZhbCwKICAgIENPTlNUUkFJTlQgcGdhX2pv YmxvZ19qbGdzdGF0dXNfY2hlY2sgQ0hFQ0sgKChqbGdzdGF0dXMgPSBBTlkgKEFSUkFZWydyJzo6 YnBjaGFyLCAncyc6OmJwY2hhciwgJ2YnOjpicGNoYXIsICdpJzo6YnBjaGFyLCAnZCc6OmJwY2hh cl0pKSkKKTsKCgpBTFRFUiBUQUJMRSBwZ2Ffam9ibG9nIE9XTkVSIFRPIHBvc3RncmVzOwoKLS0K LS0gTmFtZTogVEFCTEUgcGdhX2pvYmxvZzsgVHlwZTogQ09NTUVOVDsgU2NoZW1hOiBwZ2FnZW50 OyBPd25lcjogcG9zdGdyZXMKLS0KCkNPTU1FTlQgT04gVEFCTEUgcGdhX2pvYmxvZyBJUyAnSm9i IHJ1biBsb2dzLic7CgoKLS0KLS0gTmFtZTogQ09MVU1OIHBnYV9qb2Jsb2cuamxnc3RhdHVzOyBU eXBlOiBDT01NRU5UOyBTY2hlbWE6IHBnYWdlbnQ7IE93bmVyOiBwb3N0Z3JlcwotLQoKQ09NTUVO VCBPTiBDT0xVTU4gcGdhX2pvYmxvZy5qbGdzdGF0dXMgSVMgJ1N0YXR1cyBvZiBqb2I6IHI9cnVu bmluZywgcz1zdWNjZXNzZnVsbHkgZmluaXNoZWQsIGY9ZmFpbGVkLCBpPW5vIHN0ZXBzIHRvIGV4 ZWN1dGUsIGQ9YWJvcnRlZCc7CgoKLS0KLS0gTmFtZTogcGdhX2pvYmxvZ19qbGdpZF9zZXE7IFR5 cGU6IFNFUVVFTkNFOyBTY2hlbWE6IHBnYWdlbnQ7IE93bmVyOiBwb3N0Z3JlcwotLQoKQ1JFQVRF IFNFUVVFTkNFIHBnYV9qb2Jsb2dfamxnaWRfc2VxCiAgICBTVEFSVCBXSVRIIDEKICAgIElOQ1JF TUVOVCBCWSAxCiAgICBOTyBNSU5WQUxVRQogICAgTk8gTUFYVkFMVUUKICAgIENBQ0hFIDE7CgoK QUxURVIgVEFCTEUgcGdhX2pvYmxvZ19qbGdpZF9zZXEgT1dORVIgVE8gcG9zdGdyZXM7CgotLQot LSBOYW1lOiBwZ2Ffam9ibG9nX2psZ2lkX3NlcTsgVHlwZTogU0VRVUVOQ0UgT1dORUQgQlk7IFNj aGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3RncmVzCi0tCgpBTFRFUiBTRVFVRU5DRSBwZ2Ffam9i bG9nX2psZ2lkX3NlcSBPV05FRCBCWSBwZ2Ffam9ibG9nLmpsZ2lkOwoKCi0tCi0tIE5hbWU6IHBn YV9qb2JzdGVwOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMK LS0KCkNSRUFURSBUQUJMRSBwZ2Ffam9ic3RlcCAoCiAgICBqc3RpZCBpbnRlZ2VyIE5PVCBOVUxM LAogICAganN0am9iaWQgaW50ZWdlciBOT1QgTlVMTCwKICAgIGpzdG5hbWUgdGV4dCBOT1QgTlVM TCwKICAgIGpzdGRlc2MgdGV4dCBERUZBVUxUICcnOjp0ZXh0IE5PVCBOVUxMLAogICAganN0ZW5h YmxlZCBib29sZWFuIERFRkFVTFQgdHJ1ZSBOT1QgTlVMTCwKICAgIGpzdGtpbmQgY2hhcmFjdGVy KDEpIE5PVCBOVUxMLAogICAganN0Y29kZSB0ZXh0IE5PVCBOVUxMLAogICAganN0Y29ubnN0ciB0 ZXh0IERFRkFVTFQgJyc6OnRleHQgTk9UIE5VTEwsCiAgICBqc3RkYm5hbWUgbmFtZSBERUZBVUxU ICcnOjpuYW1lIE5PVCBOVUxMLAogICAganN0b25lcnJvciBjaGFyYWN0ZXIoMSkgREVGQVVMVCAn Zic6OmJwY2hhciBOT1QgTlVMTCwKICAgIGpzY25leHRydW4gdGltZXN0YW1wIHdpdGggdGltZSB6 b25lLAogICAgQ09OU1RSQUlOVCBwZ2Ffam9ic3RlcF9jaGVjayBDSEVDSyAoKCgoanN0Y29ubnN0 ciA8PiAnJzo6dGV4dCkgQU5EIChqc3RraW5kID0gJ3MnOjpicGNoYXIpKSBPUiAoKGpzdGNvbm5z dHIgPSAnJzo6dGV4dCkgQU5EICgoanN0a2luZCA9ICdiJzo6YnBjaGFyKSBPUiAoanN0ZGJuYW1l IDw+ICcnOjpuYW1lKSkpKSksCiAgICBDT05TVFJBSU5UIHBnYV9qb2JzdGVwX2NoZWNrMSBDSEVD SyAoKCgoanN0ZGJuYW1lIDw+ICcnOjpuYW1lKSBBTkQgKGpzdGtpbmQgPSAncyc6OmJwY2hhcikp IE9SICgoanN0ZGJuYW1lID0gJyc6Om5hbWUpIEFORCAoKGpzdGtpbmQgPSAnYic6OmJwY2hhcikg T1IgKGpzdGNvbm5zdHIgPD4gJyc6OnRleHQpKSkpKSwKICAgIENPTlNUUkFJTlQgcGdhX2pvYnN0 ZXBfanN0a2luZF9jaGVjayBDSEVDSyAoKGpzdGtpbmQgPSBBTlkgKEFSUkFZWydiJzo6YnBjaGFy LCAncyc6OmJwY2hhcl0pKSksCiAgICBDT05TVFJBSU5UIHBnYV9qb2JzdGVwX2pzdG9uZXJyb3Jf Y2hlY2sgQ0hFQ0sgKChqc3RvbmVycm9yID0gQU5ZIChBUlJBWVsnZic6OmJwY2hhciwgJ3MnOjpi cGNoYXIsICdpJzo6YnBjaGFyXSkpKQopOwoKCkFMVEVSIFRBQkxFIHBnYV9qb2JzdGVwIE9XTkVS IFRPIHBvc3RncmVzOwoKLS0KLS0gTmFtZTogVEFCTEUgcGdhX2pvYnN0ZXA7IFR5cGU6IENPTU1F TlQ7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3RncmVzCi0tCgpDT01NRU5UIE9OIFRBQkxF IHBnYV9qb2JzdGVwIElTICdKb2Igc3RlcCB0byBiZSBleGVjdXRlZCc7CgoKLS0KLS0gTmFtZTog Q09MVU1OIHBnYV9qb2JzdGVwLmpzdGtpbmQ7IFR5cGU6IENPTU1FTlQ7IFNjaGVtYTogcGdhZ2Vu dDsgT3duZXI6IHBvc3RncmVzCi0tCgpDT01NRU5UIE9OIENPTFVNTiBwZ2Ffam9ic3RlcC5qc3Rr aW5kIElTICdLaW5kIG9mIGpvYnN0ZXA6IHM9c3FsLCBiPWJhdGNoJzsKCgotLQotLSBOYW1lOiBD T0xVTU4gcGdhX2pvYnN0ZXAuanN0b25lcnJvcjsgVHlwZTogQ09NTUVOVDsgU2NoZW1hOiBwZ2Fn ZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkNPTU1FTlQgT04gQ09MVU1OIHBnYV9qb2JzdGVwLmpz dG9uZXJyb3IgSVMgJ1doYXQgdG8gZG8gaWYgc3RlcCByZXR1cm5zIGFuIGVycm9yOiBmPWZhaWwg dGhlIGpvYiwgcz1tYXJrIHN0ZXAgYXMgc3VjY2VlZGVkIGFuZCBjb250aW51ZSwgaT1tYXJrIGFz IGZhaWwgYnV0IGlnbm9yZSBpdCBhbmQgcHJvY2VlZCc7CgoKLS0KLS0gTmFtZTogcGdhX2pvYnN0 ZXBfanN0aWRfc2VxOyBUeXBlOiBTRVFVRU5DRTsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9z dGdyZXMKLS0KCkNSRUFURSBTRVFVRU5DRSBwZ2Ffam9ic3RlcF9qc3RpZF9zZXEKICAgIFNUQVJU IFdJVEggMQogICAgSU5DUkVNRU5UIEJZIDEKICAgIE5PIE1JTlZBTFVFCiAgICBOTyBNQVhWQUxV RQogICAgQ0FDSEUgMTsKCgpBTFRFUiBUQUJMRSBwZ2Ffam9ic3RlcF9qc3RpZF9zZXEgT1dORVIg VE8gcG9zdGdyZXM7CgotLQotLSBOYW1lOiBwZ2Ffam9ic3RlcF9qc3RpZF9zZXE7IFR5cGU6IFNF UVVFTkNFIE9XTkVEIEJZOyBTY2hlbWE6IHBnYWdlbnQ7IE93bmVyOiBwb3N0Z3JlcwotLQoKQUxU RVIgU0VRVUVOQ0UgcGdhX2pvYnN0ZXBfanN0aWRfc2VxIE9XTkVEIEJZIHBnYV9qb2JzdGVwLmpz dGlkOwoKCi0tCi0tIE5hbWU6IHBnYV9qb2JzdGVwbG9nOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiBw Z2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkNSRUFURSBUQUJMRSBwZ2Ffam9ic3RlcGxvZyAo CiAgICBqc2xpZCBpbnRlZ2VyIE5PVCBOVUxMLAogICAganNsamxnaWQgaW50ZWdlciBOT1QgTlVM TCwKICAgIGpzbGpzdGlkIGludGVnZXIgTk9UIE5VTEwsCiAgICBqc2xzdGF0dXMgY2hhcmFjdGVy KDEpIERFRkFVTFQgJ3InOjpicGNoYXIgTk9UIE5VTEwsCiAgICBqc2xyZXN1bHQgaW50ZWdlciwK ICAgIGpzbHN0YXJ0IHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSBERUZBVUxUIG5vdygpIE5PVCBO VUxMLAogICAganNsZHVyYXRpb24gaW50ZXJ2YWwsCiAgICBqc2xvdXRwdXQgdGV4dCwKICAgIENP TlNUUkFJTlQgcGdhX2pvYnN0ZXBsb2dfanNsc3RhdHVzX2NoZWNrIENIRUNLICgoanNsc3RhdHVz ID0gQU5ZIChBUlJBWVsncic6OmJwY2hhciwgJ3MnOjpicGNoYXIsICdpJzo6YnBjaGFyLCAnZic6 OmJwY2hhciwgJ2QnOjpicGNoYXJdKSkpCik7CgoKQUxURVIgVEFCTEUgcGdhX2pvYnN0ZXBsb2cg T1dORVIgVE8gcG9zdGdyZXM7CgotLQotLSBOYW1lOiBUQUJMRSBwZ2Ffam9ic3RlcGxvZzsgVHlw ZTogQ09NTUVOVDsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkNPTU1FTlQg T04gVEFCTEUgcGdhX2pvYnN0ZXBsb2cgSVMgJ0pvYiBzdGVwIHJ1biBsb2dzLic7CgoKLS0KLS0g TmFtZTogQ09MVU1OIHBnYV9qb2JzdGVwbG9nLmpzbHN0YXR1czsgVHlwZTogQ09NTUVOVDsgU2No ZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkNPTU1FTlQgT04gQ09MVU1OIHBnYV9q b2JzdGVwbG9nLmpzbHN0YXR1cyBJUyAnU3RhdHVzIG9mIGpvYiBzdGVwOiByPXJ1bm5pbmcsIHM9 c3VjY2Vzc2Z1bGx5IGZpbmlzaGVkLCAgZj1mYWlsZWQgc3RvcHBpbmcgam9iLCBpPWlnbm9yZWQg ZmFpbHVyZSwgZD1hYm9ydGVkJzsKCgotLQotLSBOYW1lOiBDT0xVTU4gcGdhX2pvYnN0ZXBsb2cu anNscmVzdWx0OyBUeXBlOiBDT01NRU5UOyBTY2hlbWE6IHBnYWdlbnQ7IE93bmVyOiBwb3N0Z3Jl cwotLQoKQ09NTUVOVCBPTiBDT0xVTU4gcGdhX2pvYnN0ZXBsb2cuanNscmVzdWx0IElTICdSZXR1 cm4gY29kZSBvZiBqb2Igc3RlcCc7CgoKLS0KLS0gTmFtZTogcGdhX2pvYnN0ZXBsb2dfanNsaWRf c2VxOyBUeXBlOiBTRVFVRU5DRTsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0K CkNSRUFURSBTRVFVRU5DRSBwZ2Ffam9ic3RlcGxvZ19qc2xpZF9zZXEKICAgIFNUQVJUIFdJVEgg MQogICAgSU5DUkVNRU5UIEJZIDEKICAgIE5PIE1JTlZBTFVFCiAgICBOTyBNQVhWQUxVRQogICAg Q0FDSEUgMTsKCgpBTFRFUiBUQUJMRSBwZ2Ffam9ic3RlcGxvZ19qc2xpZF9zZXEgT1dORVIgVE8g cG9zdGdyZXM7CgotLQotLSBOYW1lOiBwZ2Ffam9ic3RlcGxvZ19qc2xpZF9zZXE7IFR5cGU6IFNF UVVFTkNFIE9XTkVEIEJZOyBTY2hlbWE6IHBnYWdlbnQ7IE93bmVyOiBwb3N0Z3JlcwotLQoKQUxU RVIgU0VRVUVOQ0UgcGdhX2pvYnN0ZXBsb2dfanNsaWRfc2VxIE9XTkVEIEJZIHBnYV9qb2JzdGVw bG9nLmpzbGlkOwoKCi0tCi0tIE5hbWU6IHBnYV9zY2hlZHVsZTsgVHlwZTogVEFCTEU7IFNjaGVt YTogcGdhZ2VudDsgT3duZXI6IHBvc3RncmVzCi0tCgpDUkVBVEUgVEFCTEUgcGdhX3NjaGVkdWxl ICgKICAgIGpzY2lkIGludGVnZXIgTk9UIE5VTEwsCiAgICBqc2Nqb2JpZCBpbnRlZ2VyIE5PVCBO VUxMLAogICAganNjbmFtZSB0ZXh0IE5PVCBOVUxMLAogICAganNjZGVzYyB0ZXh0IERFRkFVTFQg Jyc6OnRleHQgTk9UIE5VTEwsCiAgICBqc2NlbmFibGVkIGJvb2xlYW4gREVGQVVMVCB0cnVlIE5P VCBOVUxMLAogICAganNjc3RhcnQgdGltZXN0YW1wIHdpdGggdGltZSB6b25lIERFRkFVTFQgbm93 KCkgTk9UIE5VTEwsCiAgICBqc2NlbmQgdGltZXN0YW1wIHdpdGggdGltZSB6b25lLAogICAganNj bWludXRlcyBib29sZWFuW10gREVGQVVMVCAne2YsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixm LGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYs ZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmfSc6OmJvb2xlYW5bXSBOT1QgTlVMTCwK ICAgIGpzY2hvdXJzIGJvb2xlYW5bXSBERUZBVUxUICd7ZixmLGYsZixmLGYsZixmLGYsZixmLGYs ZixmLGYsZixmLGYsZixmLGYsZixmLGZ9Jzo6Ym9vbGVhbltdIE5PVCBOVUxMLAogICAganNjd2Vl a2RheXMgYm9vbGVhbltdIERFRkFVTFQgJ3tmLGYsZixmLGYsZixmfSc6OmJvb2xlYW5bXSBOT1Qg TlVMTCwKICAgIGpzY21vbnRoZGF5cyBib29sZWFuW10gREVGQVVMVCAne2YsZixmLGYsZixmLGYs ZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZn0nOjpib29s ZWFuW10gTk9UIE5VTEwsCiAgICBqc2Ntb250aHMgYm9vbGVhbltdIERFRkFVTFQgJ3tmLGYsZixm LGYsZixmLGYsZixmLGYsZn0nOjpib29sZWFuW10gTk9UIE5VTEwsCiAgICBDT05TVFJBSU5UIHBn YV9zY2hlZHVsZV9qc2Nob3Vyc19zaXplIENIRUNLICgoYXJyYXlfdXBwZXIoanNjaG91cnMsIDEp ID0gMjQpKSwKICAgIENPTlNUUkFJTlQgcGdhX3NjaGVkdWxlX2pzY21pbnV0ZXNfc2l6ZSBDSEVD SyAoKGFycmF5X3VwcGVyKGpzY21pbnV0ZXMsIDEpID0gNjApKSwKICAgIENPTlNUUkFJTlQgcGdh X3NjaGVkdWxlX2pzY21vbnRoZGF5c19zaXplIENIRUNLICgoYXJyYXlfdXBwZXIoanNjbW9udGhk YXlzLCAxKSA9IDMyKSksCiAgICBDT05TVFJBSU5UIHBnYV9zY2hlZHVsZV9qc2Ntb250aHNfc2l6 ZSBDSEVDSyAoKGFycmF5X3VwcGVyKGpzY21vbnRocywgMSkgPSAxMikpLAogICAgQ09OU1RSQUlO VCBwZ2Ffc2NoZWR1bGVfanNjd2Vla2RheXNfc2l6ZSBDSEVDSyAoKGFycmF5X3VwcGVyKGpzY3dl ZWtkYXlzLCAxKSA9IDcpKQopOwoKCkFMVEVSIFRBQkxFIHBnYV9zY2hlZHVsZSBPV05FUiBUTyBw b3N0Z3JlczsKCi0tCi0tIE5hbWU6IFRBQkxFIHBnYV9zY2hlZHVsZTsgVHlwZTogQ09NTUVOVDsg U2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkNPTU1FTlQgT04gVEFCTEUgcGdh X3NjaGVkdWxlIElTICdKb2Igc2NoZWR1bGUgZXhjZXB0aW9ucyc7CgoKLS0KLS0gTmFtZTogcGdh X3NjaGVkdWxlX2pzY2lkX3NlcTsgVHlwZTogU0VRVUVOQ0U7IFNjaGVtYTogcGdhZ2VudDsgT3du ZXI6IHBvc3RncmVzCi0tCgpDUkVBVEUgU0VRVUVOQ0UgcGdhX3NjaGVkdWxlX2pzY2lkX3NlcQog ICAgU1RBUlQgV0lUSCAxCiAgICBJTkNSRU1FTlQgQlkgMQogICAgTk8gTUlOVkFMVUUKICAgIE5P IE1BWFZBTFVFCiAgICBDQUNIRSAxOwoKCkFMVEVSIFRBQkxFIHBnYV9zY2hlZHVsZV9qc2NpZF9z ZXEgT1dORVIgVE8gcG9zdGdyZXM7CgotLQotLSBOYW1lOiBwZ2Ffc2NoZWR1bGVfanNjaWRfc2Vx OyBUeXBlOiBTRVFVRU5DRSBPV05FRCBCWTsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdy ZXMKLS0KCkFMVEVSIFNFUVVFTkNFIHBnYV9zY2hlZHVsZV9qc2NpZF9zZXEgT1dORUQgQlkgcGdh X3NjaGVkdWxlLmpzY2lkOwoKCi0tCi0tIE5hbWU6IHBnYV9leGNlcHRpb24gamV4aWQ7IFR5cGU6 IERFRkFVTFQ7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3RncmVzCi0tCgpBTFRFUiBUQUJM RSBPTkxZIHBnYV9leGNlcHRpb24gQUxURVIgQ09MVU1OIGpleGlkIFNFVCBERUZBVUxUIG5leHR2 YWwoJ3BnYV9leGNlcHRpb25famV4aWRfc2VxJzo6cmVnY2xhc3MpOwoKCi0tCi0tIE5hbWU6IHBn YV9qb2Igam9iaWQ7IFR5cGU6IERFRkFVTFQ7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3Rn cmVzCi0tCgpBTFRFUiBUQUJMRSBPTkxZIHBnYV9qb2IgQUxURVIgQ09MVU1OIGpvYmlkIFNFVCBE RUZBVUxUIG5leHR2YWwoJ3BnYV9qb2Jfam9iaWRfc2VxJzo6cmVnY2xhc3MpOwoKCi0tCi0tIE5h bWU6IHBnYV9qb2JjbGFzcyBqY2xpZDsgVHlwZTogREVGQVVMVDsgU2NoZW1hOiBwZ2FnZW50OyBP d25lcjogcG9zdGdyZXMKLS0KCkFMVEVSIFRBQkxFIE9OTFkgcGdhX2pvYmNsYXNzIEFMVEVSIENP TFVNTiBqY2xpZCBTRVQgREVGQVVMVCBuZXh0dmFsKCdwZ2Ffam9iY2xhc3NfamNsaWRfc2VxJzo6 cmVnY2xhc3MpOwoKCi0tCi0tIE5hbWU6IHBnYV9qb2Jsb2cgamxnaWQ7IFR5cGU6IERFRkFVTFQ7 IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3RncmVzCi0tCgpBTFRFUiBUQUJMRSBPTkxZIHBn YV9qb2Jsb2cgQUxURVIgQ09MVU1OIGpsZ2lkIFNFVCBERUZBVUxUIG5leHR2YWwoJ3BnYV9qb2Js b2dfamxnaWRfc2VxJzo6cmVnY2xhc3MpOwoKCi0tCi0tIE5hbWU6IHBnYV9qb2JzdGVwIGpzdGlk OyBUeXBlOiBERUZBVUxUOyBTY2hlbWE6IHBnYWdlbnQ7IE93bmVyOiBwb3N0Z3JlcwotLQoKQUxU RVIgVEFCTEUgT05MWSBwZ2Ffam9ic3RlcCBBTFRFUiBDT0xVTU4ganN0aWQgU0VUIERFRkFVTFQg bmV4dHZhbCgncGdhX2pvYnN0ZXBfanN0aWRfc2VxJzo6cmVnY2xhc3MpOwoKCi0tCi0tIE5hbWU6 IHBnYV9qb2JzdGVwbG9nIGpzbGlkOyBUeXBlOiBERUZBVUxUOyBTY2hlbWE6IHBnYWdlbnQ7IE93 bmVyOiBwb3N0Z3JlcwotLQoKQUxURVIgVEFCTEUgT05MWSBwZ2Ffam9ic3RlcGxvZyBBTFRFUiBD T0xVTU4ganNsaWQgU0VUIERFRkFVTFQgbmV4dHZhbCgncGdhX2pvYnN0ZXBsb2dfanNsaWRfc2Vx Jzo6cmVnY2xhc3MpOwoKCi0tCi0tIE5hbWU6IHBnYV9zY2hlZHVsZSBqc2NpZDsgVHlwZTogREVG QVVMVDsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkFMVEVSIFRBQkxFIE9O TFkgcGdhX3NjaGVkdWxlIEFMVEVSIENPTFVNTiBqc2NpZCBTRVQgREVGQVVMVCBuZXh0dmFsKCdw Z2Ffc2NoZWR1bGVfanNjaWRfc2VxJzo6cmVnY2xhc3MpOwoKCi0tCi0tIERhdGEgZm9yIE5hbWU6 IHBnYV9leGNlcHRpb247IFR5cGU6IFRBQkxFIERBVEE7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6 IHBvc3RncmVzCi0tCgpDT1BZIHBnYV9leGNlcHRpb24gKGpleGlkLCBqZXhzY2lkLCBqZXhkYXRl LCBqZXh0aW1lKSBGUk9NIHN0ZGluOwpcLgoKCi0tCi0tIERhdGEgZm9yIE5hbWU6IHBnYV9qb2I7 IFR5cGU6IFRBQkxFIERBVEE7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3RncmVzCi0tCgpD T1BZIHBnYV9qb2IgKGpvYmlkLCBqb2JqY2xpZCwgam9ibmFtZSwgam9iZGVzYywgam9iaG9zdGFn ZW50LCBqb2JlbmFibGVkLCBqb2JjcmVhdGVkLCBqb2JjaGFuZ2VkLCBqb2JhZ2VudGlkLCBqb2Ju ZXh0cnVuLCBqb2JsYXN0cnVuKSBGUk9NIHN0ZGluOwoyCTEJam9iMgkJCXQJMjAxNi0xMC0yMSAx NTo1Njo0Mi43ODMwNTMrMDEJMjAxNi0xMC0yMSAxNTo1Njo0Mi43ODMwNTMrMDEJXE4JXE4JXE4K MQkxCWpvYjEJVGhpcyBpcyBqb2IgMS4gV2Fob28JCXQJMjAxNi0xMC0wNCAxNDo0NToyNi45NzIx NSswMQkyMDE2LTEwLTA0IDE0OjQ1OjI2Ljk3MjE1KzAxCVxOCTIwMTgtMDMtMDUgMDM6MDQ6MDAr MDAJMjAxNy0wOS0wNiAwOToyNjo1MC4wMDQ0MSswMQpcLgoKCi0tCi0tIERhdGEgZm9yIE5hbWU6 IHBnYV9qb2JhZ2VudDsgVHlwZTogVEFCTEUgREFUQTsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjog cG9zdGdyZXMKLS0KCkNPUFkgcGdhX2pvYmFnZW50IChqYWdwaWQsIGphZ2xvZ2ludGltZSwgamFn c3RhdGlvbikgRlJPTSBzdGRpbjsKMTMxMjEJMjAxNy0wOS0wNyAxNDo0MDo0NC44ODQxODQrMDEJ cGlyYW5oYQpcLgoKCi0tCi0tIERhdGEgZm9yIE5hbWU6IHBnYV9qb2JjbGFzczsgVHlwZTogVEFC TEUgREFUQTsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkNPUFkgcGdhX2pv YmNsYXNzIChqY2xpZCwgamNsbmFtZSkgRlJPTSBzdGRpbjsKMQlSb3V0aW5lIE1haW50ZW5hbmNl CjIJRGF0YSBJbXBvcnQKMwlEYXRhIEV4cG9ydAo0CURhdGEgU3VtbWFyaXNhdGlvbgo1CU1pc2Nl bGxhbmVvdXMKXC4KCgotLQotLSBEYXRhIGZvciBOYW1lOiBwZ2Ffam9ibG9nOyBUeXBlOiBUQUJM RSBEQVRBOyBTY2hlbWE6IHBnYWdlbnQ7IE93bmVyOiBwb3N0Z3JlcwotLQoKQ09QWSBwZ2Ffam9i bG9nIChqbGdpZCwgamxnam9iaWQsIGpsZ3N0YXR1cywgamxnc3RhcnQsIGpsZ2R1cmF0aW9uKSBG Uk9NIHN0ZGluOwoxCTEJcwkyMDE3LTA5LTA2IDA5OjI2OjUwLjAwOTg5KzAxCTAwOjAwOjAwLjYw MDE3ClwuCgoKLS0KLS0gRGF0YSBmb3IgTmFtZTogcGdhX2pvYnN0ZXA7IFR5cGU6IFRBQkxFIERB VEE7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3RncmVzCi0tCgpDT1BZIHBnYV9qb2JzdGVw IChqc3RpZCwganN0am9iaWQsIGpzdG5hbWUsIGpzdGRlc2MsIGpzdGVuYWJsZWQsIGpzdGtpbmQs IGpzdGNvZGUsIGpzdGNvbm5zdHIsIGpzdGRibmFtZSwganN0b25lcnJvciwganNjbmV4dHJ1bikg RlJPTSBzdGRpbjsKMQkxCXN0ZXAxeHgJCXQJcwlWQUNVVU07CQlwb3N0Z3JlcwlzCVxOCjIJMglz dGVwMgkJdAlzCVZBQ1VVTTsJCXBvc3RncmVzCWYJXE4KXC4KCgotLQotLSBEYXRhIGZvciBOYW1l OiBwZ2Ffam9ic3RlcGxvZzsgVHlwZTogVEFCTEUgREFUQTsgU2NoZW1hOiBwZ2FnZW50OyBPd25l cjogcG9zdGdyZXMKLS0KCkNPUFkgcGdhX2pvYnN0ZXBsb2cgKGpzbGlkLCBqc2xqbGdpZCwganNs anN0aWQsIGpzbHN0YXR1cywganNscmVzdWx0LCBqc2xzdGFydCwganNsZHVyYXRpb24sIGpzbG91 dHB1dCkgRlJPTSBzdGRpbjsKMQkxCTEJcwkwCTIwMTctMDktMDYgMDk6MjY6NTAuMDE0Nzg3KzAx CTAwOjAwOjAwLjU5NDY0CQpcLgoKCi0tCi0tIERhdGEgZm9yIE5hbWU6IHBnYV9zY2hlZHVsZTsg VHlwZTogVEFCTEUgREFUQTsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkNP UFkgcGdhX3NjaGVkdWxlIChqc2NpZCwganNjam9iaWQsIGpzY25hbWUsIGpzY2Rlc2MsIGpzY2Vu YWJsZWQsIGpzY3N0YXJ0LCBqc2NlbmQsIGpzY21pbnV0ZXMsIGpzY2hvdXJzLCBqc2N3ZWVrZGF5 cywganNjbW9udGhkYXlzLCBqc2Ntb250aHMpIEZST00gc3RkaW47CjEJMQlzY2hlZDEJCXQJMjAx OC0wMi0yNiAxNjo0MTozMiswMAlcTgl7ZixmLGYsZix0LGYsZixmLGYsZixmLGYsZixmLGYsZixm LGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYs ZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGZ9CXtmLGYsZix0LGYsZixmLGYsZixmLGYsZixm LGYsZixmLGYsZixmLGYsZixmLGYsZn0Je2YsdCxmLGYsZixmLGZ9CXtmLGYsZixmLGYsZixmLGYs ZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGYsZixmLGZ9CXtmLGYsZixm LGYsZixmLGYsZixmLGYsZn0KXC4KCgotLQotLSBOYW1lOiBwZ2FfZXhjZXB0aW9uX2pleGlkX3Nl cTsgVHlwZTogU0VRVUVOQ0UgU0VUOyBTY2hlbWE6IHBnYWdlbnQ7IE93bmVyOiBwb3N0Z3Jlcwot LQoKU0VMRUNUIHBnX2NhdGFsb2cuc2V0dmFsKCdwZ2FfZXhjZXB0aW9uX2pleGlkX3NlcScsIDEs IGZhbHNlKTsKCgotLQotLSBOYW1lOiBwZ2Ffam9iX2pvYmlkX3NlcTsgVHlwZTogU0VRVUVOQ0Ug U0VUOyBTY2hlbWE6IHBnYWdlbnQ7IE93bmVyOiBwb3N0Z3JlcwotLQoKU0VMRUNUIHBnX2NhdGFs b2cuc2V0dmFsKCdwZ2Ffam9iX2pvYmlkX3NlcScsIDIsIHRydWUpOwoKCi0tCi0tIE5hbWU6IHBn YV9qb2JjbGFzc19qY2xpZF9zZXE7IFR5cGU6IFNFUVVFTkNFIFNFVDsgU2NoZW1hOiBwZ2FnZW50 OyBPd25lcjogcG9zdGdyZXMKLS0KClNFTEVDVCBwZ19jYXRhbG9nLnNldHZhbCgncGdhX2pvYmNs YXNzX2pjbGlkX3NlcScsIDUsIHRydWUpOwoKCi0tCi0tIE5hbWU6IHBnYV9qb2Jsb2dfamxnaWRf c2VxOyBUeXBlOiBTRVFVRU5DRSBTRVQ7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3RncmVz Ci0tCgpTRUxFQ1QgcGdfY2F0YWxvZy5zZXR2YWwoJ3BnYV9qb2Jsb2dfamxnaWRfc2VxJywgMSwg dHJ1ZSk7CgoKLS0KLS0gTmFtZTogcGdhX2pvYnN0ZXBfanN0aWRfc2VxOyBUeXBlOiBTRVFVRU5D RSBTRVQ7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3RncmVzCi0tCgpTRUxFQ1QgcGdfY2F0 YWxvZy5zZXR2YWwoJ3BnYV9qb2JzdGVwX2pzdGlkX3NlcScsIDQsIHRydWUpOwoKCi0tCi0tIE5h bWU6IHBnYV9qb2JzdGVwbG9nX2pzbGlkX3NlcTsgVHlwZTogU0VRVUVOQ0UgU0VUOyBTY2hlbWE6 IHBnYWdlbnQ7IE93bmVyOiBwb3N0Z3JlcwotLQoKU0VMRUNUIHBnX2NhdGFsb2cuc2V0dmFsKCdw Z2Ffam9ic3RlcGxvZ19qc2xpZF9zZXEnLCAxLCB0cnVlKTsKCgotLQotLSBOYW1lOiBwZ2Ffc2No ZWR1bGVfanNjaWRfc2VxOyBUeXBlOiBTRVFVRU5DRSBTRVQ7IFNjaGVtYTogcGdhZ2VudDsgT3du ZXI6IHBvc3RncmVzCi0tCgpTRUxFQ1QgcGdfY2F0YWxvZy5zZXR2YWwoJ3BnYV9zY2hlZHVsZV9q c2NpZF9zZXEnLCAxLCB0cnVlKTsKCgotLQotLSBOYW1lOiBwZ2FfZXhjZXB0aW9uIHBnYV9leGNl cHRpb25fcGtleTsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9z dGdyZXMKLS0KCkFMVEVSIFRBQkxFIE9OTFkgcGdhX2V4Y2VwdGlvbgogICAgQUREIENPTlNUUkFJ TlQgcGdhX2V4Y2VwdGlvbl9wa2V5IFBSSU1BUlkgS0VZIChqZXhpZCk7CgoKLS0KLS0gTmFtZTog cGdhX2pvYiBwZ2Ffam9iX3BrZXk7IFR5cGU6IENPTlNUUkFJTlQ7IFNjaGVtYTogcGdhZ2VudDsg T3duZXI6IHBvc3RncmVzCi0tCgpBTFRFUiBUQUJMRSBPTkxZIHBnYV9qb2IKICAgIEFERCBDT05T VFJBSU5UIHBnYV9qb2JfcGtleSBQUklNQVJZIEtFWSAoam9iaWQpOwoKCi0tCi0tIE5hbWU6IHBn YV9qb2JhZ2VudCBwZ2Ffam9iYWdlbnRfcGtleTsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiBw Z2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkFMVEVSIFRBQkxFIE9OTFkgcGdhX2pvYmFnZW50 CiAgICBBREQgQ09OU1RSQUlOVCBwZ2Ffam9iYWdlbnRfcGtleSBQUklNQVJZIEtFWSAoamFncGlk KTsKCgotLQotLSBOYW1lOiBwZ2Ffam9iY2xhc3MgcGdhX2pvYmNsYXNzX3BrZXk7IFR5cGU6IENP TlNUUkFJTlQ7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3RncmVzCi0tCgpBTFRFUiBUQUJM RSBPTkxZIHBnYV9qb2JjbGFzcwogICAgQUREIENPTlNUUkFJTlQgcGdhX2pvYmNsYXNzX3BrZXkg UFJJTUFSWSBLRVkgKGpjbGlkKTsKCgotLQotLSBOYW1lOiBwZ2Ffam9ibG9nIHBnYV9qb2Jsb2df cGtleTsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMK LS0KCkFMVEVSIFRBQkxFIE9OTFkgcGdhX2pvYmxvZwogICAgQUREIENPTlNUUkFJTlQgcGdhX2pv YmxvZ19wa2V5IFBSSU1BUlkgS0VZIChqbGdpZCk7CgoKLS0KLS0gTmFtZTogcGdhX2pvYnN0ZXAg cGdhX2pvYnN0ZXBfcGtleTsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiBwZ2FnZW50OyBPd25l cjogcG9zdGdyZXMKLS0KCkFMVEVSIFRBQkxFIE9OTFkgcGdhX2pvYnN0ZXAKICAgIEFERCBDT05T VFJBSU5UIHBnYV9qb2JzdGVwX3BrZXkgUFJJTUFSWSBLRVkgKGpzdGlkKTsKCgotLQotLSBOYW1l OiBwZ2Ffam9ic3RlcGxvZyBwZ2Ffam9ic3RlcGxvZ19wa2V5OyBUeXBlOiBDT05TVFJBSU5UOyBT Y2hlbWE6IHBnYWdlbnQ7IE93bmVyOiBwb3N0Z3JlcwotLQoKQUxURVIgVEFCTEUgT05MWSBwZ2Ff am9ic3RlcGxvZwogICAgQUREIENPTlNUUkFJTlQgcGdhX2pvYnN0ZXBsb2dfcGtleSBQUklNQVJZ IEtFWSAoanNsaWQpOwoKCi0tCi0tIE5hbWU6IHBnYV9zY2hlZHVsZSBwZ2Ffc2NoZWR1bGVfcGtl eTsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0K CkFMVEVSIFRBQkxFIE9OTFkgcGdhX3NjaGVkdWxlCiAgICBBREQgQ09OU1RSQUlOVCBwZ2Ffc2No ZWR1bGVfcGtleSBQUklNQVJZIEtFWSAoanNjaWQpOwoKCi0tCi0tIE5hbWU6IHBnYV9leGNlcHRp b25fZGF0ZXRpbWU7IFR5cGU6IElOREVYOyBTY2hlbWE6IHBnYWdlbnQ7IE93bmVyOiBwb3N0Z3Jl cwotLQoKQ1JFQVRFIFVOSVFVRSBJTkRFWCBwZ2FfZXhjZXB0aW9uX2RhdGV0aW1lIE9OIHBnYV9l eGNlcHRpb24gVVNJTkcgYnRyZWUgKGpleGRhdGUsIGpleHRpbWUpOwoKCi0tCi0tIE5hbWU6IHBn YV9leGNlcHRpb25famV4c2NpZDsgVHlwZTogSU5ERVg7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6 IHBvc3RncmVzCi0tCgpDUkVBVEUgSU5ERVggcGdhX2V4Y2VwdGlvbl9qZXhzY2lkIE9OIHBnYV9l eGNlcHRpb24gVVNJTkcgYnRyZWUgKGpleHNjaWQpOwoKCi0tCi0tIE5hbWU6IHBnYV9qb2JjbGFz c19uYW1lOyBUeXBlOiBJTkRFWDsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0K CkNSRUFURSBVTklRVUUgSU5ERVggcGdhX2pvYmNsYXNzX25hbWUgT04gcGdhX2pvYmNsYXNzIFVT SU5HIGJ0cmVlIChqY2xuYW1lKTsKCgotLQotLSBOYW1lOiBwZ2Ffam9ibG9nX2pvYmlkOyBUeXBl OiBJTkRFWDsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkNSRUFURSBJTkRF WCBwZ2Ffam9ibG9nX2pvYmlkIE9OIHBnYV9qb2Jsb2cgVVNJTkcgYnRyZWUgKGpsZ2pvYmlkKTsK CgotLQotLSBOYW1lOiBwZ2Ffam9ic2NoZWR1bGVfam9iaWQ7IFR5cGU6IElOREVYOyBTY2hlbWE6 IHBnYWdlbnQ7IE93bmVyOiBwb3N0Z3JlcwotLQoKQ1JFQVRFIElOREVYIHBnYV9qb2JzY2hlZHVs ZV9qb2JpZCBPTiBwZ2Ffc2NoZWR1bGUgVVNJTkcgYnRyZWUgKGpzY2pvYmlkKTsKCgotLQotLSBO YW1lOiBwZ2Ffam9ic3RlcF9qb2JpZDsgVHlwZTogSU5ERVg7IFNjaGVtYTogcGdhZ2VudDsgT3du ZXI6IHBvc3RncmVzCi0tCgpDUkVBVEUgSU5ERVggcGdhX2pvYnN0ZXBfam9iaWQgT04gcGdhX2pv YnN0ZXAgVVNJTkcgYnRyZWUgKGpzdGpvYmlkKTsKCgotLQotLSBOYW1lOiBwZ2Ffam9ic3RlcGxv Z19qc2xpZDsgVHlwZTogSU5ERVg7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3RncmVzCi0t CgpDUkVBVEUgSU5ERVggcGdhX2pvYnN0ZXBsb2dfanNsaWQgT04gcGdhX2pvYnN0ZXBsb2cgVVNJ TkcgYnRyZWUgKGpzbGpsZ2lkKTsKCgotLQotLSBOYW1lOiBwZ2FfZXhjZXB0aW9uIHBnYV9leGNl cHRpb25fdHJpZ2dlcjsgVHlwZTogVFJJR0dFUjsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9z dGdyZXMKLS0KCkNSRUFURSBUUklHR0VSIHBnYV9leGNlcHRpb25fdHJpZ2dlciBBRlRFUiBJTlNF UlQgT1IgREVMRVRFIE9SIFVQREFURSBPTiBwZ2FfZXhjZXB0aW9uIEZPUiBFQUNIIFJPVyBFWEVD VVRFIFBST0NFRFVSRSBwZ2FfZXhjZXB0aW9uX3RyaWdnZXIoKTsKCgotLQotLSBOYW1lOiBUUklH R0VSIHBnYV9leGNlcHRpb25fdHJpZ2dlciBPTiBwZ2FfZXhjZXB0aW9uOyBUeXBlOiBDT01NRU5U OyBTY2hlbWE6IHBnYWdlbnQ7IE93bmVyOiBwb3N0Z3JlcwotLQoKQ09NTUVOVCBPTiBUUklHR0VS IHBnYV9leGNlcHRpb25fdHJpZ2dlciBPTiBwZ2FfZXhjZXB0aW9uIElTICdVcGRhdGUgdGhlIGpv YicncyBuZXh0IHJ1biB0aW1lIHdoZW5ldmVyIGFuIGV4Y2VwdGlvbiBjaGFuZ2VzJzsKCgotLQot LSBOYW1lOiBwZ2Ffam9iIHBnYV9qb2JfdHJpZ2dlcjsgVHlwZTogVFJJR0dFUjsgU2NoZW1hOiBw Z2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkNSRUFURSBUUklHR0VSIHBnYV9qb2JfdHJpZ2dl ciBCRUZPUkUgVVBEQVRFIE9OIHBnYV9qb2IgRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJF IHBnYV9qb2JfdHJpZ2dlcigpOwoKCi0tCi0tIE5hbWU6IFRSSUdHRVIgcGdhX2pvYl90cmlnZ2Vy IE9OIHBnYV9qb2I7IFR5cGU6IENPTU1FTlQ7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3Rn cmVzCi0tCgpDT01NRU5UIE9OIFRSSUdHRVIgcGdhX2pvYl90cmlnZ2VyIE9OIHBnYV9qb2IgSVMg J1VwZGF0ZSB0aGUgam9iJydzIG5leHQgcnVuIHRpbWUuJzsKCgotLQotLSBOYW1lOiBwZ2Ffc2No ZWR1bGUgcGdhX3NjaGVkdWxlX3RyaWdnZXI7IFR5cGU6IFRSSUdHRVI7IFNjaGVtYTogcGdhZ2Vu dDsgT3duZXI6IHBvc3RncmVzCi0tCgpDUkVBVEUgVFJJR0dFUiBwZ2Ffc2NoZWR1bGVfdHJpZ2dl ciBBRlRFUiBJTlNFUlQgT1IgREVMRVRFIE9SIFVQREFURSBPTiBwZ2Ffc2NoZWR1bGUgRk9SIEVB Q0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIHBnYV9zY2hlZHVsZV90cmlnZ2VyKCk7CgoKLS0KLS0g TmFtZTogVFJJR0dFUiBwZ2Ffc2NoZWR1bGVfdHJpZ2dlciBPTiBwZ2Ffc2NoZWR1bGU7IFR5cGU6 IENPTU1FTlQ7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3RncmVzCi0tCgpDT01NRU5UIE9O IFRSSUdHRVIgcGdhX3NjaGVkdWxlX3RyaWdnZXIgT04gcGdhX3NjaGVkdWxlIElTICdVcGRhdGUg dGhlIGpvYicncyBuZXh0IHJ1biB0aW1lIHdoZW5ldmVyIGEgc2NoZWR1bGUgY2hhbmdlcyc7CgoK LS0KLS0gTmFtZTogcGdhX2V4Y2VwdGlvbiBwZ2FfZXhjZXB0aW9uX2pleHNjaWRfZmtleTsgVHlw ZTogRksgQ09OU1RSQUlOVDsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkFM VEVSIFRBQkxFIE9OTFkgcGdhX2V4Y2VwdGlvbgogICAgQUREIENPTlNUUkFJTlQgcGdhX2V4Y2Vw dGlvbl9qZXhzY2lkX2ZrZXkgRk9SRUlHTiBLRVkgKGpleHNjaWQpIFJFRkVSRU5DRVMgcGdhX3Nj aGVkdWxlKGpzY2lkKSBPTiBVUERBVEUgUkVTVFJJQ1QgT04gREVMRVRFIENBU0NBREU7CgoKLS0K LS0gTmFtZTogcGdhX2pvYiBwZ2Ffam9iX2pvYmFnZW50aWRfZmtleTsgVHlwZTogRksgQ09OU1RS QUlOVDsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkFMVEVSIFRBQkxFIE9O TFkgcGdhX2pvYgogICAgQUREIENPTlNUUkFJTlQgcGdhX2pvYl9qb2JhZ2VudGlkX2ZrZXkgRk9S RUlHTiBLRVkgKGpvYmFnZW50aWQpIFJFRkVSRU5DRVMgcGdhX2pvYmFnZW50KGphZ3BpZCkgT04g VVBEQVRFIFJFU1RSSUNUIE9OIERFTEVURSBTRVQgTlVMTDsKCgotLQotLSBOYW1lOiBwZ2Ffam9i IHBnYV9qb2Jfam9iamNsaWRfZmtleTsgVHlwZTogRksgQ09OU1RSQUlOVDsgU2NoZW1hOiBwZ2Fn ZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkFMVEVSIFRBQkxFIE9OTFkgcGdhX2pvYgogICAgQURE IENPTlNUUkFJTlQgcGdhX2pvYl9qb2JqY2xpZF9ma2V5IEZPUkVJR04gS0VZIChqb2JqY2xpZCkg UkVGRVJFTkNFUyBwZ2Ffam9iY2xhc3MoamNsaWQpIE9OIFVQREFURSBSRVNUUklDVCBPTiBERUxF VEUgUkVTVFJJQ1Q7CgoKLS0KLS0gTmFtZTogcGdhX2pvYmxvZyBwZ2Ffam9ibG9nX2psZ2pvYmlk X2ZrZXk7IFR5cGU6IEZLIENPTlNUUkFJTlQ7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3Rn cmVzCi0tCgpBTFRFUiBUQUJMRSBPTkxZIHBnYV9qb2Jsb2cKICAgIEFERCBDT05TVFJBSU5UIHBn YV9qb2Jsb2dfamxnam9iaWRfZmtleSBGT1JFSUdOIEtFWSAoamxnam9iaWQpIFJFRkVSRU5DRVMg cGdhX2pvYihqb2JpZCkgT04gVVBEQVRFIFJFU1RSSUNUIE9OIERFTEVURSBDQVNDQURFOwoKCi0t Ci0tIE5hbWU6IHBnYV9qb2JzdGVwIHBnYV9qb2JzdGVwX2pzdGpvYmlkX2ZrZXk7IFR5cGU6IEZL IENPTlNUUkFJTlQ7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3RncmVzCi0tCgpBTFRFUiBU QUJMRSBPTkxZIHBnYV9qb2JzdGVwCiAgICBBREQgQ09OU1RSQUlOVCBwZ2Ffam9ic3RlcF9qc3Rq b2JpZF9ma2V5IEZPUkVJR04gS0VZIChqc3Rqb2JpZCkgUkVGRVJFTkNFUyBwZ2Ffam9iKGpvYmlk KSBPTiBVUERBVEUgUkVTVFJJQ1QgT04gREVMRVRFIENBU0NBREU7CgoKLS0KLS0gTmFtZTogcGdh X2pvYnN0ZXBsb2cgcGdhX2pvYnN0ZXBsb2dfanNsamxnaWRfZmtleTsgVHlwZTogRksgQ09OU1RS QUlOVDsgU2NoZW1hOiBwZ2FnZW50OyBPd25lcjogcG9zdGdyZXMKLS0KCkFMVEVSIFRBQkxFIE9O TFkgcGdhX2pvYnN0ZXBsb2cKICAgIEFERCBDT05TVFJBSU5UIHBnYV9qb2JzdGVwbG9nX2pzbGps Z2lkX2ZrZXkgRk9SRUlHTiBLRVkgKGpzbGpsZ2lkKSBSRUZFUkVOQ0VTIHBnYV9qb2Jsb2coamxn aWQpIE9OIFVQREFURSBSRVNUUklDVCBPTiBERUxFVEUgQ0FTQ0FERTsKCgotLQotLSBOYW1lOiBw Z2Ffam9ic3RlcGxvZyBwZ2Ffam9ic3RlcGxvZ19qc2xqc3RpZF9ma2V5OyBUeXBlOiBGSyBDT05T VFJBSU5UOyBTY2hlbWE6IHBnYWdlbnQ7IE93bmVyOiBwb3N0Z3JlcwotLQoKQUxURVIgVEFCTEUg T05MWSBwZ2Ffam9ic3RlcGxvZwogICAgQUREIENPTlNUUkFJTlQgcGdhX2pvYnN0ZXBsb2dfanNs anN0aWRfZmtleSBGT1JFSUdOIEtFWSAoanNsanN0aWQpIFJFRkVSRU5DRVMgcGdhX2pvYnN0ZXAo anN0aWQpIE9OIFVQREFURSBSRVNUUklDVCBPTiBERUxFVEUgQ0FTQ0FERTsKCgotLQotLSBOYW1l OiBwZ2Ffc2NoZWR1bGUgcGdhX3NjaGVkdWxlX2pzY2pvYmlkX2ZrZXk7IFR5cGU6IEZLIENPTlNU UkFJTlQ7IFNjaGVtYTogcGdhZ2VudDsgT3duZXI6IHBvc3RncmVzCi0tCgpBTFRFUiBUQUJMRSBP TkxZIHBnYV9zY2hlZHVsZQogICAgQUREIENPTlNUUkFJTlQgcGdhX3NjaGVkdWxlX2pzY2pvYmlk X2ZrZXkgRk9SRUlHTiBLRVkgKGpzY2pvYmlkKSBSRUZFUkVOQ0VTIHBnYV9qb2Ioam9iaWQpIE9O IFVQREFURSBSRVNUUklDVCBPTiBERUxFVEUgQ0FTQ0FERTsKCgotLQotLSBQb3N0Z3JlU1FMIGRh dGFiYXNlIGR1bXAgY29tcGxldGUKLS0KCg== --f403045cf6b87d9cd2056632fd57--