Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aLowV-0004rI-E7 for pgadmin-hackers@arkaria.postgresql.org; Wed, 20 Jan 2016 09:20:43 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aLowV-0007g6-0O for pgadmin-hackers@arkaria.postgresql.org; Wed, 20 Jan 2016 09:20:43 +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 1aLowR-0007fl-CW for pgadmin-hackers@postgresql.org; Wed, 20 Jan 2016 09:20:39 +0000 Received: from mail-lb0-x232.google.com ([2a00:1450:4010:c04::232]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aLowL-0006Yk-UF for pgadmin-hackers@postgresql.org; Wed, 20 Jan 2016 09:20:38 +0000 Received: by mail-lb0-x232.google.com with SMTP id bc4so1588706lbc.2 for ; Wed, 20 Jan 2016 01:20:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=S9uKjqCeKBqMrIKzXZ4v93DlZOABQ09FB0LjiYQxwSw=; b=LcPuPOGDuGz1ME388jogjHl6/9TbRWSXPzUO2SBN2hhyfjOapOi+ucMzqBiY1IIUyp 4AVkjRI5dKQnCgVuPDtnniyIDcHpCcrjlPozNeLL+1yydMsN3yB4TXCtAurvLML+EQ2R n3MIIwraI972dgQISHc3LEwvpS/tQejsNlWSaKq5rBXsZEZVjbppsgfwqepiQS13aGML ZdVDJbmREKHhT77vIRw9chc2ccBoZHJqjfKOwQ9Jw9CVBtSr72JqUrpjic1PtWyKzEf/ wnXYx7jFsZPepm8PEKS+nQqtYRRniyRyYimJGkwrL5lkYHXNRHK11jQgUgg27sgXZf+G lmXQ== 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:content-type; bh=S9uKjqCeKBqMrIKzXZ4v93DlZOABQ09FB0LjiYQxwSw=; b=dBE87yRYzEBDLBDGBfpthR+NwEgp7zN6CMmfZM8vkLsN56horPDeLLQCyPyzndE2gG ayTZTLhzm28p2wWZKoCBubqsmK7s/6CNCe7L0GLaImzR9NkWTqUqh8flysTR4p/j+dLU 60vk22VQ/eaqC31tNaaEpWG+JFMTmS9cvhz3BD5YVzUBj+jWLzPS0EkkJms0EyGInbad KyQZULhcXiifUEqo7s0FWDUhoIHbFxME6h17nUwlBAR5+2BM9x87loRPe/9fps3qTd2M kd/llaE0+OlSxyqZG7cefErWP3njDogin4Rg7EGjCc9yXdWVCSOGCdBbFYQE5glv5aN4 ylLQ== X-Gm-Message-State: ALoCoQk+R9HQcVhd+ojCMu5hlDG0CmBlcV0k56QschpbL2P3AZmYx3+D+ceFLUXwk6jVUtsHtUOnJjiFumG0HgbbCp4dfhgONU2/+qd1IfSejBy93GA3Quw= MIME-Version: 1.0 X-Received: by 10.112.134.165 with SMTP id pl5mr12927531lbb.126.1453281631908; Wed, 20 Jan 2016 01:20:31 -0800 (PST) Received: by 10.25.42.138 with HTTP; Wed, 20 Jan 2016 01:20:31 -0800 (PST) In-Reply-To: References: Date: Wed, 20 Jan 2016 14:50:31 +0530 Message-ID: Subject: Re: pgAdmin4 PATCH: Domain Module From: Khushboo Vashi To: Neel Patel Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=089e0122976e6e1b890529c07f14 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 --089e0122976e6e1b890529c07f14 Content-Type: multipart/alternative; boundary=089e0122976e6e1b830529c07f12 --089e0122976e6e1b830529c07f12 Content-Type: text/plain; charset=UTF-8 Hi Neel, Please find updated patch. Thanks, Khushboo On Wed, Jan 20, 2016 at 12:50 PM, Neel Patel wrote: > Hi Khushboo, > > While applying the patch file, we are getting below warnings. > > ######################################### > domains (1).patch:1340: trailing whitespace. > oid: undefined, > domains (1).patch:1483: trailing whitespace. > (nspname = 'pg_catalog' AND EXISTS > domains (1).patch:1487: trailing whitespace. > OR (nspname = 'information_schema' AND EXISTS > domains (1).patch:1489: trailing whitespace. > OR (nspname LIKE '_%' AND EXISTS > domains (1).patch:1642: trailing whitespace. > (select 1 from pg_class where relnamespace=typnamespace and relname = > typname and relkind != 'c') AND (typname not like '_%' OR NOT EXISTS > (select 1 from pg_class where relnamespace=typnamespace and relname = > substring(typname from 2)::name and relkind != 'c')) > warning: squelched 4 whitespace errors > warning: 9 lines add whitespace errors. > ######################################### > > Can you please remove the whitespace and regenerate the patch ? > > Thanks, > Neel Patel > > On Wed, Jan 20, 2016 at 12:37 PM, Khushboo Vashi < > khushboo.vashi@enterprisedb.com> wrote: > >> Resending patch with binary option. >> >> On Wed, Jan 20, 2016 at 10:18 AM, Khushboo Vashi < >> khushboo.vashi@enterprisedb.com> wrote: >> >>> Hi, >>> >>> Please find attached patch for the Domain Module. >>> >>> The patch will be modified after Types module implementation as we need >>> to populate Base Type and some Type related validations from the Types >>> module. >>> >>> Please review it and let me know the feedback. >>> >>> Thanks, >>> Khushboo >>> >> >> >> >> -- >> Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) >> To make changes to your subscription: >> http://www.postgresql.org/mailpref/pgadmin-hackers >> >> > --089e0122976e6e1b830529c07f12 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Neel,

Please find updated p= atch.

Thanks,
Khushboo

On Wed, Jan 20, 2016 at 12:50 PM, Neel= Patel <neel.patel@enterprisedb.com> wrote:
Hi Khushboo,

While applying the patch file, we are getting below warnings.
<= br>
#########################################
doma= ins (1).patch:1340: trailing whitespace.
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 oid: undefined,=C2=A0
domains (1).patch:1483: trailing= whitespace.
=C2=A0 =C2=A0 (nspname =3D 'pg_catalog' AND = EXISTS=C2=A0
domains (1).patch:1487: trailing whitespace.
=C2=A0 =C2=A0 OR (nspname =3D 'information_schema' AND EXISTS=C2= =A0
domains (1).patch:1489: trailing whitespace.
=C2=A0= =C2=A0 OR (nspname LIKE '_%' AND EXISTS=C2=A0
domains (1= ).patch:1642: trailing whitespace.
=C2=A0(select 1 from pg_class = where relnamespace=3Dtypnamespace and relname =3D typname and relkind !=3D = 'c') AND (typname not like '_%' OR NOT EXISTS (select 1 fro= m pg_class where relnamespace=3Dtypnamespace and relname =3D substring(typn= ame from 2)::name and relkind !=3D 'c'))=C2=A0
warning: s= quelched 4 whitespace errors
warning: 9 lines add whitespace erro= rs.
#########################################

Can you please remove the whitespace and regenerate the pat= ch ?

Thanks,
Neel Patel

On Wed, Jan 20, 2016 at 12:37 PM, Khushboo Vashi <khushboo.= vashi@enterprisedb.com> wrote:
Resending patch wit= h binary option.

On Wed, Jan 20, 2016 at 10:18 AM, Khushboo Vashi <khushboo.vashi@enterprisedb.com> wrote:
Hi,

Please find attached patch for the Domain Module.

The patch w= ill be modified after Types module implementation as we need to populate Ba= se Type=C2=A0 and some Type related validations from the Types module.
<= br>
Please review it and let me know the feedback.
=
Thanks,
Khushboo



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



--089e0122976e6e1b830529c07f12-- --089e0122976e6e1b890529c07f14 Content-Type: text/x-patch; charset=US-ASCII; name="domains.patch" Content-Disposition: attachment; filename="domains.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ijmmcu620 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvX19pbml0X18u cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL19faW5pdF9fLnB5Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1MGE2NjUKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL19faW5pdF9f LnB5CkBAIC0wLDAgKzEsNTEwIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisj CisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERl dmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1 bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworaW1wb3J0IGpzb24KK2Zyb20gZmxhc2sgaW1w b3J0IHJlbmRlcl90ZW1wbGF0ZSwgbWFrZV9yZXNwb25zZSwgcmVxdWVzdCwg anNvbmlmeQorZnJvbSBmbGFzay5leHQuYmFiZWwgaW1wb3J0IGdldHRleHQK K2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVz cG9uc2UsIFwKKyAgICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2Us IGludGVybmFsX3NlcnZlcl9lcnJvcgorZnJvbSBwZ2FkbWluLmJyb3dzZXIu dXRpbHMgaW1wb3J0IFBHQ2hpbGROb2RlVmlldworZnJvbSBwZ2FkbWluLmJy b3dzZXIuY29sbGVjdGlvbiBpbXBvcnQgQ29sbGVjdGlvbk5vZGVNb2R1bGUK K2ltcG9ydCBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy5zY2hlbWFzIGFzIHNjaGVtYXMKK2Zyb20gcGdhZG1pbi51 dGlscy5hamF4IGltcG9ydCBwcmVjb25kaXRpb25fcmVxdWlyZWQKK2Zyb20g cGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20g Y29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgorZnJvbSBmdW5jdG9v bHMgaW1wb3J0IHdyYXBzCisKK2NsYXNzIERvbWFpbk1vZHVsZShDb2xsZWN0 aW9uTm9kZU1vZHVsZSk6CisgICAgTk9ERV9UWVBFID0gJ2RvbWFpbicKKyAg ICBDT0xMRUNUSU9OX0xBQkVMID0gZ2V0dGV4dCgiRG9tYWlucyIpCisKKyAg ICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAg ICAgc2VsZi5taW5fdmVyID0gTm9uZQorICAgICAgICBzZWxmLm1heF92ZXIg PSBOb25lCisgICAgICAgIHN1cGVyKERvbWFpbk1vZHVsZSwgc2VsZikuX19p bml0X18oKmFyZ3MsICoqa3dhcmdzKQorCisgICAgIyBCZWZvcmUgbG9hZGlu ZyB0aGlzIG1vZHVsZSB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHNjaWQg aXMgc2NoZW1hIG9iamVjdAorICAgIGRlZiBCYWNrZW5kU3VwcG9ydGVkKHNl bGYsIG1hbmFnZXIsICoqa3dhcmdzKToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb24gd2lsbCB2YWxpZGF0ZSBzY2hlbWEgbmFtZSAmIHNj aWQgYWdhaW5zdCBjYXRhbG9ncyB0aGVuIGFsbG93IHVzIHRvCisgICAgICAg IG1ha2UgZGVjaXNpb24gaWYgd2Ugd2FudCB0byBsb2FkIHRoaXMgbW9kdWxl IG9yIG5vdCBmb3IgdGhlIHNjaGVtYQorICAgICAgICAiIiIKKyAgICAgICAg aWYgc3VwZXIoRG9tYWluTW9kdWxlLCBzZWxmKS5CYWNrZW5kU3VwcG9ydGVk KG1hbmFnZXIsICoqa3dhcmdzKToKKyAgICAgICAgICAgIGNvbm4gPSBtYW5h Z2VyLmNvbm5lY3Rpb24oKQorICAgICAgICAgICAgIyBJZiBEQiBpcyBub3Qg Y29ubmVjdGVkIHRoZW4gcmV0dXJuIGVycm9yIHRvIGJyb3dzZXIKKyAgICAg ICAgICAgIGlmIG5vdCBjb25uLmNvbm5lY3RlZCgpOgorICAgICAgICAgICAg ICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQoCisgICAgICAgICAg ICAgICAgICAgIGdldHRleHQoCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIK KyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkKKyAg ICAgICAgICAgIHZlciA9IG1hbmFnZXIudmVyc2lvbgorICAgICAgICAgICAg c2VydmVyX3R5cGUgPSBtYW5hZ2VyLnNlcnZlcl90eXBlCisgICAgICAgICAg ICAjIHdlIHdpbGwgc2V0IHRlbXBsYXRlIHBhdGggZm9yIHNxbCBzY3JpcHRz CisgICAgICAgICAgICBpZiB2ZXIgPj0gOTAxMDA6CisgICAgICAgICAgICAg ICAgdGVtcGxhdGVfcGF0aCA9ICdkb21haW5zL3NxbC85LjFfcGx1cycKKyAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBOb3RlOiBEb21h aW4gaXMgbm90IHN1cHBvcnRlZCBiZWxvdyBwb3N0Z3JlcyB2ZXJzaW9uIDku MQorICAgICAgICAgICAgICAgICMgSGVuY2Ugd2Ugd2lsbCBub3QgbG9hZCB0 aGlzIG1vZHVsZQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisg ICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3Rl bXBsYXRlX3BhdGgsICdiYWNrZW5kX3N1cHBvcnQuc3FsJ10pLCBzY2lkPWt3 YXJnc1snc2NpZCddKQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBjb25u LmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgICMgY2hlY2sgaWYg YW55IGVycm9ycworICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPXJlcykKKyAgICAgICAgICAgICMgQ2hlY2sgc2NpZCBpcyBjYXRhbG9n IGFuZCBmcm9tICdzeXMnLCAnZGJvJywgJ2luZm9ybWF0aW9uX3NjaGVtYScs CisgICAgICAgICAgICAjIHRoZW4gRmFsc2UgKERvIG5vdCBsb2FkIHRoaXMg bW9kdWxlKSwgb3RoZXdpc2UgVHJ1ZQorICAgICAgICAgICAgaWYgcmVzIGlz IFRydWU6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAg ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAg ICBkZWYgZ2V0X25vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgor ICAgICAgICAiIiIKKyAgICAgICAgR2VuZXJhdGUgdGhlIGNvbGxlY3Rpb24g bm9kZQorICAgICAgICAiIiIKKyAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0 ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZShzY2lkKQorCisgICAgQHByb3Bl cnR5CisgICAgZGVmIHNjcmlwdF9sb2FkKHNlbGYpOgorICAgICAgICAiIiIK KyAgICAgICAgTG9hZCB0aGUgbW9kdWxlIHNjcmlwdCBmb3IgZGF0YWJhc2Us IHdoZW4gYW55IG9mIHRoZSBkYXRhYmFzZSBub2RlIGlzCisgICAgICAgIGlu aXRpYWxpemVkLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNjaGVt YXMuU2NoZW1hTW9kdWxlLk5PREVfVFlQRQorCisKK2JsdWVwcmludCA9IERv bWFpbk1vZHVsZShfX25hbWVfXykKKworCitjbGFzcyBEb21haW5WaWV3KFBH Q2hpbGROb2RlVmlldyk6CisgICAgbm9kZV90eXBlID0gYmx1ZXByaW50Lm5v ZGVfdHlwZQorCisgICAgcGFyZW50X2lkcyA9IFsKKyAgICAgICAgICAgIHsn dHlwZSc6ICdpbnQnLCAnaWQnOiAnZ2lkJ30sCisgICAgICAgICAgICB7J3R5 cGUnOiAnaW50JywgJ2lkJzogJ3NpZCd9LAorICAgICAgICAgICAgeyd0eXBl JzogJ2ludCcsICdpZCc6ICdkaWQnfSwKKyAgICAgICAgICAgIHsndHlwZSc6 ICdpbnQnLCAnaWQnOiAnc2NpZCd9CisgICAgICAgICAgICBdCisgICAgaWRz ID0gWworICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdkb2lk J30KKyAgICAgICAgICAgIF0KKworICAgIG9wZXJhdGlvbnMgPSBkaWN0KHsK KyAgICAgICAgJ29iaic6IFsKKyAgICAgICAgICAgIHsnZ2V0JzogJ3Byb3Bl cnRpZXMnLCAnZGVsZXRlJzogJ2RlbGV0ZScsICdwdXQnOiAndXBkYXRlJ30s CisgICAgICAgICAgICB7J2dldCc6ICdsaXN0JywgJ3Bvc3QnOiAnY3JlYXRl J30KKyAgICAgICAgXSwKKyAgICAgICAgJ2RlbGV0ZSc6IFt7J2RlbGV0ZSc6 ICdkZWxldGUnfV0sCisgICAgICAgICdjaGlsZHJlbic6IFt7J2dldCc6ICdj aGlsZHJlbid9XSwKKyAgICAgICAgJ25vZGVzJzogW3snZ2V0JzogJ25vZGUn fSwgeydnZXQnOiAnbm9kZXMnfV0sCisgICAgICAgICdzcWwnOiBbeydnZXQn OiAnc3FsJ31dLAorICAgICAgICAnbXNxbCc6IFt7J2dldCc6ICdtc3FsJ30s IHsnZ2V0JzogJ21zcWwnfV0sCisgICAgICAgICdzdGF0cyc6IFt7J2dldCc6 ICdzdGF0aXN0aWNzJ31dLAorICAgICAgICAnZGVwZW5kZW5jeSc6IFt7J2dl dCc6ICdkZXBlbmRlbmNpZXMnfV0sCisgICAgICAgICdkZXBlbmRlbnQnOiBb eydnZXQnOiAnZGVwZW5kZW50cyd9XSwKKyAgICAgICAgJ21vZHVsZS5qcyc6 IFt7fSwge30sIHsnZ2V0JzogJ21vZHVsZV9qcyd9XSwKKyAgICAgICAgJ2dl dF9zY2hlbWFzJzogW3snZ2V0JzogJ2dldF9zY2hlbWFzJ30sIHsnZ2V0Jzog J2dldF9zY2hlbWFzJ31dLAorICAgICAgICAnZ2V0X2NvbGxhdGlvbnMnOiBb eydnZXQnOiAnZ2V0X2NvbGxhdGlvbnMnfSwgeydnZXQnOiAnZ2V0X2NvbGxh dGlvbnMnfV0sCisgICAgICAgICdnZXRfdHlwZXMnOiBbeydnZXQnOiAnZ2V0 X3R5cGVzJ30sIHsnZ2V0JzogJ2dldF90eXBlcyd9XQorICAgIH0pCisKKwor ICAgIGRlZiBtb2R1bGVfanMoc2VsZik6CisgICAgICAgIHJldHVybiBtYWtl X3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZSgK KyAgICAgICAgICAgICAgICAgICAgImRvbWFpbnMvanMvZG9tYWlucy5qcyIs CisgICAgICAgICAgICAgICAgICAgIF89Z2V0dGV4dAorICAgICAgICAgICAg ICAgICAgICApLAorICAgICAgICAgICAgICAgIDIwMCwgeydDb250ZW50LVR5 cGUnOiAnYXBwbGljYXRpb24veC1qYXZhc2NyaXB0J30KKyAgICAgICAgICAg ICAgICApCisKKworICAgIGRlZiBjaGVja19wcmVjb25kaXRpb24oZik6Cisg ICAgICAgICIiIgorICAgICAgICBXb3JrcyBhcyBhIGRlY29yYXRvci4KKyAg ICAgICAgQ2hlY2tzIGRhdGFiYXNlIGNvbm5lY3Rpb24gc3RhdHVzLgorICAg ICAgICBBdHRhY2ggY29ubmVjdGlvbiBvYmplY3QgYW5kIHRlbXBsYXRlIHBh dGguCisgICAgICAgICIiIgorICAgICAgICBAd3JhcHMoZikKKyAgICAgICAg ZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgICMgSGVy ZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dhcmdzIHdpbGwgaG9sZCBn aWQsc2lkLGRpZAorICAgICAgICAgICAgc2VsZiA9IGFyZ3NbMF0KKyAgICAg ICAgICAgIGRyaXZlciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIp CisgICAgICAgICAgICBzZWxmLm1hbmFnZXIgPSBkcml2ZXIuY29ubmVjdGlv bl9tYW5hZ2VyKGt3YXJnc1snc2lkJ10pCisgICAgICAgICAgICAjIEdldCBk YXRhYmFzZSBjb25uZWN0aW9uCisgICAgICAgICAgICBzZWxmLmNvbm4gPSBz ZWxmLm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9a3dhcmdzWydkaWQnXSkKKyAg ICAgICAgICAgIHNlbGYucXRJZGVudCA9IGRyaXZlci5xdElkZW50CisKKyAg ICAgICAgICAgICMgSWYgZGF0YWJhc2UgaXMgbm90IGNvbm5lY3RlZCB0aGVu IHJldHVybiBlcnJvcgorICAgICAgICAgICAgaWYgbm90IHNlbGYuY29ubi5j b25uZWN0ZWQoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0 aW9uX3JlcXVpcmVkKAorICAgICAgICAgICAgICAgICAgICBnZXR0ZXh0KAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb25uZWN0aW9uIHRvIHRo ZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiCisgICAgICAgICAgICAgICAgICAg ICkKKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgIHZlciA9IHNl bGYubWFuYWdlci52ZXJzaW9uCisgICAgICAgICAgICBzZXJ2ZXJfdHlwZSA9 IHNlbGYubWFuYWdlci5zZXJ2ZXJfdHlwZQorCisgICAgICAgICAgICAjIHdl IHdpbGwgc2V0IHRlbXBsYXRlIHBhdGggZm9yIHNxbCBzY3JpcHRzCisgICAg ICAgICAgICBpZiB2ZXIgPj0gOTAxMDA6CisgICAgICAgICAgICAgICAgc2Vs Zi50ZW1wbGF0ZV9wYXRoID0gJ2RvbWFpbnMvc3FsLzkuMV9wbHVzJworICAg ICAgICAgICAgcmV0dXJuIGYoKmFyZ3MsICoqa3dhcmdzKQorCisgICAgICAg IHJldHVybiB3cmFwCisKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAg ICBkZWYgbGlzdChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAg ICAgIiIiTGlzdCB0aGUgRG9tYWlucy4iIiIKKworICAgICAgICBTUUwgPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwg J3Byb3BlcnRpZXMuc3FsJ10pLCBzY2lkPXNjaWQpCisgICAgICAgIHN0YXR1 cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisKKyAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICByZXR1cm4g YWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZT1yZXNb J3Jvd3MnXSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAg ICAgICAgICAgKQorCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAg ZGVmIG5vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAg ICAiIiJSZXR1cm5zIGFsbCB0aGUgRG9tYWlucy4iIiIKKworICAgICAgICBy ZXMgPSBbXQorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpv aW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLCBz Y2lkPXNjaWQpCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5l eGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1yc2V0KQorCisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cydd OgorICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAg ICAgc2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAg ICAgICAgICAgICAgICAgICAgICAgcm93WydvaWQnXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgIHJvd1snbmFtZSddLAorICAgICAgICAgICAgICAgICAg ICAgICAgaWNvbj0iaWNvbi1kb21haW4iCisgICAgICAgICAgICAgICAgICAg ICkpCisKKyAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAg ICAgICAgICAgICAgICBkYXRhPXJlcywKKyAgICAgICAgICAgICAgICBzdGF0 dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCisKKyAgICBAY2hlY2tfcHJl Y29uZGl0aW9uCisgICAgZGVmIHByb3BlcnRpZXMoc2VsZiwgZ2lkLCBzaWQs IGRpZCwgc2NpZCwgZG9pZCk6CisgICAgICAgICIiIlJldHVybnMgRG9tYWlu IHByb3BlcnRpZXMuIiIiCisKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBs YXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVz LnNxbCddKSxzY2lkPXNjaWQsIGRvaWQ9ZG9pZCkKKyAgICAgICAgc3RhdHVz LCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAg aWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgIGRhdGEgPSBy ZXNbJ3Jvd3MnXVswXQorCisgICAgICAgICMgR2V0IERvbWFpbiBDb25zdHJh aW50cworICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4o W3NlbGYudGVtcGxhdGVfcGF0aCwgJ2dldF9jb25zdHJhaW50cy5zcWwnXSks ZG9pZD1kb2lkKQorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5l eGVjdXRlX2RpY3QoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1yZXMpCisKKworICAgICAgICBkYXRhWydjb25zdHJhaW50cyddID0gcmVz Wydyb3dzJ10KKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAg ICAgICAgICAgICAgcmVzcG9uc2U9ZGF0YSwKKyAgICAgICAgICAgICAgICBz dGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCisKKyAgICBAY2hlY2tf cHJlY29uZGl0aW9uCisgICAgZGVmIGdldF9zY2hlbWFzKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQsIGRvaWQ9Tm9uZSk6CisgICAgICAgICIiIlJldHVy bnMgU2NoZW1hcyBmb3IgcGFydGljdWxhciBkYXRhYmFzZS4iIiIKKworICAg ICAgICByZXMgPSBbeyAnbGFiZWwnOiAnJywgJ3ZhbHVlJzogJycgfV0KKyAg ICAgICAgdHJ5OgorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRl KCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdnZXRfc2NoZW1hcy5z cWwnXSksIHNjaWQ9c2NpZCkKKyAgICAgICAgICAgIHN0YXR1cywgcnNldCA9 IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAgICAgICAg aWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAg Zm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAgICAgICAgcmVz LmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICdsYWJl bCc6IHJvd1snbnNwbmFtZSddLCAndmFsdWUnOiByb3dbJ25zcG5hbWUnXSB9 CisgICAgICAgICAgICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgIHJl dHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAg IGRhdGE9cmVzLAorICAgICAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisg ICAgICAgICAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0 aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworCisgICAgQGNoZWNrX3ByZWNv bmRpdGlvbgorICAgIGRlZiBnZXRfY29sbGF0aW9ucyhzZWxmLCBnaWQsIHNp ZCwgZGlkLCBzY2lkLCBkb2lkPU5vbmUpOgorICAgICAgICAiIiJSZXR1cm5z IENvbGxhdGlvbnMuIiIiCisKKyAgICAgICAgcmVzID0gW3sgJ2xhYmVsJzog JycsICd2YWx1ZSc6ICcnIH1dCisgICAgICAgIHRyeToKKyAgICAgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLCAnZ2V0X2NvbGxhdGlvbnMuc3FsJ10pKQorICAgICAgICAgICAg c3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwp CisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQor CisgICAgICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAg ICAgICAgICAgICByZXMuYXBwZW5kKAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsgJ2xhYmVsJzogcm93Wydjb3B5X2NvbGxhdGlvbiddLCAndmFs dWUnOiByb3dbJ2NvcHlfY29sbGF0aW9uJ10gfQorICAgICAgICAgICAgICAg ICAgICAgICAgKQorCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jl c3BvbnNlKAorICAgICAgICAgICAgICAgICAgICBkYXRhPXJlcywKKyAgICAg ICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICAg ICApCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1z dHIoZSkpCisKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg Z2V0X3R5cGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRvaWQ9Tm9u ZSk6CisgICAgICAgICIiIlJldHVybnMgVHlwZXMuIiIiCisgICAgICAgICMg VE9ETzogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgcmVtb3ZlZCBvbmNlIFR5 cGVzIG1vZHVsZSB3aWxsIGJlIGNvbXBsZXRlZC4KKworICAgICAgICByZXMg PSBbeyAnbGFiZWwnOiAnJywgJ3ZhbHVlJzogJycgfV0KKyAgICAgICAgdHJ5 OgorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2lu KFtzZWxmLnRlbXBsYXRlX3BhdGgsICdnZXRfdHlwZXMuc3FsJ10pKQorICAg ICAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRh cnJheShTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9cmVzKQorCisgICAgICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3Mn XToKKyAgICAgICAgICAgICAgICByZXMuYXBwZW5kKAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsgJ2xhYmVsJzogcm93Wyd0eXBuYW1lJ10sICd2 YWx1ZSc6IHJvd1sndHlwbmFtZSddIH0KKyAgICAgICAgICAgICAgICAgICAg ICAgICkKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2Uo CisgICAgICAgICAgICAgICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAg ICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgICAgICkKKwor ICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkK KworCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBjcmVhdGUo c2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAgICIiIgorICAg ICAgICBDcmVhdGVzIG5ldyBkb21haW4gb2JqZWN0LgorCisgICAgICAgIEV4 cGVjdGVkIFBhcmFtZXRlcnM6CisgICAgICAgICAgICBuYW1lOiBEb21haW4g TmFtZQorICAgICAgICAgICAgb3duZXI6IE93bmVyIE5hbWUKKyAgICAgICAg ICAgIGJhc2Vuc3A6IFNjaGVtYSBOYW1lCisgICAgICAgICAgICBiYXNldHlw ZTogRG9tYWluIEJhc2UgVHlwZQorCisgICAgICAgIEV4cGVjdGVkIFJlc3Bv bnNlOgorICAgICAgICAgICAgRG9tYWluIG9iamVjdCBpbiBqc29uIGZvcm1h dC4KKyAgICAgICAgIiIiCisKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuZm9y bSBpZiByZXF1ZXN0LmZvcm0gZWxzZSBqc29uLmxvYWRzKHJlcXVlc3QuZGF0 YS5kZWNvZGUoKSkKKyAgICAgICAgcmVxdWlyZWRfYXJncyA9IFsKKyAgICAg ICAgICAgICduYW1lJywKKyAgICAgICAgICAgICdvd25lcicsCisgICAgICAg ICAgICAnYmFzZW5zcCcsCisgICAgICAgICAgICAnYmFzZXR5cGUnCisgICAg ICAgIF0KKworICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6Cisg ICAgICAgICAgICBpZiBhcmcgbm90IGluIGRhdGEgb3IgZGF0YVthcmddID09 ICcnOgorICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9u c2UoCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz00MTAsCisgICAgICAg ICAgICAgICAgICAgIHN1Y2Nlc3M9MCwKKyAgICAgICAgICAgICAgICAgICAg ZXJyb3Jtc2c9Z2V0dGV4dCgKKyAgICAgICAgICAgICAgICAgICAgICAgICJD b3VsZG4ndCBmaW5kIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgKCVzKS4iICUg YXJnCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAp CisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3Rl bXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdjcmVhdGUu c3FsJ10pLCBkYXRhPWRhdGEsIHF0SWRlbnQ9c2VsZi5xdElkZW50KQorICAg ICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2Fs YXIoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICAgICAgIyB3ZSBuZWVkIG9pZCB0byB0byBhZGQg b2JqZWN0IGluIHRyZWUgYXQgYnJvd3NlciwgYmVsb3cgc3FsIHdpbGwgZ2l2 ZXMgdGhlIHNhbWUKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnZ2V0X29pZC5zcWwn XSksIGJhc2Vuc3A9ZGF0YVsnYmFzZW5zcCddLCBuYW1lPWRhdGFbJ25hbWUn XSkKKyAgICAgICAgICAgIHN0YXR1cywgZG9pZCA9IHNlbGYuY29ubi5leGVj dXRlX3NjYWxhcihTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9ZG9pZCkKKworICAgICAgICAgICAgcmV0dXJuIGpzb25pZnko CisgICAgICAgICAgICAgICAgbm9kZT1zZWxmLmJsdWVwcmludC5nZW5lcmF0 ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAgICAgIGRvaWQsCisg ICAgICAgICAgICAgICAgICAgIGRhdGFbJ25hbWUnXSwKKyAgICAgICAgICAg ICAgICAgICAgaWNvbj0iaWNvbi1kb21haW4iCisgICAgICAgICAgICAgICAg KQorICAgICAgICAgICAgKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFz IGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXN0cihlKSkKKworCisgICAgQGNoZWNrX3ByZWNvbmRpdGlv bgorICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwg ZG9pZCk6CisgICAgICAgICIiIgorICAgICAgICBEcm9wIHRoZSBEb21haW4u CisgICAgICAgICIiIgorICAgICAgICAjIEJlbG93IHdpbGwgZGVjaWRlIGlm IGl0J3Mgc2ltcGxlIGRyb3Agb3IgZHJvcCB3aXRoIGNhc2NhZGUgY2FsbAor ICAgICAgICBpZiBzZWxmLmNtZCA9PSAnZGVsZXRlJzoKKyAgICAgICAgICAg ICMgVGhpcyBpcyBhIGNhc2NhZGUgb3BlcmF0aW9uCisgICAgICAgICAgICBj YXNjYWRlID0gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY2Fz Y2FkZSA9IEZhbHNlCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3Bh dGgsICdkZWxldGUuc3FsJ10pLCBzY2lkPXNjaWQsIGRvaWQ9ZG9pZCkKKyAg ICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRh cnJheShTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9bmFtZSkKKworICAgICAgICAgICAgbmFtZSwgYmFzZW5zcCA9IHJlc1sn cm93cyddWzBdCisKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnZGVsZXRlLnNxbCdd KSwgbmFtZT1uYW1lLCBiYXNlbnNwPWJhc2Vuc3AsIGNhc2NhZGU9Y2FzY2Fk ZSkKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1 dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6Cisg ICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25f cmVzcG9uc2UoCisgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAg ICAgICAgICAgIGluZm89Z2V0dGV4dCgiRG9tYWluIGRyb3BwZWQiKSwKKyAg ICAgICAgICAgICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgJ2lk JzogZG9pZCwKKyAgICAgICAgICAgICAgICAgICAgJ3NjaWQnOiBzY2lkLAor ICAgICAgICAgICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAg ICAgICAgICAnZ2lkJzogZ2lkLAorICAgICAgICAgICAgICAgICAgICAnZGlk JzogZGlkCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKQorCisg ICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJl dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQor CisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiB1cGRhdGUoc2Vs ZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZG9pZCk6CisgICAgICAgICIiIgor ICAgICAgICBVcGRhdGUgdGhlIERvbWFpbi4KKyAgICAgICAgIiIiCisgICAg ICAgIGRhdGEgPSByZXF1ZXN0LmZvcm0gaWYgcmVxdWVzdC5mb3JtIGVsc2Ug anNvbi5sb2FkcyhyZXF1ZXN0LmRhdGEuZGVjb2RlKCkpCisKKyAgICAgICAg c3RhdHVzLCBTUUwgPSBzZWxmLmdldFNRTChnaWQsIHNpZCwgZGF0YSwgc2Np ZCwgZG9pZCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9U1FMKQor CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIFNRTCBhbmQgU1FMLnN0 cmlwKCdcbicpIGFuZCBTUUwuc3RyaXAoJyAnKToKKyAgICAgICAgICAgICAg ICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwp CisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1yZXMpCisKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jl c3BvbnNlKAorICAgICAgICAgICAgICAgICAgICBzdWNjZXNzPTEsCisgICAg ICAgICAgICAgICAgICAgIGluZm89IkRvbWFpbiB1cGRhdGVkIiwKKyAgICAg ICAgICAgICAgICAgICAgZGF0YT17CisgICAgICAgICAgICAgICAgICAgICAg ICAnaWQnOiBkb2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NjaWQn OiBzY2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NpZCc6IHNpZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICdnaWQnOiBnaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAnZGlkJzogZGlkCisgICAgICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisg ICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAg ICAgICAgaW5mbz0iTm90aGluZyB0byB1cGRhdGUiLAorICAgICAgICAgICAg ICAgICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgICAgICdpZCc6 IGRvaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2NpZCc6IHNjaWQs CisgICAgICAgICAgICAgICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAgJ2dpZCc6IGdpZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICdkaWQnOiBkaWQKKyAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9u IGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRp b24KKyAgICBkZWYgbXNxbChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBk b2lkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyB0aGUg bW9kaWZpZWQgU1FMLgorCisgICAgICAgIEV4cGVjdGVkIFBhcmFtZXRlcnM6 CisgICAgICAgICAgICBuYW1lOiBEb21haW4gTmFtZQorICAgICAgICAgICAg b3duZXI6IE93bmVyIE5hbWUKKyAgICAgICAgICAgIGJhc2Vuc3A6IFNjaGVt YSBOYW1lCisgICAgICAgICAgICBiYXNldHlwZTogRG9tYWluIEJhc2UgVHlw ZQorCisgICAgICAgIEV4cGVjdGVkIFJlc3BvbnNlOgorICAgICAgICAgICAg U1FMIHN0YXRlbWVudHMgdG8gY3JlYXRlL3VwZGF0ZSB0aGUgRG9tYWluLgor ICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuYXJncworICAg ICAgICBpZiBkb2lkIGlzIE5vbmU6CisgICAgICAgICAgICByZXF1aXJlZF9h cmdzID0gWworICAgICAgICAgICAgICAgICduYW1lJywKKyAgICAgICAgICAg ICAgICAnb3duZXInLAorICAgICAgICAgICAgICAgICdiYXNlbnNwJywKKyAg ICAgICAgICAgICAgICAnYmFzZXR5cGUnCisgICAgICAgICAgICBdCisKKwor ICAgICAgICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9hcmdzOgorICAgICAg ICAgICAgICAgIGlmIGFyZyBub3QgaW4gZGF0YToKKyAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg ICAgICAgICAgICAgIHN0YXR1cz00MTAsCisgICAgICAgICAgICAgICAgICAg ICAgICBzdWNjZXNzPTAsCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJv cm1zZz1nZXR0ZXh0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJD b3VsZG4ndCBmaW5kIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgKCVzKS4iICUg YXJnCisgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAg ICAgICAgICkKKyAgICAgICAgU1FMID0gc2VsZi5nZXRTUUwoZ2lkLCBzaWQs IGRhdGEsIHNjaWQsIGRvaWQpCisgICAgICAgIGlmIGlzaW5zdGFuY2UoU1FM LCBzdHIpIGFuZCBTUUwgYW5kIFNRTC5zdHJpcCgnXG4nKSBhbmQgU1FMLnN0 cmlwKCcgJyk6CisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3Bv bnNlKAorICAgICAgICAgICAgICAgICAgICBkYXRhPVNRTCwKKyAgICAgICAg ICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICAgICAp CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gU1FMCisKKwor ICAgIGRlZiBnZXRTUUwoc2VsZiwgZ2lkLCBzaWQsIGRhdGEsIHNjaWQsIGRv aWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBHZW5yYXRlcyB0aGUg U1FMIHN0YXRlbWVudHMgdG8gY3JlYXRlL3VwZGF0ZSB0aGUgRG9tYWluLgor ICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgZG9p ZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBTUUwgPSByZW5kZXJf dGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3Bl cnRpZXMuc3FsJ10pLCBzY2lkPXNjaWQsIGRvaWQ9ZG9pZCkKKyAgICAgICAg ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qo U1FMKQorCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlLCBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICAgICAgb2xkX2Rh dGEgPSByZXNbJ3Jvd3MnXVswXQorICAgICAgICAgICAgICAgIFNRTCA9IHJl bmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgIi8iLmpvaW4o W3NlbGYudGVtcGxhdGVfcGF0aCwndXBkYXRlLnNxbCddKSwKKyAgICAgICAg ICAgICAgICAgICAgZGF0YT1kYXRhLCBvX2RhdGE9b2xkX2RhdGEsIGNvbm49 c2VsZi5jb25uLCBxdElkZW50PXNlbGYucXRJZGVudAorICAgICAgICAgICAg ICAgICAgICApCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLCAnY3JlYXRlLnNxbCddKSwgZGF0YT1kYXRhLCBjb25uPXNlbGYu Y29ubiwgcXRJZGVudD1zZWxmLnF0SWRlbnQpCisgICAgICAgICAgICByZXR1 cm4gVHJ1ZSxTUUwKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6 CisgICAgICAgICAgICByZXR1cm4gRmFsc2UsIGUKKworRG9tYWluVmlldy5y ZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvX19pbml0 X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbi1jb25zdHJh aW50cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi43ZjA1NzViCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvX19pbml0X18ucHkK QEAgLTAsMCArMSwzOTAgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMg Q29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxv cG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVy IHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCitpbXBvcnQganNvbgorZnJvbSBmbGFzayBpbXBvcnQg cmVuZGVyX3RlbXBsYXRlLCBtYWtlX3Jlc3BvbnNlLCByZXF1ZXN0LCBqc29u aWZ5Citmcm9tIGZsYXNrLmV4dC5iYWJlbCBpbXBvcnQgZ2V0dGV4dAorZnJv bSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25z ZSwgXAorICAgIG1ha2VfcmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgaW50 ZXJuYWxfc2VydmVyX2Vycm9yCitmcm9tIHBnYWRtaW4uYnJvd3Nlci51dGls cyBpbXBvcnQgTm9kZVZpZXcKK2Zyb20gcGdhZG1pbi5icm93c2VyLmNvbGxl Y3Rpb24gaW1wb3J0IENvbGxlY3Rpb25Ob2RlTW9kdWxlCitpbXBvcnQgcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu c2NoZW1hcy5kb21haW5zIGFzIGRvbWFpbnMKK2Zyb20gcGdhZG1pbi51dGls cy5hamF4IGltcG9ydCBwcmVjb25kaXRpb25fcmVxdWlyZWQKK2Zyb20gcGdh ZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gY29u ZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgorZnJvbSBmdW5jdG9vbHMg aW1wb3J0IHdyYXBzCisKK2NsYXNzIERvbWFpbkNvbnN0cmFpbnRNb2R1bGUo Q29sbGVjdGlvbk5vZGVNb2R1bGUpOgorICAgIE5PREVfVFlQRSA9ICdkb21h aW4tY29uc3RyYWludHMnCisgICAgQ09MTEVDVElPTl9MQUJFTCA9IGdldHRl eHQoIkRvbWFpbiBDb25zdHJhaW50cyIpCisKKyAgICBkZWYgX19pbml0X18o c2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5taW5fdmVy ID0gTm9uZQorICAgICAgICBzZWxmLm1heF92ZXIgPSBOb25lCisgICAgICAg IHN1cGVyKERvbWFpbkNvbnN0cmFpbnRNb2R1bGUsIHNlbGYpLl9faW5pdF9f KCphcmdzLCAqKmt3YXJncykKKworICAgIGRlZiBnZXRfbm9kZXMoc2VsZiwg Z2lkLCBzaWQsIGRpZCwgc2NpZCwgZG9pZCk6CisgICAgICAgICIiIgorICAg ICAgICBHZW5lcmF0ZSB0aGUgY29sbGVjdGlvbiBub2RlCisgICAgICAgICIi IgorICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVj dGlvbl9ub2RlKGRvaWQpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbm9k ZV9pbm9kZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIE92ZXJyaWRl IHRoaXMgcHJvcGVydHkgdG8gbWFrZSB0aGUgbm9kZSBhcyBsZWFmIG5vZGUu CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gRmFsc2UKKworCisgICAg QHByb3BlcnR5CisgICAgZGVmIHNjcmlwdF9sb2FkKHNlbGYpOgorICAgICAg ICAiIiIKKyAgICAgICAgTG9hZCB0aGUgbW9kdWxlIHNjcmlwdCBmb3IgZGF0 YWJhc2UsIHdoZW4gYW55IG9mIHRoZSBkYXRhYmFzZSBub2RlIGlzCisgICAg ICAgIGluaXRpYWxpemVkLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJu IGRvbWFpbnMuRG9tYWluTW9kdWxlLk5PREVfVFlQRQorCisKK2JsdWVwcmlu dCA9IERvbWFpbkNvbnN0cmFpbnRNb2R1bGUoX19uYW1lX18pCisKKworY2xh c3MgRG9tYWluQ29uc3RyYWludFZpZXcoTm9kZVZpZXcpOgorICAgIG5vZGVf dHlwZSA9IGJsdWVwcmludC5ub2RlX3R5cGUKKworICAgIHBhcmVudF9pZHMg PSBbCisgICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ2dpZCd9 LAorICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdzaWQnfSwK KyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZGlkJ30sCisg ICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3NjaWQnfSwKKyAg ICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZG9pZCd9CisgICAg ICAgICAgICBdCisgICAgaWRzID0gWworICAgICAgICAgICAgeyd0eXBlJzog J2ludCcsICdpZCc6ICdjb2lkJ30KKyAgICAgICAgICAgIF0KKworICAgIG9w ZXJhdGlvbnMgPSBkaWN0KHsKKyAgICAgICAgJ29iaic6IFsKKyAgICAgICAg ICAgIHsnZ2V0JzogJ3Byb3BlcnRpZXMnLCAnZGVsZXRlJzogJ2RlbGV0ZScs ICdwdXQnOiAndXBkYXRlJ30sCisgICAgICAgICAgICB7J2dldCc6ICdsaXN0 JywgJ3Bvc3QnOiAnY3JlYXRlJ30KKyAgICAgICAgXSwKKyAgICAgICAgJ2Rl bGV0ZSc6IFt7J2RlbGV0ZSc6ICdkZWxldGUnfV0sCisgICAgICAgICdjaGls ZHJlbic6IFt7J2dldCc6ICdjaGlsZHJlbid9XSwKKyAgICAgICAgJ25vZGVz JzogW3snZ2V0JzogJ25vZGUnfSwgeydnZXQnOiAnbm9kZXMnfV0sCisgICAg ICAgICdzcWwnOiBbeydnZXQnOiAnc3FsJ31dLAorICAgICAgICAnbXNxbCc6 IFt7J2dldCc6ICdtc3FsJ30sIHsnZ2V0JzogJ21zcWwnfV0sCisgICAgICAg ICdzdGF0cyc6IFt7J2dldCc6ICdzdGF0aXN0aWNzJ31dLAorICAgICAgICAn ZGVwZW5kZW5jeSc6IFt7J2dldCc6ICdkZXBlbmRlbmNpZXMnfV0sCisgICAg ICAgICdkZXBlbmRlbnQnOiBbeydnZXQnOiAnZGVwZW5kZW50cyd9XSwKKyAg ICAgICAgJ21vZHVsZS5qcyc6IFt7fSwge30sIHsnZ2V0JzogJ21vZHVsZV9q cyd9XQorICAgIH0pCisKKyAgICBkZWYgbW9kdWxlX2pzKHNlbGYpOgorICAg ICAgICAiIiIKKyAgICAgICAgVGhpcyBwcm9wZXJ0eSBkZWZpbmVzIChpZiBq YXZhc2NyaXB0KSBleGlzdHMgZm9yIHRoaXMgbm9kZS4KKyAgICAgICAgT3Zl cnJpZGUgdGhpcyBwcm9wZXJ0eSBmb3IgeW91ciBvd24gbG9naWMuCisgICAg ICAgICIiIgorICAgICAgICByZXR1cm4gbWFrZV9yZXNwb25zZSgKKyAgICAg ICAgICAgICAgICByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAg ICAgICJkb21haW4tY29uc3RyYWludHMvanMvZG9tYWluLWNvbnN0cmFpbnRz LmpzIiwKKyAgICAgICAgICAgICAgICAgICAgXz1nZXR0ZXh0CisgICAgICAg ICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgMjAwLCB7J0NvbnRl bnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQnfQorICAgICAg ICAgICAgICAgICkKKworICAgIGRlZiBjaGVja19wcmVjb25kaXRpb24oZik6 CisgICAgICAgICIiIgorICAgICAgICBXb3JrcyBhcyBhIGRlY29yYXRvci4K KyAgICAgICAgQ2hlY2tzIGRhdGFiYXNlIGNvbm5lY3Rpb24gc3RhdHVzLgor ICAgICAgICBBdHRhY2ggY29ubmVjdGlvbiBvYmplY3QgYW5kIHRlbXBsYXRl IHBhdGguCisgICAgICAgICIiIgorICAgICAgICBAd3JhcHMoZikKKyAgICAg ICAgZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgICMg SGVyZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dhcmdzIHdpbGwgaG9s ZCBnaWQsc2lkLGRpZAorICAgICAgICAgICAgc2VsZiA9IGFyZ3NbMF0KKyAg ICAgICAgICAgIGRyaXZlciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklW RVIpCisgICAgICAgICAgICBzZWxmLm1hbmFnZXIgPSBkcml2ZXIuY29ubmVj dGlvbl9tYW5hZ2VyKGt3YXJnc1snc2lkJ10pCisgICAgICAgICAgICBzZWxm LmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9a3dhcmdzWydk aWQnXSkKKyAgICAgICAgICAgIHNlbGYucXRJZGVudCA9IGRyaXZlci5xdElk ZW50CisKKyAgICAgICAgICAgICMgSWYgREIgbm90IGNvbm5lY3RlZCB0aGVu IHJldHVybiBlcnJvciB0byBicm93c2VyCisgICAgICAgICAgICBpZiBub3Qg c2VsZi5jb25uLmNvbm5lY3RlZCgpOgorICAgICAgICAgICAgICAgIHJldHVy biBwcmVjb25kaXRpb25fcmVxdWlyZWQoCisgICAgICAgICAgICAgICAgICAg IGdldHRleHQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbm5l Y3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIKKyAgICAgICAg ICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkKKworICAgICAgICAg ICAgdmVyID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24KKyAgICAgICAgICAgIHNl cnZlcl90eXBlID0gc2VsZi5tYW5hZ2VyLnNlcnZlcl90eXBlCisKKyAgICAg ICAgICAgICMgd2Ugd2lsbCBzZXQgdGVtcGxhdGUgcGF0aCBmb3Igc3FsIHNj cmlwdHMKKyAgICAgICAgICAgIGlmIHZlciA+PSA5MDEwMDoKKyAgICAgICAg ICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGggPSAnZG9tYWluLWNvbnN0cmFp bnRzL3NxbC85LjFfcGx1cycKKyAgICAgICAgICAgIHJldHVybiBmKCphcmdz LCAqKmt3YXJncykKKworICAgICAgICByZXR1cm4gd3JhcAorCisKKyAgICBA Y2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGxpc3Qoc2VsZiwgZ2lkLCBz aWQsIGRpZCwgc2NpZCwgZG9pZCk6CisgICAgICAgICIiIgorICAgICAgICBM aXN0IHRoZSBEb21haW4gQ29uc3RyYWludHMuCisgICAgICAgICIiIgorICAg ICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVt cGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLCBkb2lkPWRvaWQpCisg ICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChT UUwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJl dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAg ICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBy ZXNwb25zZT1yZXNbJ3Jvd3MnXSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9 MjAwCisgICAgICAgICAgICAgICAgKQorCisKKyAgICBAY2hlY2tfcHJlY29u ZGl0aW9uCisgICAgZGVmIG5vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNj aWQsIGRvaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBhbGwg dGhlIERvbWFpbiBDb25zdHJhaW50cy4KKyAgICAgICAgIiIiCisgICAgICAg IHJlcyA9IFtdCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIu am9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSks IGRvaWQ9ZG9pZCkKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25u LmV4ZWN1dGVfMmRhcnJheShTUUwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1 czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9cnNldCkKKworICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jv d3MnXToKKyAgICAgICAgICAgIHJlcy5hcHBlbmQoCisgICAgICAgICAgICAg ICAgICAgIHNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgK KyAgICAgICAgICAgICAgICAgICAgICAgIHJvd1snb2lkJ10sCisgICAgICAg ICAgICAgICAgICAgICAgICByb3dbJ2Nvbm5hbWUnXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgIGljb249Imljb24tZG9tYWluLWNvbnN0cmFpbnRzIgor ICAgICAgICAgICAgICAgICAgICApKQorCisgICAgICAgIHJldHVybiBtYWtl X2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgZGF0YT1yZXMsCisg ICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkK KworCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBwcm9wZXJ0 aWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRvaWQsIGNvaWQpOgor ICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyB0aGUgRG9tYWluIENvbnN0 cmFpbnRzIHByb3BlcnR5LgorICAgICAgICAiIiIKKworICAgICAgICBTUUwg PSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0 aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLGRvaWQ9ZG9pZCwgY29pZD1jb2lkKQor ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qo U1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAg ICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICAgICAg cmVzcG9uc2U9cmVzWydyb3dzJ11bMF0sCisgICAgICAgICAgICAgICAgc3Rh dHVzPTIwMAorICAgICAgICAgICAgICAgICkKKworCisgICAgQGNoZWNrX3By ZWNvbmRpdGlvbgorICAgIGRlZiBjcmVhdGUoc2VsZiwgZ2lkLCBzaWQsIGRp ZCwgc2NpZCwgZG9pZCk6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGVz IG5ldyB0aGUgRG9tYWluIENvbnN0cmFpbnRzLgorCisgICAgICAgIEV4cGVj dGVkIFBhcmFtZXRlcnM6CisgICAgICAgICAgICBjb25uYW1lOiBDb25zdHJh aW50cyBOYW1lCisgICAgICAgICAgICBjb25zcmM6IENvbnN0cmFpbnRzIENo ZWNrCisKKyAgICAgICAgRXhwZWN0ZWQgUmVzcG9uc2U6CisgICAgICAgICAg ICBEb21haW4gQ29uc3RyYWludCBvYmplY3QgaW4ganNvbiBmb3JtYXQuCisg ICAgICAgICIiIgorCisgICAgICAgIGRhdGEgPSByZXF1ZXN0LmZvcm0gaWYg cmVxdWVzdC5mb3JtIGVsc2UganNvbi5sb2FkcyhyZXF1ZXN0LmRhdGEuZGVj b2RlKCkpCisgICAgICAgIHJlcXVpcmVkX2FyZ3MgPSBbCisgICAgICAgICAg ICAnY29ubmFtZScsCisgICAgICAgICAgICAnY29uc3JjJworICAgICAgICBd CisKKyAgICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9hcmdzOgorICAgICAg ICAgICAgaWYgYXJnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgIHJl dHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAg IHN0YXR1cz00MTAsCisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MCwK KyAgICAgICAgICAgICAgICAgICAgZXJyb3Jtc2c9Z2V0dGV4dCgKKyAgICAg ICAgICAgICAgICAgICAgICAgICJDb3VsZG4ndCBmaW5kIHRoZSByZXF1aXJl ZCBwYXJhbWV0ZXIgKCVzKS4iICUgYXJnCisgICAgICAgICAgICAgICAgICAg ICkKKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgdHJ5OgorICAgICAg ICAgICAgIyBHZXQgU2NoZW1hIGFuZCBEb21haW4uCisgICAgICAgICAgICBT UUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVf cGF0aCwgJ2dldF9kb21haW4uc3FsJ10pLCBkb2lkPWRvaWQpCisgICAgICAg ICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXko U1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPW5h bWUpCisKKyAgICAgICAgICAgIGRvbWFpbiwgc2NoZW1hID0gcmVzWydyb3dz J11bMF0KKworICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIv Ii5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdjcmVhdGUuc3FsJ10pLCBk YXRhPWRhdGEsIGRvbWFpbj1kb21haW4sIHNjaGVtYT1zY2hlbWEsIHF0SWRl bnQ9c2VsZi5xdElkZW50KQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBz ZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgIyBH ZXQgdGhlIHJlY2VudGx5IGFkZGVkIGNvbnN0cmFpbnRzIG9pZAorICAgICAg ICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRl bXBsYXRlX3BhdGgsICdnZXRfb2lkLnNxbCddKSwgZG9pZD1kb2lkLCBuYW1l PWRhdGFbJ2Nvbm5hbWUnXSkKKyAgICAgICAgICAgIHN0YXR1cywgY29pZCA9 IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCisgICAgICAgICAgICBp ZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9ZG9pZCkKKworICAgICAgICAgICAg cmV0dXJuIGpzb25pZnkoCisgICAgICAgICAgICAgICAgbm9kZT1zZWxmLmJs dWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAg ICAgICAgIGNvaWQsCisgICAgICAgICAgICAgICAgICAgIGRhdGFbJ2Nvbm5h bWUnXSwKKyAgICAgICAgICAgICAgICAgICAgaWNvbj0iaWNvbi1kb21haW4i CisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICBl eGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworCisgICAg QGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lk LCBzaWQsIGRpZCwgc2NpZCwgZG9pZCwgY29pZCk6CisgICAgICAgICIiIgor ICAgICAgICBEcm9wIHRoZSBEb21hbiBDb25zdHJhaW50cy4KKyAgICAgICAg IiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90 ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVy dGllcy5zcWwnXSksIGRvaWQ9ZG9pZCwgY29pZD1jb2lkKQorICAgICAgICAg ICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkK KworICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykK KyAgICAgICAgICAgIGRhdGEgPSByZXNbJ3Jvd3MnXVswXQorCisgICAgICAg ICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVt cGxhdGVfcGF0aCwgJ2RlbGV0ZS5zcWwnXSksIGRhdGE9ZGF0YSkKKyAgICAg ICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFy KFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1y ZXMpCisKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2Uo CisgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAg IGluZm89Z2V0dGV4dCgiRG9tYWluIGRyb3BwZWQiKSwKKyAgICAgICAgICAg ICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgJ2lkJzogZG9pZCwK KyAgICAgICAgICAgICAgICAgICAgJ3NjaWQnOiBzY2lkLAorICAgICAgICAg ICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAgICAgICAn Z2lkJzogZ2lkLAorICAgICAgICAgICAgICAgICAgICAnZGlkJzogZGlkCisg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKQorCisgICAgICAgIGV4 Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisKKyAgICBA Y2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHVwZGF0ZShzZWxmLCBnaWQs IHNpZCwgZGlkLCBzY2lkLCBkb2lkLCBjb2lkKToKKyAgICAgICAgIiIiCisg ICAgICAgIFVwZGF0ZSB0aGUgRG9tYWluIENvbnN0cmFpbnRzLgorICAgICAg ICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0 LmZvcm0gZWxzZSBqc29uLmxvYWRzKHJlcXVlc3QuZGF0YS5kZWNvZGUoKSkK KworICAgICAgICBTUUwgPSBzZWxmLmdldFNRTChnaWQsIHNpZCwgZGF0YSwg c2NpZCwgZG9pZCwgY29pZCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg aWYgU1FMIGFuZCBTUUwuc3RyaXAoJ1xuJykgYW5kIFNRTC5zdHJpcCgnICcp OgorICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4 ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgICAgIHJl dHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAg IHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICAgICAgaW5mbz0iRG9tYWlu IHVwZGF0ZWQiLAorICAgICAgICAgICAgICAgICAgICBkYXRhPXsKKyAgICAg ICAgICAgICAgICAgICAgICAgICdpZCc6IGRvaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAnc2NpZCc6IHNjaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2dp ZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdkaWQnOiBkaWQK KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICkKKyAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2Vf anNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0x LAorICAgICAgICAgICAgICAgICAgICBpbmZvPSJOb3RoaW5nIHRvIHVwZGF0 ZSIsCisgICAgICAgICAgICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAg ICAgICAgICAgICAgJ2lkJzogZG9pZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICdzY2lkJzogc2NpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdz aWQnOiBzaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnZ2lkJzogZ2lk LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RpZCc6IGRpZAorICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKQorCisgICAgICAg IGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisKKyAg ICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIG1zcWwoc2VsZiwgZ2lk LCBzaWQsIGRpZCwgc2NpZCwgZG9pZD1Ob25lKToKKyAgICAgICAgIiIiCisg ICAgICAgIFJldHVybnMgdGhlIG1vZGlmaWVkIFNRTC4KKworICAgICAgICBF eHBlY3RlZCBQYXJhbWV0ZXJzOgorICAgICAgICAgICAgY29ubmFtZTogQ29u c3RyYWludHMgTmFtZQorICAgICAgICAgICAgY29uc3JjOiBDb25zdHJhaW50 cyBDaGVjaworCisgICAgICAgIEV4cGVjdGVkIFJlc3BvbnNlOgorICAgICAg ICAgICAgRG9tYWluIENvbnN0cmFpbnQgb2JqZWN0IGluIGpzb24gZm9ybWF0 LgorICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuYXJncwor ICAgICAgICBpZiBkb2lkIGlzIE5vbmU6CisgICAgICAgICAgICByZXF1aXJl ZF9hcmdzID0gWworICAgICAgICAgICAgICAgICdjb25uYW1lJywKKyAgICAg ICAgICAgICAgICAnY29uc3JjJworICAgICAgICAgICAgXQorCisgICAgICAg ICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICAg ICAgaWYgYXJnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAg ICAgICAgc3RhdHVzPTQxMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1 Y2Nlc3M9MCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ybXNnPWdl dHRleHQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvdWxkbid0 IGZpbmQgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAoJXMpLiIgJSBhcmcKKyAg ICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAg KQorICAgICAgICBTUUwgPSBzZWxmLmdldFNRTChnaWQsIHNpZCwgZGF0YSwg c2NpZCwgZG9pZCkKKyAgICAgICAgaWYgaXNpbnN0YW5jZShTUUwsIHN0cikg YW5kIFNRTCBhbmQgU1FMLnN0cmlwKCdcbicpIGFuZCBTUUwuc3RyaXAoJyAn KToKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisg ICAgICAgICAgICAgICAgICAgIGRhdGE9U1FMLAorICAgICAgICAgICAgICAg ICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAg ICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBTUUwKKworCisgICAgZGVm IGdldFNRTChzZWxmLCBnaWQsIHNpZCwgZGF0YSwgc2NpZCwgZG9pZCwgY29p ZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIEdlbnJhdGVzIHRoZSBT UUwgc3RhdGVtZW50cyB0byBjcmVhdGUvdXBkYXRlIHRoZSBEb21haW4gQ29u c3RyYWludC4KKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAg ICAgIGlmIGNvaWQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3Bh dGgsICdwcm9wZXJ0aWVzLnNxbCddKSwgZG9pZD1kb2lkLCBjb2lkPWNvaWQp CisgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV9kaWN0KFNRTCkKKworICAgICAgICAgICAgICAgIGlmIG5vdCBzdGF0 dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAgICAgIG9sZF9k YXRhID0gcmVzWydyb3dzJ11bMF0KKworICAgICAgICAgICAgICAgIFNRTCA9 IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgIi8iLmpv aW4oW3NlbGYudGVtcGxhdGVfcGF0aCwndXBkYXRlLnNxbCddKSwKKyAgICAg ICAgICAgICAgICAgICAgZGF0YT1kYXRhLCBvX2RhdGE9b2xkX2RhdGEsIGNv bm49c2VsZi5jb25uCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBs YXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdjcmVhdGUuc3Fs J10pLCBkYXRhPWRhdGEsIGNvbm49c2VsZi5jb25uKQorICAgICAgICAgICAg cmV0dXJuIFNRTAorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Cisg ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPXN0cihlKSkKKworRG9tYWluQ29uc3RyYWludFZpZXcucmVnaXN0ZXJf bm9kZV92aWV3KGJsdWVwcmludCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3N0YXRpYy9pbWcvY29s bC1kb21haW4tY29uc3RyYWludHMucG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9t YWlucy9kb21haW4tY29uc3RyYWludHMvc3RhdGljL2ltZy9jb2xsLWRvbWFp bi1jb25zdHJhaW50cy5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDYy ZTEzNzA1YzUwZTZjMGNmOGYxOWQ2ODAwNTNlODY0M2UyODc1MQpHSVQgYmlu YXJ5IHBhdGNoCmxpdGVyYWwgMzE0CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEw dnBeMHdCITczPyQjKWVGUEZ2M0dmTVYxPTJUck84NDd7SmxgfHRgUXBhcwp6 bjxoUytsPXJNWT5SR1Bxdmx5ZGl6UkomPkJgT20jVn1SLXlPTT83QDg2Mk03 TkNSPj4zcF5yPWZ3VHUweVBlRm8KejEyVEwpVF52ST10fHVvUFV8fFpGPHRn YUhHKlFzUSE/bSZUcT0/M21DdX1KI0R4M3hAbU19fV5pRT01TklXWG5rCnpr cG5DNGFpJWE+QDtHZzc9dXVtcz05YklLPUVnZH4odXMtM2dASXYwMmdmc0te SlBeKWdIPW1oQlQ3O2RPSCE/cAp6aSZCOVVnT1AhdWZ2JXlFdTdQMlFrJTUo b3Y2WUY1d3Q9YVlmcX0oTFJYRyQ1eCVueFhYX1hLUzI5e3RBQWt8Z3wKWFcp S2FocmlaUXBZR0NrbV4+YlAwbCtYa0t5eVJVfQoKbGl0ZXJhbCAwCkhjbVY/ ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9k b21haW4tY29uc3RyYWludHMvc3RhdGljL2ltZy9kb21haW4tY29uc3RyYWlu dHMtYmFkLnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9tYWluLWNv bnN0cmFpbnRzL3N0YXRpYy9pbWcvZG9tYWluLWNvbnN0cmFpbnRzLWJhZC5w bmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJhMDQ1YjhmYWZkYzA4NjQw ZDUzYjJhODZiMWRjYWJjYjBmZTBmZApHSVQgYmluYXJ5IHBhdGNoCmxpdGVy YWwgNTc5CnpjbVYtSjA9KWYrUCk8aDszS3xMazAwMGUxTkpMVHEwMDBtRzAw MG1PMHt7UjNDQGx8RDAwMDAxYjVjaF8wSXRwKQp6PT5QeCRBVyUkSE1SMVo5 I1EqQFJFSG1kSEFtPDw7PXBgbFREbDYkTEUxNSR8bk02eXhKMyM2JkZ9XilR eDxwM24KekgjaDR6SUspT3UjNzlmVE1AI0hKS2tZKDg/TCRRRUxgQ2pKTWVh c00/bmcoO1FCPnxvTmJYMlU/bitBVU9IMSFlCnpPeiV4aT9AZG5jUEVYS1JT P15DeiNhbXRRUUJtK3hRdChxI0BLYVJxUjg7VSlScTw5PEBtRSpZVnEoYH5W KTB2Qgp6K0dTPClWUFclUFYlPSRKYWchSkhYbFY2cVpTYCgkX0h1SDNwZDxF bmNKX0M3ZjFAWFdxYkd1PkR1PTh1aHBqSikKenZONGFnSDxpM1VyTVlnV3lL PGV5TjFWcStwMnRiQSFHNUMzUE8hbSRxfEh2ViNEJH5KT3N2O2Z0a19xdi1D ZVFYCnpUKmNDJSRKMzs+PDZfTCR0PEtyOCkhd3xyQG8+Y1BhbTRYKit+bWlg Xkt7R2xjfHhoPE5kTiE8MGQhSk1Rdmc4Ygp6KmslOSMwMENsNE0/P1VLMXN6 QkwwMDBTYU5MaDBMMDFGY1UwMUZjVjBHZ1pfMDAwMDdiVipHYDJpcGYzNDxS T2cKeihwNzJ6MDA1NmtMX3QmLSkxezJaM2NecVQxbURFb2R5NkladUNXJnMx ViFgXjR9JGdvZT8oMThAYjJEYipqKncxCnolNE0ocDsmWnc/OVphS0F4byp4 O0NPWH08OGZ6anFLUnZeMmtGMXNweW1ZSE1qRTJtN0hsfGF+ZW1DTndHOChp Pwp6OEkjYGAoa2lCckViaH0oUW44VEwyKyR9YjNIbl43cGBLNlIjXzZ6UTIk P3V4O2xYQllCPmhrTkBDJWc/NHZWQk0KUiRiYkw8MDAyb3ZQREhMa1YxbWlu ME9TQXcKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3N0YXRp Yy9pbWcvZG9tYWluLWNvbnN0cmFpbnRzLnBuZyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3N0YXRpYy9pbWcvZG9tYWlu LWNvbnN0cmFpbnRzLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDFk MmEwNjFjNzk0ODE2OGQ3YjFjMjQ3NGQ3NjliMzE3MDlmMWNmCkdJVCBiaW5h cnkgcGF0Y2gKbGl0ZXJhbCA0MDYKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2 cF4wd0IhNjM/d3lsYEdiS31YQEYwTkUwOHtWWTJuaEhjXmVNYVUlamBkCnph SSQjK0h1RUtDe3BLRVpLWW4+aCgrYUlNSF5NakdqY3MzfWY5Q3F5dCZmdng3 QVQqKXh2XmBMO2hme0hpX2lQNAp6eGdLJSZWP3E2NV80Yyo7OH1HJTtKTU1Z PFNMTV9fX000Qmk5e0VeITxZVXBYJm4xZ2FgN1BnRndFa2RTISgjUDwKek5u JkBOOU9xaUsoaSYoblZAWiUtRm9WT2g4KS1sZVhNc20jRl84OEVXNER2cGMw ZmppcjtCNVYjTzM2SzFzbiFPCnpoUlZmfTVqU3NHUEg/Zjx4dWRjfHZCb1k8 JjVjYj11VEdCOXYxODdKNElJK2l0NT9qaG44RntUc0NaSVdSYWQkRAp6ZzEq SzlXJWN1Mk5zRChoRWZWVCMqd20jcFl3O0QwNCswRSh1UUU/c2BaNipaWG9x VHZZZVkjKFZvOW8xYSMxUmYKelZsWGw9R3wpOVAobHN5KUYqMnwrRn01LT4o S2F4KEdCQnsxc1Zhd31BdlpySUdwIVAkIU4zeCUwaUBjPnp6bXx7ClQpYiE5 YktuKUNAdTZ7MS1vRCFNPD00T15rCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEK CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbi1j b25zdHJhaW50cy90ZW1wbGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRzL2Nzcy9k b21haW4tY29uc3RyYWludHMuY3NzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlu cy9kb21haW4tY29uc3RyYWludHMvdGVtcGxhdGVzL2RvbWFpbi1jb25zdHJh aW50cy9jc3MvZG9tYWluLWNvbnN0cmFpbnRzLmNzcwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi42OGNkNjIyCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWlu dHMvdGVtcGxhdGVzL2RvbWFpbi1jb25zdHJhaW50cy9jc3MvZG9tYWluLWNv bnN0cmFpbnRzLmNzcwpAQCAtMCwwICsxLDkgQEAKKy5wZy1pY29uLWRvbWFp bi1jb25zdHJhaW50cyB7CisgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgne3sg dXJsX2ZvcignTk9ERS1kb21haW4tY29uc3RyYWludHMuc3RhdGljJywgZmls ZW5hbWU9J2ltZy9kb21haW4tY29uc3RyYWludHMucG5nJykgfX0nKSAhaW1w b3J0YW50OworICBib3JkZXItcmFkaXVzOiAxMHB4OworICBiYWNrZ3JvdW5k LXJlcGVhdDogbm8tcmVwZWF0OworICBhbGlnbi1jb250ZW50OiBjZW50ZXI7 CisgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CisgIGhlaWdodDogMS4zZW07 Cit9CisKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9t YWluLWNvbnN0cmFpbnRzL3RlbXBsYXRlcy9kb21haW4tY29uc3RyYWludHMv anMvZG9tYWluLWNvbnN0cmFpbnRzLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9t YWlucy9kb21haW4tY29uc3RyYWludHMvdGVtcGxhdGVzL2RvbWFpbi1jb25z dHJhaW50cy9qcy9kb21haW4tY29uc3RyYWludHMuanMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmIzZGU3ZAotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFp bnRzL3RlbXBsYXRlcy9kb21haW4tY29uc3RyYWludHMvanMvZG9tYWluLWNv bnN0cmFpbnRzLmpzCkBAIC0wLDAgKzEsOTUgQEAKK2RlZmluZSgKKyAgICAg ICAgWydqcXVlcnknLCAndW5kZXJzY29yZScsICd1bmRlcnNjb3JlLnN0cmlu ZycsICdwZ2FkbWluJywgJ3BnYWRtaW4uYnJvd3NlcicsICdhbGVydGlmeScs ICdwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlvbiddLAorZnVuY3Rpb24oJCwg XywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBhbGVydGlmeSkgeworCisgIGlm ICghcGdCcm93c2VyLk5vZGVzWydjb2xsLWRvbWFpbi1jb25zdHJhaW50cydd KSB7CisgICAgdmFyIGRhdGFiYXNlcyA9IHBnQWRtaW4uQnJvd3Nlci5Ob2Rl c1snY29sbC1kb21haW4tY29uc3RyYWludHMnXSA9CisgICAgICBwZ0FkbWlu LkJyb3dzZXIuQ29sbGVjdGlvbi5leHRlbmQoeworICAgICAgICBub2RlOiAn ZG9tYWluLWNvbnN0cmFpbnRzJywKKyAgICAgICAgbGFiZWw6ICd7eyBfKCdE b21haW4gQ29uc3RyYWludHMnKSB9fScsCisgICAgICAgIHR5cGU6ICdjb2xs LWRvbWFpbi1jb25zdHJhaW50cycKKyAgICAgIH0pOworICB9OworCisgIGlm ICghcGdCcm93c2VyLk5vZGVzWydkb21haW4tY29uc3RyYWludHMnXSkgewor ICAgIHBnQWRtaW4uQnJvd3Nlci5Ob2Rlc1snZG9tYWluLWNvbnN0cmFpbnRz J10gPSBwZ0Jyb3dzZXIuTm9kZS5leHRlbmQoeworICAgICAgdHlwZTogJ2Rv bWFpbi1jb25zdHJhaW50cycsCisgICAgICBsYWJlbDogJ3t7IF8oJ0RvbWFp biBDb25zdHJhaW50cycpIH19JywKKyAgICAgIGNvbGxlY3Rpb25fdHlwZTog J2NvbGwtZG9tYWluLWNvbnN0cmFpbnRzJywKKyAgICAgIGhhc1NRTDogdHJ1 ZSwKKyAgICAgIHBhcmVudF90eXBlOiBbJ2RvbWFpbiddLAorICAgICAgSW5p dDogZnVuY3Rpb24oKSB7CisgICAgICAgIC8qIEF2b2lkIG11bGl0cGxlIHJl Z2lzdHJhdGlvbiBvZiBtZW51cyAqLworICAgICAgICBpZiAodGhpcy5pbml0 aWFsaXplZCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlz LmluaXRpYWxpemVkID0gdHJ1ZTsKKworICAgICAgICBwZ0Jyb3dzZXIuYWRk X21lbnVzKFt7CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9kb21haW5fb25f Y29sbCcsIG5vZGU6ICdjb2xsLWRvbWFpbi1jb25zdHJhaW50cycsIG1vZHVs ZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250 ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAg ICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6 ICd7eyBfKCdEb21haW4gQ29uc3RyYWludC4uLicpIH19JywKKyAgICAgICAg ICBpY29uOiAnd2NUYWJJY29uIGljb24tZG9tYWluLWNvbnN0cmFpbnRzJywg ZGF0YToge2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNrOiB0cnVlfSwKKyAgICAg ICAgICBlbmFibGU6ICdjYW5DcmVhdGUnCisgICAgICAgIH0seworICAgICAg ICAgIG5hbWU6ICdjcmVhdGVfZG9tYWluLWNvbnN0cmFpbnRzJywgbm9kZTog J2RvbWFpbi1jb25zdHJhaW50cycsIG1vZHVsZTogdGhpcywKKyAgICAgICAg ICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAn c2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdj cmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdEb21haW4gQ29u c3RyYWludC4uLicpIH19JywKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29u IGljb24tZG9tYWluLWNvbnN0cmFpbnRzJywgZGF0YToge2FjdGlvbjogJ2Ny ZWF0ZScsIGNoZWNrOiB0cnVlfSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5D cmVhdGUnCisgICAgICAgIH0seworICAgICAgICAgIG5hbWU6ICdjcmVhdGVf ZG9tYWluLWNvbnN0cmFpbnRzJywgbm9kZTogJ2RvbWFpbicsIG1vZHVsZTog dGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0 J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAg ICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7 eyBfKCdEb21haW4gQ29uc3RyYWludC4uLicpIH19JywKKyAgICAgICAgICBp Y29uOiAnd2NUYWJJY29uIGljb24tZG9tYWluLWNvbnN0cmFpbnRzJywgZGF0 YToge2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNrOiBmYWxzZX0sCisgICAgICAg ICAgZW5hYmxlOiAnY2FuQ3JlYXRlJworICAgICAgICB9CisgICAgICAgIF0p OworCisgICAgICB9LAorICAgICAgY2FuRHJvcDogcGdCcm93c2VyLk5vZGVz WydzY2hlbWEnXS5jYW5DaGlsZERyb3AsCisgICAgICBtb2RlbDogcGdBZG1p bi5Ccm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICAgICAgZGVmYXVs dHM6IHsKKyAgICAgICAgICBjb25uYW1lOiB1bmRlZmluZWQsCisgICAgICAg ICAgZGVzY3JpcHRpb246IHVuZGVmaW5lZCwKKyAgICAgICAgICBjb25zcmM6 IHVuZGVmaW5lZCwKKyAgICAgICAgICBjb25ub2luaGVyaXQ6IHVuZGVmaW5l ZCwKKyAgICAgICAgICBjb252YWxpZGF0ZWQ6IHVuZGVmaW5lZAorICAgICAg ICB9LAorICAgICAgICBzY2hlbWE6IFt7aWQ6ICdjb25uYW1lJywgbGFiZWw6 J05hbWUnLCB0eXBlOid0ZXh0JywgY2VsbDonc3RyaW5nJ30sCisgICAgICAg IHtpZDogJ2Rlc2NyaXB0aW9uJywgbGFiZWw6J0NvbW1lbnQnLCB0eXBlOiAn bXVsdGlsaW5lJywgY2VsbDogJ3N0cmluZycsIG1vZGU6IFsncHJvcGVydGll cycsICdjcmVhdGUnLCAnZWRpdCddLCBkaXNhYmxlZDogZnVuY3Rpb24obSkg eyByZXR1cm4gIW0uaXNOZXcoKTsgfX0sCisgICAgICAgIHtpZDogJ2NvbnNy YycsIGxhYmVsOidDaGVjaycsIHR5cGU6ICdtdWx0aWxpbmUnLCBjZWw6ICdz dHJpbmcnLCBncm91cDogJ0RlZmluaXRpb24nLCBtb2RlOiBbJ3Byb3BlcnRp ZXMnLCAnY3JlYXRlJywgJ2VkaXQnXSwgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0p IHsgcmV0dXJuICFtLmlzTmV3KCk7IH19LAorICAgICAgICB7aWQ6ICdjb25u b2luaGVyaXQnLCBsYWJlbDonTm8gSW5oZXJpdCcsIHR5cGU6ICdzd2l0Y2gn LCBjZWxsOiAnYm9vbGVhbicsIGdyb3VwOiAnRGVmaW5pdGlvbicsIG1vZGU6 IFsncHJvcGVydGllcycsICdjcmVhdGUnLCAnZWRpdCddLCBkaXNhYmxlZDog ZnVuY3Rpb24obSkgeyByZXR1cm4gIW0uaXNOZXcoKTsgfX0sCisgICAgICAg IHtpZDogJ2NvbnZhbGlkYXRlZCcsIGxhYmVsOiJEb24ndCBWYWxpZGF0ZSIs IHR5cGU6ICdzd2l0Y2gnLCBjZWxsOiAnYm9vbGVhbicsIGdyb3VwOiAnRGVm aW5pdGlvbid9CisgICAgICAgIF0sCisgICAgICAgIHZhbGlkYXRlOiBmdW5j dGlvbigpIHsKKyAgICAgICAgICB2YXIgZXJyID0ge30sCisgICAgICAgICAg ICAgIGVycm1zZzsKKworICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKHRo aXMuZ2V0KCdjb25uYW1lJykpIHx8IFN0cmluZyh0aGlzLmdldCgnY29ubmFt ZScpKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAg ICAgICAgICBlcnJbJ2Nvbm5hbWUnXSA9ICd7eyBfKCdOYW1lIGNhbiBub3Qg YmUgZW1wdHkhJykgfX0nOworICAgICAgICAgICAgZXJybXNnID0gZXJybXNn IHx8IGVyclsnY29ubmFtZSddOworICAgICAgICAgIH0KKworICAgICAgICAg IGlmIChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCdjb25zcmMnKSkgfHwgU3Ry aW5nKHRoaXMuZ2V0KCdjb25zcmMnKSkucmVwbGFjZSgvXlxzK3xccyskL2cs ICcnKSA9PSAnJykgeworICAgICAgICAgICAgZXJyWydjb25zcmMnXSA9ICd7 eyBfKCdDaGVjayBjYW4gbm90IGJlIGVtcHR5IScpIH19JzsKKyAgICAgICAg ICAgIGVycm1zZyA9IGVycm1zZyB8fCBlcnJbJ2NvbnNyYyddOworICAgICAg ICAgIH0KKworICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5jbGVhcigpLnNl dChlcnIpOworCisgICAgICAgICAgaWYgKF8uc2l6ZShlcnIpKSB7CisgICAg ICAgICAgICB0aGlzLnRyaWdnZXIoJ29uLXN0YXR1cycsIHttc2c6IGVycm1z Z30pOworICAgICAgICAgICAgcmV0dXJuIGVycm1zZzsKKyAgICAgICAgICB9 CisKKyAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICB9LAorICAg ICAgfSksCisgIH0pOworCisgIH0KKworICByZXR1cm4gcGdCcm93c2VyLk5v ZGVzWydkb21haW4nXTsKK30pOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvdGVtcGxhdGVzL2RvbWFp bi1jb25zdHJhaW50cy9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3RlbXBsYXRl cy9kb21haW4tY29uc3RyYWludHMvc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQyNjEwZAot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9t YWluLWNvbnN0cmFpbnRzL3RlbXBsYXRlcy9kb21haW4tY29uc3RyYWludHMv c3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwKQEAgLTAsMCArMSw2IEBACit7JSBp ZiBkYXRhIGFuZCBzY2hlbWEgYW5kIGRvbWFpbiAlfQorICBBTFRFUiBET01B SU4ge3sgY29ubnxxdElkZW50KHNjaGVtYSwgZG9tYWluKSB9fQorICBBREQg Q09OU1RSQUlOVCB7eyBkYXRhLmNvbm5hbWUgfX0gQ0hFQ0sgKHt7IGRhdGEu Y29uc3JjIH19ICkKKyAgeyUgaWYgZGF0YS5jb252YWxpZGF0ZWQgJX0gTk9U IFZBTElEIHslIGVuZGlmICV9IHslIGlmIGRhdGEuY29ubm9pbmhlcml0ICV9 IE5PIElOSEVSSVQgeyUgZW5kaWYgJX07Cit7JSBlbmRpZiAlfQorCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbi1jb25zdHJh aW50cy90ZW1wbGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRzL3NxbC85LjFfcGx1 cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4t Y29uc3RyYWludHMvdGVtcGxhdGVzL2RvbWFpbi1jb25zdHJhaW50cy9zcWwv OS4xX3BsdXMvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4xYTU2NTgzCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvdGVtcGxhdGVz L2RvbWFpbi1jb25zdHJhaW50cy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApA QCAtMCwwICsxLDQgQEAKK3slIGlmIGRhdGEgJX0KKyAgQUxURVIgRE9NQUlO IHt7IGNvbm58cXRJZGVudChkYXRhLm5zcG5hbWUsIGRhdGEucmVsbmFtZSkg fX0KKyAgRFJPUCBDT05TVFJBSU5UIHt7IGRhdGEuY29ubmFtZSB9fQoreyUg ZW5kaWYgJX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbi1jb25zdHJhaW50 cy90ZW1wbGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRzL3NxbC85LjFfcGx1cy9n ZXRfZG9tYWluLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9tYWlu LWNvbnN0cmFpbnRzL3RlbXBsYXRlcy9kb21haW4tY29uc3RyYWludHMvc3Fs LzkuMV9wbHVzL2dldF9kb21haW4uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmExOTljNWMKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbi1jb25zdHJhaW50cy90ZW1w bGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRzL3NxbC85LjFfcGx1cy9nZXRfZG9t YWluLnNxbApAQCAtMCwwICsxLDcgQEAKK1NFTEVDVCBkLnR5cG5hbWUgYXMg ZG9tYWluLCBibi5uc3BuYW1lIGFzIHNjaGVtYQorRlJPTQorICBwZ190eXBl IGQKK0pPSU4KKyAgcGdfbmFtZXNwYWNlIGJuIE9OIGJuLm9pZD1kLnR5cG5h bWVzcGFjZQorV0hFUkUKKyAgZC5vaWQgPSB7e2RvaWR9fQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMv dGVtcGxhdGVzL2RvbWFpbi1jb25zdHJhaW50cy9zcWwvOS4xX3BsdXMvZ2V0 X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbi1jb25z dHJhaW50cy90ZW1wbGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRzL3NxbC85LjFf cGx1cy9nZXRfb2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4zNDRhYmNjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvdGVtcGxhdGVzL2Rv bWFpbi1jb25zdHJhaW50cy9zcWwvOS4xX3BsdXMvZ2V0X29pZC5zcWwKQEAg LTAsMCArMSw0IEBACitTRUxFQ1Qgb2lkLCBjb25uYW1lIGFzIG5hbWUKKyAg RlJPTSBwZ19jb25zdHJhaW50CitXSEVSRSBjb250eXBpZCA9IHt7ZG9pZH19 OjpvaWQKKyAgQU5EIGNvbm5hbWU9e3sgbmFtZXxxdExpdGVyYWwgfX07Clwg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvdGVtcGxhdGVz L2RvbWFpbi1jb25zdHJhaW50cy9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbi1jb25zdHJhaW50 cy90ZW1wbGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRzL3NxbC85LjFfcGx1cy9w cm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi43ZWQyMWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvdGVtcGxhdGVzL2RvbWFp bi1jb25zdHJhaW50cy9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwKQEAg LTAsMCArMSwxOCBAQAorU0VMRUNUICdUQUJMRScgQVMgb2JqZWN0a2luZCwg Yy5vaWQsIGNvbm5hbWUsIHJlbG5hbWUsIG5zcG5hbWUsIGRlc2NyaXB0aW9u LAorICBwZ19nZXRfZXhwcihjb25iaW4sIGNvbnJlbGlkLCB0cnVlKSBhcyBj b25zcmMsIGNvbm5vaW5oZXJpdCwgY29udmFsaWRhdGVkCitGUk9NIHBnX2Nv bnN0cmFpbnQgYworSk9JTiBwZ19jbGFzcyBjbCBPTiBjbC5vaWQ9Y29ucmVs aWQKK0pPSU4gcGdfbmFtZXNwYWNlIG5sIE9OIG5sLm9pZD1yZWxuYW1lc3Bh Y2UKK0xFRlQgT1VURVIgSk9JTiBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRl cy5vYmpvaWQ9Yy5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfY29uc3RyYWlu dCc6OnJlZ2NsYXNzKQorV0hFUkUgY29udHlwZSA9ICdjJyBBTkQgY29ucmVs aWQgPSAge3tkb2lkfX06Om9pZAorVU5JT04KK1NFTEVDVCAnRE9NQUlOJyBB UyBvYmplY3RraW5kLCBjLm9pZCwgY29ubmFtZSwgdHlwbmFtZSBhcyByZWxu YW1lLCBuc3BuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICByZWdleHBfcmVw bGFjZShwZ19nZXRfY29uc3RyYWludGRlZihjLm9pZCwgdHJ1ZSksIEUnQ0hF Q0sgXFwoKC4qKVxcKS4qJywgRSdcXDEnKSBhcyBjb25zcmMKKywgY29ubm9p bmhlcml0LCBjb252YWxpZGF0ZWQgIEZST00gcGdfY29uc3RyYWludCBjCisg IEpPSU4gcGdfdHlwZSB0IE9OIHQub2lkPWNvbnR5cGlkCisgIEpPSU4gcGdf bmFtZXNwYWNlIG5sIE9OIG5sLm9pZD10eXBuYW1lc3BhY2UKKyAgTEVGVCBP VVRFUiBKT0lOIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD10 Lm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19jb25zdHJhaW50Jzo6cmVnY2xh c3MpCisgV0hFUkUgY29udHlwZSA9ICdjJyBBTkQgY29udHlwaWQgPSAge3tk b2lkfX06Om9pZAoreyUgaWYgY29pZCAlfQorICBBTkQgYy5vaWQgPSB7eyBj b2lkIH19Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvdGVtcGxhdGVzL2RvbWFp bi1jb25zdHJhaW50cy9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3RlbXBsYXRl cy9kb21haW4tY29uc3RyYWludHMvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWEyYzhkNwot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9t YWluLWNvbnN0cmFpbnRzL3RlbXBsYXRlcy9kb21haW4tY29uc3RyYWludHMv c3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSw0IEBACit7JSBp ZiBkYXRhLmNvbm5hbWUgJX0KKyAgQUxURVIgRE9NQUlOIHt7IGNvbm58cXRJ ZGVudChvX2RhdGEubnNwbmFtZSwgb19kYXRhLnJlbG5hbWUpIH19CisgICAg UkVOQU1FIENPTlNUUkFJTlQge3sgb19kYXRhLmNvbm5hbWUgfX0gVE8ge3sg ZGF0YS5jb25uYW1lIH19OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2RvbWFpbnMvc3RhdGljL2ltZy9jb2xsLWRvbWFpbi5w bmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3N0YXRpYy9pbWcvY29sbC1k b21haW4ucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1NjIxNTI4YTFk YmE0OTI4NTM4ZmU1NTU3YjliOTg4ZWQ3OGQ2YWIKR0lUIGJpbmFyeSBwYXRj aApsaXRlcmFsIDQ2Mgp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXjB3QiE2 Mz93eWxgR2JLfVU0VCFCRTBCSmVvcWZXPTtnRnswUEQ4X28KemkmcE5fKEsp QjdgRlBpJTJpeGBAdjlMVSh0TlVRKiFLMWN6WE94dWdnb0dUXygjcEB6ZjRK dyEhekhWKWAzRjdUCnpkLVVtfUh9YGlSSWlqY2NAV3EjPiZwdGtSYFNzekc1 NFV6NnpXNG1nP01Mc2daOWpiYj5FfnkhelRTQjlgUmUxKAp6alMxUzk5KF85 aEBZQzRgQTVZKV5fXj5ASjMrTXZJa3w0aWUyOFUtaSh0c1MhMCp9YUlBbmdJ aFpZUSh0ZlEpdWUKejdzbjhaJWJ8VUAjaE1nRVNVdnM0d0tvU3hPPn57Tz0t WXEkOF8hciktXmUlNC1sNmYtSm94MSU4fUZJVng+RkNXCnpQTVZ3bHVRR2Jr UDFiY1N3VlYwZF8/UFpiWlZpcyVIZVlUV3lVKiRPdllwJHVUYzNRTGJEPzJ0 ck9uRHVoWmE+Zgp6PTNkX3soekVSOXh0KDxuM1VzQkk0U05DP1khckJXPG0y YG4+eURSeWckdW9FOFF4fWJvMUQwcXc7dCN1KWVfZjsKemw5YUBmUklCOG9S M09EKldNRjhaWWlPaXZVPklVI1V9YSkjV24hWGpVfXxNeFVAPW93NG47JDVl b0FJcUJ9OVhQCmVDMEdNVXdVdlB4TThtMStwPSpFfDcoOEE1VC1HQHlHeXdv UkNDMkxqCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9kb21haW5zL3N0YXRpYy9pbWcvZG9tYWluLXNtLnBu ZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvc3RhdGljL2ltZy9kb21haW4t c20ucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1MjFjZGRlYWFhZjBl ZTRlM2M2MGU5NDgwNzhkNzBlMTdlMDY4OTMKR0lUIGJpbmFyeSBwYXRjaAps aXRlcmFsIDQwMQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXjB3QiE2Mz93 eWxgR2JLfVQ3WFo4RTBEZXU5ZXUqVjtnRnswS2BwSWcKemM2S2ByNEllSUFj fVEzSHhWYD0zeStAeHVkVUpwR2t0MkZ+UG9JNSFeNzhBJENtKExASmJjWVI9 OzRibV9udj5iCnp7cGtJKj9UN0QjZ3lpU3ZLWVI3e19TNFRkb194T2dfO1hg fF9ON09rJk9pS2dfUUEpfl9kbExvODV7dyRpTG9UZQp6RlBPcE0qXk0rSGhx SiZWdktVQnZmVSg9alkmIyQkJDx4SSNNQjtNcWBJQUJwMjBSVDl3VVhrYUwo MVIocE9uP2MKej4zODwrZT5LYU4yeyUwSmRAc01iWSQrMTNaJiVaPCUhUCsq U051KyMoe1JyPXtfS3hVaHN3SGRJRDBRV1RDQnZECnopXmt5O0BndWBFI1JB QyNsYEpjbmVsUzByeGtLTjdiMUI+SDU2Z1gpMCZQPCphZzhXUk5pMGRWTi1q elRRVmQyMAp6aDZjS1pNIUUpdUF3fnZQQ2RPN0tDZld3M1J0NSRaR2dha0tI MDApfFdUc1VARyNGVGRIR291RzhKSXlkb1NHaUcKUTJCPzktKTc4JnFvbGA7 KzAzX3EzZ2E3fmwKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvc3RhdGljL2ltZy9kb21haW4u cG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9zdGF0aWMvaW1nL2RvbWFp bi5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDJjYTkyOTMyNTg1NGI4 ZjM0Nzg3NDI1ZTgwOTRkMDhjNzU5ODNiYwpHSVQgYmluYXJ5IHBhdGNoCmxp dGVyYWwgNDI0CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeMHdCITYzP3d5 bGBHYkt9UEptQntFMEJKZW9xZlc9O2dGezBQRDheNwp6aSZzNmBiTDhveEh9 YGlSZEhVPypsYjJyfkpeNlRoPWl4XiR6VFNXUzw/Zj5vSCtDSFVhXn1wVmZg YVd2TXQ3Zm0KengmOEY+amZkfkFZKEhGYG1VaVJHPVc5PHNVd1FCQEtSPkBR TEhvKyVQWnVBM0l7KXl+KiQxRF9Kb3RGKHt6dkh0CnpvJXVsZjcpeWZ1ZipC bTEtQURzK0kxNC0/aS1FS1U3YHZVIXdnV1BYSnpYM19CcmNicGU9WEZjQW1T Rk5lQzNxJgp6bCFaKyhSc1lOMTImLU5Xe1AqXiM8cng4Ml8yLStpaSZTcWZH Z09gSmNqQDswMUBIVEh7JiY3I3Y/an1JKT1KNm0KemVgfmhwcFpuNz9XQXwl eiF9VDZwZj56MElqYlpyUzVJQ0QqMjc1Kl9iQW8pcjh0I1ZnNEEqTHopO3hj NEpLcTAzCnpYWEN9emQpWXdpUlpDbldOPlVPX1FtdkFVUWhea01rJTZJc3VB en54Zm5rVnxmdDg3fG01R1ZBZnZKXiZmeUdRIQpxSVRRYEtgNi0hY2xASlhF bVM3RGEpbTg+KDVEbGxNaHBxdT9WRE5QSGI2TXc8JjskVk9SPUZxdQoKbGl0 ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9jc3MvZG9tYWlucy5jc3Mg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL2Nz cy9kb21haW5zLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi43ZDRmYWQwCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9jc3MvZG9tYWlucy5jc3MK QEAgLTAsMCArMSw5IEBACisucGctaWNvbi1kb21haW4geworICBiYWNrZ3Jv dW5kLWltYWdlOiB1cmwoJ3t7IHVybF9mb3IoJ05PREUtZG9tYWluLnN0YXRp YycsIGZpbGVuYW1lPSdpbWcvZG9tYWluLnBuZycpIH19JykgIWltcG9ydGFu dDsKKyAgYm9yZGVyLXJhZGl1czogMTBweDsKKyAgYmFja2dyb3VuZC1yZXBl YXQ6IG5vLXJlcGVhdDsKKyAgYWxpZ24tY29udGVudDogY2VudGVyOworICB2 ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOworICBoZWlnaHQ6IDEuM2VtOworfQor CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRl cy9kb21haW5zL2pzL2RvbWFpbnMuanMgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21h aW5zL3RlbXBsYXRlcy9kb21haW5zL2pzL2RvbWFpbnMuanMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWExZGQ3YwotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVzL2Rv bWFpbnMvanMvZG9tYWlucy5qcwpAQCAtMCwwICsxLDIzNiBAQAorLyogQ3Jl YXRlIGFuZCBSZWdpc3RlciBEb21haW4gQ29sbGVjdGlvbiBhbmQgRG9tYWlu IE5vZGUuICovCisKK2RlZmluZSgKKyAgICAgICAgWydqcXVlcnknLCAndW5k ZXJzY29yZScsICd1bmRlcnNjb3JlLnN0cmluZycsICdwZ2FkbWluJywgJ3Bn YWRtaW4uYnJvd3NlcicsICdhbGVydGlmeScsICdwZ2FkbWluLmJyb3dzZXIu Y29sbGVjdGlvbiddLAorZnVuY3Rpb24oJCwgXywgUywgcGdBZG1pbiwgcGdC cm93c2VyLCBhbGVydGlmeSkgeworCisgIGlmICghcGdCcm93c2VyLk5vZGVz Wydjb2xsLWRvbWFpbiddKSB7CisgICAgdmFyIGRhdGFiYXNlcyA9IHBnQWRt aW4uQnJvd3Nlci5Ob2Rlc1snY29sbC1kb21haW4nXSA9CisgICAgICBwZ0Fk bWluLkJyb3dzZXIuQ29sbGVjdGlvbi5leHRlbmQoeworICAgICAgICBub2Rl OiAnZG9tYWluJywKKyAgICAgICAgbGFiZWw6ICd7eyBfKCdEb21haW5zJykg fX0nLAorICAgICAgICB0eXBlOiAnY29sbC1kb21haW4nCisgICAgICB9KTsK KyAgfTsKKworICB2YXIgU2VjdXJpdHlNb2RlbCA9IEJhY2tmb3JtLlNlY3Vy aXR5TW9kZWwgPSBwZ0FkbWluLkJyb3dzZXIuTm9kZS5Nb2RlbC5leHRlbmQo eworICAgIGRlZmF1bHRzOiB7CisgICAgICBwcm92aWRlcjogbnVsbCwKKyAg ICAgIHNlY3VyaXR5X2xhYmVsOiBudWxsCisgICAgfSwKKyAgICBzY2hlbWE6 IFt7CisgICAgICBpZDogJ3Byb3ZpZGVyJywgbGFiZWw6ICd7eyBfKCdQcm92 aWRlcicpIH19JywKKyAgICAgIHR5cGU6ICd0ZXh0JworICAgIH0seworICAg ICAgaWQ6ICdzZWN1cml0eV9sYWJlbCcsIGxhYmVsOiAne3sgXygnU2VjdXJp dHkgTGFiZWwnKSB9fScsCisgICAgICB0eXBlOiAndGV4dCcKKyAgICB9XSwK KyAgICB2YWxpZGF0ZTogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgZXJyID0g e30sCisgICAgICAgICAgZXJybXNnID0gbnVsbCwKKyAgICAgICAgICBkYXRh ID0gdGhpcy50b0pTT04oKTsKKworICAgICAgaWYgKF8uaXNVbmRlZmluZWQo ZGF0YS5sYWJlbCkgfHwKKyAgICAgICAgXy5pc051bGwoZGF0YS5sYWJlbCkg fHwKKyAgICAgICAgU3RyaW5nKGRhdGEubGFiZWwpLnJlcGxhY2UoL15ccyt8 XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgcmV0dXJuIF8oIlBsZWFz ZSBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgYWxsIHRoZSBzZWN1cml0eSBwcm92 aWRlcnMuIik7CisgICAgICB9CisgICAgICByZXR1cm4gbnVsbDsKKyAgICB9 CisgIH0pOworCisgIHZhciBDb25zdHJhaW50c01vZGVsID0gcGdBZG1pbi5C cm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICBkZWZhdWx0czogewor ICAgICAgY29ubmFtZTogdW5kZWZpbmVkLAorICAgICAgZGVzY3JpcHRpb246 IHVuZGVmaW5lZCwKKyAgICAgIHNsb255OiB1bmRlZmluZWQsCisgICAgICBj b25zcmM6IHVuZGVmaW5lZCwKKyAgICAgIGNvbm5vaW5oZXJpdDogdW5kZWZp bmVkLAorICAgICAgY29udmFsaWRhdGVkOiB1bmRlZmluZWQKKyAgICB9LAor ICAgIHNjaGVtYTogWworICAgICAge2lkOiAnY29ubmFtZScsIGxhYmVsOidO YW1lJywgdHlwZTondGV4dCcsIGNlbGw6J3N0cmluZyd9LAorICAgICAge2lk OiAnZGVzY3JpcHRpb24nLCBsYWJlbDonQ29tbWVudCcsIHR5cGU6ICdtdWx0 aWxpbmUnLCBjZWxsOiAnc3RyaW5nJ30sCisgICAgICB7aWQ6ICdzbG9ueScs IGxhYmVsOidVc2UgU2xvbnknLCB0eXBlOiAndGV4dCcsIGNlbGw6ICdzdHJp bmcnfSwKKyAgICAgIHtpZDogJ2NvbnNyYycsIGxhYmVsOidDaGVjaycsIHR5 cGU6ICdtdWx0aWxpbmUnLCBjZWw6ICdzdHJpbmcnLCBncm91cDogJ2RlZmlu aXRpb24nfSwKKyAgICAgIHtpZDogJ2Nvbm5vaW5oZXJpdCcsIGxhYmVsOidO byBJbmhlcml0JywgdHlwZTogJ3N3aXRjaCcsIGNlbGw6ICdib29sZWFuJywg Z3JvdXA6ICdkZWZpbml0aW9uJ30sCisgICAgICB7aWQ6ICdjb252YWxpZGF0 ZWQnLCBsYWJlbDoiRG9uJ3QgVmFsaWRhdGUiLCB0eXBlOiAnc3dpdGNoJywg Y2VsbDogJ2Jvb2xlYW4nLCBncm91cDogJ2RlZmluaXRpb24nfQorICAgIF0s CisgICAgdmFsaWRhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgLy8gVE9ETzog QWRkIHZhbGlkYXRpb24gaGVyZQorICAgIH0sCisgICAgdG9KU09OOiBCYWNr Ym9uZS5Nb2RlbC5wcm90b3R5cGUudG9KU09OCisgIH0pOworCisKKyAgaWYg KCFwZ0Jyb3dzZXIuTm9kZXNbJ2RvbWFpbiddKSB7CisgICAgcGdBZG1pbi5C cm93c2VyLk5vZGVzWydkb21haW4nXSA9IHBnQnJvd3Nlci5Ob2RlLmV4dGVu ZCh7CisgICAgICB0eXBlOiAnZG9tYWluJywKKyAgICAgIGxhYmVsOiAne3sg XygnRG9tYWluJykgfX0nLAorICAgICAgY29sbGVjdGlvbl90eXBlOiAnY29s bC1kb21haW4nLAorICAgICAgaGFzU1FMOiB0cnVlLAorICAgICAgcGFyZW50 X3R5cGU6IFsnc2NoZW1hJ10sCisgICAgICBJbml0OiBmdW5jdGlvbigpIHsK KyAgICAgICAgLyogQXZvaWQgbXVsaXRwbGUgcmVnaXN0cmF0aW9uIG9mIG1l bnVzICovCisgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKQorICAgICAg ICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0 cnVlOworCisgICAgICAgIHBnQnJvd3Nlci5hZGRfbWVudXMoW3sKKyAgICAg ICAgICBuYW1lOiAnY3JlYXRlX2RvbWFpbl9vbl9jb2xsJywgbm9kZTogJ2Nv bGwtZG9tYWluJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6 IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9w cm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHBy aW9yaXR5OiA0LCBsYWJlbDogJ3t7IF8oJ0RvbWFpbi4uLicpIH19JywKKyAg ICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tZG9tYWluJywgZGF0YTog e2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNrOiB0cnVlfSwKKyAgICAgICAgICBl bmFibGU6ICdjYW5DcmVhdGUnCisgICAgICAgIH0seworICAgICAgICAgIG5h bWU6ICdjcmVhdGVfZG9tYWluJywgbm9kZTogJ2RvbWFpbicsIG1vZHVsZTog dGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0 J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAg ICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7 eyBfKCdEb21haW4uLi4nKSB9fScsCisgICAgICAgICAgaWNvbjogJ3djVGFi SWNvbiBpY29uLWRvbWFpbicsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUnLCBj aGVjazogdHJ1ZX0sCisgICAgICAgICAgZW5hYmxlOiAnY2FuQ3JlYXRlJwor ICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX2RvbWFpbics IG5vZGU6ICdzY2hlbWEnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBw bGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3df b2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRl JywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygnRG9tYWluLi4uJykgfX0n LAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1kb21haW4nLCBk YXRhOiB7YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6IGZhbHNlfSwKKyAgICAg ICAgICBlbmFibGU6ICdjYW5DcmVhdGUnCisgICAgICAgIH0KKyAgICAgICAg XSk7CisKKyAgICAgIH0sCisgICAgICBjYW5Ecm9wOiBwZ0Jyb3dzZXIuTm9k ZXNbJ3NjaGVtYSddLmNhbkNoaWxkRHJvcCwKKyAgICAgIGNhbkRyb3BDYXNj YWRlOiBwZ0Jyb3dzZXIuTm9kZXNbJ3NjaGVtYSddLmNhbkNoaWxkRHJvcCwK KyAgICAgIG1vZGVsOiBwZ0FkbWluLkJyb3dzZXIuTm9kZS5Nb2RlbC5leHRl bmQoeworICAgICAgICBkZWZhdWx0czogeworICAgICAgICAgIG5hbWU6IHVu ZGVmaW5lZCwKKyAgICAgICAgICBvaWQ6IHVuZGVmaW5lZCwKKyAgICAgICAg ICBvd25lcjogdW5kZWZpbmVkLAorICAgICAgICAgIGJhc2Vuc3A6IHVuZGVm aW5lZCwKKyAgICAgICAgICBkZXNjcmlwdGlvbjogdW5kZWZpbmVkLAorICAg ICAgICAgIGJhc2V0eXBlOiB1bmRlZmluZWQsCisgICAgICAgICAgdHlwbGVu OiB1bmRlZmluZWQsCisgICAgICAgICAgcHJlY2lzaW9uOiB1bmRlZmluZWQs CisgICAgICAgICAgdHlwZGVmYXVsdDogdW5kZWZpbmVkLAorICAgICAgICAg IHR5cG5vdG51bGw6IHVuZGVmaW5lZCwKKyAgICAgICAgICBjb2xsbmFtZTog dW5kZWZpbmVkLAorICAgICAgICAgIGNvbnN0cmFpbnRzOiBbXSwKKyAgICAg ICAgICBzZWNsYWJlbHM6IFtdCisgICAgICAgIH0sCisgICAgICAgIHNjaGVt YTogW3sKKyAgICAgICAgICBpZDogJ25hbWUnLCBsYWJlbDogJ3t7IF8oJ05h bWUnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICd0 ZXh0JywgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2NyZWF0ZScsICdlZGl0J10K KyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdvaWQnLCBsYWJlbDone3sg XygnT2lkJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBl OiAndGV4dCcgLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXQorICAgICAgICB9LHsK KyAgICAgICAgICBpZDogJ293bmVyJywgbGFiZWw6J3t7IF8oJ093bmVyJykg fX0nLCBjZWxsOiAnc3RyaW5nJywgY29udHJvbDogQmFja2Zvcm0uTm9kZUxp c3RCeU5hbWVDb250cm9sLAorICAgICAgICAgIG5vZGU6ICdyb2xlJywgIHR5 cGU6ICd0ZXh0JywgbW9kZTogWydlZGl0JywgJ2NyZWF0ZScsICdwcm9wZXJ0 aWVzJ10KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdiYXNlbnNwJywg bGFiZWw6J3t7IF8oJ1NjaGVtYScpIH19JywgY2VsbDogJ3N0cmluZycsIGNv bnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycsCisgICAgICAgICAgdHlwZTog J3RleHQnLCB1cmw6ICdnZXRfc2NoZW1hcycKKyAgICAgICAgfSx7CisgICAg ICAgICAgaWQ6ICdkZXNjcmlwdGlvbicsIGxhYmVsOid7eyBfKCdDb21tZW50 JykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAnbXVs dGlsaW5lJworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2Jhc2V0eXBl JywgbGFiZWw6J3t7IF8oJ0Jhc2UgVHlwZScpIH19JywgY2VsbDogJ3N0cmlu ZycsIGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycsCisgICAgICAgICAg dHlwZTogJ3RleHQnLCBtb2RlOlsncHJvcGVydGllcycsICdjcmVhdGUnLCAn ZWRpdCddLCBncm91cDogJ0RlZmluaXRpb24nLCB1cmw6ICdnZXRfdHlwZXMn LAorICAgICAgICAgIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7IHJldHVybiAh bS5pc05ldygpOyB9CisgICAgICAgIH0seworICAgICAgICAgIGlkOiAndHlw bGVuJywgbGFiZWw6J3t7IF8oJ0xlbmd0aCcpIH19JywgY2VsbDogJ3N0cmlu ZycsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBncm91cDogJ0RlZmluaXRp b24nLCBkaXNhYmxlZDogZnVuY3Rpb24obSkgeyByZXR1cm4gIW0uaXNOZXco KTsgfQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3ByZWNpc2lvbics IGxhYmVsOid7eyBfKCdQcmVjaXNpb24nKSB9fScsIGNlbGw6ICdzdHJpbmcn LAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICdEZWZpbml0aW9u JywgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsgcmV0dXJuICFtLmlzTmV3KCk7 IH0KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICd0eXBkZWZhdWx0Jywg bGFiZWw6J3t7IF8oJ0RlZmF1bHQnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAor ICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICdEZWZpbml0aW9uJwor ICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3R5cG5vdG51bGwnLCBsYWJl bDone3sgXygnTm90IE51bGwnKSB9fScsIGNlbGw6ICdib29sZWFuJywKKyAg ICAgICAgICB0eXBlOiAnc3dpdGNoJywgZ3JvdXA6ICdEZWZpbml0aW9uJwor ICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2NvbGxuYW1lJywgbGFiZWw6 J3t7IF8oJ0NvbGxhdGlvbicpIH19JywgY2VsbDogJ3N0cmluZycsIGNvbnRy b2w6ICdub2RlLWFqYXgtb3B0aW9ucycsCisgICAgICAgICAgdHlwZTogJ3Rl eHQnLCBncm91cDogJ0RlZmluaXRpb24nLCB1cmw6ICdnZXRfY29sbGF0aW9u cycsIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7IHJldHVybiAhbS5pc05ldygp OyB9CisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnY29uc3RyYWludHMn LCBsYWJlbDone3sgXygnQ29uc3RyYWludHMnKSB9fScsIGNlbGw6ICdzdHJp bmcnLAorICAgICAgICAgIHR5cGU6ICdjb2xsZWN0aW9uJywgZ3JvdXA6ICdD b25zdHJhaW50cycsIHZpc2libGU6IGZhbHNlLCBtb2RlOiBbJ2VkaXQnLCAn Y3JlYXRlJ10sCisgICAgICAgICAgbW9kZWw6IENvbnN0cmFpbnRzTW9kZWws IGNhbkFkZDogdHJ1ZSwgY2FuRGVsZXRlOiBmYWxzZSwgY2FuRWRpdDogZmFs c2UKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdzZWNsYWJlbHMnLCBs YWJlbDogJ3t7IF8oJ1NlY3VyaXR5IExhYmVscycpIH19JywKKyAgICAgICAg ICBtb2RlbDogU2VjdXJpdHlNb2RlbCwgZWRpdGFibGU6IGZhbHNlLCB0eXBl OiAnY29sbGVjdGlvbicsCisgICAgICAgICAgZ3JvdXA6ICd7eyBfKCdTZWN1 cml0eScpIH19JywgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLAorICAgICAg ICAgIG1pbl92ZXJzaW9uOiA5MDEwMCwgY2FuQWRkOiB0cnVlLAorICAgICAg ICAgIGNhbkVkaXQ6IGZhbHNlLCBjYW5EZWxldGU6IHRydWUsIGNvbnRyb2w6 ICd1bmlxdWUtY29sLWNvbGxlY3Rpb24nCisgICAgICAgIH0KKyAgICAgICAg XSwKKyAgICAgICAgdmFsaWRhdGU6IGZ1bmN0aW9uKCkKKyAgICAgICAgewor ICAgICAgICAgIHZhciBlcnIgPSB7fSwKKyAgICAgICAgICAgICAgZXJybXNn LAorICAgICAgICAgICAgICBzZWNsYWJlbHMgPSB0aGlzLmdldCgnc2VjbGFi ZWxzJyk7CisKKyAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZCh0aGlzLmdl dCgnbmFtZScpKSB8fCBTdHJpbmcodGhpcy5nZXQoJ25hbWUnKSkucmVwbGFj ZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgZXJy WyduYW1lJ10gPSAne3sgXygnTmFtZSBjYW4gbm90IGJlIGVtcHR5IScpIH19 JzsKKyAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBlcnJbJ25hbWUn XTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5l ZCh0aGlzLmdldCgnYmFzZXR5cGUnKSkgfHwgU3RyaW5nKHRoaXMuZ2V0KCdi YXNldHlwZScpKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7 CisgICAgICAgICAgICBlcnJbJ2Jhc2V0eXBlJ10gPSAne3sgXygnQmFzZSBU eXBlIGNhbiBub3QgYmUgZW1wdHkhJykgfX0nOworICAgICAgICAgICAgZXJy bXNnID0gZXJybXNnIHx8IGVyclsnYmFzZXR5cGUnXTsKKyAgICAgICAgICB9 CisKKyAgICAgICAgICBpZiAoc2VjbGFiZWxzKSB7CisgICAgICAgICAgICB2 YXIgc2VjTGFiZWxzRXJyOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7 IGkgPCBzZWNsYWJlbHMubW9kZWxzLmxlbmd0aCAmJiAhc2VjTGFiZWxzRXJy OyBpKyspIHsKKyAgICAgICAgICAgICAgc2VjTGFiZWxzRXJyID0gKHNlY2xh YmVscy5tb2RlbHNbaV0pLnZhbGlkYXRlLmFwcGx5KHNlY2xhYmVscy5tb2Rl bHNbaV0pOworICAgICAgICAgICAgICBpZiAoc2VjTGFiZWxzRXJyKSB7Cisg ICAgICAgICAgICAgICAgZXJyWydzZWNsYWJlbHMnXSA9IHNlY0xhYmVsc0Vy cjsKKyAgICAgICAgICAgICAgICBlcnJtc2cgPSBlcnJtc2cgfHwgc2VjTGFi ZWxzRXJyOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAg ICAgICAgfQorCisgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLmNsZWFyKCku c2V0KGVycik7CisKKyAgICAgICAgICBpZiAoXy5zaXplKGVycikpIHsKKyAg ICAgICAgICAgIHRoaXMudHJpZ2dlcignb24tc3RhdHVzJywge21zZzogZXJy bXNnfSk7CisgICAgICAgICAgICByZXR1cm4gZXJybXNnOworICAgICAgICAg IH0KKworICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAg ICB9KSwKKyAgICAgIGNhbkNyZWF0ZTogZnVuY3Rpb24oaXRlbURhdGEsIGl0 ZW0sIGRhdGEpIHsKKyAgICAgICAgLy9JZiBjaGVjayBpcyBmYWxzZSB0aGVu ICwgd2Ugd2lsbCBhbGxvdyBjcmVhdGUgbWVudQorICAgICAgICBpZiAoZGF0 YSAmJiBkYXRhLmNoZWNrID09IGZhbHNlKQorICAgICAgICAgIHJldHVybiB0 cnVlOworCisgICAgICAgIHZhciB0ID0gcGdCcm93c2VyLnRyZWUsIGkgPSBp dGVtLCBkID0gaXRlbURhdGE7CisgICAgICAgIC8vIFRvIGl0ZXJhdGUgb3Zl ciB0cmVlIHRvIGNoZWNrIHBhcmVudCBub2RlCisgICAgICAgIHdoaWxlIChp KSB7CisgICAgICAgICAgLy8gSWYgaXQgaXMgc2NoZW1hIHRoZW4gYWxsb3cg dXNlciB0byBjcmVhdGUgZG9tYWluCisgICAgICAgICAgaWYgKF8uaW5kZXhP ZihbJ3NjaGVtYSddLCBkLl90eXBlKSA+IC0xKQorICAgICAgICAgICAgcmV0 dXJuIHRydWU7CisKKyAgICAgICAgICBpZiAoJ2NvbGwtZG9tYWluJyA9PSBk Ll90eXBlKSB7CisgICAgICAgICAgICAvL0NoZWNrIGlmIHdlIGFyZSBub3Qg Y2hpbGQgb2YgY2F0YWxvZworICAgICAgICAgICAgcHJldl9pID0gdC5oYXNQ YXJlbnQoaSkgPyB0LnBhcmVudChpKSA6IG51bGw7CisgICAgICAgICAgICBw cmV2X2QgPSBwcmV2X2kgPyB0Lml0ZW1EYXRhKHByZXZfaSkgOiBudWxsOwor ICAgICAgICAgICAgaWYoIHByZXZfZC5fdHlwZSA9PSAnY2F0YWxvZycpIHsK KyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfSBl bHNlIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAg ICB9CisgICAgICAgICAgfQorICAgICAgICAgIGkgPSB0Lmhhc1BhcmVudChp KSA/IHQucGFyZW50KGkpIDogbnVsbDsKKyAgICAgICAgICBkID0gaSA/IHQu aXRlbURhdGEoaSkgOiBudWxsOworICAgICAgICB9CisgICAgICAgIC8vIGJ5 IGRlZmF1bHQgd2UgZG8gbm90IHdhbnQgdG8gYWxsb3cgY3JlYXRlIG1lbnUK KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICB9CisgIH0pOworCisgIH0K KworICByZXR1cm4gcGdCcm93c2VyLk5vZGVzWydkb21haW4nXTsKK30pOwpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMv ZG9tYWlucy9zcWwvOS4xX3BsdXMvYmFja2VuZF9zdXBwb3J0LnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsLzku MV9wbHVzL2JhY2tlbmRfc3VwcG9ydC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNjRmMDk0MQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvc3Fs LzkuMV9wbHVzL2JhY2tlbmRfc3VwcG9ydC5zcWwKQEAgLTAsMCArMSwyMCBA QAorU0VMRUNUCisgIENBU0UgV0hFTiBuc3AubnNwbmFtZSBJTiAoJ3N5cycs ICdkYm8nLCAnaW5mb3JtYXRpb25fc2NoZW1hJykgVEhFTiB0cnVlIEVMU0Ug ZmFsc2UgRU5EIEFTIGRiU3VwcG9ydAorRlJPTQorICBwZ19uYW1lc3BhY2Ug bnNwCitXSEVSRQorICBuc3Aub2lkPXt7c2NpZH19OjppbnQKKyAgQU5EICgK KyAgICAobnNwbmFtZSA9ICdwZ19jYXRhbG9nJyBBTkQgRVhJU1RTCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTRUxFQ1QgMSBGUk9N IHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAncGdfY2xhc3MnIEFORCByZWxu YW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEpKQorICAgIE9SIChuc3BuYW1l ID0gJ3BnYWdlbnQnIEFORCBFWElTVFMKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hFUkUg cmVsbmFtZSA9ICdwZ2Ffam9iJyBBTkQgcmVsbmFtZXNwYWNlID0gbnNwLm9p ZCBMSU1JVCAxKSkKKyAgICBPUiAobnNwbmFtZSA9ICdpbmZvcm1hdGlvbl9z Y2hlbWEnIEFORCBFWElTVFMKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFt ZSA9ICd0YWJsZXMnIEFORCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlU IDEpKQorICAgIE9SIChuc3BuYW1lIExJS0UgJ18lJyBBTkQgRVhJU1RTCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTRUxFQ1QgMSBG Uk9NIHBnX3Byb2MgV0hFUkUgcHJvbmFtZT0nc2xvbnl2ZXJzaW9uJyBBTkQg cHJvbmFtZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAxKSkKKyAgICApCisgIEFO RAorICAgbnNwbmFtZSBOT1QgTElLRSBFJ3BnXFx0ZW1wXFwlJworICBBTkQK KyAgIG5zcG5hbWUgTk9UIExJS0UgRSdwZ1xcdG9hc3RfdGVtcFxcJScKXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjFfcGx1 cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0 ZXMvZG9tYWlucy9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNGNkZmUwCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9t YWlucy9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbApAQCAtMCwwICsxLDMyIEBA Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xB QkxFICV9CisKK3slIGlmIGRhdGEgJX0KKyAgQ1JFQVRFIERPTUFJTiB7eyBj b25ufHF0SWRlbnQoZGF0YS5iYXNlbnNwLCBkYXRhLm5hbWUpIH19CisgICAg QVMge3sgZGF0YS5iYXNldHlwZSB9fQorICB7JSBpZiBkYXRhLmNvbGxuYW1l ICV9CisgICAgQ09MTEFURSB7eyBkYXRhLmNvbGxuYW1lIH19CisgIHslIGVu ZGlmICV9CisKKyAgeyUgaWYgZGF0YS50eXBub3RudWxsICV9CisgICAgTk9U IE5VTEwKKyAgeyUgZW5kaWYgJX0KKyAgOworCisgIHslIGlmIGRhdGEuY29u c3RyYWludHMgJX0KKyAgICB7JSBmb3IgYyBpbiBkYXRhLmNvbnN0cmFpbnRz ICV9CisgICAgICBBTFRFUiBET01BSU4ge3sgY29ubnxxdElkZW50KGRhdGEu YmFzZW5zcCwgZGF0YS5uYW1lKSB9fQorICAgICAgQUREIENPTlNUUkFJTlQg e3sgYy5jb25uYW1lIH19IENIRUNLICh7eyBjLmNvbnNyYyB9fSApCisgICAg ICB7JSBpZiBjLmNvbnZhbGlkYXRlZCAlfSBOT1QgVkFMSUQgeyUgZW5kaWYg JX0geyUgaWYgYy5jb25ub2luaGVyaXQgJX0gTk8gSU5IRVJJVCB7JSBlbmRp ZiAlfTsKKyAgICB7JSBlbmRmb3IgJX0KKyAgeyUgZW5kaWYgJX0KKworICBB TFRFUiBET01BSU4ge3sgY29ubnxxdElkZW50KGRhdGEuYmFzZW5zcCwgZGF0 YS5uYW1lKSB9fSBPV05FUiBUTyB7eyBkYXRhLm93bmVyIH19OworICB7JSBp ZiBkYXRhLmRlc2NyaXB0aW9uICV9CisgICAgQ09NTUVOVCBPTiBET01BSU4g e3sgY29ubnxxdElkZW50KGRhdGEuYmFzZW5zcCwgZGF0YS5uYW1lKSB9fQor ICAgIElTICd7eyBkYXRhLmRlc2NyaXB0aW9uIH19JzsKKyAgeyUgZW5kaWYg JX0KKworICB7JSBmb3IgciBpbiBkYXRhLnNlY2xhYmVscyAlfQorICAgIHt7 IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdET01BSU4nLCBkYXRhLm5hbWUsIHIu cHJvdmlkZXIsIHIubGFiZWwpIH19CisgIHslIGVuZGZvciAlfQoreyUgZW5k aWYgJX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3Nx bC85LjFfcGx1cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlu cy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzQwZjRmCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1w bGF0ZXMvZG9tYWlucy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApAQCAtMCww ICsxLDExIEBACit7JSBpZiBzY2lkIGFuZCBkb2lkICV9CisgIFNFTEVDVCBk LnR5cG5hbWUgYXMgbmFtZSwgYm4ubnNwbmFtZSBhcyBiYXNlbnNwCisgIEZS T00gcGdfdHlwZSBkCisgIEpPSU4gcGdfbmFtZXNwYWNlIGJuIE9OIGJuLm9p ZD1kLnR5cG5hbWVzcGFjZQorICBXSEVSRSBkLnR5cG5hbWVzcGFjZSA9IHt7 c2NpZH19OjpvaWQKKyAgQU5EIGQub2lkPXt7ZG9pZH19OjppbnQ7Cit7JSBl bmRpZiAlfQorCit7JSBpZiBuYW1lICV9CisgIERST1AgRE9NQUlOIHt7IGNv bm58cXRJZGVudChiYXNlbnNwLCBuYW1lKSB9fXslIGlmIGNhc2NhZGUlfSBD QVNDQURFeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9ClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9t YWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4xX3BsdXMvZ2V0X2NvbGxh dGlvbnMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMv ZG9tYWlucy9zcWwvOS4xX3BsdXMvZ2V0X2NvbGxhdGlvbnMuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhMTNhNjUKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRl cy9kb21haW5zL3NxbC85LjFfcGx1cy9nZXRfY29sbGF0aW9ucy5zcWwKQEAg LTAsMCArMSw3IEBACitTRUxFQ1QgLS1uc3BuYW1lLCBjb2xsbmFtZSwKKyAg Q0FTRSBXSEVOIGxlbmd0aChuc3BuYW1lKSA+IDAgQU5EIGxlbmd0aChjb2xs bmFtZSkgPiAwICBUSEVOCisgIGNvbmNhdChuc3BuYW1lLCAnLiInLCBjb2xs bmFtZSwnIicpCisgIEVMU0UgJycgRU5EIEFTIGNvcHlfY29sbGF0aW9uCitG Uk9NIHBnX2NvbGxhdGlvbiBjLCBwZ19uYW1lc3BhY2UgbgorV0hFUkUgYy5j b2xsbmFtZXNwYWNlPW4ub2lkCitPUkRFUiBCWSBuc3BuYW1lLCBjb2xsbmFt ZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxh dGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL2dldF9jb25zdHJhaW50cy5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3Nx bC85LjFfcGx1cy9nZXRfY29uc3RyYWludHMuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyNjk5OGYKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5z L3NxbC85LjFfcGx1cy9nZXRfY29uc3RyYWludHMuc3FsCkBAIC0wLDAgKzEs MTggQEAKK1NFTEVDVCAnVEFCTEUnIEFTIG9iamVjdGtpbmQsIGMub2lkLCBj b25uYW1lLCByZWxuYW1lLCBuc3BuYW1lLCBkZXNjcmlwdGlvbiwKKyAgcGdf Z2V0X2V4cHIoY29uYmluLCBjb25yZWxpZCwgdHJ1ZSkgYXMgY29uc3JjLCBj b25ub2luaGVyaXQsIGNvbnZhbGlkYXRlZCAgRlJPTSBwZ19jb25zdHJhaW50 IGMKK0pPSU4gcGdfY2xhc3MgY2wgT04gY2wub2lkPWNvbnJlbGlkCitKT0lO IHBnX25hbWVzcGFjZSBubCBPTiBubC5vaWQ9cmVsbmFtZXNwYWNlCitMRUZU IE9VVEVSIEpPSU4gcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lk PWMub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX2NvbnN0cmFpbnQnOjpyZWdj bGFzcykKK1dIRVJFIGNvbnR5cGUgPSAnYycgQU5EIGNvbnJlbGlkID0gIHt7 ZG9pZH19OjpvaWQKK1VOSU9OCitTRUxFQ1QgJ0RPTUFJTicgQVMgb2JqZWN0 a2luZCwgYy5vaWQsIGNvbm5hbWUsIHR5cG5hbWUgYXMgcmVsbmFtZSwgbnNw bmFtZSwgZGVzY3JpcHRpb24sCisgIHJlZ2V4cF9yZXBsYWNlKHBnX2dldF9j b25zdHJhaW50ZGVmKGMub2lkLCB0cnVlKSwgRSdDSEVDSyBcXCgoLiopXFwp LionLCBFJ1xcMScpIGFzIGNvbnNyYworLCBjb25ub2luaGVyaXQsIGNvbnZh bGlkYXRlZAorRlJPTSBwZ19jb25zdHJhaW50IGMKK0pPSU4gcGdfdHlwZSB0 IE9OIHQub2lkPWNvbnR5cGlkCitKT0lOIHBnX25hbWVzcGFjZSBubCBPTiBu bC5vaWQ9dHlwbmFtZXNwYWNlCisKK0xFRlQgT1VURVIgSk9JTiBwZ19kZXNj cmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9dC5vaWQgQU5EIGRlcy5jbGFz c29pZD0ncGdfY29uc3RyYWludCc6OnJlZ2NsYXNzKQorCisgV0hFUkUgY29u dHlwZSA9ICdjJyBBTkQgY29udHlwaWQgPSAge3tkb2lkfX06Om9pZAorT1JE RVIgQlkgY29ubmFtZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVzL2Rv bWFpbnMvc3FsLzkuMV9wbHVzL2dldF9vaWQuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4xX3BsdXMvZ2V0 X29pZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u MWMyNmQ2YgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Rv bWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL2dldF9vaWQu c3FsCkBAIC0wLDAgKzEsMTAgQEAKK1NFTEVDVAorICBkLm9pZCwgZC50eXBu YW1lIGFzIG5hbWUKK0ZST00KKyAgcGdfdHlwZSBkCitKT0lOCisgIHBnX25h bWVzcGFjZSBibiBPTiBibi5vaWQ9ZC50eXBuYW1lc3BhY2UKK1dIRVJFCisg IGJuLm5zcG5hbWUgPSB7eyBiYXNlbnNwfHF0TGl0ZXJhbCB9fQorICBBTkQg ZC50eXBuYW1lPXt7IG5hbWV8cXRMaXRlcmFsIH19CisKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvc3Fs LzkuMV9wbHVzL2dldF9zY2hlbWFzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Rv bWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL2dldF9zY2hl bWFzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44 MmRjZmNiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9t YWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4xX3BsdXMvZ2V0X3NjaGVt YXMuc3FsCkBAIC0wLDAgKzEsMjEgQEAKK1NFTEVDVAorICBuc3AubnNwbmFt ZQorRlJPTQorICBwZ19uYW1lc3BhY2UgbnNwCisgIExFRlQgT1VURVIgSk9J TiBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9bnNwLm9pZCBB TkQgZGVzLmNsYXNzb2lkPSdwZ19uYW1lc3BhY2UnOjpyZWdjbGFzcykKKyAg TEVGVCBPVVRFUiBKT0lOIHBnX2NhdGFsb2cucGdfZGVmYXVsdF9hY2wgZGFj bCBPTiAoZGFjbC5kZWZhY2xuYW1lc3BhY2UgPSBuc3Aub2lkKQorV0hFUkUK KyAgTk9UICgobnNwbmFtZSA9ICdwZ19jYXRhbG9nJyBBTkQgRVhJU1RTCisg ICAgKFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICdw Z19jbGFzcycgQU5EIHJlbG5hbWVzcGFjZSA9IG5zcC5vaWQgTElNSVQgMSkp IE9SCisgIChuc3BuYW1lID0gJ3BnYWdlbnQnIEFORCBFWElTVFMKKyAgICAo U0VMRUNUIDEgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3BnYV9q b2InIEFORCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEpKSBPUgor ICAobnNwbmFtZSA9ICdpbmZvcm1hdGlvbl9zY2hlbWEnIEFORCBFWElTVFMK KyAgICAoU0VMRUNUIDEgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0g J3RhYmxlcycgQU5EIHJlbG5hbWVzcGFjZSA9IG5zcC5vaWQgTElNSVQgMSkp IE9SCisgIChuc3BuYW1lIExJS0UgJ18lJyBBTkQgRVhJU1RTCisgICAgICAo U0VMRUNUIDEgRlJPTSBwZ19wcm9jIFdIRVJFIHByb25hbWU9J3Nsb255dmVy c2lvbicgQU5EIHByb25hbWVzcGFjZSA9IG5zcC5vaWQgTElNSVQgMSkpCisg IClBTkQKKyAgbnNwbmFtZSBOT1QgTElLRSBFJ3BnXFx0ZW1wXFwlJyBBTkQK KyAgbnNwbmFtZSBOT1QgTElLRSBFJ3BnXFx0b2FzdF90ZW1wXFwlJyBBTkQK KyAgLS0gQURERUQ6IEJlY2F1c2UgV2UgbmVlZCB0byBvbWl0IHN5c3RlbSBz Y2hlbWEgZXhjZXB0IHRoZSBvbmUgb24gd2hpY2ggd2UgYXJlIHRyeWluZyB0 byAgY3JlYXRlIGNvbGxhdGlvbgorICAoIG5zcC5vaWQgPSB7eyBzY2lkIH19 IE9SIG5zcG5hbWUgTk9UIExJS0UgRSdwZ1xcXyUnICkKK09SREVSIEJZIG5z cG5hbWU7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9z cWwvOS4xX3BsdXMvZ2V0X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Rv bWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL2dldF90eXBl cy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQ3 MzA1NgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFp bnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL2dldF90eXBlcy5z cWwKQEAgLTAsMCArMSw3IEBACitTRUxFQ1QgKiBGUk9NIChTRUxFQ1QgZm9y bWF0X3R5cGUodC5vaWQsTlVMTCkgQVMgdHlwbmFtZSwgQ0FTRSBXSEVOIHR5 cGVsZW0gPiAwIFRIRU4gdHlwZWxlbSBFTFNFIHQub2lkIEVORCBhcyBlbGVt b2lkLCB0eXBsZW4sIHR5cHR5cGUsIHQub2lkLCBuc3BuYW1lLAorICAgICAg IChTRUxFQ1QgQ09VTlQoMSkgRlJPTSBwZ190eXBlIHQyIFdIRVJFIHQyLnR5 cG5hbWUgPSB0LnR5cG5hbWUpID4gMSBBUyBpc2R1cAorICBGUk9NIHBnX3R5 cGUgdAorICBKT0lOIHBnX25hbWVzcGFjZSBuc3AgT04gdHlwbmFtZXNwYWNl PW5zcC5vaWQKKyBXSEVSRSAoTk9UICh0eXBuYW1lID0gJ3Vua25vd24nIEFO RCBuc3BuYW1lID0gJ3BnX2NhdGFsb2cnKSkgQU5EIHR5cGlzZGVmaW5lZCBB TkQgdHlwdHlwZSBJTiAoJ2InLCAnYycsICdlJywgJ3InKUFORCBOT1QgRVhJ U1RTCisgKHNlbGVjdCAxIGZyb20gcGdfY2xhc3Mgd2hlcmUgcmVsbmFtZXNw YWNlPXR5cG5hbWVzcGFjZSBhbmQgcmVsbmFtZSA9IHR5cG5hbWUgYW5kIHJl bGtpbmQgIT0gJ2MnKSBBTkQgKHR5cG5hbWUgbm90IGxpa2UgJ18lJyBPUiBO T1QgRVhJU1RTIChzZWxlY3QgMSBmcm9tIHBnX2NsYXNzIHdoZXJlIHJlbG5h bWVzcGFjZT10eXBuYW1lc3BhY2UgYW5kIHJlbG5hbWUgPSBzdWJzdHJpbmco dHlwbmFtZSBmcm9tIDIpOjpuYW1lIGFuZCByZWxraW5kICE9ICdjJykpIAor ICApIEFTIGR1bW15IE9SREVSIEJZIG5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cn LCBuc3BuYW1lIDw+ICdwdWJsaWMnLCBuc3BuYW1lLCAxCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3Nx bC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Rv bWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL3Byb3BlcnRp ZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkw MWQwNTMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21h aW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVz LnNxbApAQCAtMCwwICsxLDIwIEBACitTRUxFQ1QgZC5vaWQsIGQudHlwbmFt ZSBhcyBuYW1lLCBkLnR5cGJhc2V0eXBlLCBmb3JtYXRfdHlwZShiLm9pZCxO VUxMKSBhcyBiYXNldHlwZSwgcGdfZ2V0X3VzZXJieWlkKGQudHlwb3duZXIp IGFzIG93bmVyLAorICBjLm9pZCBBUyBjb2xsb2lkLAorICBDQVNFIFdIRU4g bGVuZ3RoKGNuLm5zcG5hbWUpID4gMCBBTkQgbGVuZ3RoKGMuY29sbG5hbWUp ID4gMCBUSEVOCisgIGNvbmNhdChjbi5uc3BuYW1lLCAnLiInLCBjLmNvbGxu YW1lLCciJykKKyAgRUxTRSAnJyBFTkQgQVMgY29sbG5hbWUsCisgIGQudHlw bGVuLCBkLnR5cHR5cG1vZCwgZC50eXBub3RudWxsLCBkLnR5cGRlZmF1bHQs IGQudHlwbmRpbXMsIGQudHlwZGVsaW0sIGJuLm5zcG5hbWUgYXMgYmFzZW5z cCwKKyAgZGVzY3JpcHRpb24sIChTRUxFQ1QgQ09VTlQoMSkgRlJPTSBwZ190 eXBlIHQyIFdIRVJFIHQyLnR5cG5hbWU9ZC50eXBuYW1lKSA+IDEgQVMgZG9t aXNkdXAsCisgIChTRUxFQ1QgQ09VTlQoMSkgRlJPTSBwZ190eXBlIHQzIFdI RVJFIHQzLnR5cG5hbWU9Yi50eXBuYW1lKSA+IDEgQVMgYmFzZWlzZHVwLAor ICAoU0VMRUNUIGFycmF5X2FnZyhwcm92aWRlciB8fCAnPScgfHwgbGFiZWwp IEZST00gcGdfc2hzZWNsYWJlbCBzbDEgV0hFUkUgc2wxLm9iam9pZD1kLm9p ZCkgQVMgc2VjbGFiZWxzCitGUk9NIHBnX3R5cGUgZAorICBKT0lOIHBnX3R5 cGUgYiBPTiBiLm9pZCA9IGQudHlwYmFzZXR5cGUKKyAgSk9JTiBwZ19uYW1l c3BhY2UgYm4gT04gYm4ub2lkPWQudHlwbmFtZXNwYWNlCisgIExFRlQgT1VU RVIgSk9JTiBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9ZC5v aWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfdHlwZSc6OnJlZ2NsYXNzKQorICBM RUZUIE9VVEVSIEpPSU4gcGdfY29sbGF0aW9uIGMgT04gZC50eXBjb2xsYXRp b249Yy5vaWQKKyAgTEVGVCBPVVRFUiBKT0lOIHBnX25hbWVzcGFjZSBjbiBP TiBjLmNvbGxuYW1lc3BhY2U9Y24ub2lkCitXSEVSRSBkLnR5cG5hbWVzcGFj ZSA9IHt7c2NpZH19OjpvaWQKK3slIGlmIGRvaWQgJX0KKyAgQU5EIGQub2lk PXt7ZG9pZH19OjppbnQKK3slIGVuZGlmICV9CitPUkRFUiBCWSBkLnR5cG5h bWUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxh dGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjFfcGx1 cy91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmViOWMwOGYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy91cGRh dGUuc3FsCkBAIC0wLDAgKzEsNjEgQEAKK3slIGlmIGRhdGEgJX0KKyAgeyUg c2V0IG5hbWUgPSBvX2RhdGEubmFtZSAlfQorICB7JSBpZiBkYXRhLm5hbWUg JX0KKyAgICB7JSBpZiBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KKyAg ICAgIEFMVEVSIERPTUFJTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vu c3AsIG9fZGF0YS5uYW1lKSB9fQorICAgICAgICBSRU5BTUUgVE8ge3sgY29u bnxxdElkZW50KGRhdGEubmFtZSkgfX07CisgICAgICAgIHslIHNldCBuYW1l ID0gZGF0YS5uYW1lICV9CisgICAgeyUgZW5kaWYgJX0KKyAgeyUgZW5kaWYg JX0KKworICB7JSBpZiBub3QgZGF0YS50eXBub3RudWxsICV9CisgICAgQUxU RVIgRE9NQUlOIHt7IGNvbm58cXRJZGVudChvX2RhdGEuYmFzZW5zcCwgbmFt ZSkgfX0KKyAgICAgIERST1AgTk9UIE5VTEw7CisgIHslIGVuZGlmICV9CisK KyAgeyUgaWYgZGF0YS50eXBkZWZhdWx0ICV9CisgICAgQUxURVIgRE9NQUlO IHt7IGNvbm58cXRJZGVudChvX2RhdGEuYmFzZW5zcCwgbmFtZSkgfX0KKyAg ICAgIFNFVCBERUZBVUxUIHt7IGRhdGEudHlwZGVmYXVsdHxxdExpdGVyYWwg fX07CisgIHslIGVuZGlmICV9CisKKyAgeyUgaWYgZGF0YS5vd25lciAlfQor ICAgIEFMVEVSIERPTUFJTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vu c3AsIG5hbWUpIH19CisgICAgICBPV05FUiBUTyB7eyBkYXRhLm93bmVyIH19 OworICB7JSBlbmRpZiAlfQorCisgIHslIGlmIGRhdGEuY29uc3RyYWludHMg JX0KKyAgICB7JSBmb3IgYyBpbiBkYXRhLmNvbnN0cmFpbnRzLmFkZGVkICV9 CisgICAgICAgIEFMVEVSIERPTUFJTiB7eyBjb25ufHF0SWRlbnQob19kYXRh LmJhc2Vuc3AsIG5hbWUpIH19CisgICAgICAgIEFERCBDT05TVFJBSU5UIHt7 IGMuY29ubmFtZSB9fSBDSEVDSyAoe3sgYy5jb25zcmMgfX0gKQorICAgICAg ICB7JSBpZiBjLmNvbnZhbGlkYXRlZCAlfSBOT1QgVkFMSUQgeyUgZW5kaWYg JX0geyUgaWYgYy5jb25ub2luaGVyaXQgJX0gTk8gSU5IRVJJVCB7JSBlbmRp ZiAlfTsKKyAgICB7JSBlbmRmb3IgJX0KKyAgeyUgZW5kaWYgJX0KKworICB7 JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KKyAgeyUgaWYg J2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8 bGVuZ3RoID4gMCAlfQorICAgIHslIGZvciByIGluIHNlY2xhYmVscy5kZWxl dGVkICV9CisgICAge3sgU0VDTEFCTEUuRFJPUChjb25uLCAnRE9NQUlOJywg Y29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSwgci5wcm92aWRl cikgfX0KKyAgICB7JSBlbmRmb3IgJX0KKyAgeyUgZW5kaWYgJX0KKyAgeyUg aWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxs ZW5ndGggPiAwICV9CisgICAgeyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVk ICV9CisgICAge3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ0RPTUFJTicsIGNv bm58cXRJZGVudChvX2RhdGEuYmFzZW5zcCwgbmFtZSksIHIucHJvdmlkZXIs IHIubGFiZWwpIH19CisgICAgeyUgZW5kZm9yICV9CisgIHslIGVuZGlmICV9 CisgIHslIGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVs cy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KKyAgICB7JSBmb3IgciBpbiBzZWNs YWJlbHMuY2hhbmdlZCAlfQorICAgIHt7IFNFQ0xBQkxFLkFQUExZKGNvbm4s ICdET01BSU4nLCBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vuc3AsIG5hbWUp LCByLnByb3ZpZGVyLCByLmxhYmVsKSB9fQorICAgIHslIGVuZGZvciAlfQor ICB7JSBlbmRpZiAlfQorCisgIHslIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0K KyAgICBDT01NRU5UIE9OIERPTUFJTiB7eyBjb25ufHF0SWRlbnQob19kYXRh LmJhc2Vuc3AsIG5hbWUpIH19CisgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlv bnxxdExpdGVyYWwgfX07CisgIHslIGVuZGlmICV9CisKKyAgeyUgaWYgZGF0 YS5iYXNlbnNwICV9CisgICAgQUxURVIgRE9NQUlOIHt7IGNvbm58cXRJZGVu dChvX2RhdGEuYmFzZW5zcCwgbmFtZSkgfX0KKyAgICAgIFNFVCBTQ0hFTUEg e3sgY29ubnxxdElkZW50KGRhdGEuYmFzZW5zcCkgfX07CisgIHslIGVuZGlm ICV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9z dGF0aWMvanMvYmFja2Zvcm0ucGdhZG1pbi5qcyBiL3dlYi9wZ2FkbWluL3N0 YXRpYy9qcy9iYWNrZm9ybS5wZ2FkbWluLmpzCmluZGV4IDg4MzdmYTkuLjY3 YTg3MDUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9iYWNr Zm9ybS5wZ2FkbWluLmpzCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9i YWNrZm9ybS5wZ2FkbWluLmpzCkBAIC05OTgsOSArOTk4LDkgQEAKICAgICAg IH0KIAogICAgICAgLy8gSW5zZXJ0IEVkaXQgQ2VsbCBpbnRvIEdyaWQKLSAg ICAgIGlmIChkYXRhLmRpc2FibGVkID09IGZhbHNlICYmIGRhdGEuY2FuRWRp dCkgeworICAgICAgaWYgKGRhdGEuZGlzYWJsZWQgPT0gZmFsc2UgJiYgZGF0 YS5jYW5FZGl0IHx8IGRhdGEuY2FuQWRkKSB7CiAgICAgICAgICAgdmFyIGVk aXRDZWxsID0gQmFja2dyaWQuRXh0ZW5zaW9uLk9iamVjdENlbGwuZXh0ZW5k KHsKLSAgICAgICAgICAgIHNjaGVtYTogZ3JpZFNjaGVtYS5zY2hlbWEKKyAg ICAgICAgICAgIHNjaGVtYTogZ3JpZFNjaGVtYS5zY2hlbWEsIGVkaXRhYmxl OiBmYWxzZQogICAgICAgICAgIH0pOwogCiAgICAgICAgICAgZ3JpZFNjaGVt YS5jb2x1bW5zLnVuc2hpZnQoewpAQCAtMTA0Myw2ICsxMDQzLDcgQEAKICAg ICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICBncmlkLmluc2Vy dFJvdyh7fSk7CiAgICAgICAgIHZhciBuZXdSb3cgPSAkKGdyaWQuYm9keS5y b3dzW2NvbGxlY3Rpb24ubGVuZ3RoIC0gMV0uJGVsKTsKKyAgICAgICAgY29u c29sZS5sb2cobmV3Um93KTsKICAgICAgICAgbmV3Um93LmF0dHIoImNsYXNz IiwgIm5ldyIpLmNsaWNrKGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAkKHRo aXMpLmF0dHIoImNsYXNzIiwgIiIpOwogICAgICAgICB9KTsK --089e0122976e6e1b890529c07f14 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 --089e0122976e6e1b890529c07f14--