Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aRJYI-0007nm-H1 for pgadmin-hackers@arkaria.postgresql.org; Thu, 04 Feb 2016 13:02:26 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aRJYH-0005En-QX for pgadmin-hackers@arkaria.postgresql.org; Thu, 04 Feb 2016 13:02:25 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1aRJY2-000507-HD for pgadmin-hackers@postgresql.org; Thu, 04 Feb 2016 13:02:10 +0000 Received: from mail-yw0-x232.google.com ([2607:f8b0:4002:c05::232]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aRJXu-0001s9-Qw for pgadmin-hackers@postgresql.org; Thu, 04 Feb 2016 13:02:09 +0000 Received: by mail-yw0-x232.google.com with SMTP id q190so26174093ywd.3 for ; Thu, 04 Feb 2016 05:02:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=/IdY4x4pn/1vjWEF0Ez4LNHKmbdNh+1m5viDPB5Lghk=; b=r8/KnBz/ughraUIqxrvZPGkjtW3JyMCcKjksDyGcnfwxHfpZ4kW0bpDLgEki6DGDBB ZBXzSbDtZo1ptwyfvcIdygCZsE8esSx5/S3xXxWp16mY5qLqoCPGpqdcWf1sSfiD5z8Z sIJncWaf2Ho55gzlOBOLMm0xBPtVGl70ZjLjF2y2FfiRpNM7SiQZixy5iBzWIQki/Hj3 tU2ZhYH7TI2WuB9JR0aIhocSvEDKqXaA+zsoQYHAi8hfrulMcA1JhkzQyLUQgDU0g1nj MXb3GNGrbvxVjgTVcvTo9/RW/X7hPAkATXZvJEOwK3nm10fNs9bDF3awgIR5CjkdUYdV kLLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=/IdY4x4pn/1vjWEF0Ez4LNHKmbdNh+1m5viDPB5Lghk=; b=PJRm3xp6puejPnupf4sVSAFoDrFAfrIpTYvjJRp/kc6CMSY45rhyPQoNXcVf4CVdHw MTwn5AgfYIBWBq+9rQZDnyb6PJejSe9rOpgppnWGGujGJua12VJZlHOuAdHzi5G8EXol gheOByyVVn1NH0m5orrHKcuNO7zJpm/a42oiiA1HI1rLUtraIlJQRrs9KWPFYtYNkvkz 99gYvecZDxLAeTJ4+xupbxhxXAQIPeQ21P2mids33h49Y9mmiw8RB4AYTKYRh2SP2njo 4ejqJtTmplykj4DziYDx5EM4bsQMuQS4yllNOG/rcj8cPCUrRIERoKenvEPaupTf7xw1 F64g== X-Gm-Message-State: AG10YOTsfs1m6VyBneuOvP/DjdVZdSQgunlMMdaGM+i+fXqOAIUOwGDN5D5qAfBGGRVq8QpBnJykFE3kJ9F5SotF MIME-Version: 1.0 X-Received: by 10.129.55.216 with SMTP id e207mr3955059ywa.277.1454590920062; Thu, 04 Feb 2016 05:02:00 -0800 (PST) Received: by 10.129.84.198 with HTTP; Thu, 4 Feb 2016 05:01:59 -0800 (PST) In-Reply-To: References: Date: Thu, 4 Feb 2016 18:31:59 +0530 Message-ID: Subject: Re: patch for cast module From: Sanket Mehta To: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a114347581607a6052af157f1 X-Pg-Spam-Score: -1.9 (-) 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 --001a114347581607a6052af157f1 Content-Type: multipart/alternative; boundary=001a114347581607a1052af157ef --001a114347581607a1052af157ef Content-Type: text/plain; charset=UTF-8 Hi Akshay, PFA the latest patch for Cast module. Please do review it and let me know if anything is missing. Regards, Sanket Mehta Sr Software engineer Enterprisedb On Wed, Jan 20, 2016 at 5:03 PM, Sanket Mehta wrote: > Hi Neel. > > PFA the revised patch which has changed according to your comments. > Please do review it and let me know in case anything is missing. > > > > Regards, > Sanket Mehta > Sr Software engineer > Enterprisedb > > On Wed, Jan 20, 2016 at 10:20 AM, Neel Patel > wrote: > >> Hi Sanket, >> >> Below are the review comments. >> >> - When we edit any existing cast node then it gives error "*Response >> object has no attribute strip*". This error is coming because generated >> SQL is >> wrong. >> - Unnecessary debug logs are coming on console. Please remove unnecessary >> debug logs. >> - In some of the sql file, 'qtIdent' and 'qtLiteral' is not used. Please >> check all the SQL files. >> - "Delete" cast functionality is not working. Error is getting displayed >> saying *"syntax error at or near "castsource"*. >> - "Delete cascade" functionality is not working - error is getting >> displayed saying *"The requested URL not found".* >> - Do the proper comments, in some of the function like "script_load" , >> comments are wrong. >> - Is "configs" really required in __init__.py file ? We have not seen any >> usage for this. Please remove it if it is not required. >> - Remove commented code from the source file. >> >> Please check all the generated SQL statements . Test the basic >> functionality of "create", "Edit" and "Delete" node before sending patch >> file. >> >> Do let us know for any comments/issues. >> >> Thanks, >> Neel Patel >> >> On Tue, Jan 19, 2016 at 8:06 PM, Sanket Mehta < >> sanket.mehta@enterprisedb.com> wrote: >> >>> Hi, >>> >>> PFA updated patch for cast module as per check list provided by Neel. >>> Please do review it and let me know in case of anything is missing. >>> >>> >>> >>> Regards, >>> Sanket Mehta >>> Sr Software engineer >>> Enterprisedb >>> >>> On Mon, Jan 18, 2016 at 7:16 PM, Sanket Mehta < >>> sanket.mehta@enterprisedb.com> wrote: >>> >>>> Hi, >>>> >>>> PFA patch for cast module. >>>> Please do review it and let me know in case of any issue. >>>> >>>> >>>> Regards, >>>> Sanket Mehta >>>> Sr Software engineer >>>> Enterprisedb >>>> >>> >>> >>> >>> -- >>> Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) >>> To make changes to your subscription: >>> http://www.postgresql.org/mailpref/pgadmin-hackers >>> >>> >> > --001a114347581607a1052af157ef Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Akshay,

PFA the latest patch for= Cast module.
Please do review it and let me know if anything is m= issing.


Regards,
Sanket Mehta
=
Sr Software engineer
Enterprisedb

On Wed, Jan 20, 2016 at 5:03 PM, Sanket Meht= a <sanket.mehta@enterprisedb.com> wrote:
Hi Neel.

PFA= the revised patch which has changed according to your comments.
= Please do review it and let me know in case anything is missing.
=

=
Regards,
Sanket Mehta
Sr Software engineer
Enterprisedb

On Wed, Jan 20= , 2016 at 10:20 AM, Neel Patel <neel.patel@enterprisedb.com&= gt; wrote:
H= i Sanket,

Below are the review comments.

- When we edit any existing cast node then it gives error "= Response object has no attribute strip". This error is coming b= ecause generated SQL is=C2=A0
=C2=A0 wrong.
- Unnecessary debug log= s are coming on console. Please remove unnecessary debug logs.
- = In some of the sql file, 'qtIdent' and 'qtLiteral' is not u= sed. Please check all the SQL files.
- "Delete" c= ast functionality is not working. Error is getting displayed saying &quo= t;syntax error at or near "castsource".=C2=A0
-=C2= =A0"Delete cascade" functionality is not working=C2=A0- error is = getting displayed saying "The requested URL not found".
- Do the proper comments, in some of the function like "script= _load" , comments are wrong.
- Is "configs" really= required in __init__.py file ? We have not seen any usage for this. Please= remove it if it is not required.
- Remove commented code from th= e source file.

Please check all the generated SQL = statements . Test the basic functionality of "create", "Edit= " and "Delete" node before sending patch file.
Do let us know for any comments/issues.

Thanks,
Neel Patel

On Tue, Jan 19, 2016 at 8:06 PM, Sanket Meht= a <sanket.mehta@enterprisedb.com> wrote:
Hi,

=
PFA updated patch for cast module as per check list provided by Neel.<= /div>
Please do review it and let me know in case of anything is missin= g.



Regards,
Sanket Mehta
Sr Software engineer
Enterprisedb

On Mon, Jan 18, 2016 at 7:1= 6 PM, Sanket Mehta <sanket.mehta@enterprisedb.com> wrote:
Hi,

PFA patch for cast module.
Please do review it and let m= e know in case of any issue.


Regards,
Sanket Mehta
Sr Software eng= ineer
Enterprisedb



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




--001a114347581607a1052af157ef-- --001a114347581607a6052af157f1 Content-Type: text/x-patch; charset=US-ASCII; name="castv5.patch" Content-Disposition: attachment; filename="castv5.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ik89vila1 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy9fX2luaXRfXy5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9jYXN0cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi41YmJhM2Q3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L2Nhc3RzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNDM2IEBACisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0 Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxNiwgVGhlIHBn QWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJl bGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbXBvcnQganNvbgorZnJvbSBm bGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCBtYWtlX3Jlc3BvbnNlLCBj dXJyZW50X2FwcCwgcmVxdWVzdCwganNvbmlmeQorZnJvbSBmbGFzay5leHQu YmFiZWwgaW1wb3J0IGdldHRleHQKK2Zyb20gcGdhZG1pbi51dGlscy5hamF4 IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIFwKKyAgICBtYWtlX3Jlc3Bv bnNlIGFzIGFqYXhfcmVzcG9uc2UsIGludGVybmFsX3NlcnZlcl9lcnJvcgor ZnJvbSBwZ2FkbWluLmJyb3dzZXIudXRpbHMgaW1wb3J0IE5vZGVWaWV3Citm cm9tIHBnYWRtaW4uYnJvd3Nlci5jb2xsZWN0aW9uIGltcG9ydCBDb2xsZWN0 aW9uTm9kZU1vZHVsZQoraW1wb3J0IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzIGFzIGRhdGFiYXNlcworZnJvbSBw Z2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IHByZWNvbmRpdGlvbl9yZXF1aXJl ZAorZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZl cgorZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCitmcm9t IGZ1bmN0b29scyBpbXBvcnQgd3JhcHMKK2Zyb20gaHRtbCBpbXBvcnQgZXNj YXBlCisKKworY2xhc3MgQ2FzdE1vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVs ZSk6CisgICAgTk9ERV9UWVBFID0gJ2Nhc3QnCisgICAgQ09MTEVDVElPTl9M QUJFTCA9ICdDYXN0cycKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJn cywgKiprd2FyZ3MpOgorICAgICAgICBzdXBlcihDYXN0TW9kdWxlLCBzZWxm KS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisKKyAgICBkZWYgZ2V0X25v ZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQpOgorICAgICAgICAiIiIKKyAgICAg ICAgR2VuZXJhdGUgdGhlIGNvbGxlY3Rpb24gbm9kZQorICAgICAgICAiIiIK KyAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rp b25fbm9kZShkaWQpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc2NyaXB0 X2xvYWQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBMb2FkIHRoZSBt b2R1bGUgc2NyaXB0IGZvciBjYXN0LCB3aGVuIGFueSBvZiB0aGUgZGF0YWJh c2Ugbm9kZSBpcworICAgICAgICBpbml0aWFsaXplZC4KKyAgICAgICAgIiIi CisgICAgICAgIHJldHVybiBkYXRhYmFzZXMuRGF0YWJhc2VNb2R1bGUuTk9E RV9UWVBFCisKKworYmx1ZXByaW50ID0gQ2FzdE1vZHVsZShfX25hbWVfXykK KworCitjbGFzcyBDYXN0VmlldyhOb2RlVmlldyk6CisgICAgbm9kZV90eXBl ID0gYmx1ZXByaW50Lm5vZGVfdHlwZQorCisgICAgcGFyZW50X2lkcyA9IFsK KyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZ2lkJ30sCisg ICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3NpZCd9LAorICAg ICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdkaWQnfQorICAgICAg ICAgICAgXQorICAgIGlkcyA9IFsKKyAgICAgICAgICAgIHsndHlwZSc6ICdp bnQnLCAnaWQnOiAnY2lkJ30KKyAgICAgICAgICAgIF0KKworICAgIG9wZXJh dGlvbnMgPSBkaWN0KHsKKyAgICAgICAgJ29iaic6IFsKKyAgICAgICAgICAg IHsnZ2V0JzogJ3Byb3BlcnRpZXMnLCAnZGVsZXRlJzogJ2RlbGV0ZScsICdw dXQnOiAndXBkYXRlJ30sCisgICAgICAgICAgICB7J2dldCc6ICdsaXN0Jywg J3Bvc3QnOiAnY3JlYXRlJ30KKyAgICAgICAgXSwKKyAgICAgICAgJ2NoaWxk cmVuJzogW3sKKyAgICAgICAgICAgICdnZXQnOiAnY2hpbGRyZW4nCisgICAg ICAgIH1dLAorICAgICAgICAnZGVsZXRlJzogW3snZGVsZXRlJzogJ2RlbGV0 ZSd9XSwKKyAgICAgICAgJ25vZGVzJzogW3snZ2V0JzogJ25vZGUnfSwgeydn ZXQnOiAnbm9kZXMnfV0sCisgICAgICAgICdzcWwnOiBbeydnZXQnOiAnc3Fs J31dLAorICAgICAgICAnbXNxbCc6IFt7J2dldCc6ICdtc3FsJ30sIHsnZ2V0 JzogJ21zcWwnfV0sCisgICAgICAgICdzdGF0cyc6IFt7J2dldCc6ICdzdGF0 aXN0aWNzJ31dLAorICAgICAgICAnZGVwZW5kZW5jeSc6IFt7J2dldCc6ICdk ZXBlbmRlbmNpZXMnfV0sCisgICAgICAgICdkZXBlbmRlbnQnOiBbeydnZXQn OiAnZGVwZW5kZW50cyd9XSwKKyAgICAgICAgJ21vZHVsZS5qcyc6IFt7fSwg e30sIHsnZ2V0JzogJ21vZHVsZV9qcyd9XSwKKyAgICAgICAgJ2dldF90eXBl JzogW3snZ2V0JzogJ2dldF9zb3VyY2VUYXJnZXRfdHlwZSd9LCB7J2dldCc6 ICdnZXRfc291cmNlVGFyZ2V0X3R5cGUnfV0sCisgICAgICAgICdnZXRmdW5j dGlvbnMnOiBbeydwb3N0JzogJ2dldF9mdW5jdGlvbnMnfSwgeydwb3N0Jzog J2dldF9mdW5jdGlvbnMnfV0KKyAgICB9KQorCisgICAgZGVmIG1vZHVsZV9q cyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgcHJvcGVydHkg ZGVmaW5lcyAoaWYgamF2YXNjcmlwdCkgZXhpc3RzIGZvciB0aGlzIG5vZGUu CisgICAgICAgIE92ZXJyaWRlIHRoaXMgcHJvcGVydHkgZm9yIHlvdXIgb3du IGxvZ2ljLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIG1ha2VfcmVz cG9uc2UoCisgICAgICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRlKAorICAg ICAgICAgICAgICAgICAgICAiY2FzdC9qcy9jYXN0cy5qcyIsCisgICAgICAg ICAgICAgICAgICAgIF89Z2V0dGV4dAorICAgICAgICAgICAgICAgICAgICAp LAorICAgICAgICAgICAgICAgIDIwMCwgeydDb250ZW50LVR5cGUnOiAnYXBw bGljYXRpb24veC1qYXZhc2NyaXB0J30KKyAgICAgICAgICAgICAgICApCisK KyAgICBkZWYgY2hlY2tfcHJlY29uZGl0aW9uKGYpOgorICAgICAgICAiIiIK KyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2ZSBhcyBhIGRlY29y YXRvciB3aGljaCB3aWxsIGNoZWNrcworICAgICAgICBkYXRhYmFzZSBjb25u ZWN0aW9uIGJlZm9yZSBydW5uaW5nIHZpZXcsIGl0IHdpbGwgYWxzbyBhdHRh Y2hlcworICAgICAgICBtYW5hZ2VyLGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHBy b3BlcnRpZXMgdG8gc2VsZgorICAgICAgICAiIiIKKyAgICAgICAgQHdyYXBz KGYpCisgICAgICAgIGRlZiB3cmFwKCphcmdzLCAqKmt3YXJncyk6CisgICAg ICAgICAgICAjIEhlcmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJn cyB3aWxsIGhvbGQgZ2lkLHNpZCxkaWQKKyAgICAgICAgICAgIHNlbGYgPSBh cmdzWzBdCisgICAgICAgICAgICBzZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVy KFBHX0RFRkFVTFRfRFJJVkVSKS5jb25uZWN0aW9uX21hbmFnZXIoa3dhcmdz WydzaWQnXSkKKyAgICAgICAgICAgIHNlbGYuY29ubiA9IHNlbGYubWFuYWdl ci5jb25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2RpZCddKQorICAgICAgICAgICAg IyBJZiBEQiBub3QgY29ubmVjdGVkIHRoZW4gcmV0dXJuIGVycm9yIHRvIGJy b3dzZXIKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVk KCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1 aXJlZCgKKyAgICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVy IGhhcyBiZWVuIGxvc3QhIgorICAgICAgICAgICAgICAgICAgICApCisgICAg ICAgICAgICAgICAgKQorICAgICAgICAgICAgdmVyID0gc2VsZi5tYW5hZ2Vy LnZlcnNpb24KKyAgICAgICAgICAgICMgd2Ugd2lsbCBzZXQgdGVtcGxhdGUg cGF0aCBmb3Igc3FsIHNjcmlwdHMKKyAgICAgICAgICAgIGlmIHZlciA+PSA5 MDAwMDoKKyAgICAgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGggPSAn Y2FzdC9zcWwvOS4wX3BsdXMnCisKKyAgICAgICAgICAgIHJldHVybiBmKCph cmdzLCAqKmt3YXJncykKKworICAgICAgICByZXR1cm4gd3JhcAorCisKKyAg ICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGxpc3Qoc2VsZiwgZ2lk LCBzaWQsIGRpZCk6CisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgK KyAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdw cm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgIGRhdGxhc3RzeXNvaWQ9 c2VsZi5tYW5hZ2VyLmRiX2luZm9bZGlkXVsnZGF0bGFzdHN5c29pZCddCisg ICAgICAgICAgICApCisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25u LmV4ZWN1dGVfZGljdChTUUwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9cmVzKQorCisgICAgICAgIGZvciByb3cgaW4gcmVzWydyb3dzJ106 CisgICAgICAgICAgICByb3dbJ2Nhc3Rjb250ZXh0J10gPSBUcnVlIGlmIHJv d1snY2FzdGNvbnRleHQnXSA9PSAnSU1QTElDSVQnIGVsc2UgRmFsc2UKKwor ICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAg ICByZXNwb25zZT1yZXNbJ3Jvd3MnXSwKKyAgICAgICAgICAgICAgICBzdGF0 dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNv bmRpdGlvbgorICAgIGRlZiBub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlkKToK KyAgICAgICAgcmVzID0gW10KKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBs YXRlKAorICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0 aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAgICAgZGF0bGFzdHN5 c29pZD1zZWxmLm1hbmFnZXIuZGJfaW5mb1tkaWRdWydkYXRsYXN0c3lzb2lk J10KKyAgICAgICAgICAgICkKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2Vs Zi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAgICAgIGlmIG5vdCBz dGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXJzZXQpCisKKyAgICAgICAgZm9yIHJvdyBpbiByc2V0 Wydyb3dzJ106CisgICAgICAgICAgICByb3dbJ2Nhc3Rjb250ZXh0J10gPSBU cnVlIGlmIHJvd1snY2FzdGNvbnRleHQnXSA9PSAnSU1QTElDSVQnIGVsc2Ug RmFsc2UKKyAgICAgICAgICAgIHJlcy5hcHBlbmQoCisgICAgICAgICAgICAg ICAgICAgIHNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgK KyAgICAgICAgICAgICAgICAgICAgICAgIHJvd1snb2lkJ10sCisgICAgICAg ICAgICAgICAgICAgICAgICByb3dbJ25hbWUnXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgIGljb249Imljb24tY2FzdCIKKyAgICAgICAgICAgICAgICAg ICAgKSkKKworICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAor ICAgICAgICAgICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgICAgIHN0 YXR1cz0yMDAKKyAgICAgICAgICAgICAgICApCisKKyAgICBAY2hlY2tfcHJl Y29uZGl0aW9uCisgICAgZGVmIHByb3BlcnRpZXMoc2VsZiwgZ2lkLCBzaWQs IGRpZCwgY2lkKToKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKAor ICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3By b3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAgICAgY2lkPWNpZCwKKyAgICAg ICAgICAgIGRhdGxhc3RzeXNvaWQ9c2VsZi5tYW5hZ2VyLmRiX2luZm9bZGlk XVsnZGF0bGFzdHN5c29pZCddCisgICAgICAgICAgICApCisgICAgICAgIHN0 YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisKKyAg ICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICByZXN1 bHQgPSByZXNbJ3Jvd3MnXVswXQorICAgICAgICByZXN1bHRbJ2Nhc3Rjb250 ZXh0J10gPSBUcnVlIGlmIHJlc3VsdFsnY2FzdGNvbnRleHQnXSA9PSAnSU1Q TElDSVQnIGVsc2UgRmFsc2UKKworICAgICAgICByZXR1cm4gYWpheF9yZXNw b25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZT1yZXNbJ3Jvd3MnXVsw XSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAg ICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBjcmVh dGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCk6CisgICAgICAgICIiIgorICAgICAg ICBUaGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRlcyBuZXcgdGhlIGNhc3Qgb2Jq ZWN0CisgICAgICAgICIiIgorCisgICAgICAgIHJlcXVpcmVkX2FyZ3MgPSBb CisgICAgICAgICAgICAnc3JjdHlwJywKKyAgICAgICAgICAgICd0cmd0eXAn CisgICAgICAgIF0KKworICAgICAgICBkYXRhID0gcmVxdWVzdC5mb3JtIGlm IHJlcXVlc3QuZm9ybSBlbHNlIGpzb24ubG9hZHMocmVxdWVzdC5kYXRhLmRl Y29kZSgpKQorICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6Cisg ICAgICAgICAgICBpZiBhcmcgbm90IGluIGRhdGE6CisgICAgICAgICAgICAg ICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAg ICAgICAgc3RhdHVzPTQxMCwKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vz cz0wLAorICAgICAgICAgICAgICAgICAgICBlcnJvcm1zZz1nZXR0ZXh0KAor ICAgICAgICAgICAgICAgICAgICAgICAgIkNvdWxkbid0IGZpbmQgdGhlIHJl cXVpcmVkIHBhcmFtZXRlciAoJXMpLiIgJSBhcmcKKyAgICAgICAgICAgICAg ICAgICAgKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgdHJ5OgorICAg ICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxm LnRlbXBsYXRlX3BhdGgsICdjcmVhdGUuc3FsJ10pLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25uPXNlbGYuY29ubiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgc3Rh dHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAg ICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAg ICAgICAgICAgIyB3ZSBuZWVkIG9pZCB0byB0byBhZGQgb2JqZWN0IGluIHRy ZWUgYXQgYnJvd3NlciwgYmVsb3cgc3FsIHdpbGwgZ2l2ZXMgdGhlIHNhbWUK KyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjdHlwPWRhdGFbJ3Ny Y3R5cCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRy Z3R5cD1kYXRhWyd0cmd0eXAnXSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkYXRsYXN0c3lzb2lkPXNlbGYubWFuYWdlci5kYl9pbmZv W2RpZF1bJ2RhdGxhc3RzeXNvaWQnXQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICApCisgICAgICAgICAgICBzdGF0dXMsIGNpZCA9IHNlbGYu Y29ubi5leGVjdXRlX3NjYWxhcihTUUwpCisgICAgICAgICAgICBpZiBub3Qg c3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9Y2lkKQorCisgICAgICAgICAgICByZXR1cm4g anNvbmlmeSgKKyAgICAgICAgICAgICAgICBub2RlPXNlbGYuYmx1ZXByaW50 LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgKKyAgICAgICAgICAgICAgICAgICAg Y2lkLAorICAgICAgICAgICAgICAgICAgICBkYXRhWyduYW1lJ10sCisgICAg ICAgICAgICAgICAgICAgIGljb249Imljb24tY2FzdCIKKyAgICAgICAgICAg ICAgICApCisgICAgICAgICAgICApCisgICAgICAgIGV4Y2VwdCBFeGNlcHRp b24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisKKyAgICBAY2hlY2tfcHJlY29u ZGl0aW9uCisgICAgZGVmIHVwZGF0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBj aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxs IHVwZGF0ZSBjYXN0IG9iamVjdAorICAgICAgICAiIiIKKyAgICAgICAgZGF0 YSA9IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZvcm0gZWxzZSBqc29uLmxv YWRzKHJlcXVlc3QuZGF0YS5kZWNvZGUoKSkKKyAgICAgICAgU1FMID0gc2Vs Zi5nZXRTUUwoZ2lkLCBzaWQsIGRpZCwgZGF0YSwgY2lkKQorICAgICAgICB0 cnk6CisgICAgICAgICAgICBpZiBTUUwgYW5kIFNRTC5zdHJpcCgnXG4nKSBh bmQgU1FMLnN0cmlwKCcgJyk6CisgICAgICAgICAgICAgICAgc3RhdHVzLCBy ZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJl dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisg ICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAg ICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAg ICAgICBpbmZvPSJDYXN0IHVwZGF0ZWQiLAorICAgICAgICAgICAgICAgICAg ICBkYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgICAgICdpZCc6IGNpZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICdzaWQnOiBzaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAnZ2lkJzogZ2lkLAorICAgICAgICAgICAgICAg ICAgICAgICAgJ2RpZCc6IGRpZAorICAgICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAg ICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAg ICAgICAgICAgICBzdWNjZXNzPTEsCisgICAgICAgICAgICAgICAgICAgIGlu Zm89Ik5vdGhpbmcgdG8gdXBkYXRlIiwKKyAgICAgICAgICAgICAgICAgICAg ZGF0YT17CisgICAgICAgICAgICAgICAgICAgICAgICAnaWQnOiBjaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgJ2dpZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICdkaWQnOiBkaWQKKyAgICAgICAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFz IGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24K KyAgICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIGNpZCk6Cisg ICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZHJvcCB0 aGUgY2FzdCBvYmplY3QKKyAgICAgICAgIiIiCisgICAgICAgICMgQmVsb3cg d2lsbCBkZWNpZGUgaWYgaXQncyBzaW1wbGUgZHJvcCBvciBkcm9wIHdpdGgg Y2FzY2FkZSBjYWxsCisgICAgICAgIGlmIHNlbGYuY21kID09ICdkZWxldGUn OgorICAgICAgICAgICAgIyBUaGlzIGlzIGEgY2FzY2FkZSBvcGVyYXRpb24K KyAgICAgICAgICAgIGNhc2NhZGUgPSBUcnVlCisgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICBjYXNjYWRlID0gRmFsc2UKKworICAgICAgICB0cnk6Cisg ICAgICAgICAgICAjIEdldCBuYW1lIGZvciBjYXN0IGZyb20gY2lkCisgICAg ICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYu dGVtcGxhdGVfcGF0aCwgJ2RlbGV0ZS5zcWwnXSksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY2lkPWNpZCkKKyAgICAgICAgICAgIHN0 YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAg ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAg ICAgICAgICAjIGRyb3AgY2FzdAorICAgICAgICAgICAgcmVzdWx0ID0gcmVz Wydyb3dzJ11bMF0KKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnZGVsZXRlLnNxbCdd KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXN0c291 cmNlPXJlc3VsdFsnY2FzdHNvdXJjZSddLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNhc3R0YXJnZXQ9cmVzdWx0WydjYXN0dGFyZ2V0 J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzY2Fk ZT1jYXNjYWRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0 ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJlcykKKworICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9y ZXNwb25zZSgKKyAgICAgICAgICAgICAgICBzdWNjZXNzPTEsCisgICAgICAg ICAgICAgICAgaW5mbz1nZXR0ZXh0KCJDYXN0IGRyb3BwZWQiKSwKKyAgICAg ICAgICAgICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgJ2lkJzog Y2lkLAorICAgICAgICAgICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAg ICAgICAgICAgICAgICAnZ2lkJzogZ2lkLAorICAgICAgICAgICAgICAgICAg ICAnZGlkJzogZGlkCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg KQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3Ry KGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBtc3Fs KHNlbGYsIGdpZCwgc2lkLCBkaWQsIGNpZD1Ob25lKToKKyAgICAgICAgIiIi CisgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgbW9kaWZpZWQgU1FM CisgICAgICAgICIiIgorICAgICAgICBkYXRhID0gcmVxdWVzdC5hcmdzCisg ICAgICAgIFNRTCA9IHNlbGYuZ2V0U1FMKGdpZCwgc2lkLCBkaWQsIGRhdGEs IGNpZCkKKyAgICAgICAgaWYgaXNpbnN0YW5jZShTUUwsIHN0cikgYW5kIFNR TCBhbmQgU1FMLnN0cmlwKCdcbicpIGFuZCBTUUwuc3RyaXAoJyAnKToKKyAg ICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAg ICAgICAgICAgICAgIGRhdGE9U1FMLAorICAgICAgICAgICAgICAgICAgICBz dGF0dXM9MjAwCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgZWxz ZToKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisg ICAgICAgICAgICAgICAgICAgIGRhdGE9Ii0tbW9kaWZpZWQgU1FMIiwKKyAg ICAgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAg ICAgICApCisKKyAgICBkZWYgZ2V0U1FMKHNlbGYsIGdpZCwgc2lkLCBkaWQs IGRhdGEsIGNpZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMg ZnVuY3Rpb24gd2lsbCByZXR1cm4gU1FMIGZvciBtb2RlbCBkYXRhCisgICAg ICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBpZiBjaWQgaXMg bm90IE5vbmU6CisgICAgICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBs YXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVz LnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2lkPWNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGF0bGFzdHN5c29pZD1zZWxmLm1hbmFnZXIuZGJfaW5mb1tkaWRd WydkYXRsYXN0c3lzb2lkJ10pCisgICAgICAgICAgICAgICAgc3RhdHVzLCBy ZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKworICAgICAgICAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJl dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisg ICAgICAgICAgICAgICAgb2xkX2RhdGEgPSByZXNbJ3Jvd3MnXVswXQorICAg ICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAg ICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Vw ZGF0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwg b19kYXRhPW9sZF9kYXRhCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYgJ3NyY3R5cCcgaW4g ZGF0YSBhbmQgJ3RyZ3R5cCcgaW4gZGF0YToKKyAgICAgICAgICAgICAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBs YXRlX3BhdGgsICdjcmVhdGUuc3FsJ10pLCBkYXRhPWRhdGEsIGNvbm49c2Vs Zi5jb25uKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg ICAgICAgIFNRTCA9ICItLSBpbmNvbXBsZXRlIGRlZmluaXRpb24iCisgICAg ICAgICAgICByZXR1cm4gU1FMCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlv biBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0 aW9uCisgICAgZGVmIGdldF9mdW5jdGlvbnMoc2VsZiwgZ2lkLCBzaWQsIGRp ZCwgY2lkPU5vbmUpOgorICAgICAgICByZXM9W10KKyAgICAgICAgZGF0YSA9 IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZvcm0gZWxzZSBqc29uLmxvYWRz KHJlcXVlc3QuZGF0YS5kZWNvZGUoKSkKKyAgICAgICAgU1FMID0gcmVuZGVy X3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdmdW5j dGlvbnMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzcmN0eXA9ZGF0YVsnc3JjdHlwJ10sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRyZ3R5cD1kYXRhWyd0cmd0eXAn XSkKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVf ZGljdChTUUwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNl dCkKKworICAgICAgICAjIFRPRE86IGFkZCBzY2hlbWFwcmVmaXggdG8gcHJv bmFtZSBiZWZvcmUgYWRkaW5nIGl0IHRvIHZhbHVlIGluIHJlcworICAgICAg ICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgIHJlcy5h cHBlbmQoeydsYWJlbCc6IHJvd1sncHJvbmFtZSddLAorICAgICAgICAgICAg ICAgICAgICAgICAndmFsdWUnOiByb3dbJ3Byb25hbWUnXX0pCisgICAgICAg IHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAg ICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgICAgICAgICBzdGF0dXM9MjAw CisgICAgICAgICAgICAgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25k aXRpb24KKyAgICBkZWYgZ2V0X3NvdXJjZVRhcmdldF90eXBlKHNlbGYsIGdp ZCwgc2lkLCBkaWQsIGNpZD1Ob25lKToKKyAgICAgICAgcmVzID0gW10KKyAg ICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgIi8i LmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2dldHNyY2FuZHRyZ3R0eXBl LnNxbCddKSwKKyAgICAgICAgICAgIGNpZD1jaWQKKyAgICAgICAgICAgICkK KyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfZGlj dChTUUwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkK KworICAgICAgICByZXMgPSBbeydsYWJlbCc6ICcnLCAndmFsdWUnOiAnJ31d CisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAg ICAgIyBUT0RPOiBGb2xsb3cgZGxnVHlwZVByb3BlcnR5OjpGaWxsRGF0YVR5 cGUoKSBmdW5jdGlvbiBiZWZvcmUgYWRkaW5nIHR5cGVuYW1lIHRvIHJlcwor ICAgICAgICAgICAgcmVzLmFwcGVuZCh7CisgICAgICAgICAgICAgICAgJ2xh YmVsJzogcm93Wyd0eXBuYW1lJ10sCisgICAgICAgICAgICAgICAgJ3ZhbHVl JzogZXNjYXBlKHJvd1sndHlwbmFtZSddKQorICAgICAgICAgICAgICAgIH0p CisKKyAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAg ICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAg ICAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRl ZiBzcWwoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgY2lkKToKKyAgICAgICAgIiIi CisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBzcWwgZm9y IHNxbCBwYW5lbAorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAg ICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAg ICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVzLnNx bCddKSwKKyAgICAgICAgICAgICAgICBjaWQ9Y2lkLAorICAgICAgICAgICAg ICAgIGRhdGxhc3RzeXNvaWQ9c2VsZi5tYW5hZ2VyLmRiX2luZm9bZGlkXVsn ZGF0bGFzdHN5c29pZCddCisgICAgICAgICAgICAgICAgKQorICAgICAgICAg ICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkK KyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAg cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisK KyAgICAgICAgICAgIHJlc3VsdCA9IHJlc1sncm93cyddWzBdCisgICAgICAg ICAgICByZXN1bHRbJ2Nhc3Rjb250ZXh0J10gPSBGYWxzZSBpZiByZXN1bHRb J2Nhc3Rjb250ZXh0J10gPT0gJ0VYUExJQ0lUJyBlbHNlIFRydWUKKyAgICAg ICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLCAnY3JlYXRlLnNxbCddKSwgZGF0YT1yZXN1bHQsIGNv bm49c2VsZi5jb25uLCBpc19zcWw9VHJ1ZSkKKyAgICAgICAgICAgIHJldHVy biBhamF4X3Jlc3BvbnNlKHJlc3BvbnNlPVNRTCkKKworICAgICAgICBleGNl cHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworQ2FzdFZpZXcu cmVnaXN0ZXJfbm9kZV92aWV3KGJsdWVwcmludCkKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMvc3RhdGlj L2ltZy9jYXN0LnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy9zdGF0aWMvaW1nL2Nhc3Qu cG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiZTdmMzc0MmE3NjBmYWE3 NzA5MDUyNjY5ZjQ0NGJhODk0OWMzMzAKR0lUIGJpbmFyeSBwYXRjaApsaXRl cmFsIDQyNgp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXjB3QiE2Mz93eWxg R2JLfWEpM3tXRTBBOD1YTElZfmBiaHM+YkVqWHMKemR0Yyg8IylfVnteR2xj aEtlZX4jLVVHUTZFQkBicXNJaEx7fEEmdV9IKmZ5YDxmOzl4VUhfandfYz9n KnxCSUpWCnpDcjxvLXtXe35xaDV2OGdtUmBIfHxOWi0+ZC13aS17TWheV0Am Q2BDcm9ETGFmNnc7RShReyhzZnp+alYxbztJcwp6STZTK04ySU8hU2N0alFo WCU4QFZKREZfPFdZbEBPSUVGfUUmT0x1eXNMNFFwYE5GWlF5d2pER0l5YHAl XyNkQm4KelEwKGBFTzdDVUhYUWUqTmA/KT10XlE3RDh3OH05VipNJk9YbVlj U1FNVFR4WGE1ZVpec1lielZqb0h0bEFNNlg+Cnp3KVZ0NztYVWh1P2FDZzgt cSlUI2Rqc3A/MXZRbjAoI0haeyZhdks+Rzs3TXxLZXppKjFKfDlAd01AQThH SXU1YQp6N2tAU3ZLQSVsTGZpNilrYWc4V1JOaTBkVk4tanpUUVZkMjBoNmNL Wk0hRSl1QXd+dlBDZE83S0NmV3czUnQ1JFoKc0dnYWtLSDAwKXxXVHNVQEcj RlRkSEdvdUc4Skl5ZG9TR2lHMkI/OS0pNzgmcW9sYDsrMDZ6QDNoeVZacAoK bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nh c3RzL3N0YXRpYy9pbWcvY29sbC1jYXN0LnBuZyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy9z dGF0aWMvaW1nL2NvbGwtY2FzdC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MC4uMDllYjY1YWYwMmM2NmJkNjRhYjM0MDVjNTkyZWZlNGQ5MGQ0MWM5OApH SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNDAyCnpjbWVBU0BOPyhvbEh5YHVW QnEhaWEwdnBeMHdCITYzP3d5bGBHYkt9UkRlJjJFMDh8NXdgWGFlTzxscTRO ZEh9UAp6cihlNSFVIXAjKmRnOz50X1p9IXRaNEFwI29jaSNRez1TWG9Qb0NR RS0oPFVMKSZHcWZ8TEB4TXxMRkZGPVB2PmUKekFPOFIwZWNQKjdEUUQwQXxN WTN7K3FiM0h1S21BJXxOcGFSfDFaaFJqMGMqfFNRNndIJTs1MHNNakRYQVM+ Tz5fCno0NVU1NCp6SUp0OWd2YWw+RWFrN2FrPSNUWk42cCYwaFNBP3lHcCY1 WDZRJWhlKjBlXlRvWlpXTlRzcitiKXQpbAp6ajklNExxNHFaT3dmRkRjemN7 T3E8NilybWtzRUombkVpT0Z3QHkzRFZ6KlpPPTgrVEFaPUpRQyZDaD1JbEol cTAKem4jYSVkJE9uNX1lUSFfe2BPMDwxUGtXc15gZylPISFKQW0tdXs7WGc0 enlhZSM1Sk5NQzl4I2NEIUN7WE5IR3swCno3I2lwcjh0RURzaDhQKUduSFhE e219bmNBU3tXRXYldjY7XyhVNjs7bDleVHMoT19UKykmTnAlV25jITthQjZ6 IQpROGxWT1NQZ2cmZWJ4c0xRMDlYZn5mZEJ2aQoKbGl0ZXJhbCAwCkhjbVY/ ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3RlbXBsYXRlcy9j YXN0L2pzL2Nhc3RzLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3RlbXBsYXRlcy9jYXN0 L2pzL2Nhc3RzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjhmOWI4MDYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMv dGVtcGxhdGVzL2Nhc3QvanMvY2FzdHMuanMKQEAgLTAsMCArMSwyMDkgQEAK K2RlZmluZSgKKyAgICAgICAgWydqcXVlcnknLCAndW5kZXJzY29yZScsICd1 bmRlcnNjb3JlLnN0cmluZycsICdwZ2FkbWluJywgJ3BnYWRtaW4uYnJvd3Nl cicsICdhbGVydGlmeScsICdwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlvbidd LAorZnVuY3Rpb24oJCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBhbGVy dGlmeSkgeworCisgICAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwtY2Fz dCddKSB7CisgICAgICB2YXIgY2FzdHMgPSBwZ0FkbWluLkJyb3dzZXIuTm9k ZXNbJ2NvbGwtY2FzdCddID0KKyAgICAgICAgcGdBZG1pbi5Ccm93c2VyLkNv bGxlY3Rpb24uZXh0ZW5kKHsKKyAgICAgICAgICBub2RlOiAnY2FzdCcsCisg ICAgICAgICAgbGFiZWw6ICd7eyBfKCdDYXN0cycpIH19JywKKyAgICAgICAg ICB0eXBlOiAnY29sbC1jYXN0JworICAgICAgICB9KTsKKyAgICB9OworCisg ICAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ2Nhc3QnXSkgeworICAgICAgcGdB ZG1pbi5Ccm93c2VyLk5vZGVzWydjYXN0J10gPSBwZ0FkbWluLkJyb3dzZXIu Tm9kZS5leHRlbmQoeworICAgICAgICBwYXJlbnRfdHlwZTogJ2RhdGFiYXNl JywKKyAgICAgICAgdHlwZTogJ2Nhc3QnLAorICAgICAgICBjYW5Ecm9wOiB0 cnVlLAorICAgICAgICBjYW5Ecm9wQ2FzY2FkZTogdHJ1ZSwKKyAgICAgICAg bGFiZWw6ICd7eyBfKCdDYXN0JykgfX0nLAorICAgICAgICBoYXNTUUw6IHRy dWUsCisgICAgICAgIEluaXQ6IGZ1bmN0aW9uKCkgeworICAgICAgICAgIC8q IEF2b2lkIG11bGl0cGxlIHJlZ2lzdHJhdGlvbiBvZiBtZW51cyAqLworICAg ICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKQorICAgICAgICAgICAgcmV0 dXJuOworCisgICAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7CisK KyAgICAgICAgICBwZ0Jyb3dzZXIuYWRkX21lbnVzKFt7CisgICAgICAgICAg ICBuYW1lOiAnY3JlYXRlX2Nhc3Rfb25fZGF0YWJhc2UnLCBub2RlOiAnZGF0 YWJhc2UnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgICBhcHBsaWVzOiBb J29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJv cGVydGllcycsCisgICAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHBy aW9yaXR5OiA0LCBsYWJlbDogJ3t7IF8oJ0Nhc3QuLi4nKSB9fScsCisgICAg ICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tY2FzdCcsIGRhdGE6IHth Y3Rpb246ICdjcmVhdGUnfQorICAgICAgICAgIH0seworICAgICAgICAgICAg bmFtZTogJ2NyZWF0ZV9jYXN0X29uX2NvbGwnLCBub2RlOiAnY29sbC1jYXN0 JywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgICAgYXBwbGllczogWydvYmpl Y3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRp ZXMnLAorICAgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0 eTogNCwgbGFiZWw6ICd7eyBfKCdDYXN0Li4uJykgfX0nLAorICAgICAgICAg ICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLWNhc3QnLCBkYXRhOiB7YWN0aW9u OiAnY3JlYXRlJ30KKyAgICAgICAgICB9LHsKKyAgICAgICAgICAgIG5hbWU6 ICdjcmVhdGVfY2FzdCcsIG5vZGU6ICdjYXN0JywgbW9kdWxlOiB0aGlzLAor ICAgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBj YWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgICAg Y2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBf KCdDYXN0Li4uJykgfX0nLAorICAgICAgICAgICAgaWNvbjogJ3djVGFiSWNv biBpY29uLWNhc3QnLCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJ30KKyAgICAg ICAgICB9XSk7CisKKyAgICAgICAgfSwKKyAgICAgICAgbW9kZWw6IHBnQWRt aW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7CisgICAgICAgICAgZGVm YXVsdHM6IHsKKyAgICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCwKKyAgICAg ICAgICAgIGVuY29kaW5nOiAnVVRGOCcsCisgICAgICAgICAgICBzcmN0eXA6 IHVuZGVmaW5lZCwKKyAgICAgICAgICAgIHRyZ3R5cDogdW5kZWZpbmVkLAor ICAgICAgICAgICAgcHJvbmFtZTogdW5kZWZpbmVkLAorICAgICAgICAgICAg Y2FzdGNvbnRleHQ6IHVuZGVmaW5lZCwKKyAgICAgICAgICAgIHN5c2Nhc3Q6 IHVuZGVmaW5lZCwKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB1bmRlZmlu ZWQKKyAgICAgICAgICB9LAorICAgICAgICAgIHNjaGVtYTogW3sKKyAgICAg ICAgICAgIGlkOiAnbmFtZScsIGxhYmVsOiAne3sgXygnTmFtZScpIH19Jywg Y2VsbDogJ3N0cmluZycsIGdyb3VwOiAne3sgXygnRGVmaW5pdGlvbicpIH19 JywKKyAgICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZSwgdHlwZTogJ3RleHQn LCBkaXNhYmxlZDogdHJ1ZQorICAgICAgICAgIH0seworICAgICAgICAgICAg aWQ6ICdvaWQnLCBsYWJlbDone3sgXygnT2lkJykgfX0nLCBjZWxsOiAnc3Ry aW5nJywgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0nLAorICAgICAg ICAgICAgZWRpdGFibGU6IGZhbHNlLCB0eXBlOiAndGV4dCcsIGRpc2FibGVk OiB0cnVlCisgICAgICAgICAgfSx7CisgICAgICAgICAgICBpZDogJ3NyY3R5 cCcsIGxhYmVsOid7eyBfKCdTb3VyY2UgdHlwZScpIH19JywgdXJsOiAnZ2V0 X3R5cGUnLAorICAgICAgICAgICAgdHlwZTogJ3RleHQnLCBncm91cDogJ0Rl ZmluaXRpb24nLCBkaXNhYmxlZDogZnVuY3Rpb24obSkgeworICAgICAgICAg ICAgcmV0dXJuICFtLmlzTmV3KCkKKyAgICAgICAgICAgIH0sCisgICAgICAg ICAgICB0cmFuc2Zvcm06IGZ1bmN0aW9uKHJvd3MpIHsKKyAgICAgICAgICAg ICAgXy5lYWNoKHJvd3MsIGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgICAgICAg ICByWydpbWFnZSddID0gJ2ljb24tY2FzdCc7CisgICAgICAgICAgICAgIH0p OworICAgICAgICAgICAgICByZXR1cm4gcm93czsKKyAgICAgICAgICAgIH0s CisgICAgICAgICAgICAvKiAgQXMgbmFtZSBpcyBiZWluZyBnZW5lcmF0ZWQg ZnJvbSBzcmN0eXAgYW5kIHRyZ3R5cCwgYSBjaGVjayBoYXMgYmVlbiBwdXQg aW4KKyAgICAgICAgICAgICAqICBjb250cm9sIGZpZWxkIGlmIGJvdGggYXJl IGNoYW5nZWQgb3Igbm90IGFuZCBkZXBlbmRpbmcgdXBvbiBpdCwgbmFtZSBo YXMgYmVlbiBzZXQuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICBj b250cm9sOiBCYWNrZm9ybS5Ob2RlQWpheE9wdGlvbnNDb250cm9sLmV4dGVu ZCh7CisgICAgICAgICAgICAgICBvbkNoYW5nZTogZnVuY3Rpb24oKSB7Cisg ICAgICAgICAgICAgICAgIEJhY2tmb3JtLk5vZGVBamF4T3B0aW9uc0NvbnRy b2wucHJvdG90eXBlLm9uQ2hhbmdlLmFwcGx5KAorICAgICAgICAgICAgICAg ICAgICB0aGlzLCBhcmd1bWVudHMKKyAgICAgICAgICAgICAgICAgICAgKTsK KyAgICAgICAgICAgICAgICAgdmFyIHNyY3R5cGUgPSB0aGlzLm1vZGVsLmdl dCgnc3JjdHlwJyk7CisgICAgICAgICAgICAgICAgIHZhciB0cmd0eXBlID0g dGhpcy5tb2RlbC5nZXQoJ3RyZ3R5cCcpOworICAgICAgICAgICAgICAgICBp ZihzcmN0eXBlICE9IHVuZGVmaW5lZCAmJiBzcmN0eXBlICE9ICcnICYmCisg ICAgICAgICAgICAgICAgICAgIHRyZ3R5cGUgIT0gdW5kZWZpbmVkICYmIHRy Z3R5cGUgIT0gJycpCisgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5z ZXQoIm5hbWUiLCBzcmN0eXBlKyItPiIrdHJndHlwZSk7CisgICAgICAgICAg ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLnVu c2V0KCJuYW1lIik7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9 KQorICAgICAgICAgIH0seworICAgICAgICAgICAgaWQ6ICd0cmd0eXAnLCBs YWJlbDone3sgXygnVGFyZ2V0IHR5cGUnKSB9fScsIHVybDogJ2dldF90eXBl JywKKyAgICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICdEZWZpbml0 aW9uJywgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICAgICAg cmV0dXJuICFtLmlzTmV3KCkKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAg ICAgIHRyYW5zZm9ybTogZnVuY3Rpb24ocm93cykgeworICAgICAgICAgICAg ICBfLmVhY2gocm93cywgZnVuY3Rpb24ocikgeworICAgICAgICAgICAgICAg IHJbJ2ltYWdlJ10gPSAnaWNvbi1jYXN0JzsKKyAgICAgICAgICAgICAgfSk7 CisgICAgICAgICAgICAgIHJldHVybiByb3dzOworICAgICAgICAgICAgfSwK KyAgICAgICAgICAgIC8qICBBcyBuYW1lIGlzIGJlaW5nIGdlbmVyYXRlZCBm cm9tIHNyY3R5cCBhbmQgdHJndHlwLCBhIGNoZWNrIGhhcyBiZWVuIHB1dCBp bgorICAgICAgICAgICAgICogIGNvbnRyb2wgZmllbGQgaWYgYm90aCBhcmUg Y2hhbmdlZCBvciBub3QgYW5kIGRlcGVuZGluZyB1cG9uIGl0LCBuYW1lIGhh cyBiZWVuIHNldC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgIGNv bnRyb2w6IEJhY2tmb3JtLk5vZGVBamF4T3B0aW9uc0NvbnRyb2wuZXh0ZW5k KHsKKyAgICAgICAgICAgICBvbkNoYW5nZTogZnVuY3Rpb24oKSB7CisgICAg ICAgICAgICAgICBCYWNrZm9ybS5Ob2RlQWpheE9wdGlvbnNDb250cm9sLnBy b3RvdHlwZS5vbkNoYW5nZS5hcHBseSgKKyAgICAgICAgICAgICAgICAgdGhp cywgYXJndW1lbnRzCisgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAg ICAgICB2YXIgc3JjVHlwZSA9IHRoaXMubW9kZWwuZ2V0KCdzcmN0eXAnKTsK KyAgICAgICAgICAgICAgIHZhciB0cmd0eXBlID0gdGhpcy5tb2RlbC5nZXQo J3RyZ3R5cCcpOworICAgICAgICAgICAgICAgaWYoc3JjVHlwZSAhPSB1bmRl ZmluZWQgJiYgc3JjVHlwZSAhPSAnJyAmJgorICAgICAgICAgICAgICAgICAg dHJndHlwZSAhPSB1bmRlZmluZWQgJiYgdHJndHlwZSAhPSAnJykKKyAgICAg ICAgICAgICAgICAgdGhpcy5tb2RlbC5zZXQoIm5hbWUiLCBzcmNUeXBlKyIt PiIrdHJndHlwZSk7CisgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg ICAgICAgIHRoaXMubW9kZWwudW5zZXQoIm5hbWUiKTsKKyAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgfSkKKyAgICAgICAgICB9LHsKKyAgICAgICAg ICAgIGlkOiAncHJvbmFtZScsIGxhYmVsOid7eyBfKCdGdW5jdGlvbicpIH19 JywgZGVwczpbJ3NyY3R5cCcsICd0cmd0eXAnXSwKKyAgICAgICAgICAgIHR5 cGU6ICd0ZXh0JywgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsgcmV0dXJuICFt LmlzTmV3KCk7IH0sCisgICAgICAgICAgICBncm91cDogJ0RlZmluaXRpb24n LAorICAgICAgICAgICAgY29udHJvbDogJ25vZGUtYWpheC1vcHRpb25zJywg b3B0aW9uczogZnVuY3Rpb24oKSB7CisKKyAgICAgICAgICAgICAgdmFyIHNy Y1R5cCA9IHRoaXMubW9kZWwuZ2V0KCdzcmN0eXAnKTsKKyAgICAgICAgICAg ICAgdmFyIHRyZ3R5cCA9IHRoaXMubW9kZWwuZ2V0KCd0cmd0eXAnKTsKKyAg ICAgICAgICAgICAgdmFyIHJlcyA9IFtdOworICAgICAgICAgICAgICAvKiAg T24gc3JjdHlwIGFuZCB0cmd0eXAgc3RhdGUgY2hhbmdlIGV2ZW50IGFuIGFq YXggY2FsbCBpcyBtYWRlIHRvCisgICAgICAgICAgICAgICogICBmZXRjaCBs aXN0IG9mIHJlbGF0ZWQgZnVuY3Rpb25zCisgICAgICAgICAgICAgICovCisg ICAgICAgICAgICAgIGlmKHNyY1R5cCAhPSB1bmRlZmluZWQgJiYgc3JjVHlw ICE9ICcnICYmCisgICAgICAgICAgICAgICAgIHRyZ3R5cCAhPSB1bmRlZmlu ZWQgJiYgdHJndHlwICE9ICcnKQorICAgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgIHZhciBub2RlID0gdGhpcy5maWVsZC5nZXQoJ3NjaGVtYV9u b2RlJyksCisgICAgICAgICAgICAgICAgIF91cmwgPSBub2RlLmdlbmVyYXRl X3VybC5hcHBseSgKKyAgICAgICAgICAgICAgICAgbm9kZSwgWworICAgICAg ICAgICAgICAgICAgIG51bGwsICdnZXRmdW5jdGlvbnMnLCB0aGlzLmZpZWxk LmdldCgnbm9kZV9kYXRhJyksIGZhbHNlLAorICAgICAgICAgICAgICAgICAg IHRoaXMuZmllbGQuZ2V0KCdub2RlX2luZm8nKQorICAgICAgICAgICAgICAg ICBdKTsKKyAgICAgICAgICAgICAgICAgJC5hamF4KHsKKyAgICAgICAgICAg ICAgICAgdHlwZTogJ1BPU1QnLAorICAgICAgICAgICAgICAgICB0aW1lb3V0 OiAzMDAwMCwKKyAgICAgICAgICAgICAgICAgdXJsOiBfdXJsLAorICAgICAg ICAgICAgICAgICBjYWNoZTogZmFsc2UsCisgICAgICAgICAgICAgICAgIGRh dGE6IHsic3JjdHlwIiA6IHNyY1R5cCwgInRyZ3R5cCIgOiB0cmd0eXB9LAor ICAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHsKKyAg ICAgICAgICAgICAgICAgICByZXR1cm4gcmVzLmRhdGE7CisgICAgICAgICAg ICAgICAgIH0sCisgICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbih4 aHIsIHN0YXR1cywgZXJyb3IpIHsKKyAgICAgICAgICAgICAgICAgICB0cnkg eworICAgICAgICAgICAgICAgICAgICAgdmFyIGVyciA9ICQucGFyc2VKU09O KHhoci5yZXNwb25zZVRleHQpOworICAgICAgICAgICAgICAgICAgICAgaWYg KGVyci5zdWNjZXNzID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAg bXNnID0gUygne3sgXygnICsgZXJyLmVycm9ybXNnICsgJyl9fScpLnZhbHVl KCk7CisgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0aWZ5LmVycm9yKCJ7 eyBfKCciICsgZXJyLmVycm9ybXNnICsgIicpIH19Iik7CisgICAgICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkg e30KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor ICAgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzOworICAg ICAgICAgIH0KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdjYXN0Y29u dGV4dCcsIGxhYmVsOid7eyBfKCdDb250ZXh0JykgfX0nLCBvcHRpb25zOnsn b25UZXh0JzonSU1QTElDSVQnLCdvZmZUZXh0JzonRVhQTElDSVQnfSwKKyAg ICAgICAgICBlZGl0YWJsZTogZmFsc2UsIHR5cGU6ICdzd2l0Y2gnLCBkaXNh YmxlZDogZnVuY3Rpb24obSkgeyByZXR1cm4gIW0uaXNOZXcoKTsgfSwKKyAg ICAgICAgICBncm91cDogJ0RlZmluaXRpb24nCisgICAgICAgIH0seworICAg ICAgICAgIGlkOiAnc3lzY2FzdCcsIGxhYmVsOid7eyBfKCdTeXN0ZW0gQ2Fz dD8nKSB9fScsIG1vZGU6IFsncHJvcGVydGllcyddLAorICAgICAgICAgIGVk aXRhYmxlOiBmYWxzZSwgdHlwZTogJ3RleHQnCisgICAgICAgIH0seworICAg ICAgICAgIGlkOiAnZGVzY3JpcHRpb24nLCBsYWJlbDone3sgXygnQ29tbWVu dCcpIH19Jyx0eXBlOiAndGV4dCcsIGdyb3VwOiAnUHJvcGVydGllcycsCisg ICAgICAgICAgdHlwZTogJ211bHRpbGluZScKKyAgICAgICAgfQorICAgICAg ICBdLAorICAgICAgICB2YWxpZGF0ZTogZnVuY3Rpb24oa2V5cyl7CisgICAg ICAgIC8qCisgICAgICAgICAgICAqIFRyaWdnZXJzIHNwZWNpZmljIGVycm9y IG1lc3NhZ2VzIGZvciBzcmN0eXAgYW5kCisgICAgICAgICAgICAqIHRyZ3R5 cCBpZiBhbnkgb25lIG9mIHRoZW0gaXMgbm90IHNlbGVjdGVkCisgICAgICAg ICovCisgICAgICAgICAgdmFyIHNyY3R5cGUgPSB0aGlzLmdldCgnc3JjdHlw Jyk7CisgICAgICAgICAgdmFyIHRyZ3R5cGUgPSB0aGlzLmdldCgndHJndHlw Jyk7CisgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQoc3JjdHlwZSkgfHwg Xy5pc051bGwoc3JjdHlwZSkgfHwgU3RyaW5nKHNyY3R5cGUpLnJlcGxhY2Uo L15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgIHZhciBt c2cgPSAne3sgXygnU291cmNlIHR5cGUgbXVzdCBiZSBzZWxlY3RlZCEnKSB9 fSc7CisgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCdzcmN0eXAn LCBtc2cpOworICAgICAgICAgICAgcmV0dXJuIG1zZzsKKyAgICAgICAgICB9 CisgICAgICAgICAgZWxzZQorICAgICAgICAgIHsKKyAgICAgICAgICAgIHRo aXMuZXJyb3JNb2RlbC51bnNldCgnc3JjdHlwJyk7CisgICAgICAgICAgfQor CisgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQodHJndHlwZSkgfHwgXy5p c051bGwodHJndHlwZSkgfHwgU3RyaW5nKHRyZ3R5cGUpLnJlcGxhY2UoL15c cyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgIHZhciBtc2cg PSAne3sgXygnVGFyZ2V0IHR5cGUgbXVzdCBiZSBzZWxlY3RlZCEnKSB9fSc7 CisgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCd0cmd0eXAnLCBt c2cpOworICAgICAgICAgICAgcmV0dXJuIG1zZzsKKyAgICAgICAgICB9Cisg ICAgICAgICAgZWxzZQorICAgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMu ZXJyb3JNb2RlbC51bnNldCgndHJndHlwJyk7CisgICAgICAgICAgfQorICAg ICAgICAgIHRoaXMudHJpZ2dlcignb24tc3RhdHVzLWNsZWFyJyk7CisgICAg ICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgIH0pCisgIH0p OworCisgIH0KKyAgICByZXR1cm4gcGdCcm93c2VyLk5vZGVzWydjb2xsLWNh c3QnXTsKK30pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZW1wbGF0ZXMvY2FzdC9zcWwvOS4wX3Bs dXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZW1wbGF0ZXMvY2FzdC9z cWwvOS4wX3BsdXMvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi41MDFhYTFhCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL2Nhc3RzL3RlbXBsYXRlcy9jYXN0L3NxbC85LjBfcGx1cy9jcmVhdGUu c3FsCkBAIC0wLDAgKzEsMjEgQEAKKworCit7IyBDUkVBVEUgQ0FTVCBTdGF0 ZW1lbnQgI30KK3slIGlmIGlzX3NxbCAlfQorLS0gRFJPUCBDQVNUICh7eyBj b25ufHF0VHlwZUlkZW50KGRhdGEuc3JjdHlwKSB9fSBBUyB7eyBjb25ufHF0 VHlwZUlkZW50KGRhdGEudHJndHlwKSB9fSk7CisKK3slIGVuZGlmICV9Cit7 JSBpZiBkYXRhIGFuZCBkYXRhLnNyY3R5cCBhbmQgZGF0YS50cmd0eXAgJX0K K0NSRUFURSBDQVNUICh7eyBjb25ufHF0VHlwZUlkZW50KGRhdGEuc3JjdHlw KSB9fSBBUyB7eyBjb25ufHF0VHlwZUlkZW50KGRhdGEudHJndHlwKSB9fSkK K3slIGlmIGRhdGEucHJvbmFtZSBhbmQgZGF0YS5wcm9uYW1lICE9ICdiaW5h cnkgY29tcGF0aWJsZSclfQorICAgIFdJVEggRlVOQ1RJT04ge3tkYXRhLnBy b25hbWV9fXslIGVsc2UgJX0KKyAgICBXSVRIT1VUIEZVTkNUSU9OeyUgZW5k aWYgJX0KK3slIGlmIGRhdGEuY2FzdGNvbnRleHQgPT0gVHJ1ZSBvciBkYXRh LmNhc3Rjb250ZXh0ID09ICd0cnVlJyAlfQorCisgICAgQVMgSU1QTElDSVR7 JSBlbmRpZiAlfTsKKworeyMgRGVzY3JpcHRpb24gZm9yIENBU1QgI30KK3sl IGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KK0NPTU1FTlQgT04gQ0FTVCAoe3sg Y29ubnxxdFR5cGVJZGVudChkYXRhLnNyY3R5cCkgfX0gQVMge3sgY29ubnxx dFR5cGVJZGVudChkYXRhLnRyZ3R5cCkgfX0pCisgICAgICBJUyB7eyBkYXRh LmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmICV9eyUgZW5k aWYgJX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvY2FzdHMvdGVtcGxhdGVzL2Nhc3Qvc3FsLzkuMF9wbHVzL2Rl bGV0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvY2FzdHMvdGVtcGxhdGVzL2Nhc3Qvc3FsLzku MF9wbHVzL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMWI4ZDhiNgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9j YXN0cy90ZW1wbGF0ZXMvY2FzdC9zcWwvOS4wX3BsdXMvZGVsZXRlLnNxbApA QCAtMCwwICsxLDE0IEBACit7IyBGRVRDSCBDQVNUIFNPVVJDRSBUWVBFIEFO RCBUQVJHRVQgVFlQRSBTdGF0ZW1lbnQgI30KK3slIGlmIGNpZCAlfQorICBT RUxFQ1QKKyAgICBmb3JtYXRfdHlwZShjYS5jYXN0c291cmNlLCBudWxsKSBh cyBjYXN0c291cmNlLAorICAgIGZvcm1hdF90eXBlKGNhLmNhc3R0YXJnZXQs IG51bGwpIGFzIGNhc3R0YXJnZXQKKyAgRlJPTQorICAgIHBnX2Nhc3QgY2EK KyAgV0hFUkUKKyAgICBjYS5vaWQgPSB7e2NpZH19OjpPSUQ7Cit7JSBlbmRp ZiAlfQoreyMgRFJPUCBDQVNUIFN0YXRlbWVudCAjfQoreyUgaWYgY2FzdHNv dXJjZSBhbmQgY2FzdHRhcmdldCAlfQorRFJPUCBDQVNUICh7e2Nhc3Rzb3Vy Y2V9fSBBUyB7e2Nhc3R0YXJnZXR9fSkgeyUgaWYgY2FzY2FkZSAlfUNBU0NB REV7JWVuZGlmJX07Cit7JSBlbmRpZiAlfQpcIE5vIG5ld2xpbmUgYXQgZW5k IG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZW1wbGF0ZXMv Y2FzdC9zcWwvOS4wX3BsdXMvZnVuY3Rpb25zLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0 cy90ZW1wbGF0ZXMvY2FzdC9zcWwvOS4wX3BsdXMvZnVuY3Rpb25zLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGMwZTRiCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3RlbXBsYXRlcy9jYXN0 L3NxbC85LjBfcGx1cy9mdW5jdGlvbnMuc3FsCkBAIC0wLDAgKzEsMTggQEAK K3sjIEZFVENIIEZVTkNUSU9OUyBkZXBlbmRpbmcgdXBvbiBTT1VSQ0UgVFlQ RSBhbmQgVEFSR0VUIFRZUEUgSU4gQ0FTVCAgI30KK1NFTEVDVAorICBwcm9u YW1lLAorICBuc3BuYW1lLAorICBwcm9hcmd0eXBlcworRlJPTQorICBwZ19w cm9jIHAgSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBuLm9pZD1wLnByb25hbWVz cGFjZQorV0hFUkUKKyAgcHJvYXJndHlwZXNbMF0gPSAoU0VMRUNUIHQub2lk IEZST00gcGdfdHlwZSB0IFdIRVJFIGZvcm1hdF90eXBlKHQub2lkLCBOVUxM KSA9IHt7c3JjdHlwfHF0TGl0ZXJhbH19KQorICBBTkQgcHJvcmV0dHlwZSA9 IChTRUxFQ1QgdC5vaWQgRlJPTSBwZ190eXBlIHQgV0hFUkUgZm9ybWF0X3R5 cGUodC5vaWQsIE5VTEwpID0ge3t0cmd0eXB8cXRMaXRlcmFsfX0pCisgIEFO RAorICAgIENBU0UKKyAgICBXSEVOIGFycmF5X2xlbmd0aChwcm9hcmd0eXBl cywxKSAgPSAyIFRIRU4KKyAgICAgIHByb2FyZ3R5cGVzWzFdID0gMjMKKyAg ICBXSEVOIGFycmF5X2xlbmd0aChwcm9hcmd0eXBlcywxKSAgPj0gMyBUSEVO CisgICAgICBwcm9hcmd0eXBlc1sxXSA9IDIzIEFORCBwcm9hcmd0eXBlc1sy XSA9IDE2CisgICAgRUxTRSBUUlVFCisgICAgRU5ECmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvY2FzdHMvdGVtcGxhdGVzL2Nhc3Qvc3FsLzkuMF9wbHVzL2dldHNy Y2FuZHRyZ3R0eXBlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZW1wbGF0ZXMvY2Fz dC9zcWwvOS4wX3BsdXMvZ2V0c3JjYW5kdHJndHR5cGUuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlMDVjY2IKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvY2FzdHMvdGVtcGxhdGVzL2Nhc3Qvc3FsLzku MF9wbHVzL2dldHNyY2FuZHRyZ3R0eXBlLnNxbApAQCAtMCwwICsxLDQzIEBA CitTRUxFQ1QKKyAgICAqCitGUk9NICgKKwkgICAgU0VMRUNUIGZvcm1hdF90 eXBlKHQub2lkLE5VTEwpIEFTIHR5cG5hbWUsCisJCUNBU0UKKwkJICBXSEVO IHR5cGVsZW0gPiAwIFRIRU4gdHlwZWxlbQorCSAgICAgIEVMU0UgdC5vaWQK KwkJRU5EIGFzIGVsZW1vaWQsCisJCSAgdHlwbGVuLAorCQkgIHR5cHR5cGUs CisJCSAgdC5vaWQsCisJICAgICAgbnNwbmFtZSwKKwkJICAoU0VMRUNUIENP VU5UKDEpIEZST00gcGdfdHlwZSB0MiBXSEVSRSB0Mi50eXBuYW1lID0gdC50 eXBuYW1lKSA+IDEgQVMgaXNkdXAKKwkgICAgRlJPTQorCSAgICAgIHBnX3R5 cGUgdAorCSAgICAgIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBPTiB0eXBuYW1l c3BhY2U9bnNwLm9pZAorCQlXSEVSRQorCQkgIChOT1QgKHR5cG5hbWUgPSAn dW5rbm93bicKKwkJICAgQU5EIG5zcG5hbWUgPSAncGdfY2F0YWxvZycpKQor CQkgICBBTkQgdHlwaXNkZWZpbmVkCisJCSAgIEFORCB0eXB0eXBlIElOICgn YicsICdjJywgJ2UnLCAncicpCisJCSAgIEFORCBOT1QgRVhJU1RTICgKKwkJ ICAgICAgICAgICAgICAgICAgICAgU0VMRUNUCisJCSAgICAgICAgICAgICAg ICAgICAgICAgMQorCQkgICAgICAgICAgICAgICAgICAgICBGUk9NCisJCSAg ICAgICAgICAgICAgICAgICAgICAgcGdfY2xhc3MKKwkJICAgICAgICAgICAg ICAgICAgICAgV0hFUkUKKwkJICAgICAgICAgICAgICAgICAgICAgICByZWxu YW1lc3BhY2UgPSB0eXBuYW1lc3BhY2UKKwkJICAgICAgICAgICAgICAgICAg ICAgICBBTkQgcmVsbmFtZSA9IHR5cG5hbWUKKwkJICAgICAgICAgICAgICAg ICAgICAgICBBTkQgcmVsa2luZCAhPSAnYycpCisJCSAgICAgICAgICAgICAg ICAgICAgICAgQU5EICh0eXBuYW1lIE5PVCBMSUtFICdfJScKKwkJICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE9SIE5PVCBFWElTVFMgKAorCQkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUxF Q1QKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAxCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEZST00KKwkJICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwZ19jbGFzcworCQkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRQorCQkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJlbG5hbWVzcGFjZSA9IHR5cG5hbWVzcGFjZQorCQkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFORCByZWxuYW1l ID0gU1VCU1RSSU5HKHR5cG5hbWUgRlJPTSAyKTo6bmFtZQorCQkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFORCBy ZWxraW5kICE9ICdjJykpCisJCSAgIEFORCBuc3AubnNwbmFtZSAhPSAnaW5m b3JtYXRpb25fc2NoZW1hJyApIEFTIGR1bW15CitPUkRFUiBCWQorICBuc3Bu YW1lIDw+ICdwZ19jYXRhbG9nJywgbnNwbmFtZSA8PiAncHVibGljJywgbnNw bmFtZSwgMQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3RlbXBsYXRlcy9j YXN0L3NxbC85LjBfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0 cy90ZW1wbGF0ZXMvY2FzdC9zcWwvOS4wX3BsdXMvcHJvcGVydGllcy5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTVlOTE4OAot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZW1wbGF0ZXMvY2Fz dC9zcWwvOS4wX3BsdXMvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSw2MCBA QAoreyMgR2V0IE9JRCBmb3IgQ0FTVCAjfQoreyUgaWYgc3JjdHlwIGFuZCB0 cmd0eXAgJX0KKyAgU0VMRUNUCisgICAgY2Eub2lkCisgIEZST00gcGdfY2Fz dCBjYQorICBXSEVSRSBjYS5jYXN0c291cmNlID0gKFNFTEVDVCB0Lm9pZCBG Uk9NIHBnX3R5cGUgdCBXSEVSRSBmb3JtYXRfdHlwZSh0Lm9pZCwgTlVMTCkg PSB7e3NyY3R5cHxxdExpdGVyYWx9fSkKKyAgQU5EIGNhLmNhc3R0YXJnZXQg PSAoU0VMRUNUIHQub2lkIEZST00gcGdfdHlwZSB0IFdIRVJFIGZvcm1hdF90 eXBlKHQub2lkLCBOVUxMKSA9IHt7dHJndHlwfHF0TGl0ZXJhbH19KQorICB7 JSBpZiBkYXRsYXN0c3lzb2lkICV9CisgICBBTkQgY2Eub2lkID4ge3tkYXRs YXN0c3lzb2lkfX06Ok9JRAorICB7JSBlbmRpZiAlfQorCit7IyBGRVRDSCBw cm9wZXJ0aWVzIGZvciBDQVNUICN9Cit7JSBlbHNlICV9CisgIFNFTEVDVAor ICAgIGNhLm9pZCwKKyAgQ0FTRQorICAgIFdIRU4ge3tkYXRsYXN0c3lzb2lk fX06Ok9JRCA+IGNhLm9pZCB0aGVuICdZRVMnIEVMU0UgJ05PJworICBFTkQg QVMgc3lzY2FzdCwKKyAgQ0FTRQorICAgIFdIRU4gY2EuY2FzdGNvbnRleHQg PSAnYScgVEhFTiAnQVNTSUdOTUVOVCcKKyAgICBXSEVOIGNhLmNhc3Rjb250 ZXh0ID0gJ2knIFRIRU4gJ0lNUExJQ0lUJworICAgIFdIRU4gY2EuY2FzdGNv bnRleHQgPSAnZScgVEhFTiAnRVhQTElDSVQnCisgIEVORCBBUyBjYXN0Y29u dGV4dCwKKyAgQ0FTRQorICAgIFdIRU4gcHJvbmFtZSBJUyBOVUxMIFRIRU4g J2JpbmFyeSBjb21wYXRpYmxlJworICAgIEVMU0UgcHJvbmFtZQorICBFTkQg QVMgcHJvbmFtZSwKKyAgICBjYS5jYXN0ZnVuYywKKyAgICBmb3JtYXRfdHlw ZShzdC5vaWQsTlVMTCkgQVMgc3JjdHlwLAorICAgIGZvcm1hdF90eXBlKHR0 Lm9pZCx0dC50eXB0eXBtb2QpIEFTIHRyZ3R5cCwKKyAgICBucy5uc3BuYW1l IEFTIHNyY25zcG5hbWUsCisgICAgbnQubnNwbmFtZSBBUyB0cmduc3BuYW1l LAorICAgIG5wLm5zcG5hbWUgQVMgcHJvbnNwbmFtZSwKKyAgICBkZXNjcmlw dGlvbiwKKyAgICBjb25jYXQoZm9ybWF0X3R5cGUoc3Qub2lkLE5VTEwpLCct PicsZm9ybWF0X3R5cGUodHQub2lkLHR0LnR5cHR5cG1vZCkpIGFzIG5hbWUK KyAgRlJPTSBwZ19jYXN0IGNhCisgIEpPSU4gcGdfdHlwZSBzdCBPTiBzdC5v aWQ9Y2FzdHNvdXJjZQorICBKT0lOIHBnX25hbWVzcGFjZSBucyBPTiBucy5v aWQ9c3QudHlwbmFtZXNwYWNlCisgIEpPSU4gcGdfdHlwZSB0dCBPTiB0dC5v aWQ9Y2FzdHRhcmdldAorICBKT0lOIHBnX25hbWVzcGFjZSBudCBPTiBudC5v aWQ9dHQudHlwbmFtZXNwYWNlCisgIExFRlQgSk9JTiBwZ19wcm9jIHByIE9O IHByLm9pZD1jYXN0ZnVuYworICBMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5w IE9OIG5wLm9pZD1wci5wcm9uYW1lc3BhY2UKKyAgTEVGVCBPVVRFUiBKT0lO IHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1jYS5vaWQgQU5E IGRlcy5vYmpzdWJpZD0wIEFORCBkZXMuY2xhc3NvaWQ9J3BnX2Nhc3QnOjpy ZWdjbGFzcykKKworICB7JSBpZiBjaWQgJX0KKyAgICBXSEVSRSBjYS5vaWQ9 e3tjaWR9fTo6aW50CisgIHslIGVuZGlmICV9CisKKy0tVE9ETzogYWRkIGNo ZWNrIGZvciBzaG93U3lzdGVtT2JqZWN0KCkuIGN1cnJlbnRseSBhc3N1bWVk IGFzIGZhbHNlCisgIHslIGlmIGRhdGxhc3RzeXNvaWQgJX0KKyAgICB7JSBp ZiBjaWQgJX0KKyAgICAgIEFORAorICAgIHslIGVsc2UgJX0KKyAgICAgIFdI RVJFCisgICAgeyUgZW5kaWYgJX0KKyAgICBjYS5vaWQgPiB7e2RhdGxhc3Rz eXNvaWR9fTo6T0lECisgIHslIGVuZGlmICV9CisKKyAgT1JERVIgQlkgc3Qu dHlwbmFtZSwgdHQudHlwbmFtZQoreyUgZW5kaWYgJX0KXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMvdGVt cGxhdGVzL2Nhc3Qvc3FsLzkuMF9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv Y2FzdHMvdGVtcGxhdGVzL2Nhc3Qvc3FsLzkuMF9wbHVzL3VwZGF0ZS5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGI4ZGNjNgot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZW1wbGF0ZXMvY2Fz dC9zcWwvOS4wX3BsdXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDYgQEAKK3sj IFVQREFURSBEZXNjcmlwdGlvbiBmb3IgQ0FTVCAjfQorCit7JSAgaWYgZGF0 YSBhbmQgZGF0YS5kZXNjcmlwdGlvbiBhbmQgZGF0YS5kZXNjcmlwdGlvbiAh PSBvX2RhdGEuZGVzY3JpcHRpb24gJX0KKyAgQ09NTUVOVCBPTiBDQVNUICh7 eyBjb25ufHF0VHlwZUlkZW50KG9fZGF0YS5zcmN0eXApIH19IEFTIHt7IGNv bm58cXRUeXBlSWRlbnQob19kYXRhLnRyZ3R5cCkgfX0pCisgICAgSVMge3sg ZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAlfQpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK --001a114347581607a6052af157f1 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 --001a114347581607a6052af157f1--