Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1apZql-0003J1-Fd for pgadmin-hackers@arkaria.postgresql.org; Mon, 11 Apr 2016 11:17:47 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1apZqk-0002jW-8b for pgadmin-hackers@arkaria.postgresql.org; Mon, 11 Apr 2016 11:17:46 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1apZqV-0002V8-UX for pgadmin-hackers@postgresql.org; Mon, 11 Apr 2016 11:17:32 +0000 Received: from mail-wm0-x22b.google.com ([2a00:1450:400c:c09::22b]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1apZqS-0008RS-Fm for pgadmin-hackers@postgresql.org; Mon, 11 Apr 2016 11:17:30 +0000 Received: by mail-wm0-x22b.google.com with SMTP id u206so99550026wme.1 for ; Mon, 11 Apr 2016 04:17:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=r3IY3vfadX8/dxBMtfiwXakAuq4MMKQeDghA2tVcBgg=; b=gPrMXOorOE8t9TI+zXptDPoVEAuCzTMeF6KdzONJnQrFjCo7/3k1pB9i1cUc5rWTcO hKY+nK+kTfDgjZ+9n1dxK6OeNEXZOsY6Sx8FIZwoa3C0TbhcZguH3dwEDHkyGV/S3/YM LN8SMWnTymyB+/4L0TghWPU+xCdH0Y9RBYyhuX3ScSiTsYodOZquLrxxyCe55tkqBzkm 0jB8qN0MjssP6bakj825I/5ggF2Q8LYrLPfJS7bwXFSmmQo4LYfBYe+jF97dAZapxUj2 gUDDOea/imASR52LYIni3sB/5nHgLV+AhvjsduNmHAPbbLKxbNqnA9rZB2hCLkmqKWtZ TuWg== 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:from:date :message-id:subject:to:cc; bh=r3IY3vfadX8/dxBMtfiwXakAuq4MMKQeDghA2tVcBgg=; b=hRh2IUDzAd67zSsr9A5R/yEFnjLkQIOAbmwcaJ760kbnoQkk4ho7oaRK9eSQ9jhto+ E46rAlqGKhbTCpS99EyWl2cU+oHOf+ewgzmskGWVpa77mn8rnzNY8JjXeW0G9XNVdC9z Gu+bDocBvfUDMFAXEgsyC4A6TMmF/G8D4VYAS+CR9FxCYy99+cTHI+/lFcc0x8aGih5h O4r3Ln5D/xJGgsc0KwfE9nUws6hNnaKhEKmKRqIUGxrGNmrpXyXT2GJEbfKVopQpdkRN BdcoUHR8lyfFfgWuQdtZf9y87OEBA9ZoDCrh/x6Q58rj1kqIV3P8mygQizSGo0lHnNhK kqWw== X-Gm-Message-State: AD7BkJKlmul7Tvaom3kmell2foIejtTQnC4+VYlj7O6TTsDB/2+w3TDPfyQ3yeHzuQJT4wzoRT+aHOYNAHhcvlw3 X-Received: by 10.194.61.134 with SMTP id p6mr22370053wjr.67.1460373446460; Mon, 11 Apr 2016 04:17:26 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.53.133 with HTTP; Mon, 11 Apr 2016 04:16:56 -0700 (PDT) In-Reply-To: References: From: Surinder Kumar Date: Mon, 11 Apr 2016 16:46:56 +0530 Message-ID: Subject: Re: Control for displaying "auto vacuum" fields into grid To: Murtuza Zabuawala Cc: Dave Page , pgadmin-hackers Content-Type: multipart/mixed; boundary=047d7ba974228433ee053033b069 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 --047d7ba974228433ee053033b069 Content-Type: multipart/alternative; boundary=047d7ba974228433eb053033b067 --047d7ba974228433eb053033b067 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi, I have made few minor changes in this patch to make it to work with Materialized View. PFA patch with following changes: 1. Fixed typo issue for url parameter. 2. Check for 'hastoasttable' attribute in Disabled property of field "toast_autovaccum" in VacuumSettingsSchema. 3. Use Simplejson library instead of json. On Thu, Apr 7, 2016 at 4:19 PM, Murtuza Zabuawala < murtuza.zabuawala@enterprisedb.com> wrote: > Hi, > > Rebase patch and sent again. > > > Regrds, > Murtuza > > -- > Regards, > Murtuza Zabuawala > EnterpriseDB: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > > On Thu, Apr 7, 2016 at 4:07 PM, Murtuza Zabuawala < > murtuza.zabuawala@enterprisedb.com> wrote: > >> Hi, >> >> Please find updated patch, I have moved everything at schema level and >> tweak some code as well, so that we can use it in Table/View node. >> >> >> Regards, >> Murtuza >> >> -- >> Regards, >> Murtuza Zabuawala >> EnterpriseDB: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> >> On Fri, Mar 25, 2016 at 4:50 PM, Murtuza Zabuawala < >> murtuza.zabuawala@enterprisedb.com> wrote: >> >>> Hi Surinder, >>> >>> Can you please move all genereic logic & sql at schema level so that we >>> can use it in table node as well? >>> Currently it=E2=80=99s materialized view node centric only. >>> >>> >>> Regards, >>> Murtuza >>> >>> >>> On 23-Mar-2016, at 9:34 pm, Surinder Kumar < >>> surinder.kumar@enterprisedb.com> wrote: >>> >>> Hi, >>> >>> >>> On Fri, Mar 18, 2016 at 8:58 PM, Dave Page wrote: >>> >>>> On Fri, Mar 18, 2016 at 10:37 AM, Surinder Kumar >>>> wrote: >>>> > Hi, >>>> > >>>> > PFA control for displaying auto vacuum fields into grid. This control >>>> is >>>> > common for >>>> > Materialized View Node and Table Node. >>>> > >>>> > Usage: >>>> > >>>> > { >>>> > id: 'vacuum_table', label: '{{ _("Vacuum Table") }}', >>>> > model: VacuumTableModel, editable: false, type: 'collection', >>>> > canEdit: true, group: '{{ _("Table") }}', >>>> > mode: ['edit', 'create'], url: 'get_vacuum_defaults', >>>> > control: Backform.VacuumCollectionControl.extend({ >>>> > grid_columns :[ >>>> > { >>>> > name: 'label', label: '{{ _("Label") }}', >>>> > cell: 'string', editable: false >>>> > }, >>>> > { >>>> > name: 'value', label: '{{ _("Value") }}', >>>> > cellFunction: cellFunction, editable: function(m) { >>>> > if(m.handler.has('autovacuum_enabled')) { >>>> > return m.handler.get('autovacuum_enabled'); >>>> > } >>>> > return !m.handler.isNew(); >>>> > } >>>> > }, >>>> > { >>>> > name: 'setting', label: '{{ _("Default value") }}', >>>> > cellFunction: cellFunction, editable: false >>>> > } >>>> > ] >>>> > }), >>>> > >>>> > >>>> > When using this control, provide following parameters in schema: >>>> > 1. model >>>> > 2. url - to fetch default values for auto vacuum fields. >>>> > 3. grid columns - Name of the columns to display in the grid. >>>> > >>>> > >>>> > Please review the patch. >>>> >>>> It's hard to review this without being able to test. Do you have a >>>> simple test case? >>>> >>> >>> I have submitted patch for materialized view which is using this >>> control. so you can test it in materialized view. >>> >>>> >>>> -- >>>> Dave Page >>>> Blog: http://pgsnake.blogspot.com >>>> Twitter: @pgsnake >>>> >>>> EnterpriseDB UK: http://www.enterprisedb.com >>>> The Enterprise PostgreSQL Company >>>> >>> >>> >>> >> > --047d7ba974228433eb053033b067 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

I have made few minor changes in th= is patch to make it to work with Materialized View.

PFA patch with following changes:
1. Fixed typo issue for url p= arameter.
2. Check for 'hastoasttable' attribute in Disab= led property of field "toast_autovaccum" in VacuumSettingsSchema.=
3. Use Simplejson library instead of json.

<= /div>

On Thu, Apr = 7, 2016 at 4:19 PM, Murtuza Zabuawala <murtuza.zabuawala@= enterprisedb.com> wrote:
Hi,

Rebase patch and sent again.


Regrds,
Murtuza

--
Regards,
= Murtuz= a Zabuawala
EnterpriseDB:=C2=A0http://www.enterprisedb.com
The Enterprise PostgreSQL Company

<= /div>

On Thu, Apr 7,= 2016 at 4:07 PM, Murtuza Zabuawala <murtuza.zabuawala@en= terprisedb.com> wrote:
Hi,

Please find updated patch, I have moved= everything at schema level and tweak some code as well, so that we can use= it in Table/View node.


Regards,
Murtuza

--
Regards,
Murtuza Zabuawala
<= span style=3D"color:rgb(136,136,136)">EnterpriseDB:=C2=A0http://www.enterprisedb.com
The Enterprise Postg= reSQL Company


On Fri, Mar 25, 2016 at 4:50 PM, Murtuza Zab= uawala <murtuza.zabuawala@enterprisedb.com>= wrote:
Hi Surinder,

Can you please move all gener= eic logic & sql at schema level so that we can use it in table node as = well?
Currently it=E2=80=99s materialized view node centric only.=


Regards,
Murtuza


On 23-Mar-2016, at 9:3= 4 pm, Surinder Kumar <surinder.kumar@enterprisedb.com> wrote:

=
Hi,

On Fri, Mar 18, 2016 at 8:58 PM, Dave Page <dp= age@pgadmin.org> wrote:
On Fri,= Mar 18, 2016 at 10:37 AM, Surinder Kumar
<su= rinder.kumar@enterprisedb.com> wrote:
> Hi,
>
> PFA control for displaying auto vacuum fields into grid. This control = is
> common for
> Materialized View Node and Table Node.
>
> Usage:
>
> {
>=C2=A0 =C2=A0id: 'vacuum_table', label: '{{ _("Vacuum = Table") }}',
>=C2=A0 =C2=A0model: VacuumTableModel, editable: false, type: 'colle= ction',
>=C2=A0 =C2=A0canEdit: true, group: '{{ _("Table") }}'= ,
>=C2=A0 =C2=A0mode: ['edit', 'create'], url: 'get_va= cuum_defaults',
>=C2=A0 =C2=A0control: Backform.VacuumCollectionControl.extend({
>=C2=A0 =C2=A0 =C2=A0grid_columns :[
>=C2=A0 =C2=A0 =C2=A0 =C2=A0{
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0name: 'label', label: '{{= _("Label") }}',
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cell: 'string', editable: fal= se
>=C2=A0 =C2=A0 =C2=A0 =C2=A0},
>=C2=A0 =C2=A0 =C2=A0 =C2=A0{
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0name: 'value', label: '{{= _("Value") }}',
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cellFunction: cellFunction, editable:= function(m) {
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if(m.handler.has('autovacu= um_enabled')) {
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return m.handler.get(&#= 39;autovacuum_enabled');
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return !m.handler.isNew();
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
>=C2=A0 =C2=A0 =C2=A0 =C2=A0},
>=C2=A0 =C2=A0 =C2=A0 =C2=A0{
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0name: 'setting', label: '= {{ _("Default value") }}',
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cellFunction: cellFunction, editable:= false
>=C2=A0 =C2=A0 =C2=A0 =C2=A0}
>=C2=A0 =C2=A0 =C2=A0]
>=C2=A0 =C2=A0}),
>
>
> When using this control, provide following parameters in schema:
> 1. model
> 2. url - to fetch default values for auto vacuum fields.
> 3. grid columns - Name of the columns to display in the grid.
>
>
> Please review the patch.

It's hard to review this without being able to test. Do you= have a
simple test case?

I have submitted patc= h for materialized view which is using this control. so you can test it in = materialized view.

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

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





--047d7ba974228433eb053033b067-- --047d7ba974228433ee053033b069 Content-Type: application/octet-stream; name="Updated_VaccumSettings_Control_v2.patch" Content-Disposition: attachment; filename="Updated_VaccumSettings_Control_v2.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_imvwlpii1 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RlbXBsYXRlcy9zY2hlbWEv anMvc2NoZW1hLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVtcGxhdGVzL3NjaGVt YS9qcy9zY2hlbWEuanMKaW5kZXggZDQ2NTkyMi4uMWVmNDA1YiAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVtcGxhdGVzL3NjaGVtYS9qcy9zY2hl bWEuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVtcGxhdGVzL3NjaGVtYS9q cy9zY2hlbWEuanMKQEAgLTQsNiArNCwyNDcgQEAgZGVmaW5lKAogICAgICAg ICAncGdhZG1pbi5icm93c2VyLmNvbGxlY3Rpb24nLAogICAgICAgICAncGdh ZG1pbi5icm93c2VyLnNlcnZlci5wcml2aWxlZ2UnXSwKIGZ1bmN0aW9uKCQs IF8sIFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgQmFja2Zvcm0sIGFsZXJ0aWZ5 KSB7CisKKyAgICAvLyBWYWNjdW1TZXR0aW5ncyBDb2xsZWN0aW9uIHRvIGRp c3BsYXkgYWxsIHNldHRpbmdzIHBhcmFtZXRlcnMgYXMgR3JpZAorICAgIHZh ciBWYWN1dW1Db2xsZWN0aW9uQ29udHJvbCA9IEJhY2tmb3JtLlZhY3V1bUNv bGxlY3Rpb25Db250cm9sID0KKyAgICAgIEJhY2tmb3JtLkNvbnRyb2wuZXh0 ZW5kKHsKKworICAgICAgZ3JpZF9jb2x1bW5zOnVuZGVmaW5lZCwKKworICAg ICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7CisgICAgICAgIEJhY2tmb3Jt LkNvbnRyb2wucHJvdG90eXBlLmluaXRpYWxpemUuYXBwbHkodGhpcywgYXJn dW1lbnRzKTsKKyAgICAgICAgdmFyIHNlbGYgPSB0aGlzLAorICAgICAgICAg ICAgbSA9IHRoaXMubW9kZWw7CisgICAgICAgICAgICB1cmwgPSBzZWxmLmZp ZWxkLmdldCgndXJsJyk7CisKKyAgICAgICAgaWYgKHVybCAmJiBtLmlzTmV3 KCkpIHsKKyAgICAgICAgICB2YXIgbm9kZSA9IHNlbGYuZmllbGQuZ2V0KCdu b2RlJyksCisgICAgICAgICAgICAgIG5vZGVfZGF0YSA9IHNlbGYuZmllbGQu Z2V0KCdub2RlX2RhdGEnKSwKKyAgICAgICAgICAgICAgbm9kZV9pbmZvID0g c2VsZi5maWVsZC5nZXQoJ25vZGVfaW5mbycpLAorICAgICAgICAgICAgICBm dWxsX3VybCA9IG5vZGUuZ2VuZXJhdGVfdXJsLmFwcGx5KAorICAgICAgICAg ICAgICAgIG5vZGUsIFsKKyAgICAgICAgICAgICAgICAgIG51bGwsIHVybCwg bm9kZV9kYXRhLCBmYWxzZSwgbm9kZV9pbmZvCisgICAgICAgICAgICAgICAg XSksCisgICAgICAgICAgICAgIGRhdGE7CisgICAgICAgICAgbS50cmlnZ2Vy KCdwZ2FkbWluLXZpZXc6ZmV0Y2hpbmcnLCBtLCBzZWxmLmZpZWxkKTsKKwor ICAgICAgICAgIC8vIGZldGNoIGRlZmF1bHQgdmFsdWVzIGZvciBhdXRvdmFj dXVtIGZpZWxkcworICAgICAgICAgICQuYWpheCh7CisgICAgICAgICAgICBh c3luYzogZmFsc2UsCisgICAgICAgICAgICB1cmw6IGZ1bGxfdXJsLAorICAg ICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKHJlcykgeworICAgICAgICAg ICAgICBkYXRhID0gcmVzOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAg IGVycm9yOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgbS50cmlnZ2Vy KCdwZ2FkbWluLXZpZXc6ZmV0Y2g6ZXJyb3InLCBtLCBzZWxmLmZpZWxkKTsK KyAgICAgICAgICAgIH0KKyAgICAgICAgICB9KTsKKyAgICAgICAgICBtLnRy aWdnZXIoJ3BnYWRtaW4tdmlldzpmZXRjaGVkJywgbSwgc2VsZi5maWVsZCk7 CisKKyAgICAgICAgICAvLyBBZGQgZmV0Y2hlZCBtb2RlbHMgaW50byBjb2xs ZWN0aW9uCisgICAgICAgICAgaWYgKGRhdGEgJiYgXy5pc0FycmF5KGRhdGEp KSB7CisgICAgICAgICAgICBtLmdldChzZWxmLmZpZWxkLmdldCgnbmFtZScp KS5yZXNldChkYXRhLCB7c2lsZW50OiB0cnVlfSk7CisgICAgICAgICAgfQor ICAgICAgICB9CisgICAgICB9LAorCisgICAgICByZW5kZXI6IGZ1bmN0aW9u KCkgeworICAgICAgICB2YXIgc2VsZiA9IHRoaXMsCisgICAgICAgICAgICBt ID0gdGhpcy5tb2RlbCwKKyAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBzZWxm LmZpZWxkLmF0dHJpYnV0ZXM7CisKKyAgICAgICAgLy8gcmVtb3ZlIGdyaWQK KyAgICAgICAgaWYoc2VsZi5ncmlkKSB7CisgICAgICAgICAgc2VsZi5ncmlk LnJlbW92ZSgpOworICAgICAgICAgIGRlbGV0ZSBzZWxmLmdyaWQ7CisgICAg ICAgICAgc2VsZi5ncmlkID0gdW5kZWZpbmVkOworICAgICAgICB9CisKKyAg ICAgICAgc2VsZi4kZWwuZW1wdHkoKTsKKworICAgICAgICB2YXIgZ3JpZEhl YWRlciA9IF8udGVtcGxhdGUoWworICAgICAgICAgICAgJzxkaXYgY2xhc3M9 InN1Ym5vZGUtaGVhZGVyIj4nLAorICAgICAgICAgICAgJyAgPGxhYmVsIGNs YXNzPSJjb250cm9sLWxhYmVsIGNvbC1zbS00Ij48JS1sYWJlbCU+PC9sYWJl bD4nLAorICAgICAgICAgICAgJzwvZGl2PiddLmpvaW4oIlxuIikpLAorICAg ICAgICAgICAgZ3JpZEJvZHkgPSAkKCc8ZGl2IGNsYXNzPSJwZ2FkbWluLWNv bnRyb2wtZ3JvdXAgYmFja2dyaWQgZm9ybS1ncm91cCBjb2wteHMtMTIgb2Jq ZWN0IHN1Ym5vZGUiPjwvZGl2PicpLmFwcGVuZCgKKyAgICAgICAgICAgICAg ICBncmlkSGVhZGVyKGF0dHJpYnV0ZXMpCisgICAgICAgICAgICAgICAgKTsK KworICAgICAgICAvLyBJbml0aWFsaXplIGEgbmV3IEdyaWQgaW5zdGFuY2UK KyAgICAgICAgdmFyIGdyaWQgPSBzZWxmLmdyaWQgPSBuZXcgQmFja2dyaWQu R3JpZCh7CisgICAgICAgICAgY29sdW1uczogc2VsZi5ncmlkX2NvbHVtbnMs CisgICAgICAgICAgY29sbGVjdGlvbjogc2VsZi5tb2RlbC5nZXQoc2VsZi5m aWVsZC5nZXQoJ25hbWUnKSksCisgICAgICAgICAgY2xhc3NOYW1lOiAiYmFj a2dyaWQgdGFibGUtYm9yZGVyZWQiCisgICAgICAgIH0pOworCisgICAgICAg IC8vIHJlbmRlciBncmlkCisgICAgICAgIHNlbGYuJGVsLmFwcGVuZCgkKGdy aWRCb2R5KS5hcHBlbmQoZ3JpZC5yZW5kZXIoKS4kZWwpKTsKKworICAgICAg ICByZXR1cm4gc2VsZjsKKyAgICAgIH0KKyAgICB9KTsKKworICAvLyBXZSB3 aWxsIHVzZSB0aGlzIGZ1bmN0aW9uIGluIFZhY3V1bVNldHRpbmdzIENvbnRy b2wKKyAgLy8gdG8gY29udmVydCBkYXRhIHR5cGUgb24gdGhlIGZseQorICB2 YXIgY2VsbEZ1bmN0aW9uID0gQmFja2Zvcm0uY2VsbEZ1bmN0aW9uID0gZnVu Y3Rpb24obW9kZWwpIHsKKyAgICB2YXIgc2VsZiA9IHRoaXMsCisgICAgICAg IG0gPSBtb2RlbCwKKyAgICAgICAgdmFydHlwZSA9IG1vZGVsLmdldCgnY29s dW1uX3R5cGUnKTsKKworICAgIHN3aXRjaCh2YXJ0eXBlKSB7CisgICAgICBj YXNlICJpbnRlZ2VyIjoKKyAgICAgICAgcmV0dXJuIEJhY2tncmlkLkludGVn ZXJDZWxsOworICAgICAgYnJlYWs7CisgICAgICBjYXNlICJudW1iZXIiOgor ICAgICAgICByZXR1cm4gQmFja2dyaWQuTnVtYmVyQ2VsbDsKKyAgICAgIGJy ZWFrOworICAgICAgY2FzZSAic3RyaW5nIjoKKyAgICAgICAgcmV0dXJuIEJh Y2tncmlkLlN0cmluZ0NlbGw7CisgICAgICBicmVhazsKKyAgICAgIGRlZmF1 bHQ6CisgICAgICAgIHJldHVybiBCYWNrZ3JpZC5DZWxsOworICAgICAgYnJl YWs7CisgICAgfQorICB9OworCisgIC8vIERlZmluZSBTZWN1cml0eSBNb2Rl bCB3aXRoIGZpZWxkcyBhbmQgdmFsaWRhdGlvbiBmb3IgVmFjdXVtU2V0dGlu Z3MgQ29udHJvbAorICB2YXIgVmFjdXVtVGFibGVNb2RlbCA9ICBCYWNrZm9y bS5WYWN1dW1UYWJsZU1vZGVsID0gcGdBZG1pbi5Ccm93c2VyLk5vZGUuTW9k ZWwuZXh0ZW5kKHsKKyAgICBkZWZhdWx0czogeworICAgICAgbmFtZTogdW5k ZWZpbmVkLAorICAgICAgc2V0dGluZzogdW5kZWZpbmVkLAorICAgICAgbGFi ZWw6dW5kZWZpbmVkLAorICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAg IGNvbHVtbl90eXBlOiB1bmRlZmluZWQKKyAgICB9LAorCisgICAgdG9KU09O OiBmdW5jdGlvbigpeworICAgICAgdmFyIGQgPSBwZ0FkbWluLkJyb3dzZXIu Tm9kZS5Nb2RlbC5wcm90b3R5cGUudG9KU09OLmFwcGx5KHRoaXMpOworICAg ICAgZGVsZXRlIGQubGFiZWw7CisgICAgICBkZWxldGUgZC5zZXR0aW5nOwor ICAgICAgZGVsZXRlIGQuY29sdW1uX3R5cGU7CisgICAgICByZXR1cm4gZDsK KyAgICB9CisgIH0pOworCisgICAvLyBFeHRlbmQgdGhlIGJyb3dzZXIncyBj b2xsZWN0aW9uIGNsYXNzIGZvciBWYWN1dW1TZXR0aW5nc01vZGVsCisgICAg dmFyIFZhY3V1bVNldHRpbmdzU2NoZW1hID0gQmFja2Zvcm0uVmFjdXVtU2V0 dGluZ3NTY2hlbWEgPQorICAgICBbeworICAgICAgICAgICAgaWQ6ICdhdXRv dmFjdXVtX2N1c3RvbScsIGxhYmVsOiAne3sgXygiQ3VzdG9tIGF1dG8tdmFj dXVtPyIpIH19JywKKyAgICAgICAgICAgICAgZ3JvdXA6ICd7eyBfKCJUYWJs ZSIpIH19JywgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICAg ICAgICB0eXBlOiAnc3dpdGNoJywKKyAgICAgICAgICAgICAgZGlzYWJsZWQ6 IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICAgICAgICBpZighbS50b3AuaW5T Y2hlbWEuYXBwbHkodGhpcywgW21dKSkgeworICAgICAgICAgICAgICAgICAg cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAg IH0seworICAgICAgICAgICAgICBpZDogJ2F1dG92YWN1dW1fZW5hYmxlZCcs IGxhYmVsOiAne3sgXygiRW5hYmxlZD8iKSB9fScsCisgICAgICAgICAgICAg IGdyb3VwOiAne3sgXygiVGFibGUiKSB9fScsIG1vZGU6IFsnZWRpdCcsICdj cmVhdGUnXSwKKyAgICAgICAgICAgICAgdHlwZTogJ3N3aXRjaCcsCisgICAg ICAgICAgICAgIGRlcHM6IFsnYXV0b3ZhY3V1bV9jdXN0b20nXSwKKyAgICAg ICAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICAg ICAgIGlmKCFtLnRvcC5pblNjaGVtYS5hcHBseSh0aGlzLCBbbV0pICYmCisg ICAgICAgICAgICAgICAgICBtLmdldCgnYXV0b3ZhY3V1bV9jdXN0b20nKSA9 PSB0cnVlKSB7CisgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gV2UgYWxz byBuZWVkIHRvIHVuc2V0IHJlc3Qgb2YgYWxsCisgICAgICAgICAgICAgICAg c2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgIG0u c2V0KCdhdXRvdmFjdXVtX2VuYWJsZWQnLCBmYWxzZSk7CisgICAgICAgICAg ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9LCAxMCk7 CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAg IH0KKyAgICAgICAgICB9LHsKKyAgICAgICAgICAgICAgaWQ6ICd2YWN1dW1f dGFibGUnLCBsYWJlbDogJ3t7IF8oIlZhY3V1bSBUYWJsZSIpIH19JywKKyAg ICAgICAgICAgICAgbW9kZWw6IEJhY2tmb3JtLlZhY3V1bVRhYmxlTW9kZWws IGVkaXRhYmxlOiBmYWxzZSwgdHlwZTogJ2NvbGxlY3Rpb24nLAorICAgICAg ICAgICAgICBjYW5FZGl0OiB0cnVlLCBncm91cDogJ3t7IF8oIlRhYmxlIikg fX0nLAorICAgICAgICAgICAgICBtb2RlOiBbJ2VkaXQnLCAnY3JlYXRlJ10s IHVybDogJ2dldF90YWJsZV92YWN1dW0nLAorICAgICAgICAgICAgICBjb250 cm9sOiBCYWNrZm9ybS5WYWN1dW1Db2xsZWN0aW9uQ29udHJvbC5leHRlbmQo eworICAgICAgICAgICAgICAgIGdyaWRfY29sdW1ucyA6WworICAgICAgICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAnbGFiZWwn LCBsYWJlbDogJ3t7IF8oIkxhYmVsIikgfX0nLAorICAgICAgICAgICAgICAg ICAgICBjZWxsOiAnc3RyaW5nJywgZWRpdGFibGU6IGZhbHNlCisgICAgICAg ICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgeworICAgICAgICAg ICAgICAgICAgICBuYW1lOiAndmFsdWUnLCBsYWJlbDogJ3t7IF8oIlZhbHVl IikgfX0nLAorICAgICAgICAgICAgICAgICAgICBjZWxsRnVuY3Rpb246IEJh Y2tmb3JtLmNlbGxGdW5jdGlvbiwgZWRpdGFibGU6IGZ1bmN0aW9uKG0pIHsK KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtLmhhbmRsZXIuZ2V0 KCdhdXRvdmFjdXVtX2VuYWJsZWQnKTsKKyAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3NldHRpbmcnLCBsYWJlbDog J3t7IF8oIkRlZmF1bHQgdmFsdWUiKSB9fScsCisgICAgICAgICAgICAgICAg ICAgIGNlbGxGdW5jdGlvbjogQmFja2Zvcm0uY2VsbEZ1bmN0aW9uLCBlZGl0 YWJsZTogZmFsc2UKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICBdCisgICAgICAgICAgICAgIH0pLAorICAgICAgICAgICAgICBkZXBz OiBbJ2F1dG92YWN1dW1fZW5hYmxlZCddCisgICAgICAgICAgfSx7CisgICAg ICAgICAgICAgIGlkOiAndG9hc3RfYXV0b3ZhY2N1bScsIGxhYmVsOiAne3sg XygiQ3VzdG9tIGF1dG8tdmFjY3VtPyIpIH19JywKKyAgICAgICAgICAgICAg Z3JvdXA6ICd7eyBfKCJUb2FzdCBUYWJsZSIpIH19JywgbW9kZTogWydlZGl0 JywgJ2NyZWF0ZSddLAorICAgICAgICAgICAgICB0eXBlOiAnc3dpdGNoJywK KyAgICAgICAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsKKyAgICAg ICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIGFkZGl0aW9uYWwgY29u ZGl0aW9uIHRvIHRvZ2dsZSBlbmFibGUvZGlzYWJsZQorICAgICAgICAgICAg ICAgIC8vIGZvciB0YWJsZSBhdXRvLXZhY3V1bQorICAgICAgICAgICAgICBp ZighbS50b3AuaW5TY2hlbWEuYXBwbHkodGhpcywgW21dKSAmJiBtLmlzTmV3 KCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg ICAgICAgIH0gZWxzZSBpZighbS50b3AuaW5TY2hlbWEuYXBwbHkodGhpcywg W21dKSAmJgorICAgICAgICAgICAgICAgICAgICBtLmdldCgndG9hc3RfYXV0 b3ZhY3V1bV9lbmFibGVkJykgPT09IHRydWUgJiYKKyAgICAgICAgICAgICAg ICAgICAgbS50b3AuZ2V0KCdoYXN0b2FzdHRhYmxlJykgPT09IHRydWUgKSB7 CisgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg ICAgICAgICB9CisgICAgICAgICAgfSx7CisgICAgICAgICAgICAgIGlkOiAn dG9hc3RfYXV0b3ZhY3V1bV9lbmFibGVkJywgbGFiZWw6ICd7eyBfKCJFbmFi bGVkPyIpIH19JywKKyAgICAgICAgICAgICAgZ3JvdXA6ICd7eyBfKCJUb2Fz dCBUYWJsZSIpIH19JywgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLAorICAg ICAgICAgICAgICB0eXBlOiAnc3dpdGNoJywKKyAgICAgICAgICAgICAgZGVw czpbJ3RvYXN0X2F1dG92YWNjdW0nXSwKKyAgICAgICAgICAgICAgZGlzYWJs ZWQ6IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICAgICAgLy8gSWYgaW4gc2No ZW1hICYgaW4gY3JlYXRlIG1vZGUgdGhlbiBlbmFibGUgaXQKKyAgICAgICAg ICAgICAgaWYoIW0udG9wLmluU2NoZW1hLmFwcGx5KHRoaXMsIFttXSkgJiYK KyAgICAgICAgICAgICAgICAgIG0uZ2V0KCd0b2FzdF9hdXRvdmFjY3VtJykg PT09IHRydWUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAvLyB3ZSBhbHNvIG5l ZWQgdG8gdW5zZXQgcmVzdCBvZiBhbGwKKyAgICAgICAgICAgICAgc2V0VGlt ZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBtLnNldCgndG9h c3RfYXV0b3ZhY3V1bV9lbmFibGVkJywgZmFsc2UpOworICAgICAgICAgICAg ICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICB9LCAxMCk7CisKKyAg ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgICAgICAgfQor ICAgICAgICAgIH0seworICAgICAgICAgICAgICBpZDogJ3ZhY3V1bV90b2Fz dCcsIGxhYmVsOiAne3sgXygiVmFjdXVtIFRvYXN0IFRhYmxlIikgfX0nLAor ICAgICAgICAgICAgICBtb2RlbDogQmFja2Zvcm0uVmFjdXVtVGFibGVNb2Rl bCwgdHlwZTogJ2NvbGxlY3Rpb24nLCBlZGl0YWJsZTogZnVuY3Rpb24obSkg eworICAgICAgICAgICAgICAgIHJldHVybiBtLmlzTmV3KCk7CisgICAgICAg ICAgICAgIH0sCisgICAgICAgICAgICAgIGNhbkVkaXQ6IHRydWUsIGdyb3Vw OiAne3sgXygiVG9hc3QgVGFibGUiKSB9fScsCisgICAgICAgICAgICAgIG1v ZGU6IFsnZWRpdCcsICdjcmVhdGUnXSwgdXJsOiAnZ2V0X3RvYXN0X3RhYmxl X3ZhY3V1bScsCisgICAgICAgICAgICAgIGNvbnRyb2w6IEJhY2tmb3JtLlZh Y3V1bUNvbGxlY3Rpb25Db250cm9sLmV4dGVuZCh7CisgICAgICAgICAgICAg ICAgZ3JpZF9jb2x1bW5zIDpbCisgICAgICAgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgICAgIG5hbWU6ICdsYWJlbCcsIGxhYmVsOiAne3sgXygi TGFiZWwiKSB9fScsCisgICAgICAgICAgICAgICAgICAgIGNlbGw6ICdzdHJp bmcnLCBlZGl0YWJsZTogZmFsc2UKKyAgICAgICAgICAgICAgICAgIH0sCisg ICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6 ICd2YWx1ZScsIGxhYmVsOiAne3sgXygiVmFsdWUiKSB9fScsCisgICAgICAg ICAgICAgICAgICAgIGNlbGxGdW5jdGlvbjogQmFja2Zvcm0uY2VsbEZ1bmN0 aW9uLCBlZGl0YWJsZTogZnVuY3Rpb24obSkgeworICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIG0uaGFuZGxlci5nZXQoJ3RvYXN0X2F1dG92YWN1 dW1fZW5hYmxlZCcpOworICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgICAgIG5hbWU6ICdzZXR0aW5nJywgbGFiZWw6ICd7eyBfKCJE ZWZhdWx0IHZhbHVlIikgfX0nLAorICAgICAgICAgICAgICAgICAgICBjZWxs RnVuY3Rpb246IEJhY2tmb3JtLmNlbGxGdW5jdGlvbiwgZWRpdGFibGU6IGZh bHNlCisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgXQor ICAgICAgICAgICAgICB9KSwKKyAgICAgICAgICAgICAgZGVwczogWyd0b2Fz dF9hdXRvdmFjdXVtX2VuYWJsZWQnXQorICAgIH1dOworCiAgICAvLyBFeHRl bmQgdGhlIGJyb3dzZXIncyBjb2xsZWN0aW9uIGNsYXNzIGZvciBTZWN1cml0 eUxhYmVsIGNvbnRyb2wKICAgICB2YXIgU2VjdXJpdHlNb2RlbCA9IEJhY2tm b3JtLlNlY3VyaXR5TW9kZWwgPSBwZ0FkbWluLkJyb3dzZXIuTm9kZS5Nb2Rl bC5leHRlbmQoewogICAgIGRlZmF1bHRzOiB7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy91dGlscy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3V0aWxzLnB5 CmluZGV4IDEyOWMxOWUuLjcwMDdkNjMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3V0aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3V0aWxzLnB5 CkBAIC0xMyw2ICsxMyw3IEBAIGZyb20gcGdhZG1pbi5icm93c2VyLmNvbGxl Y3Rpb24gaW1wb3J0IENvbGxlY3Rpb25Ob2RlTW9kdWxlCiBmcm9tIHBnYWRt aW4uYnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE5vZGVWaWV3CiBmcm9t IGZsYXNrIGltcG9ydCByZW5kZXJfdGVtcGxhdGUKIGZyb20gcGdhZG1pbi51 dGlscy5hamF4IGltcG9ydCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IKK2ltcG9y dCBzaW1wbGVqc29uIGFzIGpzb24KIAogY2xhc3MgU2NoZW1hQ2hpbGRNb2R1 bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUpOgogICAgICIiIgpAQCAtMjQ3LDMg KzI0OCwxNDMgQEAgZGVmIHBhcnNlX3J1bGVfZGVmaW5pdGlvbihyZXMpOgog ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCiAgICAgcmV0 dXJuIHJlc19kYXRhCisKK2NsYXNzIFZhY3V1bVNldHRpbmdzOgorICAgICIi IgorICAgIFZhY3V1bVNldHRpbmdzIENsYXNzLgorCisgICAgVGhpcyBjbGFz cyBpbmNsdWRlcyBjb21tb24gdXRpbGl0aWVzIHRvIGZldGNoIGFuZCBwYXJz ZQorICAgIHZhY3V1bSBkZWZhdWx0cyBzZXR0aW5ncy4KKworICAgIE1ldGhv ZHM6CisgICAgLS0tLS0tLQorICAgICogZ2V0X3ZhY3V1bV90YWJsZV9zZXR0 aW5ncyhjb25uKToKKyAgICAgIC0gUmV0dXJucyB2YWN1dW0gdGFibGUgZGVm YXVsdHMgc2V0dGluZ3MuCisKKyAgICAqIGdldF92YWN1dW1fdG9hc3Rfc2V0 dGluZ3MoY29ubik6CisgICAgICAtIFJldHVybnMgdmFjdXVtIHRvYXN0IGRl ZmF1bHRzIHNldHRpbmdzLgorCisgICAgKiBwYXJzZV92YWN1dW1fZGF0YShj b25uLCByZXN1bHQsIHR5cGUpOgorICAgICAgLSBSZXR1cm5zIHJlc3VsdCBv ZiBhbiBhc3NvY2lhdGVkIGFycmF5CisgICAgICAgIG9mIGZpZWxkcyBuYW1l LCBsYWJlbCwgdmFsdWUgYW5kIGNvbHVtbl90eXBlLgorICAgICAgICBJdCBh ZGRzIG5hbWUsIGxhYmVsLCBjb2x1bW5fdHlwZSBwcm9wZXJ0aWVzIG9mIHRh YmxlL3RvYXN0CisgICAgICAgIHZhY3V1bSBpbnRvIHRoZSBhcnJheSBhbmQg cmV0dXJucyBpdC4KKyAgICAgICAgYXJnczoKKyAgICAgICAgKiBjb25uIC0g SXQgaXMgZGIgY29ubmVjdGlvbiBvYmplY3QKKyAgICAgICAgKiByZXN1bHQg LSBSZXN1bHRzZXQgb2YgdmFjdXVtIGRhdGEKKyAgICAgICAgKiB0eXBlIC0g dGFibGUvdG9hc3QgdmFjdXVtIHR5cGUKKworICAgICIiIgorICAgIGRlZiBn ZXRfdmFjdXVtX3RhYmxlX3NldHRpbmdzKHNlbGYsIGNvbm4pOgorICAgICAg ICAiIiIKKyAgICAgICAgRmV0Y2ggdGhlIGRlZmF1bHQgdmFsdWVzIGZvciBh dXRvdmFjdXVtCisgICAgICAgIGZpZWxkcywgcmV0dXJuIGFuIGFycmF5IG9m CisgICAgICAgICAgLSBsYWJlbAorICAgICAgICAgIC0gbmFtZQorICAgICAg ICAgIC0gc2V0dGluZworICAgICAgICB2YWx1ZXMKKyAgICAgICAgIiIiCisK KyAgICAgICAgIyByZXR1cm5zIGFuIGFycmF5IG9mIG5hbWUgJiBsYWJlbCB2 YWx1ZXMKKyAgICAgICAgdmFjdXVtX2ZpZWxkcyA9IHJlbmRlcl90ZW1wbGF0 ZSgidmFjdXVtX3NldHRpbmdzL3ZhY3V1bV9maWVsZHMuanNvbiIpCisKKyAg ICAgICAgdmFjdXVtX2ZpZWxkcyA9IGpzb24ubG9hZHModmFjdXVtX2ZpZWxk cykKKworICAgICAgICAjIHJldHVybnMgYW4gYXJyYXkgb2Ygc2V0dGluZyAm IG5hbWUgdmFsdWVzCisgICAgICAgIHZhY3V1bV9maWVsZHNfa2V5cyA9ICIn IisiJywnIi5qb2luKAorICAgICAgICAgICAgdmFjdXVtX2ZpZWxkc1sndGFi bGUnXS5rZXlzKCkpKyInIgorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxh dGUoJ3ZhY3V1bV9zZXR0aW5ncy9zcWwvdmFjdXVtX2RlZmF1bHRzLnNxbCcs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zPXZhY3V1 bV9maWVsZHNfa2V5cykKKyAgICAgICAgc3RhdHVzLCByZXMgPSBjb25uLmV4 ZWN1dGVfZGljdChTUUwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9cmVzKQorCisgICAgICAgIGZvciByb3cgaW4gcmVzWydyb3dzJ106Cisg ICAgICAgICAgICByb3dfbmFtZSA9IHJvd1snbmFtZSddCisgICAgICAgICAg ICByb3dbJ25hbWUnXSA9IHZhY3V1bV9maWVsZHNbJ3RhYmxlJ11bcm93X25h bWVdWzBdCisgICAgICAgICAgICByb3dbJ2xhYmVsJ10gPSB2YWN1dW1fZmll bGRzWyd0YWJsZSddW3Jvd19uYW1lXVsxXQorICAgICAgICAgICAgcm93Wydj b2x1bW5fdHlwZSddID0gdmFjdXVtX2ZpZWxkc1sndGFibGUnXVtyb3dfbmFt ZV1bMl0KKworICAgICAgICByZXR1cm4gcmVzCisKKyAgICBkZWYgZ2V0X3Zh Y3V1bV90b2FzdF9zZXR0aW5ncyhzZWxmLCBjb25uKToKKyAgICAgICAgIiIi CisgICAgICAgIEZldGNoIHRoZSBkZWZhdWx0IHZhbHVlcyBmb3IgYXV0b3Zh Y3V1bQorICAgICAgICBmaWVsZHMsIHJldHVybiBhbiBhcnJheSBvZgorICAg ICAgICAgIC0gbGFiZWwKKyAgICAgICAgICAtIG5hbWUKKyAgICAgICAgICAt IHNldHRpbmcKKyAgICAgICAgdmFsdWVzCisgICAgICAgICIiIgorCisgICAg ICAgICMgcmV0dXJucyBhbiBhcnJheSBvZiBuYW1lICYgbGFiZWwgdmFsdWVz CisgICAgICAgIHZhY3V1bV9maWVsZHMgPSByZW5kZXJfdGVtcGxhdGUoInZh Y3V1bV9zZXR0aW5ncy92YWN1dW1fZmllbGRzLmpzb24iKQorCisgICAgICAg IHZhY3V1bV9maWVsZHMgPSBqc29uLmxvYWRzKHZhY3V1bV9maWVsZHMpCisK KyAgICAgICAgIyByZXR1cm5zIGFuIGFycmF5IG9mIHNldHRpbmcgJiBuYW1l IHZhbHVlcworICAgICAgICB2YWN1dW1fZmllbGRzX2tleXMgPSAiJyIrIics JyIuam9pbigKKyAgICAgICAgICAgIHZhY3V1bV9maWVsZHNbJ3RvYXN0J10u a2V5cygpKSsiJyIKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCd2 YWN1dW1fc2V0dGluZ3Mvc3FsL3ZhY3V1bV9kZWZhdWx0cy5zcWwnLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1ucz12YWN1dW1fZmll bGRzX2tleXMpCisgICAgICAgIHN0YXR1cywgcmVzID0gY29ubi5leGVjdXRl X2RpY3QoU1FMKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJl cykKKworICAgICAgICBmb3Igcm93IGluIHJlc1sncm93cyddOgorICAgICAg ICAgICAgcm93X25hbWUgPSByb3dbJ25hbWUnXQorICAgICAgICAgICAgcm93 WyduYW1lJ10gPSB2YWN1dW1fZmllbGRzWyd0b2FzdCddW3Jvd19uYW1lXVsw XQorICAgICAgICAgICAgcm93WydsYWJlbCddID0gdmFjdXVtX2ZpZWxkc1sn dG9hc3QnXVtyb3dfbmFtZV1bMV0KKyAgICAgICAgICAgIHJvd1snY29sdW1u X3R5cGUnXSA9IHZhY3V1bV9maWVsZHNbJ3RhYmxlJ11bcm93X25hbWVdWzJd CisKKyAgICAgICAgcmV0dXJuIHJlcworCisgICAgZGVmIHBhcnNlX3ZhY3V1 bV9kYXRhKHNlbGYsIGNvbm4sIHJlc3VsdCwgdHlwZSk6CisgICAgICAgICIi IgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgcmVzdWx0IG9mIGFu IGFzc29jaWF0ZWQgYXJyYXkKKyAgICAgICAgb2YgZmllbGRzIG5hbWUsIGxh YmVsLCB2YWx1ZSBhbmQgY29sdW1uX3R5cGUuCisgICAgICAgIEl0IGFkZHMg bmFtZSwgbGFiZWwsIGNvbHVtbl90eXBlIHByb3BlcnRpZXMgb2YgdGFibGUv dG9hc3QKKyAgICAgICAgdmFjdXVtIGludG8gdGhlIGFycmF5IGFuZCByZXR1 cm5zIGl0LgorICAgICAgICBhcmdzOgorICAgICAgICAqIGNvbm4gLSBJdCBp cyBkYiBjb25uZWN0aW9uIG9iamVjdAorICAgICAgICAqIHJlc3VsdCAtIFJl c3VsdHNldCBvZiB2YWN1dW0gZGF0YQorICAgICAgICAqIHR5cGUgLSB0YWJs ZS90b2FzdCB2YWN1dW0gdHlwZQorICAgICAgICAiIiIKKworICAgICAgICAj IHJldHVybnMgYW4gYXJyYXkgb2YgbmFtZSAmIGxhYmVsIHZhbHVlcworICAg ICAgICB2YWN1dW1fZmllbGRzID0gcmVuZGVyX3RlbXBsYXRlKCJ2YWN1dW1f c2V0dGluZ3MvdmFjdXVtX2ZpZWxkcy5qc29uIikKKworICAgICAgICB2YWN1 dW1fZmllbGRzID0ganNvbi5sb2Fkcyh2YWN1dW1fZmllbGRzKQorCisgICAg ICAgICMgcmV0dXJucyBhbiBhcnJheSBvZiBzZXR0aW5nICYgbmFtZSB2YWx1 ZXMKKyAgICAgICAgdmFjdXVtX2ZpZWxkc19rZXlzID0gIiciKyInLCciLmpv aW4oCisgICAgICAgICAgICB2YWN1dW1fZmllbGRzW3R5cGVdLmtleXMoKSkg KyAiJyIKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCd2YWN1dW1f c2V0dGluZ3Mvc3FsL3ZhY3V1bV9kZWZhdWx0cy5zcWwnLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29sdW1ucz12YWN1dW1fZmllbGRzX2tl eXMpCisgICAgICAgIHN0YXR1cywgcmVzID0gY29ubi5leGVjdXRlX2RpY3Qo U1FMKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKwor ICAgICAgICBpZiB0eXBlIGlzICd0YWJsZSc6CisgICAgICAgICAgICBmb3Ig cm93IGluIHJlc1sncm93cyddOgorICAgICAgICAgICAgICAgIHJvd19uYW1l ID0gcm93WyduYW1lJ10KKyAgICAgICAgICAgICAgICByb3dbJ25hbWUnXSA9 IHZhY3V1bV9maWVsZHNbdHlwZV1bcm93X25hbWVdWzBdCisgICAgICAgICAg ICAgICAgcm93WydsYWJlbCddID0gdmFjdXVtX2ZpZWxkc1t0eXBlXVtyb3df bmFtZV1bMV0KKyAgICAgICAgICAgICAgICByb3dbJ2NvbHVtbl90eXBlJ10g PSB2YWN1dW1fZmllbGRzW3R5cGVdW3Jvd19uYW1lXVsyXQorICAgICAgICAg ICAgICAgIGlmIHJlc3VsdFtyb3dbJ25hbWUnXV0gaXMgbm90IE5vbmU6Cisg ICAgICAgICAgICAgICAgICAgIHJvd1sndmFsdWUnXSA9IHJvd1snc2V0dGlu ZyddID0gZmxvYXQocmVzdWx0W3Jvd1snbmFtZSddXSkKKworICAgICAgICBl bGlmIHR5cGUgaXMgJ3RvYXN0JzoKKyAgICAgICAgICAgIGZvciByb3cgaW4g cmVzWydyb3dzJ106CisgICAgICAgICAgICAgICAgcm93X29sZF9uYW1lID0g cm93WyduYW1lJ10KKyAgICAgICAgICAgICAgICByb3dfbmFtZSA9ICd0b2Fz dF97MH0nLmZvcm1hdCh2YWN1dW1fZmllbGRzW3R5cGVdW3Jvd19vbGRfbmFt ZV1bMF0pCisgICAgICAgICAgICAgICAgcm93WyduYW1lJ10gPSB2YWN1dW1f ZmllbGRzW3R5cGVdW3Jvd19vbGRfbmFtZV1bMF0KKyAgICAgICAgICAgICAg ICByb3dbJ2xhYmVsJ10gPSB2YWN1dW1fZmllbGRzW3R5cGVdW3Jvd19vbGRf bmFtZV1bMV0KKyAgICAgICAgICAgICAgICByb3dbJ2NvbHVtbl90eXBlJ10g PSB2YWN1dW1fZmllbGRzW3R5cGVdW3Jvd19vbGRfbmFtZV1bMl0KKyAgICAg ICAgICAgICAgICBpZiByZXN1bHRbcm93X25hbWVdIGFuZCByZXN1bHRbcm93 X25hbWVdIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICByb3db J3ZhbHVlJ10gPSByb3dbJ3NldHRpbmcnXSA9IGZsb2F0KHJlc3VsdFtyb3df bmFtZV0pCisKKyAgICAgICAgcmV0dXJuIHJlc1sncm93cyddCg== --047d7ba974228433ee053033b069 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 --047d7ba974228433ee053033b069--