Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aai6E-0000Cj-Gu for pgadmin-hackers@arkaria.postgresql.org; Tue, 01 Mar 2016 11:04:18 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aai6E-00069w-2F for pgadmin-hackers@arkaria.postgresql.org; Tue, 01 Mar 2016 11:04:18 +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) (envelope-from ) id 1aai6B-00069g-TY for pgadmin-hackers@postgresql.org; Tue, 01 Mar 2016 11:04:16 +0000 Received: from mail-yw0-x234.google.com ([2607:f8b0:4002:c05::234]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aai65-00021s-51 for pgadmin-hackers@postgresql.org; Tue, 01 Mar 2016 11:04:15 +0000 Received: by mail-yw0-x234.google.com with SMTP id h129so145546290ywb.1 for ; Tue, 01 Mar 2016 03:04:08 -0800 (PST) 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=bTmMpQoviY0IEUb1LBbGuBWPkky+vXWqOVGPqFEoFMU=; b=WbF/r2urORxX9/dRBH+KdgJYfeSBQG8L2i/vSB/zxrB5GoZG5LD2aPJ3Icj/FUhATQ P0uoQvuiFNAsMCfFeZ8UiUEU3H9cVCWNmDUixUVu6uBi1EgLJZ0Ux0GTQkb/SRw+P8WW 7zV9GLeSSLhB27FE1JzwXEIGV6hK0bMqYIGfHW+jrrtfEeqjVSxQnicfHMj+kMc6P0JE yWl8v3gIoYz3q8dQTvesHUhdqfaunCBO1v48CW9gEjDnaEUw7wfhT+CIGOIAgMweAE1V JPslUrF5lzKRj0+vSrdXWzcvB7qvJmquQuIPetRU3Tjuu/37u+qzPfsMG1VZ3P9eudnN TELA== 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=bTmMpQoviY0IEUb1LBbGuBWPkky+vXWqOVGPqFEoFMU=; b=HWG5U1pHWycR3ZNaaER8mx7LYEWCn1yIpItU0wss7pfAXPudJqh0Dic7dclq/iKkR2 A8gbZoB136tatAJU8siR/23eMX0Tq/nb0bA3DAyul+CxhQt2G7n+B/3PRompOSJEAl3L BMHpv0Mw7C7KNEc8Zij06zdoLMsee6Uq/C9S806fmljcoparhgMHA+Sq5F9ZdJa+4QHC S5tFYF35JUtt2Sl0HoCh2LpM/WG7G9MoltCxvR8KTP8O6YhP3dIIdwpM0y3UPjM06UO/ Q7dWz1PSzOOWzV16Ds0r+YB0ljf1ciceRuWYgRcolVZ0HpDoVQky8WRW7Gfr1TLMLtGy NvSw== X-Gm-Message-State: AD7BkJLODKPuO1G/RJ6lBfn2FdM2TtT7Iio5Q5TiQUSuDXmw4nQzEhrbea+nKwqpPeDKJ6f1FGWRKeTt9eB/qHg+ MIME-Version: 1.0 X-Received: by 10.129.72.78 with SMTP id v75mr12370744ywa.78.1456830247389; Tue, 01 Mar 2016 03:04:07 -0800 (PST) Received: by 10.13.207.199 with HTTP; Tue, 1 Mar 2016 03:04:07 -0800 (PST) In-Reply-To: References: Date: Tue, 1 Mar 2016 16:34:07 +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=001a114dcb02652fd4052cfab9bd 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 --001a114dcb02652fd4052cfab9bd Content-Type: multipart/alternative; boundary=001a114dcb02652fcc052cfab9bb --001a114dcb02652fcc052cfab9bb Content-Type: text/plain; charset=UTF-8 Hi Dave, All comments are resolved. PFA the revised patch. Regards, Sanket Mehta Sr Software engineer Enterprisedb On Thu, Feb 25, 2016 at 7:37 PM, Dave Page wrote: > Hi > > On Tue, Feb 23, 2016 at 1:44 PM, Sanket Mehta < > sanket.mehta@enterprisedb.com> wrote: > >> Hi, >> >> PFA the revised patch for fts template node which includes dependency and >> dependent route handling code. >> Please do review it and if found proper please do commit it. >> > > - When creating a new template, errors in the dialogue are not cleared - > e.g. the "Name must not be empty" doesn't clear, and save is not enabled, > even when a name is entered. > > - "Fts Templates" should be "FTS Templates" on the treeview. > > - The "Init" field should be labelled "Init Function" > > - The "Lexize" field should be labelled "Lexize Function" > > - Selecting a schema should be optional, with the default being the > current schema. > > - 4 character indents are not consistently used in SQL templates > > Thanks. > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --001a114dcb02652fcc052cfab9bb Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave,

All comments are reso= lved.
PFA the revised patch.

Regards,
Sanket Mehta
Sr Software engineer
Enterpr= isedb

On Thu, Feb 25, 2016 at 7:37 PM, Dave Page <= span dir=3D"ltr"><dpage@pgadmin.org> wrote:
=
Hi

On Tue, Feb 23, 2016 at 1:44 PM, Sanket Mehta <sanket.mehta@enterprisedb.com> wrote:
Hi,

PF= A the revised patch for fts template node which includes dependency and dep= endent route handling code.
Please do revi= ew it and if found proper please do commit it.

- When creating a new template, errors in the dialogue are= not cleared - e.g. the "Name must not be empty" doesn't clea= r, and save is not enabled, even when a name is entered.

- "Fts Templates" should be "FTS Templates" on t= he treeview.

- The "Init" field should b= e labelled "Init Function"

- The "L= exize" field should be labelled "Lexize Function"
=
- Selecting a schema should be optional, with the default be= ing the current schema.

- 4 character indents are = not consistently used in SQL templates=C2=A0

<= div>Thanks.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
<= br>EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
=

--001a114dcb02652fcc052cfab9bb-- --001a114dcb02652fd4052cfab9bd Content-Type: text/x-patch; charset=US-ASCII; name="fts_templatev3.patch" Content-Disposition: attachment; filename="fts_templatev3.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_il9b41160 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvX19p bml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL19faW5p dF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcw OTFjOTMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNf dGVtcGxhdGVzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNzAwIEBACisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxNiwgVGhl IHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlz IHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyIiIkRlZmluZXMgdmll d3MgZm9yIG1hbmFnZW1lbnQgb2YgRnRzIFRlbXBsYXRlIG5vZGUiIiIKKwor aW1wb3J0IGpzb24KK2Zyb20gZmxhc2sgaW1wb3J0IHJlbmRlcl90ZW1wbGF0 ZSwgbWFrZV9yZXNwb25zZSwgY3VycmVudF9hcHAsIHJlcXVlc3QsIGpzb25p ZnkKK2Zyb20gZmxhc2suZXh0LmJhYmVsIGltcG9ydCBnZXR0ZXh0Citmcm9t IHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNl LCBcCisgICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlLCBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IKK2Zyb20gcGdhZG1pbi5icm93c2VyLnV0aWxz IGltcG9ydCBQR0NoaWxkTm9kZVZpZXcKK2Zyb20gcGdhZG1pbi5icm93c2Vy LmNvbGxlY3Rpb24gaW1wb3J0IENvbGxlY3Rpb25Ob2RlTW9kdWxlCitpbXBv cnQgcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMuc2NoZW1hcyBhcyBzY2hlbWFzCitmcm9tIHBnYWRtaW4udXRpbHMu YWpheCBpbXBvcnQgcHJlY29uZGl0aW9uX3JlcXVpcmVkCitmcm9tIHBnYWRt aW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCitmcm9tIGNvbmZp ZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKK2Zyb20gZnVuY3Rvb2xzIGlt cG9ydCB3cmFwcworCisKK2NsYXNzIEZ0c1RlbXBsYXRlTW9kdWxlKENvbGxl Y3Rpb25Ob2RlTW9kdWxlKToKKyAgICAiIiIKKyAgICAgY2xhc3MgRnRzVGVt cGxhdGVNb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUpCisKKyAgICAgICAg QSBtb2R1bGUgY2xhc3MgZm9yIEZUUyBUZW1wbGF0ZSBub2RlIGRlcml2ZWQg ZnJvbSBDb2xsZWN0aW9uTm9kZU1vZHVsZS4KKworICAgIE1ldGhvZHM6Cisg ICAgLS0tLS0tLQorICAgICogX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQor ICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSBGdHNU ZW1wbGF0ZU1vZHVsZSBhbmQgaXQncyBiYXNlIG1vZHVsZS4KKworICAgICog Z2V0X25vZGVzKGdpZCwgc2lkLCBkaWQsIHNjaWQpCisgICAgICAtIE1ldGhv ZCBpcyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBicm93c2VyIGNvbGxlY3Rpb24g bm9kZS4KKworICAgICogbm9kZV9pbm9kZSgpCisgICAgICAtIE1ldGhvZCBp cyBvdmVycmlkZGVuIGZyb20gaXRzIGJhc2UgY2xhc3MgdG8gbWFrZSB0aGUg bm9kZSBhcyBsZWFmIG5vZGUuCisKKyAgICAqIHNjcmlwdF9sb2FkKCkKKyAg ICAgIC0gTG9hZCB0aGUgbW9kdWxlIHNjcmlwdCBmb3IgRlRTIFRlbXBsYXRl LCB3aGVuIGFueSBvZiB0aGUgc2NoZW1hIG5vZGUgaXMKKyAgICAgICAgaW5p dGlhbGl6ZWQuCisgICAgIiIiCisgICAgTk9ERV9UWVBFID0gJ2Z0c190ZW1w bGF0ZScKKyAgICBDT0xMRUNUSU9OX0xBQkVMID0gZ2V0dGV4dCgnRlRTIFRl bXBsYXRlcycpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoq a3dhcmdzKToKKyAgICAgICAgc2VsZi5taW5fdmVyID0gTm9uZQorICAgICAg ICBzZWxmLm1heF92ZXIgPSBOb25lCisgICAgICAgIHN1cGVyKEZ0c1RlbXBs YXRlTW9kdWxlLCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisK KyAgICBkZWYgZ2V0X25vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQp OgorICAgICAgICAiIiIKKyAgICAgICAgR2VuZXJhdGUgdGhlIGNvbGxlY3Rp b24gbm9kZQorICAgICAgICA6cGFyYW0gZ2lkOiBncm91cCBpZAorICAgICAg ICA6cGFyYW0gc2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAgOnBhcmFtIGRpZDog ZGF0YWJhc2UgaWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IHNjaGVtYSBpZAor ICAgICAgICAiIiIKKyAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93 c2VyX2NvbGxlY3Rpb25fbm9kZShzY2lkKQorCisgICAgQHByb3BlcnR5Cisg ICAgZGVmIG5vZGVfaW5vZGUoc2VsZik6CisgICAgICAgICIiIgorICAgICAg ICBPdmVycmlkZSB0aGUgcHJvcGVydHkgdG8gbWFrZSB0aGUgbm9kZSBhcyBs ZWFmIG5vZGUKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBGYWxzZQor CisgICAgQHByb3BlcnR5CisgICAgZGVmIHNjcmlwdF9sb2FkKHNlbGYpOgor ICAgICAgICAiIiIKKyAgICAgICAgTG9hZCB0aGUgbW9kdWxlIHNjcmlwdCBm b3IgZnRzIHRlbXBsYXRlLCB3aGVuIGFueSBvZiB0aGUgc2NoZW1hIG5vZGUg aXMKKyAgICAgICAgaW5pdGlhbGl6ZWQuCisgICAgICAgICIiIgorICAgICAg ICByZXR1cm4gc2NoZW1hcy5TY2hlbWFNb2R1bGUuTk9ERV9UWVBFCisKKwor Ymx1ZXByaW50ID0gRnRzVGVtcGxhdGVNb2R1bGUoX19uYW1lX18pCisKKwor Y2xhc3MgRnRzVGVtcGxhdGVWaWV3KFBHQ2hpbGROb2RlVmlldyk6CisgICAg IiIiCisgICAgY2xhc3MgRnRzVGVtcGxhdGVWaWV3KFBHQ2hpbGROb2RlVmll dykKKworICAgICAgICBBIHZpZXcgY2xhc3MgZm9yIEZUUyBUZW1wYWx0ZSBu b2RlIGRlcml2ZWQgZnJvbSBQR0NoaWxkTm9kZVZpZXcuIFRoaXMgY2xhc3Mg aXMKKyAgICAgICAgcmVzcG9uc2libGUgZm9yIGFsbCB0aGUgc3R1ZmYgcmVs YXRlZCB0byB2aWV3IGxpa2UgY3JlYXRlL3VwZGF0ZS9kZWxldGUKKyAgICAg ICAgRlRTIHRlbXBsYXRlLCBzaG93aW5nIHByb3BlcnRpZXMgb2Ygbm9kZSwg c2hvd2luZyBzcWwgaW4gc3FsIHBhbmUuCisKKyAgICBNZXRob2RzOgorICAg IC0tLS0tLS0KKyAgICAqIF9faW5pdF9fKCoqa3dhcmdzKQorICAgICAgLSBN ZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSBGdHNUZW1wbGF0ZVZp ZXcgYW5kIGl0J3MgYmFzZSB2aWV3LgorCisgICAgKiBtb2R1bGVfanMoKQor ICAgICAgLSBUaGlzIHByb3BlcnR5IGRlZmluZXMgKGlmIGphdmFzY3JpcHQp IGV4aXN0cyBmb3IgdGhpcyBub2RlLgorICAgICAgICBPdmVycmlkZSB0aGlz IHByb3BlcnR5IGZvciB5b3VyIG93biBsb2dpYworCisgICAgKiBjaGVja19w cmVjb25kaXRpb24oKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgYmVo YXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwgY2hlY2tzCisgICAgICAg IGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5pbmcgdmlldywgaXQg d2lsbCBhbHNvIGF0dGFjaGVzCisgICAgICAgIG1hbmFnZXIsY29ubiAmIHRl bXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCisKKyAgICAqIGxpc3Qo KQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gbGlzdCBhbGwg dGhlICBub2RlcyB3aXRoaW4gdGhhdCBjb2xsZWN0aW9uLgorCisgICAgKiBu b2RlcygpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCB1c2VkIHRvIGNy ZWF0ZSBhbGwgdGhlIGNoaWxkIG5vZGUgd2l0aGluIHRoYXQgY29sbGVjdGlv bi4KKyAgICAgICAgSGVyZSBpdCB3aWxsIGNyZWF0ZSBhbGwgdGhlIEZUUyBU ZW1wbGF0ZSBub2Rlcy4KKworICAgICogcHJvcGVydGllcyhnaWQsIHNpZCwg ZGlkLCByZ19pZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIHNob3cg dGhlIHByb3BlcnRpZXMgb2YgdGhlIHNlbGVjdGVkIEZUUyBUZW1wbGF0ZSBu b2RlCisKKyAgICAqIGNyZWF0ZShnaWQsIHNpZCwgZGlkLCByZ19pZCkKKyAg ICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSB0aGUgbmV3IEZUUyBU ZW1wbGF0ZSBvYmplY3QKKworICAgICogdXBkYXRlKGdpZCwgc2lkLCBkaWQs IHJnX2lkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHRo ZSBkYXRhIGZvciB0aGUgc2VsZWN0ZWQgRlRTIFRlbXBsYXRlIG5vZGUKKwor ICAgICogZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCByZ19pZCk6CisgICAgICAt IFRoaXMgZnVuY3Rpb24gd2lsbCBkcm9wIHRoZSBGVFMgVGVtcGxhdGUgb2Jq ZWN0CisKKyAgICAqIG1zcWwoZ2lkLCBzaWQsIGRpZCwgcmdfaWQpCisgICAg ICAtIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byByZXR1cm4gbW9kaWZpZWQg U1FMIGZvciB0aGUgc2VsZWN0ZWQgRlRTIFRlbXBsYXRlIG5vZGUKKworICAg ICogZ2V0X3NxbChkYXRhLCByZ19pZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlv biB3aWxsIGdlbmVyYXRlIHNxbCBmcm9tIG1vZGVsIGRhdGEKKworICAgICog c3FsKGdpZCwgc2lkLCBkaWQsIHJnX2lkKToKKyAgICAgIC0gVGhpcyBmdW5j dGlvbiB3aWxsIGdlbmVyYXRlIHNxbCB0byBzaG93IGl0IGluIHNxbCBwYW5l IGZvciB0aGUgc2VsZWN0ZWQgRlRTIFRlbXBsYXRlIG5vZGUuCisKKyAgICAq IGdldF90eXBlKCk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRj aCBhbGwgdGhlIHR5cGVzIGZvciBzb3VyY2UgYW5kIHRhcmdldCB0eXBlcyBz ZWxlY3QgY29udHJvbC4KKworICAgICogZ2V0X2Z1bmN0aW9ucygpOgorICAg ICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggYXNzb2NpYXRlZCBmdW5j dGlvbnMgbGlzdCBkZXBlbmRpbmcgb24gc2VsZWN0ZWQgc291cmNlCisgICAg ICAgIGFuZCB0YXJnZXQgdHlwZXMgd2hpbGUgY3JlYXRpbmcgYSBuZXcgRlRT IFRlbXBsYXRlIG5vZGUuCisKKyAgICAqIGRlcGVuZGVudHMoZ2lkLCBzaWQs IGRpZCwgbGlkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRl cGVuZGVudHMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNlIGZvciB0aGUgRnRz IFRlbXBhbHRlIG5vZGUuCisKKyAgICAqIGRlcGVuZGVuY2llcyhzZWxmLCBn aWQsIHNpZCwgZGlkLCBsaWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIGdl dCB0aGUgZGVwZW5kZW5jaWVzIGFuZCByZXR1cm4gYWpheCByZXNwb25zZSBm b3IgdGhlIEZUUyBUZW1wYWx0ZSBub2RlLgorCisgICAgIiIiCisKKyAgICBu b2RlX3R5cGUgPSBibHVlcHJpbnQubm9kZV90eXBlCisKKyAgICBwYXJlbnRf aWRzID0gWworICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ2dpZCd9 LAorICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3NpZCd9LAorICAg ICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ2RpZCd9LAorICAgICAgICB7 J3R5cGUnOiAnaW50JywgJ2lkJzogJ3NjaWQnfQorICAgIF0KKyAgICBpZHMg PSBbCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAndGlkJ30KKyAg ICBdCisKKyAgICBvcGVyYXRpb25zID0gZGljdCh7CisgICAgICAgICdvYmon OiBbCisgICAgICAgICAgICB7J2dldCc6ICdwcm9wZXJ0aWVzJywgJ2RlbGV0 ZSc6ICdkZWxldGUnLCAncHV0JzogJ3VwZGF0ZSd9LAorICAgICAgICAgICAg eydnZXQnOiAnbGlzdCcsICdwb3N0JzogJ2NyZWF0ZSd9CisgICAgICAgIF0s CisgICAgICAgICdjaGlsZHJlbic6IFt7CisgICAgICAgICAgICAnZ2V0Jzog J2NoaWxkcmVuJworICAgICAgICB9XSwKKyAgICAgICAgJ2RlbGV0ZSc6IFt7 J2RlbGV0ZSc6ICdkZWxldGUnfV0sCisgICAgICAgICdub2Rlcyc6IFt7J2dl dCc6ICdub2RlJ30sIHsnZ2V0JzogJ25vZGVzJ31dLAorICAgICAgICAnc3Fs JzogW3snZ2V0JzogJ3NxbCd9XSwKKyAgICAgICAgJ21zcWwnOiBbeydnZXQn OiAnbXNxbCd9LCB7J2dldCc6ICdtc3FsJ31dLAorICAgICAgICAnc3RhdHMn OiBbeydnZXQnOiAnc3RhdGlzdGljcyd9XSwKKyAgICAgICAgJ2RlcGVuZGVu Y3knOiBbeydnZXQnOiAnZGVwZW5kZW5jaWVzJ31dLAorICAgICAgICAnZGVw ZW5kZW50JzogW3snZ2V0JzogJ2RlcGVuZGVudHMnfV0sCisgICAgICAgICdt b2R1bGUuanMnOiBbe30sIHt9LCB7J2dldCc6ICdtb2R1bGVfanMnfV0sCisg ICAgICAgICdnZXRfbGV4aXplJzogW3snZ2V0JzogJ2dldF9sZXhpemUnfSwg eydnZXQnOiAnZ2V0X2xleGl6ZSd9XSwKKyAgICAgICAgJ2dldF9pbml0Jzog W3snZ2V0JzogJ2dldF9pbml0J30sIHsnZ2V0JzogJ2dldF9pbml0J31dLAor ICAgIH0pCisKKyAgICBkZWYgX2luaXRfKHNlbGYsICoqa3dhcmdzKToKKyAg ICAgICAgc2VsZi5jb25uID0gTm9uZQorICAgICAgICBzZWxmLnRlbXBsYXRl X3BhdGggPSBOb25lCisgICAgICAgIHNlbGYubWFuYWdlciA9IE5vbmUKKyAg ICAgICAgc3VwZXIoRnRzVGVtcGxhdGVWaWV3LCBzZWxmKS5fX2luaXRfXygq Kmt3YXJncykKKworICAgIGRlZiBtb2R1bGVfanMoc2VsZik6CisgICAgICAg ICIiIgorICAgICAgICBUaGlzIHByb3BlcnR5IGRlZmluZXMgd2hldGhlciBq YXZhc2NyaXB0IGV4aXN0cyBmb3IgdGhpcyBub2RlLgorICAgICAgICAiIiIK KyAgICAgICAgcmV0dXJuIG1ha2VfcmVzcG9uc2UoCisgICAgICAgICAgICBy ZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgImZ0c190ZW1wbGF0 ZS9qcy9mdHNfdGVtcGxhdGVzLmpzIiwKKyAgICAgICAgICAgICAgICBfPWdl dHRleHQKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAyMDAsIHsnQ29u dGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCd9CisgICAg ICAgICkKKworICAgIGRlZiBjaGVja19wcmVjb25kaXRpb24oZik6CisgICAg ICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgYmVoYXZlIGFz IGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwgY2hlY2tzCisgICAgICAgIGRhdGFi YXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5pbmcgdmlldywgaXQgd2lsbCBh bHNvIGF0dGFjaGVzCisgICAgICAgIG1hbmFnZXIsY29ubiAmIHRlbXBsYXRl X3BhdGggcHJvcGVydGllcyB0byBzZWxmCisgICAgICAgICIiIgorCisgICAg ICAgIEB3cmFwcyhmKQorICAgICAgICBkZWYgd3JhcCgqYXJncywgKiprd2Fy Z3MpOgorICAgICAgICAgICAgIyBIZXJlIGFyZ3NbMF0gd2lsbCBob2xkIHNl bGYgJiBrd2FyZ3Mgd2lsbCBob2xkIGdpZCxzaWQsZGlkCisgICAgICAgICAg ICBzZWxmID0gYXJnc1swXQorICAgICAgICAgICAgc2VsZi5tYW5hZ2VyID0g Z2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5h Z2VyKAorICAgICAgICAgICAgICAgIGt3YXJnc1snc2lkJ10pCisgICAgICAg ICAgICBzZWxmLmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9 a3dhcmdzWydkaWQnXSkKKyAgICAgICAgICAgICMgSWYgREIgbm90IGNvbm5l Y3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93c2VyCisgICAgICAgICAg ICBpZiBub3Qgc2VsZi5jb25uLmNvbm5lY3RlZCgpOgorICAgICAgICAgICAg ICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQoCisgICAgICAgICAg ICAgICAgICAgIGdldHRleHQoCisgICAgICAgICAgICAgICAgICAgICAgICAi Q29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGxvc3QhIgorICAg ICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKQorICAgICAg ICAgICAgIyB3ZSB3aWxsIHNldCB0ZW1wbGF0ZSBwYXRoIGZvciBzcWwgc2Ny aXB0cyBkZXBlbmRpbmcgdXBvbiBzZXJ2ZXIgdmVyc2lvbgorICAgICAgICAg ICAgdmVyID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24KKyAgICAgICAgICAgIGlm IHZlciA+PSA5MDEwMDoKKyAgICAgICAgICAgICAgICBzZWxmLnRlbXBsYXRl X3BhdGggPSAnZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cycKKyAgICAgICAg ICAgIHJldHVybiBmKCphcmdzLCAqKmt3YXJncykKKworICAgICAgICByZXR1 cm4gd3JhcAorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBs aXN0KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgICBzcWwg PSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAiLyIuam9pbihbc2Vs Zi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAg ICAgICBzY2lkPXNjaWQKKyAgICAgICAgKQorICAgICAgICBzdGF0dXMsIHJl cyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorCisgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICByZXR1cm4gYWph eF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPXJlc1sncm93cydd LAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBA Y2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIG5vZGVzKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQpOgorICAgICAgICByZXMgPSBbXQorICAgICAgICBz cWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSksCisgICAg ICAgICAgICBzY2lkPXNjaWQKKyAgICAgICAgKQorICAgICAgICBzdGF0dXMs IHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KHNxbCkKKyAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKworICAgICAgICBmb3Ig cm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgIHJlcy5hcHBlbmQo CisgICAgICAgICAgICAgICAgc2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJv d3Nlcl9ub2RlKAorICAgICAgICAgICAgICAgICAgICByb3dbJ29pZCddLAor ICAgICAgICAgICAgICAgICAgICBkaWQsCisgICAgICAgICAgICAgICAgICAg IHJvd1sndG1wbG5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgaWNvbj0i aWNvbi1mdHNfdGVtcGxhdGUiCisgICAgICAgICAgICAgICAgKSkKKworICAg ICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAg ZGF0YT1yZXMsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkK KworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgcHJvcGVydGll cyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAgICBz cWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSksCisgICAg ICAgICAgICBzY2lkPXNjaWQsCisgICAgICAgICAgICB0aWQ9dGlkCisgICAg ICAgICkKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0 ZV9kaWN0KHNxbCkKKworICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1y ZXMpCisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAg ICAgICByZXNwb25zZT1yZXNbJ3Jvd3MnXVswXSwKKyAgICAgICAgICAgIHN0 YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlv bgorICAgIGRlZiBjcmVhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6 CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgY3Jl YXRlcyBuZXcgdGhlIGZ0c190ZW1wbGF0ZSBvYmplY3QKKyAgICAgICAgOnBh cmFtIGdpZDogZ3JvdXAgaWQKKyAgICAgICAgOnBhcmFtIHNpZDogc2VydmVy IGlkCisgICAgICAgIDpwYXJhbSBkaWQ6IGRhdGFiYXNlIGlkCisgICAgICAg IDpwYXJhbSBzY2lkOiBzY2hlbWEgaWQKKyAgICAgICAgIiIiCisKKyAgICAg ICAgIyBNYW5kYXRvcnkgZmllbGRzIHRvIGNyZWF0ZSBhIG5ldyBmdHMgdGVt cGxhdGUKKyAgICAgICAgcmVxdWlyZWRfYXJncyA9IFsKKyAgICAgICAgICAg ICd0bXBsbGV4aXplJywKKyAgICAgICAgICAgICdzY2hlbWEnLAorICAgICAg ICAgICAgJ3RtcGxuYW1lJworICAgICAgICBdCisKKyAgICAgICAgZGF0YSA9 IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZvcm0gZWxzZSBqc29uLmxvYWRz KAorICAgICAgICAgICAgcmVxdWVzdC5kYXRhLmRlY29kZSgpKQorICAgICAg ICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICBpZiBh cmcgbm90IGluIGRhdGE6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2Vf anNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTQx MCwKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0wLAorICAgICAgICAg ICAgICAgICAgICBlcnJvcm1zZz1nZXR0ZXh0KAorICAgICAgICAgICAgICAg ICAgICAgICAgIkNvdWxkbid0IGZpbmQgdGhlIHJlcXVpcmVkIHBhcmFtZXRl ciAoJXMpLiIgJSBhcmcKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAg ICAgICAgICAgICkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBGZXRj aCBzY2hlbWEgbmFtZSBmcm9tIHNjaGVtYSBvaWQKKyAgICAgICAgICAgIHNx bCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9w YXRoLCAnc2NoZW1hLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkYXRhPWRhdGEsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29ubj1zZWxmLmNvbm4sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICBzdGF0dXMsIHNj aGVtYSA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihzcWwpCisgICAgICAg ICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c2NoZW1hKQorCisgICAg ICAgICAgICAjIHJlcGxhY2Ugc2NoZW1hIG9pZCB3aXRoIHNjaGVtYSBuYW1l IGJlZm9yZSBwYXNzaW5nIHRvIGNyZWF0ZS5zcWwKKyAgICAgICAgICAgICMg dG8gZ2VuZXJhdGUgcHJvcGVyIHNxbCBxdWVyeQorICAgICAgICAgICAgbmV3 X2RhdGEgPSBkYXRhLmNvcHkoKQorICAgICAgICAgICAgbmV3X2RhdGFbJ3Nj aGVtYSddID0gc2NoZW1hCisgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVt cGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2NyZWF0ZS5z cWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YT1uZXdfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25uPXNlbGYuY29ubiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICApCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29u bi5leGVjdXRlX3NjYWxhcihzcWwpCisgICAgICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICAjIHdlIG5lZWQg ZnRzX3RlbXBsYXRlIGlkIHRvIHRvIGFkZCBvYmplY3QgaW4gdHJlZSBhdCBi cm93c2VyLAorICAgICAgICAgICAgIyBiZWxvdyBzcWwgd2lsbCBnaXZlIHRo ZSBzYW1lCisgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisg ICAgICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwg J3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAgICAgICAgIG5hbWU9ZGF0 YVsndG1wbG5hbWUnXQorICAgICAgICAgICAgKQorICAgICAgICAgICAgc3Rh dHVzLCB0aWQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQorICAg ICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXRpZCkKKworICAg ICAgICAgICAgcmV0dXJuIGpzb25pZnkoCisgICAgICAgICAgICAgICAgbm9k ZT1zZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAg ICAgICAgICAgICAgICAgIHRpZCwKKyAgICAgICAgICAgICAgICAgICAgZGlk LAorICAgICAgICAgICAgICAgICAgICBkYXRhWyd0bXBsbmFtZSddLAorICAg ICAgICAgICAgICAgICAgICBpY29uPSJpY29uLWZ0c190ZW1wbGF0ZSIKKyAg ICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbgorICAgIGRlZiB1cGRhdGUoc2VsZiwgZ2lkLCBzaWQs IGRpZCwgc2NpZCwgdGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMg ZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGV4dCBzZWFyY2ggdGVtcGxhdGUgb2Jq ZWN0CisgICAgICAgIDpwYXJhbSBnaWQ6IGdyb3VwIGlkCisgICAgICAgIDpw YXJhbSBzaWQ6IHNlcnZlciBpZAorICAgICAgICA6cGFyYW0gZGlkOiBkYXRh YmFzZSBpZAorICAgICAgICA6cGFyYW0gc2NpZDogc2NoZW1hIGlkCisgICAg ICAgIDpwYXJhbSB0aWQ6IGZ0cyB0ZW1wYXRlIGlkCisgICAgICAgICIiIgor ICAgICAgICBkYXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVlc3QuZm9ybSBl bHNlIGpzb24ubG9hZHMoCisgICAgICAgICAgICByZXF1ZXN0LmRhdGEuZGVj b2RlKCkpCisKKyAgICAgICAgIyBGZXRjaCBzcWwgcXVlcnkgdG8gdXBkYXRl IGZ0cyB0ZW1wbGF0ZQorICAgICAgICBzcWwgPSBzZWxmLmdldF9zcWwoZ2lk LCBzaWQsIGRpZCwgc2NpZCwgZGF0YSwgdGlkKQorICAgICAgICB0cnk6Cisg ICAgICAgICAgICBpZiBzcWwgYW5kIHNxbC5zdHJpcCgnXG4nKSBhbmQgc3Fs LnN0cmlwKCcgJyk6CisgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBz ZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQorICAgICAgICAgICAgICAg IGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAg ICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAg ICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAgICAgICBp bmZvPSJGVFMgVGVtcGxhdGUgdXBkYXRlZCIsCisgICAgICAgICAgICAgICAg ICAgIGRhdGE9eworICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJzogdGlk LAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NpZCc6IHNpZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICdnaWQnOiBnaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAnZGlkJzogZGlkLAorICAgICAgICAgICAgICAgICAgICAg ICAgJ3NjaWQnOiBzY2lkCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICApCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg ICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAg ICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICAgICAgaW5mbz0i Tm90aGluZyB0byB1cGRhdGUiLAorICAgICAgICAgICAgICAgICAgICBkYXRh PXsKKyAgICAgICAgICAgICAgICAgICAgICAgICdpZCc6IHRpZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICdzaWQnOiBzaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAnZ2lkJzogZ2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgJ2RpZCc6IGRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdzY2lk Jzogc2NpZAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg ICAgKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBk ZWxldGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkKToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBkcm9wIHRoZSBm dHNfdGVtcGxhdGUgb2JqZWN0CisgICAgICAgIDpwYXJhbSBnaWQ6IGdyb3Vw IGlkCisgICAgICAgIDpwYXJhbSBzaWQ6IHNlcnZlciBpZAorICAgICAgICA6 cGFyYW0gZGlkOiBkYXRhYmFzZSBpZAorICAgICAgICA6cGFyYW0gc2NpZDog c2NoZW1hIGlkCisgICAgICAgIDpwYXJhbSB0aWQ6IGZ0cyB0ZW1wYXRlIGlk CisgICAgICAgICIiIgorICAgICAgICAjIEJlbG93IHdpbGwgZGVjaWRlIGlm IGl0J3Mgc2ltcGxlIGRyb3Agb3IgZHJvcCB3aXRoIGNhc2NhZGUgY2FsbAor ICAgICAgICBpZiBzZWxmLmNtZCA9PSAnZGVsZXRlJzoKKyAgICAgICAgICAg ICMgVGhpcyBpcyBhIGNhc2NhZGUgb3BlcmF0aW9uCisgICAgICAgICAgICBj YXNjYWRlID0gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY2Fz Y2FkZSA9IEZhbHNlCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBH ZXQgbmFtZSBmb3IgdGVtcGxhdGUgZnJvbSB0aWQKKyAgICAgICAgICAgIHNx bCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9w YXRoLCAnZGVsZXRlLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0aWQ9dGlkKQorICAgICAgICAgICAgc3RhdHVzLCByZXMg PSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKyAgICAgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgICMg RHJvcCBmdHMgdGVtcGxhdGUKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlc1sn cm93cyddWzBdCisgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUo Ii8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2RlbGV0ZS5zcWwnXSks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1yZXN1 bHRbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzY2hlbWE9cmVzdWx0WydzY2hlbWEnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjYXNjYWRlPWNhc2NhZGUKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgIHN0YXR1 cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKHNxbCkKKyAgICAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAg ICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAg ICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAgIGluZm89Z2V0dGV4 dCgiRnRzIHRlbXBsYXRlIGRyb3BwZWQiKSwKKyAgICAgICAgICAgICAgICBk YXRhPXsKKyAgICAgICAgICAgICAgICAgICAgJ2lkJzogdGlkLAorICAgICAg ICAgICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAgICAg ICAnZ2lkJzogZ2lkLAorICAgICAgICAgICAgICAgICAgICAnZGlkJzogZGlk LAorICAgICAgICAgICAgICAgICAgICAnc2NpZCc6IHNjaWQKKyAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICApCisKKyAgICAgICAgZXhjZXB0IEV4 Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3Nl cnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJl Y29uZGl0aW9uCisgICAgZGVmIG1zcWwoc2VsZiwgZ2lkLCBzaWQsIGRpZCwg c2NpZCwgdGlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBm dW5jdGlvbiByZXR1cm5zIG1vZGlmaWVkIFNRTAorICAgICAgICA6cGFyYW0g Z2lkOiBncm91cCBpZAorICAgICAgICA6cGFyYW0gc2lkOiBzZXJ2ZXIgaWQK KyAgICAgICAgOnBhcmFtIGRpZDogZGF0YWJhc2UgaWQKKyAgICAgICAgOnBh cmFtIHNjaWQ6IHNjaGVtYSBpZAorICAgICAgICA6cGFyYW0gdGlkOiBmdHMg dGVtcGF0ZSBpZAorICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVl c3QuYXJncworCisgICAgICAgICMgRmV0Y2ggc3FsIHF1ZXJ5IGZvciBtb2Rp ZmllZCBkYXRhCisgICAgICAgIHNxbCA9IHNlbGYuZ2V0X3NxbChnaWQsIHNp ZCwgZGlkLCBzY2lkLCBkYXRhLCB0aWQpCisKKyAgICAgICAgaWYgaXNpbnN0 YW5jZShzcWwsIHN0cikgYW5kIHNxbCBhbmQgc3FsLnN0cmlwKCdcbicpIGFu ZCBzcWwuc3RyaXAoJyAnKToKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pz b25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgZGF0YT1zcWwsCisgICAg ICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgKQorICAgICAg ICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25z ZSgKKyAgICAgICAgICAgICAgICBkYXRhPSItLW1vZGlmaWVkIFNRTCIsCisg ICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgKQorCisg ICAgZGVmIGdldF9zcWwoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZGF0 YSwgdGlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5j dGlvbiB3aWxsIHJldHVybiBTUUwgZm9yIG1vZGVsIGRhdGEKKyAgICAgICAg OnBhcmFtIGdpZDogZ3JvdXAgaWQKKyAgICAgICAgOnBhcmFtIHNpZDogc2Vy dmVyIGlkCisgICAgICAgIDpwYXJhbSBkaWQ6IGRhdGFiYXNlIGlkCisgICAg ICAgIDpwYXJhbSBzY2lkOiBzY2hlbWEgaWQKKyAgICAgICAgOnBhcmFtIHRp ZDogZnRzIHRlbXBhdGUgaWQKKyAgICAgICAgIiIiCisgICAgICAgIHRyeToK KyAgICAgICAgICAgICMgRmV0Y2ggc3FsIGZvciB1cGRhdGUKKyAgICAgICAg ICAgIGlmIHRpZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBzcWwg PSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAgICIvIi5q b2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVzLnNxbCddKSwK KyAgICAgICAgICAgICAgICAgICAgdGlkPXRpZCwKKyAgICAgICAgICAgICAg ICAgICAgc2NpZD1zY2lkCisgICAgICAgICAgICAgICAgKQorCisgICAgICAg ICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0 KHNxbCkKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJlcykKKworICAgICAgICAgICAgICAgIG9sZF9kYXRhID0gcmVz Wydyb3dzJ11bMF0KKworICAgICAgICAgICAgICAgICMgSWYgdXNlciBoYXMg Y2hhbmdlZCB0aGUgc2NoZW1hIHRoZW4gZmV0Y2ggbmV3IHNjaGVtYSBkaXJl Y3RseQorICAgICAgICAgICAgICAgICMgdXNpbmcgaXRzIG9pZCBvdGhlcndp c2UgZmV0Y2ggb2xkIHNjaGVtYSBuYW1lIHVzaW5nIGZ0cyB0ZW1wbGF0ZSBv aWQKKyAgICAgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisg ICAgICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3Bh dGgsICdzY2hlbWEuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICBkYXRh PWRhdGEpCisKKyAgICAgICAgICAgICAgICBzdGF0dXMsIG5ld19zY2hlbWEg PSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQorICAgICAgICAgICAg ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9bmV3X3NjaGVtYSkK KworICAgICAgICAgICAgICAgICMgUmVwbGFjZSBzY2hlbWEgb2lkIHdpdGgg c2NoZW1hIG5hbWUKKyAgICAgICAgICAgICAgICBuZXdfZGF0YSA9IGRhdGEu Y29weSgpCisgICAgICAgICAgICAgICAgaWYgJ3NjaGVtYScgaW4gbmV3X2Rh dGE6CisgICAgICAgICAgICAgICAgICAgIG5ld19kYXRhWydzY2hlbWEnXSA9 IG5ld19zY2hlbWEKKworICAgICAgICAgICAgICAgICMgRmV0Y2ggb2xkIHNj aGVtYSBuYW1lIHVzaW5nIG9sZCBzY2hlbWEgb2lkCisgICAgICAgICAgICAg ICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAg ICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnc2NoZW1hLnNxbCdd KSwKKyAgICAgICAgICAgICAgICAgICAgZGF0YT1vbGRfZGF0YSkKKworICAg ICAgICAgICAgICAgIHN0YXR1cywgb2xkX3NjaGVtYSA9IHNlbGYuY29ubi5l eGVjdXRlX3NjYWxhcihzcWwpCisgICAgICAgICAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3Nl cnZlcl9lcnJvcihlcnJvcm1zZz1vbGRfc2NoZW1hKQorCisgICAgICAgICAg ICAgICAgIyBSZXBsYWNlIG9sZCBzY2hlbWEgb2lkIHdpdGggb2xkIHNjaGVt YSBuYW1lCisgICAgICAgICAgICAgICAgb2xkX2RhdGFbJ3NjaGVtYSddID0g b2xkX3NjaGVtYQorCisgICAgICAgICAgICAgICAgc3FsID0gcmVuZGVyX3Rl bXBsYXRlKAorICAgICAgICAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLCAndXBkYXRlLnNxbCddKSwKKyAgICAgICAgICAgICAg ICAgICAgZGF0YT1uZXdfZGF0YSwgb19kYXRhPW9sZF9kYXRhCisgICAgICAg ICAgICAgICAgKQorICAgICAgICAgICAgICAgICMgRmV0Y2ggc3FsIHF1ZXJ5 IGZvciBtb2RpZmllZCBkYXRhCisgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgICMgRmV0Y2ggc2NoZW1hIG5hbWUgZnJvbSBzY2hlbWEgb2lk CisgICAgICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5q b2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdzY2hlbWEuc3FsJ10pLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWRhdGEp CisKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHNjaGVtYSA9IHNlbGYuY29u bi5leGVjdXRlX3NjYWxhcihzcWwpCisgICAgICAgICAgICAgICAgaWYgbm90 IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zY2hlbWEpCisKKyAgICAgICAgICAg ICAgICAjIFJlcGxhY2Ugc2NoZW1hIG9pZCB3aXRoIHNjaGVtYSBuYW1lCisg ICAgICAgICAgICAgICAgbmV3X2RhdGEgPSBkYXRhLmNvcHkoKQorICAgICAg ICAgICAgICAgIG5ld19kYXRhWydzY2hlbWEnXSA9IHNjaGVtYQorCisgICAg ICAgICAgICAgICAgaWYgJ3RtcGxsZXhpemUnIGluIG5ld19kYXRhIGFuZCBc CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0bXBsbmFtZScg aW4gbmV3X2RhdGEgYW5kIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ3NjaGVtYScgaW4gbmV3X2RhdGE6CisgICAgICAgICAgICAgICAg ICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1w bGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdjcmVhdGUuc3FsJ10pLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1uZXdfZGF0 YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbm49c2VsZi5jb25uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICAgICAgICAgc3FsID0gIi0tIGluY29tcGxldGUgZGVmaW5pdGlv biIKKyAgICAgICAgICAgIHJldHVybiBzcWwKKworICAgICAgICBleGNlcHQg RXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19w cmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X2xleGl6ZShzZWxmLCBnaWQsIHNp ZCwgZGlkLCBzY2lkLCB0aWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAg ICBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGxleGl6ZSBmdW5jdGlvbnMg bGlzdCBmb3IgZnRzIHRlbXBsYXRlCisgICAgICAgIDpwYXJhbSBnaWQ6IGdy b3VwIGlkCisgICAgICAgIDpwYXJhbSBzaWQ6IHNlcnZlciBpZAorICAgICAg ICA6cGFyYW0gZGlkOiBkYXRhYmFzZSBpZAorICAgICAgICA6cGFyYW0gc2Np ZDogc2NoZW1hIGlkCisgICAgICAgIDpwYXJhbSB0aWQ6IGZ0cyB0ZW1wYXRl IGlkCisgICAgICAgICIiIgorICAgICAgICBkYXRhID0gcmVxdWVzdC5hcmdz CisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2Vs Zi50ZW1wbGF0ZV9wYXRoLCAnZnVuY3Rpb25zLnNxbCddKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxleGl6ZT1UcnVlKQorICAgICAgICBz dGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKwor ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yc2V0KQorCisgICAgICAg ICMgRW1wdHkgc2V0IGlzIGFkZGVkIGJlZm9yZSBhY3R1YWwgbGlzdCBhcyBp bml0aWFsbHkgaXQgd2lsbCBiZSB2aXNpYmxlCisgICAgICAgICMgYXQgbGV4 aXplIHNlbGVjdCBjb250cm9sIHdoaWxlIGNyZWF0aW5nIGEgbmV3IGZ0cyB0 ZW1wbGF0ZQorICAgICAgICByZXMgPSBbeydsYWJlbCc6ICcnLCAndmFsdWUn OiAnJ31dCisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgorICAg ICAgICAgICAgcmVzLmFwcGVuZCh7J2xhYmVsJzogcm93Wydwcm9uYW1lJ10s CisgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUnOiByb3dbJ3Byb25h bWUnXX0pCisgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisg ICAgICAgICAgICBkYXRhPXJlcywKKyAgICAgICAgICAgIHN0YXR1cz0yMDAK KyAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRl ZiBnZXRfaW5pdChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQ9Tm9u ZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwg cmV0dXJuIGluaXQgZnVuY3Rpb25zIGxpc3QgZm9yIGZ0cyB0ZW1wbGF0ZQor ICAgICAgICA6cGFyYW0gZ2lkOiBncm91cCBpZAorICAgICAgICA6cGFyYW0g c2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAgOnBhcmFtIGRpZDogZGF0YWJhc2Ug aWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IHNjaGVtYSBpZAorICAgICAgICA6 cGFyYW0gdGlkOiBmdHMgdGVtcGF0ZSBpZAorICAgICAgICAiIiIKKyAgICAg ICAgZGF0YSA9IHJlcXVlc3QuYXJncworICAgICAgICBzcWwgPSByZW5kZXJf dGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2Z1bmN0 aW9ucy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bml0PVRydWUpCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5l eGVjdXRlX2RpY3Qoc3FsKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6Cisg ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPXJzZXQpCisKKyAgICAgICAgIyBXZSBoYXZlIGFkZGVkIHRoaXMgdG8g bWFwIGFnYWluc3QgJy0nIHdoaWNoIGlzIGNvbWluZyBmcm9tIHNlcnZlcgor ICAgICAgICByZXMgPSBbeydsYWJlbCc6ICcnLCAndmFsdWUnOiAnLSd9XQor ICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAg IHJlcy5hcHBlbmQoeydsYWJlbCc6IHJvd1sncHJvbmFtZSddLAorICAgICAg ICAgICAgICAgICAgICAgICAgJ3ZhbHVlJzogcm93Wydwcm9uYW1lJ119KQor ICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAg ICAgZGF0YT1yZXMsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAg ICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgc3FsKHNl bGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCk6CisgICAgICAgICIiIgor ICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV2ZXJzZSBnZW5lcmF0ZSBz cWwgZm9yIHNxbCBwYW5lbAorICAgICAgICA6cGFyYW0gZ2lkOiBncm91cCBp ZAorICAgICAgICA6cGFyYW0gc2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAgOnBh cmFtIGRpZDogZGF0YWJhc2UgaWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IHNj aGVtYSBpZAorICAgICAgICA6cGFyYW0gdGlkOiBmdHMgdGVtcGF0ZSBpZAor ICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc3FsID0g cmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICIvIi5qb2luKFtz ZWxmLnRlbXBsYXRlX3BhdGgsICdzcWwuc3FsJ10pLAorICAgICAgICAgICAg ICAgIHRpZD10aWQsCisgICAgICAgICAgICAgICAgc2NpZD1zY2lkLAorICAg ICAgICAgICAgICAgIGNvbm49c2VsZi5jb25uCisgICAgICAgICAgICApCisg ICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3Nj YWxhcihzcWwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoCisgICAg ICAgICAgICAgICAgICAgIF8oCisgICAgICAgICAgICAgICAgICAgICAgICAi RVJST1I6IENvdWxkbid0IGdlbmVyYXRlIHJldmVyc2VkIGVuZ2luZWVyZWQg UXVlcnkgZm9yIHRoZSBmdHMgdGVtcGxhdGUhXG57MH0iKS5mb3JtYXQoCisg ICAgICAgICAgICAgICAgICAgICAgICByZXMKKyAgICAgICAgICAgICAgICAg ICAgKQorICAgICAgICAgICAgICAgICkKKworICAgICAgICAgICAgaWYgcmVz IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuIGdvbmUoCisgICAg ICAgICAgICAgICAgICAgIF8oCisgICAgICAgICAgICAgICAgICAgICAgICAi RVJST1I6IENvdWxkbid0IGdlbmVyYXRlIHJldmVyc2VkIGVuZ2luZWVyZWQg UXVlcnkgZm9yIGZ0cyB0ZW1wbGF0ZSBub2RlISIpCisgICAgICAgICAgICAg ICAgKQorCisgICAgICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZShyZXNw b25zZT1yZXMpCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgor ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAg ZGVmIGRlcGVuZGVudHMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlk KToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2V0IHRo ZSBkZXBlbmRlbnRzIGFuZCByZXR1cm4gYWpheCByZXNwb25zZQorICAgICAg ICBmb3IgdGhlIEZUUyBUZW1wbGF0ZSBub2RlLgorCisgICAgICAgIEFyZ3M6 CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAg ICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2Ug SUQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAgICAgICAgICAg dGlkOiBGVFMgVGVtcGxhdGUgSUQKKyAgICAgICAgIiIiCisgICAgICAgIGRl cGVuZGVudHNfcmVzdWx0ID0gc2VsZi5nZXRfZGVwZW5kZW50cyhzZWxmLmNv bm4sIHRpZCkKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAg ICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW50c19yZXN1bHQsCisgICAg ICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5kZW5jaWVz KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCk6CisgICAgICAgICIi IgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldCB0aGUgZGVwZW5kZW5jaWVz IGFuZCByZXR1cm4gYWpheCByZXNwb25zZQorICAgICAgICBmb3IgdGhlIEZU UyBUZW1wbGF0ZSBub2RlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAg ICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2 ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAg ICAgIHNjaWQ6IFNjaGVtYSBJRAorICAgICAgICAgICAgdGlkOiBGVFMgVGVt cGFsdGUgSUQKKyAgICAgICAgIiIiCisgICAgICAgIGRlcGVuZGVuY2llc19y ZXN1bHQgPSBzZWxmLmdldF9kZXBlbmRlbmNpZXMoc2VsZi5jb25uLCB0aWQp CisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAgICAg ICAgIHJlc3BvbnNlPWRlcGVuZGVuY2llc19yZXN1bHQsCisgICAgICAgICAg ICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkKKworRnRzVGVt cGxhdGVWaWV3LnJlZ2lzdGVyX25vZGVfdmlldyhibHVlcHJpbnQpCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3N0YXRpYy9p bWcvY29sbC1mdHNfdGVtcGxhdGUucG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRz X3RlbXBsYXRlcy9zdGF0aWMvaW1nL2NvbGwtZnRzX3RlbXBsYXRlLnBuZwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWJkNDdkYTdhZTI3YjA0YjBiZmQz OGE3YjFlZTlmNmMxYTc0ZDJjCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA2 MDEKemNtWSs5WWUtVzg2dnl1aiEhNT83ekRTPTdmP1FuSkVadjhpd1hJRVoq bWpFdyVINz11SUxwaXBMODdiJG1PYW9ZCnpHXjU5SUNPUzsqS3wmOGh2fXFF e0EmIXVjR0JBcDhjbFdqWFVOYDtKaHlWR1YxTHBfbHZ7a3pnPXlqV1EwMDhK Kwp6UE1iJCU7bEM4RFF8bVVQIUs7Rj1KX3ktV0NhMFBjQDUqenpSNHpCQ0Q2 QCs0TnRVTjJYO1BCaj1XX0dXWmt3VmMKeldjaDxBelVLTC1JMVZZd1hCPEJ5 JVRwTlVtWlVLaHRyVWI4OTJiJTA4Q2l9Pyh6cXpUNn4kM09jK1ReSzlNe0xQ Cnp3PXR8cjZ5SiNBRD91M0hgNTRETktAY207Y0dHbUxBaU5aV1ZWKW8weE0o KX1mTXZURjxgJT07SysqamkqT1NmTwp6WFczNE0+N2VPcmV0IylOd1Bkc1JT b1JMWHc5fEFPTU9+KC0zbmJaYCQlT3A9R01jXnUhKUEmKTU1cig0NlpIOXQK ejM4SWRvRXxLSXBsNUVPazhWUkRGQU9oKCRvPSYzK0xRT3pAVUs4QFR5P31O MzMkNn5AMklzTSRPNk9gRUFNNXQwCnpPXyQ0NzBUczw1Sn5YVXh0T3RGNTlM SGV7YFN9ZUU+bCk1UldBSVhpY1ZoQi1VdSZEOE8yMjhaXlhBMSEkSD4rRwp6 eUpiI21VYSFNYmRFOVp0ZU53WH1RczlhOTQpKDxRaDh9QS0mZ0tteVFfMTxj LUptJjcyYnxEQiRTSHBTdVpMXiUKenBCNDRUN3ZpYko7JkBWOTQwd00wU15C LWFeOEh0U2FJQUIqZWZVdn0pbUkxczZJMFV3S3JiMzFVbFNYZSlEeVJjCno+ XzxaPTlLdEx9QmM9aXtmaEN9XiNBRjBaQVFOYVlAM2ZkcHd9WWg/NVBaMEBC bGUkZ2BWM2wmSD9JamBgS3E5OQpZbj1SbjNIRFJYZkBTckxIRjF5PHt3OWdt KjMjYzc1ZGpKM2MKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvc3RhdGljL2ltZy9m dHNfdGVtcGxhdGUucG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRl cy9zdGF0aWMvaW1nL2Z0c190ZW1wbGF0ZS5wbmcKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMC4uZWI3ODBiZjBiYjBmNWQ3NzdlOGE3MjcyMGI1ZWQwZTJhZDQ4 YmM0NQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNjk2CnpjbVkrQ1M0PmpA Nm96a2NxPndRNSFHTGsjQ0x6VTNTKW9RIVlyJGVGVTwtdCRjSEtxLWgoYmRe UTJ+aC1NSWpNbwp6Qk8pUkoxVD0wJT5XR1hlVk0lPF5fKyZJdWRpVEQhVWc2 MXl8TlE0cSZpQ0A/KVRBVUdAYnl7bTB8MDw7cUUyZyYKekptODw/RTJKNXNA SFlhMD5gO242SEN+RHtWYFduI3VeIUtZJDFeWEF2IVhhSGlrfTJ3UVZfOz97 PU1Ddj1KQ3dnCno/TTZ8WWZ9cTJLRmIrWTxKcFRyUV5jP3A+NmxYOzdxYWFL TyFVdnZ6JWshZmdfbWJuRHZneys0OXA/RldKbiFQVAp6Un4rfEBXZ29OYjFC U1Y4dnVTQyVvOTlQMz9tNWRvVmNDWmFHc3JNfkc8fXoqWiZPcXxOakJTVEkr aChgbjB9aD4KenEzSkcpPlklNj1sRHVpTHMwaVhKIXdmTFlKKHw4bFFNVnxu bF9WUVVAO1g2VyF8fV5GZWk2Zn1YdTh2Q2pVJms+CnpsNThNfEkpYj1APENr IyEwKXx6WCV9Tnc0Q0NNOEVRQk0lSElQUyNwWTdERXl1KEsjeWhOMn0xUWo4 I2xJOV9BMQp6TTR7K3V2bCVwKjZmaigxR0tJcU1hU1NfO3FHdTRxZmdxPDQ8 T0JAbyFFbW5JWkZqcUVabnQkK3h3bDN0Uk9UPXcKejgzRlo9RkxvKC1wVlZh Kk9SaWZ8IWJEITJ2fihxRV9vVzhUU3hxaldSeGZ3UypQMU09ejFGMmltLXI9 eD9Re1kkCnp7PH1BaVImPkA2JWVDcjtXUE9ndGE0OygmLUVYVUZPVU9gWFp9 Jmh+VXl0OUtmWjZIISpAYzxVYjFgN0dkXnw5eQp6d1cqfiFKMG1NfHxIfU9R S2ZnQ19YbTJ9YF5FS0ZPYVp8XzlaKml+QmlMJU9vJUZnZmcpNUVaSHkhVTZJ UT1RK0kKenR1RUklRVFUVDxaRSV6VitgQkN6YmtEQXNJYDk1dGF2NHppRGA7 V0J4YyVQOz9RcTBySUJhR0lxX1AlNGteeEZFCno5OGBvVzY8fk8oNT4hUC1z M04wNiE2KzM3Yn1XWVZ7UmIyaitIJm4+JUsjWD0xVzREQkRsbUUobX4yY05r Tl9ZdApMSzFuO01GOylFcTA0OHlOCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEK CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3Rl bXBsYXRlcy9mdHNfdGVtcGxhdGUvanMvZnRzX3RlbXBsYXRlcy5qcyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1w bGF0ZS9qcy9mdHNfdGVtcGxhdGVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmU0NmZmYzMKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVt cGxhdGUvanMvZnRzX3RlbXBsYXRlcy5qcwpAQCAtMCwwICsxLDEzMyBAQAor ZGVmaW5lKAorICAgICAgICBbJ2pxdWVyeScsICd1bmRlcnNjb3JlJywgJ3Vu ZGVyc2NvcmUuc3RyaW5nJywgJ3BnYWRtaW4nLCAncGdhZG1pbi5icm93c2Vy JywgJ2FsZXJ0aWZ5JywgJ3BnYWRtaW4uYnJvd3Nlci5jb2xsZWN0aW9uJ10s CitmdW5jdGlvbigkLCBfLCBTLCBwZ0FkbWluLCBwZ0Jyb3dzZXIsIGFsZXJ0 aWZ5KSB7CisKKyAgLy8gRXh0ZW5kIHRoZSBjb2xsZWN0aW9uIGNsYXNzIGZv ciBmdHMgdGVtcGxhdGUKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwt ZnRzX3RlbXBsYXRlJ10pIHsKKyAgICB2YXIgZnRzX3RlbXBsYXRlcyA9IHBn QWRtaW4uQnJvd3Nlci5Ob2Rlc1snY29sbC1mdHNfdGVtcGxhdGUnXSA9Cisg ICAgICBwZ0FkbWluLkJyb3dzZXIuQ29sbGVjdGlvbi5leHRlbmQoeworICAg ICAgICBub2RlOiAnZnRzX3RlbXBsYXRlJywKKyAgICAgICAgbGFiZWw6ICd7 eyBfKCdGVFMgVGVtcGxhdGVzJykgfX0nLAorICAgICAgICB0eXBlOiAnY29s bC1mdHNfdGVtcGxhdGUnLAorICAgICAgICBjb2x1bW5zOiBbJ3RtcGxuYW1l JywgJ2Rlc2NyaXB0aW9uJ10KKyAgICAgIH0pOworICB9OworCisgIC8vIEV4 dGVuZCB0aGUgbm9kZSBjbGFzcyBmb3IgZnRzIHRlbXBsYXRlCisgIGlmICgh cGdCcm93c2VyLk5vZGVzWydmdHNfdGVtcGxhdGUnXSkgeworICAgIHBnQWRt aW4uQnJvd3Nlci5Ob2Rlc1snZnRzX3RlbXBsYXRlJ10gPSBwZ0FkbWluLkJy b3dzZXIuTm9kZS5leHRlbmQoeworICAgICAgcGFyZW50X3R5cGU6ICdzY2hl bWEnLAorICAgICAgdHlwZTogJ2Z0c190ZW1wbGF0ZScsCisgICAgICBjYW5E cm9wOiB0cnVlLAorICAgICAgY2FuRHJvcENhc2NhZGU6IHRydWUsCisgICAg ICBsYWJlbDogJ3t7IF8oJ0ZUUyBUZW1wbGF0ZXMnKSB9fScsCisgICAgICBo YXNTUUw6IHRydWUsCisgICAgICBoYXNEZXBlbmRzOiB0cnVlLAorICAgICAg SW5pdDogZnVuY3Rpb24oKSB7CisKKyAgICAgICAgLy8gQXZvaWQgbXVsdGlw bGUgcmVnaXN0cmF0aW9uIG9mIG1lbnVzCisgICAgICAgIGlmICh0aGlzLmlu aXRpYWxpemVkKQorICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlz LmluaXRpYWxpemVkID0gdHJ1ZTsKKworICAgICAgICAvLyBBZGQgY29udGV4 dCBtZW51cyBmb3IgZnRzIHRlbXBsYXRlCisgICAgICAgIHBnQnJvd3Nlci5h ZGRfbWVudXMoW3sKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX2Z0c190ZW1w bGF0ZV9vbl9zY2hlbWEnLCBub2RlOiAnc2NoZW1hJywgbW9kdWxlOiB0aGlz LAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwg Y2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBj YXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJlbDogJ3t7IF8o J0ZUUyBUZW1wbGF0ZS4uLicpIH19JywKKyAgICAgICAgICBpY29uOiAnd2NU YWJJY29uIGljb24tZnRzX3RlbXBsYXRlJywgZGF0YToge2FjdGlvbjogJ2Ny ZWF0ZSd9CisgICAgICAgICAgfSx7CisgICAgICAgICAgbmFtZTogJ2NyZWF0 ZV9mdHNfdGVtcGxhdGVfb25fY29sbCcsIG5vZGU6ICdjb2xsLWZ0c190ZW1w bGF0ZScsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29i amVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVy dGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0 eTogNCwgbGFiZWw6ICd7eyBfKCdGVFMgVGVtcGxhdGUuLi4nKSB9fScsCisg ICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLWZ0c190ZW1wbGF0ZScs IGRhdGE6IHthY3Rpb246ICdjcmVhdGUnfQorICAgICAgICAgIH0seworICAg ICAgICAgIG5hbWU6ICdjcmVhdGVfZnRzX3RlbXBsYXRlJywgbm9kZTogJ2Z0 c190ZW1wbGF0ZScsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVz OiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpf cHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBw cmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdGVFMgVGVtcGxhdGUuLi4nKSB9 fScsCisgICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLWZ0c190ZW1w bGF0ZScsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUnfQorICAgICAgICAgIH1d KTsKKworICAgICAgfSwKKworICAgICAgLy8gRGVmaW5pbmcgYmFja2Zvcm0g bW9kZWwgZm9yIGZ0cyB0ZW1wbGF0ZSBub2RlCisgICAgICBtb2RlbDogcGdB ZG1pbi5Ccm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICAgICAgZGVm YXVsdHM6IHsKKyAgICAgICAgICB0bXBsbmFtZTogdW5kZWZpbmVkLCAgICAg IC8vIEZ0cyB0ZW1wbGF0ZSBuYW1lCisgICAgICAgICAgZGVzY3JpcHRpb246 IHVuZGVmaW5lZCwgICAvLyBDb21tZW50IG9uIHRlbXBsYXRlCisgICAgICAg ICAgc2NoZW1hOiB1bmRlZmluZWQsICAgICAgICAvLyBTY2hlbWEgbmFtZSB0 byB3aGljaCB0ZW1wbGF0ZSBiZWxvbmdzCisgICAgICAgICAgdG1wbGluaXQ6 IHVuZGVmaW5lZCwgICAgICAvLyBJbml0IGZ1bmN0aW9uIGZvciBmdHMgdGVt cGxhdGUKKyAgICAgICAgICB0bXBsbGV4aXplOiB1bmRlZmluZWQgICAgIC8v IExleGl6ZSBmdW5jdGlvbiBmb3IgZnRzIHRlbXBsYXRlCisgICAgICAgIH0s CisgICAgICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKCkgeworICAgICAgICAg ICAgcGdBZG1pbi5Ccm93c2VyLk5vZGUuTW9kZWwucHJvdG90eXBlLmluaXRp YWxpemUuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKKyAgICAgICAgICAgIGlm IChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCdzY2hlbWEnKSkpIHsKKyAgICAg ICAgICAgICAgICB0aGlzLnNldCgnc2NoZW1hJywgdGhpcy5ub2RlX2luZm8u c2NoZW1hLl9pZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAg ICAgIC8vIERlZmluaW5nIHNjaGVtYSBmb3IgZnRzIHRlbXBsYXRlCisgICAg ICAgIHNjaGVtYTogW3sKKyAgICAgICAgICBpZDogJ3RtcGxuYW1lJywgbGFi ZWw6ICd7eyBfKCdOYW1lJykgfX0nLCBjZWxsOiAnc3RyaW5nJywgZ3JvdXA6 ICdEZWZpbml0aW9uJywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIGNlbGxI ZWFkZXJDbGFzc2VzOiAnd2lkdGhfcGVyY2VudF81MCcKKyAgICAgICAgfSx7 CisgICAgICAgICAgaWQ6ICdvaWQnLCBsYWJlbDone3sgXygnT2lkJykgfX0n LCBjZWxsOiAnc3RyaW5nJywgZ3JvdXA6ICdEZWZpbml0aW9uJywKKyAgICAg ICAgICBlZGl0YWJsZTogZmFsc2UsIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6 IHRydWUKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdkZXNjcmlwdGlv bicsIGxhYmVsOid7eyBfKCdDb21tZW50JykgfX0nLCBjZWxsOiAnc3RyaW5n JywgZ3JvdXA6ICdEZWZpbml0aW9uJywKKyAgICAgICAgICB0eXBlOiAnbXVs dGlsaW5lJywgY2VsbEhlYWRlckNsYXNzZXM6ICd3aWR0aF9wZXJjZW50XzUw JworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3RtcGxpbml0JywgbGFi ZWw6ICd7eyBfKCdJbml0IEZ1bmN0aW9uJyl9fScsIGdyb3VwOiAnRGVmaW5p dGlvbicsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBkaXNhYmxlZDogZnVu Y3Rpb24obSkgeyByZXR1cm4gIW0uaXNOZXcoKTsgfSwKKyAgICAgICAgICBj b250cm9sOiAnbm9kZS1hamF4LW9wdGlvbnMnLCB1cmw6ICdnZXRfaW5pdCcK KyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICd0bXBsbGV4aXplJywgbGFi ZWw6ICd7eyBfKCdMZXhpemUgRnVuY3Rpb24nKX19JywgZ3JvdXA6ICdEZWZp bml0aW9uJywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIGRpc2FibGVkOiBm dW5jdGlvbihtKSB7IHJldHVybiAhbS5pc05ldygpOyB9LAorICAgICAgICAg IGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycsIHVybDogJ2dldF9sZXhp emUnCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnc2NoZW1hJywgbGFi ZWw6ICd7eyBfKCdTY2hlbWEnKX19JywgY2VsbDogJ3N0cmluZycsIGdyb3Vw OiAnRGVmaW5pdGlvbicsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBtb2Rl OiBbJ2NyZWF0ZScsJ2VkaXQnXSwgbm9kZTogJ3NjaGVtYScsCisgICAgICAg ICAgY29udHJvbDogJ25vZGUtbGlzdC1ieS1pZCcKKyAgICAgICAgfV0sCisK KyAgICAgICAgLyoKKyAgICAgICAgICogVHJpZ2dlcnMgY29udHJvbCBzcGVj aWZpYyBlcnJvciBtZXNzYWdlcyBmb3IgdGVtcGxhdGUgbmFtZSwKKyAgICAg ICAgICogbGV4aXplIGZ1bmN0aW9uIGFuZCBzY2hlbWEsIGlmIGFueSBvbmUg b2YgdGhlbSBpcyBub3Qgc3BlY2lmaWVkCisgICAgICAgICAqIHdoaWxlIGNy ZWF0aW5nIG5ldyBmdHMgdGVtcGxhdGUKKyAgICAgICAgICovCisgICAgICAg IHZhbGlkYXRlOiBmdW5jdGlvbihrZXlzKXsKKyAgICAgICAgICB2YXIgbmFt ZSA9IHRoaXMuZ2V0KCd0bXBsbmFtZScpOworICAgICAgICAgIHZhciBsZXhp emUgPSB0aGlzLmdldCgndG1wbGxleGl6ZScpOworICAgICAgICAgIHZhciBz Y2hlbWEgPSB0aGlzLmdldCgnc2NoZW1hJyk7CisKKyAgICAgICAgICAvLyBW YWxpZGF0ZSBmdHMgdGVtcGxhdGUgbmFtZQorICAgICAgICAgIGlmIChfLmlz VW5kZWZpbmVkKG5hbWUpIHx8IF8uaXNOdWxsKG5hbWUpIHx8IFN0cmluZyhu YW1lKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAg ICAgICAgICB2YXIgbXNnID0gJ3t7IF8oJ05hbWUgbXVzdCBiZSBzcGVjaWZp ZWQhJykgfX0nOworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgn bmFtZScsIG1zZyk7CisgICAgICAgICAgICByZXR1cm4gbXNnOworICAgICAg ICAgIH0KKworICAgICAgICAgIC8vIFZhbGlkYXRlIGxleGl6ZSBmdW5jdGlv biBjb250cm9sCisgICAgICAgICAgZWxzZSBpZiAoXy5pc1VuZGVmaW5lZChs ZXhpemUpIHx8IF8uaXNOdWxsKGxleGl6ZSkgfHwgU3RyaW5nKGxleGl6ZSku cmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAg ICAgdmFyIG1zZyA9ICd7eyBfKCdMZXhpemUgZnVuY3Rpb24gbXVzdCBiZSBz ZWxlY3RlZCEnKSB9fSc7CisgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwu c2V0KCd0bXBsbGV4aXplJywgbXNnKTsKKyAgICAgICAgICAgIHJldHVybiBt c2c7CisgICAgICAgICAgfQorCisgICAgICAgICAgLy8gVmFsaWRhdGUgc2No ZW1hIGZvciBmdHMgdGVtcGxhdGUKKyAgICAgICAgICBlbHNlIGlmIChfLmlz VW5kZWZpbmVkKHNjaGVtYSkgfHwgXy5pc051bGwoc2NoZW1hKSB8fCBTdHJp bmcoc2NoZW1hKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7 CisgICAgICAgICAgICB2YXIgbXNnID0gJ3t7IF8oJ1NjaGVtYSBtdXN0IGJl IHNlbGVjdGVkIScpIH19JzsKKyAgICAgICAgICAgIHRoaXMuZXJyb3JNb2Rl bC5zZXQoJ3NjaGVtYScsIG1zZyk7CisgICAgICAgICAgICByZXR1cm4gbXNn OworICAgICAgICAgIH0KKyAgICAgICAgICBlbHNlIHRoaXMuZXJyb3JNb2Rl bC5jbGVhcigpOworCisgICAgICAgICAgdGhpcy50cmlnZ2VyKCdvbi1zdGF0 dXMtY2xlYXInKTsKKyAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAg fQorICAgICAgfSkKKyAgICB9KTsKKyAgfQorCityZXR1cm4gcGdCcm93c2Vy Lk5vZGVzWydjb2xsLWZ0c190ZW1wbGF0ZSddOworfSk7ClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFf cGx1cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRl cy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9jcmVhdGUu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlNzYx MzIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVt cGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL2Ny ZWF0ZS5zcWwKQEAgLTAsMCArMSwxMiBAQAoreyMgQ1JFQVRFIFRFWFQgU0VB UkNIIFRFTVBMQVRFIFN0YXRlbWVudCAjfQoreyUgaWYgZGF0YSBhbmQgZGF0 YS5zY2hlbWEgYW5kIGRhdGEudG1wbG5hbWUgYW5kIGRhdGEudG1wbGxleGl6 ZSAlfQorCitDUkVBVEUgVEVYVCBTRUFSQ0ggVEVNUExBVEUge3sgY29ubnxx dElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRtcGxuYW1lKSB9fSAoCit7JSBp ZiBkYXRhLnRtcGxpbml0IGFuZCBkYXRhLnRtcGxpbml0ICE9ICctJyV9ICBJ TklUID0ge3tkYXRhLnRtcGxpbml0fX0seyUgZW5kaWYgJX0KKyAgTEVYSVpF ID0ge3tkYXRhLnRtcGxsZXhpemV9fQorKTsKK3sjIERlc2NyaXB0aW9uIGZv ciBURVhUIFNFQVJDSCBURU1QTEFURSAjfQoreyUgaWYgZGF0YS5kZXNjcmlw dGlvbiAlfQorQ09NTUVOVCBPTiBURVhUIFNFQVJDSCBURU1QTEFURSB7eyBj b25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudG1wbG5hbWUpIH19Cisg ICAgICBJUyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3sl IGVuZGlmICV9eyUgZW5kaWYgJX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm aWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVz L3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL2RlbGV0ZS5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9m dHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2NhOGRjNAotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxh dGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApAQCAt MCwwICsxLDIzIEBACit7IyBGRVRDSCBURVhUIFNFQVJDSCBURU1QTEFURSBO QU1FIFN0YXRlbWVudCAjfQoreyUgaWYgdGlkICV9CitTRUxFQ1QKKyAgICB0 LnRtcGxuYW1lIEFTIG5hbWUsCisgICAgKAorICAgIFNFTEVDVAorICAgICAg ICBuc3BuYW1lCisgICAgRlJPTQorICAgICAgICBwZ19uYW1lc3BhY2UKKyAg ICBXSEVSRQorICAgICAgICBvaWQgPSB0LnRtcGxuYW1lc3BhY2UKKyAgICAp IGFzIHNjaGVtYQorRlJPTQorICAgIHBnX3RzX3RlbXBsYXRlIHQgTEVGVCBK T0lOIHBnX2Rlc2NyaXB0aW9uIGQKKyAgICBPTiBkLm9iam9pZD10Lm9pZCBB TkQgZC5jbGFzc29pZD0ncGdfdHNfdGVtcGxhdGUnOjpyZWdjbGFzcworV0hF UkUKKyAgICB0Lm9pZCA9IHt7dGlkfX06Ok9JRDsKK3slIGVuZGlmICV9CisK K3sjIERST1AgVEVYVCBTRUFSQ0ggVEVNUExBVEUgU3RhdGVtZW50ICN9Cit7 JSBpZiBzY2hlbWEgYW5kIG5hbWUgJX0KK0RST1AgVEVYVCBTRUFSQ0ggVEVN UExBVEUge3tjb25ufHF0SWRlbnQoc2NoZW1hKX19Lnt7Y29ubnxxdElkZW50 KG5hbWUpfX0geyUgaWYgY2FzY2FkZSAlfUNBU0NBREV7JWVuZGlmJX07Cit7 JSBlbmRpZiAlfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVz L2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvZnVuY3Rpb25zLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1w bGF0ZS9zcWwvOS4xX3BsdXMvZnVuY3Rpb25zLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZmU5ZTAyCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMv ZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9mdW5jdGlvbnMuc3FsCkBAIC0w LDAgKzEsMjMgQEAKK3sjIEZFVENIIGxleGl6ZSBmdW5jdGlvbnMgZm9yIFRF WFQgU0VBUkNIIFRFTVBMQVRFICN9Cit7JSBpZiBsZXhpemUgJX0KK1NFTEVD VAorICAgIHByb25hbWUsIG5zcG5hbWUKK0ZST00KKyAgICBwZ19wcm9jIEpP SU4gcGdfbmFtZXNwYWNlIG4gT04gbi5vaWQ9cHJvbmFtZXNwYWNlCitXSEVS RQorICAgIHByb3JldHR5cGU9MjI4MQorICAgIEFORCBwcm9hcmd0eXBlcz0n MjI4MSAyMjgxIDIyODEgMjI4MScKK09SREVSIEJZIHByb25hbWU7Cit7JSBl bmRpZiAlfQorCit7IyBGRVRDSCBpbml0IGZ1bmN0aW9ucyBmb3IgVEVYVCBT RUFSQ0ggVEVNUExBVEUgI30KK3slIGlmIGluaXQgJX0KK1NFTEVDVAorICAg IHByb25hbWUsIG5zcG5hbWUKK0ZST00KKyAgICBwZ19wcm9jIEpPSU4gcGdf bmFtZXNwYWNlIG4gT04gbi5vaWQ9cHJvbmFtZXNwYWNlCitXSEVSRQorICAg IHByb3JldHR5cGU9MjI4MSBhbmQgcHJvYXJndHlwZXM9JzIyODEnCitPUkRF UiBCWQorICAgIHByb25hbWU7Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3Rl bXBsYXRlL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9z cWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uOGIyYTcwYwotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190 ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwKQEAgLTAsMCAr MSwyNyBAQAoreyMgR2V0IHByb3BlcnRpZXMgZm9yIEZUUyBURU1QTEFURSAj fQorU0VMRUNUCisgICAgdG1wbC5vaWQsCisgICAgdG1wbC50bXBsbmFtZSwK KyAgICB0bXBsLnRtcGxpbml0LAorICAgIHRtcGwudG1wbGxleGl6ZSwKKyAg ICBkZXNjcmlwdGlvbiwKKyAgICB0bXBsLnRtcGxuYW1lc3BhY2UgQVMgc2No ZW1hCitGUk9NCisgICAgcGdfdHNfdGVtcGxhdGUgdG1wbAorICAgIExFRlQg T1VURVIgSk9JTiBwZ19kZXNjcmlwdGlvbiBkZXMKK09OCisgICAgKAorICAg IGRlcy5vYmpvaWQ9dG1wbC5vaWQKKyAgICBBTkQgZGVzLmNsYXNzb2lkPSdw Z190c190ZW1wbGF0ZSc6OnJlZ2NsYXNzCisgICAgKQorV0hFUkUKK3slIGlm IHNjaWQgJX0KKyAgICB0bXBsLnRtcGxuYW1lc3BhY2UgPSB7e3NjaWR9fTo6 T0lECit7JSBlbGlmIG5hbWUgJX0KKyAgICB0bXBsLnRtcGxuYW1lID0ge3tu YW1lfHF0TGl0ZXJhbH19Cit7JSBlbmRpZiAlfQoreyUgaWYgdGlkICV9Cisg ICAgQU5EIHRtcGwub2lkID0ge3t0aWR9fTo6T0lECit7JSBlbmRpZiAlfQor T1JERVIgQlkKKyAgICB0bXBsLnRtcGxuYW1lClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3Rl bXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9z Y2hlbWEuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1w bGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9zY2hlbWEuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmN2RkYjMKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVz L3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL3NjaGVtYS5z cWwKQEAgLTAsMCArMSwxOSBAQAoreyMgU0NIRU1BIG5hbWUgRkVUQ0ggc3Rh dGVtZW50ICN9Cit7JSBpZiBkYXRhLnNjaGVtYSAlfQorU0VMRUNUCisgICAg bnNwbmFtZQorRlJPTQorICAgIHBnX25hbWVzcGFjZQorV0hFUkUKKyAgICBv aWQgPSB7e2RhdGEuc2NoZW1hfX06Ok9JRAorCit7JSBlbGlmIGRhdGEuaWQg JX0KK1NFTEVDVAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3Bh Y2UgbnNwCisgICAgTEVGVCBKT0lOIHBnX3RzX3RlbXBsYXRlIHRzCisgICAg T04gdHMudG1wbG5hbWVzcGFjZSA9IG5zcC5vaWQKK1dIRVJFCisgICAgdHMu b2lkID0ge3tkYXRhLmlkfX06Ok9JRAoreyUgZW5kaWYgJX0KXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzku MV9wbHVzL3NxbC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVz L3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL3NxbC5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTAzYzdiZgot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0 ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvc3FsLnNx bApAQCAtMCwwICsxLDQxIEBACit7IyBSZXZlcnNlIGVuZ2luZWVyZWQgc3Fs IGZvciBGVFMgVEVNUExBVEUgI30KK1NFTEVDVAorICAgIGFycmF5X3RvX3N0 cmluZyhhcnJheV9hZ2coc3FsKSwgRSdcblxuJykgYXMgc3FsCitGUk9NCisg ICAgKAorICAgIFNFTEVDVAorICAgICAgICBFJy0tIFRleHQgU2VhcmNoIFRl bXBsYXRlOiAnIHx8IG5zcG5hbWUgfHwgRScuJyB8fCB0bXBsLnRtcGxuYW1l IHx8CisgICAgICAgIEUnXG5cbi0tIERST1AgVEVYVCBTRUFSQ0ggVEVNUExB VEUgJyB8fCBuc3BuYW1lIHx8IEUnLicgfHwgdG1wbC50bXBsbmFtZSB8fAor ICAgICAgICBFJ1xuXG4gIENSRUFURSBURVhUIFNFQVJDSCBURU1QTEFURSAn IHx8IG5zcG5hbWUgfHwgRScuJyB8fCAgdG1wbC50bXBsbmFtZSB8fCBFJyhc bicgfHwKKyAgICAgICAgQ0FTRQorICAgICAgICAgICAgV0hFTiB0bXBsLnRt cGxpbml0ICE9ICctJzo6cmVnY2xhc3MgVEhFTiBFJ1x0SU5JVCA9ICcgfHwg dG1wbC50bXBsaW5pdCB8fCBFJyxcbicKKyAgICAgICAgICAgIEVMU0UgJycg RU5EIHx8CisgICAgICAgIEUnXHRMRVhJWkUgPSAnIHx8IHRtcGwudG1wbGxl eGl6ZSB8fCBFJ1xuKTsnIHx8CisgICAgICAgIENBU0UKKyAgICAgICAgICAg IFdIRU4gYS5kZXNjcmlwdGlvbiBJUyBOT1QgTlVMTCBUSEVOCisgICAgICAg ICAgICAgICAgRSdcblxuQ09NTUVOVCBPTiBURVhUIFNFQVJDSCBURU1QTEFU RSAnIHx8IG5zcG5hbWUgfHwgRScuJyB8fCB0bXBsLnRtcGxuYW1lIHx8Cisg ICAgICAgICAgICAgICAgRScgSVMgJyB8fCBwZ19jYXRhbG9nLnF1b3RlX2xp dGVyYWwoZGVzY3JpcHRpb24pIHx8IEUnOycKKyAgICAgICAgICAgIEVMU0Ug JycgIEVORCBhcyBzcWwKK0ZST00KKyAgICBwZ190c190ZW1wbGF0ZSB0bXBs CisgICAgTEVGVCBKT0lOICgKKyAgICAgICAgICAgICAgICBTRUxFQ1QKKyAg ICAgICAgICAgICAgICAgICAgZGVzLmRlc2NyaXB0aW9uIGFzIGRlc2NyaXB0 aW9uLAorICAgICAgICAgICAgICAgICAgICBkZXMub2Jqb2lkIGFzIGRlc2Nv aWQKKyAgICAgICAgICAgICAgICBGUk9NCisgICAgICAgICAgICAgICAgICAg IHBnX2Rlc2NyaXB0aW9uIGRlcworICAgICAgICAgICAgICAgIFdIRVJFCisg ICAgICAgICAgICAgICAgICAgIGRlcy5vYmpvaWQ9e3t0aWR9fTo6T0lEIEFO RCBkZXMuY2xhc3NvaWQ9J3BnX3RzX3RlbXBsYXRlJzo6cmVnY2xhc3MKKyAg ICAgICAgICAgICAgKSBhIE9OIChhLmRlc2NvaWQgPSB0bXBsLm9pZCkKKyAg ICBMRUZUIEpPSU4gKAorICAgICAgICAgICAgICAgIFNFTEVDVAorICAgICAg ICAgICAgICAgICAgICBuc3BuYW1lLAorICAgICAgICAgICAgICAgICAgICBu c3Aub2lkIGFzIG5vaWQKKyAgICAgICAgICAgICAgICBGUk9NCisgICAgICAg ICAgICAgICAgICAgIHBnX25hbWVzcGFjZSBuc3AKKyAgICAgICAgICAgICAg ICBXSEVSRQorICAgICAgICAgICAgICAgICAgICBvaWQgPSB7e3NjaWR9fTo6 T0lECisgICAgICAgICAgICAgICkgYiBPTiAoYi5ub2lkID0gdG1wbC50bXBs bmFtZXNwYWNlKQorV0hFUkUKKyAgICB0bXBsLm9pZD17e3RpZH19OjpPSUQK KykgYXMgYzsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9m dHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUv c3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uMWZhZjA4ZgotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1w bGF0ZS9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDE1IEBA Cit7IyBVUERBVEUgc3RhdGVtZW50IGZvciBURVhUIFNFQVJDSCBURU1QTEFU RSAjfQoreyUgaWYgZGF0YSAlfQoreyUgaWYgZGF0YS50bXBsbmFtZSBhbmQg ZGF0YS50bXBsbmFtZSAhPSBvX2RhdGEudG1wbG5hbWUgJX0KK0FMVEVSIFRF WFQgU0VBUkNIIFRFTVBMQVRFIHt7Y29ubnxxdElkZW50KG9fZGF0YS5zY2hl bWEpfX0ue3tjb25ufHF0SWRlbnQob19kYXRhLnRtcGxuYW1lKX19CisgICAg UkVOQU1FIFRPIHt7ZGF0YS50bXBsbmFtZX19OworeyUgZW5kaWYgJX0KK3sl IGlmIGRhdGEuc2NoZW1hIGFuZCBkYXRhLnNjaGVtYSAhPSBvX2RhdGEuc2No ZW1hICV9CitBTFRFUiBURVhUIFNFQVJDSCBURU1QTEFURSB7e2Nvbm58cXRJ ZGVudChvX2RhdGEuc2NoZW1hKX19Lnt7Y29ubnxxdElkZW50KG9fZGF0YS50 bXBsbmFtZSl9fQorICAgIFNFVCBTQ0hFTUEge3tkYXRhLnNjaGVtYX19Owor eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gYW5kIGRhdGEu ZGVzY3JpcHRpb24gIT0gb19kYXRhLmRlc2NyaXB0aW9uICV9CitDT01NRU5U IE9OIFRFWFQgU0VBUkNIIFRFTVBMQVRFIHt7Y29ubnxxdElkZW50KG9fZGF0 YS5zY2hlbWEpfX0ue3tjb25ufHF0SWRlbnQob19kYXRhLnRtcGxuYW1lKX19 CisgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWwgfX07Cit7 JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCg== --001a114dcb02652fd4052cfab9bd 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 --001a114dcb02652fd4052cfab9bd--