Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cUTel-0002Im-TF for pgadmin-hackers@arkaria.postgresql.org; Fri, 20 Jan 2017 07:30:44 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1cUTel-0002LV-BK for pgadmin-hackers@arkaria.postgresql.org; Fri, 20 Jan 2017 07:30:43 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1cUTeX-00026a-22 for pgadmin-hackers@postgresql.org; Fri, 20 Jan 2017 07:30:29 +0000 Received: from mail-wm0-x232.google.com ([2a00:1450:400c:c09::232]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1cUTeT-0001Ft-38 for pgadmin-hackers@postgresql.org; Fri, 20 Jan 2017 07:30:28 +0000 Received: by mail-wm0-x232.google.com with SMTP id r144so30177637wme.1 for ; Thu, 19 Jan 2017 23:30:24 -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:from:date:message-id:subject:to :cc; bh=istIL/3q9xXDtDmcYiSLwjcALZU1YKg9vyEDPQUpYFI=; b=MdE/Zti1rc/O5BDaXiTtgB0o2bvTxZT5hbdPNdJoJ5DXQc/1EU/wvr3SN4YQAG+KXc GNLajeT56sa8k5ITfHFLv+LK6dIKXUpwgKIB2GY/7M0lDztdGT/xR49hUlNNE/Olo9I2 R/Wt+i1PfWpH9SgVw09sL5DnEOeuSZUbiEi7F8SY0opT9EvrxxG1eShWPgtgPZ/pxDUc nlV0YszRFHjzH8mrUlxErqMkxt4rThjBqnabC54XKwPcPcxEmVhWVLxjGYyfj23xyCWI HrjvjBQG5JddPGpv+pxaALevxzdtN43F0o4jyyE/3QXywbnyOjD5VYn2JUA/HbqJsB2R u+sQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=istIL/3q9xXDtDmcYiSLwjcALZU1YKg9vyEDPQUpYFI=; b=kRSu7KJ6fHfRO0EUdjgKJ2ttqhDmZ8aYJflL/78qo+KMiIGDmGNht0mRnisIStcjYW Muhfe9TWH1EHShFpdwQLDslX4PaJKFki6y5OTn6qQoCJYBbhJDjyCwt01nsIsFNE+6u+ u+bZIL8SFTM9qNEoTF4bowUPZyWyPzoR0Ax7l82LILl5uUks4qY3fo7FvFwJArU2IYSq R5SEjLJ1aDs78TQKHkEcjAgCDzwK0iSSgSb/ELUlxZEdaPbPxB/pa7J38p3uaVBPFlLJ GWinHdBowniLpuag27e1BSmniOrfz/gxds/gWIIgExXQPlx97akUQL/45B4kCtXtG79j avJQ== X-Gm-Message-State: AIkVDXI+qxLQSFvEBXkDf8iQlHdpF92XmpaGPy3xbiJyi5Ke1WsAx3ZH1SJTwKN7jIOBhdhFIh/+WFPH+RFxa97z X-Received: by 10.28.174.208 with SMTP id x199mr2331126wme.107.1484897423105; Thu, 19 Jan 2017 23:30:23 -0800 (PST) MIME-Version: 1.0 Received: by 10.28.10.18 with HTTP; Thu, 19 Jan 2017 23:29:52 -0800 (PST) In-Reply-To: References: From: Surinder Kumar Date: Fri, 20 Jan 2017 12:59:52 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch]: RM1840 - cannot create gist index due to enforced ASC, DESC options in generated SQL To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a11443f846f14cf0546819f5d 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 --001a11443f846f14cf0546819f5d Content-Type: multipart/alternative; boundary=001a11443f846f14cb0546819f5b --001a11443f846f14cb0546819f5b Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi Dave, The last patch was for exclusion constraint only. The same issue issue is reported RM2061 for index. So, this patch takes care of both issues. Added a flag '*is_sort_nulls_applicable*' which is set to true for access method 'btree'. If its is true, the values for options 'ASC/DESC' and 'NULLS' are included in 'create' sql for exclusion and index otherwise not. Please find updated patch and review. On Tue, Jan 17, 2017 at 3:43 PM, Dave Page wrote: > Hi > > On Tue, Jan 17, 2017 at 9:52 AM, Surinder Kumar > wrote: > > Hi > > On Tue, Jan 17, 2017 at 3:08 PM, Dave Page wrote: > >> > >> Hi > >> > >> On Fri, Jan 13, 2017 at 6:50 AM, Surinder Kumar > >> wrote: > >> > Hi > >> > > >> > Please find updated patch following changes: > >> > 1) Keep field 'opclass' combo box enabled. > >> > >> That doesn't seem to be working. > =E2=80=8BIt is now fixed in the updated patch.=E2=80=8B > > > > Is the field 'opclass' is not enabled for you?. > > No. > > > Can you please tell in which scenario it doesn't gets enabled? so that I > can > > fix it. > > PostgreSQL 9.4, table: > > CREATE TABLE public.foo > ( > id text COLLATE pg_catalog."default" NOT NULL, > data1 text COLLATE pg_catalog."default", > CONSTRAINT foo_pkey1 PRIMARY KEY (id), > CONSTRAINT gerp1 UNIQUE (id, data1) > ) > > 1) Right-click, Create index > > 2) Name: xxxx > > 3) Access method: gist > > 4) Add column. Select id (note the opclass field is not enabled) > > 5) Add column. Select data1 (note the opclass field is not enabled). > > 6) Click save, and behold the following error in all it's glory :-) > > ERROR: data type text has no default operator class for access method > "gist" > HINT: You must specify an operator class for the index or define a > default operator class for the data type.=E2=80=8B =E2=80=8BThanks for steps.=E2=80=8B > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --001a11443f846f14cb0546819f5b Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi = Dave,

The last patch was for exclusion constraint only. The same issue = issue is reported=C2=A0RM2061=C2=A0for index.=C2=A0
So, this patch takes care of both issues.

