Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bUpnQ-00017B-J9 for pgadmin-hackers@arkaria.postgresql.org; Wed, 03 Aug 2016 06:36:53 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bUpnP-0004CX-M8 for pgadmin-hackers@arkaria.postgresql.org; Wed, 03 Aug 2016 06:36:51 +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_2) (envelope-from ) id 1bUpnN-0004CL-SO for pgadmin-hackers@postgresql.org; Wed, 03 Aug 2016 06:36:50 +0000 Received: from mail-oi0-x234.google.com ([2607:f8b0:4003:c06::234]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1bUpnJ-0002jp-MM for pgadmin-hackers@postgresql.org; Wed, 03 Aug 2016 06:36:48 +0000 Received: by mail-oi0-x234.google.com with SMTP id j185so267512420oih.0 for ; Tue, 02 Aug 2016 23:36:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=Z8TDxrQCleIp0yTd1QzkuL2eR0amlwY1Q/vb7m6Nm2U=; b=v7vn0H9ajKLlH4FY7621u+RLaRuIAv7JxzIbRSBoYaE1igZtmeGwkDKivfZW0+vSRk 3SkuXINi8LVfqGa/ka3c5EdaLJSnyr5yY4VAfEZfvS5sm57Jct5KnOsU3sMYLS+B6TMI h1MVOV37OM3NSe5rTQVmKmWKPFqvbLVgipjbu7T3VOeZPkDlUppHs/HX3pooqo85xFZM yDvRuchq0OeSzD56C9IgvqPzsGfYjDuH4vi0nImcTdgq2btJuVqxwgsDTWxMzIhg9lur GRLm2RugmmCJKcTZ0YeIye5bUbQ+RgiyJtLzcFjhDamQFB4PoZeJR0WW3f+LQODlFt9z g0QQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=Z8TDxrQCleIp0yTd1QzkuL2eR0amlwY1Q/vb7m6Nm2U=; b=OFAbE9zC9odaF4OuTmTPBUPUX9Zb4XnXbYQ+rcmtA5JrJK6rAMMqEjq9SMlJT25Qfj /i7PciE7e+IKUFdTN2kdvTsl3jN8knwQ45PhnwmJv9G97UAjl/aSSoH8GtKIe0kAfCpP +aTqjXzJ7GIIp9F/gGJkNWhTMmwcCf4mWRaZ/+ziS0ULLhX6y+hvtC7kvSCV2seYk2gA +0a99IONlcaZ1RvsWdM1RGz5/VdBNipMLhI+Ns+a2Wz8qgdtKdGRB1pNby1Vs4YpwczG Gh1jr5NBTm1wA6gt2/aoknFt/z2gbPZ+Ao5csoI7tGww2mEuPg+LoWGef+rHPhMnaRO4 w7gw== X-Gm-Message-State: AEkoouvEiN7D6t6WtfPe0fNb/J9a46QyvAJ737ntfxrvkfSPjU2EOhs2bO+QUpxkptCxSrSW8HdDJIYDfhaZvCFw X-Received: by 10.202.64.138 with SMTP id n132mr40464759oia.2.1470206204189; Tue, 02 Aug 2016 23:36:44 -0700 (PDT) MIME-Version: 1.0 Received: by 10.157.5.99 with HTTP; Tue, 2 Aug 2016 23:36:43 -0700 (PDT) From: Harshal Dhumal Date: Wed, 3 Aug 2016 12:06:43 +0530 Message-ID: Subject: Patch for RM1500 other issues [pgAdmin4] To: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a113ddd7a8ca7690539250e62 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 --001a113ddd7a8ca7690539250e62 Content-Type: multipart/alternative; boundary=001a113ddd7a8ca7640539250e60 --001a113ddd7a8ca7640539250e60 Content-Type: text/plain; charset=UTF-8 Hi, PFA patch for RM1500. Changes/Issues fixed: 1] datamodel.js: For collection type added check before adding model into "changed" list instead of adding it blindly. 2] Type casting from str to int of column properties like attlen, attpricision. 3] Added missing data formating when adding new column to existing table (from table edit mode). 4] Added more validation for Foreign key constraint. 5] Column.js: Column grid (in table edit mode) show proper disabled color for disabled cell when grid renders. 6] All constraints and index js added idattribute to distinguish which s/constraint or s/index is updated on server side. 7] Column update.sql: Fixed sql when altering column data type. The issue was when we alter data type from which has length and precision to data type which don't have these properties and vice versa. For e.g. alter data type numeric(10,12) to real (and vice versa) 8] Renaming constraint (RM1500). -- *Harshal Dhumal* *Software Engineer* EnterpriseDB India: http://www.enterprisedb.com The Enterprise PostgreSQL Company --001a113ddd7a8ca7640539250e60 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

PFA patch for RM1500.=

Changes/Issues fixed:

1] datamodel.js: For colle= ction type added check before adding model into "changed" list in= stead of adding it blindly.

2] Type casting from str to int of= column properties like attlen, attpricision.

3= ] Added missing data formating when adding new column to existing table (fr= om table edit mode).

4] Added more validation for Foreign= key constraint.

5] Column.js: Column grid (in table edit= mode) show proper disabled color for disabled cell when grid renders.
<= /div>

6] All constraints and index js added idattribute = to distinguish which s/constraint or s/index is updated on server side.
=
7] Column update.sql: Fixed sql when altering column data ty= pe. The issue was when we alter data type from which has length and precisi= on to data type which don't have these properties and vice versa.
For e.g. alter data type numeric(10,12) to real (and vice versa)

8] Renaming constraint (RM1500).
=

--=C2=A0
Harshal Dhumal
Software E= ngineer

