Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aoAHk-0007PP-TE for pgadmin-hackers@arkaria.postgresql.org; Thu, 07 Apr 2016 13:47:49 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1aoAHk-0004Cf-Fq for pgadmin-hackers@arkaria.postgresql.org; Thu, 07 Apr 2016 13:47:48 +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.84_2) (envelope-from ) id 1aoAHh-00049O-Uc for pgadmin-hackers@postgresql.org; Thu, 07 Apr 2016 13:47:46 +0000 Received: from mail-vk0-x236.google.com ([2607:f8b0:400c:c05::236]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1aoAHb-000206-3l for pgadmin-hackers@postgresql.org; Thu, 07 Apr 2016 13:47:45 +0000 Received: by mail-vk0-x236.google.com with SMTP id e185so99379294vkb.1 for ; Thu, 07 Apr 2016 06:47:38 -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:date:message-id:subject:from:to :cc; bh=Xku+lvuxx/jorrFeL5u/CKj5YOuDCIGNvM5PNORx2f4=; b=HgfKh0Yv+NbtYnnUx6swgg+SHicgPEx2NrkbIgMaalo75Av7x5oPkEj0KkGcFGhvRq D3bQkLiGv+1Nlvmbs8LsSzHEh7ee1GS2ya+RR+Y8dqVFRKp5/Nsvs2EpxCyX02i+NSRw xzqkbdcdeCbUYzUfuDbqIG32o2Ewd0AKsPwt3+Dur3w+3UJ4doH4RjVIR5klegFAQVRE fgNWHxfze6oK+bFfMwfKjtXqzlkpkb0bicNjHNwojaCm+z04liBzhRoqS3lBJEw5D6b3 ZfEB7Nn5epUjEt29EACioq8cu6Pj1FTWGLSYUOYEeYFTNYh38OZp4AjuhMcu/UstfNuT bGkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=Xku+lvuxx/jorrFeL5u/CKj5YOuDCIGNvM5PNORx2f4=; b=guXk+vuCGSEIlCJid1gmbS90plqyiwLZwwvZokIlDqCHFXaVA2Pe8onQq259EtEFp4 z02Ss9gSJHP0fVdjmqhtuQ3ISBWFItwHkDGChtDuM/vajlrifJDh9ochVHGzSPAEizMa 1o1pgaCknGX+zu4H7uCWHWy9yk2fj8xJawDLodKhYrURm2AniJI9seiPdobIqoTBJ4Tn waHwdD5DAwIu0r59Nprub7h6Gdc2lMubUtfJ+eyJ22GxpDiSPyIPFf0WVDQzIvfI06U7 4xpd537YaVmWj+s/o3J8l4NJzr+ZpjQmEBFcerWBI8tmcFVEVgMlERaLEMG7eJ/pEuGn awPQ== X-Gm-Message-State: AD7BkJJsIwe5KSZfxhq3xLGzosJ032ugkuhikO6ZsxO5UaCUm852Vtc+cv343GNBNY/HHRL4gPk+eSG2mjTjGWbh MIME-Version: 1.0 X-Received: by 10.31.170.196 with SMTP id t187mr1399414vke.66.1460036857198; Thu, 07 Apr 2016 06:47:37 -0700 (PDT) Received: by 10.31.164.75 with HTTP; Thu, 7 Apr 2016 06:47:37 -0700 (PDT) In-Reply-To: References: Date: Thu, 7 Apr 2016 19:17:37 +0530 Message-ID: Subject: Re: PATCH: PGADMIN 4 - FTS templates node From: Sanket Mehta To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a114325ec3ba946052fe552c8 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a114325ec3ba946052fe552c8 Content-Type: multipart/alternative; boundary=001a114325ec3ba93f052fe552c6 --001a114325ec3ba93f052fe552c6 Content-Type: text/plain; charset=UTF-8 Hi, Sorry about that issue, Its resolved now. PFA the right patch with this mail. Regards, Sanket Mehta Sr Software engineer Enterprisedb On Thu, Apr 7, 2016 at 2:39 PM, Dave Page wrote: > Hi > > On Mon, Mar 28, 2016 at 10:01 AM, Sanket Mehta > wrote: > > Hi Dave, > > > > I have found out the root cause of this issue. > > > > This issue is occurring at your side as you are using python 2.7 so in > that > > case sql query returned from sql template is of type 'unicode'. > > And in __init__.py file we have checked if the sql query is of string > type > > then only we would proceed further. > > > > I was not getting this issue as I was using python 3.0 > > > > I have resolved this issue and some other typo errors in comments and > patch > > is attached with this mail. > > > > Please do review it and let me know in case of any issues. > > Did you send the right patch? I'm still getting the error > (specifically, when rendering update.sql, render_template throws an > exception "can't adapt type 'Undefined'") > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --001a114325ec3ba93f052fe552c6 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

Sorry about that issue,
<= br>
Its resolved now.

PFA the right patc= h with this mail.


Regards,=
Sanket Mehta
Sr Software engineer
Enterprisedb

On Thu, Apr 7, 2016 at 2:39 PM, Dave Page <= dpage@pgadmin.org> wrote:
H= i

On Mon, Mar 28, 2016 at 10:01 AM, Sanket Mehta
<sanket.mehta@enterpris= edb.com> wrote:
> Hi Dave,
>
> I have found out the root cause of this issue.
>
> This issue is occurring at your side as you are using python 2.7 so in= that
> case sql query returned from sql template is of type 'unicode'= .
> And in __init__.py file we have checked if the sql query is of string = type
> then only we would proceed further.
>
> I was not getting this issue as I was using python 3.0
>
> I have resolved this issue and some other typo errors in comments and = patch
> is attached with this mail.
>
> Please do review it and let me know in case of any issues.

Did you send the right patch? I'm still getting the error
(specifically, when rendering update.sql, render_template throws an
exception "can't adapt type 'Undefined'")

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

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

--001a114325ec3ba93f052fe552c6-- --001a114325ec3ba946052fe552c8 Content-Type: text/x-patch; charset=US-ASCII; name="fts_templatev8.patch" Content-Disposition: attachment; filename="fts_templatev8.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_imqc8ryk0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvX19p bml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL19faW5p dF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJj ODA0NDAKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNf dGVtcGxhdGVzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNzE5IEBACisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxNiwgVGhl IHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlz IHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyIiIkRlZmluZXMgdmll d3MgZm9yIG1hbmFnZW1lbnQgb2YgRnRzIFRlbXBsYXRlIG5vZGUiIiIKKwor aW1wb3J0IGpzb24KK2Zyb20gZmxhc2sgaW1wb3J0IHJlbmRlcl90ZW1wbGF0 ZSwgbWFrZV9yZXNwb25zZSwgY3VycmVudF9hcHAsIHJlcXVlc3QsIGpzb25p ZnkKK2Zyb20gZmxhc2suZXh0LmJhYmVsIGltcG9ydCBnZXR0ZXh0Citmcm9t IHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNl LCBcCisgICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlLCBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IKK2Zyb20gcGdhZG1pbi5icm93c2VyLnV0aWxz IGltcG9ydCBQR0NoaWxkTm9kZVZpZXcKK2Zyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy51dGls cyBpbXBvcnQgU2NoZW1hQ2hpbGRNb2R1bGUKK2Zyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMgaW1wb3J0IERh dGFiYXNlTW9kdWxlCitmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQg cHJlY29uZGl0aW9uX3JlcXVpcmVkCitmcm9tIHBnYWRtaW4udXRpbHMuZHJp dmVyIGltcG9ydCBnZXRfZHJpdmVyCitmcm9tIGNvbmZpZyBpbXBvcnQgUEdf REVGQVVMVF9EUklWRVIKK2Zyb20gZnVuY3Rvb2xzIGltcG9ydCB3cmFwcwor CisKK2NsYXNzIEZ0c1RlbXBsYXRlTW9kdWxlKFNjaGVtYUNoaWxkTW9kdWxl KToKKyAgICAiIiIKKyAgICAgY2xhc3MgRnRzVGVtcGxhdGVNb2R1bGUoU2No ZW1hQ2hpbGRNb2R1bGUpCisKKyAgICAgICAgQSBtb2R1bGUgY2xhc3MgZm9y IEZUUyBUZW1wbGF0ZSBub2RlIGRlcml2ZWQgZnJvbSBTY2hlbWFDaGlsZE1v ZHVsZS4KKworICAgIE1ldGhvZHM6CisgICAgLS0tLS0tLQorICAgICogX19p bml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAgICAgLSBNZXRob2QgaXMgdXNl ZCB0byBpbml0aWFsaXplIHRoZSBGdHNUZW1wbGF0ZU1vZHVsZSBhbmQgaXQn cyBiYXNlIG1vZHVsZS4KKworICAgICogZ2V0X25vZGVzKGdpZCwgc2lkLCBk aWQsIHNjaWQpCisgICAgICAtIE1ldGhvZCBpcyB1c2VkIHRvIGdlbmVyYXRl IHRoZSBicm93c2VyIGNvbGxlY3Rpb24gbm9kZS4KKworICAgICogbm9kZV9p bm9kZSgpCisgICAgICAtIE1ldGhvZCBpcyBvdmVycmlkZGVuIGZyb20gaXRz IGJhc2UgY2xhc3MgdG8gbWFrZSB0aGUgbm9kZSBhcyBsZWFmIG5vZGUuCisK KyAgICAqIHNjcmlwdF9sb2FkKCkKKyAgICAgIC0gTG9hZCB0aGUgbW9kdWxl IHNjcmlwdCBmb3IgRlRTIFRlbXBsYXRlLCB3aGVuIGFueSBvZiB0aGUgc2No ZW1hIG5vZGUgaXMKKyAgICAgICAgaW5pdGlhbGl6ZWQuCisgICAgIiIiCisg ICAgTk9ERV9UWVBFID0gJ2Z0c190ZW1wbGF0ZScKKyAgICBDT0xMRUNUSU9O X0xBQkVMID0gZ2V0dGV4dCgnRlRTIFRlbXBsYXRlcycpCisKKyAgICBkZWYg X19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc2Vs Zi5taW5fdmVyID0gTm9uZQorICAgICAgICBzZWxmLm1heF92ZXIgPSBOb25l CisgICAgICAgIHN1cGVyKEZ0c1RlbXBsYXRlTW9kdWxlLCBzZWxmKS5fX2lu aXRfXygqYXJncywgKiprd2FyZ3MpCisKKyAgICBkZWYgZ2V0X25vZGVzKHNl bGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAg ICAgR2VuZXJhdGUgdGhlIGNvbGxlY3Rpb24gbm9kZQorICAgICAgICA6cGFy YW0gZ2lkOiBncm91cCBpZAorICAgICAgICA6cGFyYW0gc2lkOiBzZXJ2ZXIg aWQKKyAgICAgICAgOnBhcmFtIGRpZDogZGF0YWJhc2UgaWQKKyAgICAgICAg OnBhcmFtIHNjaWQ6IHNjaGVtYSBpZAorICAgICAgICAiIiIKKyAgICAgICAg eWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZShz Y2lkKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG5vZGVfaW5vZGUoc2Vs Zik6CisgICAgICAgICIiIgorICAgICAgICBPdmVycmlkZSB0aGUgcHJvcGVy dHkgdG8gbWFrZSB0aGUgbm9kZSBhcyBsZWFmIG5vZGUKKyAgICAgICAgIiIi CisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgQHByb3BlcnR5CisgICAg ZGVmIHNjcmlwdF9sb2FkKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAg TG9hZCB0aGUgbW9kdWxlIHNjcmlwdCBmb3IgZnRzIHRlbXBsYXRlLCB3aGVu IGFueSBvZiB0aGUgc2NoZW1hIG5vZGUgaXMKKyAgICAgICAgaW5pdGlhbGl6 ZWQuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gRGF0YWJhc2VNb2R1 bGUuTk9ERV9UWVBFCisKKworYmx1ZXByaW50ID0gRnRzVGVtcGxhdGVNb2R1 bGUoX19uYW1lX18pCisKKworY2xhc3MgRnRzVGVtcGxhdGVWaWV3KFBHQ2hp bGROb2RlVmlldyk6CisgICAgIiIiCisgICAgY2xhc3MgRnRzVGVtcGxhdGVW aWV3KFBHQ2hpbGROb2RlVmlldykKKworICAgICAgICBBIHZpZXcgY2xhc3Mg Zm9yIEZUUyBUZW1wYWx0ZSBub2RlIGRlcml2ZWQgZnJvbSBQR0NoaWxkTm9k ZVZpZXcuIFRoaXMgY2xhc3MgaXMKKyAgICAgICAgcmVzcG9uc2libGUgZm9y IGFsbCB0aGUgc3R1ZmYgcmVsYXRlZCB0byB2aWV3IGxpa2UgY3JlYXRlL3Vw ZGF0ZS9kZWxldGUKKyAgICAgICAgcmVzcG9uc2libGUgZm9yIGFsbCB0aGUg c3R1ZmYgcmVsYXRlZCB0byB2aWV3IGxpa2UgY3JlYXRlL3VwZGF0ZS9kZWxl dGUKKyAgICAgICAgRlRTIHRlbXBsYXRlLCBzaG93aW5nIHByb3BlcnRpZXMg b2Ygbm9kZSwgc2hvd2luZyBzcWwgaW4gc3FsIHBhbmUuCisKKyAgICBNZXRo b2RzOgorICAgIC0tLS0tLS0KKyAgICAqIF9faW5pdF9fKCoqa3dhcmdzKQor ICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSBGdHNU ZW1wbGF0ZVZpZXcgYW5kIGl0J3MgYmFzZSB2aWV3LgorCisgICAgKiBtb2R1 bGVfanMoKQorICAgICAgLSBUaGlzIHByb3BlcnR5IGRlZmluZXMgKGlmIGph dmFzY3JpcHQpIGV4aXN0cyBmb3IgdGhpcyBub2RlLgorICAgICAgICBPdmVy cmlkZSB0aGlzIHByb3BlcnR5IGZvciB5b3VyIG93biBsb2dpYworCisgICAg KiBjaGVja19wcmVjb25kaXRpb24oKQorICAgICAgLSBUaGlzIGZ1bmN0aW9u IHdpbGwgYmVoYXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwgY2hlY2tz CisgICAgICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5pbmcg dmlldywgaXQgd2lsbCBhbHNvIGF0dGFjaGVzCisgICAgICAgIG1hbmFnZXIs Y29ubiAmIHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCisKKyAg ICAqIGxpc3QoKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8g bGlzdCBhbGwgdGhlICBub2RlcyB3aXRoaW4gdGhhdCBjb2xsZWN0aW9uLgor CisgICAgKiBub2RlcygpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCB1 c2VkIHRvIGNyZWF0ZSBhbGwgdGhlIGNoaWxkIG5vZGUgd2l0aGluIHRoYXQg Y29sbGVjdGlvbi4KKyAgICAgICAgSGVyZSBpdCB3aWxsIGNyZWF0ZSBhbGwg dGhlIEZUUyBUZW1wbGF0ZSBub2Rlcy4KKworICAgICogcHJvcGVydGllcyhn aWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQpCisgICAgICAtIFRoaXMgZnVuY3Rp b24gd2lsbCBzaG93IHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBzZWxlY3RlZCBG VFMgVGVtcGxhdGUgbm9kZQorCisgICAgKiBjcmVhdGUoZ2lkLCBzaWQsIGRp ZCwgc2NpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSB0 aGUgbmV3IEZUUyBUZW1wbGF0ZSBvYmplY3QKKworICAgICogdXBkYXRlKGdp ZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlv biB3aWxsIHVwZGF0ZSB0aGUgZGF0YSBmb3IgdGhlIHNlbGVjdGVkIEZUUyBU ZW1wbGF0ZSBub2RlCisKKyAgICAqIGRlbGV0ZShzZWxmLCBnaWQsIHNpZCwg ZGlkLCBzY2lkLCB0aWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwg ZHJvcCB0aGUgRlRTIFRlbXBsYXRlIG9iamVjdAorCisgICAgKiBtc3FsKGdp ZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlv biBpcyB1c2VkIHRvIHJldHVybiBtb2RpZmllZCBTUUwgZm9yIHRoZSBzZWxl Y3RlZCBGVFMgVGVtcGxhdGUgbm9kZQorCisgICAgKiBnZXRfc3FsKGRhdGEs IHRpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlIHNx bCBmcm9tIG1vZGVsIGRhdGEKKworICAgICogc3FsKGdpZCwgc2lkLCBkaWQs IHNjaWQsICB0aWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2Vu ZXJhdGUgc3FsIHRvIHNob3cgaXQgaW4gc3FsIHBhbmUgZm9yIHRoZSBzZWxl Y3RlZCBGVFMgVGVtcGxhdGUgbm9kZS4KKworICAgICogZ2V0X3R5cGUoKToK KyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIGFsbCB0aGUgdHlw ZXMgZm9yIHNvdXJjZSBhbmQgdGFyZ2V0IHR5cGVzIHNlbGVjdCBjb250cm9s LgorCisgICAgKiBkZXBlbmRlbnRzKGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRp ZCk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24gZ2V0IHRoZSBkZXBlbmRlbnRz IGFuZCByZXR1cm4gYWpheCByZXNwb25zZSBmb3IgdGhlIEZ0cyBUZW1wYWx0 ZSBub2RlLgorCisgICAgKiBkZXBlbmRlbmNpZXMoc2VsZiwgZ2lkLCBzaWQs IGRpZCwgc2NpZCwgdGlkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiBnZXQg dGhlIGRlcGVuZGVuY2llcyBhbmQgcmV0dXJuIGFqYXggcmVzcG9uc2UgZm9y IHRoZSBGVFMgVGVtcGFsdGUgbm9kZS4KKworICAgICIiIgorCisgICAgbm9k ZV90eXBlID0gYmx1ZXByaW50Lm5vZGVfdHlwZQorCisgICAgcGFyZW50X2lk cyA9IFsKKyAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdnaWQnfSwK KyAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdzaWQnfSwKKyAgICAg ICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdkaWQnfSwKKyAgICAgICAgeyd0 eXBlJzogJ2ludCcsICdpZCc6ICdzY2lkJ30KKyAgICBdCisgICAgaWRzID0g WworICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3RpZCd9CisgICAg XQorCisgICAgb3BlcmF0aW9ucyA9IGRpY3QoeworICAgICAgICAnb2JqJzog WworICAgICAgICAgICAgeydnZXQnOiAncHJvcGVydGllcycsICdkZWxldGUn OiAnZGVsZXRlJywgJ3B1dCc6ICd1cGRhdGUnfSwKKyAgICAgICAgICAgIHsn Z2V0JzogJ2xpc3QnLCAncG9zdCc6ICdjcmVhdGUnfQorICAgICAgICBdLAor ICAgICAgICAnY2hpbGRyZW4nOiBbeworICAgICAgICAgICAgJ2dldCc6ICdj aGlsZHJlbicKKyAgICAgICAgfV0sCisgICAgICAgICdkZWxldGUnOiBbeydk ZWxldGUnOiAnZGVsZXRlJ31dLAorICAgICAgICAnbm9kZXMnOiBbeydnZXQn OiAnbm9kZSd9LCB7J2dldCc6ICdub2Rlcyd9XSwKKyAgICAgICAgJ3NxbCc6 IFt7J2dldCc6ICdzcWwnfV0sCisgICAgICAgICdtc3FsJzogW3snZ2V0Jzog J21zcWwnfSwgeydnZXQnOiAnbXNxbCd9XSwKKyAgICAgICAgJ3N0YXRzJzog W3snZ2V0JzogJ3N0YXRpc3RpY3MnfV0sCisgICAgICAgICdkZXBlbmRlbmN5 JzogW3snZ2V0JzogJ2RlcGVuZGVuY2llcyd9XSwKKyAgICAgICAgJ2RlcGVu ZGVudCc6IFt7J2dldCc6ICdkZXBlbmRlbnRzJ31dLAorICAgICAgICAnbW9k dWxlLmpzJzogW3t9LCB7fSwgeydnZXQnOiAnbW9kdWxlX2pzJ31dLAorICAg ICAgICAnZ2V0X2xleGl6ZSc6IFt7J2dldCc6ICdnZXRfbGV4aXplJ30sIHsn Z2V0JzogJ2dldF9sZXhpemUnfV0sCisgICAgICAgICdnZXRfaW5pdCc6IFt7 J2dldCc6ICdnZXRfaW5pdCd9LCB7J2dldCc6ICdnZXRfaW5pdCd9XSwKKyAg ICB9KQorCisgICAgZGVmIF9pbml0XyhzZWxmLCAqKmt3YXJncyk6CisgICAg ICAgIHNlbGYuY29ubiA9IE5vbmUKKyAgICAgICAgc2VsZi50ZW1wbGF0ZV9w YXRoID0gTm9uZQorICAgICAgICBzZWxmLm1hbmFnZXIgPSBOb25lCisgICAg ICAgIHN1cGVyKEZ0c1RlbXBsYXRlVmlldywgc2VsZikuX19pbml0X18oKipr d2FyZ3MpCisKKyAgICBkZWYgbW9kdWxlX2pzKHNlbGYpOgorICAgICAgICAi IiIKKyAgICAgICAgVGhpcyBwcm9wZXJ0eSBkZWZpbmVzIHdoZXRoZXIgamF2 YXNjcmlwdCBleGlzdHMgZm9yIHRoaXMgbm9kZS4KKyAgICAgICAgIiIiCisg ICAgICAgIHJldHVybiBtYWtlX3Jlc3BvbnNlKAorICAgICAgICAgICAgcmVu ZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICJmdHNfdGVtcGxhdGUv anMvZnRzX3RlbXBsYXRlcy5qcyIsCisgICAgICAgICAgICAgICAgXz1nZXR0 ZXh0CisgICAgICAgICAgICApLAorICAgICAgICAgICAgMjAwLCB7J0NvbnRl bnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQnfQorICAgICAg ICApCisKKyAgICBkZWYgY2hlY2tfcHJlY29uZGl0aW9uKGYpOgorICAgICAg ICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2ZSBhcyBh IGRlY29yYXRvciB3aGljaCB3aWxsIGNoZWNrcworICAgICAgICBkYXRhYmFz ZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5nIHZpZXcsIGl0IHdpbGwgYWxz byBhdHRhY2hlcworICAgICAgICBtYW5hZ2VyLGNvbm4gJiB0ZW1wbGF0ZV9w YXRoIHByb3BlcnRpZXMgdG8gc2VsZgorICAgICAgICAiIiIKKworICAgICAg ICBAd3JhcHMoZikKKyAgICAgICAgZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdz KToKKyAgICAgICAgICAgICMgSGVyZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxm ICYga3dhcmdzIHdpbGwgaG9sZCBnaWQsc2lkLGRpZAorICAgICAgICAgICAg c2VsZiA9IGFyZ3NbMF0KKyAgICAgICAgICAgIHNlbGYubWFuYWdlciA9IGdl dF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIpLmNvbm5lY3Rpb25fbWFuYWdl cigKKyAgICAgICAgICAgICAgICBrd2FyZ3NbJ3NpZCddKQorICAgICAgICAg ICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3 YXJnc1snZGlkJ10pCisgICAgICAgICAgICAjIElmIERCIG5vdCBjb25uZWN0 ZWQgdGhlbiByZXR1cm4gZXJyb3IgdG8gYnJvd3NlcgorICAgICAgICAgICAg aWYgbm90IHNlbGYuY29ubi5jb25uZWN0ZWQoKToKKyAgICAgICAgICAgICAg ICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKAorICAgICAgICAgICAg ICAgICAgICBnZXR0ZXh0KAorICAgICAgICAgICAgICAgICAgICAgICAgIkNv bm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIKKyAgICAg ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgICMgd2Ugd2lsbCBzZXQgdGVtcGxhdGUgcGF0aCBmb3Igc3FsIHNjcmlw dHMgZGVwZW5kaW5nIHVwb24gc2VydmVyIHZlcnNpb24KKyAgICAgICAgICAg IHZlciA9IHNlbGYubWFuYWdlci52ZXJzaW9uCisgICAgICAgICAgICBpZiB2 ZXIgPj0gOTAxMDA6CisgICAgICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9w YXRoID0gJ2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMnCisgICAgICAgICAg ICByZXR1cm4gZigqYXJncywgKiprd2FyZ3MpCisKKyAgICAgICAgcmV0dXJu IHdyYXAKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbGlz dChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAgICAgc3FsID0g cmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYu dGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAg ICAgc2NpZD1zY2lkCisgICAgICAgICkKKyAgICAgICAgc3RhdHVzLCByZXMg PSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKworICAgICAgICBpZiBu b3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgcmV0dXJuIGFqYXhf cmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZT1yZXNbJ3Jvd3MnXSwK KyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgQGNo ZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBub2RlcyhzZWxmLCBnaWQsIHNp ZCwgZGlkLCBzY2lkKToKKyAgICAgICAgcmVzID0gW10KKyAgICAgICAgc3Fs ID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgIi8iLmpvaW4oW3Nl bGYudGVtcGxhdGVfcGF0aCwgJ25vZGVzLnNxbCddKSwKKyAgICAgICAgICAg IHNjaWQ9c2NpZAorICAgICAgICApCisgICAgICAgIHN0YXR1cywgcnNldCA9 IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoc3FsKQorICAgICAgICBpZiBu b3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1yc2V0KQorCisgICAgICAgIGZvciByb3cgaW4g cnNldFsncm93cyddOgorICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAg ICAgICAgICAgICBzZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25v ZGUoCisgICAgICAgICAgICAgICAgICAgIHJvd1snb2lkJ10sCisgICAgICAg ICAgICAgICAgICAgIGRpZCwKKyAgICAgICAgICAgICAgICAgICAgcm93Wydu YW1lJ10sCisgICAgICAgICAgICAgICAgICAgIGljb249Imljb24tZnRzX3Rl bXBsYXRlIgorICAgICAgICAgICAgICAgICkpCisKKyAgICAgICAgcmV0dXJu IG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgIGRhdGE9cmVzLAor ICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBAY2hl Y2tfcHJlY29uZGl0aW9uCisgICAgZGVmIG5vZGUoc2VsZiwgZ2lkLCBzaWQs IGRpZCwgc2NpZCwgdGlkKToKKyAgICAgICAgcmVzID0gW10KKyAgICAgICAg c3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgIi8iLmpvaW4o W3NlbGYudGVtcGxhdGVfcGF0aCwgJ25vZGVzLnNxbCddKSwKKyAgICAgICAg ICAgIHRpZD10aWQKKyAgICAgICAgKQorICAgICAgICBzdGF0dXMsIHJzZXQg PSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KHNxbCkKKyAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKworICAgICAgICBmb3Igcm93IGlu IHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25f cmVzcG9uc2UoCisgICAgICAgICAgICAgICAgZGF0YT1zZWxmLmJsdWVwcmlu dC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAgICAg ICAgICByb3dbJ29pZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgZGlk LAorICAgICAgICAgICAgICAgICAgICAgICAgcm93WyduYW1lJ10sCisgICAg ICAgICAgICAgICAgICAgICAgICBpY29uPSJpY29uLWZ0c190ZW1wbGF0ZSIK KyAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICBzdGF0 dXM9MjAwCisgICAgICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0 aW9uCisgICAgZGVmIHByb3BlcnRpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwg c2NpZCwgdGlkKToKKyAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAor ICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3By b3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAgICAgc2NpZD1zY2lkLAorICAg ICAgICAgICAgdGlkPXRpZAorICAgICAgICApCisgICAgICAgIHN0YXR1cywg cmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwpCisKKyAgICAgICAg aWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgIHJldHVybiBh amF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9uc2U9cmVzWydyb3dz J11bMF0sCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgY3JlYXRlKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAg VGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZXMgbmV3IHRoZSBmdHNfdGVtcGxh dGUgb2JqZWN0CisgICAgICAgIDpwYXJhbSBnaWQ6IGdyb3VwIGlkCisgICAg ICAgIDpwYXJhbSBzaWQ6IHNlcnZlciBpZAorICAgICAgICA6cGFyYW0gZGlk OiBkYXRhYmFzZSBpZAorICAgICAgICA6cGFyYW0gc2NpZDogc2NoZW1hIGlk CisgICAgICAgICIiIgorCisgICAgICAgICMgTWFuZGF0b3J5IGZpZWxkcyB0 byBjcmVhdGUgYSBuZXcgZnRzIHRlbXBsYXRlCisgICAgICAgIHJlcXVpcmVk X2FyZ3MgPSBbCisgICAgICAgICAgICAndG1wbGxleGl6ZScsCisgICAgICAg ICAgICAnc2NoZW1hJywKKyAgICAgICAgICAgICduYW1lJworICAgICAgICBd CisKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZv cm0gZWxzZSBqc29uLmxvYWRzKAorICAgICAgICAgICAgcmVxdWVzdC5kYXRh LmRlY29kZSgpKQorICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6 CisgICAgICAgICAgICBpZiBhcmcgbm90IGluIGRhdGE6CisgICAgICAgICAg ICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg ICAgICAgICAgc3RhdHVzPTQxMCwKKyAgICAgICAgICAgICAgICAgICAgc3Vj Y2Vzcz0wLAorICAgICAgICAgICAgICAgICAgICBlcnJvcm1zZz1nZXR0ZXh0 KAorICAgICAgICAgICAgICAgICAgICAgICAgIkNvdWxkbid0IGZpbmQgdGhl IHJlcXVpcmVkIHBhcmFtZXRlciAoJXMpLiIgJSBhcmcKKyAgICAgICAgICAg ICAgICAgICAgKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgdHJ5Ogor ICAgICAgICAgICAgIyBGZXRjaCBzY2hlbWEgbmFtZSBmcm9tIHNjaGVtYSBv aWQKKyAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9p bihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnc2NoZW1hLnNxbCddKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWRhdGEsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubj1zZWxmLmNvbm4s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorCisgICAg ICAgICAgICBzdGF0dXMsIHNjaGVtYSA9IHNlbGYuY29ubi5leGVjdXRlX3Nj YWxhcihzcWwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9c2NoZW1hKQorCisgICAgICAgICAgICAjIHJlcGxhY2Ugc2NoZW1hIG9p ZCB3aXRoIHNjaGVtYSBuYW1lIGJlZm9yZSBwYXNzaW5nIHRvIGNyZWF0ZS5z cWwKKyAgICAgICAgICAgICMgdG8gZ2VuZXJhdGUgcHJvcGVyIHNxbCBxdWVy eQorICAgICAgICAgICAgbmV3X2RhdGEgPSBkYXRhLmNvcHkoKQorICAgICAg ICAgICAgbmV3X2RhdGFbJ3NjaGVtYSddID0gc2NoZW1hCisgICAgICAgICAg ICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxh dGVfcGF0aCwgJ2NyZWF0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGF0YT1uZXdfZGF0YSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25uPXNlbGYuY29ubiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICBzdGF0 dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihzcWwpCisgICAg ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAg ICAgICAgICAjIHdlIG5lZWQgZnRzX3RlbXBsYXRlIGlkIHRvIHRvIGFkZCBv YmplY3QgaW4gdHJlZSBhdCBicm93c2VyLAorICAgICAgICAgICAgIyBiZWxv dyBzcWwgd2lsbCBnaXZlIHRoZSBzYW1lCisgICAgICAgICAgICBzcWwgPSBy ZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgIi8iLmpvaW4oW3Nl bGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAg ICAgICAgICAgIG5hbWU9ZGF0YVsnbmFtZSddCisgICAgICAgICAgICApCisg ICAgICAgICAgICBzdGF0dXMsIHRpZCA9IHNlbGYuY29ubi5leGVjdXRlX3Nj YWxhcihzcWwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9dGlkKQorCisgICAgICAgICAgICByZXR1cm4ganNvbmlmeSgKKyAgICAg ICAgICAgICAgICBub2RlPXNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dz ZXJfbm9kZSgKKyAgICAgICAgICAgICAgICAgICAgdGlkLAorICAgICAgICAg ICAgICAgICAgICBkaWQsCisgICAgICAgICAgICAgICAgICAgIGRhdGFbJ25h bWUnXSwKKyAgICAgICAgICAgICAgICAgICAgaWNvbj0iaWNvbi1mdHNfdGVt cGxhdGUiCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAg ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgdXBkYXRlKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCk6CisgICAgICAgICIiIgorICAg ICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHRleHQgc2VhcmNoIHRl bXBsYXRlIG9iamVjdAorICAgICAgICA6cGFyYW0gZ2lkOiBncm91cCBpZAor ICAgICAgICA6cGFyYW0gc2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAgOnBhcmFt IGRpZDogZGF0YWJhc2UgaWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IHNjaGVt YSBpZAorICAgICAgICA6cGFyYW0gdGlkOiBmdHMgdGVtcGF0ZSBpZAorICAg ICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuZm9ybSBpZiByZXF1 ZXN0LmZvcm0gZWxzZSBqc29uLmxvYWRzKAorICAgICAgICAgICAgcmVxdWVz dC5kYXRhLmRlY29kZSgpKQorCisgICAgICAgICMgRmV0Y2ggc3FsIHF1ZXJ5 IHRvIHVwZGF0ZSBmdHMgdGVtcGxhdGUKKyAgICAgICAgc3FsID0gc2VsZi5n ZXRfc3FsKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRhdGEsIHRpZCkKKyAgICAg ICAgdHJ5OgorICAgICAgICAgICAgaWYgc3FsIGFuZCBzcWwuc3RyaXAoJ1xu JykgYW5kIHNxbC5zdHJpcCgnICcpOgorICAgICAgICAgICAgICAgIHN0YXR1 cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKHNxbCkKKyAgICAg ICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykK KworICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2Uo CisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAg ICAgICAgICAgaW5mbz0iRlRTIFRlbXBsYXRlIHVwZGF0ZWQiLAorICAgICAg ICAgICAgICAgICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgICAg ICdpZCc6IHRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdzaWQnOiBz aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnZ2lkJzogZ2lkLAorICAg ICAgICAgICAgICAgICAgICAgICAgJ2RpZCc6IGRpZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICdzY2lkJzogc2NpZAorICAgICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAg ICAgICAgICAgICAgICAgICBzdWNjZXNzPTEsCisgICAgICAgICAgICAgICAg ICAgIGluZm89Ik5vdGhpbmcgdG8gdXBkYXRlIiwKKyAgICAgICAgICAgICAg ICAgICAgZGF0YT17CisgICAgICAgICAgICAgICAgICAgICAgICAnaWQnOiB0 aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2lkJzogc2lkLAorICAg ICAgICAgICAgICAgICAgICAgICAgJ2dpZCc6IGdpZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICdkaWQnOiBkaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAnc2NpZCc6IHNjaWQKKyAgICAgICAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFz IGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24K KyAgICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRp ZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwg ZHJvcCB0aGUgZnRzX3RlbXBsYXRlIG9iamVjdAorICAgICAgICA6cGFyYW0g Z2lkOiBncm91cCBpZAorICAgICAgICA6cGFyYW0gc2lkOiBzZXJ2ZXIgaWQK KyAgICAgICAgOnBhcmFtIGRpZDogZGF0YWJhc2UgaWQKKyAgICAgICAgOnBh cmFtIHNjaWQ6IHNjaGVtYSBpZAorICAgICAgICA6cGFyYW0gdGlkOiBmdHMg dGVtcGF0ZSBpZAorICAgICAgICAiIiIKKyAgICAgICAgIyBCZWxvdyB3aWxs IGRlY2lkZSBpZiBpdCdzIHNpbXBsZSBkcm9wIG9yIGRyb3Agd2l0aCBjYXNj YWRlIGNhbGwKKyAgICAgICAgaWYgc2VsZi5jbWQgPT0gJ2RlbGV0ZSc6Cisg ICAgICAgICAgICAjIFRoaXMgaXMgYSBjYXNjYWRlIG9wZXJhdGlvbgorICAg ICAgICAgICAgY2FzY2FkZSA9IFRydWUKKyAgICAgICAgZWxzZToKKyAgICAg ICAgICAgIGNhc2NhZGUgPSBGYWxzZQorCisgICAgICAgIHRyeToKKyAgICAg ICAgICAgICMgR2V0IG5hbWUgZm9yIHRlbXBsYXRlIGZyb20gdGlkCisgICAg ICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYu dGVtcGxhdGVfcGF0aCwgJ2RlbGV0ZS5zcWwnXSksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGlkPXRpZCkKKyAgICAgICAgICAgIHN0 YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwpCisgICAg ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAg ICAgICAgICAjIERyb3AgZnRzIHRlbXBsYXRlCisgICAgICAgICAgICByZXN1 bHQgPSByZXNbJ3Jvd3MnXVswXQorICAgICAgICAgICAgc3FsID0gcmVuZGVy X3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdkZWxl dGUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG5hbWU9cmVzdWx0WyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2NoZW1hPXJlc3VsdFsnc2NoZW1hJ10sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzY2FkZT1jYXNjYWRlCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorCisgICAgICAg ICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihz cWwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVz KQorCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAor ICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICBp bmZvPWdldHRleHQoIkZUUyB0ZW1wbGF0ZSBkcm9wcGVkIiksCisgICAgICAg ICAgICAgICAgZGF0YT17CisgICAgICAgICAgICAgICAgICAgICdpZCc6IHRp ZCwKKyAgICAgICAgICAgICAgICAgICAgJ3NpZCc6IHNpZCwKKyAgICAgICAg ICAgICAgICAgICAgJ2dpZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAgICAg J2RpZCc6IGRpZCwKKyAgICAgICAgICAgICAgICAgICAgJ3NjaWQnOiBzY2lk CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKQorCisgICAgICAg IGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAg QGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBtc3FsKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQsIHRpZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAg ICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBtb2RpZmllZCBTUUwKKyAgICAg ICAgOnBhcmFtIGdpZDogZ3JvdXAgaWQKKyAgICAgICAgOnBhcmFtIHNpZDog c2VydmVyIGlkCisgICAgICAgIDpwYXJhbSBkaWQ6IGRhdGFiYXNlIGlkCisg ICAgICAgIDpwYXJhbSBzY2lkOiBzY2hlbWEgaWQKKyAgICAgICAgOnBhcmFt IHRpZDogZnRzIHRlbXBhdGUgaWQKKyAgICAgICAgIiIiCisgICAgICAgIGRh dGEgPSByZXF1ZXN0LmFyZ3MKKworICAgICAgICAjIEZldGNoIHNxbCBxdWVy eSBmb3IgbW9kaWZpZWQgZGF0YQorICAgICAgICBzcWwgPSBzZWxmLmdldF9z cWwoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZGF0YSwgdGlkKQorCisgICAgICAg IGlmIGlzaW5zdGFuY2Uoc3FsLCBzdHIpIGFuZCBzcWwgYW5kIHNxbC5zdHJp cCgnXG4nKSBhbmQgc3FsLnN0cmlwKCcgJyk6CisgICAgICAgICAgICByZXR1 cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIGRhdGE9 c3FsLAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAg ICkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pz b25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgZGF0YT0iLS1tb2RpZmll ZCBTUUwiLAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAg ICAgICkKKworICAgIGRlZiBnZXRfc3FsKHNlbGYsIGdpZCwgc2lkLCBkaWQs IHNjaWQsIGRhdGEsIHRpZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gU1FMIGZvciBtb2RlbCBkYXRh CisgICAgICAgIDpwYXJhbSBnaWQ6IGdyb3VwIGlkCisgICAgICAgIDpwYXJh bSBzaWQ6IHNlcnZlciBpZAorICAgICAgICA6cGFyYW0gZGlkOiBkYXRhYmFz ZSBpZAorICAgICAgICA6cGFyYW0gc2NpZDogc2NoZW1hIGlkCisgICAgICAg IDpwYXJhbSB0aWQ6IGZ0cyB0ZW1wYXRlIGlkCisgICAgICAgICIiIgorICAg ICAgICB0cnk6CisgICAgICAgICAgICAjIEZldGNoIHNxbCBmb3IgdXBkYXRl CisgICAgICAgICAgICBpZiB0aWQgaXMgbm90IE5vbmU6CisgICAgICAgICAg ICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAg ICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGll cy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgIHRpZD10aWQsCisgICAg ICAgICAgICAgICAgICAgIHNjaWQ9c2NpZAorICAgICAgICAgICAgICAgICkK KworICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4 ZWN1dGVfZGljdChzcWwpCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1 czoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgICAgICBvbGRf ZGF0YSA9IHJlc1sncm93cyddWzBdCisKKyAgICAgICAgICAgICAgICAjIElm IHVzZXIgaGFzIGNoYW5nZWQgdGhlIHNjaGVtYSB0aGVuIGZldGNoIG5ldyBz Y2hlbWEgZGlyZWN0bHkKKyAgICAgICAgICAgICAgICAjIHVzaW5nIGl0cyBv aWQgb3RoZXJ3aXNlIGZldGNoIG9sZCBzY2hlbWEgbmFtZSB1c2luZyBmdHMg dGVtcGxhdGUgb2lkCisgICAgICAgICAgICAgICAgc3FsID0gcmVuZGVyX3Rl bXBsYXRlKAorICAgICAgICAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLCAnc2NoZW1hLnNxbCddKSwKKyAgICAgICAgICAgICAg ICAgICAgZGF0YT1kYXRhKQorCisgICAgICAgICAgICAgICAgc3RhdHVzLCBu ZXdfc2NoZW1hID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKHNxbCkKKyAg ICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPW5l d19zY2hlbWEpCisKKyAgICAgICAgICAgICAgICAjIFJlcGxhY2Ugc2NoZW1h IG9pZCB3aXRoIHNjaGVtYSBuYW1lCisgICAgICAgICAgICAgICAgbmV3X2Rh dGEgPSBkYXRhLmNvcHkoKQorICAgICAgICAgICAgICAgIGlmICdzY2hlbWEn IGluIG5ld19kYXRhOgorICAgICAgICAgICAgICAgICAgICBuZXdfZGF0YVsn c2NoZW1hJ10gPSBuZXdfc2NoZW1hCisKKyAgICAgICAgICAgICAgICAjIEZl dGNoIG9sZCBzY2hlbWEgbmFtZSB1c2luZyBvbGQgc2NoZW1hIG9pZAorICAg ICAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAg ICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Nj aGVtYS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgIGRhdGE9b2xkX2Rh dGEpCisKKyAgICAgICAgICAgICAgICBzdGF0dXMsIG9sZF9zY2hlbWEgPSBz ZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQorICAgICAgICAgICAgICAg IGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9b2xkX3NjaGVtYSkKKwor ICAgICAgICAgICAgICAgICMgUmVwbGFjZSBvbGQgc2NoZW1hIG9pZCB3aXRo IG9sZCBzY2hlbWEgbmFtZQorICAgICAgICAgICAgICAgIG9sZF9kYXRhWydz Y2hlbWEnXSA9IG9sZF9zY2hlbWEKKworICAgICAgICAgICAgICAgIHNxbCA9 IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgIi8iLmpv aW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3VwZGF0ZS5zcWwnXSksCisgICAg ICAgICAgICAgICAgICAgIGRhdGE9bmV3X2RhdGEsIG9fZGF0YT1vbGRfZGF0 YQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAjIEZldGNo IHNxbCBxdWVyeSBmb3IgbW9kaWZpZWQgZGF0YQorICAgICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICAgICAjIEZldGNoIHNjaGVtYSBuYW1lIGZyb20g c2NoZW1hIG9pZAorICAgICAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1w bGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnc2NoZW1hLnNx bCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YT1kYXRhKQorCisgICAgICAgICAgICAgICAgc3RhdHVzLCBzY2hlbWEg PSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQorICAgICAgICAgICAg ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c2NoZW1hKQorCisg ICAgICAgICAgICAgICAgIyBSZXBsYWNlIHNjaGVtYSBvaWQgd2l0aCBzY2hl bWEgbmFtZQorICAgICAgICAgICAgICAgIG5ld19kYXRhID0gZGF0YS5jb3B5 KCkKKyAgICAgICAgICAgICAgICBuZXdfZGF0YVsnc2NoZW1hJ10gPSBzY2hl bWEKKworICAgICAgICAgICAgICAgIGlmICd0bXBsbGV4aXplJyBpbiBuZXdf ZGF0YSBhbmQgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn bmFtZScgaW4gbmV3X2RhdGEgYW5kIFwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ3NjaGVtYScgaW4gbmV3X2RhdGE6CisgICAgICAgICAg ICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2Vs Zi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdjcmVhdGUuc3FsJ10pLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1u ZXdfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbm49c2VsZi5jb25uCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICAgICAgICAgc3FsID0gIi0tIGluY29tcGxldGUgZGVm aW5pdGlvbiIKKyAgICAgICAgICAgIHJldHVybiBzdHIoc3FsLnN0cmlwKCdc bicpKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBn ZXRfbGV4aXplKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZD1Ob25l KToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBy ZXR1cm4gbGV4aXplIGZ1bmN0aW9ucyBsaXN0IGZvciBmdHMgdGVtcGxhdGUK KyAgICAgICAgOnBhcmFtIGdpZDogZ3JvdXAgaWQKKyAgICAgICAgOnBhcmFt IHNpZDogc2VydmVyIGlkCisgICAgICAgIDpwYXJhbSBkaWQ6IGRhdGFiYXNl IGlkCisgICAgICAgIDpwYXJhbSBzY2lkOiBzY2hlbWEgaWQKKyAgICAgICAg OnBhcmFtIHRpZDogZnRzIHRlbXBhdGUgaWQKKyAgICAgICAgIiIiCisgICAg ICAgIGRhdGEgPSByZXF1ZXN0LmFyZ3MKKyAgICAgICAgc3FsID0gcmVuZGVy X3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdmdW5j dGlvbnMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV4aXplPVRydWUpCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29u bi5leGVjdXRlX2RpY3Qoc3FsKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6 CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJzZXQpCisKKyAgICAgICAgIyBFbXB0eSBzZXQgaXMgYWRkZWQg YmVmb3JlIGFjdHVhbCBsaXN0IGFzIGluaXRpYWxseSBpdCB3aWxsIGJlIHZp c2libGUKKyAgICAgICAgIyBhdCBsZXhpemUgc2VsZWN0IGNvbnRyb2wgd2hp bGUgY3JlYXRpbmcgYSBuZXcgZnRzIHRlbXBsYXRlCisgICAgICAgIHJlcyA9 IFt7J2xhYmVsJzogJycsICd2YWx1ZSc6ICcnfV0KKyAgICAgICAgZm9yIHJv dyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAgICByZXMuYXBwZW5kKHsn bGFiZWwnOiByb3dbJ3Byb25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICd2YWx1ZSc6IHJvd1sncHJvbmFtZSddfSkKKyAgICAgICAgcmV0dXJu IG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgIGRhdGE9cmVzLAor ICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBAY2hl Y2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGdldF9pbml0KHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQsIHRpZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAg ICAgIFRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gaW5pdCBmdW5jdGlvbnMg bGlzdCBmb3IgZnRzIHRlbXBsYXRlCisgICAgICAgIDpwYXJhbSBnaWQ6IGdy b3VwIGlkCisgICAgICAgIDpwYXJhbSBzaWQ6IHNlcnZlciBpZAorICAgICAg ICA6cGFyYW0gZGlkOiBkYXRhYmFzZSBpZAorICAgICAgICA6cGFyYW0gc2Np ZDogc2NoZW1hIGlkCisgICAgICAgIDpwYXJhbSB0aWQ6IGZ0cyB0ZW1wYXRl IGlkCisgICAgICAgICIiIgorICAgICAgICBkYXRhID0gcmVxdWVzdC5hcmdz CisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2Vs Zi50ZW1wbGF0ZV9wYXRoLCAnZnVuY3Rpb25zLnNxbCddKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGluaXQ9VHJ1ZSkKKyAgICAgICAgc3Rh dHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwpCisKKyAg ICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKworICAgICAgICAj IFdlIGhhdmUgYWRkZWQgdGhpcyB0byBtYXAgYWdhaW5zdCAnLScgd2hpY2gg aXMgY29taW5nIGZyb20gc2VydmVyCisgICAgICAgIHJlcyA9IFt7J2xhYmVs JzogJycsICd2YWx1ZSc6ICctJ31dCisgICAgICAgIGZvciByb3cgaW4gcnNl dFsncm93cyddOgorICAgICAgICAgICAgcmVzLmFwcGVuZCh7J2xhYmVsJzog cm93Wydwcm9uYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAndmFs dWUnOiByb3dbJ3Byb25hbWUnXX0pCisgICAgICAgIHJldHVybiBtYWtlX2pz b25fcmVzcG9uc2UoCisgICAgICAgICAgICBkYXRhPXJlcywKKyAgICAgICAg ICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNv bmRpdGlvbgorICAgIGRlZiBzcWwoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2Np ZCwgdGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24g d2lsbCByZXZlcnNlIGdlbmVyYXRlIHNxbCBmb3Igc3FsIHBhbmVsCisgICAg ICAgIDpwYXJhbSBnaWQ6IGdyb3VwIGlkCisgICAgICAgIDpwYXJhbSBzaWQ6 IHNlcnZlciBpZAorICAgICAgICA6cGFyYW0gZGlkOiBkYXRhYmFzZSBpZAor ICAgICAgICA6cGFyYW0gc2NpZDogc2NoZW1hIGlkCisgICAgICAgIDpwYXJh bSB0aWQ6IGZ0cyB0ZW1wYXRlIGlkCisgICAgICAgICIiIgorICAgICAgICB0 cnk6CisgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAg ICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Nx bC5zcWwnXSksCisgICAgICAgICAgICAgICAgdGlkPXRpZCwKKyAgICAgICAg ICAgICAgICBzY2lkPXNjaWQsCisgICAgICAgICAgICAgICAgY29ubj1zZWxm LmNvbm4KKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHN0YXR1cywgcmVz ID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKHNxbCkKKyAgICAgICAgICAg IGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVy bmFsX3NlcnZlcl9lcnJvcigKKyAgICAgICAgICAgICAgICAgICAgXygKKyAg ICAgICAgICAgICAgICAgICAgICAgICJFUlJPUjogQ291bGRuJ3QgZ2VuZXJh dGUgcmV2ZXJzZWQgZW5naW5lZXJlZCBRdWVyeSBmb3IgdGhlIEZUUyB0ZW1w bGF0ZSFcbnswfSIpLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgICAg IHJlcworICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAg KQorCisgICAgICAgICAgICBpZiByZXMgaXMgTm9uZToKKyAgICAgICAgICAg ICAgICByZXR1cm4gZ29uZSgKKyAgICAgICAgICAgICAgICAgICAgXygKKyAg ICAgICAgICAgICAgICAgICAgICAgICJFUlJPUjogQ291bGRuJ3QgZ2VuZXJh dGUgcmV2ZXJzZWQgZW5naW5lZXJlZCBRdWVyeSBmb3IgRlRTIHRlbXBsYXRl IG5vZGUhIikKKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgIHJl dHVybiBhamF4X3Jlc3BvbnNlKHJlc3BvbnNlPXJlcykKKworICAgICAgICBl eGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBj aGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5kZW50cyhzZWxmLCBn aWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAgICAiIiIKKyAgICAg ICAgVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVudHMgYW5kIHJldHVy biBhamF4IHJlc3BvbnNlCisgICAgICAgIGZvciB0aGUgRlRTIFRlbXBsYXRl IG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2Vy dmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAg ICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgc2NpZDog U2NoZW1hIElECisgICAgICAgICAgICB0aWQ6IEZUUyBUZW1wbGF0ZSBJRAor ICAgICAgICAiIiIKKyAgICAgICAgZGVwZW5kZW50c19yZXN1bHQgPSBzZWxm LmdldF9kZXBlbmRlbnRzKHNlbGYuY29ubiwgdGlkKQorICAgICAgICByZXR1 cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZT1k ZXBlbmRlbnRzX3Jlc3VsdCwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAw CisgICAgICAgICAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlv bgorICAgIGRlZiBkZXBlbmRlbmNpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwg c2NpZCwgdGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rp b24gZ2V0IHRoZSBkZXBlbmRlbmNpZXMgYW5kIHJldHVybiBhamF4IHJlc3Bv bnNlCisgICAgICAgIGZvciB0aGUgRlRTIFRlbXBsYXRlIG5vZGUuCisKKyAg ICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElE CisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlk OiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElECisg ICAgICAgICAgICB0aWQ6IEZUUyBUZW1wYWx0ZSBJRAorICAgICAgICAiIiIK KyAgICAgICAgZGVwZW5kZW5jaWVzX3Jlc3VsdCA9IHNlbGYuZ2V0X2RlcGVu ZGVuY2llcyhzZWxmLmNvbm4sIHRpZCkKKyAgICAgICAgcmV0dXJuIGFqYXhf cmVzcG9uc2UoCisgICAgICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW5j aWVzX3Jlc3VsdCwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAg ICAgICAgICAgICAgKQorCitGdHNUZW1wbGF0ZVZpZXcucmVnaXN0ZXJfbm9k ZV92aWV3KGJsdWVwcmludCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z0c190ZW1wbGF0ZXMvc3RhdGljL2ltZy9jb2xsLWZ0c190ZW1wbGF0ZS5w bmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3N0YXRpYy9pbWcv Y29sbC1mdHNfdGVtcGxhdGUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu LmZhYmQ0N2RhN2FlMjdiMDRiMGJmZDM4YTdiMWVlOWY2YzFhNzRkMmMKR0lU IGJpbmFyeSBwYXRjaApsaXRlcmFsIDYwMQp6Y21ZKzlZZS1XODZ2eXVqISE1 Pzd6RFM9N2Y/UW5KRVp2OGl3WElFWiptakV3JUg3PXVJTHBpcEw4N2IkbU9h b1kKekdeNTlJQ09TOypLfCY4aHZ9cUV7QSYhdWNHQkFwOGNsV2pYVU5gO0po eVZHVjFMcF9sdntremc9eWpXUTAwOEorCnpQTWIkJTtsQzhEUXxtVVAhSztG PUpfeS1XQ2EwUGNANSp6elI0ekJDRDZAKzROdFVOMlg7UEJqPVdfR1daa3dW Ywp6V2NoPEF6VUtMLUkxVll3WEI8QnklVHBOVW1aVUtodHJVYjg5MmIlMDhD aX0/KHpxelQ2fiQzT2MrVF5LOU17TFAKenc9dHxyNnlKI0FEP3UzSGA1NERO S0BjbTtjR0dtTEFpTlpXVlYpbzB4TSgpfWZNdlRGPGAlPTtLKypqaSpPU2ZP CnpYVzM0TT43ZU9yZXQjKU53UGRzUlNvUkxYdzl8QU9NT34oLTNuYlpgJCVP cD1HTWNedSEpQSYpNTVyKDQ2Wkg5dAp6MzhJZG9FfEtJcGw1RU9rOFZSREZB T2goJG89JjMrTFFPekBVSzhAVHk/fU4zMyQ2fkAySXNNJE82T2BFQU01dDAK ek9fJDQ3MFRzPDVKflhVeHRPdEY1OUxIZXtgU31lRT5sKTVSV0FJWGljVmhC LVV1JkQ4TzIyOFpeWEExISRIPitHCnp5SmIjbVVhIU1iZEU5WnRlTndYfVFz OWE5NCkoPFFoOH1BLSZnS215UV8xPGMtSm0mNzJifERCJFNIcFN1WkxeJQp6 cEI0NFQ3dmliSjsmQFY5NDB3TTBTXkItYV44SHRTYUlBQiplZlV2fSltSTFz NkkwVXdLcmIzMVVsU1hlKUR5UmMKej5fPFo9OUt0TH1CYz1pe2ZoQ31eI0FG MFpBUU5hWUAzZmRwd31ZaD81UFowQEJsZSRnYFYzbCZIP0lqYGBLcTk5Cllu PVJuM0hEUlhmQFNyTEhGMXk8e3c5Z20qMyNjNzVkakozYwoKbGl0ZXJhbCAw CkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRz X3RlbXBsYXRlcy9zdGF0aWMvaW1nL2Z0c190ZW1wbGF0ZS5wbmcgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3N0YXRpYy9pbWcvZnRzX3RlbXBs YXRlLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjc4MGJmMGJiMGY1 ZDc3N2U4YTcyNzIwYjVlZDBlMmFkNDhiYzQ1CkdJVCBiaW5hcnkgcGF0Y2gK bGl0ZXJhbCA2OTYKemNtWStDUzQ+akA2b3prY3E+d1E1IUdMayNDTHpVM1Mp b1EhWXIkZUZVPC10JGNIS3EtaChiZF5RMn5oLU1Jak1vCnpCTylSSjFUPTAl PldHWGVWTSU8Xl8rJkl1ZGlURCFVZzYxeXxOUTRxJmlDQD8pVEFVR0BieXtt MHwwPDtxRTJnJgp6Sm04PD9FMko1c0BIWWEwPmA7bjZIQ35Ee1ZgV24jdV4h S1kkMV5YQXYhWGFIaWt9MndRVl87P3s9TUN2PUpDd2cKej9NNnxZZn1xMktG YitZPEpwVHJRXmM/cD42bFg7N3FhYUtPIVV2dnolayFmZ19tYm5Edmd7KzQ5 cD9GV0puIVBUCnpSfit8QFdnb05iMUJTVjh2dVNDJW85OVAzP201ZG9WY0Na YUdzck1+Rzx9eipaJk9xfE5qQlNUSStoKGBuMH1oPgp6cTNKRyk+WSU2PWxE dWlMczBpWEohd2ZMWUoofDhsUU1WfG5sX1ZRVUA7WDZXIXx9XkZlaTZmfVh1 OHZDalUmaz4Kemw1OE18SSliPUA8Q2sjITApfHpYJX1OdzRDQ004RVFCTSVI SVBTI3BZN0RFeXUoSyN5aE4yfTFRajgjbEk5X0ExCnpNNHsrdXZsJXAqNmZq KDFHS0lxTWFTU187cUd1NHFmZ3E8NDxPQkBvIUVtbklaRmpxRVpudCQreHds M3RST1Q9dwp6ODNGWj1GTG8oLXBWVmEqT1JpZnwhYkQhMnZ+KHFFX29XOFRT eHFqV1J4ZndTKlAxTT16MUYyaW0tcj14P1F7WSQKens8fUFpUiY+QDYlZUNy O1dQT2d0YTQ7KCYtRVhVRk9VT2BYWn0maH5VeXQ5S2ZaNkghKkBjPFViMWA3 R2RefDl5Cnp3Vyp+IUowbU18fEh9T1FLZmdDX1htMn1gXkVLRk9hWnxfOVoq aX5CaUwlT28lRmdmZyk1RVpIeSFVNklRPVErSQp6dHVFSSVFUVRUPFpFJXpW K2BCQ3pia0RBc0lgOTV0YXY0emlEYDtXQnhjJVA7P1FxMHJJQmFHSXFfUCU0 a154RkUKejk4YG9XNjx+Tyg1PiFQLXMzTjA2ITYrMzdifVdZVntSYjJqK0gm bj4lSyNYPTFXNERCRGxtRShtfjJjTmtOX1l0CkxLMW47TUY7KUVxMDQ4eU4K CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9q cy9mdHNfdGVtcGxhdGVzLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBs YXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL2pzL2Z0c190ZW1wbGF0ZXMu anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzk2MWVk ZgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1w bGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9qcy9mdHNfdGVtcGxhdGVz LmpzCkBAIC0wLDAgKzEsMTMzIEBACitkZWZpbmUoCisgICAgICAgIFsnanF1 ZXJ5JywgJ3VuZGVyc2NvcmUnLCAndW5kZXJzY29yZS5zdHJpbmcnLCAncGdh ZG1pbicsICdwZ2FkbWluLmJyb3dzZXInLCAnYWxlcnRpZnknLCAncGdhZG1p bi5icm93c2VyLmNvbGxlY3Rpb24nXSwKK2Z1bmN0aW9uKCQsIF8sIFMsIHBn QWRtaW4sIHBnQnJvd3NlciwgYWxlcnRpZnkpIHsKKworICAvLyBFeHRlbmQg dGhlIGNvbGxlY3Rpb24gY2xhc3MgZm9yIGZ0cyB0ZW1wbGF0ZQorICBpZiAo IXBnQnJvd3Nlci5Ob2Rlc1snY29sbC1mdHNfdGVtcGxhdGUnXSkgeworICAg IHZhciBmdHNfdGVtcGxhdGVzID0gcGdBZG1pbi5Ccm93c2VyLk5vZGVzWydj b2xsLWZ0c190ZW1wbGF0ZSddID0KKyAgICAgIHBnQWRtaW4uQnJvd3Nlci5D b2xsZWN0aW9uLmV4dGVuZCh7CisgICAgICAgIG5vZGU6ICdmdHNfdGVtcGxh dGUnLAorICAgICAgICBsYWJlbDogJ3t7IF8oJ0ZUUyBUZW1wbGF0ZXMnKSB9 fScsCisgICAgICAgIHR5cGU6ICdjb2xsLWZ0c190ZW1wbGF0ZScsCisgICAg ICAgIGNvbHVtbnM6IFsnbmFtZScsICdkZXNjcmlwdGlvbiddCisgICAgICB9 KTsKKyAgfTsKKworICAvLyBFeHRlbmQgdGhlIG5vZGUgY2xhc3MgZm9yIGZ0 cyB0ZW1wbGF0ZQorICBpZiAoIXBnQnJvd3Nlci5Ob2Rlc1snZnRzX3RlbXBs YXRlJ10pIHsKKyAgICBwZ0FkbWluLkJyb3dzZXIuTm9kZXNbJ2Z0c190ZW1w bGF0ZSddID0gcGdBZG1pbi5Ccm93c2VyLk5vZGUuZXh0ZW5kKHsKKyAgICAg IHBhcmVudF90eXBlOiBbJ3NjaGVtYScsICdjYXRhbG9nJ10sCisgICAgICB0 eXBlOiAnZnRzX3RlbXBsYXRlJywKKyAgICAgIGNhbkRyb3A6IHRydWUsCisg ICAgICBjYW5Ecm9wQ2FzY2FkZTogdHJ1ZSwKKyAgICAgIGxhYmVsOiAne3sg XygnRlRTIFRlbXBsYXRlcycpIH19JywKKyAgICAgIGhhc1NRTDogdHJ1ZSwK KyAgICAgIGhhc0RlcGVuZHM6IHRydWUsCisgICAgICBJbml0OiBmdW5jdGlv bigpIHsKKworICAgICAgICAvLyBBdm9pZCBtdWx0aXBsZSByZWdpc3RyYXRp b24gb2YgbWVudXMKKyAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpCisg ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQg PSB0cnVlOworCisgICAgICAgIC8vIEFkZCBjb250ZXh0IG1lbnVzIGZvciBm dHMgdGVtcGxhdGUKKyAgICAgICAgcGdCcm93c2VyLmFkZF9tZW51cyhbewor ICAgICAgICAgIG5hbWU6ICdjcmVhdGVfZnRzX3RlbXBsYXRlX29uX3NjaGVt YScsIG5vZGU6ICdzY2hlbWEnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAg YXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3No b3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3Jl YXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygnRlRTIFRlbXBsYXRl Li4uJykgfX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1m dHNfdGVtcGxhdGUnLCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJ30KKyAgICAg ICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX2Z0c190ZW1wbGF0 ZV9vbl9jb2xsJywgbm9kZTogJ2NvbGwtZnRzX3RlbXBsYXRlJywgbW9kdWxl OiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRl eHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAg ICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJlbDog J3t7IF8oJ0ZUUyBUZW1wbGF0ZS4uLicpIH19JywKKyAgICAgICAgICBpY29u OiAnd2NUYWJJY29uIGljb24tZnRzX3RlbXBsYXRlJywgZGF0YToge2FjdGlv bjogJ2NyZWF0ZSd9CisgICAgICAgICAgfSx7CisgICAgICAgICAgbmFtZTog J2NyZWF0ZV9mdHNfdGVtcGxhdGUnLCBub2RlOiAnZnRzX3RlbXBsYXRlJywg bW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0Jywg J2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywK KyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBs YWJlbDogJ3t7IF8oJ0ZUUyBUZW1wbGF0ZS4uLicpIH19JywKKyAgICAgICAg ICBpY29uOiAnd2NUYWJJY29uIGljb24tZnRzX3RlbXBsYXRlJywgZGF0YTog e2FjdGlvbjogJ2NyZWF0ZSd9CisgICAgICAgICAgfV0pOworCisgICAgICB9 LAorCisgICAgICAvLyBEZWZpbmluZyBiYWNrZm9ybSBtb2RlbCBmb3IgZnRz IHRlbXBsYXRlIG5vZGUKKyAgICAgIG1vZGVsOiBwZ0FkbWluLkJyb3dzZXIu Tm9kZS5Nb2RlbC5leHRlbmQoeworICAgICAgICBkZWZhdWx0czogeworICAg ICAgICAgIG5hbWU6IHVuZGVmaW5lZCwgICAgICAvLyBGdHMgdGVtcGxhdGUg bmFtZQorICAgICAgICAgIGRlc2NyaXB0aW9uOiB1bmRlZmluZWQsICAgLy8g Q29tbWVudCBvbiB0ZW1wbGF0ZQorICAgICAgICAgIHNjaGVtYTogdW5kZWZp bmVkLCAgICAgICAgLy8gU2NoZW1hIG5hbWUgdG8gd2hpY2ggdGVtcGxhdGUg YmVsb25ncworICAgICAgICAgIHRtcGxpbml0OiB1bmRlZmluZWQsICAgICAg Ly8gSW5pdCBmdW5jdGlvbiBmb3IgZnRzIHRlbXBsYXRlCisgICAgICAgICAg dG1wbGxleGl6ZTogdW5kZWZpbmVkICAgICAvLyBMZXhpemUgZnVuY3Rpb24g Zm9yIGZ0cyB0ZW1wbGF0ZQorICAgICAgICB9LAorICAgICAgICBpbml0aWFs aXplOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHBnQWRtaW4uQnJvd3Nl ci5Ob2RlLk1vZGVsLnByb3RvdHlwZS5pbml0aWFsaXplLmFwcGx5KHRoaXMs IGFyZ3VtZW50cyk7CisgICAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZCh0 aGlzLmdldCgnc2NoZW1hJykpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5z ZXQoJ3NjaGVtYScsIHRoaXMubm9kZV9pbmZvLnNjaGVtYS5faWQpOworICAg ICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAvLyBEZWZpbmluZyBz Y2hlbWEgZm9yIGZ0cyB0ZW1wbGF0ZQorICAgICAgICBzY2hlbWE6IFt7Cisg ICAgICAgICAgaWQ6ICduYW1lJywgbGFiZWw6ICd7eyBfKCdOYW1lJykgfX0n LCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIGNl bGxIZWFkZXJDbGFzc2VzOiAnd2lkdGhfcGVyY2VudF81MCcKKyAgICAgICAg fSx7CisgICAgICAgICAgaWQ6ICdvaWQnLCBsYWJlbDone3sgXygnT0lEJykg fX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICBlZGl0YWJsZTogZmFs c2UsIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6IHRydWUsIG1vZGU6Wydwcm9w ZXJ0aWVzJ10KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdzY2hlbWEn LCBsYWJlbDogJ3t7IF8oJ1NjaGVtYScpfX0nLCBjZWxsOiAnc3RyaW5nJywK KyAgICAgICAgICB0eXBlOiAndGV4dCcsIG1vZGU6IFsnY3JlYXRlJywnZWRp dCddLCBub2RlOiAnc2NoZW1hJywKKyAgICAgICAgICBjb250cm9sOiAnbm9k ZS1saXN0LWJ5LWlkJworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2Rl c2NyaXB0aW9uJywgbGFiZWw6J3t7IF8oJ0NvbW1lbnQnKSB9fScsIGNlbGw6 ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICdtdWx0aWxpbmUnLCBjZWxs SGVhZGVyQ2xhc3NlczogJ3dpZHRoX3BlcmNlbnRfNTAnCisgICAgICAgIH0s eworICAgICAgICAgIGlkOiAndG1wbGluaXQnLCBsYWJlbDogJ3t7IF8oJ0lu aXQgRnVuY3Rpb24nKX19JywgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykg fX0nLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6IGZ1bmN0 aW9uKG0pIHsgcmV0dXJuICFtLmlzTmV3KCk7IH0sCisgICAgICAgICAgY29u dHJvbDogJ25vZGUtYWpheC1vcHRpb25zJywgdXJsOiAnZ2V0X2luaXQnCisg ICAgICAgIH0seworICAgICAgICAgIGlkOiAndG1wbGxleGl6ZScsIGxhYmVs OiAne3sgXygnTGV4aXplIEZ1bmN0aW9uJyl9fScsIGdyb3VwOiAne3sgXygn RGVmaW5pdGlvbicpIH19JywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIGRp c2FibGVkOiBmdW5jdGlvbihtKSB7IHJldHVybiAhbS5pc05ldygpOyB9LAor ICAgICAgICAgIGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycsIHVybDog J2dldF9sZXhpemUnCisgICAgICAgIH1dLAorCisgICAgICAgIC8qCisgICAg ICAgICAqIFRyaWdnZXJzIGNvbnRyb2wgc3BlY2lmaWMgZXJyb3IgbWVzc2Fn ZXMgZm9yIHRlbXBsYXRlIG5hbWUsCisgICAgICAgICAqIGxleGl6ZSBmdW5j dGlvbiBhbmQgc2NoZW1hLCBpZiBhbnkgb25lIG9mIHRoZW0gaXMgbm90IHNw ZWNpZmllZAorICAgICAgICAgKiB3aGlsZSBjcmVhdGluZyBuZXcgZnRzIHRl bXBsYXRlCisgICAgICAgICAqLworICAgICAgICB2YWxpZGF0ZTogZnVuY3Rp b24oa2V5cyl7CisgICAgICAgICAgdmFyIG5hbWUgPSB0aGlzLmdldCgnbmFt ZScpOworICAgICAgICAgIHZhciBsZXhpemUgPSB0aGlzLmdldCgndG1wbGxl eGl6ZScpOworICAgICAgICAgIHZhciBzY2hlbWEgPSB0aGlzLmdldCgnc2No ZW1hJyk7CisKKyAgICAgICAgICAvLyBWYWxpZGF0ZSBmdHMgdGVtcGxhdGUg bmFtZQorICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKG5hbWUpIHx8IF8u aXNOdWxsKG5hbWUpIHx8IFN0cmluZyhuYW1lKS5yZXBsYWNlKC9eXHMrfFxz KyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICB2YXIgbXNnID0gJ3t7 IF8oJ05hbWUgbXVzdCBiZSBzcGVjaWZpZWQhJykgfX0nOworICAgICAgICAg ICAgdGhpcy5lcnJvck1vZGVsLnNldCgnbmFtZScsIG1zZyk7CisgICAgICAg ICAgICByZXR1cm4gbXNnOworICAgICAgICAgIH0KKworICAgICAgICAgIC8v IFZhbGlkYXRlIGxleGl6ZSBmdW5jdGlvbiBjb250cm9sCisgICAgICAgICAg ZWxzZSBpZiAoXy5pc1VuZGVmaW5lZChsZXhpemUpIHx8IF8uaXNOdWxsKGxl eGl6ZSkgfHwgU3RyaW5nKGxleGl6ZSkucmVwbGFjZSgvXlxzK3xccyskL2cs ICcnKSA9PSAnJykgeworICAgICAgICAgICAgdmFyIG1zZyA9ICd7eyBfKCdM ZXhpemUgZnVuY3Rpb24gbXVzdCBiZSBzZWxlY3RlZCEnKSB9fSc7CisgICAg ICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCd0bXBsbGV4aXplJywgbXNn KTsKKyAgICAgICAgICAgIHJldHVybiBtc2c7CisgICAgICAgICAgfQorCisg ICAgICAgICAgLy8gVmFsaWRhdGUgc2NoZW1hIGZvciBmdHMgdGVtcGxhdGUK KyAgICAgICAgICBlbHNlIGlmIChfLmlzVW5kZWZpbmVkKHNjaGVtYSkgfHwg Xy5pc051bGwoc2NoZW1hKSB8fCBTdHJpbmcoc2NoZW1hKS5yZXBsYWNlKC9e XHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICB2YXIgbXNn ID0gJ3t7IF8oJ1NjaGVtYSBtdXN0IGJlIHNlbGVjdGVkIScpIH19JzsKKyAg ICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ3NjaGVtYScsIG1zZyk7 CisgICAgICAgICAgICByZXR1cm4gbXNnOworICAgICAgICAgIH0KKyAgICAg ICAgICBlbHNlIHRoaXMuZXJyb3JNb2RlbC5jbGVhcigpOworCisgICAgICAg ICAgdGhpcy50cmlnZ2VyKCdvbi1zdGF0dXMtY2xlYXInKTsKKyAgICAgICAg ICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgfSkKKyAgICB9KTsK KyAgfQorCityZXR1cm4gcGdCcm93c2VyLk5vZGVzWydjb2xsLWZ0c190ZW1w bGF0ZSddOworfSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0 ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBs YXRlL3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjNhMjkwYjMKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNf dGVtcGxhdGUvc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwKQEAgLTAsMCArMSwx MSBAQAoreyMgQ1JFQVRFIFRFWFQgU0VBUkNIIFRFTVBMQVRFIFN0YXRlbWVu dCAjfQoreyUgaWYgZGF0YSBhbmQgZGF0YS5zY2hlbWEgYW5kIGRhdGEubmFt ZSBhbmQgZGF0YS50bXBsbGV4aXplICV9CitDUkVBVEUgVEVYVCBTRUFSQ0gg VEVNUExBVEUge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5h bWUpIH19ICgKK3slIGlmIGRhdGEudG1wbGluaXQgYW5kIGRhdGEudG1wbGlu aXQgIT0gJy0nJX0gICAgSU5JVCA9IHt7ZGF0YS50bXBsaW5pdH19LHslIGVu ZGlmICV9CisgICAgTEVYSVpFID0ge3tkYXRhLnRtcGxsZXhpemV9fQorKTsK K3sjIERlc2NyaXB0aW9uIGZvciBURVhUIFNFQVJDSCBURU1QTEFURSAjfQor eyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorQ09NTUVOVCBPTiBURVhUIFNF QVJDSCBURU1QTEFURSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRh dGEubmFtZSkgfX0KKyAgICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRM aXRlcmFsIH19OworeyUgZW5kaWYgJX17JSBlbmRpZiAlfQpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4x X3BsdXMvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0 ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvZGVsZXRl LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jY2E4 ZGM0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3Rl bXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9k ZWxldGUuc3FsCkBAIC0wLDAgKzEsMjMgQEAKK3sjIEZFVENIIFRFWFQgU0VB UkNIIFRFTVBMQVRFIE5BTUUgU3RhdGVtZW50ICN9Cit7JSBpZiB0aWQgJX0K K1NFTEVDVAorICAgIHQudG1wbG5hbWUgQVMgbmFtZSwKKyAgICAoCisgICAg U0VMRUNUCisgICAgICAgIG5zcG5hbWUKKyAgICBGUk9NCisgICAgICAgIHBn X25hbWVzcGFjZQorICAgIFdIRVJFCisgICAgICAgIG9pZCA9IHQudG1wbG5h bWVzcGFjZQorICAgICkgYXMgc2NoZW1hCitGUk9NCisgICAgcGdfdHNfdGVt cGxhdGUgdCBMRUZUIEpPSU4gcGdfZGVzY3JpcHRpb24gZAorICAgIE9OIGQu b2Jqb2lkPXQub2lkIEFORCBkLmNsYXNzb2lkPSdwZ190c190ZW1wbGF0ZSc6 OnJlZ2NsYXNzCitXSEVSRQorICAgIHQub2lkID0ge3t0aWR9fTo6T0lEOwor eyUgZW5kaWYgJX0KKworeyMgRFJPUCBURVhUIFNFQVJDSCBURU1QTEFURSBT dGF0ZW1lbnQgI30KK3slIGlmIHNjaGVtYSBhbmQgbmFtZSAlfQorRFJPUCBU RVhUIFNFQVJDSCBURU1QTEFURSB7e2Nvbm58cXRJZGVudChzY2hlbWEpfX0u e3tjb25ufHF0SWRlbnQobmFtZSl9fSB7JSBpZiBjYXNjYWRlICV9Q0FTQ0FE RXslZW5kaWYlfTsKK3slIGVuZGlmICV9ClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBs YXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9mdW5j dGlvbnMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1w bGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9mdW5jdGlvbnMuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmZTllMDIK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxh dGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL2Z1bmN0 aW9ucy5zcWwKQEAgLTAsMCArMSwyMyBAQAoreyMgRkVUQ0ggbGV4aXplIGZ1 bmN0aW9ucyBmb3IgVEVYVCBTRUFSQ0ggVEVNUExBVEUgI30KK3slIGlmIGxl eGl6ZSAlfQorU0VMRUNUCisgICAgcHJvbmFtZSwgbnNwbmFtZQorRlJPTQor ICAgIHBnX3Byb2MgSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBuLm9pZD1wcm9u YW1lc3BhY2UKK1dIRVJFCisgICAgcHJvcmV0dHlwZT0yMjgxCisgICAgQU5E IHByb2FyZ3R5cGVzPScyMjgxIDIyODEgMjI4MSAyMjgxJworT1JERVIgQlkg cHJvbmFtZTsKK3slIGVuZGlmICV9CisKK3sjIEZFVENIIGluaXQgZnVuY3Rp b25zIGZvciBURVhUIFNFQVJDSCBURU1QTEFURSAjfQoreyUgaWYgaW5pdCAl fQorU0VMRUNUCisgICAgcHJvbmFtZSwgbnNwbmFtZQorRlJPTQorICAgIHBn X3Byb2MgSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBuLm9pZD1wcm9uYW1lc3Bh Y2UKK1dIRVJFCisgICAgcHJvcmV0dHlwZT0yMjgxIGFuZCBwcm9hcmd0eXBl cz0nMjI4MScKK09SREVSIEJZCisgICAgcHJvbmFtZTsKK3slIGVuZGlmICV9 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3Rl bXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL25vZGVzLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190 ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvbm9kZXMuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1MDI0N2UKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9m dHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL25vZGVzLnNxbApAQCAtMCwwICsx LDEyIEBACitTRUxFQ1QKKyAgICBvaWQsIHRtcGxuYW1lIGFzIG5hbWUKK0ZS T00KKyAgICBwZ190c190ZW1wbGF0ZSB0bXBsCitXSEVSRQoreyUgaWYgc2Np ZCAlfQorICAgIHRtcGwudG1wbG5hbWVzcGFjZSA9IHt7c2NpZH19OjpPSUQK K3slIGVsaWYgdGlkICV9CisgICAgdG1wbC5vaWQgPSB7e3RpZH19OjpPSUQK K3slIGVuZGlmICV9CisKK09SREVSIEJZIG5hbWUKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNf dGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVz L3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRl cy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9wcm9wZXJ0 aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4y YjVhOTVmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRz X3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1 cy9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDI3IEBACit7IyBHZXQgcHJv cGVydGllcyBmb3IgRlRTIFRFTVBMQVRFICN9CitTRUxFQ1QKKyAgICB0bXBs Lm9pZCwKKyAgICB0bXBsLnRtcGxuYW1lIGFzIG5hbWUsCisgICAgdG1wbC50 bXBsaW5pdCwKKyAgICB0bXBsLnRtcGxsZXhpemUsCisgICAgZGVzY3JpcHRp b24sCisgICAgdG1wbC50bXBsbmFtZXNwYWNlIEFTIHNjaGVtYQorRlJPTQor ICAgIHBnX3RzX3RlbXBsYXRlIHRtcGwKKyAgICBMRUZUIE9VVEVSIEpPSU4g cGdfZGVzY3JpcHRpb24gZGVzCitPTgorICAgICgKKyAgICBkZXMub2Jqb2lk PXRtcGwub2lkCisgICAgQU5EIGRlcy5jbGFzc29pZD0ncGdfdHNfdGVtcGxh dGUnOjpyZWdjbGFzcworICAgICkKK1dIRVJFCit7JSBpZiBzY2lkICV9Cisg ICAgdG1wbC50bXBsbmFtZXNwYWNlID0ge3tzY2lkfX06Ok9JRAoreyUgZWxp ZiBuYW1lICV9CisgICAgdG1wbC50bXBsbmFtZSA9IHt7bmFtZXxxdExpdGVy YWx9fQoreyUgZW5kaWYgJX0KK3slIGlmIHRpZCAlfQorICAgIEFORCB0bXBs Lm9pZCA9IHt7dGlkfX06Ok9JRAoreyUgZW5kaWYgJX0KK09SREVSIEJZCisg ICAgdG1wbC50bXBsbmFtZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVt cGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvc2NoZW1hLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190 ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvc2NoZW1hLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjdkZGIzCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMv ZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9zY2hlbWEuc3FsCkBAIC0wLDAg KzEsMTkgQEAKK3sjIFNDSEVNQSBuYW1lIEZFVENIIHN0YXRlbWVudCAjfQor eyUgaWYgZGF0YS5zY2hlbWEgJX0KK1NFTEVDVAorICAgIG5zcG5hbWUKK0ZS T00KKyAgICBwZ19uYW1lc3BhY2UKK1dIRVJFCisgICAgb2lkID0ge3tkYXRh LnNjaGVtYX19OjpPSUQKKworeyUgZWxpZiBkYXRhLmlkICV9CitTRUxFQ1QK KyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdfbmFtZXNwYWNlIG5zcAorICAg IExFRlQgSk9JTiBwZ190c190ZW1wbGF0ZSB0cworICAgIE9OIHRzLnRtcGxu YW1lc3BhY2UgPSBuc3Aub2lkCitXSEVSRQorICAgIHRzLm9pZCA9IHt7ZGF0 YS5pZH19OjpPSUQKK3slIGVuZGlmICV9ClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBs YXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9zcWwu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMv ZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9zcWwuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2NjEwNzgKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRl cy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL3NxbC5zcWwKQEAgLTAsMCAr MSw0MSBAQAoreyMgUmV2ZXJzZSBlbmdpbmVlcmVkIHNxbCBmb3IgRlRTIFRF TVBMQVRFICN9CitTRUxFQ1QKKyAgICBhcnJheV90b19zdHJpbmcoYXJyYXlf YWdnKHNxbCksIEUnXG5cbicpIGFzIHNxbAorRlJPTQorICAgICgKKyAgICBT RUxFQ1QKKyAgICAgICAgRSctLSBUZXh0IFNlYXJjaCBUZW1wbGF0ZTogJyB8 fCBuc3BuYW1lIHx8IEUnLicgfHwgdG1wbC50bXBsbmFtZSB8fAorICAgICAg ICBFJ1xuXG4tLSBEUk9QIFRFWFQgU0VBUkNIIFRFTVBMQVRFICcgfHwgbnNw bmFtZSB8fCBFJy4nIHx8IHRtcGwudG1wbG5hbWUgfHwKKyAgICAgICAgRSdc blxuQ1JFQVRFIFRFWFQgU0VBUkNIIFRFTVBMQVRFICcgfHwgbnNwbmFtZSB8 fCBFJy4nIHx8ICB0bXBsLnRtcGxuYW1lIHx8IEUnIChcbicgfHwKKyAgICAg ICAgQ0FTRQorICAgICAgICAgICAgV0hFTiB0bXBsLnRtcGxpbml0ICE9ICct Jzo6cmVnY2xhc3MgVEhFTiBFJyAgICBJTklUID0gJyB8fCB0bXBsLnRtcGxp bml0IHx8IEUnLFxuJworICAgICAgICAgICAgRUxTRSAnJyBFTkQgfHwKKyAg ICAgICAgRScgICAgTEVYSVpFID0gJyB8fCB0bXBsLnRtcGxsZXhpemUgfHwg RSdcbik7JyB8fAorICAgICAgICBDQVNFCisgICAgICAgICAgICBXSEVOIGEu ZGVzY3JpcHRpb24gSVMgTk9UIE5VTEwgVEhFTgorICAgICAgICAgICAgICAg IEUnXG5cbkNPTU1FTlQgT04gVEVYVCBTRUFSQ0ggVEVNUExBVEUgJyB8fCBu c3BuYW1lIHx8IEUnLicgfHwgdG1wbC50bXBsbmFtZSB8fAorICAgICAgICAg ICAgICAgIEUnIElTICcgfHwgcGdfY2F0YWxvZy5xdW90ZV9saXRlcmFsKGRl c2NyaXB0aW9uKSB8fCBFJzsnCisgICAgICAgICAgICBFTFNFICcnICBFTkQg YXMgc3FsCitGUk9NCisgICAgcGdfdHNfdGVtcGxhdGUgdG1wbAorICAgIExF RlQgSk9JTiAoCisgICAgICAgIFNFTEVDVAorICAgICAgICAgICAgZGVzLmRl c2NyaXB0aW9uIGFzIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgZGVzLm9i am9pZCBhcyBkZXNjb2lkCisgICAgICAgIEZST00KKyAgICAgICAgICAgIHBn X2Rlc2NyaXB0aW9uIGRlcworICAgICAgICBXSEVSRQorICAgICAgICAgICAg ZGVzLm9iam9pZD17e3RpZH19OjpPSUQgQU5EIGRlcy5jbGFzc29pZD0ncGdf dHNfdGVtcGxhdGUnOjpyZWdjbGFzcworICAgICkgYSBPTiAoYS5kZXNjb2lk ID0gdG1wbC5vaWQpCisgICAgTEVGVCBKT0lOICgKKyAgICAgICAgU0VMRUNU CisgICAgICAgICAgICBuc3BuYW1lLAorICAgICAgICAgICAgbnNwLm9pZCBh cyBub2lkCisgICAgICAgIEZST00KKyAgICAgICAgICAgIHBnX25hbWVzcGFj ZSBuc3AKKyAgICAgICAgV0hFUkUKKyAgICAgICAgICAgIG9pZCA9IHt7c2Np ZH19OjpPSUQKKyAgICApIGIgT04gKGIubm9pZCA9IHRtcGwudG1wbG5hbWVz cGFjZSkKK1dIRVJFCisgICAgdG1wbC5vaWQ9e3t0aWR9fTo6T0lECispIGFz IGM7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3Rl bXBsYXRlL3NxbC85LjFfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85 LjFfcGx1cy91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjE1NmRlZmQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUv c3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSwyMiBAQAoreyMg VVBEQVRFIHN0YXRlbWVudCBmb3IgVEVYVCBTRUFSQ0ggVEVNUExBVEUgI30K K3slIGlmIGRhdGEgJX0KK3slIGlmIGRhdGEubmFtZSBhbmQgZGF0YS5uYW1l ICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBURVhUIFNFQVJDSCBURU1QTEFU RSB7e2Nvbm58cXRJZGVudChvX2RhdGEuc2NoZW1hKX19Lnt7Y29ubnxxdElk ZW50KG9fZGF0YS5uYW1lKX19CisgICAgUkVOQU1FIFRPIHt7ZGF0YS5uYW1l fX07Cit7JSBlbmRpZiAlfQorCit7I2luIGNhc2Ugb2YgcmVuYW1lLCB1c2Ug bmV3IGZ0cyB0ZW1wbGF0ZSBuYW1lICN9Cit7JSBpZiBkYXRhLm5hbWUgYW5k IGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfQoreyUgc2V0IG5hbWUgPSBk YXRhLm5hbWUgJX0KK3slIGVsc2UgJX0KK3slIHNldCBuYW1lID0gb19kYXRh Lm5hbWUgJX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLnNjaGVtYSBhbmQg ZGF0YS5zY2hlbWEgIT0gb19kYXRhLnNjaGVtYSAlfQorQUxURVIgVEVYVCBT RUFSQ0ggVEVNUExBVEUge3tjb25ufHF0SWRlbnQob19kYXRhLnNjaGVtYSl9 fS57e2Nvbm58cXRJZGVudChuYW1lKX19CisgICAgU0VUIFNDSEVNQSB7e2Rh dGEuc2NoZW1hfX07Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2Rlc2NyaXB0aW9u JyBpbiBkYXRhIGFuZCBkYXRhLmRlc2NyaXB0aW9uICE9IG9fZGF0YS5kZXNj cmlwdGlvbiAlfQorQ09NTUVOVCBPTiBURVhUIFNFQVJDSCBURU1QTEFURSB7 e2Nvbm58cXRJZGVudChvX2RhdGEuc2NoZW1hKX19Lnt7Y29ubnxxdElkZW50 KG5hbWUpfX0KKyAgICBJUyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJh bCB9fTsKK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQpcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUK --001a114325ec3ba946052fe552c8 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a114325ec3ba946052fe552c8--