Added a flag 'is_sort_nulls_applicable' which is s= et to true for access method 'btree'.
If its is true, the values for options '= ASC/DESC' and 'NULLS' are included in 'create' sql for = exclusion and index otherwise not.

Please find updated patch and review.

On Tue, Jan 17, 2017 at 3:43 PM, Dave = Page <dpage@pgadmin.org> wrote:
Hi

On Tue, Jan 17, 2017 at 9:52 AM, Surinder Kumar
<surinder.kumar@enterprisedb.com> wrote:
> Hi
> On Tue, Jan 17, 2017 at 3:08 PM, Dave Page <dpage@pgadmin.org> wrote:
>>
>> Hi
>>
>> On Fri, Jan 13, 2017 at 6:50 AM, Surinder Kumar
>> <surinder.kumar@enterprisedb.com> wrote:
>> > Hi
>> >
>> > Please find updated patch following changes:
>> > 1) Keep field 'opclass' combo box enabled.
>>
>> That doesn't seem to be working.
=E2=80=8BIt is now fixed i= n the updated patch.=E2=80=8B
>
> Is the field 'opclass' is not enabled for you?.

No.

> Can you please tell in which scenario it doesn't gets enabled? so = that I can
> fix it.

PostgreSQL 9.4, table:

CREATE TABLE public.foo
(
=C2=A0 =C2=A0 id text COLLATE pg_catalog."default" NOT NULL,
=C2=A0 =C2=A0 data1 text COLLATE pg_catalog."default",
=C2=A0 =C2=A0 CONSTRAINT foo_pkey1 PRIMARY KEY (id),
=C2=A0 =C2=A0 CONSTRAINT gerp1 UNIQUE (id, data1)
)

1) Right-click, Create index

2) Name: xxxx

3) Access method: gist

4) Add column. Select id (note the opclass field is not enabled)

5) Add column. Select data1 (note the opclass field is not enabled).

6) Click save, and behold the following error in all it's glory :-)

ERROR: data type text has no default operator class for access method "= ;gist"
HINT: You must specify an operator class for the index or define a
default operator class for the data type.=E2=80=8B
=E2=80=8BThanks for steps.=E2= =80=8B

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

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

