Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aLms2-0007I3-AD for pgadmin-hackers@arkaria.postgresql.org; Wed, 20 Jan 2016 07:07:58 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aLms1-00087j-PK for pgadmin-hackers@arkaria.postgresql.org; Wed, 20 Jan 2016 07:07:57 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1aLmrj-0007sJ-JX for pgadmin-hackers@postgresql.org; Wed, 20 Jan 2016 07:07:39 +0000 Received: from mail-lf0-x22b.google.com ([2a00:1450:4010:c07::22b]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aLmrT-00040C-Da for pgadmin-hackers@postgresql.org; Wed, 20 Jan 2016 07:07:38 +0000 Received: by mail-lf0-x22b.google.com with SMTP id m198so206151064lfm.0 for ; Tue, 19 Jan 2016 23:07:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=4xJwgByo2gNKIwcLWIdrlyB+426/n+ZVccbwUHKPllM=; b=Lxui1pkzY+3QPgmKf643VS4XeI51EWDa5Qw44AngB9/Qz31+DMaigCHVqD4CZcHcL8 GON51RODGt67vGk2VjBEkrQuALq37mt57910Arpd8yw3n5BeDDCTqxxm0ihQSRX9rEA6 csHF0I4kviaVbWJeis/PIErJ9cJIvENN1s+L1HSE9SUwRyhgd+M1dlbw16LqyAsH2TRl E3mzjDVgpJpryoqGusNg8vclAK+4tBqITkw1JjhlkLuFlLAK8qp/LyjExluMPOQzLXvG 3LaBINaxVjjEyJL3aFFlLB9tTAxpjCOmnGDnrippoaQ70f7+KME6Q9ln5JDMyxL5LkNw YgDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=4xJwgByo2gNKIwcLWIdrlyB+426/n+ZVccbwUHKPllM=; b=h6WlifLkcK+WTpVyWqEYuSlgijp8FKANpZxpSml0mSIFXZ4zqeomsuxfkuFPXxHNPm Lon1GV98jdNfYplFbd8CkuFSfnScYoZmbQ18IazA83wERfZl96uKf+vDqDpbr3Jl/iDt cssmfzexUNGVv6q5GgfGYXz4wOUJjhTsI2QGoX3EnA2gaukJtM39dnkG2FbMjc08x/BF 4HBK05nSFRAbR8W+PDlWdeE+MV4VHXzX6noI12xEKGt0fX0y1/XmKisGaeSEIsxXlLs3 0O2h9CB5ZtwfzQzH8Mc4AnCnYguyRgjWlpbY7OKEB/eLpQIU1MEHtuAliGKgx/wIP4d6 wxvA== X-Gm-Message-State: ALoCoQll9z/3ztZJMSH6JJjb+BmziJsfmBcFvvlGCy2sHRmFGyXTQswpG9stCnbfid9qCYXsUaGmzuLBa+EKoGpFuwzqcp4dY/RoHbErPBbrSalFxCGJU6E= MIME-Version: 1.0 X-Received: by 10.25.149.21 with SMTP id x21mr12731147lfd.124.1453273641383; Tue, 19 Jan 2016 23:07:21 -0800 (PST) Received: by 10.25.42.138 with HTTP; Tue, 19 Jan 2016 23:07:21 -0800 (PST) In-Reply-To: References: Date: Wed, 20 Jan 2016 12:37:21 +0530 Message-ID: Subject: Re: pgAdmin4 PATCH: Domain Module From: Khushboo Vashi To: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a114020542835470529bea354 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 --001a114020542835470529bea354 Content-Type: multipart/alternative; boundary=001a114020542835400529bea352 --001a114020542835400529bea352 Content-Type: text/plain; charset=UTF-8 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 > --001a114020542835400529bea352 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Resending patch with binary option.

On Wed, Jan 20, 2016 at 10:18 = AM, Khushboo Vashi <khushboo.vashi@enterprisedb.com><= /span> 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=C2=A0 and some Type related validations f= rom the Types module.

Please review it and let me know th= e feedback.

Thanks,
Khushboo

--001a114020542835400529bea352-- --001a114020542835470529bea354 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_ijmhlb271 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 bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGZjZjUwNwotLS0gL2Rldi9u 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 ZGVmaW5lZCwKKyAgICAgICAgICBvaWQ6IHVuZGVmaW5lZCwgCisgICAgICAg ICAgb3duZXI6IHVuZGVmaW5lZCwKKyAgICAgICAgICBiYXNlbnNwOiB1bmRl ZmluZWQsCisgICAgICAgICAgZGVzY3JpcHRpb246IHVuZGVmaW5lZCwKKyAg ICAgICAgICBiYXNldHlwZTogdW5kZWZpbmVkLAorICAgICAgICAgIHR5cGxl bjogdW5kZWZpbmVkLAorICAgICAgICAgIHByZWNpc2lvbjogdW5kZWZpbmVk LAorICAgICAgICAgIHR5cGRlZmF1bHQ6IHVuZGVmaW5lZCwKKyAgICAgICAg ICB0eXBub3RudWxsOiB1bmRlZmluZWQsCisgICAgICAgICAgY29sbG5hbWU6 IHVuZGVmaW5lZCwKKyAgICAgICAgICBjb25zdHJhaW50czogW10sCisgICAg ICAgICAgc2VjbGFiZWxzOiBbXQorICAgICAgICB9LAorICAgICAgICBzY2hl bWE6IFt7CisgICAgICAgICAgaWQ6ICduYW1lJywgbGFiZWw6ICd7eyBfKCdO YW1lJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAn dGV4dCcsIG1vZGU6IFsncHJvcGVydGllcycsICdjcmVhdGUnLCAnZWRpdCdd CisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnb2lkJywgbGFiZWw6J3t7 IF8oJ09pZCcpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlw ZTogJ3RleHQnICwgbW9kZTogWydwcm9wZXJ0aWVzJ10KKyAgICAgICAgfSx7 CisgICAgICAgICAgaWQ6ICdvd25lcicsIGxhYmVsOid7eyBfKCdPd25lcicp IH19JywgY2VsbDogJ3N0cmluZycsIGNvbnRyb2w6IEJhY2tmb3JtLk5vZGVM aXN0QnlOYW1lQ29udHJvbCwKKyAgICAgICAgICBub2RlOiAncm9sZScsICB0 eXBlOiAndGV4dCcsIG1vZGU6IFsnZWRpdCcsICdjcmVhdGUnLCAncHJvcGVy dGllcyddCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnYmFzZW5zcCcs IGxhYmVsOid7eyBfKCdTY2hlbWEnKSB9fScsIGNlbGw6ICdzdHJpbmcnLCBj b250cm9sOiAnbm9kZS1hamF4LW9wdGlvbnMnLAorICAgICAgICAgIHR5cGU6 ICd0ZXh0JywgdXJsOiAnZ2V0X3NjaGVtYXMnCisgICAgICAgIH0seworICAg ICAgICAgIGlkOiAnZGVzY3JpcHRpb24nLCBsYWJlbDone3sgXygnQ29tbWVu dCcpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ211 bHRpbGluZScKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdiYXNldHlw ZScsIGxhYmVsOid7eyBfKCdCYXNlIFR5cGUnKSB9fScsIGNlbGw6ICdzdHJp bmcnLCBjb250cm9sOiAnbm9kZS1hamF4LW9wdGlvbnMnLAorICAgICAgICAg IHR5cGU6ICd0ZXh0JywgbW9kZTpbJ3Byb3BlcnRpZXMnLCAnY3JlYXRlJywg J2VkaXQnXSwgZ3JvdXA6ICdEZWZpbml0aW9uJywgdXJsOiAnZ2V0X3R5cGVz JywKKyAgICAgICAgICBkaXNhYmxlZDogZnVuY3Rpb24obSkgeyByZXR1cm4g IW0uaXNOZXcoKTsgfQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3R5 cGxlbicsIGxhYmVsOid7eyBfKCdMZW5ndGgnKSB9fScsIGNlbGw6ICdzdHJp bmcnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICdEZWZpbml0 aW9uJywgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsgcmV0dXJuICFtLmlzTmV3 KCk7IH0KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdwcmVjaXNpb24n LCBsYWJlbDone3sgXygnUHJlY2lzaW9uJykgfX0nLCBjZWxsOiAnc3RyaW5n JywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIGdyb3VwOiAnRGVmaW5pdGlv bicsIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7IHJldHVybiAhbS5pc05ldygp OyB9CisgICAgICAgIH0seworICAgICAgICAgIGlkOiAndHlwZGVmYXVsdCcs IGxhYmVsOid7eyBfKCdEZWZhdWx0JykgfX0nLCBjZWxsOiAnc3RyaW5nJywK KyAgICAgICAgICB0eXBlOiAndGV4dCcsIGdyb3VwOiAnRGVmaW5pdGlvbicK KyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICd0eXBub3RudWxsJywgbGFi ZWw6J3t7IF8oJ05vdCBOdWxsJykgfX0nLCBjZWxsOiAnYm9vbGVhbicsCisg ICAgICAgICAgdHlwZTogJ3N3aXRjaCcsIGdyb3VwOiAnRGVmaW5pdGlvbicK KyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdjb2xsbmFtZScsIGxhYmVs Oid7eyBfKCdDb2xsYXRpb24nKSB9fScsIGNlbGw6ICdzdHJpbmcnLCBjb250 cm9sOiAnbm9kZS1hamF4LW9wdGlvbnMnLAorICAgICAgICAgIHR5cGU6ICd0 ZXh0JywgZ3JvdXA6ICdEZWZpbml0aW9uJywgdXJsOiAnZ2V0X2NvbGxhdGlv bnMnLCBkaXNhYmxlZDogZnVuY3Rpb24obSkgeyByZXR1cm4gIW0uaXNOZXco KTsgfQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2NvbnN0cmFpbnRz JywgbGFiZWw6J3t7IF8oJ0NvbnN0cmFpbnRzJykgfX0nLCBjZWxsOiAnc3Ry aW5nJywKKyAgICAgICAgICB0eXBlOiAnY29sbGVjdGlvbicsIGdyb3VwOiAn Q29uc3RyYWludHMnLCB2aXNpYmxlOiBmYWxzZSwgbW9kZTogWydlZGl0Jywg J2NyZWF0ZSddLAorICAgICAgICAgIG1vZGVsOiBDb25zdHJhaW50c01vZGVs LCBjYW5BZGQ6IHRydWUsIGNhbkRlbGV0ZTogZmFsc2UsIGNhbkVkaXQ6IGZh bHNlCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnc2VjbGFiZWxzJywg bGFiZWw6ICd7eyBfKCdTZWN1cml0eSBMYWJlbHMnKSB9fScsCisgICAgICAg ICAgbW9kZWw6IFNlY3VyaXR5TW9kZWwsIGVkaXRhYmxlOiBmYWxzZSwgdHlw ZTogJ2NvbGxlY3Rpb24nLAorICAgICAgICAgIGdyb3VwOiAne3sgXygnU2Vj dXJpdHknKSB9fScsIG1vZGU6IFsnZWRpdCcsICdjcmVhdGUnXSwKKyAgICAg ICAgICBtaW5fdmVyc2lvbjogOTAxMDAsIGNhbkFkZDogdHJ1ZSwKKyAgICAg ICAgICBjYW5FZGl0OiBmYWxzZSwgY2FuRGVsZXRlOiB0cnVlLCBjb250cm9s OiAndW5pcXVlLWNvbC1jb2xsZWN0aW9uJworICAgICAgICB9CisgICAgICAg IF0sCisgICAgICAgIHZhbGlkYXRlOiBmdW5jdGlvbigpCisgICAgICAgIHsK KyAgICAgICAgICB2YXIgZXJyID0ge30sCisgICAgICAgICAgICAgIGVycm1z ZywKKyAgICAgICAgICAgICAgc2VjbGFiZWxzID0gdGhpcy5nZXQoJ3NlY2xh YmVscycpOworCisgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5n ZXQoJ25hbWUnKSkgfHwgU3RyaW5nKHRoaXMuZ2V0KCduYW1lJykpLnJlcGxh Y2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgIGVy clsnbmFtZSddID0gJ3t7IF8oJ05hbWUgY2FuIG5vdCBiZSBlbXB0eSEnKSB9 fSc7CisgICAgICAgICAgICBlcnJtc2cgPSBlcnJtc2cgfHwgZXJyWyduYW1l J107CisgICAgICAgICAgfQorCisgICAgICAgICAgaWYgKF8uaXNVbmRlZmlu ZWQodGhpcy5nZXQoJ2Jhc2V0eXBlJykpIHx8IFN0cmluZyh0aGlzLmdldCgn YmFzZXR5cGUnKSkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykg eworICAgICAgICAgICAgZXJyWydiYXNldHlwZSddID0gJ3t7IF8oJ0Jhc2Ug VHlwZSBjYW4gbm90IGJlIGVtcHR5IScpIH19JzsKKyAgICAgICAgICAgIGVy cm1zZyA9IGVycm1zZyB8fCBlcnJbJ2Jhc2V0eXBlJ107CisgICAgICAgICAg fQorCisgICAgICAgICAgaWYgKHNlY2xhYmVscykgeworICAgICAgICAgICAg dmFyIHNlY0xhYmVsc0VycjsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAw OyBpIDwgc2VjbGFiZWxzLm1vZGVscy5sZW5ndGggJiYgIXNlY0xhYmVsc0Vy cjsgaSsrKSB7CisgICAgICAgICAgICAgIHNlY0xhYmVsc0VyciA9IChzZWNs YWJlbHMubW9kZWxzW2ldKS52YWxpZGF0ZS5hcHBseShzZWNsYWJlbHMubW9k ZWxzW2ldKTsKKyAgICAgICAgICAgICAgaWYgKHNlY0xhYmVsc0Vycikgewor ICAgICAgICAgICAgICAgIGVyclsnc2VjbGFiZWxzJ10gPSBzZWNMYWJlbHNF cnI7CisgICAgICAgICAgICAgICAgZXJybXNnID0gZXJybXNnIHx8IHNlY0xh YmVsc0VycjsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg ICAgICAgIH0KKworICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5jbGVhcigp LnNldChlcnIpOworCisgICAgICAgICAgaWYgKF8uc2l6ZShlcnIpKSB7Cisg ICAgICAgICAgICB0aGlzLnRyaWdnZXIoJ29uLXN0YXR1cycsIHttc2c6IGVy cm1zZ30pOworICAgICAgICAgICAgcmV0dXJuIGVycm1zZzsKKyAgICAgICAg ICB9CisKKyAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAg ICAgfSksCisgICAgICBjYW5DcmVhdGU6IGZ1bmN0aW9uKGl0ZW1EYXRhLCBp dGVtLCBkYXRhKSB7CisgICAgICAgIC8vSWYgY2hlY2sgaXMgZmFsc2UgdGhl biAsIHdlIHdpbGwgYWxsb3cgY3JlYXRlIG1lbnUKKyAgICAgICAgaWYgKGRh dGEgJiYgZGF0YS5jaGVjayA9PSBmYWxzZSkKKyAgICAgICAgICByZXR1cm4g dHJ1ZTsKKworICAgICAgICB2YXIgdCA9IHBnQnJvd3Nlci50cmVlLCBpID0g aXRlbSwgZCA9IGl0ZW1EYXRhOworICAgICAgICAvLyBUbyBpdGVyYXRlIG92 ZXIgdHJlZSB0byBjaGVjayBwYXJlbnQgbm9kZQorICAgICAgICB3aGlsZSAo aSkgeworICAgICAgICAgIC8vIElmIGl0IGlzIHNjaGVtYSB0aGVuIGFsbG93 IHVzZXIgdG8gY3JlYXRlIGRvbWFpbgorICAgICAgICAgIGlmIChfLmluZGV4 T2YoWydzY2hlbWEnXSwgZC5fdHlwZSkgPiAtMSkKKyAgICAgICAgICAgIHJl dHVybiB0cnVlOworCisgICAgICAgICAgaWYgKCdjb2xsLWRvbWFpbicgPT0g ZC5fdHlwZSkgeworICAgICAgICAgICAgLy9DaGVjayBpZiB3ZSBhcmUgbm90 IGNoaWxkIG9mIGNhdGFsb2cKKyAgICAgICAgICAgIHByZXZfaSA9IHQuaGFz UGFyZW50KGkpID8gdC5wYXJlbnQoaSkgOiBudWxsOworICAgICAgICAgICAg cHJldl9kID0gcHJldl9pID8gdC5pdGVtRGF0YShwcmV2X2kpIDogbnVsbDsK KyAgICAgICAgICAgIGlmKCBwcmV2X2QuX3R5cGUgPT0gJ2NhdGFsb2cnKSB7 CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0g ZWxzZSB7CisgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAg ICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBpID0gdC5oYXNQYXJlbnQo aSkgPyB0LnBhcmVudChpKSA6IG51bGw7CisgICAgICAgICAgZCA9IGkgPyB0 Lml0ZW1EYXRhKGkpIDogbnVsbDsKKyAgICAgICAgfQorICAgICAgICAvLyBi eSBkZWZhdWx0IHdlIGRvIG5vdCB3YW50IHRvIGFsbG93IGNyZWF0ZSBtZW51 CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgfQorICB9KTsKKworICB9 CisKKyAgcmV0dXJuIHBnQnJvd3Nlci5Ob2Rlc1snZG9tYWluJ107Cit9KTsK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVz L2RvbWFpbnMvc3FsLzkuMV9wbHVzL2JhY2tlbmRfc3VwcG9ydC5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85 LjFfcGx1cy9iYWNrZW5kX3N1cHBvcnQuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjc0MTdiNDMKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3Nx bC85LjFfcGx1cy9iYWNrZW5kX3N1cHBvcnQuc3FsCkBAIC0wLDAgKzEsMjAg QEAKK1NFTEVDVAorICBDQVNFIFdIRU4gbnNwLm5zcG5hbWUgSU4gKCdzeXMn LCAnZGJvJywgJ2luZm9ybWF0aW9uX3NjaGVtYScpIFRIRU4gdHJ1ZSBFTFNF IGZhbHNlIEVORCBBUyBkYlN1cHBvcnQKK0ZST00KKyAgcGdfbmFtZXNwYWNl IG5zcAorV0hFUkUKKyAgbnNwLm9pZD17e3NjaWR9fTo6aW50CisgIEFORCAo CisgICAgKG5zcG5hbWUgPSAncGdfY2F0YWxvZycgQU5EIEVYSVNUUyAKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFNFTEVDVCAxIEZS T00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICdwZ19jbGFzcycgQU5EIHJl bG5hbWVzcGFjZSA9IG5zcC5vaWQgTElNSVQgMSkpCisgICAgT1IgKG5zcG5h bWUgPSAncGdhZ2VudCcgQU5EIEVYSVNUUworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoU0VMRUNUIDEgRlJPTSBwZ19jbGFzcyBXSEVS RSByZWxuYW1lID0gJ3BnYV9qb2InIEFORCByZWxuYW1lc3BhY2UgPSBuc3Au b2lkIExJTUlUIDEpKQorICAgIE9SIChuc3BuYW1lID0gJ2luZm9ybWF0aW9u X3NjaGVtYScgQU5EIEVYSVNUUyAKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVs bmFtZSA9ICd0YWJsZXMnIEFORCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJ TUlUIDEpKQorICAgIE9SIChuc3BuYW1lIExJS0UgJ18lJyBBTkQgRVhJU1RT IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU0VMRUNU IDEgRlJPTSBwZ19wcm9jIFdIRVJFIHByb25hbWU9J3Nsb255dmVyc2lvbicg QU5EIHByb25hbWVzcGFjZSA9IG5zcC5vaWQgTElNSVQgMSkpCisgICAgKQor ICBBTkQKKyAgIG5zcG5hbWUgTk9UIExJS0UgRSdwZ1xcdGVtcFxcJScKKyAg QU5ECisgICBuc3BuYW1lIE5PVCBMSUtFIEUncGdcXHRvYXN0X3RlbXBcXCUn ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4x X3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVt cGxhdGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDRjZGZlMAotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVz L2RvbWFpbnMvc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwKQEAgLTAsMCArMSwz MiBAQAoreyUgaW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBT RUNMQUJMRSAlfQorCit7JSBpZiBkYXRhICV9CisgIENSRUFURSBET01BSU4g e3sgY29ubnxxdElkZW50KGRhdGEuYmFzZW5zcCwgZGF0YS5uYW1lKSB9fQor ICAgIEFTIHt7IGRhdGEuYmFzZXR5cGUgfX0KKyAgeyUgaWYgZGF0YS5jb2xs bmFtZSAlfQorICAgIENPTExBVEUge3sgZGF0YS5jb2xsbmFtZSB9fQorICB7 JSBlbmRpZiAlfQorCisgIHslIGlmIGRhdGEudHlwbm90bnVsbCAlfQorICAg IE5PVCBOVUxMCisgIHslIGVuZGlmICV9CisgIDsKKworICB7JSBpZiBkYXRh LmNvbnN0cmFpbnRzICV9CisgICAgeyUgZm9yIGMgaW4gZGF0YS5jb25zdHJh aW50cyAlfQorICAgICAgQUxURVIgRE9NQUlOIHt7IGNvbm58cXRJZGVudChk YXRhLmJhc2Vuc3AsIGRhdGEubmFtZSkgfX0KKyAgICAgIEFERCBDT05TVFJB SU5UIHt7IGMuY29ubmFtZSB9fSBDSEVDSyAoe3sgYy5jb25zcmMgfX0gKQor ICAgICAgeyUgaWYgYy5jb252YWxpZGF0ZWQgJX0gTk9UIFZBTElEIHslIGVu ZGlmICV9IHslIGlmIGMuY29ubm9pbmhlcml0ICV9IE5PIElOSEVSSVQgeyUg ZW5kaWYgJX07CisgICAgeyUgZW5kZm9yICV9CisgIHslIGVuZGlmICV9CisK KyAgQUxURVIgRE9NQUlOIHt7IGNvbm58cXRJZGVudChkYXRhLmJhc2Vuc3As IGRhdGEubmFtZSkgfX0gT1dORVIgVE8ge3sgZGF0YS5vd25lciB9fTsKKyAg eyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorICAgIENPTU1FTlQgT04gRE9N QUlOIHt7IGNvbm58cXRJZGVudChkYXRhLmJhc2Vuc3AsIGRhdGEubmFtZSkg fX0KKyAgICBJUyAne3sgZGF0YS5kZXNjcmlwdGlvbiB9fSc7CisgIHslIGVu ZGlmICV9CisKKyAgeyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KKyAg ICB7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnRE9NQUlOJywgZGF0YS5uYW1l LCByLnByb3ZpZGVyLCByLmxhYmVsKSB9fQorICB7JSBlbmRmb3IgJX0KK3sl IGVuZGlmICV9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlu cy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Rv bWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL2RlbGV0ZS5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc0MGY0 ZgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMv dGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwKQEAg LTAsMCArMSwxMSBAQAoreyUgaWYgc2NpZCBhbmQgZG9pZCAlfQorICBTRUxF Q1QgZC50eXBuYW1lIGFzIG5hbWUsIGJuLm5zcG5hbWUgYXMgYmFzZW5zcAor ICBGUk9NIHBnX3R5cGUgZAorICBKT0lOIHBnX25hbWVzcGFjZSBibiBPTiBi bi5vaWQ9ZC50eXBuYW1lc3BhY2UKKyAgV0hFUkUgZC50eXBuYW1lc3BhY2Ug PSB7e3NjaWR9fTo6b2lkCisgIEFORCBkLm9pZD17e2RvaWR9fTo6aW50Owor eyUgZW5kaWYgJX0KKworeyUgaWYgbmFtZSAlfQorICBEUk9QIERPTUFJTiB7 eyBjb25ufHF0SWRlbnQoYmFzZW5zcCwgbmFtZSkgfX17JSBpZiBjYXNjYWRl JX0gQ0FTQ0FERXslIGVuZGlmICV9Cit7JSBlbmRpZiAlfQpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2RvbWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL2dldF9j b2xsYXRpb25zLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxh dGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL2dldF9jb2xsYXRpb25zLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YTEzYTY1Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1w bGF0ZXMvZG9tYWlucy9zcWwvOS4xX3BsdXMvZ2V0X2NvbGxhdGlvbnMuc3Fs CkBAIC0wLDAgKzEsNyBAQAorU0VMRUNUIC0tbnNwbmFtZSwgY29sbG5hbWUs CisgIENBU0UgV0hFTiBsZW5ndGgobnNwbmFtZSkgPiAwIEFORCBsZW5ndGgo Y29sbG5hbWUpID4gMCAgVEhFTgorICBjb25jYXQobnNwbmFtZSwgJy4iJywg Y29sbG5hbWUsJyInKQorICBFTFNFICcnIEVORCBBUyBjb3B5X2NvbGxhdGlv bgorRlJPTSBwZ19jb2xsYXRpb24gYywgcGdfbmFtZXNwYWNlIG4KK1dIRVJF IGMuY29sbG5hbWVzcGFjZT1uLm9pZAorT1JERVIgQlkgbnNwbmFtZSwgY29s bG5hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3Rl bXBsYXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy9nZXRfY29uc3RyYWludHMu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlu cy9zcWwvOS4xX3BsdXMvZ2V0X2NvbnN0cmFpbnRzLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjY5OThmCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9t YWlucy9zcWwvOS4xX3BsdXMvZ2V0X2NvbnN0cmFpbnRzLnNxbApAQCAtMCww ICsxLDE4IEBACitTRUxFQ1QgJ1RBQkxFJyBBUyBvYmplY3RraW5kLCBjLm9p ZCwgY29ubmFtZSwgcmVsbmFtZSwgbnNwbmFtZSwgZGVzY3JpcHRpb24sCisg IHBnX2dldF9leHByKGNvbmJpbiwgY29ucmVsaWQsIHRydWUpIGFzIGNvbnNy YywgY29ubm9pbmhlcml0LCBjb252YWxpZGF0ZWQgIEZST00gcGdfY29uc3Ry YWludCBjCitKT0lOIHBnX2NsYXNzIGNsIE9OIGNsLm9pZD1jb25yZWxpZAor Sk9JTiBwZ19uYW1lc3BhY2UgbmwgT04gbmwub2lkPXJlbG5hbWVzcGFjZQor TEVGVCBPVVRFUiBKT0lOIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9i am9pZD1jLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19jb25zdHJhaW50Jzo6 cmVnY2xhc3MpCitXSEVSRSBjb250eXBlID0gJ2MnIEFORCBjb25yZWxpZCA9 ICB7e2RvaWR9fTo6b2lkCitVTklPTgorU0VMRUNUICdET01BSU4nIEFTIG9i amVjdGtpbmQsIGMub2lkLCBjb25uYW1lLCB0eXBuYW1lIGFzIHJlbG5hbWUs IG5zcG5hbWUsIGRlc2NyaXB0aW9uLAorICByZWdleHBfcmVwbGFjZShwZ19n ZXRfY29uc3RyYWludGRlZihjLm9pZCwgdHJ1ZSksIEUnQ0hFQ0sgXFwoKC4q KVxcKS4qJywgRSdcXDEnKSBhcyBjb25zcmMKKywgY29ubm9pbmhlcml0LCBj b252YWxpZGF0ZWQKK0ZST00gcGdfY29uc3RyYWludCBjCitKT0lOIHBnX3R5 cGUgdCBPTiB0Lm9pZD1jb250eXBpZAorSk9JTiBwZ19uYW1lc3BhY2Ugbmwg T04gbmwub2lkPXR5cG5hbWVzcGFjZQorCitMRUZUIE9VVEVSIEpPSU4gcGdf ZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPXQub2lkIEFORCBkZXMu Y2xhc3NvaWQ9J3BnX2NvbnN0cmFpbnQnOjpyZWdjbGFzcykKKworIFdIRVJF IGNvbnR5cGUgPSAnYycgQU5EIGNvbnR5cGlkID0gIHt7ZG9pZH19OjpvaWQK K09SREVSIEJZIGNvbm5hbWUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRl cy9kb21haW5zL3NxbC85LjFfcGx1cy9nZXRfb2lkLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVz L2dldF9vaWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjFjMjZkNmIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy9nZXRf b2lkLnNxbApAQCAtMCwwICsxLDEwIEBACitTRUxFQ1QKKyAgZC5vaWQsIGQu dHlwbmFtZSBhcyBuYW1lCitGUk9NCisgIHBnX3R5cGUgZAorSk9JTgorICBw Z19uYW1lc3BhY2UgYm4gT04gYm4ub2lkPWQudHlwbmFtZXNwYWNlCitXSEVS RQorICBibi5uc3BuYW1lID0ge3sgYmFzZW5zcHxxdExpdGVyYWwgfX0KKyAg QU5EIGQudHlwbmFtZT17eyBuYW1lfHF0TGl0ZXJhbCB9fQorCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5z L3NxbC85LjFfcGx1cy9nZXRfc2NoZW1hcy5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy9nZXRf c2NoZW1hcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uODJkY2ZjYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2RvbWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL2dldF9z Y2hlbWFzLnNxbApAQCAtMCwwICsxLDIxIEBACitTRUxFQ1QKKyAgbnNwLm5z cG5hbWUKK0ZST00KKyAgcGdfbmFtZXNwYWNlIG5zcAorICBMRUZUIE9VVEVS IEpPSU4gcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPW5zcC5v aWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfbmFtZXNwYWNlJzo6cmVnY2xhc3Mp CisgIExFRlQgT1VURVIgSk9JTiBwZ19jYXRhbG9nLnBnX2RlZmF1bHRfYWNs IGRhY2wgT04gKGRhY2wuZGVmYWNsbmFtZXNwYWNlID0gbnNwLm9pZCkKK1dI RVJFCisgIE5PVCAoKG5zcG5hbWUgPSAncGdfY2F0YWxvZycgQU5EIEVYSVNU UworICAgIChTRUxFQ1QgMSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUg PSAncGdfY2xhc3MnIEFORCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlU IDEpKSBPUgorICAobnNwbmFtZSA9ICdwZ2FnZW50JyBBTkQgRVhJU1RTCisg ICAgKFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICdw Z2Ffam9iJyBBTkQgcmVsbmFtZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAxKSkg T1IKKyAgKG5zcG5hbWUgPSAnaW5mb3JtYXRpb25fc2NoZW1hJyBBTkQgRVhJ U1RTCisgICAgKFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFt ZSA9ICd0YWJsZXMnIEFORCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlU IDEpKSBPUgorICAobnNwbmFtZSBMSUtFICdfJScgQU5EIEVYSVNUUworICAg ICAgKFNFTEVDVCAxIEZST00gcGdfcHJvYyBXSEVSRSBwcm9uYW1lPSdzbG9u eXZlcnNpb24nIEFORCBwcm9uYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEp KQorICApQU5ECisgIG5zcG5hbWUgTk9UIExJS0UgRSdwZ1xcdGVtcFxcJScg QU5ECisgIG5zcG5hbWUgTk9UIExJS0UgRSdwZ1xcdG9hc3RfdGVtcFxcJScg QU5ECisgIC0tIEFEREVEOiBCZWNhdXNlIFdlIG5lZWQgdG8gb21pdCBzeXN0 ZW0gc2NoZW1hIGV4Y2VwdCB0aGUgb25lIG9uIHdoaWNoIHdlIGFyZSB0cnlp bmcgdG8gIGNyZWF0ZSBjb2xsYXRpb24KKyAgKCBuc3Aub2lkID0ge3sgc2Np ZCB9fSBPUiBuc3BuYW1lIE5PVCBMSUtFIEUncGdcXF8lJyApCitPUkRFUiBC WSBuc3BuYW1lOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVzL2RvbWFp bnMvc3FsLzkuMV9wbHVzL2dldF90eXBlcy5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy9nZXRf dHlwZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmU0NzMwNTYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9k b21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy9nZXRfdHlw ZXMuc3FsCkBAIC0wLDAgKzEsNyBAQAorU0VMRUNUICogRlJPTSAoU0VMRUNU IGZvcm1hdF90eXBlKHQub2lkLE5VTEwpIEFTIHR5cG5hbWUsIENBU0UgV0hF TiB0eXBlbGVtID4gMCBUSEVOIHR5cGVsZW0gRUxTRSB0Lm9pZCBFTkQgYXMg ZWxlbW9pZCwgdHlwbGVuLCB0eXB0eXBlLCB0Lm9pZCwgbnNwbmFtZSwKKyAg ICAgICAoU0VMRUNUIENPVU5UKDEpIEZST00gcGdfdHlwZSB0MiBXSEVSRSB0 Mi50eXBuYW1lID0gdC50eXBuYW1lKSA+IDEgQVMgaXNkdXAKKyAgRlJPTSBw Z190eXBlIHQKKyAgSk9JTiBwZ19uYW1lc3BhY2UgbnNwIE9OIHR5cG5hbWVz cGFjZT1uc3Aub2lkCisgV0hFUkUgKE5PVCAodHlwbmFtZSA9ICd1bmtub3du JyBBTkQgbnNwbmFtZSA9ICdwZ19jYXRhbG9nJykpIEFORCB0eXBpc2RlZmlu ZWQgQU5EIHR5cHR5cGUgSU4gKCdiJywgJ2MnLCAnZScsICdyJylBTkQgTk9U IEVYSVNUUworIChzZWxlY3QgMSBmcm9tIHBnX2NsYXNzIHdoZXJlIHJlbG5h bWVzcGFjZT10eXBuYW1lc3BhY2UgYW5kIHJlbG5hbWUgPSB0eXBuYW1lIGFu ZCByZWxraW5kICE9ICdjJykgQU5EICh0eXBuYW1lIG5vdCBsaWtlICdfJScg T1IgTk9UIEVYSVNUUyAoc2VsZWN0IDEgZnJvbSBwZ19jbGFzcyB3aGVyZSBy ZWxuYW1lc3BhY2U9dHlwbmFtZXNwYWNlIGFuZCByZWxuYW1lID0gc3Vic3Ry aW5nKHR5cG5hbWUgZnJvbSAyKTo6bmFtZSBhbmQgcmVsa2luZCAhPSAnYycp KSAKKyAgKSBBUyBkdW1teSBPUkRFUiBCWSBuc3BuYW1lIDw+ICdwZ19jYXRh bG9nJywgbnNwbmFtZSA8PiAncHVibGljJywgbnNwbmFtZSwgMQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlu cy9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy9wcm9w ZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li45MDFkMDUzCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4xX3BsdXMvcHJvcGVy dGllcy5zcWwKQEAgLTAsMCArMSwyMCBAQAorU0VMRUNUIGQub2lkLCBkLnR5 cG5hbWUgYXMgbmFtZSwgZC50eXBiYXNldHlwZSwgZm9ybWF0X3R5cGUoYi5v aWQsTlVMTCkgYXMgYmFzZXR5cGUsIHBnX2dldF91c2VyYnlpZChkLnR5cG93 bmVyKSBhcyBvd25lciwKKyAgYy5vaWQgQVMgY29sbG9pZCwKKyAgQ0FTRSBX SEVOIGxlbmd0aChjbi5uc3BuYW1lKSA+IDAgQU5EIGxlbmd0aChjLmNvbGxu YW1lKSA+IDAgVEhFTgorICBjb25jYXQoY24ubnNwbmFtZSwgJy4iJywgYy5j b2xsbmFtZSwnIicpCisgIEVMU0UgJycgRU5EIEFTIGNvbGxuYW1lLAorICBk LnR5cGxlbiwgZC50eXB0eXBtb2QsIGQudHlwbm90bnVsbCwgZC50eXBkZWZh dWx0LCBkLnR5cG5kaW1zLCBkLnR5cGRlbGltLCBibi5uc3BuYW1lIGFzIGJh c2Vuc3AsCisgIGRlc2NyaXB0aW9uLCAoU0VMRUNUIENPVU5UKDEpIEZST00g cGdfdHlwZSB0MiBXSEVSRSB0Mi50eXBuYW1lPWQudHlwbmFtZSkgPiAxIEFT IGRvbWlzZHVwLAorICAoU0VMRUNUIENPVU5UKDEpIEZST00gcGdfdHlwZSB0 MyBXSEVSRSB0My50eXBuYW1lPWIudHlwbmFtZSkgPiAxIEFTIGJhc2Vpc2R1 cCwKKyAgKFNFTEVDVCBhcnJheV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxh YmVsKSBGUk9NIHBnX3Noc2VjbGFiZWwgc2wxIFdIRVJFIHNsMS5vYmpvaWQ9 ZC5vaWQpIEFTIHNlY2xhYmVscworRlJPTSBwZ190eXBlIGQKKyAgSk9JTiBw Z190eXBlIGIgT04gYi5vaWQgPSBkLnR5cGJhc2V0eXBlCisgIEpPSU4gcGdf bmFtZXNwYWNlIGJuIE9OIGJuLm9pZD1kLnR5cG5hbWVzcGFjZQorICBMRUZU IE9VVEVSIEpPSU4gcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lk PWQub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX3R5cGUnOjpyZWdjbGFzcykK KyAgTEVGVCBPVVRFUiBKT0lOIHBnX2NvbGxhdGlvbiBjIE9OIGQudHlwY29s bGF0aW9uPWMub2lkCisgIExFRlQgT1VURVIgSk9JTiBwZ19uYW1lc3BhY2Ug Y24gT04gYy5jb2xsbmFtZXNwYWNlPWNuLm9pZAorV0hFUkUgZC50eXBuYW1l c3BhY2UgPSB7e3NjaWR9fTo6b2lkCit7JSBpZiBkb2lkICV9CisgIEFORCBk Lm9pZD17e2RvaWR9fTo6aW50Cit7JSBlbmRpZiAlfQorT1JERVIgQlkgZC50 eXBuYW1lCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3Rl bXBsYXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy91cGRhdGUuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4x X3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5lYjljMDhmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4xX3BsdXMv dXBkYXRlLnNxbApAQCAtMCwwICsxLDYxIEBACit7JSBpZiBkYXRhICV9Cisg IHslIHNldCBuYW1lID0gb19kYXRhLm5hbWUgJX0KKyAgeyUgaWYgZGF0YS5u YW1lICV9CisgICAgeyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9 CisgICAgICBBTFRFUiBET01BSU4ge3sgY29ubnxxdElkZW50KG9fZGF0YS5i YXNlbnNwLCBvX2RhdGEubmFtZSkgfX0KKyAgICAgICAgUkVOQU1FIFRPIHt7 IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19OworICAgICAgICB7JSBzZXQg bmFtZSA9IGRhdGEubmFtZSAlfQorICAgIHslIGVuZGlmICV9CisgIHslIGVu ZGlmICV9CisKKyAgeyUgaWYgbm90IGRhdGEudHlwbm90bnVsbCAlfQorICAg IEFMVEVSIERPTUFJTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vuc3As IG5hbWUpIH19CisgICAgICBEUk9QIE5PVCBOVUxMOworICB7JSBlbmRpZiAl fQorCisgIHslIGlmIGRhdGEudHlwZGVmYXVsdCAlfQorICAgIEFMVEVSIERP TUFJTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vuc3AsIG5hbWUpIH19 CisgICAgICBTRVQgREVGQVVMVCB7eyBkYXRhLnR5cGRlZmF1bHR8cXRMaXRl cmFsIH19OworICB7JSBlbmRpZiAlfQorCisgIHslIGlmIGRhdGEub3duZXIg JX0KKyAgICBBTFRFUiBET01BSU4ge3sgY29ubnxxdElkZW50KG9fZGF0YS5i YXNlbnNwLCBuYW1lKSB9fQorICAgICAgT1dORVIgVE8ge3sgZGF0YS5vd25l ciB9fTsKKyAgeyUgZW5kaWYgJX0KKworICB7JSBpZiBkYXRhLmNvbnN0cmFp bnRzICV9CisgICAgeyUgZm9yIGMgaW4gZGF0YS5jb25zdHJhaW50cy5hZGRl ZCAlfQorICAgICAgICBBTFRFUiBET01BSU4ge3sgY29ubnxxdElkZW50KG9f ZGF0YS5iYXNlbnNwLCBuYW1lKSB9fQorICAgICAgICBBREQgQ09OU1RSQUlO VCB7eyBjLmNvbm5hbWUgfX0gQ0hFQ0sgKHt7IGMuY29uc3JjIH19ICkKKyAg ICAgICAgeyUgaWYgYy5jb252YWxpZGF0ZWQgJX0gTk9UIFZBTElEIHslIGVu ZGlmICV9IHslIGlmIGMuY29ubm9pbmhlcml0ICV9IE5PIElOSEVSSVQgeyUg ZW5kaWYgJX07CisgICAgeyUgZW5kZm9yICV9CisgIHslIGVuZGlmICV9CisK KyAgeyUgc2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9CisgIHsl IGlmICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxl dGVkfGxlbmd0aCA+IDAgJX0KKyAgICB7JSBmb3IgciBpbiBzZWNsYWJlbHMu ZGVsZXRlZCAlfQorICAgIHt7IFNFQ0xBQkxFLkRST1AoY29ubiwgJ0RPTUFJ TicsIGNvbm58cXRJZGVudChvX2RhdGEuYmFzZW5zcCwgbmFtZSksIHIucHJv dmlkZXIpIH19CisgICAgeyUgZW5kZm9yICV9CisgIHslIGVuZGlmICV9Cisg IHslIGlmICdhZGRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRk ZWR8bGVuZ3RoID4gMCAlfQorICAgIHslIGZvciByIGluIHNlY2xhYmVscy5h ZGRlZCAlfQorICAgIHt7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdET01BSU4n LCBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vuc3AsIG5hbWUpLCByLnByb3Zp ZGVyLCByLmxhYmVsKSB9fQorICAgIHslIGVuZGZvciAlfQorICB7JSBlbmRp ZiAlfQorICB7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNs YWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9CisgICAgeyUgZm9yIHIgaW4g c2VjbGFiZWxzLmNoYW5nZWQgJX0KKyAgICB7eyBTRUNMQUJMRS5BUFBMWShj b25uLCAnRE9NQUlOJywgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBu YW1lKSwgci5wcm92aWRlciwgci5sYWJlbCkgfX0KKyAgICB7JSBlbmRmb3Ig JX0KKyAgeyUgZW5kaWYgJX0KKworICB7JSBpZiBkYXRhLmRlc2NyaXB0aW9u ICV9CisgICAgQ09NTUVOVCBPTiBET01BSU4ge3sgY29ubnxxdElkZW50KG9f ZGF0YS5iYXNlbnNwLCBuYW1lKSB9fQorICAgIElTIHt7IGRhdGEuZGVzY3Jp cHRpb258cXRMaXRlcmFsIH19OworICB7JSBlbmRpZiAlfQorCisgIHslIGlm IGRhdGEuYmFzZW5zcCAlfQorICAgIEFMVEVSIERPTUFJTiB7eyBjb25ufHF0 SWRlbnQob19kYXRhLmJhc2Vuc3AsIG5hbWUpIH19CisgICAgICBTRVQgU0NI RU1BIHt7IGNvbm58cXRJZGVudChkYXRhLmJhc2Vuc3ApIH19OworICB7JSBl bmRpZiAlfQorCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vc3RhdGljL2pzL2JhY2tmb3JtLnBnYWRtaW4uanMgYi93ZWIvcGdhZG1p bi9zdGF0aWMvanMvYmFja2Zvcm0ucGdhZG1pbi5qcwppbmRleCA4ODM3ZmE5 Li42N2E4NzA1IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMv YmFja2Zvcm0ucGdhZG1pbi5qcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMv anMvYmFja2Zvcm0ucGdhZG1pbi5qcwpAQCAtOTk4LDkgKzk5OCw5IEBACiAg ICAgICB9CiAKICAgICAgIC8vIEluc2VydCBFZGl0IENlbGwgaW50byBHcmlk Ci0gICAgICBpZiAoZGF0YS5kaXNhYmxlZCA9PSBmYWxzZSAmJiBkYXRhLmNh bkVkaXQpIHsKKyAgICAgIGlmIChkYXRhLmRpc2FibGVkID09IGZhbHNlICYm IGRhdGEuY2FuRWRpdCB8fCBkYXRhLmNhbkFkZCkgewogICAgICAgICAgIHZh ciBlZGl0Q2VsbCA9IEJhY2tncmlkLkV4dGVuc2lvbi5PYmplY3RDZWxsLmV4 dGVuZCh7Ci0gICAgICAgICAgICBzY2hlbWE6IGdyaWRTY2hlbWEuc2NoZW1h CisgICAgICAgICAgICBzY2hlbWE6IGdyaWRTY2hlbWEuc2NoZW1hLCBlZGl0 YWJsZTogZmFsc2UKICAgICAgICAgICB9KTsKIAogICAgICAgICAgIGdyaWRT Y2hlbWEuY29sdW1ucy51bnNoaWZ0KHsKQEAgLTEwNDMsNiArMTA0Myw3IEBA CiAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgZ3JpZC5p bnNlcnRSb3coe30pOwogICAgICAgICB2YXIgbmV3Um93ID0gJChncmlkLmJv ZHkucm93c1tjb2xsZWN0aW9uLmxlbmd0aCAtIDFdLiRlbCk7CisgICAgICAg IGNvbnNvbGUubG9nKG5ld1Jvdyk7CiAgICAgICAgIG5ld1Jvdy5hdHRyKCJj bGFzcyIsICJuZXciKS5jbGljayhmdW5jdGlvbihlKSB7CiAgICAgICAgICAg JCh0aGlzKS5hdHRyKCJjbGFzcyIsICIiKTsKICAgICAgICAgfSk7Cg== --001a114020542835470529bea354 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 --001a114020542835470529bea354--