Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bP7Ei-0007PA-H7 for pgadmin-hackers@arkaria.postgresql.org; Mon, 18 Jul 2016 12:01:24 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bP7Ei-0006MP-2i for pgadmin-hackers@arkaria.postgresql.org; Mon, 18 Jul 2016 12:01:24 +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 1bP7Eg-0006JK-Ng for pgadmin-hackers@postgresql.org; Mon, 18 Jul 2016 12:01:22 +0000 Received: from mail-oi0-x235.google.com ([2607:f8b0:4003:c06::235]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1bP7EX-0005Au-0a for pgadmin-hackers@postgresql.org; Mon, 18 Jul 2016 12:01:22 +0000 Received: by mail-oi0-x235.google.com with SMTP id l65so162478210oib.1 for ; Mon, 18 Jul 2016 05:01:12 -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=Xz5BISqLZHykwy+YYtzTALEdalUkLA6G27KLHMbpVwk=; b=xVw4pbhJM291Ha6G60xaQIulZNtR40KbTunr7u3qRmI+tuP+SJsn1lIf8VUemz+PAJ JQg7edpoDsrfnJnjB2Otlj2L8z2/PnXxTTbNM8WsXNQndZDvvxYaCN4v6zV82xUjk5MI 6GN0FhMXbWOd5irjzCLeJWF6OvVJ/CWBhVhSNpSEFG5w3ConJe2ZFAhn1d+GozTP4yOL pwCme6AmA2jPXBqoTuVdfbbAWlEl398qCLlZWMlIaHzulcL0Ux/vddXKw4ysaV+RD1tJ wFFJOuzJzykoRTRUsd396JDvBFMLhGxCxpOSDE1HHE8EPG9Rw3fUqa0/svb9GeRMCdT6 Wbbw== 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=Xz5BISqLZHykwy+YYtzTALEdalUkLA6G27KLHMbpVwk=; b=Kx/E5dZFvRWwp7diR5vBWWmnN40nIBwYfVW9Q+e44QXLMfGuSexMSZYp7sjWpVO0b1 hWTtYJXlCBv2F8rhYDCIB2p3j2FEltxuHC5eRT4pUkKi95rbU52DIT/PAizsMEiPi8f2 xf5VO3kawpR2/9GVSA3KrC8KPYX9eoDyAiiXEJfDer1lyQz7grBusS9wEXJiq7VwfjUd n40HT21TmKPFmQzNz4/8wweupw3eh5b8eQ28aIJd2/uaPa3r0KGuHKcM46fRtS6RNJXB hkue/mNj/rdDcuYO4tNfi3Mmul/YaYyCCLrhleIC5nH58iMmWUfxVm+F/Orv3HdiAeCy x8mA== X-Gm-Message-State: ALyK8tLTMpweLgYKjTsQCzCYay3PjY6RZuL1fU6PEmUUxe+q4Io0/KnTvCJPHe6BIdBYO1F90j/f6yWSeEIw+34p X-Received: by 10.157.19.98 with SMTP id q31mr19928212otq.125.1468843270357; Mon, 18 Jul 2016 05:01:10 -0700 (PDT) MIME-Version: 1.0 Received: by 10.157.5.99 with HTTP; Mon, 18 Jul 2016 05:01:09 -0700 (PDT) In-Reply-To: References: <70470862-26C1-4281-838E-F2C755E5C645@enterprisedb.com> <671D8CC8-C1D8-4CC1-BC32-431C496C4C5C@enterprisedb.com> From: Harshal Dhumal Date: Mon, 18 Jul 2016 17:31:09 +0530 Message-ID: Subject: Re: PATCH: Fix the issue for saving query output as CSV To: Dave Page Cc: Neel Patel , Akshay Joshi , Murtuza Zabuawala , pgadmin-hackers Content-Type: multipart/mixed; boundary=001a1135177a5c77940537e7b9c0 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 --001a1135177a5c77940537e7b9c0 Content-Type: multipart/alternative; boundary=001a1135177a5c778e0537e7b9be --001a1135177a5c778e0537e7b9be Content-Type: text/plain; charset=UTF-8 Hi, PFA rebased patch RM1405 (version 4) Neel will be sending patch for QT issue for same functionality. -- *Harshal Dhumal* *Software Engineer* EnterpriseDB India: http://www.enterprisedb.com The Enterprise PostgreSQL Company On Mon, Jul 18, 2016 at 4:02 PM, Dave Page wrote: > Perfect, thanks! > > On Mon, Jul 18, 2016 at 11:24 AM, Neel Patel > wrote: > >> Yes. I am just testing with different OS. I will send it next 1-2 hour. >> >> Is it fine ? >> >> Thanks, >> Neel Patel >> >> On Mon, Jul 18, 2016 at 3:53 PM, Dave Page wrote: >> >>> Any chance of getting that in the next couple of hours so I can get it >>> into beta 3? >>> >>> On Mon, Jul 18, 2016 at 11:18 AM, Dave Page wrote: >>> >>>> Thanks! >>>> >>>> On Mon, Jul 18, 2016 at 10:42 AM, Neel Patel < >>>> neel.patel@enterprisedb.com> wrote: >>>> >>>>> Hi Dave, >>>>> >>>>> Yes, it will break in runtime. If we need to support downloading at >>>>> server side then we need to change the runtime code. >>>>> I will send the patch for runtime to support server side download CSV >>>>> file. >>>>> >>>>> Thanks, >>>>> Neel Patel >>>>> >>>>> On Fri, Jul 15, 2016 at 3:05 PM, Dave Page wrote: >>>>> >>>>>> Hi >>>>>> >>>>>> This seems to break downloads in the runtime. It works in Safari and >>>>>> Chrome, but in the runtime the suggested filename is >>>>>> "6980287?query=SELECT+*+FROM+pem.probe_column%0AORDER+BY+id%0AASC+&filename=probe_column.csv", >>>>>> and after changing that and hitting OK, the "Downloading file" dialogue is >>>>>> shown indefinitely. >>>>>> >>>>>> On Wed, Jul 13, 2016 at 1:16 PM, Harshal Dhumal < >>>>>> harshal.dhumal@enterprisedb.com> wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> PFA rebased patch for RM1405 >>>>>>> >>>>>>> -- >>>>>>> *Harshal Dhumal* >>>>>>> *Software Engineer* >>>>>>> >>>>>>> EnterpriseDB India: http://www.enterprisedb.com >>>>>>> The Enterprise PostgreSQL Company >>>>>>> >>>>>>> On Wed, Jul 13, 2016 at 5:15 PM, Harshal Dhumal < >>>>>>> harshal.dhumal@enterprisedb.com> wrote: >>>>>>> >>>>>>>> Yes sure >>>>>>>> >>>>>>>> -- >>>>>>>> *Harshal Dhumal* >>>>>>>> *Software Engineer* >>>>>>>> >>>>>>>> EnterpriseDB India: http://www.enterprisedb.com >>>>>>>> The Enterprise PostgreSQL Company >>>>>>>> >>>>>>>> On Wed, Jul 13, 2016 at 5:10 PM, Dave Page >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi >>>>>>>>> >>>>>>>>> Can you rebase this please? >>>>>>>>> >>>>>>>>> Thanks. >>>>>>>>> >>>>>>>>> On Mon, Jul 11, 2016 at 9:16 AM, Harshal Dhumal < >>>>>>>>> harshal.dhumal@enterprisedb.com> wrote: >>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> PFA patch for RM1405. Also to allow download in runtime we will >>>>>>>>>> still need patch >>>>>>>>>> >>>>>>>>>> sent by Neel. >>>>>>>>>> >>>>>>>>>> Changes: To download query result to CSV directly from server and >>>>>>>>>> not to use download attr. of anchor tag () as it's not support by all of >>>>>>>>>> major browsers (e.g. Safari). >>>>>>>>>> Also it's not feasible to load data in html to download if result >>>>>>>>>> set of query is very huge (in GBs). >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> *Harshal Dhumal* >>>>>>>>>> *Software Engineer* >>>>>>>>>> >>>>>>>>>> EnterpriseDB India: http://www.enterprisedb.com >>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>> >>>>>>>>>> On Wed, Jun 29, 2016 at 4:53 PM, Akshay Joshi < >>>>>>>>>> akshay.joshi@enterprisedb.com> wrote: >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Wed, Jun 29, 2016 at 3:52 PM, Murtuza Zabuawala >>>>>>>>>> zabuawala@enterprisedb.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> Yes, It will not work in runtime as well but I think Neel is >>>>>>>>>>>> working for fix in run time for this issue, We might able to fix it in run >>>>>>>>>>>> time but issue persists in Safari unless they add support in browser itself. >>>>>>>>>>>> >>>>>>>>>>>> https://webkit.org/status/#feature-download-attribute >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> > On 29-Jun-2016, at 3:40 pm, Dave Page >>>>>>>>>>>> wrote: >>>>>>>>>>>> > >>>>>>>>>>>> > On Tue, Jun 28, 2016 at 10:33 AM, Murtuza Zabuawala >>>>>>>>>>>> > wrote: >>>>>>>>>>>> >> Yes Dave, I agree that downloading files has been supported >>>>>>>>>>>> in browsers since long . >>>>>>>>>>>> >> >>>>>>>>>>>> >> But in general we send request & then receives files from >>>>>>>>>>>> web server but in our case we are fetching our data from Backbone models & >>>>>>>>>>>> then converting it to CSV format for downloading as a file at client side >>>>>>>>>>>> in browser itself. >>>>>>>>>>>> > >>>>>>>>>>>> > If Safari doesn't support client-side saving of files, then I >>>>>>>>>>>> have to >>>>>>>>>>>> > wonder if our runtime will either - both are webkit based. >>>>>>>>>>>> > >>>>>>>>>>>> > So I guess the next question to ask is; why don't we just >>>>>>>>>>>> generate the >>>>>>>>>>>> > CSV on the server side? >>>>>>>>>>>> > >>>>>>>>>>>> >>>>>>>>>>>> @Akshay, >>>>>>>>>>>> Can you please suggest on above? >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> As we already have complete data in backgrid's full >>>>>>>>>>> collection, so I have used it instead of fetching it again. >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> > -- >>>>>>>>>>>> > Dave Page >>>>>>>>>>>> > Blog: http://pgsnake.blogspot.com >>>>>>>>>>>> > Twitter: @pgsnake >>>>>>>>>>>> > >>>>>>>>>>>> > EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>>>> > The Enterprise PostgreSQL Company >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> Sent via pgadmin-hackers mailing list ( >>>>>>>>>>>> pgadmin-hackers@postgresql.org) >>>>>>>>>>>> To make changes to your subscription: >>>>>>>>>>>> http://www.postgresql.org/mailpref/pgadmin-hackers >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> *Akshay Joshi* >>>>>>>>>>> *Principal Software Engineer * >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> *Phone: +91 20-3058-9517 <%2B91%2020-3058-9517>Mobile: +91 >>>>>>>>>>> 976-788-8246* >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Dave Page >>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>> Twitter: @pgsnake >>>>>>>>> >>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Dave Page >>>>>> Blog: http://pgsnake.blogspot.com >>>>>> Twitter: @pgsnake >>>>>> >>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>> The Enterprise PostgreSQL Company >>>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> Dave Page >>>> Blog: http://pgsnake.blogspot.com >>>> Twitter: @pgsnake >>>> >>>> EnterpriseDB UK: http://www.enterprisedb.com >>>> The Enterprise PostgreSQL Company >>>> >>> >>> >>> >>> -- >>> Dave Page >>> Blog: http://pgsnake.blogspot.com >>> Twitter: @pgsnake >>> >>> EnterpriseDB UK: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >> >> > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --001a1135177a5c778e0537e7b9be Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

PFA rebased patch RM1405 (versi= on 4)

Neel will be sending patch for QT issue for same fu= nctionality.


On Mon, Jul 18, 2016 at 4:02 PM, Dave Page <= span dir=3D"ltr"><dpage@pgadmin.org> wrote:
=
Perfect, thanks!

On Mon, Jul 1= 8, 2016 at 11:24 AM, Neel Patel <neel.patel@enterprisedb.com= > wrote:
Yes. = I am just testing with different OS. I will send it next 1-2 hour.=C2=A0
Is it fine ?

Thanks,
Neel Pat= el

On Mon, Jul 18, 2016 at 3:53 PM, Dave Page &= lt;dpage@pgadmin.org= > wrote:
A= ny chance of getting that in the next couple of hours so I can get it into = beta 3?

On Mon, Jul 18, 2016 at 11:18 AM, Dave Page <dpage@pgadmin.org&g= t; wrote:
Thanks!=

O= n Mon, Jul 18, 2016 at 10:42 AM, Neel Patel <neel.patel@enterp= risedb.com> wrote:
Hi Dave,

Yes, it will break in runtime. If we n= eed to support downloading at server side then we need to change the runtim= e code.
I will send the patch for runtime to support server side = download CSV file.

Thanks,
Neel Patel

On Fri, Jul 15, 2016 at 3:05 PM, Dave Page <dpage@pgadmin.org> wrote:
Hi

=
This seems to break downloads in the runtime. It works in Safari= and Chrome, but in the runtime the suggested filename is "6980287?que= ry=3DSELECT+*+FROM+pem.probe_column%0AORDER+BY+id%0AASC+&filename=3Dpro= be_column.csv", and after changing that and hitting OK, the "Down= loading file" dialogue is shown indefinitely.

On Wed, Jul 13, 2016= at 1:16 PM, Harshal Dhumal <harshal.dhumal@enterprisedb.com= > wrote:
<= div>Hi,

PFA rebased patch for RM1405

--=C2=A0
Harshal Dhumal
Software Engineer

EnterpriseDB India:=C2=A0http://www= .enterprisedb.com
= The Enterprise Post= greSQL Company

On Wed, Jul 13, 2016 at 5:1= 5 PM, Harshal Dhumal <harshal.dhumal@enterprisedb.com>= ; wrote:
Yes sure=

--=C2=A0
Harshal Dhumal
Software Eng= ineer

EnterpriseDB India:=C2=A0http://www.enterprisedb.com
The Enterprise PostgreSQL Company

On Wed, Jul 13, 2016 at 5:1= 0 PM, Dave Page <dpage@pgadmin.org> wrote:
Hi

Can you rebase this= please?

Thanks.

On Mon, Jul 11, 2016 at 9:1= 6 AM, Harshal Dhumal <harshal.dhumal@enterprisedb.com>= ; wrote:
Hi,

PFA patch for RM1405. Also to allow download in runtime = we will still need patch sent by Neel.

Changes: To download = query result to CSV directly from server and not to use download attr. of a= nchor tag (<a>) as it's not support by all of major browsers (e.g= . Safari).
Also it's not feasible to load data in html to download i= f result set of query is very huge (in GBs).<= br>




--= =C2=A0
Harshal Dhumal
Software Engineer

EnterpriseDB India:=C2=A0http://www.enterprisedb.com
The Ente= rprise PostgreSQL Company

On Wed, Jun 29, 2016 at 4:53 PM, Akshay Josh= i <akshay.joshi@enterprisedb.com> wrote:

=
On Wed, Jun 29, 2016 at 3:52 PM, Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com> wro= te:
Yes, It will not work in runtime as w= ell but I think Neel is working for fix in run time for this issue, We migh= t able to fix it in run time but issue persists in Safari unless they add s= upport in browser itself.

https://webkit.org/status/#feature-download-att= ribute


> On 29-Jun-2016, at 3:40 pm, Dave Page <dpage@pgadmin.org> wrote:
>
> On Tue, Jun 28, 2016 at 10:33 AM, Murtuza Zabuawala
> <murtuza.zabuawala@enterprisedb.com> wrote:
>> Yes Dave, I agree that downloading files has been supported in bro= wsers since long .
>>
>> But in general we send request & then receives files from web = server but in our case we are fetching our data from Backbone models & = then converting it to CSV format for downloading as a file at client side i= n browser itself.
>
> If Safari doesn't support client-side saving of files, then I have= to
> wonder if our runtime will either - both are webkit based.
>
> So I guess the next question to ask is; why don't we just generate= the
> CSV on the server side?
>

@Akshay,
Can you please suggest on above?

=C2=A0 =C2=A0As we already have complete data in backgrid's full collection, so I have used it instead of fetching it again. =C2=A0 = =C2=A0

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



--
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers=


--
Akshay Joshi
Principal Software Enginee= r=C2=A0

=

+91 20-3058-9517
Mobile: +91 976-788-8246




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

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





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

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




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

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



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

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




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

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

--001a1135177a5c778e0537e7b9be-- --001a1135177a5c77940537e7b9c0 Content-Type: text/x-patch; charset=US-ASCII; name="RM1405_V4_download_query_result_to_csv_server_side.patch" Content-Disposition: attachment; filename="RM1405_V4_download_query_result_to_csv_server_side.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iqrzaykm0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3RlbXBs YXRlcy9kYXRhZ3JpZC9pbmRleC5odG1sIGIvd2ViL3BnYWRtaW4vdG9vbHMv ZGF0YWdyaWQvdGVtcGxhdGVzL2RhdGFncmlkL2luZGV4Lmh0bWwKaW5kZXgg ZjJmNjA4NS4uNjdjZjEwNyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9v bHMvZGF0YWdyaWQvdGVtcGxhdGVzL2RhdGFncmlkL2luZGV4Lmh0bWwKKysr IGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVtcGxhdGVzL2RhdGFn cmlkL2luZGV4Lmh0bWwKQEAgLTE4Miw2ICsxODIsNyBAQAogICAgICAgICAg ICAgPC9kaXY+CiAgICAgICAgIDwvZGl2PgogICAgICAgICA8ZGl2IGlkPSJl ZGl0b3ItcGFuZWwiPjwvZGl2PgorICAgICAgICA8aWZyYW1lIGlkPSJkb3du bG9hZC1jc3YiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjwvaWZyYW1lPgogICAg IDwvZGl2PgogPC9kaXY+CiB7JSBlbmRibG9jayAlfQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL19faW5pdF9fLnB5IGIvd2Vi L3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL19faW5pdF9fLnB5CmluZGV4IGFj YWNhMTguLjc4MjljMmMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xz L3NxbGVkaXRvci9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi90b29s cy9zcWxlZGl0b3IvX19pbml0X18ucHkKQEAgLTI4LDYgKzI4LDcgQEAgZnJv bSBwZ2FkbWluLnV0aWxzLnNxbGF1dG9jb21wbGV0ZS5hdXRvY29tcGxldGUg aW1wb3J0IFNRTEF1dG9Db21wbGV0ZQogCiBmcm9tIGNvbmZpZyBpbXBvcnQg UEdfREVGQVVMVF9EUklWRVIKIAorCiAjIGltcG9ydCB1bnF1b3RlIGZyb20g dXJsaWIgZm9yIHB5dGhvbjIueCBhbmQgcHl0aG9uMy54CiB0cnk6CiAgICAg ZnJvbSB1cmxsaWIgaW1wb3J0IHVucXVvdGUKQEAgLTEyMTUsMyArMTIxNiw1 OCBAQCBkZWYgc2F2ZV9maWxlKCk6CiAgICAgICAgICAgICAnc3RhdHVzJzog VHJ1ZSwKICAgICAgICAgfQogICAgICkKKworCitAYmx1ZXByaW50LnJvdXRl KCcvcXVlcnlfdG9vbC9kb3dubG9hZC88aW50OnRyYW5zX2lkPicsIG1ldGhv ZHM9WyJHRVQiXSkKK0Bsb2dpbl9yZXF1aXJlZAorZGVmIHN0YXJ0X3F1ZXJ5 X2Rvd25sb2FkX3Rvb2wodHJhbnNfaWQpOgorICAgIHN5bmNfY29ubiA9IE5v bmUKKyAgICBzdGF0dXMsIGVycm9yX21zZywgY29ubiwgdHJhbnNfb2JqLCBz ZXNzaW9uX29iaiA9IGNoZWNrX3RyYW5zYWN0aW9uX3N0YXR1cyh0cmFuc19p ZCkKKworICAgIGlmIHN0YXR1cyBhbmQgY29ubiBpcyBub3QgTm9uZSBcCisg ICAgICAgICAgICBhbmQgdHJhbnNfb2JqIGlzIG5vdCBOb25lIGFuZCBzZXNz aW9uX29iaiBpcyBub3QgTm9uZToKKworICAgICAgICBkYXRhID0gcmVxdWVz dC5hcmdzIGlmIHJlcXVlc3QuYXJncyBlbHNlIE5vbmUKKyAgICAgICAgdHJ5 OgorICAgICAgICAgICAgaWYgZGF0YSBhbmQgJ3F1ZXJ5JyBpbiBkYXRhOgor ICAgICAgICAgICAgICAgIHNxbCA9IGRhdGFbJ3F1ZXJ5J10KKyAgICAgICAg ICAgICAgICBjb25uX2lkID0gc3RyKHJhbmRvbS5yYW5kaW50KDEsIDk5OTk5 OTkpKQorICAgICAgICAgICAgICAgIHN5bmNfY29ubiA9IGNvbm4ubWFuYWdl ci5jb25uZWN0aW9uKAorICAgICAgICAgICAgICAgICAgICBkaWQ9dHJhbnNf b2JqLmRpZCwKKyAgICAgICAgICAgICAgICAgICAgY29ubl9pZD1jb25uX2lk LAorICAgICAgICAgICAgICAgICAgICBhdXRvX3JlY29ubmVjdD1GYWxzZSwK KyAgICAgICAgICAgICAgICAgICAgYXN5bmM9RmFsc2UKKyAgICAgICAgICAg ICAgICApCisKKyAgICAgICAgICAgICAgICBzeW5jX2Nvbm4uY29ubmVjdChh dXRvY29tbWl0PUZhbHNlKQorCisgICAgICAgICAgICAgICAgIyBUaGlzIHJl dHVybnMgZ2VuZXJhdG9yIG9mIHJlY29yZHMuCisgICAgICAgICAgICAgICAg c3RhdHVzLCBnZW4gPSBzeW5jX2Nvbm4uZXhlY3V0ZV9vbl9zZXJ2ZXJfYXNf Y3N2KHNxbCwgcmVjb3Jkcz0yMDAwKQorCisgICAgICAgICAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgY29ubi5tYW5hZ2Vy LnJlbGVhc2UoY29ubl9pZD1jb25uX2lkLCBkaWQ9dHJhbnNfb2JqLmRpZCkK KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1zdHIoZ2VuKSkKKworICAgICAgICAgICAgICAgIGRl ZiBjbGVhbnVwKCk6CisgICAgICAgICAgICAgICAgICAgIGNvbm4ubWFuYWdl ci5jb25uZWN0aW9uc1tzeW5jX2Nvbm4uY29ubl9pZF0uX3JlbGVhc2UoKQor ICAgICAgICAgICAgICAgICAgICBkZWwgY29ubi5tYW5hZ2VyLmNvbm5lY3Rp b25zW3N5bmNfY29ubi5jb25uX2lkXQorCisgICAgICAgICAgICAgICAgciA9 IFJlc3BvbnNlKGdlbigpLCBtaW1ldHlwZT0ndGV4dC9jc3YnKQorCisgICAg ICAgICAgICAgICAgaWYgJ2ZpbGVuYW1lJyBpbiBkYXRhIGFuZCBkYXRhWydm aWxlbmFtZSddICE9ICIiOgorICAgICAgICAgICAgICAgICAgICBmaWxlbmFt ZSA9IGRhdGFbJ2ZpbGVuYW1lJ10KKyAgICAgICAgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgICAgICAgICBpbXBvcnQgdGltZQorICAgICAgICAgICAg ICAgICAgICBmaWxlbmFtZSA9IHN0cihpbnQodGltZS50aW1lKCkpKSArICIu Y3N2IgorCisgICAgICAgICAgICAgICAgci5oZWFkZXJzWyJDb250ZW50LURp c3Bvc2l0aW9uIl0gPSAiYXR0YWNobWVudDtmaWxlbmFtZT17MH0iLmZvcm1h dChmaWxlbmFtZSkKKworICAgICAgICAgICAgICAgIHIuY2FsbF9vbl9jbG9z ZShjbGVhbnVwKQorCisgICAgICAgICAgICAgICAgcmV0dXJuIHIKKworICAg ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBjb25u Lm1hbmFnZXIucmVsZWFzZShjb25uX2lkPWNvbm5faWQsIGRpZD10cmFuc19v YmouZGlkKQorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1zdHIoZSkpCisgICAgZWxzZToKKyAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1nZXR0ZXh0KCJU cmFuc2FjdGlvbiBzdGF0dXMgY2hlY2sgZmFpbGVkLiIpKQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3RlbXBsYXRlcy9zcWxl ZGl0b3IvanMvc3FsZWRpdG9yLmpzIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3Fs ZWRpdG9yL3RlbXBsYXRlcy9zcWxlZGl0b3IvanMvc3FsZWRpdG9yLmpzCmlu ZGV4IDAzNmIwN2QuLjU1NDQxMzUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWlu L3Rvb2xzL3NxbGVkaXRvci90ZW1wbGF0ZXMvc3FsZWRpdG9yL2pzL3NxbGVk aXRvci5qcworKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVt cGxhdGVzL3NxbGVkaXRvci9qcy9zcWxlZGl0b3IuanMKQEAgLTI2MDIsNzYg KzI2MDIsNjMgQEAgZGVmaW5lKAogCiAgICAgICAgIC8vIFRoaXMgZnVuY3Rp b24gd2lsbCBkb3dubG9hZCB0aGUgZ3JpZCBkYXRhIGFzIENTViBmaWxlLgog ICAgICAgICBfZG93bmxvYWQ6IGZ1bmN0aW9uKCkgewotICAgICAgICAgIHZh ciBzZWxmID0gdGhpczsKLSAgICAgICAgICB2YXIgY29sbCA9IHNlbGYuY29s bGVjdGlvbi5mdWxsQ29sbGVjdGlvbiA9PT0gdW5kZWZpbmVkID8gc2VsZi5j b2xsZWN0aW9uIDogc2VsZi5jb2xsZWN0aW9uLmZ1bGxDb2xsZWN0aW9uOwot Ci0gICAgICAgICAgaWYgKHNlbGYuY29sdW1ucyAhPSB1bmRlZmluZWQgJiYK LSAgICAgICAgICAgICAgY29sbCAhPSB1bmRlZmluZWQgJiYKLSAgICAgICAg ICAgICAgY29sbC5sZW5ndGggPiAwKQotICAgICAgICAgIHsKLSAgICAgICAg ICAgIHZhciBjc3ZfY29sID0gXy5pbmRleEJ5KHNlbGYuY29sdW1ucywgJ25h bWUnKSwKLSAgICAgICAgICAgICAgICBsYWJlbHMgPSBfLnBsdWNrKHNlbGYu Y29sdW1ucywgJ2xhYmVsJyksCi0gICAgICAgICAgICAgICAga2V5cyA9IF8u cGx1Y2soc2VsZi5jb2x1bW5zLCAnbmFtZScpOwotCi0gICAgICAgICAgICAv LyBGZXRjaCB0aGUgaXRlbXMgZnJvbSBmdWxsQ29sbGVjdGlvbiBhbmQgY29u dmVydCBpdCBhcyBjc3YgZm9ybWF0Ci0gICAgICAgICAgICB2YXIgY3N2ID0g a2V5cy5qb2luKCcsJykgKyAnXG4nOwotICAgICAgICAgICAgY3N2ICs9IGNv bGwubWFwKGZ1bmN0aW9uKGl0ZW0pIHsKLSAgICAgICAgICAgICAgICByZXR1 cm4gXy5tYXAoa2V5cywgZnVuY3Rpb24oa2V5KSB7Ci0gICAgICAgICAgICAg ICAgICB2YXIgY2VsbCA9IGNzdl9jb2wgW2tleV0uY2VsbCwKLSAgICAgICAg ICAgICAgICAgICAgICAvLyBzdXBwb3NlIHlvdSB3YW50IHRvIHByZXNlcnZl IGN1c3RvbSBmb3JtYXR0ZXJzCi0gICAgICAgICAgICAgICAgICAgICAgZm9y bWF0dGVyID0gY2VsbC5wcm90b3R5cGUgJiYgY2VsbC5wcm90b3R5cGUuZm9y bWF0dGVyOwotCi0gICAgICAgICAgICAgICAgICByZXR1cm4gZm9ybWF0dGVy ICYmIGZvcm1hdHRlci5mcm9tUmF3ID8KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmb3JtYXR0ZXIuZnJvbVJhdyhpdGVtLmdldChrZXkpLCBpdGVt KSA6IGl0ZW0uZ2V0KGtleSk7Ci0gICAgICAgICAgICAgICAgfSkuam9pbign LCcpOwotICAgICAgICAgICAgfSkuam9pbignXG4nKTsKLQotICAgICAgICAg ICAgLy8gRG93bmxvYWQgdGhlIGZpbGUuCi0gICAgICAgICAgICB2YXIgZW5j b2RlZFVyaSA9IGVuY29kZVVSSSgnZGF0YTp0ZXh0L2NzdiZjaGFyc2V0PXV0 Zi04JmZpbGVuYW1lPWRvd25sb2FkLmNzdiZ2YWx1ZT0nICsgY3N2KSwKLSAg ICAgICAgICAgICAgICAgICAgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l bnQoJ2EnKTsKLSAgICAgICAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdocmVm JywgZW5jb2RlZFVyaSk7Ci0KLSAgICAgICAgICAgIC8qIElmIGRvd25sb2Fk IGlzIGZyb20gdmlldyBkYXRhIHRoZW4gZmlsZSBuYW1lIHNob3VsZCBiZQot ICAgICAgICAgICAgICogdGhlIG9iamVjdCBuYW1lIGZvciB3aGljaCBkYXRh IGlzIHRvIGJlIGRpc3BsYXllZC4KLSAgICAgICAgICAgICAqLwotICAgICAg ICAgICAgaWYgKCFzZWxmLmlzX3F1ZXJ5X3Rvb2wpIHsKLSAgICAgICAgICAg ICAgJC5hamF4KHsKLSAgICAgICAgICAgICAgICB1cmw6ICJ7eyB1cmxfZm9y KCdzcWxlZGl0b3IuaW5kZXgnKSB9fSIgKyAib2JqZWN0L2dldC8iICsgc2Vs Zi50cmFuc0lkLAotICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsCi0g ICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24ocmVzKSB7Ci0gICAg ICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuc3RhdHVzKSB7Ci0gICAgICAg ICAgICAgICAgICAgIGZpbGVuYW1lID0gcmVzLmRhdGEucmVzdWx0ICsgJy5j c3YnOwotICAgICAgICAgICAgICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZSgn ZG93bmxvYWQnLCBmaWxlbmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgIGxp bmsuY2xpY2soKTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg ICAgICB9LAotICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihlKSB7 Ci0gICAgICAgICAgICAgICAgICBpZiAoZS5yZWFkeVN0YXRlID09IDApIHsK LSAgICAgICAgICAgICAgICAgICAgYWxlcnRpZnkuYWxlcnQoJ0dldCBPYmpl Y3QgTmFtZSBFcnJvcicsCi0gICAgICAgICAgICAgICAgICAgICAne3sgXygn Tm90IGNvbm5lY3RlZCB0byB0aGUgc2VydmVyIG9yIHRoZSBjb25uZWN0aW9u IHRvIHRoZSBzZXJ2ZXIgaGFzIGJlZW4gY2xvc2VkLicpIH19JwotICAgICAg ICAgICAgICAgICAgICApOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47 Ci0gICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgdmFyIHNlbGYgPSB0 aGlzLAorICAgICAgICAgIHNlbGVjdGVkX2NvZGUgPSBzZWxmLmdyaWRWaWV3 LnF1ZXJ5X3Rvb2xfb2JqLmdldFNlbGVjdGlvbigpLAorICAgICAgICAgIHNx bCA9ICIiOwogCi0gICAgICAgICAgICAgICAgICB2YXIgbXNnID0gZS5yZXNw b25zZVRleHQ7Ci0gICAgICAgICAgICAgICAgICBpZiAoZS5yZXNwb25zZUpT T04gIT0gdW5kZWZpbmVkICYmCi0gICAgICAgICAgICAgICAgICAgICAgZS5y ZXNwb25zZUpTT04uZXJyb3Jtc2cgIT0gdW5kZWZpbmVkKQotICAgICAgICAg ICAgICAgICAgICBtc2cgPSBlLnJlc3BvbnNlSlNPTi5lcnJvcm1zZzsKKyAg ICAgICAgICBpZiAoc2VsZWN0ZWRfY29kZS5sZW5ndGggPiAwKQorICAgICAg ICAgICAgc3FsID0gc2VsZWN0ZWRfY29kZTsKKyAgICAgICAgICBlbHNlCisg ICAgICAgICAgICBzcWwgPSBzZWxmLmdyaWRWaWV3LnF1ZXJ5X3Rvb2xfb2Jq LmdldFZhbHVlKCk7CiAKLSAgICAgICAgICAgICAgICAgIGFsZXJ0aWZ5LmFs ZXJ0KCdHZXQgT2JqZWN0IE5hbWUgRXJyb3InLCBtc2cpOworICAgICAgICAg IC8vIElmIGl0IGlzIGFuIGVtcHR5IHF1ZXJ5LCBkbyBub3RoaW5nLgorICAg ICAgICAgIGlmIChzcWwubGVuZ3RoIDw9IDApIHJldHVybjsKKworICAgICAg ICAgIC8qIElmIGRvd25sb2FkIGlzIGZyb20gdmlldyBkYXRhIHRoZW4gZmls ZSBuYW1lIHNob3VsZCBiZQorICAgICAgICAgICAqIHRoZSBvYmplY3QgbmFt ZSBmb3Igd2hpY2ggZGF0YSBpcyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICAg ICAgICovCisgICAgICAgICAgaWYgKCFzZWxmLmlzX3F1ZXJ5X3Rvb2wpIHsK KyAgICAgICAgICAgICQuYWpheCh7CisgICAgICAgICAgICAgIHVybDogInt7 IHVybF9mb3IoJ3NxbGVkaXRvci5pbmRleCcpIH19IiArICJvYmplY3QvZ2V0 LyIgKyBzZWxmLnRyYW5zSWQsCisgICAgICAgICAgICAgIG1ldGhvZDogJ0dF VCcsCisgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykgewor ICAgICAgICAgICAgICAgIGlmIChyZXMuZGF0YS5zdGF0dXMpIHsKKyAgICAg ICAgICAgICAgICAgIGZpbGVuYW1lID0gcmVzLmRhdGEucmVzdWx0ICsgJy5j c3YnOworICAgICAgICAgICAgICAgICAgc2VsZi5fdHJpZ2dlcl9jc3ZfZG93 bmxvYWQoc3FsLCBmaWxlbmFtZSk7CisgICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9u KGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoZS5yZWFkeVN0YXRlID09IDAp IHsKKyAgICAgICAgICAgICAgICAgIGFsZXJ0aWZ5LmFsZXJ0KCdHZXQgT2Jq ZWN0IE5hbWUgRXJyb3InLAorICAgICAgICAgICAgICAgICAgICd7eyBfKCdO b3QgY29ubmVjdGVkIHRvIHRoZSBzZXJ2ZXIgb3IgdGhlIGNvbm5lY3Rpb24g dG8gdGhlIHNlcnZlciBoYXMgYmVlbiBjbG9zZWQuJykgfX0nCisgICAgICAg ICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAg ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg ICB9Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgdmFyIGN1 cl90aW1lID0gbmV3IERhdGUoKTsKLSAgICAgICAgICAgICAgdmFyIGZpbGVu YW1lID0gJ2RhdGEtJyArIGN1cl90aW1lLmdldFRpbWUoKSArICcuY3N2JzsK LSAgICAgICAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywg ZmlsZW5hbWUpOwotICAgICAgICAgICAgICBsaW5rLmNsaWNrKCk7Ci0gICAg ICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIGVsc2UgewotICAg ICAgICAgICAgYWxlcnRpZnkuYWxlcnQoJ0Rvd25sb2FkIERhdGEnLCAnTm8g ZGF0YSBpcyBhdmFpbGFibGUgdG8gZG93bmxvYWQnKTsKLSAgICAgICAgICB9 CisKKyAgICAgICAgICAgICAgICB2YXIgbXNnID0gZS5yZXNwb25zZVRleHQ7 CisgICAgICAgICAgICAgICAgaWYgKGUucmVzcG9uc2VKU09OICE9IHVuZGVm aW5lZCAmJgorICAgICAgICAgICAgICAgICAgICBlLnJlc3BvbnNlSlNPTi5l cnJvcm1zZyAhPSB1bmRlZmluZWQpCisgICAgICAgICAgICAgICAgICBtc2cg PSBlLnJlc3BvbnNlSlNPTi5lcnJvcm1zZzsKKworICAgICAgICAgICAgICAg IGFsZXJ0aWZ5LmFsZXJ0KCdHZXQgT2JqZWN0IE5hbWUgRXJyb3InLCBtc2cp OworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAg ICAgfQorICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHZhciBjdXJf dGltZSA9IG5ldyBEYXRlKCk7CisgICAgICAgICAgICB2YXIgZmlsZW5hbWUg PSAnZGF0YS0nICsgY3VyX3RpbWUuZ2V0VGltZSgpICsgJy5jc3YnOworICAg ICAgICAgICAgc2VsZi5fdHJpZ2dlcl9jc3ZfZG93bmxvYWQoc3FsLCBmaWxl bmFtZSk7CisgICAgICAgICAgIH0KKworICAgICAgICB9LAorICAgICAgICAv LyBUcmlnZ2VyIHF1ZXJ5IHJlc3VsdCBkb3dubG9hZCB0byBjc3YuCisgICAg ICAgIF90cmlnZ2VyX2Nzdl9kb3dubG9hZDogZnVuY3Rpb24ocXVlcnksIGZp bGVuYW1lKSB7CisgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzLAorICAgICAg ICAgICAgbGluayA9ICQodGhpcy5jb250YWluZXIpLmZpbmQoIiNkb3dubG9h ZC1jc3YiKSwKKyAgICAgICAgICAgIHVybCA9ICJ7eyB1cmxfZm9yKCdzcWxl ZGl0b3IuaW5kZXgnKSB9fSIgKyAicXVlcnlfdG9vbC9kb3dubG9hZC8iICsg c2VsZi50cmFuc0lkOworCisgICAgICAgICAgdXJsICs9Ij8iICsgJC5wYXJh bSh7cXVlcnk6cXVlcnksIGZpbGVuYW1lOmZpbGVuYW1lfSk7CisgICAgICAg ICAgbGluay5hdHRyKCJzcmMiLCB1cmwpOwogICAgICAgICB9LAogCiAgICAg ICAgIF9hdXRvX3JvbGxiYWNrOiBmdW5jdGlvbigpIHsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3BnMi9fX2luaXRfXy5w eSBiL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3BnMi9fX2luaXRf Xy5weQppbmRleCBlYzBhOGZjLi43YjkwMWQ0IDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi91dGlscy9kcml2ZXIvcHN5Y29wZzIvX19pbml0X18ucHkKKysr IGIvd2ViL3BnYWRtaW4vdXRpbHMvZHJpdmVyL3BzeWNvcGcyL19faW5pdF9f LnB5CkBAIC0xNyw2ICsxNyw4IEBAIGltcG9ydCBkYXRldGltZQogaW1wb3J0 IG9zCiBpbXBvcnQgcmFuZG9tCiBpbXBvcnQgc2VsZWN0CitpbXBvcnQgc3lz CitpbXBvcnQgY3N2CiAKIGltcG9ydCBwc3ljb3BnMgogaW1wb3J0IHBzeWNv cGcyLmV4dHJhcwpAQCAtMzIsNiArMzQsMTEgQEAgZnJvbSAua2V5d29yZHMg aW1wb3J0IFNjYW5LZXl3b3JkCiBmcm9tIC4uYWJzdHJhY3QgaW1wb3J0IEJh c2VEcml2ZXIsIEJhc2VDb25uZWN0aW9uCiBmcm9tIC5jdXJzb3IgaW1wb3J0 IERpY3RDdXJzb3IKIAoraWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCk6Cisg ICAgZnJvbSBTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8KK2Vsc2U6CisgICAg ZnJvbSBpbyBpbXBvcnQgU3RyaW5nSU8KKwogXyA9IGdldHRleHQKIAogQVNZ TkNfV0FJVF9USU1FT1VUID0gMC4wMSAgIyBpbiBzZWNvbmRzIG9yIDEwIG1p bGxpc2Vjb25kcwpAQCAtMjg0LDcgKzI5MSwxMCBAQCBGYWlsZWQgdG8gY29u bmVjdCB0byB0aGUgZGF0YWJhc2Ugc2VydmVyKCN7c2VydmVyX2lkfSkgZm9y IGNvbm5lY3Rpb24gKHtjb25uX2lkfQogICAgICAgICAjIGF1dG9jb21taXQg ZmxhZyBkb2VzIG5vdCB3b3JrIHdpdGggYXN5bmNocm9ub3VzIGNvbm5lY3Rp b25zLgogICAgICAgICAjIEJ5IGRlZmF1bHQgYXN5bmNocm9ub3VzIGNvbm5l Y3Rpb24gcnVucyBpbiBhdXRvY29tbWl0IG1vZGUuCiAgICAgICAgIGlmIHNl bGYuYXN5bmMgPT0gMDoKLSAgICAgICAgICAgIHNlbGYuY29ubi5hdXRvY29t bWl0ID0gVHJ1ZQorICAgICAgICAgICAgaWYgJ2F1dG9jb21taXQnIGluIGt3 YXJncyBhbmQga3dhcmdzWydhdXRvY29tbWl0J10gPT0gRmFsc2U6CisgICAg ICAgICAgICAgICAgc2VsZi5jb25uLmF1dG9jb21taXQgPSBGYWxzZQorICAg ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLmNvbm4uYXV0 b2NvbW1pdCA9IFRydWUKICAgICAgICAgICAgIHJlZ2lzdGVyX2RhdGVfdHlw ZWNhc3RlcnMoc2VsZi5jb25uKQogCiAgICAgICAgIHN0YXR1cywgcmVzID0g c2VsZi5leGVjdXRlX3NjYWxhcigiIiIKQEAgLTM4NCwxMSArMzk0LDEyIEBA IFdIRVJFCiAKICAgICAgICAgcmV0dXJuIFRydWUsIE5vbmUKIAotICAgIGRl ZiBfX2N1cnNvcihzZWxmKToKKyAgICBkZWYgX19jdXJzb3Ioc2VsZiwgc2Vy dmVyX2N1cnNvcj1GYWxzZSk6CiAgICAgICAgIGN1ciA9IGdldGF0dHIoZywg c3RyKHNlbGYubWFuYWdlci5zaWQpICsgJyMnICsgc2VsZi5jb25uX2lkLCBO b25lKQogCiAgICAgICAgIGlmIHNlbGYuY29ubmVjdGVkKCkgYW5kIGN1ciBh bmQgbm90IGN1ci5jbG9zZWQ6Ci0gICAgICAgICAgICByZXR1cm4gVHJ1ZSwg Y3VyCisgICAgICAgICAgICBpZiBub3Qgc2VydmVyX2N1cnNvciBvciAoc2Vy dmVyX2N1cnNvciBhbmQgY3VyLm5hbWUpOgorICAgICAgICAgICAgICAgIHJl dHVybiBUcnVlLCBjdXIKIAogICAgICAgICBpZiBub3Qgc2VsZi5jb25uZWN0 ZWQoKToKICAgICAgICAgICAgIHN0YXR1cyA9IEZhbHNlCkBAIC00MTksNyAr NDMwLDEzIEBAIEF0dGVtcHQgdG8gcmVjb25uZWN0IGZhaWxlZCB3aXRoIHRo ZSBlcnJvcjoKICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UsIG1zZwog CiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIGN1ciA9IHNlbGYuY29ubi5j dXJzb3IoY3Vyc29yX2ZhY3Rvcnk9RGljdEN1cnNvcikKKyAgICAgICAgICAg IGlmIHNlcnZlcl9jdXJzb3I6CisgICAgICAgICAgICAgICAgIyBQcm92aWRp bmcgbmFtZSB0byBjdXJzb3Igd2lsbCBjcmVhdGUgc2VydmVyIHNpZGUgY3Vy c29yLgorICAgICAgICAgICAgICAgIGN1cnNvcl9uYW1lID0gIkNVUlNPUjp7 MH0iLmZvcm1hdChzZWxmLmNvbm5faWQpCisgICAgICAgICAgICAgICAgY3Vy ID0gc2VsZi5jb25uLmN1cnNvcihuYW1lPWN1cnNvcl9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yX2ZhY3Rv cnk9RGljdEN1cnNvcikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg ICAgICAgY3VyID0gc2VsZi5jb25uLmN1cnNvcihjdXJzb3JfZmFjdG9yeT1E aWN0Q3Vyc29yKQogICAgICAgICBleGNlcHQgcHN5Y29wZzIuRXJyb3IgYXMg cGU6CiAgICAgICAgICAgICBlcnJtc2cgPSBnZXR0ZXh0KCIiIgogRmFpbGVk IHRvIGNyZWF0ZSBjdXJzb3IgZm9yIHBzeWNvcGcyIGNvbm5lY3Rpb24gd2l0 aCBlcnJvciBtZXNzYWdlIGZvciB0aGUgXApAQCAtNDcxLDYgKzQ4OCw3NiBA QCBBdHRlbXB0IHRvIHJlY29ubmVjdCBpdCBmYWlsZWQgd2l0aCB0aGUgZXJy b3I6CiAgICAgICAgIGlmIHNlbGYuYXN5bmMgPT0gMToKICAgICAgICAgICAg IHNlbGYuX3dhaXQoY3VyLmNvbm5lY3Rpb24pCiAKKworICAgIGRlZiBleGVj dXRlX29uX3NlcnZlcl9hc19jc3Yoc2VsZiwgcXVlcnksIHBhcmFtcz1Ob25l LCBmb3JtYXR0ZWRfZXhjZXB0aW9uX21zZz1GYWxzZSwgcmVjb3Jkcz0yMDAw KToKKyAgICAgICAgc3RhdHVzLCBjdXIgPSBzZWxmLl9fY3Vyc29yKHNlcnZl cl9jdXJzb3I9VHJ1ZSkKKyAgICAgICAgc2VsZi5yb3dfY291bnQgPSAwCisK KyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBG YWxzZSwgc3RyKGN1cikKKyAgICAgICAgcXVlcnlfaWQgPSByYW5kb20ucmFu ZGludCgxLCA5OTk5OTk5KQorCisgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dl ci5sb2coMjUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4 ZWN1dGUgKHdpdGggc2VydmVyIGN1cnNvcikgZm9yIHNlcnZlciAje3NlcnZl cl9pZH0gLSB7Y29ubl9pZH0gKFF1ZXJ5LWlkOiB7cXVlcnlfaWR9KTpcbntx dWVyeX0iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyX2lkPXNlbGYubWFuYWdlci5zaWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5faWQ9c2VsZi5jb25uX2lk LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeT1x dWVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVl cnlfaWQ9cXVlcnlfaWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAg ICB0cnk6CisgICAgICAgICAgICBzZWxmLl9faW50ZXJuYWxfYmxvY2tpbmdf ZXhlY3V0ZShjdXIsIHF1ZXJ5LCBwYXJhbXMpCisgICAgICAgIGV4Y2VwdCBw c3ljb3BnMi5FcnJvciBhcyBwZToKKyAgICAgICAgICAgIGN1ci5jbG9zZSgp CisgICAgICAgICAgICBlcnJtc2cgPSBzZWxmLl9mb3JtYXR0ZWRfZXhjZXB0 aW9uX21zZyhwZSwgZm9ybWF0dGVkX2V4Y2VwdGlvbl9tc2cpCisgICAgICAg ICAgICBjdXJyZW50X2FwcC5sb2dnZXIuZXJyb3IoCisgICAgICAgICAgICAg ICAgIkZhaWxlZCB0byBleGVjdXRlIHF1ZXJ5ICgod2l0aCBzZXJ2ZXIgY3Vy c29yKSBmb3IgdGhlIHNlcnZlciAje3NlcnZlcl9pZH0gLSB7Y29ubl9pZH0g KFF1ZXJ5LWlkOiB7cXVlcnlfaWR9KTpcbkVycm9yIE1lc3NhZ2U6e2Vycm1z Z30iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkPXNl bGYubWFuYWdlci5zaWQsCisgICAgICAgICAgICAgICAgICAgIGNvbm5faWQ9 c2VsZi5jb25uX2lkLAorICAgICAgICAgICAgICAgICAgICBxdWVyeT1xdWVy eSwKKyAgICAgICAgICAgICAgICAgICAgZXJybXNnPWVycm1zZywKKyAgICAg ICAgICAgICAgICAgICAgcXVlcnlfaWQ9cXVlcnlfaWQKKyAgICAgICAgICAg ICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICByZXR1cm4gRmFs c2UsIGVycm1zZworCisgICAgICAgIGRlZiBnZW4oKToKKworICAgICAgICAg ICAgcmVzdWx0cyA9IGN1ci5mZXRjaG1hbnkocmVjb3JkcykKKyAgICAgICAg ICAgIGlmIG5vdCByZXN1bHRzOgorICAgICAgICAgICAgICAgIGlmIG5vdCBj dXIuY2xvc2VkOgorICAgICAgICAgICAgICAgICAgICBjdXIuY2xvc2UoKQor ICAgICAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICAgICBoZWFkZXIg PSBbYy50b19kaWN0KClbJ25hbWUnXSBmb3IgYyBpbiBjdXIub3JkZXJlZF9k ZXNjcmlwdGlvbigpXQorCisgICAgICAgICAgICByZXNfaW8gPSBTdHJpbmdJ TygpCisKKyAgICAgICAgICAgIGNzdl93cml0ZXIgPSBjc3YuRGljdFdyaXRl cigKKyAgICAgICAgICAgICAgICByZXNfaW8sIGZpZWxkbmFtZXM9aGVhZGVy LCBkZWxpbWl0ZXI9c3RyKCcsJyksIHF1b3Rpbmc9Y3N2LlFVT1RFX05PTk5V TUVSSUMKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIGNzdl93cml0ZXIu d3JpdGVoZWFkZXIoKQorICAgICAgICAgICAgY3N2X3dyaXRlci53cml0ZXJv d3MocmVzdWx0cykKKworICAgICAgICAgICAgeWllbGQgcmVzX2lvLmdldHZh bHVlKCkuc3RyaXAoc3RyKCdcclxuJykpCisKKyAgICAgICAgICAgIHdoaWxl IFRydWU6CisgICAgICAgICAgICAgICAgcmVzdWx0cyA9IGN1ci5mZXRjaG1h bnkocmVjb3JkcykKKworICAgICAgICAgICAgICAgIGlmIG5vdCByZXN1bHRz OgorICAgICAgICAgICAgICAgICAgICBpZiBub3QgY3VyLmNsb3NlZDoKKyAg ICAgICAgICAgICAgICAgICAgICAgIGN1ci5jbG9zZSgpCisgICAgICAgICAg ICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgcmVzX2lvID0gU3Ry aW5nSU8oKQorCisgICAgICAgICAgICAgICAgY3N2X3dyaXRlciA9IGNzdi5E aWN0V3JpdGVyKAorICAgICAgICAgICAgICAgICAgICByZXNfaW8sIGZpZWxk bmFtZXM9aGVhZGVyLCBkZWxpbWl0ZXI9c3RyKCcsJyksIHF1b3Rpbmc9Y3N2 LlFVT1RFX05PTk5VTUVSSUMKKyAgICAgICAgICAgICAgICApCisgICAgICAg ICAgICAgICAgY3N2X3dyaXRlci53cml0ZXJvd3MocmVzdWx0cykKKyAgICAg ICAgICAgICAgICB5aWVsZCByZXNfaW8uZ2V0dmFsdWUoKS5zdHJpcChzdHIo J1xyXG4nKSkKKworICAgICAgICByZXR1cm4gVHJ1ZSwgZ2VuCisKICAgICBk ZWYgZXhlY3V0ZV9zY2FsYXIoc2VsZiwgcXVlcnksIHBhcmFtcz1Ob25lLCBm b3JtYXR0ZWRfZXhjZXB0aW9uX21zZz1GYWxzZSk6CiAgICAgICAgIHN0YXR1 cywgY3VyID0gc2VsZi5fX2N1cnNvcigpCiAgICAgICAgIHNlbGYucm93X2Nv dW50ID0gMApAQCAtMTE1MSw3ICsxMjM4LDggQEAgY2xhc3MgU2VydmVyTWFu YWdlcihvYmplY3QpOgogICAgICAgICByYWlzZSBFeGNlcHRpb24oIkluZm9y bWF0aW9uIGlzIG5vdCBhdmFpbGFibGUuIikKIAogICAgIGRlZiBjb25uZWN0 aW9uKAotICAgICAgICAgICAgc2VsZiwgZGF0YWJhc2U9Tm9uZSwgY29ubl9p ZD1Ob25lLCBhdXRvX3JlY29ubmVjdD1UcnVlLCBkaWQ9Tm9uZQorICAgICAg ICAgICAgc2VsZiwgZGF0YWJhc2U9Tm9uZSwgY29ubl9pZD1Ob25lLCBhdXRv X3JlY29ubmVjdD1UcnVlLCBkaWQ9Tm9uZSwKKyAgICAgICAgICAgIGFzeW5j PU5vbmUKICAgICApOgogICAgICAgICBtc2dfYWN0aXZlX2Nvbm4gPSBnZXR0 ZXh0KAogICAgICAgICAgICAgIlNlcnZlciBoYXMgbm8gYWN0aXZlIGNvbm5l Y3Rpb24uIFBsZWFzZSBjb25uZWN0IHRvIHRoZSBzZXJ2ZXIuIgpAQCAtMTE5 Nyw3ICsxMjg1LDEwIEBAIFdIRVJFIGRiLm9pZCA9IHswfSIiIi5mb3JtYXQo ZGlkKSkKICAgICAgICAgaWYgbXlfaWQgaW4gc2VsZi5jb25uZWN0aW9uczoK ICAgICAgICAgICAgIHJldHVybiBzZWxmLmNvbm5lY3Rpb25zW215X2lkXQog ICAgICAgICBlbHNlOgotICAgICAgICAgICAgYXN5bmMgPSAxIGlmIGNvbm5f aWQgaXMgbm90IE5vbmUgZWxzZSAwCisgICAgICAgICAgICBpZiBhc3luYyBp cyBOb25lOgorICAgICAgICAgICAgICAgIGFzeW5jID0gMSBpZiBjb25uX2lk IGlzIG5vdCBOb25lIGVsc2UgMAorICAgICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICAgICBhc3luYyA9IDEgaWYgYXN5bmMgaXMgVHJ1ZSBlbHNlIDAK ICAgICAgICAgICAgIHNlbGYuY29ubmVjdGlvbnNbbXlfaWRdID0gQ29ubmVj dGlvbigKICAgICAgICAgICAgICAgICBzZWxmLCBteV9pZCwgZGF0YWJhc2Us IGF1dG9fcmVjb25uZWN0LCBhc3luYwogICAgICAgICAgICAgKQo= --001a1135177a5c77940537e7b9c0 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 --001a1135177a5c77940537e7b9c0--