Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84) (envelope-from ) id 1aeMqt-0002aZ-V1 for pgadmin-hackers@arkaria.postgresql.org; Fri, 11 Mar 2016 13:11:36 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aeMqt-0006oI-G0 for pgadmin-hackers@arkaria.postgresql.org; Fri, 11 Mar 2016 13:11:35 +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 1aeMqq-0006nf-W5 for pgadmin-hackers@postgresql.org; Fri, 11 Mar 2016 13:11:33 +0000 Received: from mail-io0-x22d.google.com ([2607:f8b0:4001:c06::22d]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aeMqn-0001i2-Uw for pgadmin-hackers@postgresql.org; Fri, 11 Mar 2016 13:11:31 +0000 Received: by mail-io0-x22d.google.com with SMTP id n190so144842676iof.0 for ; Fri, 11 Mar 2016 05:11:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pgadmin-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=t7MZIWwB1ont2sE/dwJikAc10aXZX12fLUW8qL7oOTs=; b=T/4nyzBrftn4NF/ZQqqIBXYh7UtXspdJOmzsAPQbW8jS5PgmfmB64pERwaO2tX0htE 4LGktM2ixeBbHA62PWt/iAe3BIA3KirVhTkXbNz3Af6JF+Vk6O2xkTCZLRFkAm3hkQNt Toqulg3GebIQQ95agaUtcbGYxGaOQYM6mNl3RE+h07uVlXva+P3clsNYjVej/VrBO7eY 4F26dN6jToAfY+y+f8rPcHPbnxbRQyaqE+sXOEFeTkoq+TS1+xfYvBWAu7AoyXIBIJ5C mM4Ga8AoXOr4br/Gq4RLjWrhpXyveY4IsdasUiscPe/OmLqOAYh1LqQ7Sg+xNtBeh2nt BuqQ== 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:cc; bh=t7MZIWwB1ont2sE/dwJikAc10aXZX12fLUW8qL7oOTs=; b=dcLouenW9+5qpETHF9+cQwrsGsDDr22vXTyzvYtBo8BphHYra2HQOwVyCgmcHvG2ib sBVtfySoiHQUd7eTxEsHq0QaWMnX7kSzsMy72qNsnIlY9c8P2Mfli1gCbwGXFGj8obTv hg/BNeQ1DnfHlX5b3EL4wTRzcM/i7meZfyBHJrWQ9uWyYJ8gpHGReVfixv27Ly1VPATM +38ZCXhZyAn7a0UddJhCjs0HJbCVeMPmBjZnYINczZ0pa64U6h3TcIJSHg1qk9kYF+2D 7y4HpfFGdsn/ebzLVXzrOXjty4WJcJ2P4b1+yBLdsQDPdVcLoeq/mMVZZA08RXYIMZsa ngmw== X-Gm-Message-State: AD7BkJIZksYZl4zgxUAQE/Mv/WgwKNpRTDrjwrqOnj8yrK6G30z93RhXeWTEDxd3qmsBbbpLtgEm6jNrZoyebA== MIME-Version: 1.0 X-Received: by 10.107.12.207 with SMTP id 76mr10395112iom.70.1457701889023; Fri, 11 Mar 2016 05:11:29 -0800 (PST) Received: by 10.64.213.73 with HTTP; Fri, 11 Mar 2016 05:11:28 -0800 (PST) In-Reply-To: References: Date: Fri, 11 Mar 2016 13:11:28 +0000 Message-ID: Subject: Re: PATCH: PGADMIN 4 - FTS templates node From: Dave Page To: Sanket Mehta Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a113eca06490068052dc5ab62 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 --001a113eca06490068052dc5ab62 Content-Type: text/plain; charset=UTF-8 Hi On Thu, Mar 10, 2016 at 6:28 AM, Sanket Mehta wrote: > Hi, > > PFA the patch for fts template after replacing collectionNodeModule with > SchemaChildModule in __init__.py > > Apart from that, there was an error while updating the name of fts template > which I have resolved in the same. > > Please do review it and let me know in case of any changes. I've updated the patch for consistency with others. Please find attached. Aside from those changes, there are two issues: - When creating or editing a template the SQL pane just says "--modified SQL" even when all required options are specified. The template is created correctly though. - If a template is renamed, the treeview node is not updated. Thanks. -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company --001a113eca06490068052dc5ab62 Content-Type: application/octet-stream; name="fts_templatev4-dave.patch" Content-Disposition: attachment; filename="fts_templatev4-dave.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ilnq2vto1 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvX19p bml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL19faW5p dF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3 NDQ3MGIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNf dGVtcGxhdGVzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNzAwIEBACisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxNiwgVGhl IHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlz IHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyIiIkRlZmluZXMgdmll d3MgZm9yIG1hbmFnZW1lbnQgb2YgRnRzIFRlbXBsYXRlIG5vZGUiIiIKKwor aW1wb3J0IGpzb24KK2Zyb20gZmxhc2sgaW1wb3J0IHJlbmRlcl90ZW1wbGF0 ZSwgbWFrZV9yZXNwb25zZSwgY3VycmVudF9hcHAsIHJlcXVlc3QsIGpzb25p ZnkKK2Zyb20gZmxhc2suZXh0LmJhYmVsIGltcG9ydCBnZXR0ZXh0Citmcm9t IHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNl LCBcCisgICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlLCBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IKK2Zyb20gcGdhZG1pbi5icm93c2VyLnV0aWxz IGltcG9ydCBQR0NoaWxkTm9kZVZpZXcKK2Zyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy51dGls cyBpbXBvcnQgU2NoZW1hQ2hpbGRNb2R1bGUKK2ltcG9ydCBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFz IGFzIHNjaGVtYXMKK2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBw cmVjb25kaXRpb25fcmVxdWlyZWQKK2Zyb20gcGdhZG1pbi51dGlscy5kcml2 ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gY29uZmlnIGltcG9ydCBQR19E RUZBVUxUX0RSSVZFUgorZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHdyYXBzCisK KworY2xhc3MgRnRzVGVtcGxhdGVNb2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUp OgorICAgICIiIgorICAgICBjbGFzcyBGdHNUZW1wbGF0ZU1vZHVsZShTY2hl bWFDaGlsZE1vZHVsZSkKKworICAgICAgICBBIG1vZHVsZSBjbGFzcyBmb3Ig RlRTIFRlbXBsYXRlIG5vZGUgZGVyaXZlZCBmcm9tIFNjaGVtYUNoaWxkTW9k dWxlLgorCisgICAgTWV0aG9kczoKKyAgICAtLS0tLS0tCisgICAgKiBfX2lu aXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAtIE1ldGhvZCBpcyB1c2Vk IHRvIGluaXRpYWxpemUgdGhlIEZ0c1RlbXBsYXRlTW9kdWxlIGFuZCBpdCdz IGJhc2UgbW9kdWxlLgorCisgICAgKiBnZXRfbm9kZXMoZ2lkLCBzaWQsIGRp ZCwgc2NpZCkKKyAgICAgIC0gTWV0aG9kIGlzIHVzZWQgdG8gZ2VuZXJhdGUg dGhlIGJyb3dzZXIgY29sbGVjdGlvbiBub2RlLgorCisgICAgKiBub2RlX2lu b2RlKCkKKyAgICAgIC0gTWV0aG9kIGlzIG92ZXJyaWRkZW4gZnJvbSBpdHMg YmFzZSBjbGFzcyB0byBtYWtlIHRoZSBub2RlIGFzIGxlYWYgbm9kZS4KKwor ICAgICogc2NyaXB0X2xvYWQoKQorICAgICAgLSBMb2FkIHRoZSBtb2R1bGUg c2NyaXB0IGZvciBGVFMgVGVtcGxhdGUsIHdoZW4gYW55IG9mIHRoZSBzY2hl bWEgbm9kZSBpcworICAgICAgICBpbml0aWFsaXplZC4KKyAgICAiIiIKKyAg ICBOT0RFX1RZUEUgPSAnZnRzX3RlbXBsYXRlJworICAgIENPTExFQ1RJT05f TEFCRUwgPSBnZXR0ZXh0KCdGVFMgVGVtcGxhdGVzJykKKworICAgIGRlZiBf X2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBzZWxm Lm1pbl92ZXIgPSBOb25lCisgICAgICAgIHNlbGYubWF4X3ZlciA9IE5vbmUK KyAgICAgICAgc3VwZXIoRnRzVGVtcGxhdGVNb2R1bGUsIHNlbGYpLl9faW5p dF9fKCphcmdzLCAqKmt3YXJncykKKworICAgIGRlZiBnZXRfbm9kZXMoc2Vs ZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAgICIiIgorICAgICAg ICBHZW5lcmF0ZSB0aGUgY29sbGVjdGlvbiBub2RlCisgICAgICAgIDpwYXJh bSBnaWQ6IGdyb3VwIGlkCisgICAgICAgIDpwYXJhbSBzaWQ6IHNlcnZlciBp ZAorICAgICAgICA6cGFyYW0gZGlkOiBkYXRhYmFzZSBpZAorICAgICAgICA6 cGFyYW0gc2NpZDogc2NoZW1hIGlkCisgICAgICAgICIiIgorICAgICAgICB5 aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKHNj aWQpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbm9kZV9pbm9kZShzZWxm KToKKyAgICAgICAgIiIiCisgICAgICAgIE92ZXJyaWRlIHRoZSBwcm9wZXJ0 eSB0byBtYWtlIHRoZSBub2RlIGFzIGxlYWYgbm9kZQorICAgICAgICAiIiIK KyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBAcHJvcGVydHkKKyAgICBk ZWYgc2NyaXB0X2xvYWQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBM b2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBmdHMgdGVtcGxhdGUsIHdoZW4g YW55IG9mIHRoZSBzY2hlbWEgbm9kZSBpcworICAgICAgICBpbml0aWFsaXpl ZC4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzY2hlbWFzLlNjaGVt YU1vZHVsZS5OT0RFX1RZUEUKKworCitibHVlcHJpbnQgPSBGdHNUZW1wbGF0 ZU1vZHVsZShfX25hbWVfXykKKworCitjbGFzcyBGdHNUZW1wbGF0ZVZpZXco UEdDaGlsZE5vZGVWaWV3KToKKyAgICAiIiIKKyAgICBjbGFzcyBGdHNUZW1w bGF0ZVZpZXcoUEdDaGlsZE5vZGVWaWV3KQorCisgICAgICAgIEEgdmlldyBj bGFzcyBmb3IgRlRTIFRlbXBhbHRlIG5vZGUgZGVyaXZlZCBmcm9tIFBHQ2hp bGROb2RlVmlldy4gVGhpcyBjbGFzcyBpcworICAgICAgICByZXNwb25zaWJs ZSBmb3IgYWxsIHRoZSBzdHVmZiByZWxhdGVkIHRvIHZpZXcgbGlrZSBjcmVh dGUvdXBkYXRlL2RlbGV0ZQorICAgICAgICBGVFMgdGVtcGxhdGUsIHNob3dp bmcgcHJvcGVydGllcyBvZiBub2RlLCBzaG93aW5nIHNxbCBpbiBzcWwgcGFu ZS4KKworICAgIE1ldGhvZHM6CisgICAgLS0tLS0tLQorICAgICogX19pbml0 X18oKiprd2FyZ3MpCisgICAgICAtIE1ldGhvZCBpcyB1c2VkIHRvIGluaXRp YWxpemUgdGhlIEZ0c1RlbXBsYXRlVmlldyBhbmQgaXQncyBiYXNlIHZpZXcu CisKKyAgICAqIG1vZHVsZV9qcygpCisgICAgICAtIFRoaXMgcHJvcGVydHkg ZGVmaW5lcyAoaWYgamF2YXNjcmlwdCkgZXhpc3RzIGZvciB0aGlzIG5vZGUu CisgICAgICAgIE92ZXJyaWRlIHRoaXMgcHJvcGVydHkgZm9yIHlvdXIgb3du IGxvZ2ljCisKKyAgICAqIGNoZWNrX3ByZWNvbmRpdGlvbigpCisgICAgICAt IFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hp Y2ggd2lsbCBjaGVja3MKKyAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBi ZWZvcmUgcnVubmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKKyAg ICAgICAgbWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVz IHRvIHNlbGYKKworICAgICogbGlzdCgpCisgICAgICAtIFRoaXMgZnVuY3Rp b24gaXMgdXNlZCB0byBsaXN0IGFsbCB0aGUgIG5vZGVzIHdpdGhpbiB0aGF0 IGNvbGxlY3Rpb24uCisKKyAgICAqIG5vZGVzKCkKKyAgICAgIC0gVGhpcyBm dW5jdGlvbiB3aWxsIHVzZWQgdG8gY3JlYXRlIGFsbCB0aGUgY2hpbGQgbm9k ZSB3aXRoaW4gdGhhdCBjb2xsZWN0aW9uLgorICAgICAgICBIZXJlIGl0IHdp bGwgY3JlYXRlIGFsbCB0aGUgRlRTIFRlbXBsYXRlIG5vZGVzLgorCisgICAg KiBwcm9wZXJ0aWVzKGdpZCwgc2lkLCBkaWQsIHJnX2lkKQorICAgICAgLSBU aGlzIGZ1bmN0aW9uIHdpbGwgc2hvdyB0aGUgcHJvcGVydGllcyBvZiB0aGUg c2VsZWN0ZWQgRlRTIFRlbXBsYXRlIG5vZGUKKworICAgICogY3JlYXRlKGdp ZCwgc2lkLCBkaWQsIHJnX2lkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdp bGwgY3JlYXRlIHRoZSBuZXcgRlRTIFRlbXBsYXRlIG9iamVjdAorCisgICAg KiB1cGRhdGUoZ2lkLCBzaWQsIGRpZCwgcmdfaWQpCisgICAgICAtIFRoaXMg ZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGhlIGRhdGEgZm9yIHRoZSBzZWxlY3Rl ZCBGVFMgVGVtcGxhdGUgbm9kZQorCisgICAgKiBkZWxldGUoc2VsZiwgZ2lk LCBzaWQsIHJnX2lkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGRy b3AgdGhlIEZUUyBUZW1wbGF0ZSBvYmplY3QKKworICAgICogbXNxbChnaWQs IHNpZCwgZGlkLCByZ19pZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiBpcyB1 c2VkIHRvIHJldHVybiBtb2RpZmllZCBTUUwgZm9yIHRoZSBzZWxlY3RlZCBG VFMgVGVtcGxhdGUgbm9kZQorCisgICAgKiBnZXRfc3FsKGRhdGEsIHJnX2lk KQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3FsIGZy b20gbW9kZWwgZGF0YQorCisgICAgKiBzcWwoZ2lkLCBzaWQsIGRpZCwgcmdf aWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3Fs IHRvIHNob3cgaXQgaW4gc3FsIHBhbmUgZm9yIHRoZSBzZWxlY3RlZCBGVFMg VGVtcGxhdGUgbm9kZS4KKworICAgICogZ2V0X3R5cGUoKToKKyAgICAgIC0g VGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIGFsbCB0aGUgdHlwZXMgZm9yIHNv dXJjZSBhbmQgdGFyZ2V0IHR5cGVzIHNlbGVjdCBjb250cm9sLgorCisgICAg KiBnZXRfZnVuY3Rpb25zKCk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2ls bCBmZXRjaCBhc3NvY2lhdGVkIGZ1bmN0aW9ucyBsaXN0IGRlcGVuZGluZyBv biBzZWxlY3RlZCBzb3VyY2UKKyAgICAgICAgYW5kIHRhcmdldCB0eXBlcyB3 aGlsZSBjcmVhdGluZyBhIG5ldyBGVFMgVGVtcGxhdGUgbm9kZS4KKworICAg ICogZGVwZW5kZW50cyhnaWQsIHNpZCwgZGlkLCBsaWQpOgorICAgICAgLSBU aGlzIGZ1bmN0aW9uIGdldCB0aGUgZGVwZW5kZW50cyBhbmQgcmV0dXJuIGFq YXggcmVzcG9uc2UgZm9yIHRoZSBGdHMgVGVtcGFsdGUgbm9kZS4KKworICAg ICogZGVwZW5kZW5jaWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIGxpZCk6Cisg ICAgICAtIFRoaXMgZnVuY3Rpb24gZ2V0IHRoZSBkZXBlbmRlbmNpZXMgYW5k IHJldHVybiBhamF4IHJlc3BvbnNlIGZvciB0aGUgRlRTIFRlbXBhbHRlIG5v ZGUuCisKKyAgICAiIiIKKworICAgIG5vZGVfdHlwZSA9IGJsdWVwcmludC5u b2RlX3R5cGUKKworICAgIHBhcmVudF9pZHMgPSBbCisgICAgICAgIHsndHlw ZSc6ICdpbnQnLCAnaWQnOiAnZ2lkJ30sCisgICAgICAgIHsndHlwZSc6ICdp bnQnLCAnaWQnOiAnc2lkJ30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAn aWQnOiAnZGlkJ30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAn c2NpZCd9CisgICAgXQorICAgIGlkcyA9IFsKKyAgICAgICAgeyd0eXBlJzog J2ludCcsICdpZCc6ICd0aWQnfQorICAgIF0KKworICAgIG9wZXJhdGlvbnMg PSBkaWN0KHsKKyAgICAgICAgJ29iaic6IFsKKyAgICAgICAgICAgIHsnZ2V0 JzogJ3Byb3BlcnRpZXMnLCAnZGVsZXRlJzogJ2RlbGV0ZScsICdwdXQnOiAn dXBkYXRlJ30sCisgICAgICAgICAgICB7J2dldCc6ICdsaXN0JywgJ3Bvc3Qn OiAnY3JlYXRlJ30KKyAgICAgICAgXSwKKyAgICAgICAgJ2NoaWxkcmVuJzog W3sKKyAgICAgICAgICAgICdnZXQnOiAnY2hpbGRyZW4nCisgICAgICAgIH1d LAorICAgICAgICAnZGVsZXRlJzogW3snZGVsZXRlJzogJ2RlbGV0ZSd9XSwK KyAgICAgICAgJ25vZGVzJzogW3snZ2V0JzogJ25vZGUnfSwgeydnZXQnOiAn bm9kZXMnfV0sCisgICAgICAgICdzcWwnOiBbeydnZXQnOiAnc3FsJ31dLAor ICAgICAgICAnbXNxbCc6IFt7J2dldCc6ICdtc3FsJ30sIHsnZ2V0JzogJ21z cWwnfV0sCisgICAgICAgICdzdGF0cyc6IFt7J2dldCc6ICdzdGF0aXN0aWNz J31dLAorICAgICAgICAnZGVwZW5kZW5jeSc6IFt7J2dldCc6ICdkZXBlbmRl bmNpZXMnfV0sCisgICAgICAgICdkZXBlbmRlbnQnOiBbeydnZXQnOiAnZGVw ZW5kZW50cyd9XSwKKyAgICAgICAgJ21vZHVsZS5qcyc6IFt7fSwge30sIHsn Z2V0JzogJ21vZHVsZV9qcyd9XSwKKyAgICAgICAgJ2dldF9sZXhpemUnOiBb eydnZXQnOiAnZ2V0X2xleGl6ZSd9LCB7J2dldCc6ICdnZXRfbGV4aXplJ31d LAorICAgICAgICAnZ2V0X2luaXQnOiBbeydnZXQnOiAnZ2V0X2luaXQnfSwg eydnZXQnOiAnZ2V0X2luaXQnfV0sCisgICAgfSkKKworICAgIGRlZiBfaW5p dF8oc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLmNvbm4gPSBOb25l CisgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9IE5vbmUKKyAgICAgICAg c2VsZi5tYW5hZ2VyID0gTm9uZQorICAgICAgICBzdXBlcihGdHNUZW1wbGF0 ZVZpZXcsIHNlbGYpLl9faW5pdF9fKCoqa3dhcmdzKQorCisgICAgZGVmIG1v ZHVsZV9qcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgcHJv cGVydHkgZGVmaW5lcyB3aGV0aGVyIGphdmFzY3JpcHQgZXhpc3RzIGZvciB0 aGlzIG5vZGUuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gbWFrZV9y ZXNwb25zZSgKKyAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAg ICAgICAgICAgICAiZnRzX3RlbXBsYXRlL2pzL2Z0c190ZW1wbGF0ZXMuanMi LAorICAgICAgICAgICAgICAgIF89Z2V0dGV4dAorICAgICAgICAgICAgKSwK KyAgICAgICAgICAgIDIwMCwgeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRp b24veC1qYXZhc2NyaXB0J30KKyAgICAgICAgKQorCisgICAgZGVmIGNoZWNr X3ByZWNvbmRpdGlvbihmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMg ZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2ls bCBjaGVja3MKKyAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUg cnVubmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKKyAgICAgICAg bWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNl bGYKKyAgICAgICAgIiIiCisKKyAgICAgICAgQHdyYXBzKGYpCisgICAgICAg IGRlZiB3cmFwKCphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICAjIEhl cmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJncyB3aWxsIGhvbGQg Z2lkLHNpZCxkaWQKKyAgICAgICAgICAgIHNlbGYgPSBhcmdzWzBdCisgICAg ICAgICAgICBzZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRf RFJJVkVSKS5jb25uZWN0aW9uX21hbmFnZXIoCisgICAgICAgICAgICAgICAg a3dhcmdzWydzaWQnXSkKKyAgICAgICAgICAgIHNlbGYuY29ubiA9IHNlbGYu bWFuYWdlci5jb25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2RpZCddKQorICAgICAg ICAgICAgIyBJZiBEQiBub3QgY29ubmVjdGVkIHRoZW4gcmV0dXJuIGVycm9y IHRvIGJyb3dzZXIKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29u bmVjdGVkKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlv bl9yZXF1aXJlZCgKKyAgICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgKKyAg ICAgICAgICAgICAgICAgICAgICAgICJDb25uZWN0aW9uIHRvIHRoZSBzZXJ2 ZXIgaGFzIGJlZW4gbG9zdCEiCisgICAgICAgICAgICAgICAgICAgICkKKyAg ICAgICAgICAgICAgICApCisgICAgICAgICAgICAjIHdlIHdpbGwgc2V0IHRl bXBsYXRlIHBhdGggZm9yIHNxbCBzY3JpcHRzIGRlcGVuZGluZyB1cG9uIHNl cnZlciB2ZXJzaW9uCisgICAgICAgICAgICB2ZXIgPSBzZWxmLm1hbmFnZXIu dmVyc2lvbgorICAgICAgICAgICAgaWYgdmVyID49IDkwMTAwOgorICAgICAg ICAgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9ICdmdHNfdGVtcGxhdGUv c3FsLzkuMV9wbHVzJworICAgICAgICAgICAgcmV0dXJuIGYoKmFyZ3MsICoq a3dhcmdzKQorCisgICAgICAgIHJldHVybiB3cmFwCisKKyAgICBAY2hlY2tf cHJlY29uZGl0aW9uCisgICAgZGVmIGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRp ZCwgc2NpZCk6CisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAg ICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdwcm9w ZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgIHNjaWQ9c2NpZAorICAgICAg ICApCisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVf ZGljdChzcWwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVz KQorCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAg ICAgcmVzcG9uc2U9cmVzWydyb3dzJ10sCisgICAgICAgICAgICBzdGF0dXM9 MjAwCisgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAg ICBkZWYgbm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAg ICAgIHJlcyA9IFtdCisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgK KyAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdw cm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgIHNjaWQ9c2NpZAorICAg ICAgICApCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVj dXRlXzJkYXJyYXkoc3FsKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1yc2V0KQorCisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgor ICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICBzZWxm LmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAg ICAgICAgICAgIHJvd1snb2lkJ10sCisgICAgICAgICAgICAgICAgICAgIGRp ZCwKKyAgICAgICAgICAgICAgICAgICAgcm93Wyd0bXBsbmFtZSddLAorICAg ICAgICAgICAgICAgICAgICBpY29uPSJpY29uLWZ0c190ZW1wbGF0ZSIKKyAg ICAgICAgICAgICAgICApKQorCisgICAgICAgIHJldHVybiBtYWtlX2pzb25f cmVzcG9uc2UoCisgICAgICAgICAgICBkYXRhPXJlcywKKyAgICAgICAgICAg IHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRp dGlvbgorICAgIGRlZiBwcm9wZXJ0aWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQs IHNjaWQsIHRpZCk6CisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgK KyAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdw cm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgIHNjaWQ9c2NpZCwKKyAg ICAgICAgICAgIHRpZD10aWQKKyAgICAgICAgKQorICAgICAgICBzdGF0dXMs IHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorCisgICAgICAg IGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICByZXR1cm4g YWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPXJlc1sncm93 cyddWzBdLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisK KyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGNyZWF0ZShzZWxm LCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGVzIG5ldyB0aGUgZnRzX3RlbXBs YXRlIG9iamVjdAorICAgICAgICA6cGFyYW0gZ2lkOiBncm91cCBpZAorICAg ICAgICA6cGFyYW0gc2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAgOnBhcmFtIGRp ZDogZGF0YWJhc2UgaWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IHNjaGVtYSBp ZAorICAgICAgICAiIiIKKworICAgICAgICAjIE1hbmRhdG9yeSBmaWVsZHMg dG8gY3JlYXRlIGEgbmV3IGZ0cyB0ZW1wbGF0ZQorICAgICAgICByZXF1aXJl ZF9hcmdzID0gWworICAgICAgICAgICAgJ3RtcGxsZXhpemUnLAorICAgICAg ICAgICAgJ3NjaGVtYScsCisgICAgICAgICAgICAndG1wbG5hbWUnCisgICAg ICAgIF0KKworICAgICAgICBkYXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVl c3QuZm9ybSBlbHNlIGpzb24ubG9hZHMoCisgICAgICAgICAgICByZXF1ZXN0 LmRhdGEuZGVjb2RlKCkpCisgICAgICAgIGZvciBhcmcgaW4gcmVxdWlyZWRf YXJnczoKKyAgICAgICAgICAgIGlmIGFyZyBub3QgaW4gZGF0YToKKyAgICAg ICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgICAgICBzdGF0dXM9NDEwLAorICAgICAgICAgICAgICAgICAg ICBzdWNjZXNzPTAsCisgICAgICAgICAgICAgICAgICAgIGVycm9ybXNnPWdl dHRleHQoCisgICAgICAgICAgICAgICAgICAgICAgICAiQ291bGRuJ3QgZmlu ZCB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICglcykuIiAlIGFyZworICAgICAg ICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKQorICAgICAgICB0 cnk6CisgICAgICAgICAgICAjIEZldGNoIHNjaGVtYSBuYW1lIGZyb20gc2No ZW1hIG9pZAorICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIv Ii5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdzY2hlbWEuc3FsJ10pLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uPXNlbGYu Y29ubiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisK KyAgICAgICAgICAgIHN0YXR1cywgc2NoZW1hID0gc2VsZi5jb25uLmV4ZWN1 dGVfc2NhbGFyKHNxbCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6Cisg ICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1zY2hlbWEpCisKKyAgICAgICAgICAgICMgcmVwbGFjZSBzY2hl bWEgb2lkIHdpdGggc2NoZW1hIG5hbWUgYmVmb3JlIHBhc3NpbmcgdG8gY3Jl YXRlLnNxbAorICAgICAgICAgICAgIyB0byBnZW5lcmF0ZSBwcm9wZXIgc3Fs IHF1ZXJ5CisgICAgICAgICAgICBuZXdfZGF0YSA9IGRhdGEuY29weSgpCisg ICAgICAgICAgICBuZXdfZGF0YVsnc2NoZW1hJ10gPSBzY2hlbWEKKyAgICAg ICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLCAnY3JlYXRlLnNxbCddKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYXRhPW5ld19kYXRhLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm49c2VsZi5jb25uLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKHNxbCkK KyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAg cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisK KyAgICAgICAgICAgICMgd2UgbmVlZCBmdHNfdGVtcGxhdGUgaWQgdG8gdG8g YWRkIG9iamVjdCBpbiB0cmVlIGF0IGJyb3dzZXIsCisgICAgICAgICAgICAj IGJlbG93IHNxbCB3aWxsIGdpdmUgdGhlIHNhbWUKKyAgICAgICAgICAgIHNx bCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAiLyIuam9p bihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSksCisg ICAgICAgICAgICAgICAgbmFtZT1kYXRhWyd0bXBsbmFtZSddCisgICAgICAg ICAgICApCisgICAgICAgICAgICBzdGF0dXMsIHRpZCA9IHNlbGYuY29ubi5l eGVjdXRlX3NjYWxhcihzcWwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVz OgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9dGlkKQorCisgICAgICAgICAgICByZXR1cm4ganNvbmlm eSgKKyAgICAgICAgICAgICAgICBub2RlPXNlbGYuYmx1ZXByaW50LmdlbmVy YXRlX2Jyb3dzZXJfbm9kZSgKKyAgICAgICAgICAgICAgICAgICAgdGlkLAor ICAgICAgICAgICAgICAgICAgICBkaWQsCisgICAgICAgICAgICAgICAgICAg IGRhdGFbJ3RtcGxuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgIGljb249 Imljb24tZnRzX3RlbXBsYXRlIgorICAgICAgICAgICAgICAgICkKKyAgICAg ICAgICAgICkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVm IHVwZGF0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQpOgorICAg ICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0 ZXh0IHNlYXJjaCB0ZW1wbGF0ZSBvYmplY3QKKyAgICAgICAgOnBhcmFtIGdp ZDogZ3JvdXAgaWQKKyAgICAgICAgOnBhcmFtIHNpZDogc2VydmVyIGlkCisg ICAgICAgIDpwYXJhbSBkaWQ6IGRhdGFiYXNlIGlkCisgICAgICAgIDpwYXJh bSBzY2lkOiBzY2hlbWEgaWQKKyAgICAgICAgOnBhcmFtIHRpZDogZnRzIHRl bXBhdGUgaWQKKyAgICAgICAgIiIiCisgICAgICAgIGRhdGEgPSByZXF1ZXN0 LmZvcm0gaWYgcmVxdWVzdC5mb3JtIGVsc2UganNvbi5sb2FkcygKKyAgICAg ICAgICAgIHJlcXVlc3QuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICAjIEZl dGNoIHNxbCBxdWVyeSB0byB1cGRhdGUgZnRzIHRlbXBsYXRlCisgICAgICAg IHNxbCA9IHNlbGYuZ2V0X3NxbChnaWQsIHNpZCwgZGlkLCBzY2lkLCBkYXRh LCB0aWQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIHNxbCBhbmQg c3FsLnN0cmlwKCdcbicpIGFuZCBzcWwuc3RyaXAoJyAnKToKKyAgICAgICAg ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxh cihzcWwpCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9q c29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAgICBzdWNjZXNzPTEs CisgICAgICAgICAgICAgICAgICAgIGluZm89IkZUUyBUZW1wbGF0ZSB1cGRh dGVkIiwKKyAgICAgICAgICAgICAgICAgICAgZGF0YT17CisgICAgICAgICAg ICAgICAgICAgICAgICAnaWQnOiB0aWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2dp ZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdkaWQnOiBkaWQs CisgICAgICAgICAgICAgICAgICAgICAgICAnc2NpZCc6IHNjaWQKKyAgICAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9y ZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAg ICAgICAgICAgICAgICAgICBpbmZvPSJOb3RoaW5nIHRvIHVwZGF0ZSIsCisg ICAgICAgICAgICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAgICAgICAg ICAgICAgJ2lkJzogdGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Np ZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdnaWQnOiBnaWQs CisgICAgICAgICAgICAgICAgICAgICAgICAnZGlkJzogZGlkLAorICAgICAg ICAgICAgICAgICAgICAgICAgJ3NjaWQnOiBzY2lkCisgICAgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgZXhjZXB0 IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tf cHJlY29uZGl0aW9uCisgICAgZGVmIGRlbGV0ZShzZWxmLCBnaWQsIHNpZCwg ZGlkLCBzY2lkLCB0aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBm dW5jdGlvbiB3aWxsIGRyb3AgdGhlIGZ0c190ZW1wbGF0ZSBvYmplY3QKKyAg ICAgICAgOnBhcmFtIGdpZDogZ3JvdXAgaWQKKyAgICAgICAgOnBhcmFtIHNp ZDogc2VydmVyIGlkCisgICAgICAgIDpwYXJhbSBkaWQ6IGRhdGFiYXNlIGlk CisgICAgICAgIDpwYXJhbSBzY2lkOiBzY2hlbWEgaWQKKyAgICAgICAgOnBh cmFtIHRpZDogZnRzIHRlbXBhdGUgaWQKKyAgICAgICAgIiIiCisgICAgICAg ICMgQmVsb3cgd2lsbCBkZWNpZGUgaWYgaXQncyBzaW1wbGUgZHJvcCBvciBk cm9wIHdpdGggY2FzY2FkZSBjYWxsCisgICAgICAgIGlmIHNlbGYuY21kID09 ICdkZWxldGUnOgorICAgICAgICAgICAgIyBUaGlzIGlzIGEgY2FzY2FkZSBv cGVyYXRpb24KKyAgICAgICAgICAgIGNhc2NhZGUgPSBUcnVlCisgICAgICAg IGVsc2U6CisgICAgICAgICAgICBjYXNjYWRlID0gRmFsc2UKKworICAgICAg ICB0cnk6CisgICAgICAgICAgICAjIEdldCBuYW1lIGZvciB0ZW1wbGF0ZSBm cm9tIHRpZAorICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIv Ii5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdkZWxldGUuc3FsJ10pLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZD10aWQpCisg ICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2Rp Y3Qoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICAgICAgIyBEcm9wIGZ0cyB0ZW1wbGF0ZQorICAg ICAgICAgICAgcmVzdWx0ID0gcmVzWydyb3dzJ11bMF0KKyAgICAgICAgICAg IHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLCAnZGVsZXRlLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBuYW1lPXJlc3VsdFsnbmFtZSddLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYT1yZXN1bHRbJ3NjaGVt YSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Nh ZGU9Y2FzY2FkZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkKKworICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV9zY2FsYXIoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNv bl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBzdWNjZXNzPTEsCisgICAg ICAgICAgICAgICAgaW5mbz1nZXR0ZXh0KCJGVFMgdGVtcGxhdGUgZHJvcHBl ZCIpLAorICAgICAgICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAgICAg ICAgICAnaWQnOiB0aWQsCisgICAgICAgICAgICAgICAgICAgICdzaWQnOiBz aWQsCisgICAgICAgICAgICAgICAgICAgICdnaWQnOiBnaWQsCisgICAgICAg ICAgICAgICAgICAgICdkaWQnOiBkaWQsCisgICAgICAgICAgICAgICAgICAg ICdzY2lkJzogc2NpZAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0 cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbXNx bChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQ9Tm9uZSk6CisgICAg ICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgbW9kaWZp ZWQgU1FMCisgICAgICAgIDpwYXJhbSBnaWQ6IGdyb3VwIGlkCisgICAgICAg IDpwYXJhbSBzaWQ6IHNlcnZlciBpZAorICAgICAgICA6cGFyYW0gZGlkOiBk YXRhYmFzZSBpZAorICAgICAgICA6cGFyYW0gc2NpZDogc2NoZW1hIGlkCisg ICAgICAgIDpwYXJhbSB0aWQ6IGZ0cyB0ZW1wYXRlIGlkCisgICAgICAgICIi IgorICAgICAgICBkYXRhID0gcmVxdWVzdC5hcmdzCisKKyAgICAgICAgIyBG ZXRjaCBzcWwgcXVlcnkgZm9yIG1vZGlmaWVkIGRhdGEKKyAgICAgICAgc3Fs ID0gc2VsZi5nZXRfc3FsKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRhdGEsIHRp ZCkKKworICAgICAgICBpZiBpc2luc3RhbmNlKHNxbCwgc3RyKSBhbmQgc3Fs IGFuZCBzcWwuc3RyaXAoJ1xuJykgYW5kIHNxbC5zdHJpcCgnICcpOgorICAg ICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAg ICAgICAgICBkYXRhPXNxbCwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAw CisgICAgICAgICAgICApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBy ZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIGRh dGE9Ii0tbW9kaWZpZWQgU1FMIiwKKyAgICAgICAgICAgICAgICBzdGF0dXM9 MjAwCisgICAgICAgICAgICApCisKKyAgICBkZWYgZ2V0X3NxbChzZWxmLCBn aWQsIHNpZCwgZGlkLCBzY2lkLCBkYXRhLCB0aWQ9Tm9uZSk6CisgICAgICAg ICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIFNRTCBm b3IgbW9kZWwgZGF0YQorICAgICAgICA6cGFyYW0gZ2lkOiBncm91cCBpZAor ICAgICAgICA6cGFyYW0gc2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAgOnBhcmFt IGRpZDogZGF0YWJhc2UgaWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IHNjaGVt YSBpZAorICAgICAgICA6cGFyYW0gdGlkOiBmdHMgdGVtcGF0ZSBpZAorICAg ICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBGZXRjaCBz cWwgZm9yIHVwZGF0ZQorICAgICAgICAgICAgaWYgdGlkIGlzIG5vdCBOb25l OgorICAgICAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAg ICAgICAgICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0 aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICB0 aWQ9dGlkLAorICAgICAgICAgICAgICAgICAgICBzY2lkPXNjaWQKKyAgICAg ICAgICAgICAgICApCisKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHJlcyA9 IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAgICAgICAgICAg IGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAg ICAgICAgICAgb2xkX2RhdGEgPSByZXNbJ3Jvd3MnXVswXQorCisgICAgICAg ICAgICAgICAgIyBJZiB1c2VyIGhhcyBjaGFuZ2VkIHRoZSBzY2hlbWEgdGhl biBmZXRjaCBuZXcgc2NoZW1hIGRpcmVjdGx5CisgICAgICAgICAgICAgICAg IyB1c2luZyBpdHMgb2lkIG90aGVyd2lzZSBmZXRjaCBvbGQgc2NoZW1hIG5h bWUgdXNpbmcgZnRzIHRlbXBsYXRlIG9pZAorICAgICAgICAgICAgICAgIHNx bCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgIi8i LmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NjaGVtYS5zcWwnXSksCisg ICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSkKKworICAgICAgICAgICAg ICAgIHN0YXR1cywgbmV3X3NjaGVtYSA9IHNlbGYuY29ubi5leGVjdXRlX3Nj YWxhcihzcWwpCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1uZXdfc2NoZW1hKQorCisgICAgICAgICAgICAgICAgIyBS ZXBsYWNlIHNjaGVtYSBvaWQgd2l0aCBzY2hlbWEgbmFtZQorICAgICAgICAg ICAgICAgIG5ld19kYXRhID0gZGF0YS5jb3B5KCkKKyAgICAgICAgICAgICAg ICBpZiAnc2NoZW1hJyBpbiBuZXdfZGF0YToKKyAgICAgICAgICAgICAgICAg ICAgbmV3X2RhdGFbJ3NjaGVtYSddID0gbmV3X3NjaGVtYQorCisgICAgICAg ICAgICAgICAgIyBGZXRjaCBvbGQgc2NoZW1hIG5hbWUgdXNpbmcgb2xkIHNj aGVtYSBvaWQKKyAgICAgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxh dGUoCisgICAgICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBs YXRlX3BhdGgsICdzY2hlbWEuc3FsJ10pLAorICAgICAgICAgICAgICAgICAg ICBkYXRhPW9sZF9kYXRhKQorCisgICAgICAgICAgICAgICAgc3RhdHVzLCBv bGRfc2NoZW1hID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKHNxbCkKKyAg ICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPW9s ZF9zY2hlbWEpCisKKyAgICAgICAgICAgICAgICAjIFJlcGxhY2Ugb2xkIHNj aGVtYSBvaWQgd2l0aCBvbGQgc2NoZW1hIG5hbWUKKyAgICAgICAgICAgICAg ICBvbGRfZGF0YVsnc2NoZW1hJ10gPSBvbGRfc2NoZW1hCisKKyAgICAgICAg ICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAg ICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICd1cGRhdGUu c3FsJ10pLAorICAgICAgICAgICAgICAgICAgICBkYXRhPW5ld19kYXRhLCBv X2RhdGE9b2xkX2RhdGEKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAg ICAgICAgIyBGZXRjaCBzcWwgcXVlcnkgZm9yIG1vZGlmaWVkIGRhdGEKKyAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBGZXRjaCBzY2hl bWEgbmFtZSBmcm9tIHNjaGVtYSBvaWQKKyAgICAgICAgICAgICAgICBzcWwg PSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0 aCwgJ3NjaGVtYS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGE9ZGF0YSkKKworICAgICAgICAgICAgICAgIHN0 YXR1cywgc2NoZW1hID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKHNxbCkK KyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXNjaGVtYSkKKworICAgICAgICAgICAgICAgICMgUmVwbGFjZSBzY2hlbWEg b2lkIHdpdGggc2NoZW1hIG5hbWUKKyAgICAgICAgICAgICAgICBuZXdfZGF0 YSA9IGRhdGEuY29weSgpCisgICAgICAgICAgICAgICAgbmV3X2RhdGFbJ3Nj aGVtYSddID0gc2NoZW1hCisKKyAgICAgICAgICAgICAgICBpZiAndG1wbGxl eGl6ZScgaW4gbmV3X2RhdGEgYW5kIFwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ3RtcGxuYW1lJyBpbiBuZXdfZGF0YSBhbmQgXAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NoZW1hJyBpbiBuZXdf ZGF0YToKKyAgICAgICAgICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBs YXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Ny ZWF0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkYXRhPW5ld19kYXRhLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29ubj1zZWxmLmNvbm4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAg ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBzcWwgPSAi LS0gaW5jb21wbGV0ZSBkZWZpbml0aW9uIgorICAgICAgICAgICAgcmV0dXJu IHNxbC5zdHJpcCgnXG4nKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24g YXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlv bgorICAgIGRlZiBnZXRfbGV4aXplKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNj aWQsIHRpZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVu Y3Rpb24gd2lsbCByZXR1cm4gbGV4aXplIGZ1bmN0aW9ucyBsaXN0IGZvciBm dHMgdGVtcGxhdGUKKyAgICAgICAgOnBhcmFtIGdpZDogZ3JvdXAgaWQKKyAg ICAgICAgOnBhcmFtIHNpZDogc2VydmVyIGlkCisgICAgICAgIDpwYXJhbSBk aWQ6IGRhdGFiYXNlIGlkCisgICAgICAgIDpwYXJhbSBzY2lkOiBzY2hlbWEg aWQKKyAgICAgICAgOnBhcmFtIHRpZDogZnRzIHRlbXBhdGUgaWQKKyAgICAg ICAgIiIiCisgICAgICAgIGRhdGEgPSByZXF1ZXN0LmFyZ3MKKyAgICAgICAg c3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRl X3BhdGgsICdmdW5jdGlvbnMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGV4aXplPVRydWUpCisgICAgICAgIHN0YXR1cywgcnNl dCA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorCisgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXJzZXQpCisKKyAgICAgICAgIyBFbXB0eSBz ZXQgaXMgYWRkZWQgYmVmb3JlIGFjdHVhbCBsaXN0IGFzIGluaXRpYWxseSBp dCB3aWxsIGJlIHZpc2libGUKKyAgICAgICAgIyBhdCBsZXhpemUgc2VsZWN0 IGNvbnRyb2wgd2hpbGUgY3JlYXRpbmcgYSBuZXcgZnRzIHRlbXBsYXRlCisg ICAgICAgIHJlcyA9IFt7J2xhYmVsJzogJycsICd2YWx1ZSc6ICcnfV0KKyAg ICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAgICBy ZXMuYXBwZW5kKHsnbGFiZWwnOiByb3dbJ3Byb25hbWUnXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICd2YWx1ZSc6IHJvd1sncHJvbmFtZSddfSkKKyAg ICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg IGRhdGE9cmVzLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAp CisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGdldF9pbml0 KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZD1Ob25lKToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gaW5p dCBmdW5jdGlvbnMgbGlzdCBmb3IgZnRzIHRlbXBsYXRlCisgICAgICAgIDpw YXJhbSBnaWQ6IGdyb3VwIGlkCisgICAgICAgIDpwYXJhbSBzaWQ6IHNlcnZl ciBpZAorICAgICAgICA6cGFyYW0gZGlkOiBkYXRhYmFzZSBpZAorICAgICAg ICA6cGFyYW0gc2NpZDogc2NoZW1hIGlkCisgICAgICAgIDpwYXJhbSB0aWQ6 IGZ0cyB0ZW1wYXRlIGlkCisgICAgICAgICIiIgorICAgICAgICBkYXRhID0g cmVxdWVzdC5hcmdzCisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgi LyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnZnVuY3Rpb25zLnNxbCdd KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXQ9VHJ1ZSkK KyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfZGlj dChzcWwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkK KworICAgICAgICAjIFdlIGhhdmUgYWRkZWQgdGhpcyB0byBtYXAgYWdhaW5z dCAnLScgd2hpY2ggaXMgY29taW5nIGZyb20gc2VydmVyCisgICAgICAgIHJl cyA9IFt7J2xhYmVsJzogJycsICd2YWx1ZSc6ICctJ31dCisgICAgICAgIGZv ciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgcmVzLmFwcGVu ZCh7J2xhYmVsJzogcm93Wydwcm9uYW1lJ10sCisgICAgICAgICAgICAgICAg ICAgICAgICAndmFsdWUnOiByb3dbJ3Byb25hbWUnXX0pCisgICAgICAgIHJl dHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICBkYXRhPXJl cywKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAg QGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBzcWwoc2VsZiwgZ2lkLCBz aWQsIGRpZCwgc2NpZCwgdGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRo aXMgZnVuY3Rpb24gd2lsbCByZXZlcnNlIGdlbmVyYXRlIHNxbCBmb3Igc3Fs IHBhbmVsCisgICAgICAgIDpwYXJhbSBnaWQ6IGdyb3VwIGlkCisgICAgICAg IDpwYXJhbSBzaWQ6IHNlcnZlciBpZAorICAgICAgICA6cGFyYW0gZGlkOiBk YXRhYmFzZSBpZAorICAgICAgICA6cGFyYW0gc2NpZDogc2NoZW1hIGlkCisg ICAgICAgIDpwYXJhbSB0aWQ6IGZ0cyB0ZW1wYXRlIGlkCisgICAgICAgICIi IgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVt cGxhdGUoCisgICAgICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxh dGVfcGF0aCwgJ3NxbC5zcWwnXSksCisgICAgICAgICAgICAgICAgdGlkPXRp ZCwKKyAgICAgICAgICAgICAgICBzY2lkPXNjaWQsCisgICAgICAgICAgICAg ICAgY29ubj1zZWxmLmNvbm4KKyAgICAgICAgICAgICkKKyAgICAgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKHNxbCkK KyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAg cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcigKKyAgICAgICAgICAgICAg ICAgICAgXygKKyAgICAgICAgICAgICAgICAgICAgICAgICJFUlJPUjogQ291 bGRuJ3QgZ2VuZXJhdGUgcmV2ZXJzZWQgZW5naW5lZXJlZCBxdWVyeSBmb3Ig dGhlIEZUUyB0ZW1wbGF0ZSFcbnswfSIpLmZvcm1hdCgKKyAgICAgICAgICAg ICAgICAgICAgICAgIHJlcworICAgICAgICAgICAgICAgICAgICApCisgICAg ICAgICAgICAgICAgKQorCisgICAgICAgICAgICBpZiByZXMgaXMgTm9uZToK KyAgICAgICAgICAgICAgICByZXR1cm4gZ29uZSgKKyAgICAgICAgICAgICAg ICAgICAgXygKKyAgICAgICAgICAgICAgICAgICAgICAgICJFUlJPUjogQ291 bGRuJ3QgZ2VuZXJhdGUgcmV2ZXJzZWQgZW5naW5lZXJlZCBxdWVyeSBmb3Ig RlRTIHRlbXBsYXRlIG5vZGUhIikKKyAgICAgICAgICAgICAgICApCisKKyAg ICAgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKHJlc3BvbnNlPXJlcykK KworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihl KSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5k ZW50cyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAg ICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVu dHMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNlCisgICAgICAgIGZvciB0aGUg RlRTIFRlbXBsYXRlIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAg ICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNl cnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAg ICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAgICB0aWQ6IEZUUyBU ZW1wbGF0ZSBJRAorICAgICAgICAiIiIKKyAgICAgICAgZGVwZW5kZW50c19y ZXN1bHQgPSBzZWxmLmdldF9kZXBlbmRlbnRzKHNlbGYuY29ubiwgdGlkKQor ICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAg ICByZXNwb25zZT1kZXBlbmRlbnRzX3Jlc3VsdCwKKyAgICAgICAgICAgICAg ICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbgorICAgIGRlZiBkZXBlbmRlbmNpZXMoc2VsZiwgZ2lk LCBzaWQsIGRpZCwgc2NpZCwgdGlkKToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb24gZ2V0IHRoZSBkZXBlbmRlbmNpZXMgYW5kIHJldHVy biBhamF4IHJlc3BvbnNlCisgICAgICAgIGZvciB0aGUgRlRTIFRlbXBsYXRl IG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2Vy dmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAg ICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgc2NpZDog U2NoZW1hIElECisgICAgICAgICAgICB0aWQ6IEZUUyBUZW1wYWx0ZSBJRAor ICAgICAgICAiIiIKKyAgICAgICAgZGVwZW5kZW5jaWVzX3Jlc3VsdCA9IHNl bGYuZ2V0X2RlcGVuZGVuY2llcyhzZWxmLmNvbm4sIHRpZCkKKyAgICAgICAg cmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgcmVzcG9u c2U9ZGVwZW5kZW5jaWVzX3Jlc3VsdCwKKyAgICAgICAgICAgICAgICBzdGF0 dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCitGdHNUZW1wbGF0ZVZpZXcu cmVnaXN0ZXJfbm9kZV92aWV3KGJsdWVwcmludCkKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvc3RhdGljL2ltZy9jb2xsLWZ0 c190ZW1wbGF0ZS5wbmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVz L3N0YXRpYy9pbWcvY29sbC1mdHNfdGVtcGxhdGUucG5nCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhYmQ0N2QKQmluYXJ5IGZpbGVz IC9kZXYvbnVsbCBhbmQgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVz L3N0YXRpYy9pbWcvY29sbC1mdHNfdGVtcGxhdGUucG5nIGRpZmZlcgpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy9zdGF0aWMv aW1nL2Z0c190ZW1wbGF0ZS5wbmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVt cGxhdGVzL3N0YXRpYy9pbWcvZnRzX3RlbXBsYXRlLnBuZwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjc4MGJmCkJpbmFyeSBmaWxl cyAvZGV2L251bGwgYW5kIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRl cy9zdGF0aWMvaW1nL2Z0c190ZW1wbGF0ZS5wbmcgZGlmZmVyCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9m dHNfdGVtcGxhdGUvanMvZnRzX3RlbXBsYXRlcy5qcyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9qcy9m dHNfdGVtcGxhdGVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmE1YjQ2ODAKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvanMv ZnRzX3RlbXBsYXRlcy5qcwpAQCAtMCwwICsxLDEzMyBAQAorZGVmaW5lKAor ICAgICAgICBbJ2pxdWVyeScsICd1bmRlcnNjb3JlJywgJ3VuZGVyc2NvcmUu c3RyaW5nJywgJ3BnYWRtaW4nLCAncGdhZG1pbi5icm93c2VyJywgJ2FsZXJ0 aWZ5JywgJ3BnYWRtaW4uYnJvd3Nlci5jb2xsZWN0aW9uJ10sCitmdW5jdGlv bigkLCBfLCBTLCBwZ0FkbWluLCBwZ0Jyb3dzZXIsIGFsZXJ0aWZ5KSB7CisK KyAgLy8gRXh0ZW5kIHRoZSBjb2xsZWN0aW9uIGNsYXNzIGZvciBmdHMgdGVt cGxhdGUKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwtZnRzX3RlbXBs YXRlJ10pIHsKKyAgICB2YXIgZnRzX3RlbXBsYXRlcyA9IHBnQWRtaW4uQnJv d3Nlci5Ob2Rlc1snY29sbC1mdHNfdGVtcGxhdGUnXSA9CisgICAgICBwZ0Fk bWluLkJyb3dzZXIuQ29sbGVjdGlvbi5leHRlbmQoeworICAgICAgICBub2Rl OiAnZnRzX3RlbXBsYXRlJywKKyAgICAgICAgbGFiZWw6ICd7eyBfKCdGVFMg VGVtcGxhdGVzJykgfX0nLAorICAgICAgICB0eXBlOiAnY29sbC1mdHNfdGVt cGxhdGUnLAorICAgICAgICBjb2x1bW5zOiBbJ3RtcGxuYW1lJywgJ2Rlc2Ny aXB0aW9uJ10KKyAgICAgIH0pOworICB9OworCisgIC8vIEV4dGVuZCB0aGUg bm9kZSBjbGFzcyBmb3IgZnRzIHRlbXBsYXRlCisgIGlmICghcGdCcm93c2Vy Lk5vZGVzWydmdHNfdGVtcGxhdGUnXSkgeworICAgIHBnQWRtaW4uQnJvd3Nl ci5Ob2Rlc1snZnRzX3RlbXBsYXRlJ10gPSBwZ0FkbWluLkJyb3dzZXIuTm9k ZS5leHRlbmQoeworICAgICAgcGFyZW50X3R5cGU6ICdzY2hlbWEnLAorICAg ICAgdHlwZTogJ2Z0c190ZW1wbGF0ZScsCisgICAgICBjYW5Ecm9wOiB0cnVl LAorICAgICAgY2FuRHJvcENhc2NhZGU6IHRydWUsCisgICAgICBsYWJlbDog J3t7IF8oJ0ZUUyBUZW1wbGF0ZXMnKSB9fScsCisgICAgICBoYXNTUUw6IHRy dWUsCisgICAgICBoYXNEZXBlbmRzOiB0cnVlLAorICAgICAgSW5pdDogZnVu Y3Rpb24oKSB7CisKKyAgICAgICAgLy8gQXZvaWQgbXVsdGlwbGUgcmVnaXN0 cmF0aW9uIG9mIG1lbnVzCisgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVk KQorICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLmluaXRpYWxp emVkID0gdHJ1ZTsKKworICAgICAgICAvLyBBZGQgY29udGV4dCBtZW51cyBm b3IgZnRzIHRlbXBsYXRlCisgICAgICAgIHBnQnJvd3Nlci5hZGRfbWVudXMo W3sKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX2Z0c190ZW1wbGF0ZV9vbl9z Y2hlbWEnLCBub2RlOiAnc2NoZW1hJywgbW9kdWxlOiB0aGlzLAorICAgICAg ICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6 ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTog J2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJlbDogJ3t7IF8oJ0ZUUyBUZW1w bGF0ZS4uLicpIH19JywKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29uIGlj b24tZnRzX3RlbXBsYXRlJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZSd9Cisg ICAgICAgICAgfSx7CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9mdHNfdGVt cGxhdGVfb25fY29sbCcsIG5vZGU6ICdjb2xsLWZ0c190ZW1wbGF0ZScsIG1v ZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdj b250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisg ICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFi ZWw6ICd7eyBfKCdGVFMgVGVtcGxhdGUuLi4nKSB9fScsCisgICAgICAgICAg aWNvbjogJ3djVGFiSWNvbiBpY29uLWZ0c190ZW1wbGF0ZScsIGRhdGE6IHth Y3Rpb246ICdjcmVhdGUnfQorICAgICAgICAgIH0seworICAgICAgICAgIG5h bWU6ICdjcmVhdGVfZnRzX3RlbXBsYXRlJywgbm9kZTogJ2Z0c190ZW1wbGF0 ZScsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVj dCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGll cycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTog NCwgbGFiZWw6ICd7eyBfKCdGVFMgVGVtcGxhdGUuLi4nKSB9fScsCisgICAg ICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLWZ0c190ZW1wbGF0ZScsIGRh dGE6IHthY3Rpb246ICdjcmVhdGUnfQorICAgICAgICAgIH1dKTsKKworICAg ICAgfSwKKworICAgICAgLy8gRGVmaW5pbmcgYmFja2Zvcm0gbW9kZWwgZm9y IGZ0cyB0ZW1wbGF0ZSBub2RlCisgICAgICBtb2RlbDogcGdBZG1pbi5Ccm93 c2VyLk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICAgICAgZGVmYXVsdHM6IHsK KyAgICAgICAgICB0bXBsbmFtZTogdW5kZWZpbmVkLCAgICAgIC8vIEZ0cyB0 ZW1wbGF0ZSBuYW1lCisgICAgICAgICAgZGVzY3JpcHRpb246IHVuZGVmaW5l ZCwgICAvLyBDb21tZW50IG9uIHRlbXBsYXRlCisgICAgICAgICAgc2NoZW1h OiB1bmRlZmluZWQsICAgICAgICAvLyBTY2hlbWEgbmFtZSB0byB3aGljaCB0 ZW1wbGF0ZSBiZWxvbmdzCisgICAgICAgICAgdG1wbGluaXQ6IHVuZGVmaW5l ZCwgICAgICAvLyBJbml0IGZ1bmN0aW9uIGZvciBmdHMgdGVtcGxhdGUKKyAg ICAgICAgICB0bXBsbGV4aXplOiB1bmRlZmluZWQgICAgIC8vIExleGl6ZSBm dW5jdGlvbiBmb3IgZnRzIHRlbXBsYXRlCisgICAgICAgIH0sCisgICAgICAg IGluaXRpYWxpemU6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcGdBZG1p bi5Ccm93c2VyLk5vZGUuTW9kZWwucHJvdG90eXBlLmluaXRpYWxpemUuYXBw bHkodGhpcywgYXJndW1lbnRzKTsKKyAgICAgICAgICAgIGlmIChfLmlzVW5k ZWZpbmVkKHRoaXMuZ2V0KCdzY2hlbWEnKSkpIHsKKyAgICAgICAgICAgICAg ICB0aGlzLnNldCgnc2NoZW1hJywgdGhpcy5ub2RlX2luZm8uc2NoZW1hLl9p ZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIC8vIERl ZmluaW5nIHNjaGVtYSBmb3IgZnRzIHRlbXBsYXRlCisgICAgICAgIHNjaGVt YTogW3sKKyAgICAgICAgICBpZDogJ3RtcGxuYW1lJywgbGFiZWw6ICd7eyBf KCdOYW1lJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBl OiAndGV4dCcsIGNlbGxIZWFkZXJDbGFzc2VzOiAnd2lkdGhfcGVyY2VudF81 MCcKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdvaWQnLCBsYWJlbDon e3sgXygnT0lEJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICBl ZGl0YWJsZTogZmFsc2UsIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6IHRydWUs IG1vZGU6IFsncHJvcGVydGllcyddCisgICAgICAgIH0seworICAgICAgICAg IGlkOiAnc2NoZW1hJywgbGFiZWw6ICd7eyBfKCdTY2hlbWEnKX19JywgY2Vs bDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBtb2RlOiBb J2NyZWF0ZScsJ2VkaXQnXSwgbm9kZTogJ3NjaGVtYScsCisgICAgICAgICAg Y29udHJvbDogJ25vZGUtbGlzdC1ieS1pZCcKKyAgICAgICAgfSx7CisgICAg ICAgICAgaWQ6ICdkZXNjcmlwdGlvbicsIGxhYmVsOid7eyBfKCdDb21tZW50 JykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAnbXVs dGlsaW5lJywgY2VsbEhlYWRlckNsYXNzZXM6ICd3aWR0aF9wZXJjZW50XzUw JworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3RtcGxpbml0JywgbGFi ZWw6ICd7eyBfKCdJbml0IEZ1bmN0aW9uJyl9fScsIGdyb3VwOiAne3sgXygn RGVmaW5pdGlvbicpIH19JywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIGRp c2FibGVkOiBmdW5jdGlvbihtKSB7IHJldHVybiAhbS5pc05ldygpOyB9LAor ICAgICAgICAgIGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycsIHVybDog J2dldF9pbml0JworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3RtcGxs ZXhpemUnLCBsYWJlbDogJ3t7IF8oJ0xleGl6ZSBGdW5jdGlvbicpfX0nLCBn cm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsCisgICAgICAgICAgdHlw ZTogJ3RleHQnLCBkaXNhYmxlZDogZnVuY3Rpb24obSkgeyByZXR1cm4gIW0u aXNOZXcoKTsgfSwKKyAgICAgICAgICBjb250cm9sOiAnbm9kZS1hamF4LW9w dGlvbnMnLCB1cmw6ICdnZXRfbGV4aXplJworICAgICAgICB9XSwKKworICAg ICAgICAvKgorICAgICAgICAgKiBUcmlnZ2VycyBjb250cm9sIHNwZWNpZmlj IGVycm9yIG1lc3NhZ2VzIGZvciB0ZW1wbGF0ZSBuYW1lLAorICAgICAgICAg KiBsZXhpemUgZnVuY3Rpb24gYW5kIHNjaGVtYSwgaWYgYW55IG9uZSBvZiB0 aGVtIGlzIG5vdCBzcGVjaWZpZWQKKyAgICAgICAgICogd2hpbGUgY3JlYXRp bmcgbmV3IGZ0cyB0ZW1wbGF0ZQorICAgICAgICAgKi8KKyAgICAgICAgdmFs aWRhdGU6IGZ1bmN0aW9uKGtleXMpeworICAgICAgICAgIHZhciBuYW1lID0g dGhpcy5nZXQoJ3RtcGxuYW1lJyk7CisgICAgICAgICAgdmFyIGxleGl6ZSA9 IHRoaXMuZ2V0KCd0bXBsbGV4aXplJyk7CisgICAgICAgICAgdmFyIHNjaGVt YSA9IHRoaXMuZ2V0KCdzY2hlbWEnKTsKKworICAgICAgICAgIC8vIFZhbGlk YXRlIGZ0cyB0ZW1wbGF0ZSBuYW1lCisgICAgICAgICAgaWYgKF8uaXNVbmRl ZmluZWQobmFtZSkgfHwgXy5pc051bGwobmFtZSkgfHwgU3RyaW5nKG5hbWUp LnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAg ICAgIHZhciBtc2cgPSAne3sgXygnTmFtZSBtdXN0IGJlIHNwZWNpZmllZCEn KSB9fSc7CisgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCduYW1l JywgbXNnKTsKKyAgICAgICAgICAgIHJldHVybiBtc2c7CisgICAgICAgICAg fQorCisgICAgICAgICAgLy8gVmFsaWRhdGUgbGV4aXplIGZ1bmN0aW9uIGNv bnRyb2wKKyAgICAgICAgICBlbHNlIGlmIChfLmlzVW5kZWZpbmVkKGxleGl6 ZSkgfHwgXy5pc051bGwobGV4aXplKSB8fCBTdHJpbmcobGV4aXplKS5yZXBs YWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICB2 YXIgbXNnID0gJ3t7IF8oJ0xleGl6ZSBmdW5jdGlvbiBtdXN0IGJlIHNlbGVj dGVkIScpIH19JzsKKyAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQo J3RtcGxsZXhpemUnLCBtc2cpOworICAgICAgICAgICAgcmV0dXJuIG1zZzsK KyAgICAgICAgICB9CisKKyAgICAgICAgICAvLyBWYWxpZGF0ZSBzY2hlbWEg Zm9yIGZ0cyB0ZW1wbGF0ZQorICAgICAgICAgIGVsc2UgaWYgKF8uaXNVbmRl ZmluZWQoc2NoZW1hKSB8fCBfLmlzTnVsbChzY2hlbWEpIHx8IFN0cmluZyhz Y2hlbWEpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAg ICAgICAgICAgIHZhciBtc2cgPSAne3sgXygnU2NoZW1hIG11c3QgYmUgc2Vs ZWN0ZWQhJykgfX0nOworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNl dCgnc2NoZW1hJywgbXNnKTsKKyAgICAgICAgICAgIHJldHVybiBtc2c7Cisg ICAgICAgICAgfQorICAgICAgICAgIGVsc2UgdGhpcy5lcnJvck1vZGVsLmNs ZWFyKCk7CisKKyAgICAgICAgICB0aGlzLnRyaWdnZXIoJ29uLXN0YXR1cy1j bGVhcicpOworICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9Cisg ICAgICB9KQorICAgIH0pOworICB9CisKK3JldHVybiBwZ0Jyb3dzZXIuTm9k ZXNbJ2NvbGwtZnRzX3RlbXBsYXRlJ107Cit9KTsKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNf dGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVz L2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3Rl bXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZkNDYwNwot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0 ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvY3JlYXRl LnNxbApAQCAtMCwwICsxLDExIEBACit7IyBDUkVBVEUgVEVYVCBTRUFSQ0gg VEVNUExBVEUgU3RhdGVtZW50ICN9Cit7JSBpZiBkYXRhIGFuZCBkYXRhLnNj aGVtYSBhbmQgZGF0YS50bXBsbmFtZSBhbmQgZGF0YS50bXBsbGV4aXplICV9 CitDUkVBVEUgVEVYVCBTRUFSQ0ggVEVNUExBVEUge3sgY29ubnxxdElkZW50 KGRhdGEuc2NoZW1hLCBkYXRhLnRtcGxuYW1lKSB9fSAgKAoreyUgaWYgZGF0 YS50bXBsaW5pdCBhbmQgZGF0YS50bXBsaW5pdCAhPSAnLSclfSAgICBJTklU ID0ge3tkYXRhLnRtcGxpbml0fX0seyUgZW5kaWYgJX0KKyAgICBMRVhJWkUg PSB7e2RhdGEudG1wbGxleGl6ZX19CispOworeyMgRGVzY3JpcHRpb24gZm9y IFRFWFQgU0VBUkNIIFRFTVBMQVRFICN9Cit7JSBpZiBkYXRhLmRlc2NyaXB0 aW9uICV9CitDT01NRU5UIE9OIFRFWFQgU0VBUkNIIFRFTVBMQVRFIHt7IGNv bm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50bXBsbmFtZSkgfX0KKyAg ICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsIH19OworeyUg ZW5kaWYgJX17JSBlbmRpZiAlfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMv dGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvZGVsZXRlLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0 c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jY2E4ZGM0Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0 ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9kZWxldGUuc3FsCkBAIC0w LDAgKzEsMjMgQEAKK3sjIEZFVENIIFRFWFQgU0VBUkNIIFRFTVBMQVRFIE5B TUUgU3RhdGVtZW50ICN9Cit7JSBpZiB0aWQgJX0KK1NFTEVDVAorICAgIHQu dG1wbG5hbWUgQVMgbmFtZSwKKyAgICAoCisgICAgU0VMRUNUCisgICAgICAg IG5zcG5hbWUKKyAgICBGUk9NCisgICAgICAgIHBnX25hbWVzcGFjZQorICAg IFdIRVJFCisgICAgICAgIG9pZCA9IHQudG1wbG5hbWVzcGFjZQorICAgICkg YXMgc2NoZW1hCitGUk9NCisgICAgcGdfdHNfdGVtcGxhdGUgdCBMRUZUIEpP SU4gcGdfZGVzY3JpcHRpb24gZAorICAgIE9OIGQub2Jqb2lkPXQub2lkIEFO RCBkLmNsYXNzb2lkPSdwZ190c190ZW1wbGF0ZSc6OnJlZ2NsYXNzCitXSEVS RQorICAgIHQub2lkID0ge3t0aWR9fTo6T0lEOworeyUgZW5kaWYgJX0KKwor eyMgRFJPUCBURVhUIFNFQVJDSCBURU1QTEFURSBTdGF0ZW1lbnQgI30KK3sl IGlmIHNjaGVtYSBhbmQgbmFtZSAlfQorRFJPUCBURVhUIFNFQVJDSCBURU1Q TEFURSB7e2Nvbm58cXRJZGVudChzY2hlbWEpfX0ue3tjb25ufHF0SWRlbnQo bmFtZSl9fSB7JSBpZiBjYXNjYWRlICV9Q0FTQ0FERXslZW5kaWYlfTsKK3sl IGVuZGlmICV9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMv ZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9mdW5jdGlvbnMuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBs YXRlL3NxbC85LjFfcGx1cy9mdW5jdGlvbnMuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmZTllMDIKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9m dHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL2Z1bmN0aW9ucy5zcWwKQEAgLTAs MCArMSwyMyBAQAoreyMgRkVUQ0ggbGV4aXplIGZ1bmN0aW9ucyBmb3IgVEVY VCBTRUFSQ0ggVEVNUExBVEUgI30KK3slIGlmIGxleGl6ZSAlfQorU0VMRUNU CisgICAgcHJvbmFtZSwgbnNwbmFtZQorRlJPTQorICAgIHBnX3Byb2MgSk9J TiBwZ19uYW1lc3BhY2UgbiBPTiBuLm9pZD1wcm9uYW1lc3BhY2UKK1dIRVJF CisgICAgcHJvcmV0dHlwZT0yMjgxCisgICAgQU5EIHByb2FyZ3R5cGVzPScy MjgxIDIyODEgMjI4MSAyMjgxJworT1JERVIgQlkgcHJvbmFtZTsKK3slIGVu ZGlmICV9CisKK3sjIEZFVENIIGluaXQgZnVuY3Rpb25zIGZvciBURVhUIFNF QVJDSCBURU1QTEFURSAjfQoreyUgaWYgaW5pdCAlfQorU0VMRUNUCisgICAg cHJvbmFtZSwgbnNwbmFtZQorRlJPTQorICAgIHBnX3Byb2MgSk9JTiBwZ19u YW1lc3BhY2UgbiBPTiBuLm9pZD1wcm9uYW1lc3BhY2UKK1dIRVJFCisgICAg cHJvcmV0dHlwZT0yMjgxIGFuZCBwcm9hcmd0eXBlcz0nMjI4MScKK09SREVS IEJZCisgICAgcHJvbmFtZTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVt cGxhdGUvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3Nx bC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi44YjJhNzBjCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3Rl bXBsYXRlL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsx LDI3IEBACit7IyBHZXQgcHJvcGVydGllcyBmb3IgRlRTIFRFTVBMQVRFICN9 CitTRUxFQ1QKKyAgICB0bXBsLm9pZCwKKyAgICB0bXBsLnRtcGxuYW1lLAor ICAgIHRtcGwudG1wbGluaXQsCisgICAgdG1wbC50bXBsbGV4aXplLAorICAg IGRlc2NyaXB0aW9uLAorICAgIHRtcGwudG1wbG5hbWVzcGFjZSBBUyBzY2hl bWEKK0ZST00KKyAgICBwZ190c190ZW1wbGF0ZSB0bXBsCisgICAgTEVGVCBP VVRFUiBKT0lOIHBnX2Rlc2NyaXB0aW9uIGRlcworT04KKyAgICAoCisgICAg ZGVzLm9iam9pZD10bXBsLm9pZAorICAgIEFORCBkZXMuY2xhc3NvaWQ9J3Bn X3RzX3RlbXBsYXRlJzo6cmVnY2xhc3MKKyAgICApCitXSEVSRQoreyUgaWYg c2NpZCAlfQorICAgIHRtcGwudG1wbG5hbWVzcGFjZSA9IHt7c2NpZH19OjpP SUQKK3slIGVsaWYgbmFtZSAlfQorICAgIHRtcGwudG1wbG5hbWUgPSB7e25h bWV8cXRMaXRlcmFsfX0KK3slIGVuZGlmICV9Cit7JSBpZiB0aWQgJX0KKyAg ICBBTkQgdG1wbC5vaWQgPSB7e3RpZH19OjpPSUQKK3slIGVuZGlmICV9CitP UkRFUiBCWQorICAgIHRtcGwudG1wbG5hbWUKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVt cGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL3Nj aGVtYS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBs YXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL3NjaGVtYS5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmY3ZGRiMwotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMv dGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvc2NoZW1hLnNx bApAQCAtMCwwICsxLDE5IEBACit7IyBTQ0hFTUEgbmFtZSBGRVRDSCBzdGF0 ZW1lbnQgI30KK3slIGlmIGRhdGEuc2NoZW1hICV9CitTRUxFQ1QKKyAgICBu c3BuYW1lCitGUk9NCisgICAgcGdfbmFtZXNwYWNlCitXSEVSRQorICAgIG9p ZCA9IHt7ZGF0YS5zY2hlbWF9fTo6T0lECisKK3slIGVsaWYgZGF0YS5pZCAl fQorU0VMRUNUCisgICAgbnNwbmFtZQorRlJPTQorICAgIHBnX25hbWVzcGFj ZSBuc3AKKyAgICBMRUZUIEpPSU4gcGdfdHNfdGVtcGxhdGUgdHMKKyAgICBP TiB0cy50bXBsbmFtZXNwYWNlID0gbnNwLm9pZAorV0hFUkUKKyAgICB0cy5v aWQgPSB7e2RhdGEuaWR9fTo6T0lECit7JSBlbmRpZiAlfQpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4x X3BsdXMvc3FsLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMv dGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvc3FsLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjYxMDc4Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRl cy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9zcWwuc3Fs CkBAIC0wLDAgKzEsNDEgQEAKK3sjIFJldmVyc2UgZW5naW5lZXJlZCBzcWwg Zm9yIEZUUyBURU1QTEFURSAjfQorU0VMRUNUCisgICAgYXJyYXlfdG9fc3Ry aW5nKGFycmF5X2FnZyhzcWwpLCBFJ1xuXG4nKSBhcyBzcWwKK0ZST00KKyAg ICAoCisgICAgU0VMRUNUCisgICAgICAgIEUnLS0gVGV4dCBTZWFyY2ggVGVt cGxhdGU6ICcgfHwgbnNwbmFtZSB8fCBFJy4nIHx8IHRtcGwudG1wbG5hbWUg fHwKKyAgICAgICAgRSdcblxuLS0gRFJPUCBURVhUIFNFQVJDSCBURU1QTEFU RSAnIHx8IG5zcG5hbWUgfHwgRScuJyB8fCB0bXBsLnRtcGxuYW1lIHx8Cisg ICAgICAgIEUnXG5cbkNSRUFURSBURVhUIFNFQVJDSCBURU1QTEFURSAnIHx8 IG5zcG5hbWUgfHwgRScuJyB8fCAgdG1wbC50bXBsbmFtZSB8fCBFJyAoXG4n IHx8CisgICAgICAgIENBU0UKKyAgICAgICAgICAgIFdIRU4gdG1wbC50bXBs aW5pdCAhPSAnLSc6OnJlZ2NsYXNzIFRIRU4gRScgICAgSU5JVCA9ICcgfHwg dG1wbC50bXBsaW5pdCB8fCBFJyxcbicKKyAgICAgICAgICAgIEVMU0UgJycg RU5EIHx8CisgICAgICAgIEUnICAgIExFWElaRSA9ICcgfHwgdG1wbC50bXBs bGV4aXplIHx8IEUnXG4pOycgfHwKKyAgICAgICAgQ0FTRQorICAgICAgICAg ICAgV0hFTiBhLmRlc2NyaXB0aW9uIElTIE5PVCBOVUxMIFRIRU4KKyAgICAg ICAgICAgICAgICBFJ1xuXG5DT01NRU5UIE9OIFRFWFQgU0VBUkNIIFRFTVBM QVRFICcgfHwgbnNwbmFtZSB8fCBFJy4nIHx8IHRtcGwudG1wbG5hbWUgfHwK KyAgICAgICAgICAgICAgICBFJyBJUyAnIHx8IHBnX2NhdGFsb2cucXVvdGVf bGl0ZXJhbChkZXNjcmlwdGlvbikgfHwgRSc7JworICAgICAgICAgICAgRUxT RSAnJyAgRU5EIGFzIHNxbAorRlJPTQorICAgIHBnX3RzX3RlbXBsYXRlIHRt cGwKKyAgICBMRUZUIEpPSU4gKAorICAgICAgICBTRUxFQ1QKKyAgICAgICAg ICAgIGRlcy5kZXNjcmlwdGlvbiBhcyBkZXNjcmlwdGlvbiwKKyAgICAgICAg ICAgIGRlcy5vYmpvaWQgYXMgZGVzY29pZAorICAgICAgICBGUk9NCisgICAg ICAgICAgICBwZ19kZXNjcmlwdGlvbiBkZXMKKyAgICAgICAgV0hFUkUKKyAg ICAgICAgICAgIGRlcy5vYmpvaWQ9e3t0aWR9fTo6T0lEIEFORCBkZXMuY2xh c3NvaWQ9J3BnX3RzX3RlbXBsYXRlJzo6cmVnY2xhc3MKKyAgICApIGEgT04g KGEuZGVzY29pZCA9IHRtcGwub2lkKQorICAgIExFRlQgSk9JTiAoCisgICAg ICAgIFNFTEVDVAorICAgICAgICAgICAgbnNwbmFtZSwKKyAgICAgICAgICAg IG5zcC5vaWQgYXMgbm9pZAorICAgICAgICBGUk9NCisgICAgICAgICAgICBw Z19uYW1lc3BhY2UgbnNwCisgICAgICAgIFdIRVJFCisgICAgICAgICAgICBv aWQgPSB7e3NjaWR9fTo6T0lECisgICAgKSBiIE9OIChiLm5vaWQgPSB0bXBs LnRtcGxuYW1lc3BhY2UpCitXSEVSRQorICAgIHRtcGwub2lkPXt7dGlkfX06 Ok9JRAorKSBhcyBjOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxh dGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1w bGF0ZS9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi45MzVjNjQ5Ci0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRz X3RlbXBsYXRlL3NxbC85LjFfcGx1cy91cGRhdGUuc3FsCkBAIC0wLDAgKzEs MjIgQEAKK3sjIFVQREFURSBzdGF0ZW1lbnQgZm9yIFRFWFQgU0VBUkNIIFRF TVBMQVRFICN9Cit7JSBpZiBkYXRhICV9Cit7JSBpZiBkYXRhLnRtcGxuYW1l IGFuZCBkYXRhLnRtcGxuYW1lICE9IG9fZGF0YS50bXBsbmFtZSAlfQorQUxU RVIgVEVYVCBTRUFSQ0ggVEVNUExBVEUge3tjb25ufHF0SWRlbnQob19kYXRh LnNjaGVtYSl9fS57e2Nvbm58cXRJZGVudChvX2RhdGEudG1wbG5hbWUpfX0K KyAgICBSRU5BTUUgVE8ge3tkYXRhLnRtcGxuYW1lfX07Cit7JSBlbmRpZiAl fQorCit7I2luIGNhc2Ugb2YgcmVuYW1lLCB1c2UgbmV3IGZ0cyB0ZW1wbGF0 ZSBuYW1lICN9Cit7JSBpZiBkYXRhLnRtcGxuYW1lIGFuZCBkYXRhLnRtcGxu YW1lICE9IG9fZGF0YS50bXBsbmFtZSAlfQoreyUgc2V0IG5hbWUgPSBkYXRh LnRtcGxuYW1lICV9Cit7JSBlbHNlICV9Cit7JSBzZXQgbmFtZSA9IG9fZGF0 YS50bXBsbmFtZSAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuc2NoZW1h IGFuZCBkYXRhLnNjaGVtYSAhPSBvX2RhdGEuc2NoZW1hICV9CitBTFRFUiBU RVhUIFNFQVJDSCBURU1QTEFURSB7e2Nvbm58cXRJZGVudChvX2RhdGEuc2No ZW1hKX19Lnt7Y29ubnxxdElkZW50KG5hbWUpfX0KKyAgICBTRVQgU0NIRU1B IHt7ZGF0YS5zY2hlbWF9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmRl c2NyaXB0aW9uIGFuZCBkYXRhLmRlc2NyaXB0aW9uICE9IG9fZGF0YS5kZXNj cmlwdGlvbiAlfQorQ09NTUVOVCBPTiBURVhUIFNFQVJDSCBURU1QTEFURSB7 e2Nvbm58cXRJZGVudChvX2RhdGEuc2NoZW1hKX19Lnt7Y29ubnxxdElkZW50 KG5hbWUpfX0KKyAgICBJUyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJh bCB9fTsKK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQpcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUK --001a113eca06490068052dc5ab62 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 --001a113eca06490068052dc5ab62--