Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1belY4-0006ME-Ro for pgadmin-hackers@arkaria.postgresql.org; Tue, 30 Aug 2016 16:06:05 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1belY4-0008F9-Ee for pgadmin-hackers@arkaria.postgresql.org; Tue, 30 Aug 2016 16:06:04 +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 1belXp-0007yO-Mg for pgadmin-hackers@postgresql.org; Tue, 30 Aug 2016 16:05:49 +0000 Received: from mail-it0-x233.google.com ([2607:f8b0:4001:c0b::233]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1belXk-0005hI-OE for pgadmin-hackers@postgresql.org; Tue, 30 Aug 2016 16:05:49 +0000 Received: by mail-it0-x233.google.com with SMTP id x131so173011467ite.0 for ; Tue, 30 Aug 2016 09:05:44 -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=MD/u9fvVkcrpYzjsXv6mkFhzGsD/9u+FN3yaBFFczrs=; b=S7FQvju9hbWNc5DSmsCtasxHLl2Yp8HNiJBG3upYgHaK3ZRUXes5ix+XwIOvWFkWTP 1FWNRjvu00VBTCfGoBGOXcJF2V2NCNGL0vba4rtscDFwl0o/GjGYTHEAg9WbDa9odehB /9QCu2rdQbtdQ7mnhEIDbeyoomxdZFOXEWieCyGYxlhfwISvnWJnNnF7KJnV2zzyxe8f 1fCXkuFbK8/q9mXaaJCjySptcE0mx2ou8yHsHy3+8J+F7IJJwqxqmflT1bUUVSdZSj6x BPqb47hlwV6awV9MfZfDX0qVWat31AKKWw+kOvExko3T4ObLuH8GA/o7nHM1yM159qzU BGOQ== 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=MD/u9fvVkcrpYzjsXv6mkFhzGsD/9u+FN3yaBFFczrs=; b=nEEByogbOnky13tx6xEHPiiLJy2YkXTd728dEWnHYafol00Fwt4fHg9QFLNFYCrWeM FsuOe1PcBThYl1UTJ3Bw57XyQ341P/ztV+gVWrhrLdH2AYqjNJ+jLAujuIKhgX/gJS9T HXn0DGF58CGtUf2PquLo7ATUvihAgnJMTEFhR5aeJ3Tc+jPz5dSuEZTv52qYxopz5jrr zNSn6FW5qofFC8vczH7/SrPoAYTCOO38YGZeHOvHgyuRiPcW1jri3Q/zHfpZk1hubb5G WlnLoGItfCGw26dSqQU24GzWkoueVLhX6r9Lyh29M9cVNcHhPcq7Zfb5vqi2KzkyHEW2 t1Dw== X-Gm-Message-State: AE9vXwM6cT29k3wWRNsQadw7p2qPf4bOc4o9SX3z7azN0xRi2D9B/ZlCWBxSc1cbB5kIJVtF5ID1lHMLsdcOVMEW X-Received: by 10.36.124.141 with SMTP id a135mr6896718itd.25.1472573143087; Tue, 30 Aug 2016 09:05:43 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.6.76 with HTTP; Tue, 30 Aug 2016 09:05:22 -0700 (PDT) In-Reply-To: References: From: Ashesh Vashi Date: Tue, 30 Aug 2016 21:35:22 +0530 Message-ID: Subject: Re: RM#1387 [Add-on PATCH] Bad handling of missing connection database server To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a114a967a19afb6053b4c2773 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 --001a114a967a19afb6053b4c2773 Content-Type: multipart/alternative; boundary=001a114a967a19afb2053b4c2771 --001a114a967a19afb2053b4c2771 Content-Type: text/plain; charset=UTF-8 On Tue, Aug 30, 2016 at 7:16 PM, Ashesh Vashi wrote: > Hi Dave, > > Please find the add-on patch on top of the current change. > > Can you please take a look at it? > This mainly works on the postgres driver to make an attempt to reconnect > the server. > One more attempt with some more corner cases handling. * Handled the connection-lost, and object gone error on client side during 'refresh' operation. * Handle the reconnection more consistently (even during cursor object creation). Please take a look at it. -- Thanks & Regards, Ashesh Vashi EnterpriseDB INDIA: Enterprise PostgreSQL Company *http://www.linkedin.com/in/asheshvashi* > > -- > > Thanks & Regards, > > Ashesh Vashi > EnterpriseDB INDIA: Enterprise PostgreSQL Company > > > > *http://www.linkedin.com/in/asheshvashi* > > --001a114a967a19afb2053b4c2771 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
On Tue, Aug 30, 2016 at 7:16 PM, Ashesh Vashi <ashesh.vashi@enterprisedb.com> wrote:
Hi Dave,

Please f= ind the add-on patch on top of the current change.

Can you please take a look at it?
This mainly works on the postg= res driver to make an attempt to reconnect the server.

One more attempt with some more corner cases handling.* Handled the connection-lost, and object gone error on client side duri= ng 'refresh' operation.
* Handle the reconnection more co= nsistently (even during cursor object creation).

P= lease take a look at it.

<= span style=3D"font-family:"courier new",monospace">--

Thanks & Regards,

Ashesh Vashi
Ente= rpriseDB INDIA:=C2=A0Enterprise PostgreSQL Company


http://www.linkedin.com/in/asheshvashi

=

--

Thanks & Regards,

A= shesh Vashi
EnterpriseDB INDIA: Enterprise PostgreSQL Company


http://www.linkedin.com/in/asheshvashi


--001a114a967a19afb2053b4c2771-- --001a114a967a19afb6053b4c2773 Content-Type: application/octet-stream; name="RM1387_addon_v2.patch" Content-Disposition: attachment; filename="RM1387_addon_v2.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_isho0hdg1 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvX19pbml0X18ucHkKaW5kZXggNDI3MTE5 OS4uMGI2YzZjYSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvX19pbml0X18ucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvX19pbml0X18u cHkKQEAgLTgxOCw3ICs4MTgsNyBAQCBjbGFzcyBTZXJ2ZXJOb2RlKFBHQ2hp bGROb2RlVmlldyk6CiAgICAgICAgICAgICAgICAgICAgICdzZXJ2ZXJzL3Bh c3N3b3JkLmh0bWwnLAogICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfbGFi ZWw9c2VydmVyLm5hbWUsCiAgICAgICAgICAgICAgICAgICAgIHVzZXJuYW1l PXNlcnZlci51c2VybmFtZSwKLSAgICAgICAgICAgICAgICAgICAgZXJybXNn PWUubWVzc2FnZSBpZiBlLm1lc3NhZ2UgZWxzZSBzdHIoZSksCisgICAgICAg ICAgICAgICAgICAgIGVycm1zZz1nZXRhdHRyKGUsICdtZXNzYWdlJywgc3Ry KGUpKSwKICAgICAgICAgICAgICAgICAgICAgXz1nZXR0ZXh0CiAgICAgICAg ICAgICAgICAgKQogICAgICAgICAgICAgKQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci90ZW1wbGF0ZXMvYnJvd3Nlci9qcy9icm93c2VyLmpz IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZW1wbGF0ZXMvYnJvd3Nlci9qcy9i cm93c2VyLmpzCmluZGV4IDBkYmNlMTcuLjk2NWJiYWUgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVtcGxhdGVzL2Jyb3dzZXIvanMvYnJv d3Nlci5qcworKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3RlbXBsYXRlcy9i cm93c2VyL2pzL2Jyb3dzZXIuanMKQEAgLTgsNyArOCw3IEBAIGRlZmluZSgn cGdhZG1pbi5icm93c2VyJywKICAgICAgICAgJ3BnYWRtaW4uYnJvd3Nlci5u b2RlJywgJ3BnYWRtaW4uYnJvd3Nlci5jb2xsZWN0aW9uJwogCiAgICAgICAg XSwKLWZ1bmN0aW9uKHJlcXVpcmUsICQsIF8sIFMsIEJvb3RzdHJhcCwgcGdB ZG1pbiwgYWxlcnRpZnksIENvZGVNaXJyb3IpIHsKK2Z1bmN0aW9uKHJlcXVp cmUsICQsIF8sIFMsIEJvb3RzdHJhcCwgcGdBZG1pbiwgQWxlcnRpZnksIENv ZGVNaXJyb3IpIHsKIAogICAvLyBTb21lIHNjcmlwdHMgZG8gZXhwb3J0IHRo ZWlyIG9iamVjdCBpbiB0aGUgd2luZG93IG9ubHkuCiAgIC8vIEdlbmVyYWxs eSB0aGUgb25lLCB3aGljaCBkbyBubyBoYXZlIEFNRCBzdXBwb3J0LgpAQCAt NDAsNiArNDAsNyBAQCBmdW5jdGlvbihyZXF1aXJlLCAkLCBfLCBTLCBCb290 c3RyYXAsIHBnQWRtaW4sIGFsZXJ0aWZ5LCBDb2RlTWlycm9yKSB7CiAgICAg Xy5lYWNoKGRhdGEsIGZ1bmN0aW9uKGQpewogICAgICAgZC5fbGFiZWwgPSBk LmxhYmVsOwogICAgICAgZC5sYWJlbCA9IF8uZXNjYXBlKGQubGFiZWwpOwor ICAgICAgZGF0YS5faW5vZGUgPSBkYXRhLmlub2RlOwogICAgIH0pCiAgICAg cmV0dXJuIGRhdGE7CiAgIH07CkBAIC05OTEsNiArOTkyLDcgQEAgZnVuY3Rp b24ocmVxdWlyZSwgJCwgXywgUywgQm9vdHN0cmFwLCBwZ0FkbWluLCBhbGVy dGlmeSwgQ29kZU1pcnJvcikgewogICAgICAgfQogICAgICAgX2RhdGEuX2xh YmVsID0gX2RhdGEubGFiZWw7CiAgICAgICBfZGF0YS5sYWJlbCA9IF8uZXNj YXBlKF9kYXRhLmxhYmVsKTsKKyAgICAgIF9kYXRhLl9pbm9kZSA9IF9kYXRh Lmlub2RlOwogCiAgICAgICB0cmF2ZXJzZVBhdGgoKTsKICAgICB9LApAQCAt MTMyMSw2ICsxMzIzLDcgQEAgZnVuY3Rpb24ocmVxdWlyZSwgJCwgXywgUywg Qm9vdHN0cmFwLCBwZ0FkbWluLCBhbGVydGlmeSwgQ29kZU1pcnJvcikgewog ICAgICAgY3R4LnBJLnB1c2goX29sZCk7CiAgICAgICBfbmV3Ll9sYWJlbCA9 IF9uZXcubGFiZWw7CiAgICAgICBfbmV3LmxhYmVsID0gXy5lc2NhcGUoX25l dy5sYWJlbCk7CisgICAgICBfbmV3Ll9pbm9kZSA9IF9uZXcuaW5vZGU7CiAK ICAgICAgIGlmIChfb2xkLl9waWQgIT0gX25ldy5fcGlkKSB7CiAgICAgICAg IGN0eC5vcCA9ICdSRUNSRUFURSc7CkBAIC0xMzUxLDcgKzEzNTQsNyBAQCBm dW5jdGlvbihyZXF1aXJlLCAkLCBfLCBTLCBCb290c3RyYXAsIHBnQWRtaW4s IGFsZXJ0aWZ5LCBDb2RlTWlycm9yKSB7CiAgICAgICAgIGN0eC5pID0gbnVs bDsKICAgICAgICAgY3R4LmQgPSBudWxsOwogICAgICAgfSBlbHNlIHsKLSAg ICAgICAgaXNPcGVuID0gdGhpcy50cmVlLmlzSW5vZGUoX2kpICYmIHRoaXMu dHJlZS5pc09wZW4oX2kpOworICAgICAgICBpc09wZW4gPSAodGhpcy50cmVl LmlzSW5vZGUoX2kpICYmIHRoaXMudHJlZS5pc09wZW4oX2kpKTsKICAgICAg IH0KIAogICAgICAgY3R4LmJyYW5jaCA9IGN0eC50LnNlcmlhbGl6ZSgKQEAg LTEzODMsNyArMTM4Niw4IEBAIGZ1bmN0aW9uKHJlcXVpcmUsICQsIF8sIFMs IEJvb3RzdHJhcCwgcGdBZG1pbiwgYWxlcnRpZnksIENvZGVNaXJyb3IpIHsK ICAgICAgICAgcmV0dXJuOwogICAgICAgfQogICAgICAgdmFyIGZldGNoTm9k ZUluZm8gPSBmdW5jdGlvbihfaSwgX2QsIF9uKSB7Ci0gICAgICAgICAgICB2 YXIgdXJsID0gX24uZ2VuZXJhdGVfdXJsKF9pLCAnbm9kZXMnLCBfZCwgdHJ1 ZSk7CisgICAgICAgICAgICB2YXIgaW5mbyA9IF9uLmdldFRyZWVOb2RlSGll cmFyY2h5KF9pKSwKKyAgICAgICAgICAgICAgICB1cmwgPSBfbi5nZW5lcmF0 ZV91cmwoX2ksICdub2RlcycsIF9kLCB0cnVlKTsKIAogICAgICAgICAgICAg JC5hamF4KHsKICAgICAgICAgICAgICAgdXJsOiB1cmwsCkBAIC0xMzk2LDYg KzE0MDAsNyBAQCBmdW5jdGlvbihyZXF1aXJlLCAkLCBfLCBTLCBCb290c3Ry YXAsIHBnQWRtaW4sIGFsZXJ0aWZ5LCBDb2RlTWlycm9yKSB7CiAKICAgICAg ICAgICAgICAgICBkYXRhLl9sYWJlbCA9IGRhdGEubGFiZWw7CiAgICAgICAg ICAgICAgICAgZGF0YS5sYWJlbCA9IF8uZXNjYXBlKGRhdGEubGFiZWwpOwor ICAgICAgICAgICAgICAgIGRhdGEuX2lub2RlID0gZGF0YS5pbm9kZTsKICAg ICAgICAgICAgICAgICB2YXIgZCA9IGN0eC50Lml0ZW1EYXRhKGN0eC5pKTsK ICAgICAgICAgICAgICAgICBfLmV4dGVuZChkLCBkYXRhKTsKICAgICAgICAg ICAgICAgICBjdHgudC5zZXRMYWJlbChjdHguaSwge2xhYmVsOiBfZC5sYWJl bH0pOwpAQCAtMTQxNywyMSArMTQyMiw0NCBAQCBmdW5jdGlvbihyZXF1aXJl LCAkLCBfLCBTLCBCb290c3RyYXAsIHBnQWRtaW4sIGFsZXJ0aWZ5LCBDb2Rl TWlycm9yKSB7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9 LAogICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24oanF4LCBlcnJvciwg c3RhdHVzKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHAgPSBjdHgudC5wYXJl bnQoY3R4LmkpOwotCi0gICAgICAgICAgICAgICAgaWYgKCFwKQotICAgICAg ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICAgICAgY3R4LnQu cmVtb3ZlKGN0eC5pLCB7Ci0gICAgICAgICAgICAgICAgICBzdWNjZXNzOiBm dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gVHJ5IHRvIHJl ZnJlc2ggdGhlIHBhcmVudCBvbiBlcnJvcgotICAgICAgICAgICAgICAgICAg ICB0cnkgewotICAgICAgICAgICAgICAgICAgICAgIHBnQnJvd3Nlci5FdmVu dHMudHJpZ2dlcigKLSAgICAgICAgICAgICAgICAgICAgICAgICdwZ2FkbWlu OmJyb3dzZXI6dHJlZTpyZWZyZXNoJywgcAotICAgICAgICAgICAgICAgICAg ICAgICk7Ci0gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkge30KKyAg ICAgICAgICAgICAgICBpZiAoCisgICAgICAgICAgICAgICAgICAhQWxlcnRp ZnkucGdIYW5kbGVJdGVtRXJyb3IoCisgICAgICAgICAgICAgICAgICAgIHho ciwgZXJyb3IsIG1lc3NhZ2UsIHtpdGVtOiBfaSwgaW5mbzogaW5mb30KKyAg ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICApIHsKKyAgICAg ICAgICAgICAgICAgIHZhciBtc2cgPSB4aHIucmVzcG9uc2VUZXh0LAorICAg ICAgICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlID0geGhyLmdldFJlc3Bv bnNlSGVhZGVyKCdDb250ZW50LVR5cGUnKSwKKyAgICAgICAgICAgICAgICAg ICAgICBtc2cgPSB4aHIucmVzcG9uc2VUZXh0LAorICAgICAgICAgICAgICAg ICAgICAgIGpzb25SZXNwID0gKAorICAgICAgICAgICAgICAgICAgICAgICAg Y29udGVudFR5cGUgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRl bnRUeXBlLmluZGV4T2YoJ2FwcGxpY2F0aW9uL2pzb24nKSA9PSAwICYmCisg ICAgICAgICAgICAgICAgICAgICAgICAkLnBhcnNlSlNPTih4aHIucmVzcG9u c2VUZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgKSB8fCB7fTsKKwor ICAgICAgICAgICAgICAgICAgaWYgKHhoci5zdGF0dXMgPT0gNDEwICYmIGpz b25SZXNwLnN1Y2Nlc3MgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICB2 YXIgcCA9IGN0eC50LnBhcmVudChjdHguaSk7CisKKyAgICAgICAgICAgICAg ICAgICAgY3R4LnQucmVtb3ZlKGN0eC5pLCB7CisgICAgICAgICAgICAgICAg ICAgICAgc3VjY2VzczogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg ICAgICAgICBpZiAocCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBUcnkgdG8gcmVmcmVzaCB0aGUgcGFyZW50IG9uIGVycm9yCisgICAgICAg ICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGdCcm93c2VyLkV2ZW50cy50cmlnZ2VyKAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ3BnYWRtaW46YnJvd3Nlcjp0cmVlOnJl ZnJlc2gnLCBwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7fQorICAgICAg ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICB9 Ci0gICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgIEFs ZXJ0aWZ5LnBnTm90aWZpZXIoCisgICAgICAgICAgICAgICAgICAgIGVycm9y LCB4aHIsICJ7eyBfKCJFcnJvciByZXRyaWV2aW5nIGRldGFpbHMgZm9yIHRo ZSBub2RlLiIpIH19IiwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24o KSB7CisgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGFyZ3Vt ZW50cyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICAgICk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICB9KTsKICAgICAgICAgICB9LmJpbmQodGhpcyk7CkBAIC0x NDY2LDYgKzE0OTQsMTMgQEAgZnVuY3Rpb24ocmVxdWlyZSwgJCwgXywgUywg Qm9vdHN0cmFwLCBwZ0FkbWluLCBhbGVydGlmeSwgQ29kZU1pcnJvcikgewog ICAgICAgICAgICAgY29uc29sZS5sb2coYXJndW1lbnRzKTsKICAgICAgICAg ICB9CiAgICAgICAgIH0pOworICAgICAgfSBlbHNlIGlmICghdGhpcy50cmVl LmlzSW5vZGUoX2kpICYmIGQuX2lub2RlKSB7CisgICAgICAgIHRoaXMudHJl ZS5zZXRJbm9kZShfaSwgeworICAgICAgICAgIHN1Y2Nlc3M6IGZldGNoTm9k ZUluZm8uYmluZCh0aGlzLCBfaSwgZCwgbiksCisgICAgICAgICAgZmFpbDog ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBjb25zb2xlLmxvZyhhcmd1bWVu dHMpOworICAgICAgICAgIH0KKyAgICAgICAgfSk7CiAgICAgICB9IGVsc2Ug ewogICAgICAgICBmZXRjaE5vZGVJbmZvKF9pLCBkLCBuKTsKICAgICAgIH0K ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3Bn Mi9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3lj b3BnMi9fX2luaXRfXy5weQppbmRleCBlM2E5ZTk2Li5kNzQ1ZmVlIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi91dGlscy9kcml2ZXIvcHN5Y29wZzIvX19p bml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vdXRpbHMvZHJpdmVyL3BzeWNv cGcyL19faW5pdF9fLnB5CkBAIC0xMzEsNiArMTMxLDkgQEAgY2xhc3MgQ29u bmVjdGlvbihCYXNlQ29ubmVjdGlvbik6CiAgICAgKiBfcmVsZWFzZSgpCiAg ICAgICAtIFJlbGVhc2UgdGhlIGNvbm5lY3Rpb24gb2JqZWN0IG9mIHBzeWNv cGcyCiAKKyAgICAqIF9yZWNvbm5lY3QoKQorICAgICAgLSBBdHRlbXB0IHRv IHJlY29ubmVjdCB0byB0aGUgZGF0YWJhc2UKKwogICAgICogX3dhaXQoY29u bikKICAgICAgIC0gVGhpcyBtZXRob2QgaXMgdXNlZCB0byB3YWl0IGZvciBh c3luY2hyb25vdXMgY29ubmVjdGlvbi4gVGhpcyBpcyBhCiAgICAgICAgIGJs b2NraW5nIGNhbGwuCkBAIC0xODEsNiArMTg0LDggQEAgY2xhc3MgQ29ubmVj dGlvbihCYXNlQ29ubmVjdGlvbik6CiAgICAgICAgIHNlbGYucm93X2NvdW50 ID0gMAogICAgICAgICBzZWxmLl9fbm90aWNlcyA9IE5vbmUKICAgICAgICAg c2VsZi5wYXNzd29yZCA9IE5vbmUKKyAgICAgICAgc2VsZi53YXNDb25uZWN0 ZWQgPSBGYWxzZQorICAgICAgICBzZWxmLnJlY29ubmVjdGluZyA9IEZhbHNl CiAKICAgICAgICAgc3VwZXIoQ29ubmVjdGlvbiwgc2VsZikuX19pbml0X18o KQogCkBAIC0yMzMsNyArMjM4LDggQEAgY2xhc3MgQ29ubmVjdGlvbihCYXNl Q29ubmVjdGlvbik6CiAgICAgICAgICAgICBlbmNwYXNzID0gc2VsZi5wYXNz d29yZCBvciBnZXRhdHRyKG1nciwgJ3Bhc3N3b3JkJywgTm9uZSkKIAogICAg ICAgICAjIFJlc2V0IHRoZSBleGlzdGluZyBjb25uZWN0aW9uIHBhc3N3b3Jk Ci0gICAgICAgIHNlbGYucGFzc3dvcmQgPSBOb25lCisgICAgICAgIGlmIHNl bGYucmVjb25uZWN0aW5nIGlzIG5vdCBGYWxzZToKKyAgICAgICAgICAgIHNl bGYucGFzc3dvcmQgPSBOb25lCiAKICAgICAgICAgaWYgZW5jcGFzczoKICAg ICAgICAgICAgICMgRmV0Y2ggTG9nZ2VkIGluIFVzZXIgRGV0YWlscy4KQEAg LTMwMSw4ICszMDcsNDQgQEAgRmFpbGVkIHRvIGNvbm5lY3QgdG8gdGhlIGRh dGFiYXNlIHNlcnZlcigje3NlcnZlcl9pZH0pIGZvciBjb25uZWN0aW9uICh7 Y29ubl9pZH0KICAgICAgICAgICAgIHJldHVybiBGYWxzZSwgbXNnCiAKICAg ICAgICAgc2VsZi5jb25uID0gcGdfY29ubgotICAgICAgICBzZWxmLl9fYmFj a2VuZF9waWQgPSBwZ19jb25uLmdldF9iYWNrZW5kX3BpZCgpCisgICAgICAg IHNlbGYud2FzQ29ubmVjdGVkID0gVHJ1ZQorICAgICAgICB0cnk6CisgICAg ICAgICAgICBzdGF0dXMsIG1zZyA9IHNlbGYuX2luaXRpYWxpemUoY29ubl9p ZCwgKiprd2FyZ3MpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToK KyAgICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5leGNlcHRpb24oZSkK KyAgICAgICAgICAgIHNlbGYuY29ubiA9IE5vbmUKKyAgICAgICAgICAgIGlm IG5vdCBzZWxmLnJlY29ubmVjdGluZzoKKyAgICAgICAgICAgICAgICBzZWxm Lndhc0Nvbm5lY3RlZCA9IEZhbHNlCisgICAgICAgICAgICByYWlzZSBlCisK KyAgICAgICAgaWYgc3RhdHVzOgorICAgICAgICAgICAgbWdyLl91cGRhdGVf cGFzc3dvcmQoZW5jcGFzcykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg IGlmIG5vdCBzZWxmLnJlY29ubmVjdGluZzoKKyAgICAgICAgICAgICAgICBz ZWxmLndhc0Nvbm5lY3RlZCA9IEZhbHNlCisKKyAgICAgICAgcmV0dXJuIHN0 YXR1cywgbXNnCisKKyAgICBkZWYgX2luaXRpYWxpemUoc2VsZiwgY29ubl9p ZCwgKiprd2FyZ3MpOgogICAgICAgICBzZWxmLmV4ZWN1dGlvbl9hYm9ydGVk ID0gRmFsc2UKKyAgICAgICAgc2VsZi5fX2JhY2tlbmRfcGlkID0gc2VsZi5j b25uLmdldF9iYWNrZW5kX3BpZCgpCisKKyAgICAgICAgc2V0YXR0cihnLCAi ezB9I3sxfSIuZm9ybWF0KAorICAgICAgICAgICAgc2VsZi5tYW5hZ2VyLnNp ZCwKKyAgICAgICAgICAgIHNlbGYuY29ubl9pZC5lbmNvZGUoJ3V0Zi04JykK KyAgICAgICAgKSwgTm9uZSkKKworICAgICAgICBzdGF0dXMsIGN1ciA9IHNl bGYuX19jdXJzb3IoKQorICAgICAgICBmb3JtYXR0ZWRfZXhjZXB0aW9uX21z ZyA9IHNlbGYuX2Zvcm1hdHRlZF9leGNlcHRpb25fbXNnCisgICAgICAgIG1n ciA9IHNlbGYubWFuYWdlcgorCisgICAgICAgIGRlZiBfZXhlY3V0ZShjdXIs IHF1ZXJ5LCBwYXJhbXM9Tm9uZSk6CisgICAgICAgICAgICB0cnk6CisgICAg ICAgICAgICAgICAgc2VsZi5fX2ludGVybmFsX2Jsb2NraW5nX2V4ZWN1dGUo Y3VyLCBxdWVyeSwgcGFyYW1zKQorICAgICAgICAgICAgZXhjZXB0IHBzeWNv cGcyLkVycm9yIGFzIHBlOgorICAgICAgICAgICAgICAgIGN1ci5jbG9zZSgp CisgICAgICAgICAgICAgICAgcmV0dXJuIGZvcm1hdHRlZF9leGNlcHRpb25f bXNnKHBlLCBGYWxzZSkKKyAgICAgICAgICAgIHJldHVybiBOb25lCiAKICAg ICAgICAgIyBhdXRvY29tbWl0IGZsYWcgZG9lcyBub3Qgd29yayB3aXRoIGFz eW5jaHJvbm91cyBjb25uZWN0aW9ucy4KICAgICAgICAgIyBCeSBkZWZhdWx0 IGFzeW5jaHJvbm91cyBjb25uZWN0aW9uIHJ1bnMgaW4gYXV0b2NvbW1pdCBt b2RlLgpAQCAtMzEzLDIyICszNTUsMjIgQEAgRmFpbGVkIHRvIGNvbm5lY3Qg dG8gdGhlIGRhdGFiYXNlIHNlcnZlcigje3NlcnZlcl9pZH0pIGZvciBjb25u ZWN0aW9uICh7Y29ubl9pZH0KICAgICAgICAgICAgICAgICBzZWxmLmNvbm4u YXV0b2NvbW1pdCA9IFRydWUKICAgICAgICAgICAgIHJlZ2lzdGVyX2RhdGVf dHlwZWNhc3RlcnMoc2VsZi5jb25uKQogCi0gICAgICAgIHN0YXR1cywgcmVz ID0gc2VsZi5leGVjdXRlX3NjYWxhcigiIiIKKyAgICAgICAgc3RhdHVzID0g X2V4ZWN1dGUoY3VyLCAiIiIKIFNFVCBEYXRlU3R5bGU9SVNPOwogU0VUIGNs aWVudF9taW5fbWVzc2FnZXM9bm90aWNlOwogU0VUIGJ5dGVhX291dHB1dD1l c2NhcGU7CiBTRVQgY2xpZW50X2VuY29kaW5nPSdVTklDT0RFJzsiIiIpCiAK LSAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgaWYgc3RhdHVzIGlz IG5vdCBOb25lOgogICAgICAgICAgICAgc2VsZi5jb25uLmNsb3NlKCkKICAg ICAgICAgICAgIHNlbGYuY29ubiA9IE5vbmUKIAotICAgICAgICAgICAgcmV0 dXJuIEZhbHNlLCByZXMKKyAgICAgICAgICAgIHJldHVybiBGYWxzZSwgc3Rh dHVzCiAKICAgICAgICAgaWYgbWdyLnJvbGU6Ci0gICAgICAgICAgICBzdGF0 dXMsIHJlcyA9IHNlbGYuZXhlY3V0ZV9zY2FsYXIodSJTRVQgUk9MRSBUTyAl cyIsIFttZ3Iucm9sZV0pCisgICAgICAgICAgICBzdGF0dXMgPSBfZXhlY3V0 ZShjdXIsIHUiU0VUIFJPTEUgVE8gJXMiLCBbbWdyLnJvbGVdKQogCi0gICAg ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgaWYgc3RhdHVz IGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgIHNlbGYuY29ubi5jbG9z ZSgpCiAgICAgICAgICAgICAgICAgc2VsZi5jb25uID0gTm9uZQogICAgICAg ICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5lcnJvcigiIiIKQEAgLTMz NywzNSArMzc5LDM4IEBAIENvbm5lY3QgdG8gdGhlIGRhdGFiYXNlIHNlcnZl ciAoI3tzZXJ2ZXJfaWR9KSBmb3IgY29ubmVjdGlvbiAoe2Nvbm5faWR9KSwg YnV0IC0KICIiIi5mb3JtYXQoCiAgICAgICAgICAgICAgICAgICAgIHNlcnZl cl9pZD1zZWxmLm1hbmFnZXIuc2lkLAogICAgICAgICAgICAgICAgICAgICBj b25uX2lkPWNvbm5faWQsCi0gICAgICAgICAgICAgICAgICAgIG1zZz1yZXMK KyAgICAgICAgICAgICAgICAgICAgbXNnPXN0YXR1cwogICAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgcmV0 dXJuIEZhbHNlLCBcCiAgICAgICAgICAgICAgICAgICAgICAgIF8oIkZhaWxl ZCB0byBzZXR1cCB0aGUgcm9sZSB3aXRoIGVycm9yIG1lc3NhZ2U6XG57MH0i KS5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICByZXMKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cwogICAgICAgICAgICAg ICAgICAgICAgICApCiAKICAgICAgICAgaWYgbWdyLnZlciBpcyBOb25lOgot ICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmV4ZWN1dGVfc2NhbGFy KCJTRUxFQ1QgdmVyc2lvbigpIikKKyAgICAgICAgICAgIHN0YXR1cyA9IF9l eGVjdXRlKGN1ciwgIlNFTEVDVCB2ZXJzaW9uKCkiKQogCi0gICAgICAgICAg ICBpZiBzdGF0dXM6Ci0gICAgICAgICAgICAgICAgbWdyLnZlciA9IHJlcwot ICAgICAgICAgICAgICAgIG1nci5zdmVyc2lvbiA9IHBnX2Nvbm4uc2VydmVy X3ZlcnNpb24KLSAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBz dGF0dXMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgc2VsZi5jb25u LmNsb3NlKCkKICAgICAgICAgICAgICAgICBzZWxmLmNvbm4gPSBOb25lCisg ICAgICAgICAgICAgICAgc2VsZi53YXNDb25uZXRlZCA9IEZhbHNlCiAgICAg ICAgICAgICAgICAgY3VycmVudF9hcHAubG9nZ2VyLmVycm9yKCIiIgogRmFp bGVkIHRvIGZldGNoIHRoZSB2ZXJzaW9uIGluZm9ybWF0aW9uIG9uIHRoZSBl c3RhYmxpc2hlZCBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZSBzZXJ2ZXIg KCN7c2VydmVyX2lkfSkgZm9yICd7Y29ubl9pZH0nIHdpdGggYmVsb3cgZXJy b3IgbWVzc2FnZToKIHttc2d9CiAiIiIuZm9ybWF0KAogICAgICAgICAgICAg ICAgICAgICBzZXJ2ZXJfaWQ9c2VsZi5tYW5hZ2VyLnNpZCwKICAgICAgICAg ICAgICAgICAgICAgY29ubl9pZD1jb25uX2lkLAotICAgICAgICAgICAgICAg ICAgICBtc2c9cmVzCisgICAgICAgICAgICAgICAgICAgIG1zZz1zdGF0dXMK ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgKQotICAgICAg ICAgICAgICAgIHJldHVybiBGYWxzZSwgcmVzCisgICAgICAgICAgICAgICAg cmV0dXJuIEZhbHNlLCBzdGF0dXMKKworICAgICAgICAgICAgaWYgY3VyLnJv d2NvdW50ID4gMDoKKyAgICAgICAgICAgICAgICByb3cgPSBjdXIuZmV0Y2ht YW55KDEpWzBdCisgICAgICAgICAgICAgICAgbWdyLnZlciA9IHJvd1sndmVy c2lvbiddCisgICAgICAgICAgICAgICAgbWdyLnN2ZXJzaW9uID0gc2VsZi5j b25uLnNlcnZlcl92ZXJzaW9uCiAKLSAgICAgICAgc3RhdHVzLCByZXMgPSBz ZWxmLmV4ZWN1dGVfZGljdCgiIiIKKyAgICAgICAgc3RhdHVzID0gX2V4ZWN1 dGUoY3VyLCAiIiIKIFNFTEVDVAogICAgIGRiLm9pZCBhcyBkaWQsIGRiLmRh dG5hbWUsIGRiLmRhdGFsbG93Y29ubiwgcGdfZW5jb2RpbmdfdG9fY2hhcihk Yi5lbmNvZGluZykgQVMgc2VydmVyZW5jb2RpbmcsCiAgICAgaGFzX2RhdGFi YXNlX3ByaXZpbGVnZShkYi5vaWQsICdDUkVBVEUnKSBhcyBjYW5jcmVhdGUs IGRhdGxhc3RzeXNvaWQKQEAgLTM3MywxNiArNDE4LDE3IEBAIEZST00KICAg ICBwZ19kYXRhYmFzZSBkYgogV0hFUkUgZGIuZGF0bmFtZSA9IGN1cnJlbnRf ZGF0YWJhc2UoKSIiIikKIAotICAgICAgICBpZiBzdGF0dXM6CisgICAgICAg IGlmIHN0YXR1cyBpcyBOb25lOgogICAgICAgICAgICAgbWdyLmRiX2luZm8g PSBtZ3IuZGJfaW5mbyBvciBkaWN0KCkKLSAgICAgICAgICAgIGZfcm93ID0g cmVzWydyb3dzJ11bMF0KLSAgICAgICAgICAgIG1nci5kYl9pbmZvW2Zfcm93 WydkaWQnXV0gPSBmX3Jvdy5jb3B5KCkKKyAgICAgICAgICAgIGlmIGN1ci5y b3djb3VudCA+IDA6CisgICAgICAgICAgICAgICAgcmVzID0gY3VyLmZldGNo bWFueSgxKVswXQorICAgICAgICAgICAgICAgIG1nci5kYl9pbmZvW3Jlc1sn ZGlkJ11dID0gcmVzLmNvcHkoKQogCi0gICAgICAgICAgICAjIFdlIGRvIG5v dCBoYXZlIGRhdGFiYXNlIG9pZCBmb3IgdGhlIG1haW50ZW5hbmNlIGRhdGFi YXNlLgotICAgICAgICAgICAgaWYgbGVuKG1nci5kYl9pbmZvKSA9PSAxOgot ICAgICAgICAgICAgICAgIG1nci5kaWQgPSBmX3Jvd1snZGlkJ10KKyAgICAg ICAgICAgICAgICAjIFdlIGRvIG5vdCBoYXZlIGRhdGFiYXNlIG9pZCBmb3Ig dGhlIG1haW50ZW5hbmNlIGRhdGFiYXNlLgorICAgICAgICAgICAgICAgIGlm IGxlbihtZ3IuZGJfaW5mbykgPT0gMToKKyAgICAgICAgICAgICAgICAgICAg bWdyLmRpZCA9IHJlc1snZGlkJ10KIAotICAgICAgICBzdGF0dXMsIHJlcyA9 IHNlbGYuZXhlY3V0ZV9kaWN0KCIiIgorICAgICAgICBzdGF0dXMgPSBfZXhl Y3V0ZShjdXIsICIiIgogU0VMRUNUCiAgICAgb2lkIGFzIGlkLCByb2xuYW1l IGFzIG5hbWUsIHJvbHN1cGVyIGFzIGlzX3N1cGVydXNlciwKICAgICByb2xj cmVhdGVyb2xlIGFzIGNhbl9jcmVhdGVfcm9sZSwgcm9sY3JlYXRlZGIgYXMg Y2FuX2NyZWF0ZV9kYgpAQCAtMzkxLDI4ICs0MzcsMzQgQEAgRlJPTQogV0hF UkUKICAgICByb2xuYW1lID0gY3VycmVudF91c2VyIiIiKQogCi0gICAgICAg IGlmIHN0YXR1czoKKyAgICAgICAgaWYgc3RhdHVzIGlzIE5vbmU6CiAgICAg ICAgICAgICBtZ3IudXNlcl9pbmZvID0gZGljdCgpCi0gICAgICAgICAgICBm X3JvdyA9IHJlc1sncm93cyddWzBdCi0gICAgICAgICAgICBtZ3IudXNlcl9p bmZvID0gZl9yb3cuY29weSgpCisgICAgICAgICAgICBpZiBjdXIucm93Y291 bnQgPiAwOgorICAgICAgICAgICAgICAgIG1nci51c2VyX2luZm8gPSBjdXIu ZmV0Y2htYW55KDEpWzBdCiAKICAgICAgICAgaWYgJ3Bhc3N3b3JkJyBpbiBr d2FyZ3M6CiAgICAgICAgICAgICBtZ3IucGFzc3dvcmQgPSBrd2FyZ3NbJ3Bh c3N3b3JkJ10KIAorICAgICAgICBzZXJ2ZXJfdHlwZXMgPSBOb25lCiAgICAg ICAgIGlmICdzZXJ2ZXJfdHlwZXMnIGluIGt3YXJncyBhbmQgaXNpbnN0YW5j ZShrd2FyZ3NbJ3NlcnZlcl90eXBlcyddLCBsaXN0KToKLSAgICAgICAgICAg IGZvciBzdCBpbiBrd2FyZ3NbJ3NlcnZlcl90eXBlcyddOgotICAgICAgICAg ICAgICAgIGlmIHN0Lmluc3RhbmNlT2YobWdyLnZlcik6Ci0gICAgICAgICAg ICAgICAgICAgIG1nci5zZXJ2ZXJfdHlwZSA9IHN0LnN0eXBlCi0gICAgICAg ICAgICAgICAgICAgIG1nci5zZXJ2ZXJfY2xzID0gc3QKLSAgICAgICAgICAg ICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIHNlcnZlcl90eXBlcyA9IG1n ci5zZXJ2ZXJfdHlwZXMgPSBrd2FyZ3NbJ3NlcnZlcl90eXBlcyddCisKKyAg ICAgICAgaWYgc2VydmVyX3R5cGVzIGlzIE5vbmU6CisgICAgICAgICAgICBm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMudHlw ZXMgaW1wb3J0IFNlcnZlclR5cGUKKyAgICAgICAgICAgIHNlcnZlcl90eXBl cyA9IFNlcnZlclR5cGUudHlwZXMoKQorCisgICAgICAgIGZvciBzdCBpbiBz ZXJ2ZXJfdHlwZXM6CisgICAgICAgICAgICBpZiBzdC5pbnN0YW5jZU9mKG1n ci52ZXIpOgorICAgICAgICAgICAgICAgIG1nci5zZXJ2ZXJfdHlwZSA9IHN0 LnN0eXBlCisgICAgICAgICAgICAgICAgbWdyLnNlcnZlcl9jbHMgPSBzdAor ICAgICAgICAgICAgICAgIGJyZWFrCiAKLSAgICAgICAgbWdyLl91cGRhdGVf cGFzc3dvcmQoZW5jcGFzcykKICAgICAgICAgbWdyLnVwZGF0ZV9zZXNzaW9u KCkKIAogICAgICAgICByZXR1cm4gVHJ1ZSwgTm9uZQogCiAgICAgZGVmIF9f Y3Vyc29yKHNlbGYsIHNlcnZlcl9jdXJzb3I9RmFsc2UpOgotICAgICAgICBp ZiBub3Qgc2VsZi5jb25uOgorICAgICAgICBpZiBzZWxmLndhc0Nvbm5lY3Rl ZCBpcyBGYWxzZToKICAgICAgICAgICAgIHJhaXNlIENvbm5lY3Rpb25Mb3N0 KAogICAgICAgICAgICAgICAgIHNlbGYubWFuYWdlci5zaWQsCiAgICAgICAg ICAgICAgICAgc2VsZi5kYiwKQEAgLTQyOCw3MyArNDgwLDY4IEBAIFdIRVJF CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUsIGN1cgogCiAgICAgICAg IGlmIG5vdCBzZWxmLmNvbm5lY3RlZCgpOgotICAgICAgICAgICAgc3RhdHVz ID0gRmFsc2UKICAgICAgICAgICAgIGVycm1zZyA9ICIiCiAKLSAgICAgICAg ICAgIGN1cnJlbnRfYXBwLmxvZ2dlci53YXJuaW5nKCIiIgotQ29ubmVjdGlv biB0byBkYXRhYmFzZSBzZXJ2ZXIgKCN7c2VydmVyX2lkfSkgZm9yIHRoZSBj b25uZWN0aW9uIC0gJ3tjb25uX2lkfScgaGFzIGJlZW4gbG9zdC4KLSIiIi5m b3JtYXQoCi0gICAgICAgICAgICAgICAgc2VydmVyX2lkPXNlbGYubWFuYWdl ci5zaWQsCi0gICAgICAgICAgICAgICAgY29ubl9pZD1zZWxmLmNvbm5faWQK LSAgICAgICAgICAgICkKKyAgICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dl ci53YXJuaW5nKAorICAgICAgICAgICAgICAgICJDb25uZWN0aW9uIHRvIGRh dGFiYXNlIHNlcnZlciAoI3tzZXJ2ZXJfaWR9KSBmb3IgdGhlIGNvbm5lY3Rp b24gLSAne2Nvbm5faWR9JyBoYXMgYmVlbiBsb3N0LiIuZm9ybWF0KAorICAg ICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQ9c2VsZi5tYW5hZ2VyLnNpZCwK KyAgICAgICAgICAgICAgICAgICAgY29ubl9pZD1zZWxmLmNvbm5faWQKKyAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICApCiAKLSAgICAgICAgICAg IGlmIHNlbGYuYXV0b19yZWNvbm5lY3Q6Ci0gICAgICAgICAgICAgICAgc3Rh dHVzLCBlcnJtc2cgPSBzZWxmLmNvbm5lY3QoKQotCi0gICAgICAgICAgICAg ICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgICAgICAgICAgICAgZXJybXNn ID0gZ2V0dGV4dCgKLSAgICAgICAgICAgICAgICAgICAgICAgICIiIgotQXR0 ZW1wdCB0byByZWNvbm5lY3QgZmFpbGVkIHdpdGggdGhlIGVycm9yOgotezB9 IiIiLmZvcm1hdChlcnJtc2cpCi0gICAgICAgICAgICAgICAgICAgICkKLQot ICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgICAgICAgICBt c2cgPSBnZXR0ZXh0KCJDb25uZWN0aW9uIGxvc3QuXG57MH0iKS5mb3JtYXQo ZXJybXNnKQotICAgICAgICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5l cnJvcihlcnJtc2cpCi0KLSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2Us IG1zZworICAgICAgICAgICAgaWYgc2VsZi5hdXRvX3JlY29ubmVjdCBhbmQg bm90IHNlbGYucmVjb25uZWN0aW5nOgorICAgICAgICAgICAgICAgIHNlbGYu X19hdHRlbXB0X2V4ZWN1dGlvbl9yZWNvbm5lY3QoTm9uZSkKKyAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgQ29ubmVjdGlvbkxv c3QoCisgICAgICAgICAgICAgICAgICAgIHNlbGYubWFuYWdlci5zaWQsCisg ICAgICAgICAgICAgICAgICAgIHNlbGYuZGIsCisgICAgICAgICAgICAgICAg ICAgIE5vbmUgaWYgc2VsZi5jb25uX2lkWzA6M10gPT0gdSdEQjonIGVsc2Ug c2VsZi5jb25uX2lkWzU6XQorICAgICAgICAgICAgICAgICkKIAogICAgICAg ICB0cnk6CiAgICAgICAgICAgICBpZiBzZXJ2ZXJfY3Vyc29yOgogICAgICAg ICAgICAgICAgICMgUHJvdmlkaW5nIG5hbWUgdG8gY3Vyc29yIHdpbGwgY3Jl YXRlIHNlcnZlciBzaWRlIGN1cnNvci4KICAgICAgICAgICAgICAgICBjdXJz b3JfbmFtZSA9ICJDVVJTT1I6ezB9Ii5mb3JtYXQoc2VsZi5jb25uX2lkKQot ICAgICAgICAgICAgICAgIGN1ciA9IHNlbGYuY29ubi5jdXJzb3IobmFtZT1j dXJzb3JfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGN1cnNvcl9mYWN0b3J5PURpY3RDdXJzb3IpCisgICAgICAgICAg ICAgICAgY3VyID0gc2VsZi5jb25uLmN1cnNvcigKKyAgICAgICAgICAgICAg ICAgICAgbmFtZT1jdXJzb3JfbmFtZSwgY3Vyc29yX2ZhY3Rvcnk9RGljdEN1 cnNvcgorICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgIGVsc2U6CiAg ICAgICAgICAgICAgICAgY3VyID0gc2VsZi5jb25uLmN1cnNvcihjdXJzb3Jf ZmFjdG9yeT1EaWN0Q3Vyc29yKQogICAgICAgICBleGNlcHQgcHN5Y29wZzIu RXJyb3IgYXMgcGU6Ci0gICAgICAgICAgICBlcnJtc2cgPSBnZXR0ZXh0KCIi IgotRmFpbGVkIHRvIGNyZWF0ZSBjdXJzb3IgZm9yIHBzeWNvcGcyIGNvbm5l Y3Rpb24gd2l0aCBlcnJvciBtZXNzYWdlIGZvciB0aGUgXAotc2VydmVyI3sx fTp7Mn06Ci17MH0iIiIpLmZvcm1hdChzdHIocGUpLCBzZWxmLm1hbmFnZXIu c2lkLCBzZWxmLmRiKQotICAgICAgICAgICAgY3VycmVudF9hcHAubG9nZ2Vy LmVycm9yKGVycm1zZykKLSAgICAgICAgICAgIHNlbGYuY29ubi5jbG9zZSgp Ci0gICAgICAgICAgICBzZWxmLmNvbm4gPSBOb25lCisgICAgICAgICAgICBj dXJyZW50X2FwcC5sb2dnZXIuZXhjZXB0aW9uKHBlKQorICAgICAgICAgICAg ZXJybXNnID0gZ2V0dGV4dCgKKyAgICAgICAgICAgICAgICAiRmFpbGVkIHRv IGNyZWF0ZSBjdXJzb3IgZm9yIHBzeWNvcGcyIGNvbm5lY3Rpb24gd2l0aCBl cnJvciBtZXNzYWdlIGZvciB0aGUgc2VydmVyI3sxfTp7Mn06XG57MH0iCisg ICAgICAgICAgICApLmZvcm1hdCgKKyAgICAgICAgICAgICAgICBzdHIocGUp LCBzZWxmLm1hbmFnZXIuc2lkLCBzZWxmLmRiCisgICAgICAgICAgICApCiAK LSAgICAgICAgICAgIGlmIHNlbGYuYXV0b19yZWNvbm5lY3Q6Ci0gICAgICAg ICAgICAgICAgY3VycmVudF9hcHAubG9nZ2VyLmRlYnVnKCIiIgotQXR0ZW1w dGluZyB0byByZWNvbm5lY3QgdG8gdGhlIGRhdGFiYXNlIHNlcnZlciAoI3tz ZXJ2ZXJfaWR9KSBmb3IgdGhlIGNvbm5lY3Rpb24gLSAne2Nvbm5faWR9Jy4K LSIiIi5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZD1z ZWxmLm1hbmFnZXIuc2lkLAotICAgICAgICAgICAgICAgICAgICBjb25uX2lk PXNlbGYuY29ubl9pZAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAg ICAgICApCi0gICAgICAgICAgICAgICAgc3RhdHVzLCBjdXIgPSBzZWxmLmNv bm5lY3QoKQotICAgICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6Ci0gICAg ICAgICAgICAgICAgICAgIG1zZyA9IGdldHRleHQoCi0gICAgICAgICAgICAg ICAgICAgICAgICB1IiIiCi1Db25uZWN0aW9uIGZvciBzZXJ2ZXIjezB9IHdp dGggZGF0YWJhc2UgInsxfSIgd2FzIGxvc3QuCi1BdHRlbXB0IHRvIHJlY29u bmVjdCBpdCBmYWlsZWQgd2l0aCB0aGUgZXJyb3I6Ci17Mn0iIiIKLSAgICAg ICAgICAgICAgICAgICAgKS5mb3JtYXQoc2VsZi5kcml2ZXIuc2VydmVyX2lk LCBzZWxmLmRiLCBjdXIpCi0gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRf YXBwLmxvZ2dlci5lcnJvcihtc2cpCi0KLSAgICAgICAgICAgICAgICAgICAg cmV0dXJuIEZhbHNlLCBjdXIKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg ICAgICAgICAgcmV0dXJuIEZhbHNlLCBlcnJtc2cKKyAgICAgICAgICAgIGN1 cnJlbnRfYXBwLmxvZ2dlci5lcnJvcihlcnJtc2cpCisgICAgICAgICAgICBp ZiBzZWxmLmNvbm4uY2xvc2VkOgorICAgICAgICAgICAgICAgIHNlbGYuY29u biA9IE5vbmUKKyAgICAgICAgICAgICAgICBpZiBzZWxmLmF1dG9fcmVjb25u ZWN0IGFuZCBub3Qgc2VsZi5yZWNvbm5lY3Rpbmc6CisgICAgICAgICAgICAg ICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5pbmZvKAorICAgICAgICAgICAg ICAgICAgICAgICAgZ2V0dGV4dCgKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiQXR0ZW1wdGluZyB0byByZWNvbm5lY3QgdG8gdGhlIGRhdGFiYXNl IHNlcnZlciAoI3tzZXJ2ZXJfaWR9KSBmb3IgdGhlIGNvbm5lY3Rpb24gLSAn e2Nvbm5faWR9Jy4iCisgICAgICAgICAgICAgICAgICAgICAgICApLmZvcm1h dCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQ9c2Vs Zi5tYW5hZ2VyLnNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25uX2lkPXNlbGYuY29ubl9pZAorICAgICAgICAgICAgICAgICAgICAgICAg KQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAg IHJldHVybiBzZWxmLl9fYXR0ZW1wdF9leGVjdXRpb25fcmVjb25uZWN0KAor ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fX2N1cnNvciwgc2VydmVy X2N1cnNvcgorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgQ29ubmVjdGlv bkxvc3QoCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1hbmFnZXIu c2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYiwKKyAgICAg ICAgICAgICAgICAgICAgICAgIE5vbmUgaWYgc2VsZi5jb25uX2lkWzA6M10g PT0gdSdEQjonIGVsc2Ugc2VsZi5jb25uX2lkWzU6XQorICAgICAgICAgICAg ICAgICAgICApCiAKLSAgICAgICAgc2V0YXR0cihnLCAiezB9I3sxfSIuZm9y bWF0KHNlbGYubWFuYWdlci5zaWQsIHNlbGYuY29ubl9pZC5lbmNvZGUoJ3V0 Zi04JykpLCBjdXIpCisgICAgICAgIHNldGF0dHIoCisgICAgICAgICAgICBn LCAiezB9I3sxfSIuZm9ybWF0KAorICAgICAgICAgICAgICAgIHNlbGYubWFu YWdlci5zaWQsIHNlbGYuY29ubl9pZC5lbmNvZGUoJ3V0Zi04JykKKyAgICAg ICAgICAgICksIGN1cgorICAgICAgICApCiAKICAgICAgICAgcmV0dXJuIFRy dWUsIGN1cgogCkBAIC01MzcsNyArNTg0LDcgQEAgQXR0ZW1wdCB0byByZWNv bm5lY3QgaXQgZmFpbGVkIHdpdGggdGhlIGVycm9yOgogICAgICAgICAgICAg Y3VyLmNsb3NlKCkKICAgICAgICAgICAgIGVycm1zZyA9IHNlbGYuX2Zvcm1h dHRlZF9leGNlcHRpb25fbXNnKHBlLCBmb3JtYXR0ZWRfZXhjZXB0aW9uX21z ZykKICAgICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5lcnJvcigKLSAg ICAgICAgICAgICAgICB1IkZhaWxlZCB0byBleGVjdXRlIHF1ZXJ5ICgod2l0 aCBzZXJ2ZXIgY3Vyc29yKSBmb3IgdGhlIHNlcnZlciAje3NlcnZlcl9pZH0g LSB7Y29ubl9pZH0gKFF1ZXJ5LWlkOiB7cXVlcnlfaWR9KTpcbkVycm9yIE1l c3NhZ2U6e2Vycm1zZ30iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICB1ImZh aWxlZCB0byBleGVjdXRlIHF1ZXJ5ICgod2l0aCBzZXJ2ZXIgY3Vyc29yKSBm b3IgdGhlIHNlcnZlciAje3NlcnZlcl9pZH0gLSB7Y29ubl9pZH0gKHF1ZXJ5 LWlkOiB7cXVlcnlfaWR9KTpcbmVycm9yIG1lc3NhZ2U6e2Vycm1zZ30iLmZv cm1hdCgKICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkPXNlbGYubWFu YWdlci5zaWQsCiAgICAgICAgICAgICAgICAgICAgIGNvbm5faWQ9c2VsZi5j b25uX2lkLAogICAgICAgICAgICAgICAgICAgICBxdWVyeT1xdWVyeSwKQEAg LTYwNiw2ICs2NTMsMTAgQEAgQXR0ZW1wdCB0byByZWNvbm5lY3QgaXQgZmFp bGVkIHdpdGggdGhlIGVycm9yOgogICAgICAgICBleGNlcHQgcHN5Y29wZzIu RXJyb3IgYXMgcGU6CiAgICAgICAgICAgICBjdXIuY2xvc2UoKQogICAgICAg ICAgICAgaWYgbm90IHNlbGYuY29ubmVjdGVkKCk6CisgICAgICAgICAgICAg ICAgaWYgc2VsZi5hdXRvX3JlY29ubmVjdCBhbmQgbm90IHNlbGYucmVjb25u ZWN0aW5nOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fX2F0 dGVtcHRfZXhlY3V0aW9uX3JlY29ubmVjdCgKKyAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZXhlY3V0ZV9kaWN0LCBxdWVyeSwgcGFyYW1zLCBmb3Jt YXR0ZWRfZXhjZXB0aW9uX21zZworICAgICAgICAgICAgICAgICAgICApCiAg ICAgICAgICAgICAgICAgcmFpc2UgQ29ubmVjdGlvbkxvc3QoCiAgICAgICAg ICAgICAgICAgICAgIHNlbGYubWFuYWdlci5zaWQsCiAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZGIsCkBAIC03MTMsNiArNzY0LDEwIEBAIEZhaWxlZCB0 byBleGVjdXRlIHF1ZXJ5IChleGVjdXRlX2FzeW5jKSBmb3IgdGhlIHNlcnZl ciAje3NlcnZlcl9pZH0gLSB7Y29ubl9pZH0KICAgICAgICAgZXhjZXB0IHBz eWNvcGcyLkVycm9yIGFzIHBlOgogICAgICAgICAgICAgY3VyLmNsb3NlKCkK ICAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNvbm5lY3RlZCgpOgorICAgICAg ICAgICAgICAgIGlmIHNlbGYuYXV0b19yZWNvbm5lY3QgYW5kIG5vdCBzZWxm LnJlY29ubmVjdGluZzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNl bGYuX19hdHRlbXB0X2V4ZWN1dGlvbl9yZWNvbm5lY3QoCisgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGVfdm9pZCwgcXVlcnksIHBhcmFt cywgZm9ybWF0dGVkX2V4Y2VwdGlvbl9tc2cKKyAgICAgICAgICAgICAgICAg ICAgKQogICAgICAgICAgICAgICAgIHJhaXNlIENvbm5lY3Rpb25Mb3N0KAog ICAgICAgICAgICAgICAgICAgICBzZWxmLm1hbmFnZXIuc2lkLAogICAgICAg ICAgICAgICAgICAgICBzZWxmLmRiLApAQCAtNzM2LDYgKzc5MSwzNiBAQCBG YWlsZWQgdG8gZXhlY3V0ZSBxdWVyeSAoZXhlY3V0ZV92b2lkKSBmb3IgdGhl IHNlcnZlciAje3NlcnZlcl9pZH0gLSB7Y29ubl9pZH0KIAogICAgICAgICBy ZXR1cm4gVHJ1ZSwgTm9uZQogCisgICAgZGVmIF9fYXR0ZW1wdF9leGVjdXRp b25fcmVjb25uZWN0KHNlbGYsIGZuLCAqYXJncywgKiprd2FyZ3MpOgorICAg ICAgICBzZWxmLnJlY29ubmVjdGluZyA9IFRydWUKKyAgICAgICAgc2V0YXR0 cihnLCAiezB9I3sxfSIuZm9ybWF0KAorICAgICAgICAgICAgc2VsZi5tYW5h Z2VyLnNpZCwKKyAgICAgICAgICAgIHNlbGYuY29ubl9pZC5lbmNvZGUoJ3V0 Zi04JykKKyAgICAgICAgKSwgTm9uZSkKKyAgICAgICAgdHJ5OgorICAgICAg ICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm5lY3QoKQorICAgICAgICAg ICAgaWYgc3RhdHVzOgorICAgICAgICAgICAgICAgIGlmIGZuOgorICAgICAg ICAgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IGZuKCphcmdzLCAqKmt3YXJn cykKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWNvbm5lY3RpbmcgPSBG YWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBzdGF0dXMsIHJlcworICAg ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBjdXJy ZW50X2FwcC5sb2dnZXIuZXhjZXB0aW9uKGUpCisgICAgICAgICAgICBzZWxm LnJlY29ubmVjdGluZyA9IEZhbHNlCisKKyAgICAgICAgICAgIGN1cnJlbnRf YXBwLndhcm5pbmcoCisgICAgICAgICAgICAgICAgIkZhaWxlZCB0byByZWNv bm5lY3QgdGhlIGRhdGFiYXNlIHNlcnZlciAoI3tzZXJ2ZXJfaWR9KSIuZm9y bWF0KAorICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQ9c2VsZi5tYW5h Z2VyLnNpZCwKKyAgICAgICAgICAgICAgICAgICAgY29ubl9pZD1zZWxmLmNv bm5faWQKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAg ICAgIHNlbGYucmVjb25uZWN0aW5nID0gRmFsc2UKKyAgICAgICAgcmFpc2Ug Q29ubmVjdGlvbkxvc3QoCisgICAgICAgICAgICBzZWxmLm1hbmFnZXIuc2lk LAorICAgICAgICAgICAgc2VsZi5kYiwKKyAgICAgICAgICAgIE5vbmUgaWYg c2VsZi5jb25uX2lkWzA6M10gPT0gdSdEQjonIGVsc2Ugc2VsZi5jb25uX2lk WzU6XQorICAgICAgICApCisKICAgICBkZWYgZXhlY3V0ZV8yZGFycmF5KHNl bGYsIHF1ZXJ5LCBwYXJhbXM9Tm9uZSwgZm9ybWF0dGVkX2V4Y2VwdGlvbl9t c2c9RmFsc2UpOgogICAgICAgICBzdGF0dXMsIGN1ciA9IHNlbGYuX19jdXJz b3IoKQogICAgICAgICBzZWxmLnJvd19jb3VudCA9IDAKQEAgLTc1OCwxMSAr ODQzLDExIEBAIEZhaWxlZCB0byBleGVjdXRlIHF1ZXJ5IChleGVjdXRlX3Zv aWQpIGZvciB0aGUgc2VydmVyICN7c2VydmVyX2lkfSAtIHtjb25uX2lkfQog ICAgICAgICBleGNlcHQgcHN5Y29wZzIuRXJyb3IgYXMgcGU6CiAgICAgICAg ICAgICBjdXIuY2xvc2UoKQogICAgICAgICAgICAgaWYgbm90IHNlbGYuY29u bmVjdGVkKCk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQ29ubmVjdGlvbkxv c3QoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYubWFuYWdlci5zaWQsCi0g ICAgICAgICAgICAgICAgICAgIHNlbGYuZGIsCi0gICAgICAgICAgICAgICAg ICAgIE5vbmUgaWYgc2VsZi5jb25uX2lkWzA6M10gPT0gdSdEQjonIGVsc2Ug c2VsZi5jb25uX2lkWzU6XQotICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgICAgICBpZiBzZWxmLndhc0Nvbm5lY3RlZCBhbmQgc2VsZi5hdXRvX3Jl Y29ubmVjdCBhbmQgXAorICAgICAgICAgICAgICAgICAgICAgICAgbm90IHNl bGYucmVjb25uZWN0aW5nOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g c2VsZi5fX2F0dGVtcHRfZXhlY3V0aW9uX3JlY29ubmVjdCgKKyAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0ZV8yZGFycmF5LCBxdWVyeSwg cGFyYW1zLCBmb3JtYXR0ZWRfZXhjZXB0aW9uX21zZworICAgICAgICAgICAg ICAgICAgICApCiAgICAgICAgICAgICBlcnJtc2cgPSBzZWxmLl9mb3JtYXR0 ZWRfZXhjZXB0aW9uX21zZyhwZSwgZm9ybWF0dGVkX2V4Y2VwdGlvbl9tc2cp CiAgICAgICAgICAgICBjdXJyZW50X2FwcC5sb2dnZXIuZXJyb3IoCiAgICAg ICAgICAgICAgICAgdSJGYWlsZWQgdG8gZXhlY3V0ZSBxdWVyeSAoZXhlY3V0 ZV8yZGFycmF5KSBmb3IgdGhlIHNlcnZlciAje3NlcnZlcl9pZH0gLSB7Y29u bl9pZH0gKFF1ZXJ5LWlkOiB7cXVlcnlfaWR9KTpcbkVycm9yIE1lc3NhZ2U6 e2Vycm1zZ30iLmZvcm1hdCgKQEAgLTgwOSw2ICs4OTQsMTEgQEAgRmFpbGVk IHRvIGV4ZWN1dGUgcXVlcnkgKGV4ZWN1dGVfdm9pZCkgZm9yIHRoZSBzZXJ2 ZXIgI3tzZXJ2ZXJfaWR9IC0ge2Nvbm5faWR9CiAgICAgICAgIGV4Y2VwdCBw c3ljb3BnMi5FcnJvciBhcyBwZToKICAgICAgICAgICAgIGN1ci5jbG9zZSgp CiAgICAgICAgICAgICBpZiBub3Qgc2VsZi5jb25uZWN0ZWQoKToKKyAgICAg ICAgICAgICAgICBpZiBzZWxmLmF1dG9fcmVjb25uZWN0IGFuZCBub3Qgc2Vs Zi5yZWNvbm5lY3Rpbmc6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBz ZWxmLl9fYXR0ZW1wdF9leGVjdXRpb25fcmVjb25uZWN0KAorICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5leGVjdXRlX2RpY3QsIHF1ZXJ5LCBwYXJh bXMsCisgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRfZXhjZXB0 aW9uX21zZworICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAg ICAgcmFpc2UgQ29ubmVjdGlvbkxvc3QoCiAgICAgICAgICAgICAgICAgICAg IHNlbGYubWFuYWdlci5zaWQsCiAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZGIsCkBAIC05MDAsMTAgKzk5MCwxMiBAQCBGYWlsZWQgdG8gcmVzZXQgdGhl IGNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBkdWUgdG8gZm9sbG93aW5nIGVy cm9yOgogICAgICAgICByZXR1cm4gc2VsZi5leGVjdXRlX3NjYWxhcignU0VM RUNUIDEnKQogCiAgICAgZGVmIF9yZWxlYXNlKHNlbGYpOgotICAgICAgICBp ZiBzZWxmLmNvbm46Ci0gICAgICAgICAgICBzZWxmLmNvbm4uY2xvc2UoKQot ICAgICAgICAgICAgc2VsZi5jb25uID0gTm9uZQorICAgICAgICBpZiBzZWxm Lndhc0Nvbm5ldGVkOgorICAgICAgICAgICAgaWYgc2VsZi5jb25uOgorICAg ICAgICAgICAgICAgIHNlbGYuY29ubi5jbG9zZSgpCisgICAgICAgICAgICAg ICAgc2VsZi5jb25uID0gTm9uZQogICAgICAgICAgICAgc2VsZi5wYXNzd29y ZCA9IE5vbmUKKyAgICAgICAgICAgIHNlbGYud2FzQ29ubmVjdGVkID0gRmFs c2UKIAogICAgIGRlZiBfd2FpdChzZWxmLCBjb25uKToKICAgICAgICAgIiIi CkBAIC0xMjI3LDYgKzEzMTksNyBAQCBjbGFzcyBTZXJ2ZXJNYW5hZ2VyKG9i amVjdCk6CiAgICAgICAgIHNlbGYuc3NsX21vZGUgPSBzZXJ2ZXIuc3NsX21v ZGUKICAgICAgICAgc2VsZi5waW5nZWQgPSBkYXRldGltZS5kYXRldGltZS5u b3coKQogICAgICAgICBzZWxmLmRiX2luZm8gPSBkaWN0KCkKKyAgICAgICAg c2VsZi5zZXJ2ZXJfdHlwZXMgPSBOb25lCiAKICAgICAgICAgZm9yIGNvbiBp biBzZWxmLmNvbm5lY3Rpb25zOgogICAgICAgICAgICAgc2VsZi5jb25uZWN0 aW9uc1tjb25dLl9yZWxlYXNlKCkKQEAgLTE0MzAsNyArMTUyMyw3IEBAIFdI RVJFIGRiLm9pZCA9IHswfSIiIi5mb3JtYXQoZGlkKSkKICAgICAgICAgc2Vs Zi5wYXNzd29yZCA9IHBhc3N3ZAogICAgICAgICBmb3IgY29ubl9pZCBpbiBz ZWxmLmNvbm5lY3Rpb25zOgogICAgICAgICAgICAgY29ubiA9IHNlbGYuY29u bmVjdGlvbnNbY29ubl9pZF0KLSAgICAgICAgICAgIGlmIGNvbm4uY29ubiBp cyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmIGNvbm4uY29ubiBpcyBub3Qg Tm9uZSBvciBjb25uLndhc0Nvbm5lY3RlZCBpcyBUcnVlOgogICAgICAgICAg ICAgICAgIGNvbm4ucGFzc3dvcmQgPSBwYXNzd2QKIAogICAgIGRlZiB1cGRh dGVfc2Vzc2lvbihzZWxmKToK --001a114a967a19afb6053b4c2773 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 --001a114a967a19afb6053b4c2773--