EnterpriseDB India:=C2=A0http://www.enterprisedb.com
The Enterprise PostgreSQL Company
--001a113ddd7a8ca7640539250e60-- --001a113ddd7a8ca7690539250e62 Content-Type: text/x-patch; charset=US-ASCII; name="RM1500.patch" Content-Disposition: attachment; filename="RM1500.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ireiqde30 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9fX2luaXRfXy5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9fX2luaXRfXy5weQppbmRleCAw MjA1N2JmLi5lY2UxMDNmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L19faW5pdF9fLnB5CkBAIC0xODcsOSArMTg3LDkgQEAgY2xhc3MgVGFibGVW aWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIsIFZhY3V1bVNl dHRpbmdzKToKICAgICAgIC0gSXQgd2lsbCByZXR1cm4gZm9ybWF0dGVkIG91 dHB1dCBvZiBxdWVyeSByZXN1bHQKICAgICAgICAgYXMgcGVyIGNsaWVudCBt b2RlbCBmb3JtYXQgZm9yIGluZGV4IGNvbnN0cmFpbnQgbm9kZQogCi0gICAg KiBfY2x0eXBlX2Zvcm1hdHRlcihzZWxmLCB0eXBlKToKKyAgICAqIF9jbHR5 cGVfZm9ybWF0dGVyKHR5cGUpOiAoc3RhdGljbWV0aG9kKQogICAgICAgLSBX ZSBuZWVkIHRvIHJlbW92ZSBbXSBmcm9tIHR5cGUgYW5kIGFwcGVuZCBpdAot ICAgICAgICBhZnRlciBsZW5ndGgvcHJlY2lzaW9uIHNvIHdlIHdpbGwgc2V0 IGZsYWcgZm9yCisgICAgICAgIGFmdGVyIGxlbmd0aC9wcmVjaXNpb24gc28g d2Ugd2lsbCBzZW5kIGZsYWcgZm9yCiAgICAgICAgIHNxbCB0ZW1wbGF0ZQog CiAgICAgKiBfcGFyc2VfZm9ybWF0X2NvbHVtbnMoc2VsZiwgZGF0YSwgbW9k ZT1Ob25lKToKQEAgLTYyNywxNyArNjI3LDE2IEBAIGNsYXNzIFRhYmxlVmll dyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyLCBWYWN1dW1TZXR0 aW5ncyk6CiAgICAgICAgICAgICAgICAgICAgIGNvbHVtblsnaXNkdXAnXSwg Y29sdW1uWydhdHRuZGltcyddLCBjb2x1bW5bJ2F0dHR5cG1vZCddCiAgICAg ICAgICAgICAgICAgKQogCi0gICAgICAgICAgICAgICAgaW1wb3J0IHJlCiAg ICAgICAgICAgICAgICAgIyBJZiB3ZSBoYXZlIGxlbmd0aCAmIHByZWNpc2lv biBib3RoCiAgICAgICAgICAgICAgICAgbWF0Y2hPYmogPSByZS5zZWFyY2go cicoXGQrKSwoXGQrKScsIGZ1bGx0eXBlKQogICAgICAgICAgICAgICAgIGlm IG1hdGNoT2JqOgotICAgICAgICAgICAgICAgICAgICBjb2x1bW5bJ2F0dGxl biddID0gbWF0Y2hPYmouZ3JvdXAoMSkKLSAgICAgICAgICAgICAgICAgICAg Y29sdW1uWydhdHRwcmVjaXNpb24nXSA9IG1hdGNoT2JqLmdyb3VwKDIpCisg ICAgICAgICAgICAgICAgICAgIGNvbHVtblsnYXR0bGVuJ10gPSBpbnQobWF0 Y2hPYmouZ3JvdXAoMSkpCisgICAgICAgICAgICAgICAgICAgIGNvbHVtblsn YXR0cHJlY2lzaW9uJ10gPSBpbnQobWF0Y2hPYmouZ3JvdXAoMikpCiAgICAg ICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgIyBJZiB3 ZSBoYXZlIGxlbmd0aCBvbmx5CiAgICAgICAgICAgICAgICAgICAgIG1hdGNo T2JqID0gcmUuc2VhcmNoKHInKFxkKyknLCBmdWxsdHlwZSkKICAgICAgICAg ICAgICAgICAgICAgaWYgbWF0Y2hPYmo6Ci0gICAgICAgICAgICAgICAgICAg ICAgICBjb2x1bW5bJ2F0dGxlbiddID0gbWF0Y2hPYmouZ3JvdXAoMSkKKyAg ICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblsnYXR0bGVuJ10gPSBpbnQo bWF0Y2hPYmouZ3JvdXAoMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICBj b2x1bW5bJ2F0dHByZWNpc2lvbiddID0gTm9uZQogICAgICAgICAgICAgICAg ICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uWydh dHRsZW4nXSA9IE5vbmUKQEAgLTEwNDUsNyArMTA0NCw2IEBAIGNsYXNzIFRh YmxlVmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyLCBWYWN1 dW1TZXR0aW5ncyk6CiAgICAgICAgICMgRmlsdGVyIGluaGVyaXRlZCBjb2x1 bW5zIGZyb20gYWxsIGNvbHVtbnMKICAgICAgICAgaWYgJ2NvbHVtbnMnIGlu IGRhdGEgYW5kIGxlbihkYXRhWydjb2x1bW5zJ10pID4gMCBcCiAgICAgICAg ICAgICAgICAgYW5kIGxlbihhbGxfY29sdW1ucykgPiAwOgotICAgICAgICAg ICAgY29sdW1ucyA9IFtdCiAgICAgICAgICAgICBmb3Igcm93IGluIGRhdGFb J2NvbHVtbnMnXToKICAgICAgICAgICAgICAgICBmb3IgaSwgY29sIGluIGVu dW1lcmF0ZShhbGxfY29sdW1ucyk6CiAgICAgICAgICAgICAgICAgICAgICMg SWYgYm90aCBuYW1lIGFyZSBzYW1lIHRoZW4gcmVtb3ZlIGl0CkBAIC0xMjcx LDI0ICsxMjY5LDIyIEBAIGNsYXNzIFRhYmxlVmlldyhQR0NoaWxkTm9kZVZp ZXcsIERhdGFUeXBlUmVhZGVyLCBWYWN1dW1TZXR0aW5ncyk6CiAgICAgICAg IGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQogCi0gICAg ZGVmIF9jbHR5cGVfZm9ybWF0dGVyKHNlbGYsIHR5cGUpOgorICAgIEBzdGF0 aWNtZXRob2QKKyAgICBkZWYgX2NsdHlwZV9mb3JtYXR0ZXIoZGF0YV90eXBl KToKICAgICAgICAgIiIiCiAKICAgICAgICAgQXJnczoKLSAgICAgICAgICAg IGRhdGE6IFR5cGUgc3RyaW5nCisgICAgICAgICAgICBkYXRhX3R5cGU6IFR5 cGUgc3RyaW5nCiAKICAgICAgICAgUmV0dXJuczoKICAgICAgICAgICAgIFdl IG5lZWQgdG8gcmVtb3ZlIFtdIGZyb20gdHlwZSBhbmQgYXBwZW5kIGl0Ci0g ICAgICAgICAgICBhZnRlciBsZW5ndGgvcHJlY2lzaW9uIHNvIHdlIHdpbGwg c2V0IGZsYWcgZm9yCisgICAgICAgICAgICBhZnRlciBsZW5ndGgvcHJlY2lz aW9uIHNvIHdlIHdpbGwgc2VuZCBmbGFnIGZvcgogICAgICAgICAgICAgc3Fs IHRlbXBsYXRlCiAgICAgICAgICIiIgotICAgICAgICBpZiAnW10nIGluIHR5 cGU6Ci0gICAgICAgICAgICB0eXBlID0gdHlwZS5yZXBsYWNlKCdbXScsICcn KQotICAgICAgICAgICAgc2VsZi5oYXNTcXJCcmFja2V0ID0gVHJ1ZQorICAg ICAgICBpZiAnW10nIGluIGRhdGFfdHlwZToKKyAgICAgICAgICAgIHJldHVy biBkYXRhX3R5cGVbOi0yXSwgVHJ1ZQogICAgICAgICBlbHNlOgotICAgICAg ICAgICAgc2VsZi5oYXNTcXJCcmFja2V0ID0gRmFsc2UKLQotICAgICAgICBy ZXR1cm4gdHlwZQorICAgICAgICAgICAgcmV0dXJuIGRhdGFfdHlwZSwgRmFs c2UKIAogICAgIGRlZiBfcGFyc2VfZm9ybWF0X2NvbHVtbnMoc2VsZiwgZGF0 YSwgbW9kZT1Ob25lKToKICAgICAgICAgIiIiCkBAIC0xMzEzLDkgKzEzMDks OSBAQCBjbGFzcyBUYWJsZVZpZXcoUEdDaGlsZE5vZGVWaWV3LCBEYXRhVHlw ZVJlYWRlciwgVmFjdXVtU2V0dGluZ3MpOgogICAgICAgICAgICAgICAgICAg ICAgICAgaWYgJ2F0dGFjbCcgaW4gYzoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjWydhdHRhY2wnXSA9IHBhcnNlX3ByaXZfdG9fZGIoY1snYXR0 YWNsJ10sIHNlbGYuY29sdW1uX2FjbCkKIAotICAgICAgICAgICAgICAgICAg ICAgICAgIyBjaGVjayB0eXBlIGZvciAnW10nIGluIGl0Ci0gICAgICAgICAg ICAgICAgICAgICAgICBjWydjbHR5cGUnXSA9IHNlbGYuX2NsdHlwZV9mb3Jt YXR0ZXIoY1snY2x0eXBlJ10pCi0gICAgICAgICAgICAgICAgICAgICAgICBj WydoYXNTcXJCcmFja2V0J10gPSBzZWxmLmhhc1NxckJyYWNrZXQKKyAgICAg ICAgICAgICAgICAgICAgICAgIGlmICdjbHR5cGUnIGluIGM6CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIyBjaGVjayB0eXBlIGZvciAnW10nIGlu IGl0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY1snY2x0eXBlJ10s IGNbJ2hhc1NxckJyYWNrZXQnXSA9IHNlbGYuX2NsdHlwZV9mb3JtYXR0ZXIo Y1snY2x0eXBlJ10pCiAKICAgICAgICAgICAgICAgICAgICAgZGF0YVsnY29s dW1ucyddW2FjdGlvbl0gPSBmaW5hbF9jb2x1bW5zCiAgICAgICAgIGVsc2U6 CkBAIC0xMzMzLDkgKzEzMjksOSBAQCBjbGFzcyBUYWJsZVZpZXcoUEdDaGls ZE5vZGVWaWV3LCBEYXRhVHlwZVJlYWRlciwgVmFjdXVtU2V0dGluZ3MpOgog ICAgICAgICAgICAgICAgIGlmICdhdHRhY2wnIGluIGM6CiAgICAgICAgICAg ICAgICAgICAgIGNbJ2F0dGFjbCddID0gcGFyc2VfcHJpdl90b19kYihjWydh dHRhY2wnXSwgc2VsZi5jb2x1bW5fYWNsKQogCi0gICAgICAgICAgICAgICAg IyBjaGVjayB0eXBlIGZvciAnW10nIGluIGl0Ci0gICAgICAgICAgICAgICAg Y1snY2x0eXBlJ10gPSBzZWxmLl9jbHR5cGVfZm9ybWF0dGVyKGNbJ2NsdHlw ZSddKQotICAgICAgICAgICAgICAgIGNbJ2hhc1NxckJyYWNrZXQnXSA9IHNl bGYuaGFzU3FyQnJhY2tldAorICAgICAgICAgICAgICAgIGlmICdjbHR5cGUn IGluIGM6CisgICAgICAgICAgICAgICAgICAgICMgY2hlY2sgdHlwZSBmb3Ig J1tdJyBpbiBpdAorICAgICAgICAgICAgICAgICAgICBjWydjbHR5cGUnXSwg Y1snaGFzU3FyQnJhY2tldCddID0gc2VsZi5fY2x0eXBlX2Zvcm1hdHRlcihj WydjbHR5cGUnXSkKIAogICAgICAgICAgICAgZGF0YVsnY29sdW1ucyddID0g ZmluYWxfY29sdW1ucwogCkBAIC0xODQzLDE5ICsxODM5LDIwIEBAIGNsYXNz IFRhYmxlVmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyLCBW YWN1dW1TZXR0aW5ncyk6CiAgICAgICAgICAgICAgICAgICAgICAgICApCiAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1xuXG4nLmpvaW4oc3Fs KQogCi0gICAgICAgICAgICAgICAgICAgIGNvbHMgPSBbXQotICAgICAgICAg ICAgICAgICAgICBmb3IgY29sIGluIGNbJ2NvbHVtbnMnXToKLSAgICAgICAg ICAgICAgICAgICAgICAgIGNvbHMuYXBwZW5kKGNvbFsnbG9jYWxfY29sdW1u J10pCisgICAgICAgICAgICAgICAgICAgIGlmICdjb2x1bW5zJyBpbiBjOgor ICAgICAgICAgICAgICAgICAgICAgICAgY29scyA9IFtdCisgICAgICAgICAg ICAgICAgICAgICAgICBmb3IgY29sIGluIGNbJ2NvbHVtbnMnXToKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb2xzLmFwcGVuZChjb2xbJ2xvY2Fs X2NvbHVtbiddKQogCi0gICAgICAgICAgICAgICAgICAgIGNvdmVyaW5naW5k ZXggPSBzZWxmLnNlYXJjaF9jb3ZlcmluZ2luZGV4KHRpZCwgY29scykKKyAg ICAgICAgICAgICAgICAgICAgICAgIGNvdmVyaW5naW5kZXggPSBzZWxmLnNl YXJjaF9jb3ZlcmluZ2luZGV4KHRpZCwgY29scykKIAotICAgICAgICAgICAg ICAgICAgICBpZiBjb3ZlcmluZ2luZGV4IGlzIE5vbmUgYW5kICdhdXRvaW5k ZXgnIGluIGMgYW5kIGNbJ2F1dG9pbmRleCddIGFuZCBcCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgKCdjb3ZlcmluZ2luZGV4JyBpbiBjIGFuZAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNbJ2NvdmVy aW5naW5kZXgnXSAhPSAnJyk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBz cWwuYXBwZW5kKHJlbmRlcl90ZW1wbGF0ZSgKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiLyIuam9pbihbc2VsZi5mb3JlaWduX2tleV90ZW1wbGF0 ZV9wYXRoLCAnY3JlYXRlX2luZGV4LnNxbCddKSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkYXRhPWMsIGNvbm49c2VsZi5jb25uKS5zdHJpcCgn XG4nKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisg ICAgICAgICAgICAgICAgICAgICAgICBpZiBjb3ZlcmluZ2luZGV4IGlzIE5v bmUgYW5kICdhdXRvaW5kZXgnIGluIGMgYW5kIGNbJ2F1dG9pbmRleCddIGFu ZCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnY292ZXJp bmdpbmRleCcgaW4gYyBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY1snY292ZXJpbmdpbmRleCddICE9ICcnKToKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzcWwuYXBwZW5kKHJlbmRlcl90 ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8i LmpvaW4oW3NlbGYuZm9yZWlnbl9rZXlfdGVtcGxhdGVfcGF0aCwgJ2NyZWF0 ZV9pbmRleC5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRhdGE9YywgY29ubj1zZWxmLmNvbm4pLnN0cmlwKCdcbicpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAKICAgICAg ICAgICAgIGlmICdhZGRlZCcgaW4gY29uc3RyYWludDoKICAgICAgICAgICAg ICAgICBmb3IgYyBpbiBjb25zdHJhaW50WydhZGRlZCddOgpAQCAtMjE2Myw5 ICsyMTYwLDQ2IEBAIGNsYXNzIFRhYmxlVmlldyhQR0NoaWxkTm9kZVZpZXcs IERhdGFUeXBlUmVhZGVyLCBWYWN1dW1TZXR0aW5ncyk6CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1yZXMpCiAgICAgICAgICAgICAgICAgICAgICAgICBvbGRf ZGF0YSA9IHJlc1sncm93cyddWzBdCiAKLSAgICAgICAgICAgICAgICAgICAg ICAgIG9sZF9kYXRhWydjbHR5cGUnXSA9IHNlbGYuX2NsdHlwZV9mb3JtYXR0 ZXIob2xkX2RhdGFbJ2NsdHlwZSddKQotICAgICAgICAgICAgICAgICAgICAg ICAgb2xkX2RhdGFbJ2hhc1NxckJyYWNrZXQnXSA9IHNlbGYuaGFzU3FyQnJh Y2tldAorICAgICAgICAgICAgICAgICAgICAgICAgb2xkX2RhdGFbJ2NsdHlw ZSddLCBvbGRfZGF0YVsnaGFzU3FyQnJhY2tldCddID0gc2VsZi5fY2x0eXBl X2Zvcm1hdHRlcihvbGRfZGF0YVsnY2x0eXBlJ10pCisKKyAgICAgICAgICAg ICAgICAgICAgICAgIGZ1bGx0eXBlID0gc2VsZi5nZXRfZnVsbF90eXBlKAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZF9kYXRhWyd0eXBuc3Bu YW1lJ10sIG9sZF9kYXRhWyd0eXBuYW1lJ10sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2xkX2RhdGFbJ2lzZHVwJ10sIG9sZF9kYXRhWydhdHRu ZGltcyddLCBvbGRfZGF0YVsnYXR0dHlwbW9kJ10KKyAgICAgICAgICAgICAg ICAgICAgICAgICkKIAorICAgICAgICAgICAgICAgICAgICAgICAgIyBJZiB3 ZSBoYXZlIGxlbmd0aCAmIHByZWNpc2lvbiBib3RoCisgICAgICAgICAgICAg ICAgICAgICAgICBtYXRjaE9iaiA9IHJlLnNlYXJjaChyJyhcZCspLChcZCsp JywgZnVsbHR5cGUpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBtYXRj aE9iajoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRfZGF0YVsn YXR0bGVuJ10gPSBpbnQobWF0Y2hPYmouZ3JvdXAoMSkpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgb2xkX2RhdGFbJ2F0dHByZWNpc2lvbiddID0g aW50KG1hdGNoT2JqLmdyb3VwKDIpKQorICAgICAgICAgICAgICAgICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIElmIHdl IGhhdmUgbGVuZ3RoIG9ubHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtYXRjaE9iaiA9IHJlLnNlYXJjaChyJyhcZCspJywgZnVsbHR5cGUpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbWF0Y2hPYmo6CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZF9kYXRhWydhdHRsZW4n XSA9IGludChtYXRjaE9iai5ncm91cCgxKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb2xkX2RhdGFbJ2F0dHByZWNpc2lvbiddID0gTm9u ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9sZF9kYXRhWydhdHRsZW4nXSA9 IE5vbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkX2Rh dGFbJ2F0dHByZWNpc2lvbiddID0gTm9uZQorCisgICAgICAgICAgICAgICAg ICAgICAgICAjIE1hbnVhbCBEYXRhIHR5cGUgZm9ybWF0dGluZworICAgICAg ICAgICAgICAgICAgICAgICAgIyBJZiBkYXRhIHR5cGUgaGFzICgpIHdpdGgg dGhlbSB0aGVuIHdlIG5lZWQgdG8gcmVtb3ZlIHRoZW0KKyAgICAgICAgICAg ICAgICAgICAgICAgICMgZWcgYml0KDEpIGJlY2F1c2Ugd2UgbmVlZCB0byBt YXRjaCB0aGUgbmFtZSB3aXRoIGNvbWJvYm94CisgICAgICAgICAgICAgICAg ICAgICAgICBpc0FycmF5ID0gRmFsc2UKKyAgICAgICAgICAgICAgICAgICAg ICAgIGlmIG9sZF9kYXRhWydjbHR5cGUnXS5lbmRzd2l0aCgnW10nKToKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpc0FycmF5ID0gVHJ1ZQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9sZF9kYXRhWydjbHR5cGUnXSA9 IG9sZF9kYXRhWydjbHR5cGUnXS5yc3RyaXAoJ1tdJykKKworICAgICAgICAg ICAgICAgICAgICAgICAgaWR4ID0gb2xkX2RhdGFbJ2NsdHlwZSddLmZpbmQo JygnKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgaWR4IGFuZCBvbGRf ZGF0YVsnY2x0eXBlJ10uZW5kc3dpdGgoJyknKToKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvbGRfZGF0YVsnY2x0eXBlJ10gPSBvbGRfZGF0YVsn Y2x0eXBlJ11bOmlkeF0KKworICAgICAgICAgICAgICAgICAgICAgICAgaWYg aXNBcnJheToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRfZGF0 YVsnY2x0eXBlJ10gKz0gIltdIgorCisgICAgICAgICAgICAgICAgICAgICAg ICBpZiBvbGRfZGF0YVsndHlwbnNwbmFtZSddICE9ICdwZ19jYXRhbG9nJzoK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRfZGF0YVsnY2x0eXBl J10gPSBzZWxmLnF0SWRlbnQoc2VsZi5jb25uLCBvbGRfZGF0YVsndHlwbnNw bmFtZSddKSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsgJy4nICsgb2xkX2RhdGFbJ2NsdHlwZSddCiAgICAg ICAgICAgICAgICAgICAgICAgICAjIFNxbCBmb3IgYWx0ZXIgY29sdW1uCiAg ICAgICAgICAgICAgICAgICAgICAgICBpZiAnaW5oZXJpdGVkZnJvbScgbm90 IGluIGM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uX3Nx bCArPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCkBAIC0yMjU5LDcgKzIy OTMsOCBAQCBjbGFzcyBUYWJsZVZpZXcoUEdDaGlsZE5vZGVWaWV3LCBEYXRh VHlwZVJlYWRlciwgVmFjdXVtU2V0dGluZ3MpOgogCiAgICAgICAgIHJldHVy biBTUUwKIAotICAgIGRlZiB2YWxpZGF0ZV9jb25zdHJhaW5zKHNlbGYsIGtl eSwgZGF0YSk6CisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiB2YWxpZGF0 ZV9jb25zdHJhaW5zKGtleSwgZGF0YSk6CiAKICAgICAgICAgaWYga2V5ID09 ICdwcmltYXJ5X2tleScgb3Iga2V5ID09ICd1bmlxdWVfY29uc3RyYWludCc6 CiAgICAgICAgICAgICBpZiAnY29sdW1ucycgaW4gZGF0YSBhbmQgbGVuKGRh dGFbJ2NvbHVtbnMnXSkgPiAwOgpAQCAtMjI2NywxNSArMjMwMiwxNyBAQCBj bGFzcyBUYWJsZVZpZXcoUEdDaGlsZE5vZGVWaWV3LCBEYXRhVHlwZVJlYWRl ciwgVmFjdXVtU2V0dGluZ3MpOgogICAgICAgICAgICAgZWxzZToKICAgICAg ICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgZWxpZiBrZXkgPT0g J2ZvcmVpZ25fa2V5JzoKLSAgICAgICAgICAgIGZvciBhcmcgaW4gWydjb2x1 bW5zJ106Ci0gICAgICAgICAgICAgICAgaWYgYXJnIG5vdCBpbiBkYXRhOgor ICAgICAgICAgICAgaWYgJ29pZCcgbm90IGluIGRhdGE6CisgICAgICAgICAg ICAgICAgZm9yIGFyZyBpbiBbJ2NvbHVtbnMnXToKKyAgICAgICAgICAgICAg ICAgICAgaWYgYXJnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICAgICAgICAgIGVsaWYg aXNpbnN0YW5jZShkYXRhW2FyZ10sIGxpc3QpIGFuZCBsZW4oZGF0YVthcmdd KSA8IDE6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UK KworICAgICAgICAgICAgICAgIGlmICdhdXRvaW5kZXgnIGluIGRhdGEgYW5k IGRhdGFbJ2F1dG9pbmRleCddIGFuZCBcCisgICAgICAgICAgICAgICAgICAg ICAgICAoJ2NvdmVyaW5naW5kZXgnIG5vdCBpbiBkYXRhIG9yCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGFbJ2NvdmVyaW5naW5kZXgnXSA9PSAnJyk6CiAgICAgICAgICAgICAgICAg ICAgIHJldHVybiBGYWxzZQotICAgICAgICAgICAgICAgIGVsaWYgaXNpbnN0 YW5jZShkYXRhW2FyZ10sIGxpc3QpIGFuZCBsZW4oZGF0YVthcmddKSA8IDE6 Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAg ICAgICBpZiBkYXRhWydhdXRvaW5kZXgnXSBhbmQgKCdjb3ZlcmluZ2luZGV4 JyBub3QgaW4gZGF0YSBvcgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRhdGFbJ2NvdmVyaW5naW5kZXgnXSA9PSAn Jyk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKICAgICAgICAg ICAgIHJldHVybiBUcnVlCiAKQEAgLTI0MDYsOCArMjQ0Myw4IEBAIGNsYXNz IFRhYmxlVmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyLCBW YWN1dW1TZXR0aW5ncyk6CiAgICAgICAgICAgICAgICAgICAgIGNbJ2F0dGFj bCddID0gcGFyc2VfcHJpdl90b19kYihjWydhdHRhY2wnXSwgc2VsZi5jb2x1 bW5fYWNsKQogCiAgICAgICAgICAgICAgICAgIyBjaGVjayB0eXBlIGZvciAn W10nIGluIGl0Ci0gICAgICAgICAgICAgICAgY1snY2x0eXBlJ10gPSBzZWxm Ll9jbHR5cGVfZm9ybWF0dGVyKGNbJ2NsdHlwZSddKQotICAgICAgICAgICAg ICAgIGNbJ2hhc1NxckJyYWNrZXQnXSA9IHNlbGYuaGFzU3FyQnJhY2tldAor ICAgICAgICAgICAgICAgIGlmICdjbHR5cGUnIGluIGM6CisgICAgICAgICAg ICAgICAgICAgIGNbJ2NsdHlwZSddLCBjWydoYXNTcXJCcmFja2V0J10gPSBz ZWxmLl9jbHR5cGVfZm9ybWF0dGVyKGNbJ2NsdHlwZSddKQogCiAgICAgICAg IHNxbF9oZWFkZXIgPSB1Ii0tIFRhYmxlOiB7MH1cblxuLS0gIi5mb3JtYXQo c2VsZi5xdElkZW50KHNlbGYuY29ubiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk YXRhWydzY2hlbWEnXSwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9jb2x1bW4vdGVtcGxhdGVzL2NvbHVtbi9qcy9jb2x1bW4uanMgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1uL3RlbXBsYXRlcy9jb2x1bW4v anMvY29sdW1uLmpzCmluZGV4IGQ3ZmU1YTQuLjA3MmFkYWYgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4vdGVtcGxhdGVzL2Nv bHVtbi9qcy9jb2x1bW4uanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbHVtbi90ZW1wbGF0ZXMvY29sdW1uL2pzL2NvbHVtbi5qcwpAQCAtNTcs MTcgKzU3LDI5IEBAIGZ1bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJv d3NlciwgQmFja2Zvcm0sIGFsZXJ0aWZ5KSB7CiAgICAgICB9LAogICAgICAg ZGVwZW5kZW50Q2hhbmdlZDogZnVuY3Rpb24gKCkgewogICAgICAgICB0aGlz LiRlbC5lbXB0eSgpOwotICAgICAgICB2YXIgbW9kZWwgPSB0aGlzLm1vZGVs OwotICAgICAgICB2YXIgY29sdW1uID0gdGhpcy5jb2x1bW47Ci0gICAgICAg IGVkaXRhYmxlID0gdGhpcy5jb2x1bW4uZ2V0KCJlZGl0YWJsZSIpOworICAg ICAgICB2YXIgbW9kZWwgPSB0aGlzLm1vZGVsLAorICAgICAgICAgICAgY29s dW1uID0gdGhpcy5jb2x1bW4sCisgICAgICAgICAgICBlZGl0YWJsZSA9IHRo aXMuY29sdW1uLmdldCgiZWRpdGFibGUiKSwKKyAgICAgICAgICAgIGlzX2Vk aXRhYmxlID0gXy5pc0Z1bmN0aW9uKGVkaXRhYmxlKSA/ICEhZWRpdGFibGUu YXBwbHkoY29sdW1uLCBbbW9kZWxdKSA6ICEhZWRpdGFibGU7CiAKLSAgICAg ICAgaXNfZWRpdGFibGUgPSBfLmlzRnVuY3Rpb24oZWRpdGFibGUpID8gISFl ZGl0YWJsZS5hcHBseShjb2x1bW4sIFttb2RlbF0pIDogISFlZGl0YWJsZTsK ICAgICAgICAgaWYgKGlzX2VkaXRhYmxlKXsgdGhpcy4kZWwuYWRkQ2xhc3Mo ImVkaXRhYmxlIik7IH0KICAgICAgICAgZWxzZSB7IHRoaXMuJGVsLnJlbW92 ZUNsYXNzKCJlZGl0YWJsZSIpOyB9CiAKICAgICAgICAgdGhpcy5kZWxlZ2F0 ZUV2ZW50cygpOwogICAgICAgICByZXR1cm4gdGhpczsKICAgICAgIH0sCisg ICAgICByZW5kZXI6IGZ1bmN0aW9uKCkgeworICAgICAgICBCYWNrZ3JpZC5O dW1iZXJDZWxsLnByb3RvdHlwZS5yZW5kZXIuYXBwbHkodGhpcywgYXJndW1l bnRzKTsKKworICAgICAgICB2YXIgbW9kZWwgPSB0aGlzLm1vZGVsLAorICAg ICAgICAgICAgY29sdW1uID0gdGhpcy5jb2x1bW4sCisgICAgICAgICAgICBl ZGl0YWJsZSA9IHRoaXMuY29sdW1uLmdldCgiZWRpdGFibGUiKSwKKyAgICAg ICAgICAgIGlzX2VkaXRhYmxlID0gXy5pc0Z1bmN0aW9uKGVkaXRhYmxlKSA/ ICEhZWRpdGFibGUuYXBwbHkoY29sdW1uLCBbbW9kZWxdKSA6ICEhZWRpdGFi bGU7CisKKyAgICAgICAgaWYgKGlzX2VkaXRhYmxlKXsgdGhpcy4kZWwuYWRk Q2xhc3MoImVkaXRhYmxlIik7IH0KKyAgICAgICAgZWxzZSB7IHRoaXMuJGVs LnJlbW92ZUNsYXNzKCJlZGl0YWJsZSIpOyB9CisgICAgICAgIHJldHVybiB0 aGlzOworICAgICAgfSwKICAgICAgIHJlbW92ZTogQmFja2dyaWQuRXh0ZW5z aW9uLkRlcGVuZGVudENlbGwucHJvdG90eXBlLnJlbW92ZQogICAgIH0pOwog CkBAIC0xNDAsNiArMTUyLDggQEAgZnVuY3Rpb24oJCwgXywgUywgcGdBZG1p biwgcGdCcm93c2VyLCBCYWNrZm9ybSwgYWxlcnRpZnkpIHsKICAgICAgICAg XSk7CiAgICAgICB9LAogICAgICAgbW9kZWw6IHBnQnJvd3Nlci5Ob2RlLk1v ZGVsLmV4dGVuZCh7CisgICAgICAgIGlkQXR0cmlidXRlOiAnYXR0bnVtJywK KwogICAgICAgICBkZWZhdWx0czogewogICAgICAgICAgIG5hbWU6IHVuZGVm aW5lZCwKICAgICAgICAgICBhdHRvd25lcjogdW5kZWZpbmVkLApAQCAtMTU2 LDcgKzE3MCw5IEBAIGZ1bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJv d3NlciwgQmFja2Zvcm0sIGFsZXJ0aWZ5KSB7CiAgICAgICAgICAgaXNfcHJp bWFyeV9rZXk6IGZhbHNlLAogICAgICAgICAgIGluaGVyaXRlZGZyb206IHVu ZGVmaW5lZCwKICAgICAgICAgICBhdHRzdGF0dGFyZ2V0OnVuZGVmaW5lZCwK LSAgICAgICAgICBhdHRub3RudWxsOiBmYWxzZQorICAgICAgICAgIGF0dG5v dG51bGw6IGZhbHNlLAorICAgICAgICAgIGF0dGxlbjogbnVsbCwKKyAgICAg ICAgICBhdHRwcmVjaXNpb246IG51bGwKICAgICAgICAgfSwKICAgICAgICAg c2NoZW1hOiBbewogICAgICAgICAgIGlkOiAnbmFtZScsIGxhYmVsOiAne3sg XygnTmFtZScpIH19JywgY2VsbDogJ3N0cmluZycsCkBAIC0zMjIsMTYgKzMz OCwyMSBAQCBmdW5jdGlvbigkLCBfLCBTLCBwZ0FkbWluLCBwZ0Jyb3dzZXIs IEJhY2tmb3JtLCBhbGVydGlmeSkgewogICAgICAgICAgICAgIGlmKCFfLmlz VW5kZWZpbmVkKG0uZ2V0KCdpbmhlcml0ZWRmcm9tJykpKSB7CiAgICAgICAg ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgIH0KKworICAg ICAgICAgICAgIGlmICghbS5kYXRhdHlwZXMpIHsKKyAgICAgICAgICAgICAg Ly8gZGF0YXR5cGVzIG5vdCBsb2FkZWQsIG1heSBiZSB0aGlzIGNhbGwgaXMg ZnJvbSBDYWxsQnlOZWVkIGZyb20gYmFja2dyaWQgY2VsbCBpbml0aWFsaXpl LgorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgdmFyIG9mX3R5cGUgPSBtLmdldCgnY2x0eXBlJyks CiAgICAgICAgICAgICAgICBmbGFnID0gZmFsc2U7Ci0gICAgICAgICAgICAg IF8uZWFjaChtLmRhdGF0eXBlcywgZnVuY3Rpb24obykgewotICAgICAgICAg ICAgICAgIGlmICggb2ZfdHlwZSA9PSBvLnZhbHVlICkgewotICAgICAgICAg ICAgICAgICAgICBpZihvLmxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAg ewotICAgICAgICAgICAgICAgICAgICAgIG0uc2V0KCdtaW5fdmFsJywgby5t aW5fdmFsLCB7c2lsZW50OiB0cnVlfSk7Ci0gICAgICAgICAgICAgICAgICAg ICAgbS5zZXQoJ21heF92YWwnLCBvLm1heF92YWwsIHtzaWxlbnQ6IHRydWV9 KTsKLSAgICAgICAgICAgICAgICAgICAgICBmbGFnID0gdHJ1ZTsKLSAgICAg ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICBfLmVhY2gobS5k YXRhdHlwZXMsIGZ1bmN0aW9uKG8pIHsKKyAgICAgICAgICAgICAgIGlmICgg b2ZfdHlwZSA9PSBvLnZhbHVlICkgeworICAgICAgICAgICAgICAgICBpZihv Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgIG0uc2V0KCdtaW5fdmFs Jywgby5taW5fdmFsLCB7c2lsZW50OiB0cnVlfSk7CisgICAgICAgICAgICAg ICAgICAgbS5zZXQoJ21heF92YWwnLCBvLm1heF92YWwsIHtzaWxlbnQ6IHRy dWV9KTsKKyAgICAgICAgICAgICAgICAgICBmbGFnID0gdHJ1ZTsKKyAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgfSk7CiAKQEAgLTM1MSwxMiArMzcyLDExIEBAIGZ1bmN0aW9uKCQsIF8s IFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgQmFja2Zvcm0sIGFsZXJ0aWZ5KSB7 CiAgICAgICAgICAgICAgICBmbGFnID0gdHJ1ZTsKICAgICAgICAgICAgICAg Xy5lYWNoKG0uZGF0YXR5cGVzLCBmdW5jdGlvbihvKSB7CiAgICAgICAgICAg ICAgICAgaWYgKCBvZl90eXBlID09IG8udmFsdWUgKSB7Ci0gICAgICAgICAg ICAgICAgICAgIGlmKG8ucHJlY2lzaW9uKQotICAgICAgICAgICAgICAgICAg ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgbS5zZXQoJ21pbl92YWwnLCBv Lm1pbl92YWwsIHtzaWxlbnQ6IHRydWV9KTsKLSAgICAgICAgICAgICAgICAg ICAgICBtLnNldCgnbWF4X3ZhbCcsIG8ubWF4X3ZhbCwge3NpbGVudDogdHJ1 ZX0pOwotICAgICAgICAgICAgICAgICAgICAgIGZsYWcgPSBmYWxzZTsKLSAg ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgaWYoby5w cmVjaXNpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgbS5zZXQoJ21pbl92 YWwnLCBvLm1pbl92YWwsIHtzaWxlbnQ6IHRydWV9KTsKKyAgICAgICAgICAg ICAgICAgICAgbS5zZXQoJ21heF92YWwnLCBvLm1heF92YWwsIHtzaWxlbnQ6 IHRydWV9KTsKKyAgICAgICAgICAgICAgICAgICAgZmxhZyA9IGZhbHNlOwor ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgfSk7CiAKQEAgLTM3MywxNiArMzkzLDIwIEBAIGZ1bmN0aW9u KCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgQmFja2Zvcm0sIGFsZXJ0 aWZ5KSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg ICAgICAgIH0KIAorICAgICAgICAgICAgIGlmICghbS5kYXRhdHlwZXMpIHsK KyAgICAgICAgICAgICAgLy8gZGF0YXR5cGVzIG5vdCBsb2FkZWQgeWV0LCBt YXkgYmUgdGhpcyBjYWxsIGlzIGZyb20gQ2FsbEJ5TmVlZCBmcm9tIGJhY2tn cmlkIGNlbGwgaW5pdGlhbGl6ZS4KKyAgICAgICAgICAgICAgcmV0dXJuIHRy dWU7CisgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgdmFyIG9mX3R5 cGUgPSBtLmdldCgnY2x0eXBlJyksCiAgICAgICAgICAgICAgICBmbGFnID0g ZmFsc2U7CiAgICAgICAgICAgICAgIF8uZWFjaChtLmRhdGF0eXBlcywgZnVu Y3Rpb24obykgewogICAgICAgICAgICAgICAgIGlmICggb2ZfdHlwZSA9PSBv LnZhbHVlICkgewotICAgICAgICAgICAgICAgICAgICBpZihvLnByZWNpc2lv bikKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg ICAgIG0uc2V0KCdtaW5fdmFsJywgby5taW5fdmFsLCB7c2lsZW50OiB0cnVl fSk7Ci0gICAgICAgICAgICAgICAgICAgICAgbS5zZXQoJ21heF92YWwnLCBv Lm1heF92YWwsIHtzaWxlbnQ6IHRydWV9KTsKLSAgICAgICAgICAgICAgICAg ICAgICBmbGFnID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgICAgICAgaWYoby5wcmVjaXNpb24pIHsKKyAgICAgICAgICAg ICAgICAgICAgbS5zZXQoJ21pbl92YWwnLCBvLm1pbl92YWwsIHtzaWxlbnQ6 IHRydWV9KTsKKyAgICAgICAgICAgICAgICAgICAgbS5zZXQoJ21heF92YWwn LCBvLm1heF92YWwsIHtzaWxlbnQ6IHRydWV9KTsKKyAgICAgICAgICAgICAg ICAgICAgZmxhZyA9IHRydWU7CisgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9KTsKIApAQCAtNDAxLDIy ICs0MjUsMjIgQEAgZnVuY3Rpb24oJCwgXywgUywgcGdBZG1pbiwgcGdCcm93 c2VyLCBCYWNrZm9ybSwgYWxlcnRpZnkpIHsKICAgICAgICAgICBkZXBzOiBb J2NsdHlwZSddLCBkaXNhYmxlZDogZnVuY3Rpb24obSkgewogICAgICAgICAg ICAgIHZhciBvZl90eXBlID0gbS5nZXQoJ2NsdHlwZScpLAogICAgICAgICAg ICAgICAgZmxhZyA9IHRydWU7Ci0gICAgICAgICAgICAgIF8uZWFjaChtLmRh dGF0eXBlcywgZnVuY3Rpb24obykgeworICAgICAgICAgICAgIF8uZWFjaCht LmRhdGF0eXBlcywgZnVuY3Rpb24obykgewogICAgICAgICAgICAgICAgIGlm ICggb2ZfdHlwZSA9PSBvLnZhbHVlICkgewogICAgICAgICAgICAgICAgICAg ICBpZihvLmlzX2NvbGxhdGFibGUpCiAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICBmbGFnID0gZmFsc2U7CiAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg ICAgIH0pOwotICAgICAgICAgICAgICBpZiAoZmxhZykgeworICAgICAgICAg ICAgIH0pOworICAgICAgICAgICAgIGlmIChmbGFnKSB7CiAgICAgICAgICAg ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpewogICAgICAgICAgICAgICAg ICAgaWYobS5nZXQoJ2NvbGxzcGNuYW1lJykgJiYgbS5nZXQoJ2NvbGxzcGNu YW1lJykgIT09ICcnKSB7CiAgICAgICAgICAgICAgICAgICAgIG0uc2V0KCdj b2xsc3BjbmFtZScsICIiKTsKICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICB9LCAxMCk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAg ICAgICAgcmV0dXJuIGZsYWc7CisgICAgICAgICAgICAgfQorICAgICAgICAg ICAgIHJldHVybiBmbGFnOwogICAgICAgICAgIH0KICAgICAgICAgfSx7CiAg ICAgICAgICAgaWQ6ICdkZWZ2YWwnLCBsYWJlbDone3sgXygnRGVmYXVsdCBW YWx1ZScpIH19JywgY2VsbDogJ3N0cmluZycsCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWlu dC90ZW1wbGF0ZXMvY2hlY2tfY29uc3RyYWludC9qcy9jaGVja19jb25zdHJh aW50LmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2No ZWNrX2NvbnN0cmFpbnQvdGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFpbnQvanMv Y2hlY2tfY29uc3RyYWludC5qcwppbmRleCBjYjMzYTFhLi45Mzg5YmM5IDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMv Y2hlY2tfY29uc3RyYWludC90ZW1wbGF0ZXMvY2hlY2tfY29uc3RyYWludC9q cy9jaGVja19jb25zdHJhaW50LmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3RlbXBsYXRlcy9j aGVja19jb25zdHJhaW50L2pzL2NoZWNrX2NvbnN0cmFpbnQuanMKQEAgLTkw LDYgKzkwLDggQEAgZnVuY3Rpb24oJCwgXywgUywgcGdBZG1pbiwgcGdCcm93 c2VyLCBBbGVydGlmeSkgewogICAgICAgfSwKICAgICAgIGNhbkRyb3A6IHBn QnJvd3Nlci5Ob2Rlc1snc2NoZW1hJ10uY2FuQ2hpbGREcm9wLAogICAgICAg bW9kZWw6IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7Cisg ICAgICAgIGlkQXR0cmlidXRlOiAnb2lkJywKKwogICAgICAgICBkZWZhdWx0 czogewogICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCwKICAgICAgICAgICBv aWQ6IHVuZGVmaW5lZCwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9jb25zdHJhaW50cy9leGNsdXNpb25fY29uc3RyYWludC90ZW1wbGF0 ZXMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvanMvZXhjbHVzaW9uX2NvbnN0cmFp bnQuanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvZXhj bHVzaW9uX2NvbnN0cmFpbnQvdGVtcGxhdGVzL2V4Y2x1c2lvbl9jb25zdHJh aW50L2pzL2V4Y2x1c2lvbl9jb25zdHJhaW50LmpzCmluZGV4IDkyMzI2Nzcu LmFiZGQ2MjMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9j b25zdHJhaW50cy9leGNsdXNpb25fY29uc3RyYWludC90ZW1wbGF0ZXMvZXhj bHVzaW9uX2NvbnN0cmFpbnQvanMvZXhjbHVzaW9uX2NvbnN0cmFpbnQuanMK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2V4Y2x1 c2lvbl9jb25zdHJhaW50L3RlbXBsYXRlcy9leGNsdXNpb25fY29uc3RyYWlu dC9qcy9leGNsdXNpb25fY29uc3RyYWludC5qcwpAQCAtNjM5LDYgKzYzOSw4 IEBAIGZ1bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgQWxl cnRpZnkpIHsKICAgICAgIH0sCiAgICAgICAvLyBEZWZpbmUgdGhlIG1vZGVs IGZvciBleGNsdXNpb24gY29uc3RyYWludCBub2RlCiAgICAgICBtb2RlbDog cGdBZG1pbi5Ccm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICAgICAg aWRBdHRyaWJ1dGU6ICdvaWQnLAorCiAgICAgICAgIGRlZmF1bHRzOiB7CiAg ICAgICAgICAgbmFtZTogdW5kZWZpbmVkLAogICAgICAgICAgIG9pZDogdW5k ZWZpbmVkLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2Nv bnN0cmFpbnRzL2ZvcmVpZ25fa2V5L3RlbXBsYXRlcy9mb3JlaWduX2tleS9q cy9mb3JlaWduX2tleS5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25z dHJhaW50cy9mb3JlaWduX2tleS90ZW1wbGF0ZXMvZm9yZWlnbl9rZXkvanMv Zm9yZWlnbl9rZXkuanMKaW5kZXggY2FlMmVmYS4uOWRhNjFmOSAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2ZvcmVp Z25fa2V5L3RlbXBsYXRlcy9mb3JlaWduX2tleS9qcy9mb3JlaWduX2tleS5q cworKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvZm9y ZWlnbl9rZXkvdGVtcGxhdGVzL2ZvcmVpZ25fa2V5L2pzL2ZvcmVpZ25fa2V5 LmpzCkBAIC02NzIsNiArNjcyLDggQEAgZnVuY3Rpb24oJCwgXywgUywgcGdB ZG1pbiwgcGdCcm93c2VyLCBBbGVydGlmeSkgewogICAgICAgfSwKICAgICAg IC8vIERlZmluZSB0aGUgbW9kZWwgZm9yIGZvcmVpZ24ga2V5IG5vZGUKICAg ICAgIG1vZGVsOiBwZ0FkbWluLkJyb3dzZXIuTm9kZS5Nb2RlbC5leHRlbmQo eworICAgICAgICBpZEF0dHJpYnV0ZTogJ29pZCcsCisKICAgICAgICAgZGVm YXVsdHM6IHsKICAgICAgICAgICBuYW1lOiB1bmRlZmluZWQsCiAgICAgICAg ICAgb2lkOiB1bmRlZmluZWQsCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3RyYWludC90ZW1wbGF0 ZXMvaW5kZXhfY29uc3RyYWludC9qcy9pbmRleF9jb25zdHJhaW50LmpzIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0 cmFpbnQvdGVtcGxhdGVzL2luZGV4X2NvbnN0cmFpbnQvanMvaW5kZXhfY29u c3RyYWludC5qcwppbmRleCA3M2E1NjNiLi43ZGI2OGQ1IDEwMDY0NAotLS0g YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29u c3RyYWludC90ZW1wbGF0ZXMvaW5kZXhfY29uc3RyYWludC9qcy9pbmRleF9j b25zdHJhaW50LmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25z dHJhaW50cy9pbmRleF9jb25zdHJhaW50L3RlbXBsYXRlcy9pbmRleF9jb25z dHJhaW50L2pzL2luZGV4X2NvbnN0cmFpbnQuanMKQEAgLTc5LDYgKzc5LDgg QEAgZnVuY3Rpb24oJCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBhbGVy dGlmeSkgewogCiAgICAgICAvLyBEZWZpbmUgdGhlIG1vZGVsIGZvciBpbmRl eCBjb25zdHJhaW50IG5vZGUKICAgICAgIG1vZGVsOiBwZ0FkbWluLkJyb3dz ZXIuTm9kZS5Nb2RlbC5leHRlbmQoeworICAgICAgICBpZEF0dHJpYnV0ZTog J29pZCcsCisKICAgICAgICAgZGVmYXVsdHM6IHsKICAgICAgICAgICBuYW1l OiB1bmRlZmluZWQsCiAgICAgICAgICAgb2lkOiB1bmRlZmluZWQsCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZW1wbGF0 ZXMvaW5kZXgvanMvaW5kZXguanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv aW5kZXhlcy90ZW1wbGF0ZXMvaW5kZXgvanMvaW5kZXguanMKaW5kZXggMzI4 MzU4Mi4uOGZmODM1OSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL2luZGV4ZXMvdGVtcGxhdGVzL2luZGV4L2pzL2luZGV4LmpzCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9pbmRl eC9qcy9pbmRleC5qcwpAQCAtMjM4LDggKzIzOCwxMSBAQCBmdW5jdGlvbigk LCBfLCBTLCBwZ0FkbWluLCBwZ0Jyb3dzZXIsIEJhY2tmb3JtLCBhbGVydGlm eSkgewogICAgICAgY2FuRHJvcDogcGdCcm93c2VyLk5vZGVzWydzY2hlbWEn XS5jYW5DaGlsZERyb3AsCiAgICAgICBjYW5Ecm9wQ2FzY2FkZTogcGdCcm93 c2VyLk5vZGVzWydzY2hlbWEnXS5jYW5DaGlsZERyb3AsCiAgICAgICBtb2Rl bDogcGdBZG1pbi5Ccm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICAg ICAgaWRBdHRyaWJ1dGU6ICdvaWQnLAorCiAgICAgICAgIGRlZmF1bHRzOiB7 CiAgICAgICAgICAgbmFtZTogdW5kZWZpbmVkLAorICAgICAgICAgIG9pZDog dW5kZWZpbmVkLAogICAgICAgICAgIG5zcG5hbWU6IHVuZGVmaW5lZCwKICAg ICAgICAgICB0YWJuYW1lOiB1bmRlZmluZWQsCiAgICAgICAgICAgc3BjbmFt ZTogJ3BnX2RlZmF1bHQnLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMV9wbHVzL3VwZGF0ZS5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2NvbHVtbi9z cWwvOS4xX3BsdXMvdXBkYXRlLnNxbAppbmRleCAyYjFkNWI5Li40NTRmOTY0 IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVz L2NvbHVtbi9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMv dXBkYXRlLnNxbApAQCAtMiw3ICsyLDcgQEAKIHslIGltcG9ydCAnY29sdW1u L21hY3Jvcy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KIHsl IGltcG9ydCAnbWFjcm9zL3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUg JX0KIHsjIyMgIFJlbmFtZSBjb2x1bW4gbmFtZSAjIyN9Ci17JSBpZiBkYXRh Lm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSBhbmQg ZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CiBBTFRFUiBUQUJMRSB7e2Nv bm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSl9fQogICAgIFJF TkFNRSB7e2Nvbm58cXRJZGVudChvX2RhdGEubmFtZSl9fSBUTyB7e2Nvbm58 cXRJZGVudChkYXRhLm5hbWUpfX07CiAKQEAgLTEwLDggKzEwLDggQEAgQUxU RVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFi bGUpfX0KIHsjIyMgIEFsdGVyIGNvbHVtbiB0eXBlIGFuZCBjb2xsYXRpb24g IyMjfQogeyUgaWYgKGRhdGEuY2x0eXBlIGFuZCBkYXRhLmNsdHlwZSAhPSBv X2RhdGEuY2x0eXBlKSBvciAoZGF0YS5hdHRsZW4gYW5kIGRhdGEuYXR0bGVu ICE9IG9fZGF0YS5hdHRsZW4pIG9yIChkYXRhLmF0dHByZWNpc2lvbiBhbmQg ZGF0YS5hdHRwcmVjaXNpb24gIT0gb19kYXRhLmF0dHByZWNpc2lvbikgJX0K IEFMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRh LnRhYmxlKX19Ci0gICAgQUxURVIgQ09MVU1OIHt7Y29ubnxxdElkZW50KGRh dGEubmFtZSl9fSBUWVBFIHslIGlmIGRhdGEuY2x0eXBlICV9e3tjb25ufHF0 VHlwZUlkZW50KGRhdGEuY2x0eXBlKX19IHslIGVsc2UgJX17e29fZGF0YS5j bHR5cGV9fSB7JSBlbmRpZiAlfXslIGlmIGRhdGEuYXR0bGVuICV9Ci0oe3tk YXRhLmF0dGxlbn19eyUgaWYgZGF0YS5hdHRwcmVjaXNpb24lfSwge3tkYXRh LmF0dHByZWNpc2lvbn19eyUgZW5kaWYgJX0peyUgZW5kaWYgJX17JSBpZiBk YXRhLmhhc1NxckJyYWNrZXQgJX0KKyAgICBBTFRFUiBDT0xVTU4geyUgaWYg ZGF0YS5uYW1lICV9e3tjb25ufHF0VHlwZUlkZW50KGRhdGEubmFtZSl9fXsl IGVsc2UgJX17e2Nvbm58cXRUeXBlSWRlbnQob19kYXRhLm5hbWUpfX17JSBl bmRpZiAlfSBUWVBFIHslIGlmIGRhdGEuY2x0eXBlICV9e3tjb25ufHF0VHlw ZUlkZW50KGRhdGEuY2x0eXBlKX19IHslIGVsc2UgJX17e2Nvbm58cXRUeXBl SWRlbnQob19kYXRhLmNsdHlwZSl9fSB7JSBlbmRpZiAlfQoreyUgaWYgZGF0 YS5hdHRsZW4gJX0oe3tkYXRhLmF0dGxlbn19eyUgZWxpZiBub3QgZGF0YS5j bHR5cGUgJX0oe3tvX2RhdGEuYXR0bGVufX17JSBlbmRpZiAlfXslIGlmIGRh dGEuYXR0cHJlY2lzaW9uJX0sIHt7ZGF0YS5hdHRwcmVjaXNpb259fSl7JSBl bGlmIG5vdCBkYXRhLmNsdHlwZSAlfSwge3tvX2RhdGEuYXR0cHJlY2lzaW9u fX0peyUgZWxpZiBkYXRhLmF0dGxlbiAlfSl7JSBlbmRpZiAlfXslIGlmIGRh dGEuaGFzU3FyQnJhY2tldCAlfQogW117JSBlbmRpZiAlfXslIGlmIGRhdGEu Y29sbHNwY25hbWUgYW5kIGRhdGEuY29sbHNwY25hbWUgIT0gb19kYXRhLmNv bGxzcGNuYW1lICV9CiAgQ09MTEFURSB7e2RhdGEuY29sbHNwY25hbWV9fXsl IGVuZGlmICV9OwogCkBAIC0xOSwzMSArMTksMzUgQEAgQUxURVIgVEFCTEUg e3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KIHsj IyMgIEFsdGVyIGNvbHVtbiBkZWZhdWx0IHZhbHVlICMjI30KIHslIGlmIGRh dGEuZGVmdmFsIGFuZCBkYXRhLmRlZnZhbCAhPSBvX2RhdGEuZGVmdmFsICV9 CiBBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0 YS50YWJsZSl9fQotICAgIEFMVEVSIENPTFVNTiB7e2Nvbm58cXRJZGVudChk YXRhLm5hbWUpfX0gU0VUIERFRkFVTFQge3tkYXRhLmRlZnZhbH19OworICAg IEFMVEVSIENPTFVNTiB7JSBpZiBkYXRhLm5hbWUgJX17e2Nvbm58cXRUeXBl SWRlbnQoZGF0YS5uYW1lKX19eyUgZWxzZSAlfXt7Y29ubnxxdFR5cGVJZGVu dChvX2RhdGEubmFtZSl9fXslIGVuZGlmICV9IFNFVCBERUZBVUxUIHt7ZGF0 YS5kZWZ2YWx9fTsKIAogeyUgZW5kaWYgJX0KIHsjIyMgIEFsdGVyIGNvbHVt biBub3QgbnVsbCB2YWx1ZSAjIyN9CiB7JSBpZiAnYXR0bm90bnVsbCcgaW4g ZGF0YSBhbmQgZGF0YS5hdHRub3RudWxsICE9IG9fZGF0YS5hdHRub3RudWxs ICV9CiBBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwg ZGF0YS50YWJsZSl9fQotICAgIEFMVEVSIENPTFVNTiB7e2Nvbm58cXRJZGVu dChkYXRhLm5hbWUpfX0geyUgaWYgZGF0YS5hdHRub3RudWxsICV9U0VUeyUg ZWxzZSAlfURST1B7JSBlbmRpZiAlfSBOT1QgTlVMTDsKKyAgICBBTFRFUiBD T0xVTU4geyUgaWYgZGF0YS5uYW1lICV9e3tjb25ufHF0VHlwZUlkZW50KGRh dGEubmFtZSl9fXslIGVsc2UgJX17e2Nvbm58cXRUeXBlSWRlbnQob19kYXRh Lm5hbWUpfX17JSBlbmRpZiAlfSB7JSBpZiBkYXRhLmF0dG5vdG51bGwgJX1T RVR7JSBlbHNlICV9RFJPUHslIGVuZGlmICV9IE5PVCBOVUxMOwogCiB7JSBl bmRpZiAlfQogeyMjIyAgQWx0ZXIgY29sdW1uIHN0YXRpc3RpY3MgdmFsdWUg IyMjfQogeyUgaWYgZGF0YS5hdHRzdGF0dGFyZ2V0IGFuZCBkYXRhLmF0dHN0 YXR0YXJnZXQgIT0gb19kYXRhLmF0dHN0YXR0YXJnZXQgJX0KIEFMVEVSIFRB QkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlKX19 Ci0gICAgQUxURVIgQ09MVU1OIHt7Y29ubnxxdElkZW50KGRhdGEubmFtZSl9 fSBTRVQgU1RBVElTVElDUyB7e2RhdGEuYXR0c3RhdHRhcmdldH19OworICAg IEFMVEVSIENPTFVNTiB7JSBpZiBkYXRhLm5hbWUgJX17e2Nvbm58cXRUeXBl SWRlbnQoZGF0YS5uYW1lKX19eyUgZWxzZSAlfXt7Y29ubnxxdFR5cGVJZGVu dChvX2RhdGEubmFtZSl9fXslIGVuZGlmICV9IFNFVCBTVEFUSVNUSUNTIHt7 ZGF0YS5hdHRzdGF0dGFyZ2V0fX07CiAKIHslIGVuZGlmICV9CiB7IyMjICBB bHRlciBjb2x1bW4gc3RvcmFnZSB2YWx1ZSAjIyN9CiB7JSBpZiBkYXRhLmF0 dHN0b3JhZ2UgYW5kIGRhdGEuYXR0c3RvcmFnZSAhPSBvX2RhdGEuYXR0c3Rv cmFnZSAlfQogQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hl bWEsIGRhdGEudGFibGUpfX0KLSAgICBBTFRFUiBDT0xVTU4ge3tjb25ufHF0 SWRlbnQoZGF0YS5uYW1lKX19IFNFVCBTVE9SQUdFIHslaWYgZGF0YS5hdHRz dG9yYWdlID09ICdwJyAlfQorICAgIEFMVEVSIENPTFVNTiB7JSBpZiBkYXRh Lm5hbWUgJX17e2Nvbm58cXRUeXBlSWRlbnQoZGF0YS5uYW1lKX19eyUgZWxz ZSAlfXt7Y29ubnxxdFR5cGVJZGVudChvX2RhdGEubmFtZSl9fXslIGVuZGlm ICV9IFNFVCBTVE9SQUdFIHslaWYgZGF0YS5hdHRzdG9yYWdlID09ICdwJyAl fQogUExBSU57JSBlbGlmIGRhdGEuYXR0c3RvcmFnZSA9PSAnbSclfU1BSU57 JSBlbGlmIGRhdGEuYXR0c3RvcmFnZSA9PSAnZSclfQogRVhURVJOQUx7JSBl bGlmIGRhdGEuYXR0c3RvcmFnZSA9PSAneCclfUVYVEVOREVEeyUgZW5kaWYg JX07CiAKIHslIGVuZGlmICV9CiB7JSBpZiBkYXRhLmRlc2NyaXB0aW9uIGlz IGRlZmluZWQgJX0KK3slIGlmIGRhdGEubmFtZSAlfQogQ09NTUVOVCBPTiBD T0xVTU4ge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUs IGRhdGEubmFtZSl9fQoreyUgZWxzZSAlfQorQ09NTUVOVCBPTiBDT0xVTU4g e3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUsIG9fZGF0 YS5uYW1lKX19Cit7JSBlbmRpZiAlfQogICAgIElTIHt7ZGF0YS5kZXNjcmlw dGlvbnxxdExpdGVyYWx9fTsKIAogeyUgZW5kaWYgJX0KQEAgLTUyLDE1ICs1 NiwyNyBAQCBDT01NRU5UIE9OIENPTFVNTiB7e2Nvbm58cXRJZGVudChkYXRh LnNjaGVtYSwgZGF0YS50YWJsZSwgZGF0YS5uYW1lKX19CiB7JSBzZXQgdmFy aWFibGVzID0gZGF0YS5hdHRvcHRpb25zICV9CiB7JSBpZiAnZGVsZXRlZCcg aW4gdmFyaWFibGVzIGFuZCB2YXJpYWJsZXMuZGVsZXRlZHxsZW5ndGggPiAw ICV9CiBBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwg ZGF0YS50YWJsZSl9fQoreyUgaWYgZGF0YS5uYW1lICV9CiAgICAge3sgVkFS SUFCTEUuVU5TRVQoY29ubiwgJ0NPTFVNTicsIGRhdGEubmFtZSwgdmFyaWFi bGVzLmRlbGV0ZWQpIH19Cit7JSBlbHNlICV9CisgICAge3sgVkFSSUFCTEUu VU5TRVQoY29ubiwgJ0NPTFVNTicsIG9fZGF0YS5uYW1lLCB2YXJpYWJsZXMu ZGVsZXRlZCkgfX0KK3slIGVuZGlmICV9CiB7JSBlbmRpZiAlfQogeyUgaWYg J2FkZGVkJyBpbiB2YXJpYWJsZXMgYW5kIHZhcmlhYmxlcy5hZGRlZHxsZW5n dGggPiAwICV9CiBBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNj aGVtYSwgZGF0YS50YWJsZSl9fQoreyUgaWYgZGF0YS5uYW1lICV9CiAgICAg e3sgVkFSSUFCTEUuU0VUKGNvbm4sICdDT0xVTU4nLCBkYXRhLm5hbWUsIHZh cmlhYmxlcy5hZGRlZCkgfX0KK3slIGVsc2UgJX0KKyAgICB7eyBWQVJJQUJM RS5TRVQoY29ubiwgJ0NPTFVNTicsIG9fZGF0YS5uYW1lLCB2YXJpYWJsZXMu YWRkZWQpIH19Cit7JSBlbmRpZiAlfQogeyUgZW5kaWYgJX0KIHslIGlmICdj aGFuZ2VkJyBpbiB2YXJpYWJsZXMgYW5kIHZhcmlhYmxlcy5jaGFuZ2VkfGxl bmd0aCA+IDAgJX0KIEFMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEu c2NoZW1hLCBkYXRhLnRhYmxlKX19Cit7JSBpZiBkYXRhLm5hbWUgJX0KICAg ICB7eyBWQVJJQUJMRS5TRVQoY29ubiwgJ0NPTFVNTicsIGRhdGEubmFtZSwg dmFyaWFibGVzLmNoYW5nZWQpIH19Cit7JSBlbHNlICV9CisgICAge3sgVkFS SUFCTEUuU0VUKGNvbm4sICdDT0xVTU4nLCBvX2RhdGEubmFtZSwgdmFyaWFi bGVzLmNoYW5nZWQpIH19Cit7JSBlbmRpZiAlfQogeyUgZW5kaWYgJX0KIAog eyUgZW5kaWYgJX0KQEAgLTY5LDE4ICs4NSwzMSBAQCBBTFRFUiBUQUJMRSB7 e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSl9fQogeyUg aWYgZGF0YS5hdHRhY2wgJX0KIHslIGlmICdkZWxldGVkJyBpbiBkYXRhLmF0 dGFjbCAlfQogeyUgZm9yIHByaXYgaW4gZGF0YS5hdHRhY2wuZGVsZXRlZCAl fQoreyUgaWYgZGF0YS5uYW1lICV9CiB7eyBQUklWSUxFR0UuUkVTRVRBTEwo Y29ubiwgZGF0YS5zY2hlbWEsIGRhdGEudGFibGUsIGRhdGEubmFtZSwgcHJp di5ncmFudGVlKSB9fQoreyUgZWxzZSAlfQore3sgUFJJVklMRUdFLlJFU0VU QUxMKGNvbm4sIGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBvX2RhdGEubmFt ZSwgcHJpdi5ncmFudGVlKSB9fQoreyUgZW5kaWYgJX0KIHslIGVuZGZvciAl fQogeyUgZW5kaWYgJX0KIHslIGlmICdjaGFuZ2VkJyBpbiBkYXRhLmF0dGFj bCAlfQogeyUgZm9yIHByaXYgaW4gZGF0YS5hdHRhY2wuY2hhbmdlZCAlfQor eyUgaWYgZGF0YS5uYW1lICV9CiB7eyBQUklWSUxFR0UuUkVTRVRBTEwoY29u biwgZGF0YS5zY2hlbWEsIGRhdGEudGFibGUsIGRhdGEubmFtZSwgcHJpdi5n cmFudGVlKSB9fQoge3sgUFJJVklMRUdFLkFQUExZKGNvbm4sIGRhdGEuc2No ZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUsIHByaXYuZ3JhbnRlZSwgcHJp di53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQpIH19Cit7JSBlbHNl ICV9Cit7eyBQUklWSUxFR0UuUkVTRVRBTEwoY29ubiwgZGF0YS5zY2hlbWEs IGRhdGEudGFibGUsIG9fZGF0YS5uYW1lLCBwcml2LmdyYW50ZWUpIH19Cit7 eyBQUklWSUxFR0UuQVBQTFkoY29ubiwgZGF0YS5zY2hlbWEsIGRhdGEudGFi bGUsIG9fZGF0YS5uYW1lLCBwcml2LmdyYW50ZWUsIHByaXYud2l0aG91dF9n cmFudCwgcHJpdi53aXRoX2dyYW50KSB9fQoreyUgZW5kaWYgJX0KIHslIGVu ZGZvciAlfQogeyUgZW5kaWYgJX0KIHslIGlmICdhZGRlZCcgaW4gZGF0YS5h dHRhY2wgJX0KIHslIGZvciBwcml2IGluIGRhdGEuYXR0YWNsLmFkZGVkICV9 Cit7JSBpZiBkYXRhLm5hbWUgJX0KIHt7IFBSSVZJTEVHRS5BUFBMWShjb25u LCBkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgZGF0YS5uYW1lLCBwcml2Lmdy YW50ZWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50KSB9 fQoreyUgZWxzZSAlfQore3sgUFJJVklMRUdFLkFQUExZKGNvbm4sIGRhdGEu c2NoZW1hLCBkYXRhLnRhYmxlLCBvX2RhdGEubmFtZSwgcHJpdi5ncmFudGVl LCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCkgfX0KK3sl IGVuZGlmICV9CiB7JSBlbmRmb3IgJX0KIHslIGVuZGlmICV9CiB7JSBlbmRp ZiAlfQpAQCAtOTAsMTggKzExOSwzMCBAQCBBTFRFUiBUQUJMRSB7e2Nvbm58 cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSl9fQogeyUgc2V0IHNl Y2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9CiB7JSBpZiAnZGVsZXRlZCcg aW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5ndGggPiAw ICV9CiB7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVsZXRlZCAlfQoreyUgaWYg ZGF0YS5uYW1lICV9CiB7eyBTRUNMQUJFTC5EUk9QKGNvbm4sICdDT0xVTU4n LCBkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgZGF0YS5uYW1lLCByLnByb3Zp ZGVyKSB9fQoreyUgZWxzZSAlfQore3sgU0VDTEFCRUwuRFJPUChjb25uLCAn Q09MVU1OJywgZGF0YS5zY2hlbWEsIGRhdGEudGFibGUsIG9fZGF0YS5uYW1l LCByLnByb3ZpZGVyKSB9fQoreyUgZW5kaWYgJX0KIHslIGVuZGZvciAlfQog eyUgZW5kaWYgJX0KIHslIGlmICdhZGRlZCcgaW4gc2VjbGFiZWxzIGFuZCBz ZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAlfQogeyUgZm9yIHIgaW4gc2Vj bGFiZWxzLmFkZGVkICV9Cit7JSBpZiBkYXRhLm5hbWUgJX0KIHt7IFNFQ0xB QkVMLkFQUExZKGNvbm4sICdDT0xVTU4nLGRhdGEuc2NoZW1hLCBkYXRhLnRh YmxlLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIubGFiZWwpIH19Cit7JSBl bHNlICV9Cit7eyBTRUNMQUJFTC5BUFBMWShjb25uLCAnQ09MVU1OJyxkYXRh LnNjaGVtYSwgZGF0YS50YWJsZSwgb19kYXRhLm5hbWUsIHIucHJvdmlkZXIs IHIubGFiZWwpIH19Cit7JSBlbmRpZiAlfQogeyUgZW5kZm9yICV9CiB7JSBl bmRpZiAlfQogeyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBhbmQgc2Vj bGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQogeyUgZm9yIHIgaW4gc2Vj bGFiZWxzLmNoYW5nZWQgJX0KK3slIGlmIGRhdGEubmFtZSAlfQoge3sgU0VD TEFCRUwuQVBQTFkoY29ubiwgJ0NPTFVNTicsZGF0YS5zY2hlbWEsIGRhdGEu dGFibGUsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5sYWJlbCkgfX0KK3sl IGVsc2UgJX0KK3t7IFNFQ0xBQkVMLkFQUExZKGNvbm4sICdDT0xVTU4nLGRh dGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBvX2RhdGEubmFtZSwgci5wcm92aWRl ciwgci5sYWJlbCkgfX0KK3slIGVuZGlmICV9CiB7JSBlbmRmb3IgJX0KIHsl IGVuZGlmICV9CiAKLXslIGVuZGlmICV9Cit7JSBlbmRpZiAlfQpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjJfcGx1cy91cGRh dGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9jb2x1 bW4vc3FsLzkuMl9wbHVzL3VwZGF0ZS5zcWwKaW5kZXggNTQ0NTgwNS4uNzdl ZjhlYSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBs YXRlcy9jb2x1bW4vc3FsLzkuMl9wbHVzL3VwZGF0ZS5zcWwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9w bHVzL3VwZGF0ZS5zcWwKQEAgLTIsNyArMiw3IEBACiB7JSBpbXBvcnQgJ2Nv bHVtbi9tYWNyb3MvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9 CiB7JSBpbXBvcnQgJ21hY3Jvcy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklB QkxFICV9CiB7IyMjICBSZW5hbWUgY29sdW1uIG5hbWUgIyMjfQoteyUgaWYg ZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUg YW5kIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfQogQUxURVIgVEFCTEUg e3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KICAg ICBSRU5BTUUge3tjb25ufHF0SWRlbnQob19kYXRhLm5hbWUpfX0gVE8ge3tj b25ufHF0SWRlbnQoZGF0YS5uYW1lKX19OwogCkBAIC0xMCw0MCArMTAsNDMg QEAgQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRh dGEudGFibGUpfX0KIHsjIyMgIEFsdGVyIGNvbHVtbiB0eXBlIGFuZCBjb2xs YXRpb24gIyMjfQogeyUgaWYgKGRhdGEuY2x0eXBlIGFuZCBkYXRhLmNsdHlw ZSAhPSBvX2RhdGEuY2x0eXBlKSBvciAoZGF0YS5hdHRsZW4gYW5kIGRhdGEu YXR0bGVuICE9IG9fZGF0YS5hdHRsZW4pIG9yIChkYXRhLmF0dHByZWNpc2lv biBhbmQgZGF0YS5hdHRwcmVjaXNpb24gIT0gb19kYXRhLmF0dHByZWNpc2lv bikgJX0KIEFMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1h LCBkYXRhLnRhYmxlKX19Ci0gICAgQUxURVIgQ09MVU1OIHt7Y29ubnxxdElk ZW50KGRhdGEubmFtZSl9fSBUWVBFIHslIGlmIGRhdGEuY2x0eXBlICV9e3tj b25ufHF0VHlwZUlkZW50KGRhdGEuY2x0eXBlKX19IHslIGVsc2UgJX17e29f ZGF0YS5jbHR5cGV9fSB7JSBlbmRpZiAlfXslIGlmIGRhdGEuYXR0bGVuICV9 Ci0oe3tkYXRhLmF0dGxlbn19eyUgaWYgZGF0YS5hdHRwcmVjaXNpb24lfSwg e3tkYXRhLmF0dHByZWNpc2lvbn19eyUgZW5kaWYgJX0peyUgZW5kaWYgJX17 JSBpZiBkYXRhLmhhc1NxckJyYWNrZXQgJX0KKyAgICBBTFRFUiBDT0xVTU4g eyUgaWYgZGF0YS5uYW1lICV9e3tjb25ufHF0VHlwZUlkZW50KGRhdGEubmFt ZSl9fXslIGVsc2UgJX17e2Nvbm58cXRUeXBlSWRlbnQob19kYXRhLm5hbWUp fX17JSBlbmRpZiAlfSBUWVBFIHslIGlmIGRhdGEuY2x0eXBlICV9e3tjb25u fHF0VHlwZUlkZW50KGRhdGEuY2x0eXBlKX19IHslIGVsc2UgJX17e2Nvbm58 cXRUeXBlSWRlbnQob19kYXRhLmNsdHlwZSl9fSB7JSBlbmRpZiAlfQoreyUg aWYgZGF0YS5hdHRsZW4gJX0oe3tkYXRhLmF0dGxlbn19eyUgZWxpZiBub3Qg ZGF0YS5jbHR5cGUgJX0oe3tvX2RhdGEuYXR0bGVufX17JSBlbmRpZiAlfXsl IGlmIGRhdGEuYXR0cHJlY2lzaW9uJX0sIHt7ZGF0YS5hdHRwcmVjaXNpb259 fSl7JSBlbGlmIG5vdCBkYXRhLmNsdHlwZSAlfSwge3tvX2RhdGEuYXR0cHJl Y2lzaW9ufX0peyUgZWxpZiBkYXRhLmF0dGxlbiAlfSl7JSBlbmRpZiAlfXsl IGlmIGRhdGEuaGFzU3FyQnJhY2tldCAlfQogW117JSBlbmRpZiAlfXslIGlm IGRhdGEuY29sbHNwY25hbWUgYW5kIGRhdGEuY29sbHNwY25hbWUgIT0gb19k YXRhLmNvbGxzcGNuYW1lICV9CiAgQ09MTEFURSB7e2RhdGEuY29sbHNwY25h bWV9fXslIGVuZGlmICV9OwotCiB7JSBlbmRpZiAlfQogeyMjIyAgQWx0ZXIg Y29sdW1uIGRlZmF1bHQgdmFsdWUgIyMjfQogeyUgaWYgZGF0YS5kZWZ2YWwg YW5kIGRhdGEuZGVmdmFsICE9IG9fZGF0YS5kZWZ2YWwgJX0KIEFMVEVSIFRB QkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlKX19 Ci0gICAgQUxURVIgQ09MVU1OIHt7Y29ubnxxdElkZW50KGRhdGEubmFtZSl9 fSBTRVQgREVGQVVMVCB7e2RhdGEuZGVmdmFsfX07CisgICAgQUxURVIgQ09M VU1OIHslIGlmIGRhdGEubmFtZSAlfXt7Y29ubnxxdFR5cGVJZGVudChkYXRh Lm5hbWUpfX17JSBlbHNlICV9e3tjb25ufHF0VHlwZUlkZW50KG9fZGF0YS5u YW1lKX19eyUgZW5kaWYgJX0gU0VUIERFRkFVTFQge3tkYXRhLmRlZnZhbH19 OwogCiB7JSBlbmRpZiAlfQogeyMjIyAgQWx0ZXIgY29sdW1uIG5vdCBudWxs IHZhbHVlICMjI30KIHslIGlmICdhdHRub3RudWxsJyBpbiBkYXRhIGFuZCBk YXRhLmF0dG5vdG51bGwgIT0gb19kYXRhLmF0dG5vdG51bGwgJX0KIEFMVEVS IFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxl KX19Ci0gICAgQUxURVIgQ09MVU1OIHt7Y29ubnxxdElkZW50KGRhdGEubmFt ZSl9fSB7JSBpZiBkYXRhLmF0dG5vdG51bGwgJX1TRVR7JSBlbHNlICV9RFJP UHslIGVuZGlmICV9IE5PVCBOVUxMOworICAgIEFMVEVSIENPTFVNTiB7JSBp ZiBkYXRhLm5hbWUgJX17e2Nvbm58cXRUeXBlSWRlbnQoZGF0YS5uYW1lKX19 eyUgZWxzZSAlfXt7Y29ubnxxdFR5cGVJZGVudChvX2RhdGEubmFtZSl9fXsl IGVuZGlmICV9IHslIGlmIGRhdGEuYXR0bm90bnVsbCAlfVNFVHslIGVsc2Ug JX1EUk9QeyUgZW5kaWYgJX0gTk9UIE5VTEw7CiAKIHslIGVuZGlmICV9CiB7 IyMjICBBbHRlciBjb2x1bW4gc3RhdGlzdGljcyB2YWx1ZSAjIyN9CiB7JSBp ZiBkYXRhLmF0dHN0YXR0YXJnZXQgYW5kIGRhdGEuYXR0c3RhdHRhcmdldCAh PSBvX2RhdGEuYXR0c3RhdHRhcmdldCAlfQogQUxURVIgVEFCTEUge3tjb25u fHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KLSAgICBBTFRF UiBDT0xVTU4ge3tjb25ufHF0SWRlbnQoZGF0YS5uYW1lKX19IFNFVCBTVEFU SVNUSUNTIHt7ZGF0YS5hdHRzdGF0dGFyZ2V0fX07CisgICAgQUxURVIgQ09M VU1OIHslIGlmIGRhdGEubmFtZSAlfXt7Y29ubnxxdFR5cGVJZGVudChkYXRh Lm5hbWUpfX17JSBlbHNlICV9e3tjb25ufHF0VHlwZUlkZW50KG9fZGF0YS5u YW1lKX19eyUgZW5kaWYgJX0gU0VUIFNUQVRJU1RJQ1Mge3tkYXRhLmF0dHN0 YXR0YXJnZXR9fTsKIAogeyUgZW5kaWYgJX0KIHsjIyMgIEFsdGVyIGNvbHVt biBzdG9yYWdlIHZhbHVlICMjI30KIHslIGlmIGRhdGEuYXR0c3RvcmFnZSBh bmQgZGF0YS5hdHRzdG9yYWdlICE9IG9fZGF0YS5hdHRzdG9yYWdlICV9CiBB TFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50 YWJsZSl9fQotICAgIEFMVEVSIENPTFVNTiB7e2Nvbm58cXRJZGVudChkYXRh Lm5hbWUpfX0gU0VUIFNUT1JBR0UgeyVpZiBkYXRhLmF0dHN0b3JhZ2UgPT0g J3AnICV9CisgICAgQUxURVIgQ09MVU1OIHslIGlmIGRhdGEubmFtZSAlfXt7 Y29ubnxxdFR5cGVJZGVudChkYXRhLm5hbWUpfX17JSBlbHNlICV9e3tjb25u fHF0VHlwZUlkZW50KG9fZGF0YS5uYW1lKX19eyUgZW5kaWYgJX0gU0VUIFNU T1JBR0UgeyVpZiBkYXRhLmF0dHN0b3JhZ2UgPT0gJ3AnICV9CiBQTEFJTnsl IGVsaWYgZGF0YS5hdHRzdG9yYWdlID09ICdtJyV9TUFJTnslIGVsaWYgZGF0 YS5hdHRzdG9yYWdlID09ICdlJyV9CiBFWFRFUk5BTHslIGVsaWYgZGF0YS5h dHRzdG9yYWdlID09ICd4JyV9RVhURU5ERUR7JSBlbmRpZiAlfTsKIAogeyUg ZW5kaWYgJX0KIHslIGlmIGRhdGEuZGVzY3JpcHRpb24gaXMgZGVmaW5lZCAl fQoreyUgaWYgZGF0YS5uYW1lICV9CiBDT01NRU5UIE9OIENPTFVNTiB7e2Nv bm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgZGF0YS5uYW1l KX19Cit7JSBlbHNlICV9CitDT01NRU5UIE9OIENPTFVNTiB7e2Nvbm58cXRJ ZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgb19kYXRhLm5hbWUpfX0K K3slIGVuZGlmICV9CiAgICAgSVMge3tkYXRhLmRlc2NyaXB0aW9ufHF0TGl0 ZXJhbH19OwogCiB7JSBlbmRpZiAlfQpAQCAtNTIsMTUgKzU1LDI3IEBAIENP TU1FTlQgT04gQ09MVU1OIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBk YXRhLnRhYmxlLCBkYXRhLm5hbWUpfX0KIHslIHNldCB2YXJpYWJsZXMgPSBk YXRhLmF0dG9wdGlvbnMgJX0KIHslIGlmICdkZWxldGVkJyBpbiB2YXJpYWJs ZXMgYW5kIHZhcmlhYmxlcy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KIEFMVEVS IFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxl KX19Cit7JSBpZiBkYXRhLm5hbWUgJX0KICAgICB7eyBWQVJJQUJMRS5VTlNF VChjb25uLCAnQ09MVU1OJywgZGF0YS5uYW1lLCB2YXJpYWJsZXMuZGVsZXRl ZCkgfX0KK3slIGVsc2UgJX0KKyAgICB7eyBWQVJJQUJMRS5VTlNFVChjb25u LCAnQ09MVU1OJywgb19kYXRhLm5hbWUsIHZhcmlhYmxlcy5kZWxldGVkKSB9 fQoreyUgZW5kaWYgJX0KIHslIGVuZGlmICV9CiB7JSBpZiAnYWRkZWQnIGlu IHZhcmlhYmxlcyBhbmQgdmFyaWFibGVzLmFkZGVkfGxlbmd0aCA+IDAgJX0K IEFMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRh LnRhYmxlKX19Cit7JSBpZiBkYXRhLm5hbWUgJX0KICAgICB7eyBWQVJJQUJM RS5TRVQoY29ubiwgJ0NPTFVNTicsIGRhdGEubmFtZSwgdmFyaWFibGVzLmFk ZGVkKSB9fQoreyUgZWxzZSAlfQorICAgIHt7IFZBUklBQkxFLlNFVChjb25u LCAnQ09MVU1OJywgb19kYXRhLm5hbWUsIHZhcmlhYmxlcy5hZGRlZCkgfX0K K3slIGVuZGlmICV9CiB7JSBlbmRpZiAlfQogeyUgaWYgJ2NoYW5nZWQnIGlu IHZhcmlhYmxlcyBhbmQgdmFyaWFibGVzLmNoYW5nZWR8bGVuZ3RoID4gMCAl fQogQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRh dGEudGFibGUpfX0KK3slIGlmIGRhdGEubmFtZSAlfQogICAgIHt7IFZBUklB QkxFLlNFVChjb25uLCAnQ09MVU1OJywgZGF0YS5uYW1lLCB2YXJpYWJsZXMu Y2hhbmdlZCkgfX0KK3slIGVsc2UgJX0KKyAgICB7eyBWQVJJQUJMRS5TRVQo Y29ubiwgJ0NPTFVNTicsIG9fZGF0YS5uYW1lLCB2YXJpYWJsZXMuY2hhbmdl ZCkgfX0KK3slIGVuZGlmICV9CiB7JSBlbmRpZiAlfQogeyUgZW5kaWYgJX0K IHsjIyMgVXBkYXRlIGNvbHVtbiBwcml2aWxlZ2VzICMjI30KQEAgLTY4LDE4 ICs4MywzMSBAQCBBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNj aGVtYSwgZGF0YS50YWJsZSl9fQogeyUgaWYgZGF0YS5hdHRhY2wgJX0KIHsl IGlmICdkZWxldGVkJyBpbiBkYXRhLmF0dGFjbCAlfQogeyUgZm9yIHByaXYg aW4gZGF0YS5hdHRhY2wuZGVsZXRlZCAlfQote3sgUFJJVklMRUdFLlJFU0VU QUxMKGNvbm4sIGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUs IHByaXYuZ3JhbnRlZSkgfX0KK3slIGlmIGRhdGEubmFtZSAlfQorICAgIHt7 IFBSSVZJTEVHRS5SRVNFVEFMTChjb25uLCBkYXRhLnNjaGVtYSwgZGF0YS50 YWJsZSwgZGF0YS5uYW1lLCBwcml2LmdyYW50ZWUpIH19Cit7JSBlbHNlICV9 CisgICAge3sgUFJJVklMRUdFLlJFU0VUQUxMKGNvbm4sIGRhdGEuc2NoZW1h LCBkYXRhLnRhYmxlLCBvX2RhdGEubmFtZSwgcHJpdi5ncmFudGVlKSB9fQor eyUgZW5kaWYgJX0KIHslIGVuZGZvciAlfQogeyUgZW5kaWYgJX0KIHslIGlm ICdjaGFuZ2VkJyBpbiBkYXRhLmF0dGFjbCAlfQogeyUgZm9yIHByaXYgaW4g ZGF0YS5hdHRhY2wuY2hhbmdlZCAlfQote3sgUFJJVklMRUdFLlJFU0VUQUxM KGNvbm4sIGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUsIHBy aXYuZ3JhbnRlZSkgfX0KLXt7IFBSSVZJTEVHRS5BUFBMWShjb25uLCBkYXRh LnNjaGVtYSwgZGF0YS50YWJsZSwgZGF0YS5uYW1lLCBwcml2LmdyYW50ZWUs IHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50KSB9fQoreyUg aWYgZGF0YS5uYW1lICV9CisgICAge3sgUFJJVklMRUdFLlJFU0VUQUxMKGNv bm4sIGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUsIHByaXYu Z3JhbnRlZSkgfX0KKyAgICB7eyBQUklWSUxFR0UuQVBQTFkoY29ubiwgZGF0 YS5zY2hlbWEsIGRhdGEudGFibGUsIGRhdGEubmFtZSwgcHJpdi5ncmFudGVl LCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCkgfX0KK3sl IGVsc2UgJX0KKyAgICB7eyBQUklWSUxFR0UuUkVTRVRBTEwoY29ubiwgZGF0 YS5zY2hlbWEsIGRhdGEudGFibGUsIG9fZGF0YS5uYW1lLCBwcml2LmdyYW50 ZWUpIH19CisgICAge3sgUFJJVklMRUdFLkFQUExZKGNvbm4sIGRhdGEuc2No ZW1hLCBkYXRhLnRhYmxlLCBvX2RhdGEubmFtZSwgcHJpdi5ncmFudGVlLCBw cml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCkgfX0KK3slIGVu ZGlmICV9CiB7JSBlbmRmb3IgJX0KIHslIGVuZGlmICV9CiB7JSBpZiAnYWRk ZWQnIGluIGRhdGEuYXR0YWNsICV9CiB7JSBmb3IgcHJpdiBpbiBkYXRhLmF0 dGFjbC5hZGRlZCAlfQote3sgUFJJVklMRUdFLkFQUExZKGNvbm4sIGRhdGEu c2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUsIHByaXYuZ3JhbnRlZSwg cHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQpIH19Cit7JSBp ZiBkYXRhLm5hbWUgJX0KKyAgICB7eyBQUklWSUxFR0UuQVBQTFkoY29ubiwg ZGF0YS5zY2hlbWEsIGRhdGEudGFibGUsIGRhdGEubmFtZSwgcHJpdi5ncmFu dGVlLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCkgfX0K K3slIGVsc2UgJX0KKyAgICB7eyBQUklWSUxFR0UuQVBQTFkoY29ubiwgZGF0 YS5zY2hlbWEsIGRhdGEudGFibGUsIG9fZGF0YS5uYW1lLCBwcml2LmdyYW50 ZWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50KSB9fQor eyUgZW5kaWYgJX0KIHslIGVuZGZvciAlfQogeyUgZW5kaWYgJX0KIHslIGVu ZGlmICV9CkBAIC04OSwxNyArMTE3LDI5IEBAIEFMVEVSIFRBQkxFIHt7Y29u bnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlKX19CiB7JSBzZXQg c2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KIHslIGlmICdkZWxldGVk JyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxldGVkfGxlbmd0aCA+ IDAgJX0KIHslIGZvciByIGluIHNlY2xhYmVscy5kZWxldGVkICV9Cit7JSBp ZiBkYXRhLm5hbWUgJX0KIHt7IFNFQ0xBQkVMLkRST1AoY29ubiwgJ0NPTFVN TicsIGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUsIHIucHJv dmlkZXIpIH19Cit7JSBlbHNlICV9Cit7eyBTRUNMQUJFTC5EUk9QKGNvbm4s ICdDT0xVTU4nLCBkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgb19kYXRhLm5h bWUsIHIucHJvdmlkZXIpIH19Cit7JSBlbmRpZiAlfQogeyUgZW5kZm9yICV9 CiB7JSBlbmRpZiAlfQogeyUgaWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5k IHNlY2xhYmVscy5hZGRlZHxsZW5ndGggPiAwICV9CiB7JSBmb3IgciBpbiBz ZWNsYWJlbHMuYWRkZWQgJX0KK3slIGlmIGRhdGEubmFtZSAlfQoge3sgU0VD TEFCRUwuQVBQTFkoY29ubiwgJ0NPTFVNTicsZGF0YS5zY2hlbWEsIGRhdGEu dGFibGUsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5sYWJlbCkgfX0KK3sl IGVsc2UgJX0KK3t7IFNFQ0xBQkVMLkFQUExZKGNvbm4sICdDT0xVTU4nLGRh dGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBvX2RhdGEubmFtZSwgci5wcm92aWRl ciwgci5sYWJlbCkgfX0KK3slIGVuZGlmICV9CiB7JSBlbmRmb3IgJX0KIHsl IGVuZGlmICV9CiB7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBz ZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9CiB7JSBmb3IgciBpbiBz ZWNsYWJlbHMuY2hhbmdlZCAlfQoreyUgaWYgZGF0YS5uYW1lICV9CiB7eyBT RUNMQUJFTC5BUFBMWShjb25uLCAnQ09MVU1OJyxkYXRhLnNjaGVtYSwgZGF0 YS50YWJsZSwgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsKSB9fQot eyUgZW5kZm9yICV9Cit7JSBlbHNlICV9Cit7eyBTRUNMQUJFTC5BUFBMWShj b25uLCAnQ09MVU1OJyxkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgb19kYXRh Lm5hbWUsIHIucHJvdmlkZXIsIHIubGFiZWwpIH19CiB7JSBlbmRpZiAlfQor eyUgZW5kZm9yICV9CiB7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3N0YXRpYy9qcy9kYXRhbW9kZWwuanMgYi93ZWIvcGdhZG1p bi9icm93c2VyL3N0YXRpYy9qcy9kYXRhbW9kZWwuanMKaW5kZXggN2IzNzlj ZS4uN2QzMjZmOSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z dGF0aWMvanMvZGF0YW1vZGVsLmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc3RhdGljL2pzL2RhdGFtb2RlbC5qcwpAQCAtMTA2NSw4ICsxMDY1LDEw IEBAIGZ1bmN0aW9uKF8sIHBnQWRtaW4sICQsIEJhY2tib25lKSB7CiAgICAg ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAotICAgICAgICBzZWxm LnNlc3NBdHRyc1snY2hhbmdlZCddLnB1c2gob2JqKTsKLSAgICAgICAgKHNl bGYuaGFuZGxlciB8fCBzZWxmKS50cmlnZ2VyKCdwZ2FkbWluLXNlc3Npb246 Y2hhbmdlZCcsIHNlbGYsIG9iaik7CisgICAgICAgIGlmIChvYmouc2Vzc0No YW5nZWQoKSkgeworICAgICAgICAgIHNlbGYuc2Vzc0F0dHJzWydjaGFuZ2Vk J10ucHVzaChvYmopOworICAgICAgICAgIChzZWxmLmhhbmRsZXIgfHwgc2Vs ZikudHJpZ2dlcigncGdhZG1pbi1zZXNzaW9uOmNoYW5nZWQnLCBzZWxmLCBv YmopOworICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg ICB9LAo= --001a113ddd7a8ca7690539250e62 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 --001a113ddd7a8ca7690539250e62--