--001a11443f846f14cb0546819f5b-- --001a11443f846f14cf0546819f5d Content-Type: application/octet-stream; name="RM1840_V2.patch" Content-Disposition: attachment; filename="RM1840_V2.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iy5hbec30 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50 cy9leGNsdXNpb25fY29uc3RyYWludC9fX2luaXRfXy5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9leGNsdXNpb25fY29uc3RyYWlu dC9fX2luaXRfXy5weQppbmRleCA2YjdmNTJiLi5mZTdkOTM0IDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvZXhjbHVz aW9uX2NvbnN0cmFpbnQvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbnN0cmFpbnRzL2V4Y2x1c2lvbl9jb25zdHJhaW50L19f aW5pdF9fLnB5CkBAIC04MTYsNyArODE2LDcgQEAgY2xhc3MgRXhjbHVzaW9u Q29uc3RyYWludFZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAg IHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLCAnY3JlYXRlLnNxbCddKSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkYXRhPWRhdGEsIGNvbm49c2VsZi5jb25uKQogCi0g ICAgICAgIHJldHVybiBzcWwsIGRhdGFbJ25hbWUnXSBpZiAnbmFtZScgaW4g ZGF0YSBlbHNlIG9sZF9kYXRhWyduYW1lJ10KKyAgICAgICAgcmV0dXJuIHNx bCwgZGF0YVsnbmFtZSddCiAKICAgICBAY2hlY2tfcHJlY29uZGl0aW9uCiAg ICAgZGVmIHNxbChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIGV4 aWQ9Tm9uZSk6CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv Y29uc3RyYWludHMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvdGVtcGxhdGVzL2V4 Y2x1c2lvbl9jb25zdHJhaW50L2pzL2V4Y2x1c2lvbl9jb25zdHJhaW50Lmpz IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2V4Y2x1c2lv bl9jb25zdHJhaW50L3RlbXBsYXRlcy9leGNsdXNpb25fY29uc3RyYWludC9q cy9leGNsdXNpb25fY29uc3RyYWludC5qcwppbmRleCA5MjUwZDlmLi4wNjYw NTg5IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3Ry YWludHMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvdGVtcGxhdGVzL2V4Y2x1c2lv bl9jb25zdHJhaW50L2pzL2V4Y2x1c2lvbl9jb25zdHJhaW50LmpzCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9leGNsdXNpb25f Y29uc3RyYWludC90ZW1wbGF0ZXMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvanMv ZXhjbHVzaW9uX2NvbnN0cmFpbnQuanMKQEAgLTcsMTAgKzcsMTEgQEAgZnVu Y3Rpb24oJCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBBbGVydGlmeSkg ewogICAgIGRlZmF1bHRzOiB7CiAgICAgICBjb2x1bW46IHVuZGVmaW5lZCwK ICAgICAgIG9wZXJfY2xhc3M6IHVuZGVmaW5lZCwKLSAgICAgIG9yZGVyOiB1 bmRlZmluZWQsCi0gICAgICBudWxsc19vcmRlcjogdW5kZWZpbmVkLAorICAg ICAgb3JkZXI6IGZhbHNlLAorICAgICAgbnVsbHNfb3JkZXI6IGZhbHNlLAog ICAgICAgb3BlcmF0b3I6dW5kZWZpbmVkLAotICAgICAgY29sX3R5cGU6dW5k ZWZpbmVkCisgICAgICBjb2xfdHlwZTp1bmRlZmluZWQsCisgICAgICBpc19z b3J0X251bGxzX2FwcGxpY2FibGU6IHRydWUKICAgICB9LAogICAgIHRvSlNP TjogZnVuY3Rpb24gKCkgewogICAgICAgdmFyIGQgPSBwZ0Jyb3dzZXIuTm9k ZS5Nb2RlbC5wcm90b3R5cGUudG9KU09OLmFwcGx5KHRoaXMsIGFyZ3VtZW50 cyk7CkBAIC0yMywyNiArMjQsOSBAQCBmdW5jdGlvbigkLCBfLCBTLCBwZ0Fk bWluLCBwZ0Jyb3dzZXIsIEFsZXJ0aWZ5KSB7CiAgICAgICB9LHsKICAgICAg ICAgaWQ6ICdvcGVyX2NsYXNzJywgbGFiZWw6J3t7IF8oJ09wZXJhdG9yIGNs YXNzJykgfX0nLCB0eXBlOid0ZXh0JywKICAgICAgICAgbm9kZTogJ3RhYmxl JywgdXJsOiAnZ2V0X29wZXJfY2xhc3MnLCBmaXJzdF9lbXB0eTogdHJ1ZSwK LSAgICAgICAgZWRpdGFibGU6IGZ1bmN0aW9uKG0pIHsKLSAgICAgICAgICBp ZiAobSBpbnN0YW5jZW9mIEJhY2tib25lLkNvbGxlY3Rpb24pIHsKLSAgICAg ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgIH0KLSAgICAgICAgICBp ZiAoKF8uaGFzKG0uY29sbGVjdGlvbiwgJ2hhbmRsZXInKSAmJgotICAgICAg ICAgICAgICAgICFfLmlzVW5kZWZpbmVkKG0uY29sbGVjdGlvbi5oYW5kbGVy KSAmJgotICAgICAgICAgICAgICAgICFfLmlzVW5kZWZpbmVkKG0uY29sbGVj dGlvbi5oYW5kbGVyLmdldCgnb2lkJykpKSkgewotICAgICAgICAgICAgcmV0 dXJuIGZhbHNlOwotICAgICAgICAgIH0KLQotICAgICAgICAgIGlmIChtLmNv bGxlY3Rpb24pIHsKLSAgICAgICAgICAgIHZhciBpbmRleFR5cGUgPSBtLmNv bGxlY3Rpb24uaGFuZGxlci5nZXQoJ2FtbmFtZScpCi0gICAgICAgICAgICBy ZXR1cm4gKGluZGV4VHlwZSA9PSAnYnRyZWUnIHx8IF8uaXNVbmRlZmluZWQo aW5kZXhUeXBlKSB8fAotICAgICAgICAgICAgICBfLmlzTnVsbChpbmRleFR5 cGUpIHx8IGluZGV4VHlwZSA9PSAnJyk7Ci0gICAgICAgICAgfSBlbHNlIHsK LSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgIH0KLSAgICAg ICAgfSwKKyAgICAgICAgZWRpdGFibGU6IHRydWUsCiAgICAgICAgIHNlbGVj dDI6IHsKLSAgICAgICAgICBhbGxvd0NsZWFyOiB0cnVlLCB3aWR0aDogJ3N0 eWxlJywKKyAgICAgICAgICBhbGxvd0NsZWFyOiB0cnVlLCB3aWR0aDogJ3N0 eWxlJywgdGFnczogdHJ1ZSwKICAgICAgICAgICBwbGFjZWhvbGRlcjogJ3t7 IF8oIlNlbGVjdCB0aGUgb3BlcmF0b3IgY2xhc3MiKSB9fScKICAgICAgICAg fSwgY2VsbDogQmFja2dyaWQuRXh0ZW5zaW9uLlNlbGVjdDJDZWxsLmV4dGVu ZCh7CiAgICAgICAgICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24gKCkgewpAQCAt NTUsNiArMzksMTIgQEAgZnVuY3Rpb24oJCwgXywgUywgcGdBZG1pbiwgcGdC cm93c2VyLCBBbGVydGlmeSkgewogCiAgICAgICAgICAgICBpZiAodXJsICYm IChpbmRleHR5cGUgPT0gJ2J0cmVlJyB8fCBfLmlzVW5kZWZpbmVkKGluZGV4 dHlwZSkgfHwKICAgICAgICAgICAgICAgICBfLmlzTnVsbChpbmRleHR5cGUp IHx8IGluZGV4dHlwZSA9PSAnJykpIHsKKyAgICAgICAgICAgICAgLy8gU2V0 IHNvcnRfb3JkZXIgYW5kIG51bGxzIHRvIHRydWUgaWYgYWNjZXNzIG1ldGhv ZCBpcyBidHJlZQorICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u KCkgeworICAgICAgICAgICAgICAgIG0uc2V0KCdvcmRlcicsIHRydWUpOwor ICAgICAgICAgICAgICAgIG0uc2V0KCdudWxsc19vcmRlcicsIHRydWUpOwor ICAgICAgICAgICAgICB9LCAxMCk7CisKICAgICAgICAgICAgICAgdmFyIG5v ZGUgPSB0aGlzLmNvbHVtbi5nZXQoJ3NjaGVtYV9ub2RlJyksCiAgICAgICAg ICAgICAgICAgICBldmVudEhhbmRsZXIgPSBtLnRvcCB8fCBtLAogICAgICAg ICAgICAgICAgICAgbm9kZV9pbmZvID0gdGhpcy5jb2x1bW4uZ2V0KCdub2Rl X2luZm8nKSwKQEAgLTEwOCw2ICs5OCwxNCBAQCBmdW5jdGlvbigkLCBfLCBT LCBwZ0FkbWluLCBwZ0Jyb3dzZXIsIEFsZXJ0aWZ5KSB7CiAgICAgICAgICAg aWYgKG0gaW5zdGFuY2VvZiBCYWNrYm9uZS5Db2xsZWN0aW9uKSB7CiAgICAg ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICB9CisgICAgICAgICAg ZWxzZSB7CisgICAgICAgICAgICBpZiAobS50b3AuZ2V0KCdhbW5hbWUnKSA9 PT0gJ2J0cmVlJykgeworICAgICAgICAgICAgICBtLnNldCgnaXNfc29ydF9u dWxsc19hcHBsaWNhYmxlJywgdHJ1ZSk7CisgICAgICAgICAgICAgIHJldHVy biB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbS5zZXQoJ2lz X3NvcnRfbnVsbHNfYXBwbGljYWJsZScsIGZhbHNlKTsKKyAgICAgICAgICAg IHJldHVybiBmYWxzZTsKKyAgICAgICAgICB9CiAgICAgICAgICAgaWYgKChf LmhhcyhtLmNvbGxlY3Rpb24sICdoYW5kbGVyJykgJiYKICAgICAgICAgICAg ICAgICAhXy5pc1VuZGVmaW5lZChtLmNvbGxlY3Rpb24uaGFuZGxlcikgJiYK ICAgICAgICAgICAgICAgICAhXy5pc1VuZGVmaW5lZChtLmNvbGxlY3Rpb24u aGFuZGxlci5nZXQoJ29pZCcpKSkpIHsKQEAgLTEyNCw2ICsxMjIsMTUgQEAg ZnVuY3Rpb24oJCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBBbGVydGlm eSkgewogICAgICAgICAgIGlmIChtIGluc3RhbmNlb2YgQmFja2JvbmUuQ29s bGVjdGlvbikgewogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg ICAgfQorICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKG0udG9w LmdldCgnYW1uYW1lJykgPT09ICdidHJlZScpIHsKKyAgICAgICAgICAgICAg bS5zZXQoJ2lzX3NvcnRfbnVsbHNfYXBwbGljYWJsZScsIHRydWUpOworICAg ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAg ICAgICAgIG0uc2V0KCdpc19zb3J0X251bGxzX2FwcGxpY2FibGUnLCBmYWxz ZSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgfQor CiAgICAgICAgICAgaWYgKChfLmhhcyhtLmNvbGxlY3Rpb24sICdoYW5kbGVy JykgJiYKICAgICAgICAgICAgICAgICAhXy5pc1VuZGVmaW5lZChtLmNvbGxl Y3Rpb24uaGFuZGxlcikgJiYKICAgICAgICAgICAgICAgICAhXy5pc1VuZGVm aW5lZChtLmNvbGxlY3Rpb24uaGFuZGxlci5nZXQoJ29pZCcpKSkpIHsKQEAg LTg5NCw4ICs5MDEsMTUgQEAgZnVuY3Rpb24oJCwgXywgUywgcGdBZG1pbiwg cGdCcm93c2VyLCBBbGVydGlmeSkgewogICAgICAgICB9XSwKICAgICAgICAg dmFsaWRhdGU6IGZ1bmN0aW9uKCkgewogICAgICAgICAgIHRoaXMuZXJyb3JN b2RlbC5jbGVhcigpOwotICAgICAgICAgIHZhciBjb2x1bW5zID0gdGhpcy5n ZXQoJ2NvbHVtbnMnKTsKLSAgICAgICAgICBpZiAoKF8uaXNVbmRlZmluZWQo Y29sdW1ucykgfHwgXy5pc051bGwoY29sdW1ucykgfHwgY29sdW1ucy5sZW5n dGggPCAxKSkgeworICAgICAgICAgIHZhciBjb2x1bW5zID0gdGhpcy5nZXQo J2NvbHVtbnMnKSwKKyAgICAgICAgICAgICAgbmFtZSA9IHRoaXMuZ2V0KCdu YW1lJyk7CisKKyAgICAgICAgICBpZiAoKF8uaXNVbmRlZmluZWQobmFtZSkg fHwgXy5pc051bGwobmFtZSkgfHwgbmFtZS5sZW5ndGggPCAxKSkgeworICAg ICAgICAgICAgdmFyIG1zZyA9ICd7eyBfKCdQbGVhc2Ugc3BlY2lmeSBuYW1l IGZvciBleGNsdXNpb24gY29uc3RyYWludC4nKSB9fSc7CisgICAgICAgICAg ICB0aGlzLmVycm9yTW9kZWwuc2V0KCduYW1lJywgbXNnKTsKKyAgICAgICAg ICAgIHJldHVybiBtc2c7CisgICAgICAgICAgfQorICAgICAgICAgIGVsc2Ug IGlmICgoXy5pc1VuZGVmaW5lZChjb2x1bW5zKSB8fCBfLmlzTnVsbChjb2x1 bW5zKSB8fCBjb2x1bW5zLmxlbmd0aCA8IDEpKSB7CiAgICAgICAgICAgICB2 YXIgbXNnID0gJ3t7IF8oJ1BsZWFzZSBzcGVjaWZ5IGNvbHVtbnMgZm9yIGV4 Y2x1c2lvbiBjb25zdHJhaW50LicpIH19JzsKICAgICAgICAgICAgIHRoaXMu ZXJyb3JNb2RlbC5zZXQoJ2NvbHVtbnMnLCBtc2cpOwogICAgICAgICAgICAg cmV0dXJuIG1zZzsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy9pbmRleGVzL3RlbXBsYXRlcy9pbmRleC9qcy9pbmRleC5qcyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9pbmRleC9qcy9p bmRleC5qcwppbmRleCA2NTMxYmE1Li42ZjQ2MjY1IDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZW1wbGF0ZXMvaW5kZXgv anMvaW5kZXguanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4 ZXMvdGVtcGxhdGVzL2luZGV4L2pzL2luZGV4LmpzCkBAIC01MSw3ICs1MSw4 IEBAIGZ1bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgQmFj a2Zvcm0sIGFsZXJ0aWZ5KSB7CiAgICAgICAgICAgY29sbHNwY25hbWU6IHVu ZGVmaW5lZCwKICAgICAgICAgICBvcF9jbGFzczogdW5kZWZpbmVkLAogICAg ICAgICAgIHNvcnRfb3JkZXI6IGZhbHNlLAotICAgICAgICAgIG51bGxzOiBm YWxzZQorICAgICAgICAgIG51bGxzOiBmYWxzZSwKKyAgICAgICAgICBpc19z b3J0X251bGxzX2FwcGxpY2FibGU6IHRydWUKICAgICAgICAgfSwKICAgICAg ICAgc2NoZW1hOiBbCiAgICAgICAgICAgewpAQCAtNzcsNyArNzgsNyBAQCBm dW5jdGlvbigkLCBfLCBTLCBwZ0FkbWluLCBwZ0Jyb3dzZXIsIEJhY2tmb3Jt LCBhbGVydGlmeSkgewogICAgICAgICAgICAgY29udHJvbDogJ25vZGUtYWph eC1vcHRpb25zJywgdXJsOiAnZ2V0X2NvbGxhdGlvbnMnLCBub2RlOiAnaW5k ZXgnCiAgICAgICAgICAgfSx7CiAgICAgICAgICAgICBpZDogJ29wX2NsYXNz JywgbGFiZWw6J3t7IF8oJ09wZXJhdG9yIGNsYXNzJykgfX0nLAotICAgICAg ICAgICAgY2VsbDogTm9kZUFqYXhPcHRpb25zRGVwc0NlbGwsCisgICAgICAg ICAgICBjZWxsOiBOb2RlQWpheE9wdGlvbnNEZXBzQ2VsbCwgdGFnczogdHJ1 ZSwKICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6ICdjaGVj a0FjY2Vzc01ldGhvZCcsCiAgICAgICAgICAgICBlZGl0YWJsZTogZnVuY3Rp b24obSkgewogICAgICAgICAgICAgICAgIC8vIEhlYWRlciBjZWxsIHRoZW4g c2tpcApAQCAtMTA4LDEzICsxMDksMTkgQEAgZnVuY3Rpb24oJCwgXywgUywg cGdBZG1pbiwgcGdCcm93c2VyLCBCYWNrZm9ybSwgYWxlcnRpZnkpIHsKICAg ICAgICAgICB9LHsKICAgICAgICAgICAgIGlkOiAnc29ydF9vcmRlcicsIGxh YmVsOid7eyBfKCdTb3J0IG9yZGVyJykgfX0nLAogICAgICAgICAgICAgY2Vs bDogQmFja2dyaWQuRXh0ZW5zaW9uLlRhYmxlQ2hpbGRTd2l0Y2hDZWxsLCB0 eXBlOiAnc3dpdGNoJywKLSAgICAgICAgICAgIGRpc2FibGVkOiAnY2hlY2tB Y2Nlc3NNZXRob2QnLAogICAgICAgICAgICAgZWRpdGFibGU6IGZ1bmN0aW9u KG0pIHsKLSAgICAgICAgICAgICAgICAvLyBIZWFkZXIgY2VsbCB0aGVuIHNr aXAKLSAgICAgICAgICAgICAgICBpZiAobSBpbnN0YW5jZW9mIEJhY2tib25l LkNvbGxlY3Rpb24pIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZh bHNlOworICAgICAgICAgICAgICAvLyBIZWFkZXIgY2VsbCB0aGVuIHNraXAK KyAgICAgICAgICAgICAgaWYgKG0gaW5zdGFuY2VvZiBCYWNrYm9uZS5Db2xs ZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAg ICAgICAgICAgaWYgKG0udG9wLmdldCgnYW1uYW1lJykgPT09ICdidHJlZScp IHsKKyAgICAgICAgICAgICAgICAgIG0uc2V0KCdpc19zb3J0X251bGxzX2Fw cGxpY2FibGUnLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgIHJldHVybiB0 cnVlOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1 cm4gIShtLmNoZWNrQWNjZXNzTWV0aG9kLmFwcGx5KHRoaXMsIGFyZ3VtZW50 cykpOworICAgICAgICAgICAgICAgIG0uc2V0KCdpc19zb3J0X251bGxzX2Fw cGxpY2FibGUnLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZh bHNlOworICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9LAogICAgICAg ICAgICAgZGVwczogWydhbW5hbWUnXSwKICAgICAgICAgICAgIG9wdGlvbnM6 IHsKQEAgLTEyNSwxMyArMTMyLDE4IEBAIGZ1bmN0aW9uKCQsIF8sIFMsIHBn QWRtaW4sIHBnQnJvd3NlciwgQmFja2Zvcm0sIGFsZXJ0aWZ5KSB7CiAgICAg ICAgICAgfSx7CiAgICAgICAgICAgICBpZDogJ251bGxzJywgbGFiZWw6J3t7 IF8oJ05VTExzJykgfX0nLAogICAgICAgICAgICAgY2VsbDogQmFja2dyaWQu RXh0ZW5zaW9uLlRhYmxlQ2hpbGRTd2l0Y2hDZWxsLCB0eXBlOiAnc3dpdGNo JywKLSAgICAgICAgICAgIGRpc2FibGVkOiAnY2hlY2tBY2Nlc3NNZXRob2Qn LAogICAgICAgICAgICAgZWRpdGFibGU6IGZ1bmN0aW9uKG0pIHsKLSAgICAg ICAgICAgICAgICAvLyBIZWFkZXIgY2VsbCB0aGVuIHNraXAKLSAgICAgICAg ICAgICAgICBpZiAobSBpbnN0YW5jZW9mIEJhY2tib25lLkNvbGxlY3Rpb24p IHsKKyAgICAgICAgICAgICAgLy8gSGVhZGVyIGNlbGwgdGhlbiBza2lwCisg ICAgICAgICAgICAgIGlmIChtIGluc3RhbmNlb2YgQmFja2JvbmUuQ29sbGVj dGlvbikgeworICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICBpZiAobS50 b3AuZ2V0KCdhbW5hbWUnKSA9PT0gJ2J0cmVlJykgeworICAgICAgICAgICAg ICAgICAgICBtLnNldCgnaXNfc29ydF9udWxsc19hcHBsaWNhYmxlJywgdHJ1 ZSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAg ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm4gIShtLmNoZWNr QWNjZXNzTWV0aG9kLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpOworICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgbS5zZXQoJ2lzX3Nv cnRfbnVsbHNfYXBwbGljYWJsZScsIGZhbHNlKTsKKyAgICAgICAgICAgICAg ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgfSwKICAgICAgICAgICAgIGRlcHM6IFsnYW1uYW1lJywgJ3NvcnRfb3Jk ZXInXSwKICAgICAgICAgICAgIG9wdGlvbnM6IHsKQEAgLTE4NCw5ICsxOTYs MTEgQEAgZnVuY3Rpb24oJCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBC YWNrZm9ybSwgYWxlcnRpZnkpIHsKICAgICAgICAgICAgIGlmKG0uZ2V0KCdz b3J0X29yZGVyJykgPT0gdHJ1ZSAmJiBtLnByZXZpb3VzKCdzb3J0X29yZGVy JykgPT0gIGZhbHNlKSB7CiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1 bmN0aW9uKCkgeyBtLnNldCgnbnVsbHMnLCB0cnVlKSB9LCAxMCk7CiAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg ICAgfQotICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgIGVsc2Ug eworICAgICAgICAgICAgbS5zZXQoJ2lzX3NvcnRfbnVsbHNfYXBwbGljYWJs ZScsIGZhbHNlKTsKKyAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIGZh bHNlOwogICAgICAgICB9LAogICAgIH0pOwogCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2V4Y2x1c2lvbl9jb25zdHJh aW50L3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL3RlbXBsYXRlcy9leGNsdXNpb25fY29uc3RyYWludC9zcWwvOS4x X3BsdXMvY3JlYXRlLnNxbAppbmRleCBkYjI5MDQ4Li42ZDBiZDFiIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2V4Y2x1 c2lvbl9jb25zdHJhaW50L3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvZXhjbHVzaW9uX2Nv bnN0cmFpbnQvc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwKQEAgLTEsNyArMSw3 IEBACiBBTFRFUiBUQUJMRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEs IGRhdGEudGFibGUpIH19CiAgICAgQUREeyUgaWYgZGF0YS5uYW1lICV9IENP TlNUUkFJTlQge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX17JSBlbmRp ZiV9IEVYQ0xVREUgeyUgaWYgZGF0YS5hbW5hbWUgYW5kIGRhdGEuYW1uYW1l ICE9ICcnICV9VVNJTkcge3tkYXRhLmFtbmFtZX19eyUgZW5kaWYgJX0gKAog ICAgIHslIGZvciBjb2wgaW4gZGF0YS5jb2x1bW5zICV9eyUgaWYgbG9vcC5p bmRleCAhPSAxICV9LAotICAgIHslIGVuZGlmICV9e3sgY29ubnxxdElkZW50 KGNvbC5jb2x1bW4pfX0geyUgaWYgY29sLm9wZXJfY2xhc3MgYW5kIGNvbC5v cGVyX2NsYXNzICE9ICcnICV9e3tjb2wub3Blcl9jbGFzc319IHslIGVuZGlm JX17JSBpZiBjb2wub3JkZXIgJX1BU0N7JSBlbHNlICV9REVTQ3slIGVuZGlm ICV9IE5VTExTIHslIGlmIGNvbC5udWxsc19vcmRlciAlfUZJUlNUeyUgZWxz ZSAlfUxBU1R7JSBlbmRpZiAlfSBXSVRIIHt7Y29sLm9wZXJhdG9yfX17JSBl bmRmb3IgJX0peyUgaWYgZGF0YS5maWxsZmFjdG9yICV9CisgICAgeyUgZW5k aWYgJX17eyBjb25ufHF0SWRlbnQoY29sLmNvbHVtbil9fXslIGlmIGNvbC5v cGVyX2NsYXNzIGFuZCBjb2wub3Blcl9jbGFzcyAhPSAnJyAlfSB7e2NvbC5v cGVyX2NsYXNzfX17JSBlbmRpZiV9eyUgaWYgY29sLm9yZGVyIGlzIGRlZmlu ZWQgYW5kIGNvbC5pc19zb3J0X251bGxzX2FwcGxpY2FibGUgJX17JSBpZiBj b2wub3JkZXIgJX0gQVNDeyUgZWxzZSAlfSBERVNDeyUgZW5kaWYgJX0gTlVM TFN7JSBlbmRpZiAlfSB7JSBpZiBjb2wubnVsbHNfb3JkZXIgaXMgZGVmaW5l ZCBhbmQgY29sLmlzX3NvcnRfbnVsbHNfYXBwbGljYWJsZSAlfXslIGlmIGNv bC5udWxsc19vcmRlciAlfUZJUlNUIHslIGVsc2UgJX1MQVNUIHslIGVuZGlm ICV9eyUgZW5kaWYgJX1XSVRIIHt7Y29sLm9wZXJhdG9yfX17JSBlbmRmb3Ig JX0peyUgaWYgZGF0YS5maWxsZmFjdG9yICV9CiAgICAgV0lUSCAoRklMTEZB Q1RPUj17e2RhdGEuZmlsbGZhY3Rvcn19KXslIGVuZGlmICV9eyUgaWYgZGF0 YS5zcGNuYW1lIGFuZCBkYXRhLnNwY25hbWUgIT0gInBnX2RlZmF1bHQiICV9 CiAKICAgICBVU0lORyBJTkRFWCBUQUJMRVNQQUNFIHt7IGNvbm58cXRJZGVu dChkYXRhLnNwY25hbWUpIH19eyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvZXhjbHVzaW9uX2NvbnN0 cmFpbnQvc3FsLzkuMl9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvdGVtcGxhdGVzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3NxbC85 LjJfcGx1cy9jcmVhdGUuc3FsCmluZGV4IGRiMjkwNDguLjZkMGJkMWIgMTAw NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvZXhj bHVzaW9uX2NvbnN0cmFpbnQvc3FsLzkuMl9wbHVzL2NyZWF0ZS5zcWwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9leGNsdXNpb25f Y29uc3RyYWludC9zcWwvOS4yX3BsdXMvY3JlYXRlLnNxbApAQCAtMSw3ICsx LDcgQEAKIEFMVEVSIFRBQkxFIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVt YSwgZGF0YS50YWJsZSkgfX0KICAgICBBRER7JSBpZiBkYXRhLm5hbWUgJX0g Q09OU1RSQUlOVCB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fXslIGVu ZGlmJX0gRVhDTFVERSB7JSBpZiBkYXRhLmFtbmFtZSBhbmQgZGF0YS5hbW5h bWUgIT0gJycgJX1VU0lORyB7e2RhdGEuYW1uYW1lfX17JSBlbmRpZiAlfSAo CiAgICAgeyUgZm9yIGNvbCBpbiBkYXRhLmNvbHVtbnMgJX17JSBpZiBsb29w LmluZGV4ICE9IDEgJX0sCi0gICAgeyUgZW5kaWYgJX17eyBjb25ufHF0SWRl bnQoY29sLmNvbHVtbil9fSB7JSBpZiBjb2wub3Blcl9jbGFzcyBhbmQgY29s Lm9wZXJfY2xhc3MgIT0gJycgJX17e2NvbC5vcGVyX2NsYXNzfX0geyUgZW5k aWYlfXslIGlmIGNvbC5vcmRlciAlfUFTQ3slIGVsc2UgJX1ERVNDeyUgZW5k aWYgJX0gTlVMTFMgeyUgaWYgY29sLm51bGxzX29yZGVyICV9RklSU1R7JSBl bHNlICV9TEFTVHslIGVuZGlmICV9IFdJVEgge3tjb2wub3BlcmF0b3J9fXsl IGVuZGZvciAlfSl7JSBpZiBkYXRhLmZpbGxmYWN0b3IgJX0KKyAgICB7JSBl bmRpZiAlfXt7IGNvbm58cXRJZGVudChjb2wuY29sdW1uKX19eyUgaWYgY29s Lm9wZXJfY2xhc3MgYW5kIGNvbC5vcGVyX2NsYXNzICE9ICcnICV9IHt7Y29s Lm9wZXJfY2xhc3N9fXslIGVuZGlmJX17JSBpZiBjb2wub3JkZXIgaXMgZGVm aW5lZCBhbmQgY29sLmlzX3NvcnRfbnVsbHNfYXBwbGljYWJsZSAlfXslIGlm IGNvbC5vcmRlciAlfSBBU0N7JSBlbHNlICV9IERFU0N7JSBlbmRpZiAlfSBO VUxMU3slIGVuZGlmICV9IHslIGlmIGNvbC5udWxsc19vcmRlciBpcyBkZWZp bmVkIGFuZCBjb2wuaXNfc29ydF9udWxsc19hcHBsaWNhYmxlICV9eyUgaWYg Y29sLm51bGxzX29yZGVyICV9RklSU1QgeyUgZWxzZSAlfUxBU1QgeyUgZW5k aWYgJX17JSBlbmRpZiAlfVdJVEgge3tjb2wub3BlcmF0b3J9fXslIGVuZGZv ciAlfSl7JSBpZiBkYXRhLmZpbGxmYWN0b3IgJX0KICAgICBXSVRIIChGSUxM RkFDVE9SPXt7ZGF0YS5maWxsZmFjdG9yfX0peyUgZW5kaWYgJX17JSBpZiBk YXRhLnNwY25hbWUgYW5kIGRhdGEuc3BjbmFtZSAhPSAicGdfZGVmYXVsdCIg JX0KIAogICAgIFVTSU5HIElOREVYIFRBQkxFU1BBQ0Uge3sgY29ubnxxdElk ZW50KGRhdGEuc3BjbmFtZSkgfX17JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9leGNsdXNpb25fY29u c3RyYWludC9zcWwvOS42X3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy90ZW1wbGF0ZXMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvc3Fs LzkuNl9wbHVzL2NyZWF0ZS5zcWwKaW5kZXggZGIyOTA0OC4uNmQwYmQxYiAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9l eGNsdXNpb25fY29uc3RyYWludC9zcWwvOS42X3BsdXMvY3JlYXRlLnNxbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2V4Y2x1c2lv bl9jb25zdHJhaW50L3NxbC85LjZfcGx1cy9jcmVhdGUuc3FsCkBAIC0xLDcg KzEsNyBAQAogQUxURVIgVEFCTEUge3sgY29ubnxxdElkZW50KGRhdGEuc2No ZW1hLCBkYXRhLnRhYmxlKSB9fQogICAgIEFERHslIGlmIGRhdGEubmFtZSAl fSBDT05TVFJBSU5UIHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19eyUg ZW5kaWYlfSBFWENMVURFIHslIGlmIGRhdGEuYW1uYW1lIGFuZCBkYXRhLmFt bmFtZSAhPSAnJyAlfVVTSU5HIHt7ZGF0YS5hbW5hbWV9fXslIGVuZGlmICV9 ICgKICAgICB7JSBmb3IgY29sIGluIGRhdGEuY29sdW1ucyAlfXslIGlmIGxv b3AuaW5kZXggIT0gMSAlfSwKLSAgICB7JSBlbmRpZiAlfXt7IGNvbm58cXRJ ZGVudChjb2wuY29sdW1uKX19IHslIGlmIGNvbC5vcGVyX2NsYXNzIGFuZCBj b2wub3Blcl9jbGFzcyAhPSAnJyAlfXt7Y29sLm9wZXJfY2xhc3N9fSB7JSBl bmRpZiV9eyUgaWYgY29sLm9yZGVyICV9QVNDeyUgZWxzZSAlfURFU0N7JSBl bmRpZiAlfSBOVUxMUyB7JSBpZiBjb2wubnVsbHNfb3JkZXIgJX1GSVJTVHsl IGVsc2UgJX1MQVNUeyUgZW5kaWYgJX0gV0lUSCB7e2NvbC5vcGVyYXRvcn19 eyUgZW5kZm9yICV9KXslIGlmIGRhdGEuZmlsbGZhY3RvciAlfQorICAgIHsl IGVuZGlmICV9e3sgY29ubnxxdElkZW50KGNvbC5jb2x1bW4pfX17JSBpZiBj b2wub3Blcl9jbGFzcyBhbmQgY29sLm9wZXJfY2xhc3MgIT0gJycgJX0ge3tj b2wub3Blcl9jbGFzc319eyUgZW5kaWYlfXslIGlmIGNvbC5vcmRlciBpcyBk ZWZpbmVkIGFuZCBjb2wuaXNfc29ydF9udWxsc19hcHBsaWNhYmxlICV9eyUg aWYgY29sLm9yZGVyICV9IEFTQ3slIGVsc2UgJX0gREVTQ3slIGVuZGlmICV9 IE5VTExTeyUgZW5kaWYgJX0geyUgaWYgY29sLm51bGxzX29yZGVyIGlzIGRl ZmluZWQgYW5kIGNvbC5pc19zb3J0X251bGxzX2FwcGxpY2FibGUgJX17JSBp ZiBjb2wubnVsbHNfb3JkZXIgJX1GSVJTVCB7JSBlbHNlICV9TEFTVCB7JSBl bmRpZiAlfXslIGVuZGlmICV9V0lUSCB7e2NvbC5vcGVyYXRvcn19eyUgZW5k Zm9yICV9KXslIGlmIGRhdGEuZmlsbGZhY3RvciAlfQogICAgIFdJVEggKEZJ TExGQUNUT1I9e3tkYXRhLmZpbGxmYWN0b3J9fSl7JSBlbmRpZiAlfXslIGlm IGRhdGEuc3BjbmFtZSBhbmQgZGF0YS5zcGNuYW1lICE9ICJwZ19kZWZhdWx0 IiAlfQogCiAgICAgVVNJTkcgSU5ERVggVEFCTEVTUEFDRSB7eyBjb25ufHF0 SWRlbnQoZGF0YS5zcGNuYW1lKSB9fXslIGVuZGlmICV9CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2luZGV4L3NxbC85 LjFfcGx1cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rl bXBsYXRlcy9pbmRleC9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbAppbmRleCAz M2FmMTk3Li5iN2JmYTUyIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvdGVtcGxhdGVzL2luZGV4L3NxbC85LjFfcGx1cy9jcmVhdGUuc3Fs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvaW5kZXgv c3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwKQEAgLTMsNyArMyw3IEBAIENSRUFU RSB7JSBpZiBkYXRhLmluZGlzdW5pcXVlICV9VU5JUVVFIHslIGVuZGlmICV9 SU5ERVggeyUgaWYgZGF0YS5pc2NvbmN1cnJlbnQKIAogeyUgaWYgbW9kZSA9 PSAnY3JlYXRlJyAlfQogICAgICh7JSBmb3IgYyBpbiBkYXRhLmNvbHVtbnMg JX17JSBpZiBsb29wLmluZGV4ICE9IDEgJX0sIHslIGVuZGlmICV9e3tjb25u fHF0SWRlbnQoYy5jb2xuYW1lKX19eyUgaWYgYy5jb2xsc3BjbmFtZSAlfSBD T0xMQVRFIHt7Yy5jb2xsc3BjbmFtZX19eyUgZW5kaWYgJX17JSBpZiBjLm9w X2NsYXNzICV9Ci0ge3tjLm9wX2NsYXNzfX17JSBlbmRpZiAlfXslIGlmIGRh dGEuYW1uYW1lIGlzIGRlZmluZWQgYW5kIGRhdGEuYW1uYW1lIG5vdCBpbiBb J2dpc3QnLCAnZ2luJ10gJX17JSBpZiBjLnNvcnRfb3JkZXIgaXMgZGVmaW5l ZCAlfXslIGlmIGMuc29ydF9vcmRlciAlfSBERVNDeyUgZWxzZSAlfSBBU0N7 JSBlbmRpZiAlfXslIGVuZGlmICV9eyUgaWYgYy5udWxscyBpcyBkZWZpbmVk ICV9IE5VTExTIHslIGlmIGMubnVsbHMgJX0KKyB7e2Mub3BfY2xhc3N9fXsl IGVuZGlmICV9eyUgaWYgZGF0YS5hbW5hbWUgaXMgZGVmaW5lZCAlfXslIGlm IGMuc29ydF9vcmRlciBpcyBkZWZpbmVkIGFuZCBjLmlzX3NvcnRfbnVsbHNf YXBwbGljYWJsZSAlfXslIGlmIGMuc29ydF9vcmRlciAlfSBERVNDeyUgZWxz ZSAlfSBBU0N7JSBlbmRpZiAlfXslIGVuZGlmICV9eyUgaWYgYy5udWxscyBp cyBkZWZpbmVkIGFuZCBjLmlzX3NvcnRfbnVsbHNfYXBwbGljYWJsZSAlfSBO VUxMUyB7JSBpZiBjLm51bGxzICV9CiBGSVJTVHslIGVsc2UgJX1MQVNUeyUg ZW5kaWYgJX17JSBlbmRpZiAlfXslIGVuZGlmICV9eyUgZW5kZm9yICV9KQog eyUgZWxzZSAlfQogeyMjIFdlIHdpbGwgZ2V0IGluZGVudGVkIGRhdGEgZnJv bSBwb3N0Z3JlcyBmb3IgY29sdW1uICMjfQo= --001a11443f846f14cf0546819f5d 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 --001a11443f846f14cf0546819f5d--