Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ao6SX-0006Af-U5 for pgadmin-hackers@arkaria.postgresql.org; Thu, 07 Apr 2016 09:42:42 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1ao6SX-0006Gk-FZ for pgadmin-hackers@arkaria.postgresql.org; Thu, 07 Apr 2016 09:42:41 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ao5iI-0004Rg-Jv for pgadmin-hackers@postgresql.org; Thu, 07 Apr 2016 08:54:55 +0000 Received: from mail-wm0-x234.google.com ([2a00:1450:400c:c09::234]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1ao5i9-0004s4-QJ for pgadmin-hackers@postgresql.org; Thu, 07 Apr 2016 08:54:53 +0000 Received: by mail-wm0-x234.google.com with SMTP id u206so77502979wme.1 for ; Thu, 07 Apr 2016 01:54:45 -0700 (PDT) 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:from:date:message-id:subject:to; bh=uwl0O9nZAUgE801A65IFsmxJOicoasO8OH4Hple8/QA=; b=dfvpY9o5LzHKa1xLqATQ9+/hOD3mzMQnvqnjtXHOEVUptLxG4GtUsR4F7AJGQscLPN eMBTuC0CcJwWistNvvKLcD54V1inAONt8S1xurAy0XZdy5xUXvnRGmdeZJQvV3V+6d97 ONYFpjEi79xB0eMEd8lAxFfOpcakNgcMWnv6536Ji0SW0F9osRlxJNszy6h/s+MJdHVF dp5FaSTzALthw5XoeZ41DfDyOC/ohxMzu9yEr3tyFr99baPDGNWxlV/AxRwGp8dH/H26 IPD77Mm+SWD5mI9ELg0hWQG17fw2pjJy3P7kjVKGc3A4xkkbGcxW7pvxOWHEZoQuFTZu 1nIA== 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:from:date :message-id:subject:to; bh=uwl0O9nZAUgE801A65IFsmxJOicoasO8OH4Hple8/QA=; b=mBQ2vN/iaJigb/1mOhjWKN4OsCcPCb/iTXHCPgPReYJksR7rYgkmJkKgCpLjE/sQWT 8ZbPUAOih9PdJtGnqPvSt8XMz9ristsfNw8lT2gZ07jM/Ml9t8G4hQ0JLdJB43JJbKcO xmykFFT9h9TiSUQcPwbLhJ5mCwV0vOHf5szDC8QghNUegQRQbieMPULJKmlQjsva7TtO 7S1/gcP0Ai9wIAGS86fCFU1LUwhsMt1u0NB0BVhIN5SubJOlJf9UcfQA7rZeEeKwKDze ZKda71GzNzl/L8B6Kwuxm7oU1Y3lrrEF1WlVQY1KY5wafZSaZolulqi5tvd94hqHtWco 17Ag== X-Gm-Message-State: AD7BkJLSwjPo6zwTrsXLRG0ITnB7EQoQm+5kGXB8Kfbpt9GbpOrvDeCWNHLP5+1ILtrnSuyb3N6G9Lx48lOcAp/x X-Received: by 10.194.78.83 with SMTP id z19mr2099738wjw.5.1460019283787; Thu, 07 Apr 2016 01:54:43 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.55.9 with HTTP; Thu, 7 Apr 2016 01:54:14 -0700 (PDT) In-Reply-To: References: From: Surinder Kumar Date: Thu, 7 Apr 2016 14:24:14 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch]: Tables Sub nodes(Columns, Indexes, rules & triggers) Patch To: pgadmin-hackers Content-Type: multipart/mixed; boundary=047d7bf0c29ac731b5052fe13a96 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 --047d7bf0c29ac731b5052fe13a96 Content-Type: multipart/alternative; boundary=047d7bf0c29ac731b0052fe13a94 --047d7bf0c29ac731b0052fe13a94 Content-Type: text/plain; charset=UTF-8 Hi, PFA updated patch with couple of changes which are following: 1. Couldn't create new Rule because model's field *view* is passed undefined. Now it is fixed. 2. Removed trailing whitespaces from code. Please review the patch. On Wed, Mar 23, 2016 at 9:14 PM, Surinder Kumar < surinder.kumar@enterprisedb.com> wrote: > Hi, > > This patch contains following nodes: > 1. Columns > 2. Indexes > 3 Rule > 4. Trigger > > I am using murtuza's patch with little changes to show above nodes under *view > and materialized view.* > > This patch is only for *Tables sub node*. @murtuaza is working on table > node which is not completed. > > *Note*: Please apply patch for utility function "Added Utility functions > for triggers node and rules node" first then apply this patch. > > Please review it. > > > Thanks, > Surinder Kumar > > > > > > --047d7bf0c29ac731b0052fe13a94 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

PFA updated patch with couple= of changes which are following:
  1. Couldn't create new Rule b= ecause model's field=C2=A0view=C2=A0is passed undefined. Now it = is fixed.
  2. Removed trailing whitespaces from code.
=

Please review the patch.



--047d7bf0c29ac731b0052fe13a94-- --047d7bf0c29ac731b5052fe13a96 Content-Type: application/octet-stream; name="tables_subnodes_v1.patch" Content-Disposition: attachment; filename="tables_subnodes_v1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_imq1q4581 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9fX2luaXRfXy5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9fX2luaXRfXy5weQpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NmNjN2YyCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL19faW5pdF9fLnB5 CkBAIC0wLDAgKzEsOCBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBD b3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9w bWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIg dGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy9jb2x1bW5zL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbHVtbnMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMDlmMGU2NAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL19faW5pdF9fLnB5CkBAIC0wLDAg KzEsOTQ5IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIwor IyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdo dCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRl YW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9z dGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworCisiIiIgSW1wbGVtZW50cyBDb2x1bW4gTm9kZSAiIiIKKworZnJv bSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCBtYWtlX3Jlc3BvbnNl LCByZXF1ZXN0LCBqc29uaWZ5Citmcm9tIGZsYXNrLmV4dC5iYWJlbCBpbXBv cnQgZ2V0dGV4dAorZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1h a2VfanNvbl9yZXNwb25zZSwgXAorICAgIG1ha2VfcmVzcG9uc2UgYXMgYWph eF9yZXNwb25zZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yCitmcm9tIHBnYWRt aW4uYnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE5vZGVWaWV3Citmcm9t IHBnYWRtaW4uYnJvd3Nlci5jb2xsZWN0aW9uIGltcG9ydCBDb2xsZWN0aW9u Tm9kZU1vZHVsZQoraW1wb3J0IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzIGFzIGRhdGFiYXNlCitmcm9tIHBnYWRt aW4udXRpbHMuYWpheCBpbXBvcnQgcHJlY29uZGl0aW9uX3JlcXVpcmVkCitm cm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCitm cm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKK2Zyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy51dGlscyBpbXBv cnQgcGFyc2VfcHJpdl9mcm9tX2RiLCBcCisgICAgcGFyc2VfcHJpdl90b19k YgorZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHdyYXBzCitpbXBvcnQganNvbgor CisKK2NsYXNzIENvbHVtbnNNb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUp OgorICAgICIiIgorICAgICBjbGFzcyBDb2x1bW5zTW9kdWxlKENvbGxlY3Rp b25Ob2RlTW9kdWxlKQorCisgICAgICAgIEEgbW9kdWxlIGNsYXNzIGZvciBD b2x1bW4gbm9kZSBkZXJpdmVkIGZyb20gQ29sbGVjdGlvbk5vZGVNb2R1bGUu CisKKyAgICBNZXRob2RzOgorICAgIC0tLS0tLS0KKyAgICAqIF9faW5pdF9f KCphcmdzLCAqKmt3YXJncykKKyAgICAgIC0gTWV0aG9kIGlzIHVzZWQgdG8g aW5pdGlhbGl6ZSB0aGUgQ29sdW1uIGFuZCBpdCdzIGJhc2UgbW9kdWxlLgor CisgICAgKiBnZXRfbm9kZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkKQor ICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgYnJvd3Nl ciBjb2xsZWN0aW9uIG5vZGUuCisKKyAgICAqIG5vZGVfaW5vZGUoKQorICAg ICAgLSBNZXRob2QgaXMgb3ZlcnJpZGRlbiBmcm9tIGl0cyBiYXNlIGNsYXNz IHRvIG1ha2UgdGhlIG5vZGUgYXMgbGVhZiBub2RlLgorCisgICAgKiBzY3Jp cHRfbG9hZCgpCisgICAgICAtIExvYWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9y IHNjaGVtYSwgd2hlbiBhbnkgb2YgdGhlIHNlcnZlciBub2RlIGlzCisgICAg ICAgIGluaXRpYWxpemVkLgorICAgICIiIgorCisgICAgTk9ERV9UWVBFID0g J2NvbHVtbicKKyAgICBDT0xMRUNUSU9OX0xBQkVMID0gZ2V0dGV4dCgiQ29s dW1ucyIpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dh cmdzKToKKyAgICAgICAgIiIiCisgICAgICAgIE1ldGhvZCBpcyB1c2VkIHRv IGluaXRpYWxpemUgdGhlIENvbHVtbk1vZHVsZSBhbmQgaXQncyBiYXNlIG1v ZHVsZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgKmFyZ3M6Cisg ICAgICAgICAgICAqKmt3YXJnczoKKyAgICAgICAgIiIiCisgICAgICAgIHNl bGYubWluX3ZlciA9IE5vbmUKKyAgICAgICAgc2VsZi5tYXhfdmVyID0gTm9u ZQorICAgICAgICBzdXBlcihDb2x1bW5zTW9kdWxlLCBzZWxmKS5fX2luaXRf XygqYXJncywgKiprd2FyZ3MpCisKKyAgICBkZWYgZ2V0X25vZGVzKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQsICoqa3dhcmdzKToKKyAgICAgICAgIiIi CisgICAgICAgIEdlbmVyYXRlIHRoZSBjb2xsZWN0aW9uIG5vZGUKKyAgICAg ICAgIyBUT0RPOjoKKyAgICAgICAgV2UgY2FuIGhhdmUgZm9sbG93aW5nIGFy Z3VtZW50cyBmb3IgZGlmZmVyZW50IHR5cGUgb2YgcGFyZW50cy4KKyAgICAg ICAgaS5lLgorICAgICAgICB0aWQgLSBmb3IgdGFibGVzCisgICAgICAgIHZp ZCAtIGZvciBtYXRlcmlhbGl6ZWQgdmlld3MKKyAgICAgICAgIiIiCisgICAg ICAgIGFzc2VydCgndGlkJyBpbiBrd2FyZ3Mgb3IgJ3ZpZCcgaW4ga3dhcmdz KQorICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVj dGlvbl9ub2RlKAorICAgICAgICAgIGt3YXJnc1sndGlkJ10gaWYgJ3RpZCcg aW4ga3dhcmdzIGVsc2Uga3dhcmdzWyd2aWQnXQorICAgICAgICAgICkKKwor ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBzY3JpcHRfbG9hZChzZWxmKToKKyAg ICAgICAgIiIiCisgICAgICAgIExvYWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9y IHNlcnZlciwgd2hlbiBhbnkgb2YgdGhlIHNlcnZlci1ncm91cCBub2RlIGlz CisgICAgICAgIGluaXRpYWxpemVkLgorICAgICAgICAiIiIKKyAgICAgICAg cmV0dXJuIGRhdGFiYXNlLkRhdGFiYXNlTW9kdWxlLk5PREVfVFlQRQorCisg ICAgQHByb3BlcnR5CisgICAgZGVmIG5vZGVfaW5vZGUoc2VsZik6CisgICAg ICAgICIiIgorICAgICAgICBMb2FkIHRoZSBtb2R1bGUgbm9kZSBhcyBhIGxl YWYgbm9kZQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIEZhbHNlCisK KworYmx1ZXByaW50ID0gQ29sdW1uc01vZHVsZShfX25hbWVfXykKKworCitj bGFzcyBDb2x1bW5zVmlldyhQR0NoaWxkTm9kZVZpZXcpOgorICAgICIiIgor ICAgIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcg cm91dGVzIGZvciBDb2x1bW4gbm9kZQorCisgICAgTWV0aG9kczoKKyAgICAt LS0tLS0tCisgICAgKiBfX2luaXRfXygqKmt3YXJncykKKyAgICAgIC0gTWV0 aG9kIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgQ29sdW1uVmlldyBhbmQg aXQncyBiYXNlIHZpZXcuCisKKyAgICAqIG1vZHVsZV9qcygpCisgICAgICAt IFRoaXMgcHJvcGVydHkgZGVmaW5lcyAoaWYgamF2YXNjcmlwdCkgZXhpc3Rz IGZvciB0aGlzIG5vZGUuCisgICAgICAgIE92ZXJyaWRlIHRoaXMgcHJvcGVy dHkgZm9yIHlvdXIgb3duIGxvZ2ljCisKKyAgICAqIGNoZWNrX3ByZWNvbmRp dGlvbigpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMg YSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVja3MKKyAgICAgICAgZGF0YWJh c2UgY29ubmVjdGlvbiBiZWZvcmUgcnVubmluZyB2aWV3LCBpdCB3aWxsIGFs c28gYXR0YWNoZXMKKyAgICAgICAgbWFuYWdlcixjb25uICYgdGVtcGxhdGVf cGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYKKworICAgICogbGlzdCgpCisgICAg ICAtIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBsaXN0IGFsbCB0aGUgQ29s dW1uIG5vZGVzIHdpdGhpbiB0aGF0CisgICAgICBjb2xsZWN0aW9uLgorCisg ICAgKiBub2RlcygpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCB1c2Vk IHRvIGNyZWF0ZSBhbGwgdGhlIGNoaWxkIG5vZGUgd2l0aGluIHRoYXQKKyAg ICAgICAgY29sbGVjdGlvbiwgSGVyZSBpdCB3aWxsIGNyZWF0ZSBhbGwgdGhl IENvbHVtbiBub2RlLgorCisgICAgKiBwcm9wZXJ0aWVzKGdpZCwgc2lkLCBk aWQsIHNjaWQsIHRpZCwgY2xpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3 aWxsIHNob3cgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNlbGVjdGVkIENvbHVt biBub2RlCisKKyAgICAqIGNyZWF0ZShnaWQsIHNpZCwgZGlkLCBzY2lkLCB0 aWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgdGhlIG5l dyBDb2x1bW4gb2JqZWN0CisKKyAgICAqIHVwZGF0ZShnaWQsIHNpZCwgZGlk LCBzY2lkLCB0aWQsIGNsaWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2ls bCB1cGRhdGUgdGhlIGRhdGEgZm9yIHRoZSBzZWxlY3RlZCBDb2x1bW4gbm9k ZQorCisgICAgKiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIHNjaWQsIHRpZCwg Y2xpZCk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBkcm9wIHRoZSBD b2x1bW4gb2JqZWN0CisKKyAgICAqIG1zcWwoZ2lkLCBzaWQsIGRpZCwgc2Np ZCwgdGlkLCBjbGlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQg dG8gcmV0dXJuIG1vZGlmaWVkIFNRTCBmb3IgdGhlIHNlbGVjdGVkCisgICAg ICAgIENvbHVtbiBub2RlCisKKyAgICAqIGdldF9zcWwoZGF0YSwgc2NpZCwg dGlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3Fs IGZyb20gbW9kZWwgZGF0YQorCisgICAgKiBzcWwoZ2lkLCBzaWQsIGRpZCwg c2NpZCk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBz cWwgdG8gc2hvdyBpdCBpbiBzcWwgcGFuZSBmb3IgdGhlCisgICAgICAgIHNl bGVjdGVkIENvbHVtbiBub2RlLgorCisgICAgKiBkZXBlbmRlbmN5KGdpZCwg c2lkLCBkaWQsIHNjaWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwg Z2VuZXJhdGUgZGVwZW5kZW5jeSBsaXN0IHNob3cgaXQgaW4gZGVwZW5kZW5j eQorICAgICAgICBwYW5lIGZvciB0aGUgc2VsZWN0ZWQgQ29sdW1uIG5vZGUu CisKKyAgICAqIGRlcGVuZGVudChnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAg ICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlIGRlcGVuZGVudCBs aXN0IHRvIHNob3cgaXQgaW4gZGVwZW5kZW50CisgICAgICAgIHBhbmUgZm9y IHRoZSBzZWxlY3RlZCBDb2x1bW4gbm9kZS4KKyAgICAiIiIKKworICAgIG5v ZGVfdHlwZSA9IGJsdWVwcmludC5ub2RlX3R5cGUKKworICAgIHBhcmVudF9p ZHMgPSBbCisgICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ2dp ZCd9LAorICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdzaWQn fSwKKyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZGlkJ30s CisgICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3NjaWQnfSwK KyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAndGlkJ30KKyAg ICAgICAgICAgIF0KKyAgICBpZHMgPSBbCisgICAgICAgICAgICAjIEhlcmUg d2Ugc3BlY2lmeSB0eXBlIGFzIGFueSBiZWNhdXNlIHRhYmxlCisgICAgICAg ICAgICAjIGFyZSBhbHNvIGhhcyAnLScgaW4gdGhlbSBpZiB0aGV5IGFyZSBz eXN0ZW0gdGFibGUKKyAgICAgICAgICAgIHsndHlwZSc6ICdzdHJpbmcnLCAn aWQnOiAnY2xpZCd9CisgICAgICAgICAgICBdCisKKyAgICBvcGVyYXRpb25z ID0gZGljdCh7CisgICAgICAgICdvYmonOiBbCisgICAgICAgICAgICB7J2dl dCc6ICdwcm9wZXJ0aWVzJywgJ2RlbGV0ZSc6ICdkZWxldGUnLCAncHV0Jzog J3VwZGF0ZSd9LAorICAgICAgICAgICAgeydnZXQnOiAnbGlzdCcsICdwb3N0 JzogJ2NyZWF0ZSd9CisgICAgICAgIF0sCisgICAgICAgICdjaGlsZHJlbic6 IFt7J2dldCc6ICdjaGlsZHJlbid9XSwKKyAgICAgICAgJ25vZGVzJzogW3sn Z2V0JzogJ25vZGUnfSwgeydnZXQnOiAnbm9kZXMnfV0sCisgICAgICAgICdz cWwnOiBbeydnZXQnOiAnc3FsJ31dLAorICAgICAgICAnbXNxbCc6IFt7J2dl dCc6ICdtc3FsJ30sIHsnZ2V0JzogJ21zcWwnfV0sCisgICAgICAgICdzdGF0 cyc6IFt7J2dldCc6ICdzdGF0aXN0aWNzJ31dLAorICAgICAgICAnZGVwZW5k ZW5jeSc6IFt7J2dldCc6ICdkZXBlbmRlbmNpZXMnfV0sCisgICAgICAgICdk ZXBlbmRlbnQnOiBbeydnZXQnOiAnZGVwZW5kZW50cyd9XSwKKyAgICAgICAg J21vZHVsZS5qcyc6IFt7fSwge30sIHsnZ2V0JzogJ21vZHVsZV9qcyd9XSwK KyAgICAgICAgJ2dldF90eXBlcyc6IFt7J2dldCc6ICdnZXRfdHlwZXMnfSwg eydnZXQnOiAnZ2V0X3R5cGVzJ31dLAorICAgICAgICAnZ2V0X2NvbGxhdGlv bnMnOiBbeydnZXQnOiAnZ2V0X2NvbGxhdGlvbnMnfSwgeydnZXQnOiAnZ2V0 X2NvbGxhdGlvbnMnfV0KKyAgICB9KQorCisgICAgZGVmIGNoZWNrX3ByZWNv bmRpdGlvbihmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rp b24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVj a3MKKyAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUgcnVubmlu ZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKKyAgICAgICAgbWFuYWdl cixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYKKyAg ICAgICAgIiIiCisgICAgICAgIEB3cmFwcyhmKQorICAgICAgICBkZWYgd3Jh cCgqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgIyBIZXJlIGFyZ3Nb MF0gd2lsbCBob2xkIHNlbGYgJiBrd2FyZ3Mgd2lsbCBob2xkIGdpZCxzaWQs ZGlkCisgICAgICAgICAgICBzZWxmID0gYXJnc1swXQorICAgICAgICAgICAg c2VsZi5tYW5hZ2VyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUiku Y29ubmVjdGlvbl9tYW5hZ2VyKAorICAgICAgICAgICAgICAgIGt3YXJnc1sn c2lkJ10KKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHNlbGYuY29ubiA9 IHNlbGYubWFuYWdlci5jb25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2RpZCddKQor ICAgICAgICAgICAgIyBJZiBEQiBub3QgY29ubmVjdGVkIHRoZW4gcmV0dXJu IGVycm9yIHRvIGJyb3dzZXIKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNv bm4uY29ubmVjdGVkKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZWNv bmRpdGlvbl9yZXF1aXJlZCgKKyAgICAgICAgICAgICAgICAgICAgZ2V0dGV4 dCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29ubmVjdGlvbiB0 byB0aGUgc2VydmVyIGhhcyBiZWVuIGxvc3QhIgorICAgICAgICAgICAgICAg ICAgICApCisgICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICB2ZXIg PSBzZWxmLm1hbmFnZXIudmVyc2lvbgorICAgICAgICAgICAgIyB3ZSB3aWxs IHNldCB0ZW1wbGF0ZSBwYXRoIGZvciBzcWwgc2NyaXB0cworICAgICAgICAg ICAgaWYgdmVyID49IDkwMjAwOgorICAgICAgICAgICAgICAgIHNlbGYudGVt cGxhdGVfcGF0aCA9ICdjb2x1bW4vc3FsLzkuMl9wbHVzJworICAgICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGgg PSAnY29sdW1uL3NxbC85LjFfcGx1cycKKyAgICAgICAgICAgICMgQWxsb3dl ZCBBQ0wgZm9yIGNvbHVtbiAnU2VsZWN0L1VwZGF0ZS9JbnNlcnQvUmVmZXJl bmNlcycKKyAgICAgICAgICAgIHNlbGYuYWNsID0gWydhJywgJ3InLCAndycs ICd4J10KKworICAgICAgICAgICAgIyBXZSBuZWVkIHBhcmVudCdzIG5hbWUg ZWcgdGFibGUgbmFtZSBhbmQgc2NoZW1hIG5hbWUKKyAgICAgICAgICAgIFNR TCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9w YXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnZ2V0X3BhcmVudC5zcWwnXSksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGlkPWt3YXJnc1sndGlkJ10pCisgICAgICAgICAg ICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNR TCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAg ICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yc2V0 KQorCisgICAgICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAg ICAgICAgICAgICAgICBzZWxmLnNjaGVtYSA9IHJvd1snc2NoZW1hJ10KKyAg ICAgICAgICAgICAgICBzZWxmLnRhYmxlID0gcm93Wyd0YWJsZSddCisKKyAg ICAgICAgICAgIHJldHVybiBmKCphcmdzLCAqKmt3YXJncykKKworICAgICAg ICByZXR1cm4gd3JhcAorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAg IGRlZiBnZXRfY29sbGF0aW9ucyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lk LCB0aWQsIGNsaWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlz IGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGxpc3Qgb2YgY29sbGF0aW9uIGF2YWls YWJsZSB2aWEgQUpBWCByZXNwb25zZQorICAgICAgICAiIiIKKyAgICAgICAg cmVzID0gW3snbGFiZWwnOiAnJywgJ3ZhbHVlJzogJyd9XQorICAgICAgICB0 cnk6CisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpv aW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9jb2xsYXRpb25zLnNxbCdd KSkKKyAgICAgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVj dXRlXzJkYXJyYXkoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgZm9yIHJvdyBpbiByc2V0 Wydyb3dzJ106CisgICAgICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7J2xhYmVsJzogcm93Wydjb2xsYXRp b24nXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJzog cm93Wydjb2xsYXRpb24nXX0KKyAgICAgICAgICAgICAgICAgICAgICAgICkK KyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAg ICAgICAgICAgICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgICAgICAg ICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgICAgICkKKworICAgICAg ICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAg IEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X3R5cGVzKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgY2xpZD1Ob25lKToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gbGlz dCBvZiB0eXBlcyBhdmFpbGFibGUgdmlhIEFKQVggcmVzcG9uc2UKKyAgICAg ICAgIiIiCisgICAgICAgIHJlcyA9IFt7J2xhYmVsJzogJycsICd2YWx1ZSc6 ICcnfV0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgU1FMID0gcmVuZGVy X3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRf dHlwZXMuc3FsJ10pKQorICAgICAgICAgICAgc3RhdHVzLCByc2V0ID0gc2Vs Zi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisKKyAgICAgICAgICAgIGZv ciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgICAgICMgQXR0 YWNoaW5nIHByb3BlcnRpZXMgZm9yIHByZWNlc3Npb24KKyAgICAgICAgICAg ICAgICAjICYgbGVuZ3RoIHZhbGlkYXRpb24gZm9yIGN1cnJlbnQgdHlwZQor ICAgICAgICAgICAgICAgIHByZWNpc2lvbiA9IEZhbHNlCisgICAgICAgICAg ICAgICAgbGVuZ3RoID0gRmFsc2UKKyAgICAgICAgICAgICAgICBtaW5fdmFs ID0gMAorICAgICAgICAgICAgICAgIG1heF92YWwgPSAwCisKKyAgICAgICAg ICAgICAgICAjIENoZWNrIGFnYWluc3QgUEdPSUQgZm9yIHNwZWNpZmljIHR5 cGUKKyAgICAgICAgICAgICAgICBpZiByb3dbJ2VsZW1vaWQnXToKKyAgICAg ICAgICAgICAgICAgICAgaWYgcm93WydlbGVtb2lkJ10gaW4gKDE1NjAsIDE1 NjEsIDE1NjIsIDE1NjMsIDEwNDIsIDEwNDMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAxMDE0LCAxMDE1KToKKyAgICAg ICAgICAgICAgICAgICAgICAgIHR5cGV2YWwgPSAnTCcKKyAgICAgICAgICAg ICAgICAgICAgZWxpZiByb3dbJ2VsZW1vaWQnXSBpbiAoMTA4MywgMTExNCwg MTExNSwgMTE4MywgMTE4NCwgMTE4NSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMTE4NiwgMTE4NywgMTI2NiwgMTI3 MCk6CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBldmFsID0gJ0QnCisg ICAgICAgICAgICAgICAgICAgIGVsaWYgcm93WydlbGVtb2lkJ10gaW4gKDEy MzEsIDE3MDApOgorICAgICAgICAgICAgICAgICAgICAgICAgdHlwZXZhbCA9 ICdQJworICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg ICAgICAgICAgICAgdHlwZXZhbCA9ICcgJworCisgICAgICAgICAgICAgICAg IyBMb2dpYyB0byBzZXQgcHJlY2lzaW9uICYgbGVuZ3RoL21pbi9tYXggdmFs dWVzCisgICAgICAgICAgICAgICAgaWYgdHlwZXZhbCA9PSAnUCc6CisgICAg ICAgICAgICAgICAgICAgIHByZWNpc2lvbiA9IFRydWUKKworICAgICAgICAg ICAgICAgIGlmIHByZWNpc2lvbiBvciB0eXBldmFsIGluICgnTCcsICdEJyk6 CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IFRydWUKKyAgICAgICAg ICAgICAgICAgICAgbWluX3ZhbCA9IDAgaWYgdHlwZXZhbCA9PSAnRCcgZWxz ZSAxCisgICAgICAgICAgICAgICAgICAgIGlmIHByZWNpc2lvbjoKKyAgICAg ICAgICAgICAgICAgICAgICAgIG1heF92YWwgPSAxMDAwCisgICAgICAgICAg ICAgICAgICAgIGVsaWYgbWluX3ZhbDoKKyAgICAgICAgICAgICAgICAgICAg ICAgICMgTWF4IG9mIGludGVnZXIgdmFsdWUKKyAgICAgICAgICAgICAgICAg ICAgICAgIG1heF92YWwgPSAyMTQ3NDgzNjQ3CisgICAgICAgICAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBtYXhfdmFsID0g MTAKKworICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeydsYWJlbCc6IHJvd1sndHlwbmFtZSddLCAn dmFsdWUnOiByb3dbJ3R5cG5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ3R5cHZhbCc6IHR5cGV2YWwsICdwcmVjaXNpb24nOiBwcmVj aXNpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsZW5ndGgn OiBsZW5ndGgsICdtaW5fdmFsJzogbWluX3ZhbCwgJ21heF92YWwnOiBtYXhf dmFsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pz b25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgIGRhdGE9cmVzLAor ICAgICAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAg ICAgICAgICkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVm IGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkKToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBsaXN0 IGFsbCB0aGUgc2NoZW1hIG5vZGVzIHdpdGhpbiB0aGF0IGNvbGxlY3Rpb24u CisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIGdy b3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAg ICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgc2NpZDogU2NoZW1h IElECisgICAgICAgICAgICB0aWQ6IFRhYmxlIElECisKKyAgICAgICAgUmV0 dXJuczoKKyAgICAgICAgICAgIEpTT04gb2YgYXZhaWxhYmxlIGNvbHVtbiBu b2RlcworICAgICAgICAiIiIKKworICAgICAgICBTUUwgPSByZW5kZXJfdGVt cGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvcGVydGllcy5z cWwnXSksIHRpZD10aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzaG93X3N5c19vYmplY3RzPXNlbGYuYmx1ZXByaW50LnNob3dfc3lzdGVt X29iamVjdHMpCisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4 ZWN1dGVfZGljdChTUUwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9cmVzKQorICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAg ICAgICAgICAgICByZXNwb25zZT1yZXNbJ3Jvd3MnXSwKKyAgICAgICAgICAg ICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCisgICAgQGNo ZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBub2RlcyhzZWxmLCBnaWQsIHNp ZCwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhp cyBmdW5jdGlvbiB3aWxsIHVzZWQgdG8gY3JlYXRlIGFsbCB0aGUgY2hpbGQg bm9kZSB3aXRoaW4gdGhhdCBjb2xsZWN0aW9uLgorICAgICAgICBIZXJlIGl0 IHdpbGwgY3JlYXRlIGFsbCB0aGUgc2NoZW1hIG5vZGUuCisKKyAgICAgICAg QXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAg ICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRh YmFzZSBJRAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAg ICAgICB0aWQ6IFRhYmxlIElECisKKyAgICAgICAgUmV0dXJuczoKKyAgICAg ICAgICAgIEpTT04gb2YgYXZhaWxhYmxlIHNjaGVtYSBjaGlsZCBub2Rlcwor ICAgICAgICAiIiIKKyAgICAgICAgcmVzID0gW10KKyAgICAgICAgU1FMID0g cmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25v ZGVzLnNxbCddKSwgdGlkPXRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNob3dfc3lzX29iamVjdHM9c2VsZi5ibHVlcHJpbnQuc2hvd19z eXN0ZW1fb2JqZWN0cykKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5j b25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAgICAgIGlmIG5vdCBzdGF0 dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXJzZXQpCisKKyAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydy b3dzJ106CisgICAgICAgICAgICByZXMuYXBwZW5kKAorICAgICAgICAgICAg ICAgICAgICBzZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUo CisgICAgICAgICAgICAgICAgICAgICAgICByb3dbJ29pZCddLAorICAgICAg ICAgICAgICAgICAgICAgICAgdGlkLAorICAgICAgICAgICAgICAgICAgICAg ICAgcm93WyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICBpY29u PSJpY29uLWNvbHVtbiIKKyAgICAgICAgICAgICAgICAgICAgKSkKKworICAg ICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAg ICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAg ICAgICAgICAgICAgICApCisKKyAgICBkZWYgX2Zvcm1hdHRlcihzZWxmLCBz Y2lkLCB0aWQsIGNsaWQsIGRhdGEpOgorICAgICAgICAiIiIKKyAgICAgICAg QXJnczoKKyAgICAgICAgICAgICBzY2lkOiBzY2hlbWEgb2lkCisgICAgICAg ICAgICAgdGlkOiB0YWJsZSBvaWQKKyAgICAgICAgICAgICBjbGlkOiBwb3Np dGlvbiBvZiBjb2x1bW4gaW4gdGFibGUKKyAgICAgICAgICAgICBkYXRhOiBk aWN0IG9mIHF1ZXJ5IHJlc3VsdAorCisgICAgICAgIFJldHVybnM6CisgICAg ICAgICAgICBJdCB3aWxsIHJldHVybiBmb3JtYXR0ZWQgb3V0cHV0IG9mIGNv bGxlY3Rpb25zCisgICAgICAgICIiIgorICAgICAgICAjIFRvIGNoZWNrIGlm IGNvbHVtbiBpcyBwcmltYXJ5IGtleQorICAgICAgICBpZiAnYXR0bnVtJyBp biBkYXRhIGFuZCAnaW5ka2V5JyBpbiBkYXRhOgorICAgICAgICAgICAgIyBD dXJyZW50IGNvbHVtbgorICAgICAgICAgICAgYXR0bnVtID0gc3RyKGRhdGFb J2F0dG51bSddKQorCisgICAgICAgICAgICAjIFNpbmdsZS9MaXN0IG9mIHBy aW1hcnkga2V5IGNvbHVtbihzKQorICAgICAgICAgICAgaW5ka2V5ID0gc3Ry KGRhdGFbJ2luZGtleSddKQorCisgICAgICAgICAgICAjIFdlIHdpbGwgY2hl Y2sgaWYgY29sdW1uIGlzIGluIHByaW1hcnkgY29sdW1uKHMpCisgICAgICAg ICAgICBpZiBhdHRudW0gaW4gaW5ka2V5OgorICAgICAgICAgICAgICAgIGRh dGFbJ2lzX3BrJ10gPSBUcnVlCisgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgIGRhdGFbJ2lzX3BrJ10gPSBGYWxzZQorCisgICAgICAgICMg V2UgbmVlZCB0byBmZXRjaCBpbmhlcml0ZWQgdGFibGVzIGZvciBlYWNoIHRh YmxlCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdnZXRfaW5oZXJpdGVkX3RhYmxlcy5zcWwnXSks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQ9dGlkKQorICAg ICAgICBzdGF0dXMsIGluaF9yZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0 KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJl dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9aW5oX3JlcykK KyAgICAgICAgZm9yIHJvdyBpbiBpbmhfcmVzWydyb3dzJ106CisgICAgICAg ICAgICBpZiByb3dbJ2F0dHJuYW1lJ10gPT0gZGF0YVsnbmFtZSddOgorICAg ICAgICAgICAgICAgIGRhdGFbJ2lzX2luaGVyaXRlZCddID0gVHJ1ZQorICAg ICAgICAgICAgICAgIGRhdGFbJ3RibHNfaW5oZXJpdGVkJ10gPSByb3dbJ2lu aHJlbG5hbWUnXQorCisgICAgICAgICMgV2UgbmVlZCB0byBmb3JtYXQgdmFy aWFibGVzIGFjY29yZGluZyB0byBjbGllbnQganMgY29sbGVjdGlvbgorICAg ICAgICBpZiAnYXR0b3B0aW9ucycgaW4gZGF0YSBhbmQgZGF0YVsnYXR0b3B0 aW9ucyddIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc3Bjb3B0aW9ucyA9 IFtdCisgICAgICAgICAgICBmb3Igc3Bjb3B0aW9uIGluIGRhdGFbJ2F0dG9w dGlvbnMnXToKKyAgICAgICAgICAgICAgICBrLCB2ID0gc3Bjb3B0aW9uLnNw bGl0KCc9JykKKyAgICAgICAgICAgICAgICBzcGNvcHRpb25zLmFwcGVuZCh7 J25hbWUnOiBrLCAndmFsdWUnOiB2fSkKKworICAgICAgICAgICAgZGF0YVsn YXR0b3B0aW9ucyddID0gc3Bjb3B0aW9ucworCisgICAgICAgICMgTmVlZCB0 byBmb3JtYXQgc2VjdXJpdHkgbGFiZWxzIGFjY29yZGluZyB0byBjbGllbnQg anMgY29sbGVjdGlvbgorICAgICAgICBpZiAnc2VjbGFiZWxzJyBpbiBkYXRh IGFuZCBkYXRhWydzZWNsYWJlbHMnXSBpcyBub3QgTm9uZToKKyAgICAgICAg ICAgIHNlY2xhYmVscyA9IFtdCisgICAgICAgICAgICBmb3Igc2VjbGJscyBp biBkYXRhWydzZWNsYWJlbHMnXToKKyAgICAgICAgICAgICAgICBrLCB2ID0g c2VjbGJscy5zcGxpdCgnPScpCisgICAgICAgICAgICAgICAgc2VjbGFiZWxz LmFwcGVuZCh7J3Byb3ZpZGVyJzogaywgJ3NlY3VyaXR5X2xhYmVsJzogdn0p CisKKyAgICAgICAgICAgIGRhdGFbJ3NlY2xhYmVscyddID0gc2VjbGFiZWxz CisKKyAgICAgICAgIyBXZSBuZWVkIHRvIHBhcnNlICYgY29udmVydCBBQ0wg Y29taW5nIGZyb20gZGF0YWJhc2UgdG8ganNvbiBmb3JtYXQKKyAgICAgICAg U1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRl X3BhdGgsICdhY2wuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGlkPXRpZCwgY2xpZD1jbGlkKQorICAgICAgICBzdGF0dXMsIGFj bCA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorCisgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPWFjbCkKKworICAgICAgICAjIFdlIHdpbGwg c2V0IGdldCBwcml2aWxlZ2VzIGZyb20gYWNsIHNxbCBzbyB3ZSBkb24ndCBu ZWVkCisgICAgICAgICMgaXQgZnJvbSBwcm9wZXJ0aWVzIHNxbAorICAgICAg ICBkYXRhWydhdHRhY2wnXSA9IFtdCisKKyAgICAgICAgZm9yIHJvdyBpbiBh Y2xbJ3Jvd3MnXToKKyAgICAgICAgICAgIHByaXYgPSBwYXJzZV9wcml2X2Zy b21fZGIocm93KQorICAgICAgICAgICAgZGF0YS5zZXRkZWZhdWx0KHJvd1sn ZGVmdHlwZSddLCBbXSkuYXBwZW5kKHByaXYpCisKKyAgICAgICAgIyB3ZSBh cmUgcmVjZWl2aW5nIHJlcXVlc3Qgd2hlbiBpbiBlZGl0IG1vZGUKKyAgICAg ICAgIyB3ZSB3aWxsIHNlbmQgZmlsdGVyZWQgdHlwZXMgcmVsYXRlZCB0byBj dXJyZW50IHR5cGUKKyAgICAgICAgcHJlc2VudF90eXBlID0gZGF0YVsnY2x0 eXBlJ10KKyAgICAgICAgdHlwZV9pZCA9IGRhdGFbJ2F0dHR5cGlkJ10KKwor ICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYu dGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnaXNfcmVmZXJlbmNlZC5zcWwnXSksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0aWQ9dGlkLCBjbGlkPWNsaWQpCisKKyAg ICAgICAgc3RhdHVzLCBpc19yZWZlcmVuY2UgPSBzZWxmLmNvbm4uZXhlY3V0 ZV9zY2FsYXIoU1FMKQorCisgICAgICAgIGVkaXRfdHlwZXNfbGlzdCA9IGxp c3QoKQorICAgICAgICAjIFdlIHdpbGwgbmVlZCBwcmVzZW50IHR5cGUgaW4g ZWRpdCBtb2RlCisgICAgICAgIGVkaXRfdHlwZXNfbGlzdC5hcHBlbmQocHJl c2VudF90eXBlKQorCisgICAgICAgIGlmIGludChpc19yZWZlcmVuY2UpID09 IDA6CisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpv aW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXRfbW9kZV90eXBlcy5zcWwn XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZV9p ZD10eXBlX2lkKQorICAgICAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5j b25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisKKyAgICAgICAgICAgIGZvciBy b3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgICAgIGVkaXRfdHlw ZXNfbGlzdC5hcHBlbmQocm93Wyd0eXBuYW1lJ10pCisgICAgICAgIGVsc2U6 CisgICAgICAgICAgICBlZGl0X3R5cGVzX2xpc3QuYXBwZW5kKHByZXNlbnRf dHlwZSkKKworICAgICAgICBkYXRhWydlZGl0X3R5cGVzJ10gPSBlZGl0X3R5 cGVzX2xpc3QKKworICAgICAgICByZXR1cm4gZGF0YQorCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbgorICAgIGRlZiBwcm9wZXJ0aWVzKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQsIHRpZCwgY2xpZCk6CisgICAgICAgICIiIgorICAg ICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgc2hvdyB0aGUgcHJvcGVydGllcyBv ZiB0aGUgc2VsZWN0ZWQgc2NoZW1hIG5vZGUuCisKKyAgICAgICAgQXJnczoK KyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAg ICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiAgRGF0YWJhc2Ug SUQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAgICAgICAgICAg c2NpZDogU2NoZW1hIElECisgICAgICAgICAgICB0aWQ6IFRhYmxlIElECisg ICAgICAgICAgICBjbGlkOiBDb2x1bW4gSUQKKworICAgICAgICBSZXR1cm5z OgorICAgICAgICAgICAgSlNPTiBvZiBzZWxlY3RlZCBzY2hlbWEgbm9kZQor ICAgICAgICAiIiIKKworICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUo Ii8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvcGVydGllcy5zcWwnXSks IHRpZD10aWQsIGNsaWQ9Y2xpZAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLCBzaG93X3N5c19vYmplY3RzPXNlbGYuYmx1ZXByaW50LnNob3df c3lzdGVtX29iamVjdHMpCisKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxm LmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKworICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgIyBNYWtpbmcgY29weSBvZiBv dXRwdXQgZm9yIGZ1dHVyZSB1c2UKKyAgICAgICAgZGF0YSA9IGRpY3QocmVz Wydyb3dzJ11bMF0pCisgICAgICAgIGRhdGEgPSBzZWxmLl9mb3JtYXR0ZXIo c2NpZCwgdGlkLCBjbGlkLCBkYXRhKQorCisgICAgICAgIHJldHVybiBhamF4 X3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIHJlc3BvbnNlPWRhdGEsCisg ICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkK KworICAgIGRlZiBfY2x0eXBlX2Zvcm1hdHRlcihzZWxmLCB0eXBlKToKKyAg ICAgICAgIiIiCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGRhdGE6 IFR5cGUgc3RyaW5nCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAg IFdlIG5lZWQgdG8gcmVtb3ZlIFtdIGZyb20gdHlwZSBhbmQgYXBwZW5kIGl0 CisgICAgICAgICAgICBhZnRlciBsZW5ndGgvcHJlY2lzaW9uIHNvIHdlIHdp bGwgc2V0IGZsYWcgZm9yCisgICAgICAgICAgICBzcWwgdGVtcGxhdGUKKyAg ICAgICAgIiIiCisgICAgICAgIGlmICdbXScgaW4gdHlwZToKKyAgICAgICAg ICAgIHR5cGUgPSB0eXBlLnJlcGxhY2UoJ1tdJywgJycpCisgICAgICAgICAg ICBzZWxmLmhhc1NxckJyYWNrZXQgPSBUcnVlCisgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICBzZWxmLmhhc1NxckJyYWNrZXQgPSBGYWxzZQorCisgICAg ICAgIHJldHVybiB0eXBlCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisg ICAgZGVmIGNyZWF0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQp OgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGNy ZWF0ZXMgbmV3IHRoZSBzY2hlbWEgb2JqZWN0CisKKyAgICAgICAgIEFyZ3M6 CisgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAg IHNpZDogU2VydmVyIElECisgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQK KyAgICAgICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAgIHRpZDog VGFibGUgSUQKKyAgICAgICAgIiIiCisgICAgICAgIGRhdGEgPSByZXF1ZXN0 LmZvcm0gaWYgcmVxdWVzdC5mb3JtIGVsc2UganNvbi5sb2FkcygKKyAgICAg ICAgICAgIHJlcXVlc3QuZGF0YS5kZWNvZGUoKQorICAgICAgICApCisgICAg ICAgIHJlcXVpcmVkX2FyZ3MgPSB7CisgICAgICAgICAgICAnbmFtZSc6ICdO YW1lJywKKyAgICAgICAgICAgICdjbHR5cGUnOiAnVHlwZScKKyAgICAgICAg fQorCisgICAgICAgIGZvciBhcmcgaW4gcmVxdWlyZWRfYXJnczoKKyAgICAg ICAgICAgIGlmIGFyZyBub3QgaW4gZGF0YToKKyAgICAgICAgICAgICAgICBy ZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAg ICBzdGF0dXM9NDEwLAorICAgICAgICAgICAgICAgICAgICBzdWNjZXNzPTAs CisgICAgICAgICAgICAgICAgICAgIGVycm9ybXNnPWdldHRleHQoCisgICAg ICAgICAgICAgICAgICAgICAgICAiQ291bGRuJ3QgZmluZCB0aGUgcmVxdWly ZWQgcGFyYW1ldGVyICglcykuIiAlCisgICAgICAgICAgICAgICAgICAgICAg ICByZXF1aXJlZF9hcmdzW2FyZ10KKyAgICAgICAgICAgICAgICAgICAgKQor ICAgICAgICAgICAgICAgICkKKworICAgICAgICAjIFBhcnNlIHByaXZpbGVn ZSBkYXRhIGNvbWluZyBmcm9tIGNsaWVudCBhY2NvcmRpbmcgdG8gZGF0YWJh c2UgZm9ybWF0CisgICAgICAgIGlmICdhdHRhY2wnIGluIGRhdGE6CisgICAg ICAgICAgICBkYXRhWydhdHRhY2wnXSA9IHBhcnNlX3ByaXZfdG9fZGIoZGF0 YVsnYXR0YWNsJ10sIHNlbGYuYWNsKQorCisgICAgICAgICMgQWRkaW5nIHBh cmVudCBpbnRvIGRhdGEgZGljdCwgd2lsbCBiZSB1c2luZyBpdCB3aGlsZSBj cmVhdGluZyBzcWwKKyAgICAgICAgZGF0YVsnc2NoZW1hJ10gPSBzZWxmLnNj aGVtYQorICAgICAgICBkYXRhWyd0YWJsZSddID0gc2VsZi50YWJsZQorCisg ICAgICAgICMgY2hlY2sgdHlwZSBmb3IgJ1tdJyBpbiBpdAorICAgICAgICBk YXRhWydjbHR5cGUnXSA9IHNlbGYuX2NsdHlwZV9mb3JtYXR0ZXIoZGF0YVsn Y2x0eXBlJ10pCisgICAgICAgIGRhdGFbJ2hhc1NxckJyYWNrZXQnXSA9IHNl bGYuaGFzU3FyQnJhY2tldAorCisgICAgICAgIHRyeToKKyAgICAgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnY3JlYXRlLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkYXRhPWRhdGEsIGNvbm49c2VsZi5jb25uKQorICAg ICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2Fs YXIoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICAgICAgIyB3ZSBuZWVkIG9pZCB0byB0byBhZGQg b2JqZWN0IGluIHRyZWUgYXQgYnJvd3NlcgorICAgICAgICAgICAgU1FMID0g cmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdnZXRfcG9zaXRpb24uc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRpZD10aWQsIGRhdGE9ZGF0YSkKKyAgICAgICAgICAg IHN0YXR1cywgY2xpZCA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwp CisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9dGlkKQor CisgICAgICAgICAgICByZXR1cm4ganNvbmlmeSgKKyAgICAgICAgICAgICAg ICBub2RlPXNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgK KyAgICAgICAgICAgICAgICAgICAgY2xpZCwKKyAgICAgICAgICAgICAgICAg ICAgc2NpZCwKKyAgICAgICAgICAgICAgICAgICAgZGF0YVsnbmFtZSddLAor ICAgICAgICAgICAgICAgICAgICBpY29uPSJpY29uLWNvbHVtbiIKKyAgICAg ICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgIGV4Y2VwdCBF eGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3By ZWNvbmRpdGlvbgorICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIGRp ZCwgc2NpZCwgdGlkLCBjbGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRo aXMgZnVuY3Rpb24gd2lsbCB1cGRhdGVzIGV4aXN0aW5nIHRoZSBzY2hlbWEg b2JqZWN0CisKKyAgICAgICAgIEFyZ3M6CisgICAgICAgICAgIGdpZDogU2Vy dmVyIEdyb3VwIElECisgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAg ICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAgc2NpZDogU2No ZW1hIElECisgICAgICAgICAgIHRpZDogVGFibGUgSUQKKyAgICAgICAgICAg Y2xpZDogQ29sdW1uIElECisgICAgICAgICIiIgorICAgICAgICAjIFdlIHdp bGwgZmlyc3QgZmV0Y2ggdGhlIGNvbHVtbiBuYW1lIGZvciBjdXJyZW50IHJl cXVlc3QKKyAgICAgICAgIyBzbyB0aGF0IHdlIGNyZWF0ZSB0ZW1wbGF0ZSBm b3IgZHJvcHBpbmcgY29sdW1uCisgICAgICAgIHRyeToKKworICAgICAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBs YXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdwcm9wZXJ0aWVzLnNxbCddKSwgdGlkPXRpZCwgY2xpZD1j bGlkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBzaG93 X3N5c19vYmplY3RzPXNlbGYuYmx1ZXByaW50LnNob3dfc3lzdGVtX29iamVj dHMpCisKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4 ZWN1dGVfZGljdChTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICBkYXRhID0gZGljdChyZXNb J3Jvd3MnXVswXSkKKyAgICAgICAgICAgICMgV2Ugd2lsbCBhZGQgdGFibGUg JiBzY2hlbWEgYXMgd2VsbAorICAgICAgICAgICAgZGF0YVsnc2NoZW1hJ10g PSBzZWxmLnNjaGVtYQorICAgICAgICAgICAgZGF0YVsndGFibGUnXSA9IHNl bGYudGFibGUKKworICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRl KCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWxldGUuc3FsJ10p LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0 YSwgY29ubj1zZWxmLmNvbm4pCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9 IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCisgICAgICAgICAgICBp ZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICBy ZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIHN1 Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICBpbmZvPWdldHRleHQoIkNvbHVt biBpcyBkcm9wcGVkIiksCisgICAgICAgICAgICAgICAgZGF0YT17CisgICAg ICAgICAgICAgICAgICAgICdpZCc6IGNsaWQsCisgICAgICAgICAgICAgICAg ICAgICd0aWQnOiB0aWQKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICApCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1z dHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHVw ZGF0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIGNsaWQpOgor ICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0 ZXMgZXhpc3RpbmcgdGhlIHNjaGVtYSBvYmplY3QKKworICAgICAgICAgQXJn czoKKyAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAg ICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJ RAorICAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgdGlk OiBUYWJsZSBJRAorICAgICAgICAgICBjbGlkOiBDb2x1bW4gSUQKKyAgICAg ICAgIiIiCisgICAgICAgIGRhdGEgPSByZXF1ZXN0LmZvcm0gaWYgcmVxdWVz dC5mb3JtIGVsc2UganNvbi5sb2FkcyhyZXF1ZXN0LmRhdGEuZGVjb2RlKCkp CisKKyAgICAgICAgIyBBZGRpbmcgcGFyZW50IGludG8gZGF0YSBkaWN0LCB3 aWxsIGJlIHVzaW5nIGl0IHdoaWxlIGNyZWF0aW5nIHNxbAorICAgICAgICBk YXRhWydzY2hlbWEnXSA9IHNlbGYuc2NoZW1hCisgICAgICAgIGRhdGFbJ3Rh YmxlJ10gPSBzZWxmLnRhYmxlCisKKyAgICAgICAgIyBjaGVjayB0eXBlIGZv ciAnW10nIGluIGl0CisgICAgICAgIGlmICdjbHR5cGUnIGluIGRhdGE6Cisg ICAgICAgICAgICBkYXRhWydjbHR5cGUnXSA9IHNlbGYuX2NsdHlwZV9mb3Jt YXR0ZXIoZGF0YVsnY2x0eXBlJ10pCisgICAgICAgICAgICBkYXRhWydoYXNT cXJCcmFja2V0J10gPSBzZWxmLmhhc1NxckJyYWNrZXQKKworICAgICAgICB0 cnk6CisgICAgICAgICAgICBTUUwgPSBzZWxmLmdldF9zcWwoc2NpZCwgdGlk LCBjbGlkLCBkYXRhKQorICAgICAgICAgICAgaWYgU1FMIGFuZCBTUUwuc3Ry aXAoJ1xuJykgYW5kIFNRTC5zdHJpcCgnICcpOgorICAgICAgICAgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkK KyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVz cG9uc2UoCisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAg ICAgICAgICAgICAgICAgaW5mbz0iQ29sdW1uIHVwZGF0ZWQiLAorICAgICAg ICAgICAgICAgICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgICAg ICdpZCc6IGNsaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAndGlkJzog dGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NjaWQnOiBzY2lkCisg ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICApCisgICAg ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pz b25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwK KyAgICAgICAgICAgICAgICAgICAgaW5mbz0iTm90aGluZyB0byB1cGRhdGUi LAorICAgICAgICAgICAgICAgICAgICBkYXRhPXsKKyAgICAgICAgICAgICAg ICAgICAgICAgICdpZCc6IGNsaWQsCisgICAgICAgICAgICAgICAgICAgICAg ICAndGlkJzogdGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NjaWQn OiBzY2lkCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICApCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1z dHIoZSkpCisKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg bXNxbChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIGNsaWQ9Tm9u ZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwg Z2VuZXJhdGVzIG1vZGlmaWVkIHNxbCBmb3Igc2NoZW1hIG9iamVjdAorCisg ICAgICAgICBBcmdzOgorICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJ RAorICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICBkaWQ6 IERhdGFiYXNlIElECisgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAg ICAgICAgICB0aWQ6IFRhYmxlIElECisgICAgICAgICAgIGNsaWQ6IENvbHVt biBJRCAoV2hlbiB3b3JraW5nIHdpdGggZXhpc3RpbmcgY29sdW1uKQorICAg ICAgICAiIiIKKyAgICAgICAgZGF0YSA9IGRpY3QoKQorICAgICAgICBmb3Ig aywgdiBpbiByZXF1ZXN0LmFyZ3MuaXRlbXMoKToKKyAgICAgICAgICAgIHRy eToKKyAgICAgICAgICAgICAgICBkYXRhW2tdID0ganNvbi5sb2Fkcyh2KQor ICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAg ICAgZGF0YVtrXSA9IHYKKworICAgICAgICAjIEFkZGluZyBwYXJlbnQgaW50 byBkYXRhIGRpY3QsIHdpbGwgYmUgdXNpbmcgaXQgd2hpbGUgY3JlYXRpbmcg c3FsCisgICAgICAgIGRhdGFbJ3NjaGVtYSddID0gc2VsZi5zY2hlbWEKKyAg ICAgICAgZGF0YVsndGFibGUnXSA9IHNlbGYudGFibGUKKworICAgICAgICAj IGNoZWNrIHR5cGUgZm9yICdbXScgaW4gaXQKKyAgICAgICAgaWYgJ2NsdHlw ZScgaW4gZGF0YToKKyAgICAgICAgICAgIGRhdGFbJ2NsdHlwZSddID0gc2Vs Zi5fY2x0eXBlX2Zvcm1hdHRlcihkYXRhWydjbHR5cGUnXSkKKyAgICAgICAg ICAgIGRhdGFbJ2hhc1NxckJyYWNrZXQnXSA9IHNlbGYuaGFzU3FyQnJhY2tl dAorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIFNRTCA9IHNlbGYuZ2V0 X3NxbChzY2lkLCB0aWQsIGNsaWQsIGRhdGEpCisKKyAgICAgICAgICAgIGlm IFNRTCBhbmQgU1FMLnN0cmlwKCdcbicpIGFuZCBTUUwuc3RyaXAoJyAnKToK KyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAor ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1TUUwsCisgICAgICAgICAg ICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgICAg ICAgICApCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 c3RyKGUpKQorCisgICAgZGVmIGdldF9zcWwoc2VsZiwgc2NpZCwgdGlkLCBj bGlkLCBkYXRhKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rp b24gd2lsbCBnZW5yYXRlIHNxbCBmcm9tIG1vZGVsIGRhdGEKKyAgICAgICAg IiIiCisgICAgICAgIGlmIGNsaWQgaXMgbm90IE5vbmU6CisgICAgICAgICAg ICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxh dGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ3Byb3BlcnRpZXMuc3FsJ10pLCB0aWQ9dGlkLCBjbGlkPWNs aWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHNob3df c3lzX29iamVjdHM9c2VsZi5ibHVlcHJpbnQuc2hvd19zeXN0ZW1fb2JqZWN0 cykKKworICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6Cisg ICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIG9sZF9kYXRhID0gZGljdChy ZXNbJ3Jvd3MnXVswXSkKKyAgICAgICAgICAgICMgV2Ugd2lsbCBhZGQgdGFi bGUgJiBzY2hlbWEgYXMgd2VsbAorICAgICAgICAgICAgb2xkX2RhdGEgPSBz ZWxmLl9mb3JtYXR0ZXIoc2NpZCwgdGlkLCBjbGlkLCBvbGRfZGF0YSkKKwor ICAgICAgICAgICAgIyBJZiBuYW1lIGlzIG5vdCBwcmVzZW50IGluIGRhdGEg dGhlbgorICAgICAgICAgICAgIyB3ZSB3aWxsIGZldGNoIGl0IGZyb20gb2xk IGRhdGEsIHdlIGFsc28gbmVlZCBzY2hlbWEgJiB0YWJsZSBuYW1lCisgICAg ICAgICAgICBpZiAnbmFtZScgbm90IGluIGRhdGE6CisgICAgICAgICAgICAg ICAgZGF0YVsnbmFtZSddID0gb2xkX2RhdGFbJ25hbWUnXQorCisgICAgICAg ICAgICAjIENvbnZlcnQgYWNsIGNvbWluZyBmcm9tIGNsaWVudCBpbiBkYiBw YXJzaW5nIGZvcm1hdAorICAgICAgICAgICAga2V5ID0gJ2F0dGFjbCcKKyAg ICAgICAgICAgIGlmIGtleSBpbiBkYXRhIGFuZCBkYXRhW2tleV0gaXMgbm90 IE5vbmU6CisgICAgICAgICAgICAgICAgaWYgJ2FkZGVkJyBpbiBkYXRhW2tl eV06CisgICAgICAgICAgICAgICAgICAgIGRhdGFba2V5XVsnYWRkZWQnXSA9 IHBhcnNlX3ByaXZfdG9fZGIoCisgICAgICAgICAgICAgICAgICAgICAgZGF0 YVtrZXldWydhZGRlZCddLCBzZWxmLmFjbAorICAgICAgICAgICAgICAgICAg ICApCisgICAgICAgICAgICAgICAgaWYgJ2NoYW5nZWQnIGluIGRhdGFba2V5 XToKKyAgICAgICAgICAgICAgICAgICAgZGF0YVtrZXldWydjaGFuZ2VkJ10g PSBwYXJzZV9wcml2X3RvX2RiKAorICAgICAgICAgICAgICAgICAgICAgIGRh dGFba2V5XVsnY2hhbmdlZCddLCBzZWxmLmFjbAorICAgICAgICAgICAgICAg ICAgICApCisgICAgICAgICAgICAgICAgaWYgJ2RlbGV0ZWQnIGluIGRhdGFb a2V5XToKKyAgICAgICAgICAgICAgICAgICAgZGF0YVtrZXldWydkZWxldGVk J10gPSBwYXJzZV9wcml2X3RvX2RiKAorICAgICAgICAgICAgICAgICAgICAg IGRhdGFba2V5XVsnZGVsZXRlZCddLCBzZWxmLmFjbAorICAgICAgICAgICAg ICAgICAgICApCisKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0 ZSgKKyAgICAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9w YXRoLCAndXBkYXRlLnNxbCddKSwKKyAgICAgICAgICAgICAgICBkYXRhPWRh dGEsIG9fZGF0YT1vbGRfZGF0YSwgY29ubj1zZWxmLmNvbm4KKyAgICAgICAg ICAgICAgICApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXF1aXJl ZF9hcmdzID0gWworICAgICAgICAgICAgICAgICduYW1lJywKKyAgICAgICAg ICAgICAgICAnY2x0eXBlJworICAgICAgICAgICAgXQorCisgICAgICAgICAg ICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICAgICAg aWYgYXJnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgICAgICByZXR1 cm4gZ2V0dGV4dCgnLS0gaW5jb21wbGV0ZSBkZWZpbml0aW9uJykKKworICAg ICAgICAgICAgIyBXZSB3aWxsIGNvbnZlcnQgcHJpdmlsZWdlcyBjb21pbmcg ZnJvbSBjbGllbnQgcmVxdWlyZWQKKyAgICAgICAgICAgICMgaW4gc2VydmVy IHNpZGUgZm9ybWF0CisgICAgICAgICAgICBpZiAnYXR0YWNsJyBpbiBkYXRh OgorICAgICAgICAgICAgICAgIGRhdGFbJ2F0dGFjbCddID0gcGFyc2VfcHJp dl90b19kYihkYXRhWydhdHRhY2wnXSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hY2wpCisgICAg ICAgICAgICAjIElmIHRoZSByZXF1ZXN0IGZvciBuZXcgb2JqZWN0IHdoaWNo IGRvIG5vdCBoYXZlIGRpZAorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3Rl bXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdjcmVhdGUu c3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGE9ZGF0YSwgY29ubj1zZWxmLmNvbm4pCisgICAgICAgIHJldHVybiBTUUwK KworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgc3FsKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgY2xpZCk6CisgICAgICAgICIi IgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGVzIHJldmVy c2UgZW5naW5lZXJlZCBzcWwgZm9yIHNjaGVtYSBvYmplY3QKKworICAgICAg ICAgQXJnczoKKyAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAg ICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgZGlkOiBEYXRh YmFzZSBJRAorICAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAg ICAgdGlkOiBUYWJsZSBJRAorICAgICAgICAgICBjbGlkOiBDb2x1bW4gSUQK KyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIFNRTCA9 IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRo LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAncHJvcGVydGllcy5zcWwnXSksIHRpZD10aWQsIGNsaWQ9Y2xpZAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgc2hvd19zeXNfb2Jq ZWN0cz1zZWxmLmJsdWVwcmludC5zaG93X3N5c3RlbV9vYmplY3RzKQorCisg ICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2Rp Y3QoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICAgICAgZGF0YSA9IGRpY3QocmVzWydyb3dzJ11b MF0pCisgICAgICAgICAgICAjIFdlIGRvIG5vdCB3YW50IHRvIGRpc3BsYXkg bGVuZ3RoIGFzIC0xIGluIGNyZWF0ZSBxdWVyeQorICAgICAgICAgICAgaWYg J2F0dGxlbicgaW4gZGF0YSBhbmQgZGF0YVsnYXR0bGVuJ10gPT0gLTE6Cisg ICAgICAgICAgICAgICAgZGF0YVsnYXR0bGVuJ10gPSAnJworICAgICAgICAg ICAgIyBBZGRpbmcgcGFyZW50IGludG8gZGF0YSBkaWN0LCB3aWxsIGJlIHVz aW5nIGl0IHdoaWxlIGNyZWF0aW5nIHNxbAorICAgICAgICAgICAgZGF0YVsn c2NoZW1hJ10gPSBzZWxmLnNjaGVtYQorICAgICAgICAgICAgZGF0YVsndGFi bGUnXSA9IHNlbGYudGFibGUKKyAgICAgICAgICAgICMgY2hlY2sgdHlwZSBm b3IgJ1tdJyBpbiBpdAorICAgICAgICAgICAgaWYgJ2NsdHlwZScgaW4gZGF0 YToKKyAgICAgICAgICAgICAgICBkYXRhWydjbHR5cGUnXSA9IHNlbGYuX2Ns dHlwZV9mb3JtYXR0ZXIoZGF0YVsnY2x0eXBlJ10pCisgICAgICAgICAgICAg ICAgZGF0YVsnaGFzU3FyQnJhY2tldCddID0gc2VsZi5oYXNTcXJCcmFja2V0 CisKKyAgICAgICAgICAgICMgV2Ugd2lsbCBhZGQgdGFibGUgJiBzY2hlbWEg YXMgd2VsbAorICAgICAgICAgICAgZGF0YSA9IHNlbGYuX2Zvcm1hdHRlcihz Y2lkLCB0aWQsIGNsaWQsIGRhdGEpCisKKyAgICAgICAgICAgIFNRTCA9IHNl bGYuZ2V0X3NxbChzY2lkLCB0aWQsIE5vbmUsIGRhdGEpCisKKyAgICAgICAg ICAgIHNxbF9oZWFkZXIgPSAiLS0gQ29sdW1uOiB7MH1cblxuLS0gIi5mb3Jt YXQoZGF0YVsnbmFtZSddKQorICAgICAgICAgICAgc3FsX2hlYWRlciArPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnZGVsZXRlLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgY29ubj1zZWxmLmNv bm4pCisgICAgICAgICAgICBTUUwgPSBzcWxfaGVhZGVyICsgJ1xuXG4nICsg U1FMCisKKyAgICAgICAgICAgIHJldHVybiBTUUwKKworICAgICAgICBleGNl cHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVj a19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5kZW50cyhzZWxmLCBnaWQs IHNpZCwgZGlkLCBzY2lkLCB0aWQsIGNsaWQpOgorICAgICAgICAiIiIKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVudHMgYW5kIHJl dHVybiBhamF4IHJlc3BvbnNlCisgICAgICAgIGZvciB0aGUgY29sdW1uIG5v ZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVy IEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAg ICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgc2NpZDogU2No ZW1hIElECisgICAgICAgICAgICB0aWQ6IFRhYmxlIElECisgICAgICAgICAg ICBjbGlkOiBDb2x1bW4gSUQKKyAgICAgICAgIiIiCisgICAgICAgICMgU3Bl Y2lmaWMgY29uZGl0aW9uIGZvciBjb2x1bW4gd2hpY2ggd2UgbmVlZCB0byBh cHBlbmQKKyAgICAgICAgd2hlcmUgPSAiV0hFUkUgZGVwLnJlZm9iamlkPXsw fTo6T0lEIEFORCBkZXAucmVmb2Jqc3ViaWQ9ezF9Ii5mb3JtYXQoCisgICAg ICAgICAgICB0aWQsIGNsaWQKKyAgICAgICAgKQorCisgICAgICAgIGRlcGVu ZGVudHNfcmVzdWx0ID0gc2VsZi5nZXRfZGVwZW5kZW50cygKKyAgICAgICAg ICAgIHNlbGYuY29ubiwgY2xpZCwgd2hlcmU9d2hlcmUpCisKKyAgICAgICAg IyBTcGVjaWZpYyBzcWwgdG8gcnVuIGFnYWludCBjb2x1bW4gdG8gZmV0Y2gg ZGVwZW5kZW50cworICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8i LmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnZGVwZW5kLnNxbCddKSwgd2hlcmU9 d2hlcmUpCisKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQorCisgICAgICAgIGZvciByb3cgaW4gcmVzWydyb3dzJ106CisgICAg ICAgICAgICByZWZfbmFtZSA9IHJvd1sncmVmbmFtZSddCisgICAgICAgICAg ICBpZiByZWZfbmFtZSBpcyBOb25lOgorICAgICAgICAgICAgICAgIGNvbnRp bnVlCisKKyAgICAgICAgICAgIGRlcF90eXBlID0gJycKKyAgICAgICAgICAg IGRlcF9zdHIgPSByb3dbJ2RlcHR5cGUnXQorICAgICAgICAgICAgaWYgZGVw X3N0ciA9PSAnYSc6CisgICAgICAgICAgICAgICAgZGVwX3R5cGUgPSAnYXV0 bycKKyAgICAgICAgICAgIGVsaWYgZGVwX3N0ciA9PSAnbic6CisgICAgICAg ICAgICAgICAgZGVwX3R5cGUgPSAnbm9ybWFsJworICAgICAgICAgICAgZWxp ZiBkZXBfc3RyID09ICdpJzoKKyAgICAgICAgICAgICAgICBkZXBfdHlwZSA9 ICdpbnRlcm5hbCcKKworICAgICAgICAgICAgZGVwZW5kZW50c19yZXN1bHQu YXBwZW5kKHsndHlwZSc6ICdzZXF1ZW5jZScsICduYW1lJzogcmVmX25hbWUs ICdmaWVsZCc6IGRlcF90eXBlfSkKKworICAgICAgICByZXR1cm4gYWpheF9y ZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZT1kZXBlbmRlbnRz X3Jlc3VsdCwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAg ICAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRl ZiBkZXBlbmRlbmNpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlk LCBjbGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24g Z2V0IHRoZSBkZXBlbmRlbmNpZXMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNl CisgICAgICAgIGZvciB0aGUgY29sdW1uIG5vZGUuCisKKyAgICAgICAgQXJn czoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAg ICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFz ZSBJRAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAg ICB0aWQ6IFRhYmxlIElECisgICAgICAgICAgICBjbGlkOiBDb2x1bW4gSUQK KworICAgICAgICAiIiIKKyAgICAgICAgIyBTcGVjaWZpYyBjb25kaXRpb24g Zm9yIGNvbHVtbiB3aGljaCB3ZSBuZWVkIHRvIGFwcGVuZAorICAgICAgICB3 aGVyZSA9ICJXSEVSRSBkZXAub2JqaWQ9ezB9OjpPSUQgQU5EIGRlcC5vYmpz dWJpZD17MX0iLmZvcm1hdCgKKyAgICAgICAgICAgIHRpZCwgY2xpZAorICAg ICAgICApCisKKyAgICAgICAgZGVwZW5kZW5jaWVzX3Jlc3VsdCA9IHNlbGYu Z2V0X2RlcGVuZGVuY2llcygKKyAgICAgICAgICAgIHNlbGYuY29ubiwgY2xp ZCwgd2hlcmU9d2hlcmUpCisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9u c2UoCisgICAgICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW5jaWVzX3Jl c3VsdCwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAg ICAgICAgKQorCisKK0NvbHVtbnNWaWV3LnJlZ2lzdGVyX25vZGVfdmlldyhi bHVlcHJpbnQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv Y29sdW1ucy9zdGF0aWMvaW1nL2NvbGwtY29sdW1uLnBuZyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy9jb2x1bW5zL3N0YXRpYy9pbWcvY29sbC1jb2x1bW4u cG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5ZDc1ODgzNGQ0MTc2YzFk ZjI1NDhkYjEwYjQ2YjFmNmIyZTRlYzUKR0lUIGJpbmFyeSBwYXRjaApsaXRl cmFsIDQwMAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXjB3QiE2Mz93eWxg R2JLfWN6e29jRTA5KjRgaDNFdiZzKG0meUw8UVUKeikyQzBMSiR1JV58OVNH PDxNLX59ZC0oOS12U3JLT3ltXzszLU1XYEFVIz91YWFfIW8rPih7UztfM0c5 MD1nJUtKCnpjPH1vNT5rbDczZUVhcm8kQnJFdkhmLTNxYXBVKnotYH5Ee1Rh dGdNNktGSkpOc3dQS2dUdTJNWCtSRVZmayRMOQp6a29FdiR4MEJnK0t0X1M1 aShgbnk8PUZHP1Zoc3ZCdGB9VzRFQFpRZ19fcDZxbUBuYnk7cXJHMWowX0lA Y14oO3IKenVoUCkyWDxEX1A/ZHRpMiR2enl2KGsoVipvP2Y/SDxpP2dYaVJB KW1oVFVwd29mUW4qUDhgfExXdz1NY05hWFEhCnp5K3FAQFlkMG0xeWxGM2Z7 KEFuXy1FViQhUDRMXiNfYDA5dmgrPWNXOD0mMilDOVYtQURUeVZpUj4/KUZL I0laMAp6enxjVX4mYDgoN0Z2UTVmJUVae3AjNjtWYClYS29YVnkzRGJpaVhf JGwrM2hCaHowe291bStIN0QrNG8jaEV2bCsKUio4bnZ6YylJJHp0YUQwZTBz I0JZciFAY28KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3N0YXRpYy9pbWcvY29s dW1uLnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3N0YXRp Yy9pbWcvY29sdW1uLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDlm ODFkZjk4ZmUyN2Q4MWFkZTUxNDRkNjZiM2IwOWI5NjEyM2MxCkdJVCBiaW5h cnkgcGF0Y2gKbGl0ZXJhbCA0MzUKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2 cF4wd0IhNjM/d3lsYEdiS31YQEYwTkUwOSo0YGgzRXYmcyhtJnlMPFFVCnp5 P2dpVy1AcEkjPkM8UD1wMCkzUHpISGdEPWcqKE5jPTYpUm4+WHYkdCRYP008 O3M7U1NGQmpFY0oxMnI+KHs/fQp6XzNGV2MyTS1AVWVEdnRpPmVaeyl0WFo+ WikyMHN9S0Q+VllgcVFVUnBGZTs4YHR8RiNae0skOCpzKT41aEsoQ0gKemUq Z2FjP2MyQlMtbzQ5ZUtlIVpWRj1JKVBVb2VCaXZtMHFaNHJoVCFXSEZIVDBB c2g0Kj4qcmlzaSV1JGh7V2FFCnpeQjBBaDZhLW9tNFJtLWl1VjMrWDxvMnJt P3x3JH0/ISFlTl95MCpkY1RfT1JiNng3QT17NmN1PF42WH1rWTJJYgp6WjBU TUhyaWgxSV5DVWheZCVAPHkpM1R2T3YmSzZpSH4tUkNUZFZVNmN6TWU5Kmh+ MWx7VlMxXyhEM345UDZfcTQKemdYaSspKSE2RV58OXhmckIqR3pJLVRBKV49 bTZDYypOQnBvI0ZBOTI8ZjJweyNiOUokWHJPQ29xLSRVcFZxez10CnpWcipx JXFIU1BtV25mQDJRJmtRe0x2RFViVz9DZ2dnTWxTajE0eS0lZmYrPUBzcCs5 PmZFcE0pVUh4M3ZJVkNnIQpFME5ScW5afnk9UgoKbGl0ZXJhbCAwCkhjbVY/ ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2Nv bHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9qcy9jb2x1bW4uanMgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL2pzL2Nv bHVtbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x YjhkMzIxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9qcy9jb2x1bW4uanMKQEAg LTAsMCArMSw0MTkgQEAKK2RlZmluZSgKKyAgICAgICAgWydqcXVlcnknLCAn dW5kZXJzY29yZScsICd1bmRlcnNjb3JlLnN0cmluZycsICdwZ2FkbWluJywg J3BnYWRtaW4uYnJvd3NlcicsCisgICAgICAgICdiYWNrZm9ybScsICdhbGVy dGlmeScsICdwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlvbiddLAorZnVuY3Rp b24oJCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBCYWNrZm9ybSwgYWxl cnRpZnkpIHsKKworICBpZiAoIXBnQnJvd3Nlci5Ob2Rlc1snY29sbC1jb2x1 bW4nXSkgeworICAgIHZhciBkYXRhYmFzZXMgPSBwZ0FkbWluLkJyb3dzZXIu Tm9kZXNbJ2NvbGwtY29sdW1uJ10gPQorICAgICAgcGdBZG1pbi5Ccm93c2Vy LkNvbGxlY3Rpb24uZXh0ZW5kKHsKKyAgICAgICAgbm9kZTogJ2NvbHVtbics CisgICAgICAgIGxhYmVsOiAne3sgXygnQ29sdW1ucycpIH19JywKKyAgICAg ICAgdHlwZTogJ2NvbGwtY29sdW1uJywKKyAgICAgICAgY29sdW1uczogWydu YW1lJywgJ2F0dHR5cGlkJywgJ2Rlc2NyaXB0aW9uJ10KKyAgICAgIH0pOwor ICB9OworCisgICAvLyBUaGlzIE5vZGUgbW9kZWwgd2lsbCBiZSB1c2VkIGZv ciB2YXJpYWJsZSBjb250cm9sIGZvciBjb2x1bW4KKyAgIHZhciBWYXJpYWJs ZXNNb2RlbCA9IEJhY2tmb3JtLlZhcmlhYmxlc01vZGVsID0gcGdBZG1pbi5C cm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICBkZWZhdWx0czogewor ICAgICAgbmFtZTogbnVsbCwKKyAgICAgIHZhbHVlOiBudWxsCisgICAgfSwK KyAgICBzY2hlbWE6IFt7CisgICAgICBpZDogJ25hbWUnLCBsYWJlbDogJ3t7 IF8oJ05hbWUnKSB9fScsIGNlbGw6ICdzZWxlY3QyJywKKyAgICAgIHR5cGU6 ICd0ZXh0JywgZGlzYWJsZWQ6IGZhbHNlLCBub2RlOiAnY29sdW1uJywKKyAg ICAgIG9wdGlvbnM6IFtbJ25fZGlzdGluY3QnLCAnbl9kaXN0aW5jdCddLAor ICAgICAgWyduX2Rpc3RpbmN0X2luaGVyaXRlZCcsJ25fZGlzdGluY3RfaW5o ZXJpdGVkJ11dLAorICAgICAgc2VsZWN0Mjoge3BsYWNlaG9sZGVyOiAiU2Vs ZWN0IHZhcmlhYmxlIn0sCisgICAgICBjZWxsSGVhZGVyQ2xhc3Nlczond2lk dGhfcGVyY2VudF81MCcKKyAgICB9LHsKKyAgICAgIGlkOiAndmFsdWUnLCBs YWJlbDogJ3t7IF8oJ1ZhbHVlJykgfX0nLAorICAgICAgdHlwZTogJ3RleHQn LCBkaXNhYmxlZDogZmFsc2UsCisgICAgICBjZWxsSGVhZGVyQ2xhc3Nlczon d2lkdGhfcGVyY2VudF81MCcKKyAgICB9XSwKKyAgICB2YWxpZGF0ZTogZnVu Y3Rpb24oKSB7CisgICAgICB2YXIgZXJyID0ge30sCisgICAgICAgICAgZXJy bXNnID0gbnVsbDsKKworICAgICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5n ZXQoJ3ZhbHVlJykpIHx8CisgICAgICAgIF8uaXNOdWxsKHRoaXMuZ2V0KCd2 YWx1ZScpKSB8fAorICAgICAgICBTdHJpbmcodGhpcy5nZXQoJ3ZhbHVlJykp LnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAg ICAgIGVycm1zZyA9ICAne3sgXygnUGxlYXNlIHByb3ZpZGUgaW5wdXQgZm9y IHZhcmlhYmxlLicpfX0nOworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVs LnNldCgndmFsdWUnLCBlcnJtc2cpOworICAgICAgICAgICAgcmV0dXJuIGVy cm1zZzsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhpcy5l cnJvck1vZGVsLnVuc2V0KCd2YWx1ZScpOworICAgICAgICAgIH0KKyAgICAg IHJldHVybiBudWxsOworICAgIH0KKyAgfSk7CisKKworICBpZiAoIXBnQnJv d3Nlci5Ob2Rlc1snY29sdW1uJ10pIHsKKyAgICBwZ0FkbWluLkJyb3dzZXIu Tm9kZXNbJ2NvbHVtbiddID0gcGdBZG1pbi5Ccm93c2VyLk5vZGUuZXh0ZW5k KHsKKyAgICAgIHBhcmVudF90eXBlOiBbJ3RhYmxlJywgJ3ZpZXcnLCAnbWF0 ZXJpYWxpemVkX3ZpZXcnXSwKKyAgICAgIGNvbGxlY3Rpb25fdHlwZTogWydj b2xsLXRhYmxlJ10sCisgICAgICB0eXBlOiAnY29sdW1uJywKKyAgICAgIGxh YmVsOiAne3sgXygnQ29sdW1uJykgfX0nLAorICAgICAgaGFzU1FMOiAgdHJ1 ZSwKKyAgICAgIGNhbkRyb3A6IGZ1bmN0aW9uKGl0ZW1EYXRhLCBpdGVtLCBk YXRhKXsKKyAgICAgICAgaWYgKHBnQnJvd3Nlci5Ob2Rlc1snc2NoZW1hJ10u Y2FuQ2hpbGREcm9wLmFwcGx5KHRoaXMsIFtpdGVtRGF0YSwgaXRlbSwgZGF0 YV0pKSB7CisgICAgICAgICAgdmFyIHQgPSBwZ0Jyb3dzZXIudHJlZSwgaSA9 IGl0ZW0sIGQgPSBpdGVtRGF0YSwgcGFyZW50cyA9IFtdOworICAgICAgICAg IC8vIFRvIGl0ZXJhdGUgb3ZlciB0cmVlIHRvIGNoZWNrIHBhcmVudCBub2Rl CisgICAgICAgICAgd2hpbGUgKGkpIHsKKyAgICAgICAgICAgIC8vIElmIGl0 IGlzIHNjaGVtYSB0aGVuIGFsbG93IHVzZXIgdG8gYyByZWF0ZSB0YWJsZQor ICAgICAgICAgICAgaWYgKF8uaW5kZXhPZihbJ3ZpZXcnLCAnbWF0ZXJpYWxp emVkX3ZpZXcnXSwgZC5fdHlwZSkgPiAtMSkgeworICAgICAgICAgICAgICBy ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwYXJl bnRzLnB1c2goZC5fdHlwZSk7CisgICAgICAgICAgICBpID0gdC5oYXNQYXJl bnQoaSkgPyB0LnBhcmVudChpKSA6IG51bGw7CisgICAgICAgICAgICBkID0g aSA/IHQuaXRlbURhdGEoaSkgOiBudWxsOworICAgICAgICAgIH0KKyAgICAg ICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsK KyAgICAgICAgfQorICAgICAgfSwKKyAgICAgIGhhc0RlcGVuZHM6IHRydWUs CisgICAgICBJbml0OiBmdW5jdGlvbigpIHsKKyAgICAgICAgLyogQXZvaWQg bXVsaXRwbGUgcmVnaXN0cmF0aW9uIG9mIG1lbnVzICovCisgICAgICAgIGlm ICh0aGlzLmluaXRpYWxpemVkKQorICAgICAgICAgICAgcmV0dXJuOworCisg ICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlOworCisgICAgICAgIHBn QnJvd3Nlci5hZGRfbWVudXMoW3sKKyAgICAgICAgICBuYW1lOiAnY3JlYXRl X2NvbHVtbl9vbl9jb2xsJywgbm9kZTogJ2NvbGwtY29sdW1uJywgbW9kdWxl OiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRl eHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAg ICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJlbDog J3t7IF8oJ0NvbHVtbi4uLicpIH19JywKKyAgICAgICAgICBpY29uOiAnd2NU YWJJY29uIGljb24tY29sdW1uJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScs IGNoZWNrOiB0cnVlfSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUn CisgICAgICAgIH0seworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfY29sdW1u Jywgbm9kZTogJ2NvbHVtbicsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBh cHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hv d19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVh dGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdDb2x1bW4uLi4nKSB9 fScsCisgICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLWNvbHVtbics IGRhdGE6IHthY3Rpb246ICdjcmVhdGUnLCBjaGVjazogdHJ1ZX0sCisgICAg ICAgICAgZW5hYmxlOiAnY2FuQ3JlYXRlJworICAgICAgICB9LHsKKyAgICAg ICAgICBuYW1lOiAnY3JlYXRlX2NvbHVtbl9vblRhYmxlJywgbm9kZTogJ3Rh YmxlJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2Jq ZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0 aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5 OiA0LCBsYWJlbDogJ3t7IF8oJ0NvbHVtbi4uLicpIH19JywKKyAgICAgICAg ICBpY29uOiAnd2NUYWJJY29uIGljb24tY29sdW1uJywgZGF0YToge2FjdGlv bjogJ2NyZWF0ZScsIGNoZWNrOiB0cnVlfSwKKyAgICAgICAgICBlbmFibGU6 ICdjYW5DcmVhdGUnCisgICAgICAgIH0KKyAgICAgICAgXSk7CisgICAgICB9 LAorICAgICAgbW9kZWw6IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4 dGVuZCh7CisgICAgICAgIGRlZmF1bHRzOiB7CisgICAgICAgICAgYXR0bmFt ZTogdW5kZWZpbmVkLAorICAgICAgICAgIGF0dG93bmVyOiB1bmRlZmluZWQs CisgICAgICAgICAgYXR0dHlwaWQ6IHVuZGVmaW5lZCwKKyAgICAgICAgICBh dHRudW06IHVuZGVmaW5lZCwKKyAgICAgICAgICBjbHR5cGU6IHVuZGVmaW5l ZCwKKyAgICAgICAgICBjb2xsc3BjbmFtZTogdW5kZWZpbmVkLAorICAgICAg ICAgIGF0dGFjbDogdW5kZWZpbmVkLAorICAgICAgICAgIGRlc2NyaXB0aW9u OiB1bmRlZmluZWQsCisgICAgICAgICAgcGFyZW50X3RibDogdW5kZWZpbmVk LAorICAgICAgICAgIG1pbl92YWw6IHVuZGVmaW5lZCwKKyAgICAgICAgICBt YXhfdmFsOiB1bmRlZmluZWQsCisgICAgICAgICAgZWRpdF90eXBlczogdW5k ZWZpbmVkLAorICAgICAgICAgIHByaW1hcnlfa2V5OiBmYWxzZQorICAgICAg ICB9LAorICAgICAgICBzY2hlbWE6IFt7CisgICAgICAgICAgLy8gTmVlZCB0 byBzaG93IHRoaXMgZmllbGQgb25seSB3aGVuIGNyZWF0aW5nIG5ldyB0YWJs ZSBbaW4gU3ViTm9kZSBjb250cm9sXQorICAgICAgICAgIGlkOiAncHJpbWFy eV9rZXknLCBsYWJlbDogJ3t7IF8oJ1ByaW1hcnkgS2V5PycpIH19JywgY2Vs bDogJ3N3aXRjaCcsCisgICAgICAgICAgdHlwZTogJ3N3aXRjaCcsIGRpc2Fi bGVkOiAnaW5TY2hlbWFXaXRoQ29sdW1uQ2hlY2snLAorICAgICAgICAgIGVk aXRhYmxlOiB0cnVlLAorICAgICAgICAgIGNlbGxIZWFkZXJDbGFzc2VzOid3 aWR0aF9wZXJjZW50XzEwJywKKyAgICAgICAgICB2aXNpYmxlOiBmdW5jdGlv bihtKSB7CisgICAgICAgICAgICByZXR1cm4gXy5pc1VuZGVmaW5lZChtLm5v ZGVfaW5mb1sndGFibGUnXSk7CisgICAgICAgICAgfQorICAgICAgICB9LHsK KyAgICAgICAgICBpZDogJ25hbWUnLCBsYWJlbDogJ3t7IF8oJ05hbWUnKSB9 fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0Jywg ZGlzYWJsZWQ6ICdpblNjaGVtYVdpdGhDb2x1bW5DaGVjaycsCisgICAgICAg ICAgY2VsbEhlYWRlckNsYXNzZXM6J3dpZHRoX3BlcmNlbnRfMzAnCisgICAg ICAgIH0seworICAgICAgICAgIGlkOiAnYXR0bnVtJywgbGFiZWw6J3t7IF8o J1Bvc2l0aW9uJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0 eXBlOiAndGV4dCcsIGRpc2FibGVkOiAnaW5TY2hlbWEnLCBtb2RlOiBbJ3By b3BlcnRpZXMnXQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2NsdHlw ZScsIGxhYmVsOid7eyBfKCdEYXRhIHR5cGUnKSB9fScsIGNlbGw6ICdzdHJp bmcnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6ICdpblNj aGVtYVdpdGhDb2x1bW5DaGVjaycsCisgICAgICAgICAgY29udHJvbDogJ25v ZGUtYWpheC1vcHRpb25zJywgdXJsOiAnZ2V0X3R5cGVzJywgbm9kZTogJ3Rh YmxlJywKKyAgICAgICAgICBjZWxsSGVhZGVyQ2xhc3Nlczond2lkdGhfcGVy Y2VudF8zMCcsCisgICAgICAgICAgc2VsZWN0MjogeyBhbGxvd0NsZWFyOiBm YWxzZSB9LCBncm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsCisgICAg ICAgICAgdHJhbnNmb3JtOiBmdW5jdGlvbihkYXRhKSB7CisgICAgICAgICAg ICAgIC8qIFdlIG5lZWQgZGlmZmVyZW50IGRhdGEgaW4gY3JlYXRlIG1vZGUg JiBpbiBlZGl0IG1vZGUKKyAgICAgICAgICAgICAgICogaWYgd2UgYXJlIGlu IGNyZWF0ZSBtb2RlIHRoZW4gcmV0dXJuIGRhdGEgYXMgaXQgaXMKKyAgICAg ICAgICAgICAgICogaWYgd2UgYXJlIGluIGVkaXQgbW9kZSB0aGVuIHdlIG5l ZWQgdG8gZmlsdGVyIGRhdGEKKyAgICAgICAgICAgICAgICovCisgICAgICAg ICAgICAgIHRoaXMubW9kZWwuZGF0YXR5cGVzID0gZGF0YTsKKyAgICAgICAg ICAgICAgdmFyIGVkaXRfdHlwZXMgPSB0aGlzLm1vZGVsLmdldCgnZWRpdF90 eXBlcycpLAorICAgICAgICAgICAgICAgIHJlc3VsdCA9IFtdOworICAgICAg ICAgICAgICBpZih0aGlzLm1vZGVsLmlzTmV3KCkpIHsKKyAgICAgICAgICAg ICAgICByZXR1cm4gZGF0YTsKKyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg ICAgICAgICAgICAgICAvL2VkaXQgbW9kZQorICAgICAgICAgICAgICAgIF8u ZWFjaChkYXRhLCBmdW5jdGlvbih0KSB7CisgICAgICAgICAgICAgICAgICBp ZiAoXy5pbmRleE9mKGVkaXRfdHlwZXMsIHQudmFsdWUpICE9IC0xKSB7Cisg ICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHQpOworICAgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgIH0KKyAgICAgICAgfSx7CisgICAgICAgICAgLy8gTmVlZCB0byBzaG93 IHRoaXMgZmllbGQgb25seSB3aGVuIGNyZWF0aW5nIG5ldyB0YWJsZSBbaW4g U3ViTm9kZSBjb250cm9sXQorICAgICAgICAgIGlkOiAnaW5oZXJpdGVkZnJv bScsIGxhYmVsOiAne3sgXygnSW5oZXJpdGVkIGZyb20gdGFibGUnKSB9fScs CisgICAgICAgICAgdHlwZTogJ3RleHQnLCBkaXNhYmxlZDogdHJ1ZSwgZWRp dGFibGU6IGZhbHNlLAorICAgICAgICAgIGNlbGxIZWFkZXJDbGFzc2VzOid3 aWR0aF9wZXJjZW50XzMwJywKKyAgICAgICAgICB2aXNpYmxlOiBmdW5jdGlv bihtKSB7CisgICAgICAgICAgICByZXR1cm4gXy5pc1VuZGVmaW5lZChtLm5v ZGVfaW5mb1sndGFibGUnXSk7CisgICAgICAgICAgfQorICAgICAgICB9LHsK KyAgICAgICAgICBpZDogJ2F0dGxlbicsIGxhYmVsOid7eyBfKCdMZW5ndGgn KSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgICBkZXBzOiBbJ2Ns dHlwZSddLCB0eXBlOiAnaW50JywgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9u JykgfX0nLAorICAgICAgICAgICBkaXNhYmxlZDogZnVuY3Rpb24obSkgewor ICAgICAgICAgICAgIHZhciBvZl90eXBlID0gbS5nZXQoJ2NsdHlwZScpLAor ICAgICAgICAgICAgICAgZmxhZyA9IHRydWU7CisgICAgICAgICAgICAgIF8u ZWFjaChtLmRhdGF0eXBlcywgZnVuY3Rpb24obykgeworICAgICAgICAgICAg ICAgIGlmICggb2ZfdHlwZSA9PSBvLnZhbHVlICkgeworICAgICAgICAgICAg ICAgICAgICBpZihvLmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgICAgICAgIG0uc2V0KCdtaW5fdmFsJywgby5taW5f dmFsLCB7c2lsZW50OiB0cnVlfSk7CisgICAgICAgICAgICAgICAgICAgICAg bS5zZXQoJ21heF92YWwnLCBvLm1heF92YWwsIHtzaWxlbnQ6IHRydWV9KTsK KyAgICAgICAgICAgICAgICAgICAgICBmbGFnID0gZmFsc2U7CisgICAgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgIH0pOworICAgICAgICAgICAgICByZXR1cm4gZmxhZzsKKyAgICAgICAg ICAgfQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2F0dHByZWNpc2lv bicsIGxhYmVsOid7eyBfKCdQcmVjaXNpb24nKSB9fScsIGNlbGw6ICdzdHJp bmcnLAorICAgICAgICAgICBkZXBzOiBbJ2NsdHlwZSddLCB0eXBlOiAnaW50 JywgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0nLAorICAgICAgICAg ICBkaXNhYmxlZDogZnVuY3Rpb24obSkgeworICAgICAgICAgICAgIHZhciBv Zl90eXBlID0gbS5nZXQoJ2NsdHlwZScpLAorICAgICAgICAgICAgICAgZmxh ZyA9IHRydWU7CisgICAgICAgICAgICAgIF8uZWFjaChtLmRhdGF0eXBlcywg ZnVuY3Rpb24obykgeworICAgICAgICAgICAgICAgIGlmICggb2ZfdHlwZSA9 PSBvLnZhbHVlICkgeworICAgICAgICAgICAgICAgICAgICBpZihvLnByZWNp c2lvbikKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg ICAgICAgIG0uc2V0KCdtaW5fdmFsJywgby5taW5fdmFsLCB7c2lsZW50OiB0 cnVlfSk7CisgICAgICAgICAgICAgICAgICAgICAgbS5zZXQoJ21heF92YWwn LCBvLm1heF92YWwsIHtzaWxlbnQ6IHRydWV9KTsKKyAgICAgICAgICAgICAg ICAgICAgICBmbGFnID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0pOworICAgICAg ICAgICAgICByZXR1cm4gZmxhZzsKKyAgICAgICAgICAgfQorICAgICAgICAg fSx7CisgICAgICAgICAgaWQ6ICdjb2xsc3BjbmFtZScsIGxhYmVsOid7eyBf KCdDb2xsYXRpb24nKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAg IHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6ICdpblNjaGVtYVdpdGhNb2RlbENo ZWNrJywKKyAgICAgICAgICBjb250cm9sOiAnbm9kZS1hamF4LW9wdGlvbnMn LCB1cmw6ICdnZXRfY29sbGF0aW9ucycsCisgICAgICAgICAgZ3JvdXA6ICd7 eyBfKCdEZWZpbml0aW9uJykgfX0nLCBub2RlOiAnY29sbGF0aW9uJworICAg ICAgICB9LHsKKyAgICAgICAgICBpZDogJ2RlZnZhbCcsIGxhYmVsOid7eyBf KCdEZWZhdWx0IFZhbHVlJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAg ICAgICB0eXBlOiAndGV4dCcsIGRpc2FibGVkOiAnaW5TY2hlbWFXaXRoQ29s dW1uQ2hlY2snLAorICAgICAgICAgIGdyb3VwOiAne3sgXygnRGVmaW5pdGlv bicpIH19JworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2F0dG5vdG51 bGwnLCBsYWJlbDone3sgXygnTm90IE5VTEwnKSB9fScsIGNlbGw6ICdzdHJp bmcnLAorICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBkaXNhYmxlZDogJ2lu U2NoZW1hV2l0aENvbHVtbkNoZWNrJywKKyAgICAgICAgICBncm91cDogJ3t7 IF8oJ0RlZmluaXRpb24nKSB9fScKKyAgICAgICAgfSx7CisgICAgICAgICAg aWQ6ICdhdHRzdGF0dGVyZ2V0JywgbGFiZWw6J3t7IF8oJ1N0YXRpc3RpY3Mn KSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0 JywgZGlzYWJsZWQ6ICdpblNjaGVtYVdpdGhDb2x1bW5DaGVjaycsIG1vZGU6 IFsncHJvcGVydGllcycsICdlZGl0J10sCisgICAgICAgICAgZ3JvdXA6ICd7 eyBfKCdEZWZpbml0aW9uJykgfX0nCisgICAgICAgIH0seworICAgICAgICAg IGlkOiAnYXR0c3RvcmFnZScsIGxhYmVsOid7eyBfKCdTdG9yYWdlJykgfX0n LCBncm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsCisgICAgICAgICAg dHlwZTogJ3RleHQnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCddLAor ICAgICAgICAgIGNlbGw6ICdzdHJpbmcnLCBkaXNhYmxlZDogJ2luU2NoZW1h V2l0aENvbHVtbkNoZWNrJywKKyAgICAgICAgICBjb250cm9sOiAnc2VsZWN0 MicsIHNlbGVjdDI6IHsgcGxhY2Vob2xkZXI6ICJTZWxlY3Qgc3RvcmFnZSIs CisgICAgICAgICAgICBhbGxvd0NsZWFyOiBmYWxzZSwKKyAgICAgICAgICAg IHdpZHRoOiAiMTAwJSIKKyAgICAgICAgICB9LAorICAgICAgICAgIG9wdGlv bnM6IFsKKyAgICAgICAgICAgIHtsYWJlbDogIlBMQUlOIiwgdmFsdWU6ICJw In0sCisgICAgICAgICAgICB7bGFiZWw6ICJNQUlOIiwgdmFsdWU6ICJtIn0s CisgICAgICAgICAgICB7bGFiZWw6ICJFWFRFUk5BTCIsIHZhbHVlOiAiZSJ9 LAorICAgICAgICAgICAge2xhYmVsOiAiRVhURU5ERUQiLCB2YWx1ZTogIngi fSwKKyAgICAgICAgICAgXQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDog J2lzX3BrJywgbGFiZWw6J3t7IF8oJ1ByaW1hcnkga2V5PycpIH19JywKKyAg ICAgICAgICB0eXBlOiAnc3dpdGNoJywgZGlzYWJsZWQ6IHRydWUsIG1vZGU6 IFsncHJvcGVydGllcyddCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAn aXNfZmsnLCBsYWJlbDone3sgXygnRm9yZWlnbiBrZXk/JykgfX0nLAorICAg ICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBkaXNhYmxlZDogdHJ1ZSwgbW9kZTog Wydwcm9wZXJ0aWVzJ10KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdp c19pbmhlcml0ZWQnLCBsYWJlbDone3sgXygnSW5oZXJpdGVkPycpIH19JywK KyAgICAgICAgICB0eXBlOiAnc3dpdGNoJywgZGlzYWJsZWQ6IHRydWUsIG1v ZGU6IFsncHJvcGVydGllcyddCisgICAgICAgIH0seworICAgICAgICAgIGlk OiAndGJsc19pbmhlcml0ZWQnLCBsYWJlbDone3sgXygnSW5oZXJpdGVkIGZy b20gdGFibGUocyknKSB9fScsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBk aXNhYmxlZDogdHJ1ZSwgbW9kZTogWydwcm9wZXJ0aWVzJ10sIGRlcHM6IFsn aXNfaW5oZXJpdGVkJ10sCisgICAgICAgICAgdmlzaWJsZTogZnVuY3Rpb24o bSkgeworICAgICAgICAgICAgICBpZiAoIV8uaXNVbmRlZmluZWQobS5nZXQo J2lzX2luaGVyaXRlZCcpKSAmJiBtLmdldCgnaXNfaW5oZXJpdGVkJykpIHsK KyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAg fSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg ICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0seworICAgICAg ICAgIGlkOiAnaXNfc3lzX2NvbHVtbicsIGxhYmVsOid7eyBfKCdTeXN0ZW0g Q29sdW1uPycpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlw ZTogJ3N3aXRjaCcsIGRpc2FibGVkOiB0cnVlLCBtb2RlOiBbJ3Byb3BlcnRp ZXMnXQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2Rlc2NyaXB0aW9u JywgbGFiZWw6J3t7IF8oJ0NvbW1lbnQnKSB9fScsIGNlbGw6ICdzdHJpbmcn LAorICAgICAgICAgIHR5cGU6ICdtdWx0aWxpbmUnLCBtb2RlOiBbJ3Byb3Bl cnRpZXMnLCAnY3JlYXRlJywgJ2VkaXQnXSwKKyAgICAgICAgICBkaXNhYmxl ZDogJ2luU2NoZW1hJworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2F0 dGFjbCcsIGxhYmVsOiAnUHJpdmlsZWdlcycsIHR5cGU6ICdjb2xsZWN0aW9u JywKKyAgICAgICAgICBncm91cDogJ3t7IF8oJ1NlY3VyaXR5JykgfX0nLCBj b250cm9sOiAndW5pcXVlLWNvbC1jb2xsZWN0aW9uJywKKyAgICAgICAgICBt b2RlbDogcGdBZG1pbi5Ccm93c2VyLk5vZGUuUHJpdmlsZWdlUm9sZU1vZGVs LmV4dGVuZCh7CisgICAgICAgICAgcHJpdmlsZWdlczogWydhJywncicsJ3cn LCd4J119KSwKKyAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRp dCddLCBjYW5BZGQ6IHRydWUsIGNhbkRlbGV0ZTogdHJ1ZSwKKyAgICAgICAg ICB1bmlxdWVDb2wgOiBbJ2dyYW50ZWUnXQorICAgICAgICB9LHsKKyAgICAg ICAgICBpZDogJ2F0dG9wdGlvbnMnLCBsYWJlbDogJ1ZhcmlhYmxlcycsIHR5 cGU6ICdjb2xsZWN0aW9uJywKKyAgICAgICAgICBncm91cDogJ3t7IF8oJ1Nl Y3VyaXR5JykgfX0nLCBjb250cm9sOiAndW5pcXVlLWNvbC1jb2xsZWN0aW9u JywKKyAgICAgICAgICBtb2RlbDogVmFyaWFibGVzTW9kZWwsIHVuaXF1ZUNv bCA6IFsnbmFtZSddLAorICAgICAgICAgIG1vZGU6IFsnZWRpdCcsICdjcmVh dGUnXSwgY2FuQWRkOiB0cnVlLCBjYW5FZGl0OiBmYWxzZSwKKyAgICAgICAg ICBjYW5EZWxldGU6IHRydWUKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6 ICdzZWNsYWJlbHMnLCBsYWJlbDogJ3t7IF8oJ1NlY3VyaXR5IExhYmVscycp IH19JywKKyAgICAgICAgICBtb2RlbDogQmFja2Zvcm0uU2VjdXJpdHlNb2Rl bCwgZWRpdGFibGU6IGZhbHNlLCB0eXBlOiAnY29sbGVjdGlvbicsCisgICAg ICAgICAgZ3JvdXA6ICd7eyBfKCdTZWN1cml0eScpIH19JywgbW9kZTogWydl ZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICAgIG1pbl92ZXJzaW9uOiA5MDIw MCwgY2FuQWRkOiB0cnVlLAorICAgICAgICAgIGNhbkVkaXQ6IGZhbHNlLCBj YW5EZWxldGU6IHRydWUsIGNvbnRyb2w6ICd1bmlxdWUtY29sLWNvbGxlY3Rp b24nCisgICAgICAgIH0KKyAgICAgICAgXSwKKyAgICAgICAgdmFsaWRhdGU6 IGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciBlcnIgPSB7fSwKKyAgICAg ICAgICAgICAgY2hhbmdlZEF0dHJzID0gdGhpcy5jaGFuZ2VkLAorICAgICAg ICAgICAgICBtc2cgPSB1bmRlZmluZWQ7CisgICAgICAgICAgdGhpcy5lcnJv ck1vZGVsLmNsZWFyKCk7CisKKyAgICAgICAgICBpZiAoXy5oYXMoY2hhbmdl ZEF0dHJzLHRoaXMuZ2V0KCduYW1lJykpCisgICAgICAgICAgICAgICAgICAg ICYmIF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ25hbWUnKSkKKyAgICAgICAg ICAgICAgfHwgU3RyaW5nKHRoaXMuZ2V0KCduYW1lJykpLnJlcGxhY2UoL15c cyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgIG1zZyA9ICd7 eyBfKCdOYW1lIGNhbiBub3QgYmUgZW1wdHkhJykgfX0nOworICAgICAgICAg ICAgdGhpcy5lcnJvck1vZGVsLnNldCgnbmFtZScsIG1zZyk7CisgICAgICAg ICAgICByZXR1cm4gbXNnOworICAgICAgICAgIH0gZWxzZSBpZiAoXy5oYXMo Y2hhbmdlZEF0dHJzLHRoaXMuZ2V0KCdhdHRvd25lcicpKQorICAgICAgICAg ICAgICAgICAgICAgICAgJiYgXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgnYXR0 b3duZXInKSkKKyAgICAgICAgICAgICAgfHwgU3RyaW5nKHRoaXMuZ2V0KCdh dHRvd25lcicpKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7 CisgICAgICAgICAgICBtc2cgPSAne3sgXygnU2NoZW1hIGNhbiBub3QgYmUg ZW1wdHkhJykgfX0nOworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNl dCgnYXR0b3duZXInLCBtc2cpOworICAgICAgICAgICAgcmV0dXJuIG1zZzsK KyAgICAgICAgICB9IGVsc2UgaWYgKF8uaGFzKGNoYW5nZWRBdHRycyx0aGlz LmdldCgnYXR0b3duZXInKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICYm IF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ2F0dG93bmVyJykpCisgICAgICAg ICAgICAgIHx8IFN0cmluZyh0aGlzLmdldCgnYXR0b3duZXInKSkucmVwbGFj ZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgbXNn ID0gJ3t7IF8oJ093bmVyIGNhbiBub3QgYmUgZW1wdHkhJykgfX0nOworICAg ICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgnYXR0b3duZXInLCBtc2cp OworICAgICAgICAgICAgcmV0dXJuIG1zZzsKKyAgICAgICAgICB9IGVsc2Ug aWYgKF8uaGFzKGNoYW5nZWRBdHRycyx0aGlzLmdldCgnYXR0bGVuJykpCisg ICAgICAgICAgICAgICAgICAgICAgICAmJiBfLmlzVW5kZWZpbmVkKHRoaXMu Z2V0KCdhdHRsZW4nKSkKKyAgICAgICAgICAgICAgfHwgU3RyaW5nKHRoaXMu Z2V0KCdhdHRsZW4nKSkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAn JykgeworICAgICAgICAgICAgLy8gVmFsaWRhdGlvbiBmb3IgTGVuZ3RoIGZp ZWxkCisgICAgICAgICAgICBpZiAodGhpcy5nZXQoJ2F0dGxlbicpIDwgdGhp cy5nZXQoJ21pbl92YWwnKSkKKyAgICAgICAgICAgICAgbXNnID0gXygiTGVu Z3RoIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuICIgKyB0aGlzLmdldCgnbWlu X3ZhbCcpKQorICAgICAgICAgICAgaWYgKHRoaXMuZ2V0KCdhdHRsZW4nKSA+ IHRoaXMuZ2V0KCdtYXhfdmFsJykpCisgICAgICAgICAgICAgIG1zZyA9IF8o Ikxlbmd0aCBzaG91bGQgbm90IGJlIGdyZWF0ZXIgdGhhbiAiICsgdGhpcy5n ZXQoJ21heF92YWwnKSkKKyAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYW55 IGVycm9yIHNldCB0aGVuIHRocm93IGl0IHRvIHVzZXIKKyAgICAgICAgICAg IGlmKG1zZykgeworICAgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0 KCdhdHRsZW4nLCBtc2cpCisgICAgICAgICAgICAgIHJldHVybiBtc2c7Cisg ICAgICAgICAgICB9CisgICAgICAgICAgIH0gZWxzZSBpZiAoXy5oYXMoY2hh bmdlZEF0dHJzLHRoaXMuZ2V0KCdhdHRwcmVjaXNpb24nKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICYmIF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ2F0 dHByZWNpc2lvbicpKQorICAgICAgICAgICAgICB8fCBTdHJpbmcodGhpcy5n ZXQoJ2F0dHByZWNpc2lvbicpKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycp ID09ICcnKSB7CisgICAgICAgICAgICAvLyBWYWxpZGF0aW9uIGZvciBwcmVj aXNpb24gZmllbGQKKyAgICAgICAgICAgIGlmICh0aGlzLmdldCgnYXR0cHJl Y2lzaW9uJykgPCB0aGlzLmdldCgnbWluX3ZhbCcpKQorICAgICAgICAgICAg ICBtc2cgPSBfKCJQcmVjaXNpb24gc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4g IiArIHRoaXMuZ2V0KCdtaW5fdmFsJykpCisgICAgICAgICAgICBpZiAodGhp cy5nZXQoJ2F0dHByZWNpc2lvbicpID4gdGhpcy5nZXQoJ21heF92YWwnKSkK KyAgICAgICAgICAgICAgbXNnID0gXygiUHJlY2lzaW9uIHNob3VsZCBub3Qg YmUgZ3JlYXRlciB0aGFuICIgKyB0aGlzLmdldCgnbWF4X3ZhbCcpKQorICAg ICAgICAgICAgLy8gSWYgd2UgaGF2ZSBhbnkgZXJyb3Igc2V0IHRoZW4gdGhy b3cgaXQgdG8gdXNlcgorICAgICAgICAgICAgaWYobXNnKSB7CisgICAgICAg ICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ2F0dHByZWNpc2lvbicsIG1z ZykKKyAgICAgICAgICAgICAgcmV0dXJuIG1zZzsKKyAgICAgICAgICAgIH0K KyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICB9CisgICAg ICAgIH0sCisgICAgICAgIC8vIFdlIHdpbGwgY2hlY2sgaWYgd2UgYXJlIHVu ZGVyIHNjaGVtYSBub2RlICYgaW4gJ2NyZWF0ZScgbW9kZQorICAgICAgICBp blNjaGVtYTogZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWYodGhpcy5ub2Rl X2luZm8gJiYgICdjYXRhbG9nJyBpbiB0aGlzLm5vZGVfaW5mbykKKyAgICAg ICAgICB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICB9 CisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9LAorICAgICAg ICAvLyBXZSB3aWxsIGNoZWNrIGlmIHdlIGFyZSB1bmRlciBzY2hlbWEgbm9k ZSAmIGluICdjcmVhdGUnIG1vZGUKKyAgICAgICAgaW5TY2hlbWFXaXRoTW9k ZWxDaGVjazogZnVuY3Rpb24obSkgeworICAgICAgICAgIGlmKHRoaXMubm9k ZV9pbmZvICYmICAnc2NoZW1hJyBpbiB0aGlzLm5vZGVfaW5mbykKKyAgICAg ICAgICB7CisgICAgICAgICAgICAvLyBXZSB3aWxsIGRpc2FibGUgY29udHJv bCBpZiBpdCdzIGluICdlZGl0JyBtb2RlCisgICAgICAgICAgICBpZiAobS5p c05ldygpKSB7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIHJldHVybiB0cnVlOwor ICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICByZXR1cm4g dHJ1ZTsKKyAgICAgICAgfSwKKyAgICAgICAgLy8gQ2hlY2tzIHdlYXRoZXIg dG8gZW5hYmxlL2Rpc2FibGUgY29udHJvbAorICAgICAgICBpblNjaGVtYVdp dGhDb2x1bW5DaGVjazogZnVuY3Rpb24obSkgeworICAgICAgICAgIGlmKHRo aXMubm9kZV9pbmZvICYmICAnc2NoZW1hJyBpbiB0aGlzLm5vZGVfaW5mbykK KyAgICAgICAgICB7CisgICAgICAgICAgICAvLyBXZSB3aWxsIGRpc2FibGUg Y29udHJvbCBpZiBpdCdzIHN5c3RlbSBjb2x1bW5zCisgICAgICAgICAgICAv LyBpZTogaXQncyBwb3NpdGlvbiBpcyBsZXNzIHRoZW4gMQorICAgICAgICAg ICAgaWYgKG0uaXNOZXcoKSkgeworICAgICAgICAgICAgICByZXR1cm4gZmFs c2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAvLyBp ZiB3ZSBhcmUgaW4gZWRpdCBtb2RlCisgICAgICAgICAgICAgIGlmICghXy5p c1VuZGVmaW5lZChtLmdldCgnYXR0bnVtJykpICYmIG0uZ2V0KCdhdHRudW0n KSA+PSAxICkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4g dHJ1ZTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICB9CisgICAgICAg ICAgfQorICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg ICB9KSwKKyAgICAgIC8vIEJlbG93IGZ1bmN0aW9uIHdpbGwgZW5hYmxlIHJp Z2h0IGNsaWNrIG1lbnUgZm9yIGNyZWF0aW5nIGNvbHVtbgorICAgICAgY2Fu Q3JlYXRlOiBmdW5jdGlvbihpdGVtRGF0YSwgaXRlbSwgZGF0YSkgeworICAg ICAgICAgIC8vIElmIGNoZWNrIGlzIGZhbHNlIHRoZW4gLCB3ZSB3aWxsIGFs bG93IGNyZWF0ZSBtZW51CisgICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5j aGVjayA9PSBmYWxzZSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisg ICAgICAgICAgdmFyIHQgPSBwZ0Jyb3dzZXIudHJlZSwgaSA9IGl0ZW0sIGQg PSBpdGVtRGF0YSwgcGFyZW50cyA9IFtdOworICAgICAgICAgIC8vIFRvIGl0 ZXJhdGUgb3ZlciB0cmVlIHRvIGNoZWNrIHBhcmVudCBub2RlCisgICAgICAg ICAgd2hpbGUgKGkpIHsKKyAgICAgICAgICAgIC8vIElmIGl0IGlzIHNjaGVt YSB0aGVuIGFsbG93IHVzZXIgdG8gYyByZWF0ZSB0YWJsZQorICAgICAgICAg ICAgaWYgKF8uaW5kZXhPZihbJ3NjaGVtYSddLCBkLl90eXBlKSA+IC0xKSB7 CisgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQor ICAgICAgICAgICAgZWxzZSBpZiAoXy5pbmRleE9mKFsndmlldycsICdjb2xs LXZpZXcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF0 ZXJpYWxpemVkX3ZpZXcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnY29sbC1tYXRlcmlhbGl6ZWRfdmlldyddLCBkLl90eXBlKSA+IC0x KSB7CisgICAgICAgICAgICAgIHBhcmVudHMucHVzaChkLl90eXBlKTsKKyAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAg ICBwYXJlbnRzLnB1c2goZC5fdHlwZSk7CisgICAgICAgICAgICBpID0gdC5o YXNQYXJlbnQoaSkgPyB0LnBhcmVudChpKSA6IG51bGw7CisgICAgICAgICAg ICBkID0gaSA/IHQuaXRlbURhdGEoaSkgOiBudWxsOworICAgICAgICAgIH0K KworICAgICAgICAgIC8vIElmIG5vZGUgaXMgdW5kZXIgY2F0YWxvZyB0aGVu IGRvIG5vdCBhbGxvdyAnY3JlYXRlJyBtZW51CisgICAgICAgICAgaWYgKF8u aW5kZXhPZihwYXJlbnRzLCAnY2F0YWxvZycpID4gLTEgfHwKKyAgICAgICAg ICAgICAgXy5pbmRleE9mKHBhcmVudHMsICdjb2xsLXZpZXcnKSA+IC0xIHx8 CisgICAgICAgICAgICAgIF8uaW5kZXhPZihwYXJlbnRzLCAnY29sbC1tYXRl cmlhbGl6ZWRfdmlldycpID4gLTEgfHwKKyAgICAgICAgICAgICAgXy5pbmRl eE9mKHBhcmVudHMsICdtYXRlcmlhbGl6ZWRfdmlldycpID4gLTEgfHwKKyAg ICAgICAgICAgICAgXy5pbmRleE9mKHBhcmVudHMsICd2aWV3JykgPiAtMSkg eworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgIH0gZWxz ZSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICB9Cisg ICAgICB9CisgIH0pOworIH0KKworICByZXR1cm4gcGdCcm93c2VyLk5vZGVz Wydjb2x1bW4nXTsKK30pOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9tYWNyb3MvcHJpdmls ZWdlLm1hY3JvcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3Rl bXBsYXRlcy9jb2x1bW4vbWFjcm9zL3ByaXZpbGVnZS5tYWNyb3MKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VhZmQ2MAotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3Rl bXBsYXRlcy9jb2x1bW4vbWFjcm9zL3ByaXZpbGVnZS5tYWNyb3MKQEAgLTAs MCArMSwxMyBAQAoreyUgbWFjcm8gQVBQTFkoY29ubiwgc2NoZW1hX25hbWUs IHRhYmxlX29iamVjdCwgY29sdW1uX29iamVjdCwgcm9sZSwgcHJpdnMsIHdp dGhfZ3JhbnRfcHJpdnMpIC0lfQoreyUgaWYgcHJpdnMgJX0KK0dSQU5UIHsl IGZvciBwIGluIHByaXZzICV9eyUgaWYgbG9vcC5pbmRleCAhPSAxICV9LCB7 JSBlbmRpZiAlfXt7cH19KHt7Y29ubnxxdElkZW50KGNvbHVtbl9vYmplY3Qp fX0peyUgZW5kZm9yICV9CisgT04ge3sgY29ubnxxdElkZW50KHNjaGVtYV9u YW1lLCB0YWJsZV9vYmplY3QpIH19IFRPIHt7IGNvbm58cXRJZGVudChyb2xl KSB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiB3aXRoX2dyYW50X3ByaXZzICV9 CitHUkFOVCB7JSBmb3IgcCBpbiB3aXRoX2dyYW50X3ByaXZzICV9eyUgaWYg bG9vcC5pbmRleCAhPSAxICV9LCB7JSBlbmRpZiAlfXt7cH19KHt7Y29ubnxx dElkZW50KGNvbHVtbl9vYmplY3QpfX0peyUgZW5kZm9yICV9CisgT04ge3sg Y29ubnxxdElkZW50KHNjaGVtYV9uYW1lLCB0YWJsZV9vYmplY3QpIH19IFRP IHt7IGNvbm58cXRJZGVudChyb2xlKSB9fSBXSVRIIEdSQU5UIE9QVElPTjsK K3slIGVuZGlmICV9Cit7JS0gZW5kbWFjcm8gJX0KK3slIG1hY3JvIFJFU0VU QUxMKGNvbm4sIHNjaGVtYV9uYW1lLCB0YWJsZV9vYmplY3QsIGNvbHVtbl9v YmplY3QsIHJvbGUpIC0lfQorUkVWT0tFIEFMTCh7eyBjb25ufHF0SWRlbnQo Y29sdW1uX29iamVjdCkgfX0pIE9OIHt7IGNvbm58cXRJZGVudChzY2hlbWFf bmFtZSwgdGFibGVfb2JqZWN0KSB9fSBGUk9NIHt7IGNvbm58cXRJZGVudChy b2xlKSB9fTsKK3slLSBlbmRtYWNybyAlfQpcIE5vIG5ld2xpbmUgYXQgZW5k IG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9j b2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vbWFjcm9zL3NlY3VyaXR5Lm1hY3Jv cyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9j b2x1bW4vbWFjcm9zL3NlY3VyaXR5Lm1hY3JvcwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi4zOTU4N2MzCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2Nv bHVtbi9tYWNyb3Mvc2VjdXJpdHkubWFjcm9zCkBAIC0wLDAgKzEsNiBAQAor eyUgbWFjcm8gQVBQTFkoY29ubiwgdHlwZSwgc2NoZW1hX25hbWUsIHBhcmVu dF9vYmplY3QsIGNoaWxkX29iamVjdCwgcHJvdmlkZXIsIGxhYmVsKSAtJX0K K1NFQ1VSSVRZIExBQkVMIEZPUiB7eyBjb25ufHF0SWRlbnQocHJvdmlkZXIp IH19IE9OIHt7IHR5cGUgfX0ge3sgY29ubnxxdElkZW50KHNjaGVtYV9uYW1l LCBwYXJlbnRfb2JqZWN0LCBjaGlsZF9vYmplY3QpIH19IElTIHt7IGxhYmVs fHF0TGl0ZXJhbCB9fTsKK3slLSBlbmRtYWNybyAlfQoreyUgbWFjcm8gRFJP UChjb25uLCB0eXBlLCBzY2hlbWFfbmFtZSwgcGFyZW50X29iamVjdCwgY2hp bGRfb2JqZWN0LCBwcm92aWRlcikgLSV9CitTRUNVUklUWSBMQUJFTCBGT1Ig e3sgY29ubnxxdElkZW50KHByb3ZpZGVyKSB9fSBPTiB7eyB0eXBlIH19IHt7 IGNvbm58cXRJZGVudChzY2hlbWFfbmFtZSwgcGFyZW50X29iamVjdCwgY2hp bGRfb2JqZWN0KSB9fSBJUyBOVUxMOworeyUtIGVuZG1hY3JvICV9CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0 ZXMvY29sdW1uL3NxbC85LjFfcGx1cy9hY2wuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3Bs dXMvYWNsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5jYTNkYmM0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMv YWNsLnNxbApAQCAtMCwwICsxLDM3IEBACitTRUxFQ1QgJ2F0dGFjbCcgYXMg ZGVmdHlwZSwgQ09BTEVTQ0UoZ3Qucm9sbmFtZSwgJ3B1YmxpYycpIGdyYW50 ZWUsIGcucm9sbmFtZSBncmFudG9yLCBhcnJheV9hZ2cocHJpdmlsZWdlX3R5 cGUpIGFzIHByaXZpbGVnZXMsIGFycmF5X2FnZyhpc19ncmFudGFibGUpIGFz IGdyYW50YWJsZQorRlJPTQorICAoU0VMRUNUCisgICAgZC5ncmFudGVlLCBk LmdyYW50b3IsIGQuaXNfZ3JhbnRhYmxlLAorICAgIENBU0UgZC5wcml2aWxl Z2VfdHlwZQorICAgICAgICBXSEVOICdDT05ORUNUJyBUSEVOICdjJworICAg ICAgICBXSEVOICdDUkVBVEUnIFRIRU4gJ0MnCisgICAgICAgIFdIRU4gJ0RF TEVURScgVEhFTiAnZCcKKyAgICAgICAgV0hFTiAnRVhFQ1VURScgVEhFTiAn WCcKKyAgICAgICAgV0hFTiAnSU5TRVJUJyBUSEVOICdhJworICAgICAgICBX SEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4JworICAgICAgICBXSEVOICdTRUxF Q1QnIFRIRU4gJ3InCisgICAgICAgIFdIRU4gJ1RFTVBPUkFSWScgVEhFTiAn VCcKKyAgICAgICAgV0hFTiAnVFJJR0dFUicgVEhFTiAndCcKKyAgICAgICAg V0hFTiAnVFJVTkNBVEUnIFRIRU4gJ0QnCisgICAgICAgIFdIRU4gJ1VQREFU RScgVEhFTiAndycKKyAgICAgICAgV0hFTiAnVVNBR0UnIFRIRU4gJ1UnCisg ICAgICAgIEVMU0UgJ1VOS05PV04nCisgICAgRU5EIEFTIHByaXZpbGVnZV90 eXBlCisgIEZST00KKyAgICAoU0VMRUNUIGF0dGFjbAorICAgICAgICBGUk9N IHBnX2F0dHJpYnV0ZSBhdHQKKyAgICAgICAgV0hFUkUgYXR0LmF0dHJlbGlk ID0ge3t0aWR9fTo6b2lkCisgICAgICAgIEFORCBhdHQuYXR0bnVtID0ge3tj bGlkfX06OmludAorICAgICkgYWNsLAorICAgIChTRUxFQ1QgKGQpLmdyYW50 ZWUgQVMgZ3JhbnRlZSwgKGQpLmdyYW50b3IgQVMgZ3JhbnRvciwgKGQpLmlz X2dyYW50YWJsZQorICAgICAgICBBUyBpc19ncmFudGFibGUsIChkKS5wcml2 aWxlZ2VfdHlwZSBBUyBwcml2aWxlZ2VfdHlwZSBGUk9NIChTRUxFQ1QKKyAg ICAgICAgYWNsZXhwbG9kZShhdHRhY2wpIGFzIGQgRlJPTSBwZ19hdHRyaWJ1 dGUgYXR0CisgICAgICAgIFdIRVJFIGF0dC5hdHRyZWxpZCA9IHt7dGlkfX06 Om9pZAorICAgICAgICBBTkQgYXR0LmF0dG51bSA9IHt7Y2xpZH19OjppbnQp IGEpIGQKKyAgICApIGQKKyAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9s ZXMgZyBPTiAoZC5ncmFudG9yID0gZy5vaWQpCisgIExFRlQgSk9JTiBwZ19j YXRhbG9nLnBnX3JvbGVzIGd0IE9OIChkLmdyYW50ZWUgPSBndC5vaWQpCitH Uk9VUCBCWSBnLnJvbG5hbWUsIGd0LnJvbG5hbWUKKworCisKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9j b2x1bW4vc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFfcGx1 cy9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjllMDZhNWYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFfcGx1 cy9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsMzYgQEAKK3slIGltcG9ydCAnY29s dW1uL21hY3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7 JSBpbXBvcnQgJ2NvbHVtbi9tYWNyb3MvcHJpdmlsZWdlLm1hY3JvcycgYXMg UFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy92YXJpYWJsZS5tYWNy b3MnIGFzIFZBUklBQkxFICV9Cit7JSBpZiBkYXRhICV9Cit7IyMjICBBZGQg Y29sdW1uICMjI30KK0FMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEu c2NoZW1hLCBkYXRhLnRhYmxlKX19CisgICAgQUREIENPTFVNTiB7e2Nvbm58 cXRJZGVudChkYXRhLm5hbWUpfX0ge3tkYXRhLmNsdHlwZX19eyUgaWYgZGF0 YS5hdHRsZW4gJX0KKyh7e2RhdGEuYXR0bGVufX17JSBpZiBkYXRhLmF0dHBy ZWNpc2lvbiV9LCB7e2RhdGEuYXR0cHJlY2lzaW9ufX17JSBlbmRpZiAlfSl7 JSBlbmRpZiAlfXslIGlmIGRhdGEuaGFzU3FyQnJhY2tldCAlfQorW117JSBl bmRpZiAlfXslIGlmIGRhdGEuY29sbHNwY25hbWUgJX0KKyBDT0xMQVRFIHt7 ZGF0YS5jb2xsc3BjbmFtZX19eyUgZW5kaWYgJX17JSBpZiBkYXRhLmF0dG5v dG51bGwgJX0KKyBOT1QgTlVMTHslIGVuZGlmICV9eyUgaWYgZGF0YS5kZWZ2 YWwgJX0KKyBERUZBVUxUIHt7ZGF0YS5kZWZ2YWx9fXslIGVuZGlmICV9Owor eyMjIyAgQWRkIGNvbW1lbnRzICMjI30KK3slIGlmIGRhdGEgYW5kIGRhdGEu ZGVzY3JpcHRpb24gJX0KK0NPTU1FTlQgT04gQ09MVU1OIHt7Y29ubnxxdElk ZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUpfX0KKyAg ICBJUyB7e2RhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsfX07Cit7JSBlbmRp ZiAlfQoreyMjIyAgQWRkIHZhcmlhYmxlcyB0byBjb2x1bW4gIyMjfQoreyUg aWYgZGF0YS5hdHRvcHRpb25zICV9CitBTFRFUiBUQUJMRSB7e2Nvbm58cXRJ ZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSl9fQore3sgVkFSSUFCTEUu U0VUKGNvbm4sICdDT0xVTU4nLCBkYXRhLm5hbWUsIGRhdGEuYXR0b3B0aW9u cykgfX0KK3slIGVuZGlmICV9Cit7IyMjICBBQ0wgIyMjfQoreyUgaWYgZGF0 YS5hdHRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuYXR0YWNsICV9Cit7 eyBQUklWSUxFR0UuQVBQTFkoY29ubiwgZGF0YS5zY2hlbWEsIGRhdGEudGFi bGUsIGRhdGEubmFtZSwgcHJpdi5ncmFudGVlLCBwcml2LndpdGhvdXRfZ3Jh bnQsIHByaXYud2l0aF9ncmFudCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5k aWYgJX0KK3sjIyMgIFNlY3VyaXR5IExhYmxlcyAjIyN9Cit7JSBpZiBkYXRh LnNlY2xhYmVscyAlfQoreyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0K K3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdDT0xVTU4nLGRhdGEuc2NoZW1h LCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJp dHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7IyMj IEVuZCBtYWluIGlmICMjI30KK3slIGVuZGlmJX0KXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFfcGx1cy9kZWxl dGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxh dGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzUxMTBmCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxh dGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApAQCAtMCwwICsx IEBACitBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwg ZGF0YS50YWJsZSl9fSBEUk9QIENPTFVNTiB7e2Nvbm58cXRJZGVudChkYXRh Lm5hbWV9fTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMv Y29sdW1uL3NxbC85LjFfcGx1cy9kZXBlbmQuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3Bs dXMvZGVwZW5kLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5mNWYzOWU3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3Bs dXMvZGVwZW5kLnNxbApAQCAtMCwwICsxLDkgQEAKK1NFTEVDVAorICAgIHJl Zi5yZWxuYW1lIEFTIHJlZm5hbWUsIGQyLnJlZmNsYXNzaWQsIGRlcC5kZXB0 eXBlIEFTIGRlcHR5cGUKK0ZST00gcGdfZGVwZW5kIGRlcAorICAgIExFRlQg Sk9JTiBwZ19kZXBlbmQgZDIgT04gZGVwLm9iamlkPWQyLm9iamlkIEFORCBk ZXAucmVmb2JqaWQgIT0gZDIucmVmb2JqaWQKKyAgICBMRUZUIEpPSU4gcGdf Y2xhc3MgcmVmIE9OIHJlZi5vaWQ9ZDIucmVmb2JqaWQKKyAgICBMRUZUIEpP SU4gcGdfYXR0cmlidXRlIGF0dCBPTiBkMi5yZWZjbGFzc2lkPWF0dC5hdHRy ZWxpZCBBTkQgZDIucmVmb2Jqc3ViaWQ9YXR0LmF0dG51bQorICAgIHt7IHdo ZXJlIH19IEFORAorICAgIGRlcC5jbGFzc2lkPShTRUxFQ1Qgb2lkIEZST00g cGdfY2xhc3MgV0hFUkUgcmVsbmFtZT0ncGdfYXR0cmRlZicpIEFORAorICAg IGRlcC5yZWZvYmppZCBOT1QgSU4gKFNFTEVDVCBkMy5yZWZvYmppZCBGUk9N IHBnX2RlcGVuZCBkMyBXSEVSRSBkMy5vYmppZD1kMi5yZWZvYmppZCkKXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85 LjFfcGx1cy9lZGl0X21vZGVfdHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMv ZWRpdF9tb2RlX3R5cGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi44YmM2Mzg1Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwv OS4xX3BsdXMvZWRpdF9tb2RlX3R5cGVzLnNxbApAQCAtMCwwICsxLDUgQEAK K1NFTEVDVCB0dC5vaWQsIGZvcm1hdF90eXBlKHR0Lm9pZCxOVUxMKSBBUyB0 eXBuYW1lCisgIEZST00gcGdfY2FzdAorICBKT0lOIHBnX3R5cGUgdHQgT04g dHQub2lkPWNhc3R0YXJnZXQKK1dIRVJFIGNhc3Rzb3VyY2U9e3t0eXBlX2lk fX0KKyAgIEFORCBjYXN0Y29udGV4dCBJTiAoJ2knLCAnYScpClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3Bs dXMvZ2V0X2NvbGxhdGlvbnMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMvZ2V0X2Nv bGxhdGlvbnMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjU4ZmNiMzIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFfcGx1 cy9nZXRfY29sbGF0aW9ucy5zcWwKQEAgLTAsMCArMSw3IEBACitTRUxFQ1Qg LS1uc3BuYW1lLCBjb2xsbmFtZSwKKwlDQVNFIFdIRU4gbGVuZ3RoKG5zcG5h bWUpID4gMCBBTkQgbGVuZ3RoKGNvbGxuYW1lKSA+IDAgIFRIRU4KKwkgIGNv bmNhdChxdW90ZV9pZGVudChuc3BuYW1lKSwgJy4nLCBxdW90ZV9pZGVudChj b2xsbmFtZSkpCisJRUxTRSAnJyBFTkQgQVMgY29sbGF0aW9uCitGUk9NIHBn X2NvbGxhdGlvbiBjLCBwZ19uYW1lc3BhY2UgbgorICAgIFdIRVJFIGMuY29s bG5hbWVzcGFjZT1uLm9pZAorT1JERVIgQlkgbnNwbmFtZSwgY29sbG5hbWU7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90 ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFfcGx1cy9nZXRfaW5oZXJpdGVkX3Rh Ymxlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1w bGF0ZXMvY29sdW1uL3NxbC85LjFfcGx1cy9nZXRfaW5oZXJpdGVkX3RhYmxl cy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc5 MzRiOAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMV9wbHVzL2dldF9p bmhlcml0ZWRfdGFibGVzLnNxbApAQCAtMCwwICsxLDEyIEBACitTRUxFQ1Qg YXJyYXlfdG9fc3RyaW5nKGFycmF5X2FnZyhpbmhyZWxuYW1lKSwgJywgJykg aW5ocmVsbmFtZSwgYXR0cm5hbWUKK0ZST00KKyAoU0VMRUNUCisgICBpbmhw YXJlbnQ6OnJlZ2NsYXNzIEFTIGluaHJlbG5hbWUsCisgICBhLmF0dG5hbWUg QVMgYXR0cm5hbWUKKyAgRlJPTSBwZ19pbmhlcml0cyBpCisgIExFRlQgSk9J TiBwZ19hdHRyaWJ1dGUgYSBPTgorICAgKGF0dHJlbGlkID0gaW5ocGFyZW50 IEFORCBhdHRudW0gPiAwKQorICBXSEVSRSBpbmhyZWxpZCA9IHt7dGlkfX06 Om9pZAorICBPUkRFUiBCWSBpbmhzZXFubworICkgYQorR1JPVVAgQlkgYXR0 cm5hbWU7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2Nv bHVtbi9zcWwvOS4xX3BsdXMvZ2V0X3BhcmVudC5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFf cGx1cy9nZXRfcGFyZW50LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi41ZGQ1ZDNjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwv OS4xX3BsdXMvZ2V0X3BhcmVudC5zcWwKQEAgLTAsMCArMSw1IEBACitTRUxF Q1QgbnNwLm5zcG5hbWUgQVMgc2NoZW1hICxyZWwucmVsbmFtZSBBUyB0YWJs ZQorRlJPTSBwZ19jbGFzcyByZWwKKyAgICBKT0lOIHBnX25hbWVzcGFjZSBu c3AKKyAgICBPTiByZWwucmVsbmFtZXNwYWNlID0gbnNwLm9pZDo6aW50Cisg ICAgV0hFUkUgcmVsLm9pZCA9IHt7dGlkfX06OmludApcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMV9wbHVzL2dl dF9wb3NpdGlvbi5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1u cy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFfcGx1cy9nZXRfcG9zaXRpb24u c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlYTU3 MjEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv Y29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFfcGx1cy9nZXRfcG9z aXRpb24uc3FsCkBAIC0wLDAgKzEsNCBAQAorU0VMRUNUIGF0dC5hdHRudW0K K0ZST00gcGdfYXR0cmlidXRlIGF0dAorICAgIFdIRVJFIGF0dC5hdHRyZWxp ZCA9IHt7dGlkfX06Om9pZAorICAgIEFORCBhdHQuYXR0bmFtZSA9IHt7ZGF0 YS5uYW1lfHF0TGl0ZXJhbH19CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFfcGx1 cy9nZXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVt bnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMvZ2V0X3R5cGVzLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NjkwOTZj Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2Nv bHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMvZ2V0X3R5cGVz LnNxbApAQCAtMCwwICsxLDE0IEBACitTRUxFQ1QgKiBGUk9NCisgICAgKFNF TEVDVCBmb3JtYXRfdHlwZSh0Lm9pZCxOVUxMKSBBUyB0eXBuYW1lLAorICAg IENBU0UgV0hFTiB0eXBlbGVtID4gMCBUSEVOIHR5cGVsZW0gRUxTRSB0Lm9p ZCBFTkQgQVMgZWxlbW9pZAorICAgICx0eXBsZW4sIHR5cHR5cGUsIHQub2lk LCBuc3BuYW1lLAorICAgIChTRUxFQ1QgQ09VTlQoMSkgRlJPTSBwZ190eXBl IHQyIFdIRVJFIHQyLnR5cG5hbWUgPSB0LnR5cG5hbWUpID4gMSBBUyBpc2R1 cAorRlJPTSBwZ190eXBlIHQKKyAgICBKT0lOIHBnX25hbWVzcGFjZSBuc3Ag T04gdHlwbmFtZXNwYWNlPW5zcC5vaWQKK1dIRVJFIChOT1QgKHR5cG5hbWUg PSAndW5rbm93bicgQU5EIG5zcG5hbWUgPSAncGdfY2F0YWxvZycpKQorICAg IEFORCB0eXBpc2RlZmluZWQgQU5EIHR5cHR5cGUgSU4gKCdiJywgJ2MnLCAn ZCcsICdlJywgJ3InKQorICAgIEFORCBOT1QgRVhJU1RTIChzZWxlY3QgMSBm cm9tIHBnX2NsYXNzIHdoZXJlIHJlbG5hbWVzcGFjZT10eXBuYW1lc3BhY2Ug YW5kIHJlbG5hbWUgPSB0eXBuYW1lIGFuZCByZWxraW5kICE9ICdjJykKKyAg ICBBTkQgKHR5cG5hbWUgbm90IGxpa2UgJ18lJyBPUiBOT1QgRVhJU1RTIChz ZWxlY3QgMSBmcm9tIHBnX2NsYXNzIHdoZXJlIHJlbG5hbWVzcGFjZT10eXBu YW1lc3BhY2UgYW5kIHJlbG5hbWUgPSBzdWJzdHJpbmcodHlwbmFtZSBmcm9t IDIpOjpuYW1lIGFuZCByZWxraW5kICE9ICdjJykpCisgICAgQU5EIG5zcC5u c3BuYW1lICE9ICdpbmZvcm1hdGlvbl9zY2hlbWEnCisgICAgKSBBUyBkdW1t eQorICAgIE9SREVSIEJZIG5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnLCBuc3Bu YW1lIDw+ICdwdWJsaWMnLCBuc3BuYW1lLCAxClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMvaXNfcmVm ZXJlbmNlZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90 ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFfcGx1cy9pc19yZWZlcmVuY2VkLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDBiZmMz Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2Nv bHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMvaXNfcmVmZXJl bmNlZC5zcWwKQEAgLTAsMCArMSw1IEBACitTRUxFQ1QgQ09VTlQoMSkKK0ZS T00gcGdfZGVwZW5kIGRlcAorICAgIEpPSU4gcGdfY2xhc3MgY2wgT04gZGVw LmNsYXNzaWQ9Y2wub2lkIEFORCByZWxuYW1lPSdwZ19yZXdyaXRlJworICAg IFdIRVJFIHJlZm9iamlkPSB7e3RpZH19OjpvaWQKKyAgICBBTkQgcmVmb2Jq c3ViaWQ9IHt7Y2xpZHxxdExpdGVyYWx9fTsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3Fs LzkuMV9wbHVzL25vZGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9j b2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMV9wbHVzL25vZGVzLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNjljN2Q3 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2Nv bHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMvbm9kZXMuc3Fs CkBAIC0wLDAgKzEsMTggQEAKK1NFTEVDVCBhdHQuYXR0bmFtZSBhcyBuYW1l LCBhdHQuYXR0bnVtIGFzIE9JRAorRlJPTSBwZ19hdHRyaWJ1dGUgYXR0Cisg ICAgSk9JTiBwZ190eXBlIHR5IE9OIHR5Lm9pZD1hdHR0eXBpZAorICAgIEpP SU4gcGdfbmFtZXNwYWNlIHRuIE9OIHRuLm9pZD10eS50eXBuYW1lc3BhY2UK KyAgICBKT0lOIHBnX2NsYXNzIGNsIE9OIGNsLm9pZD1hdHQuYXR0cmVsaWQK KyAgICBKT0lOIHBnX25hbWVzcGFjZSBuYSBPTiBuYS5vaWQ9Y2wucmVsbmFt ZXNwYWNlCisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX3R5cGUgZXQgT04gZXQu b2lkPXR5LnR5cGVsZW0KKyAgICBMRUZUIE9VVEVSIEpPSU4gcGdfYXR0cmRl ZiBkZWYgT04gYWRyZWxpZD1hdHQuYXR0cmVsaWQgQU5EIGFkbnVtPWF0dC5h dHRudW0KKyAgICBMRUZUIE9VVEVSIEpPSU4gKHBnX2RlcGVuZCBKT0lOIHBn X2NsYXNzIGNzIE9OIG9iamlkPWNzLm9pZCBBTkQgY3MucmVsa2luZD0nUycp IE9OIHJlZm9iamlkPWF0dC5hdHRyZWxpZCBBTkQgcmVmb2Jqc3ViaWQ9YXR0 LmF0dG51bQorICAgIExFRlQgT1VURVIgSk9JTiBwZ19uYW1lc3BhY2UgbnMg T04gbnMub2lkPWNzLnJlbG5hbWVzcGFjZQorICAgIExFRlQgT1VURVIgSk9J TiBwZ19pbmRleCBwaSBPTiBwaS5pbmRyZWxpZD1hdHQuYXR0cmVsaWQgQU5E IGluZGlzcHJpbWFyeQorV0hFUkUgYXR0LmF0dHJlbGlkID0ge3t0aWR9fTo6 b2lkCit7IyMjIFRvIHNob3cgc3lzdGVtIG9iamVjdHMgIyMjfQoreyUgaWYg bm90IHNob3dfc3lzX29iamVjdHMgJX0KKyAgICBBTkQgYXR0LmF0dG51bSA+ IDAKK3slIGVuZGlmICV9CisgICAgQU5EIGF0dC5hdHRpc2Ryb3BwZWQgSVMg RkFMU0UKKyAgICBPUkRFUiBCWSBhdHQuYXR0bnVtCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1u L3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMV9wbHVz L3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmQ1MzY5MDYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFf cGx1cy9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDQ1IEBACitTRUxFQ1Qg YXR0LmF0dG5hbWUgYXMgbmFtZSwgYXR0LiosIGRlZi4qLCBwZ19jYXRhbG9n LnBnX2dldF9leHByKGRlZi5hZGJpbiwgZGVmLmFkcmVsaWQpIEFTIGRlZnZh bCwKKyAgICAgICAgQ0FTRSBXSEVOIGF0dC5hdHRuZGltcyA+IDAgVEhFTiAx IEVMU0UgMCBFTkQgQVMgaXNhcnJheSwKKyAgICAgICAgZm9ybWF0X3R5cGUo dHkub2lkLE5VTEwpIEFTIHR5cG5hbWUsCisgICAgICAgIGZvcm1hdF90eXBl KHR5Lm9pZCxhdHQuYXR0dHlwbW9kKSBBUyBkaXNwbGF5dHlwbmFtZSwKKyAg ICAgICAgdG4ubnNwbmFtZSBhcyB0eXBuc3BuYW1lLCBldC50eXBuYW1lIGFz IGVsZW10eXBuYW1lLAorICAgICAgICB0eS50eXBzdG9yYWdlIEFTIGRlZmF1 bHRzdG9yYWdlLCBjbC5yZWxuYW1lLCBuYS5uc3BuYW1lLAorICAgICAgICBj b25jYXQocXVvdGVfaWRlbnQobmEubnNwbmFtZSkgLCcuJywgcXVvdGVfaWRl bnQoY2wucmVsbmFtZSkpIEFTIHBhcmVudF90YmwsCisJYXR0LmF0dHN0YXR0 YXJnZXQsIGRlc2NyaXB0aW9uLCBjcy5yZWxuYW1lIEFTIHNlcm5hbWUsCisJ bnMubnNwbmFtZSBBUyBzZXJzY2hlbWEsCisJKFNFTEVDVCBjb3VudCgxKSBG Uk9NIHBnX3R5cGUgdDIgV0hFUkUgdDIudHlwbmFtZT10eS50eXBuYW1lKSA+ IDEgQVMgaXNkdXAsCisJaW5ka2V5LCBjb2xsLmNvbGxuYW1lLCBuc3BjLm5z cG5hbWUgYXMgY29sbG5zcG5hbWUgLCBhdHRvcHRpb25zLAorCS0tIFN0YXJ0 IHBnQWRtaW40LCBhZGRlZCB0byBzYXZlIHRpbWUgb24gY2xpZW50IHNpZGUg cGFyc2luZworCUNBU0UgV0hFTiBsZW5ndGgoY29sbC5jb2xsbmFtZSkgPiAw IEFORCBsZW5ndGgobnNwYy5uc3BuYW1lKSA+IDAgIFRIRU4KKwkgIGNvbmNh dChxdW90ZV9pZGVudChjb2xsLmNvbGxuYW1lKSwnLicscXVvdGVfaWRlbnQo bnNwYy5uc3BuYW1lKSkKKwlFTFNFICcnIEVORCBBUyBjb2xsc3BjbmFtZSwK KwlDQVNFIFdIRU4gc3RycG9zKGZvcm1hdF90eXBlKHR5Lm9pZCxhdHQuYXR0 dHlwbW9kKSwgJy4nKSA+IDAgVEhFTgorCSAgc3BsaXRfcGFydChmb3JtYXRf dHlwZSh0eS5vaWQsYXR0LmF0dHR5cG1vZCksICcuJywgMikKKwlFTFNFIGZv cm1hdF90eXBlKHR5Lm9pZCxhdHQuYXR0dHlwbW9kKSBFTkQgQVMgY2x0eXBl LAorCS0tIEVuZCBwZ0FkbWluNAorCUVYSVNUUyhTRUxFQ1QgMSBGUk9NIHBn X2NvbnN0cmFpbnQgV0hFUkUgY29ucmVsaWQ9YXR0LmF0dHJlbGlkIEFORCBj b250eXBlPSdmJyBBTkQgYXR0LmF0dG51bT1BTlkoY29ua2V5KSkgQXMgaXNf ZmssCisJKFNFTEVDVCBhcnJheV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxh YmVsKSBGUk9NIHBnX3NlY2xhYmVscyBzbDEgV0hFUkUgc2wxLm9iam9pZD1h dHQuYXR0dHlwaWQgQU5EIHNsMS5vYmpzdWJpZD0wKSBBUyBzZWNsYWJlbHMs CisJKENBU0UgV0hFTiAoYXR0LmF0dG51bSA8IDEpIFRIRU4gdHJ1ZSBFbFNF IGZhbHNlIEVORCkgQVMgaXNfc3lzX2NvbHVtbgorRlJPTSBwZ19hdHRyaWJ1 dGUgYXR0CisgIEpPSU4gcGdfdHlwZSB0eSBPTiB0eS5vaWQ9YXR0dHlwaWQK KyAgSk9JTiBwZ19uYW1lc3BhY2UgdG4gT04gdG4ub2lkPXR5LnR5cG5hbWVz cGFjZQorICBKT0lOIHBnX2NsYXNzIGNsIE9OIGNsLm9pZD1hdHQuYXR0cmVs aWQKKyAgSk9JTiBwZ19uYW1lc3BhY2UgbmEgT04gbmEub2lkPWNsLnJlbG5h bWVzcGFjZQorICBMRUZUIE9VVEVSIEpPSU4gcGdfdHlwZSBldCBPTiBldC5v aWQ9dHkudHlwZWxlbQorICBMRUZUIE9VVEVSIEpPSU4gcGdfYXR0cmRlZiBk ZWYgT04gYWRyZWxpZD1hdHQuYXR0cmVsaWQgQU5EIGFkbnVtPWF0dC5hdHRu dW0KKyAgTEVGVCBPVVRFUiBKT0lOIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAo ZGVzLm9iam9pZD1hdHQuYXR0cmVsaWQgQU5EIGRlcy5vYmpzdWJpZD1hdHQu YXR0bnVtIEFORCBkZXMuY2xhc3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xhc3Mp CisgIExFRlQgT1VURVIgSk9JTiAocGdfZGVwZW5kIEpPSU4gcGdfY2xhc3Mg Y3MgT04gb2JqaWQ9Y3Mub2lkIEFORCBjcy5yZWxraW5kPSdTJykgT04gcmVm b2JqaWQ9YXR0LmF0dHJlbGlkIEFORCByZWZvYmpzdWJpZD1hdHQuYXR0bnVt CisgIExFRlQgT1VURVIgSk9JTiBwZ19uYW1lc3BhY2UgbnMgT04gbnMub2lk PWNzLnJlbG5hbWVzcGFjZQorICBMRUZUIE9VVEVSIEpPSU4gcGdfaW5kZXgg cGkgT04gcGkuaW5kcmVsaWQ9YXR0LmF0dHJlbGlkIEFORCBpbmRpc3ByaW1h cnkKKyAgTEVGVCBPVVRFUiBKT0lOIHBnX2NvbGxhdGlvbiBjb2xsIE9OIGF0 dC5hdHRjb2xsYXRpb249Y29sbC5vaWQKKyAgTEVGVCBPVVRFUiBKT0lOIHBn X25hbWVzcGFjZSBuc3BjIE9OIGNvbGwuY29sbG5hbWVzcGFjZT1uc3BjLm9p ZAorV0hFUkUgYXR0LmF0dHJlbGlkID0ge3t0aWR9fTo6b2lkCit7JSBpZiBj bGlkICV9CisgICAgQU5EIGF0dC5hdHRudW0gPSB7e2NsaWR9fTo6aW50Cit7 JSBlbmRpZiAlfQoreyMjIyBUbyBzaG93IHN5c3RlbSBvYmplY3RzICMjI30K K3slIGlmIG5vdCBzaG93X3N5c19vYmplY3RzICV9CisgICAgQU5EIGF0dC5h dHRudW0gPiAwCit7JSBlbmRpZiAlfQorICAgIEFORCBhdHQuYXR0aXNkcm9w cGVkIElTIEZBTFNFCisgICAgT1JERVIgQlkgYXR0LmF0dG51bQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVz L2NvbHVtbi9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMV9w bHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZmNlMjRhNwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMV9w bHVzL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSwxMDEgQEAKK3slIGltcG9ydCAn Y29sdW1uL21hY3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9 Cit7JSBpbXBvcnQgJ2NvbHVtbi9tYWNyb3MvcHJpdmlsZWdlLm1hY3Jvcycg YXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy92YXJpYWJsZS5t YWNyb3MnIGFzIFZBUklBQkxFICV9Cit7JSBpZiBkYXRhICV9Cit7IyMjICBS ZW5hbWUgY29sdW1uIG5hbWUgIyMjfQoreyUgaWYgZGF0YS5uYW1lICE9IG9f ZGF0YS5uYW1lICV9CitBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRh LnNjaGVtYSwgZGF0YS50YWJsZSl9fQorICAgIFJFTkFNRSB7e2Nvbm58cXRJ ZGVudChvX2RhdGEubmFtZSl9fSBUTyB7e2Nvbm58cXRJZGVudChkYXRhLm5h bWUpfX07Cit7JSBlbmRpZiAlfQoreyMjIyAgQWx0ZXIgY29sdW1uIHR5cGUg YW5kIGNvbGxhdGlvbiAjIyN9Cit7JSBpZiBkYXRhLmNsdHlwZSBhbmQgZGF0 YS5jbHR5cGUgIT0gb19kYXRhLmNsdHlwZSAlfQorQUxURVIgVEFCTEUge3tj b25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KKyAgICBB TFRFUiBDT0xVTU4ge3tjb25ufHF0SWRlbnQoZGF0YS5uYW1lKX19IHt7ZGF0 YS5jbHR5cGV9fXslIGlmIGRhdGEuYXR0bGVuICV9Cisoe3tkYXRhLmF0dGxl bn19eyUgaWYgZGF0YS5hdHRwcmVjaXNpb24lfSwge3tkYXRhLmF0dHByZWNp c2lvbn19eyUgZW5kaWYgJX0peyUgZW5kaWYgJX17JSBpZiBkYXRhLmhhc1Nx ckJyYWNrZXQgJX0KK1tdeyUgZW5kaWYgJX17JSBpZiBkYXRhLmNvbGxzcGNu YW1lIGFuZCBkYXRhLmNvbGxzcGNuYW1lICE9IG9fZGF0YS5jb2xsc3BjbmFt ZSAlfQorIENPTExBVEUge3tkYXRhLmNvbGxzcGNuYW1lfX17JSBlbmRpZiAl fTsKK3slIGVuZGlmICV9Cit7IyMjICBBbHRlciBjb2x1bW4gZGVmYXVsdCB2 YWx1ZSAjIyN9Cit7JSBpZiBkYXRhLmRlZnZhbCBhbmQgZGF0YS5kZWZ2YWwg IT0gb19kYXRhLmRlZnZhbCAlfQorQUxURVIgVEFCTEUge3tjb25ufHF0SWRl bnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KKyAgICBBTFRFUiBDT0xV TU4ge3tjb25ufHF0SWRlbnQoZGF0YS5uYW1lKX19IFNFVCBERUZBVUxUIHt7 ZGF0YS5kZWZ2YWx9fTsKK3slIGVuZGlmICV9Cit7IyMjICBBbHRlciBjb2x1 bW4gbm90IG51bGwgdmFsdWUgIyMjfQoreyUgaWYgJ2F0dG5vdG51bGwnIGlu IGRhdGEgJX0KK0FMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2No ZW1hLCBkYXRhLnRhYmxlKX19CisgICAgQUxURVIgQ09MVU1OIHt7Y29ubnxx dElkZW50KGRhdGEubmFtZSl9fSB7JSBpZiBkYXRhLmF0dG5vdG51bGwgJX1T RVR7JSBlbHNlICV9RFJPUHslIGVuZGlmICV9IE5PVCBOVUxMOworeyUgZW5k aWYgJX0KK3sjIyMgIEFsdGVyIGNvbHVtbiBzdGF0aXN0aWNzIHZhbHVlICMj I30KK3slIGlmIGRhdGEuYXR0c3RhdHRlcmdldCAlfQorQUxURVIgVEFCTEUg e3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KKyAg ICBBTFRFUiBDT0xVTU4ge3tjb25ufHF0SWRlbnQoZGF0YS5uYW1lKX19IFNF VCBTVEFUSVNUSUNTIHt7ZGF0YS5hdHRzdGF0dGVyZ2V0fX07Cit7JSBlbmRp ZiAlfQoreyMjIyAgQWx0ZXIgY29sdW1uIHN0b3JhZ2UgdmFsdWUgIyMjfQor eyUgaWYgZGF0YS5hdHRzdG9yYWdlICV9CitBTFRFUiBUQUJMRSB7e2Nvbm58 cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSl9fQorICAgIEFMVEVS IENPTFVNTiB7e2Nvbm58cXRJZGVudChkYXRhLm5hbWUpfX0gU0VUIFNUT1JB R0UgeyVpZiBkYXRhLmF0dHN0b3JhZ2UgPT0gJ3AnICV9CitQTEFJTnslIGVs aWYgZGF0YS5hdHRzdG9yYWdlID09ICdtJyV9TUFJTnslIGVsaWYgZGF0YS5h dHRzdG9yYWdlID09ICdlJyV9CitFWFRFUk5BTHslIGVsaWYgZGF0YS5hdHRz dG9yYWdlID09ICd4JyV9RVhURU5ERUR7JSBlbmRpZiAlfTsKK3slIGVuZGlm ICV9Cit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CitDT01NRU5UIE9OIENP TFVNTiB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwg ZGF0YS5uYW1lKX19CisgICAgSVMge3tkYXRhLmRlc2NyaXB0aW9ufHF0TGl0 ZXJhbH19OworeyUgZW5kaWYgJX0KK3sjIyMgVXBkYXRlIGNvbHVtbiB2YXJp YWJsZXMgIyMjfQoreyUgaWYgJ2F0dG9wdGlvbnMnIGluIGRhdGEgYW5kIGRh dGEuYXR0b3B0aW9uc3xsZW5ndGggPiAwICV9Cit7JSBzZXQgdmFyaWFibGVz ID0gZGF0YS5hdHRvcHRpb25zICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gdmFy aWFibGVzIGFuZCB2YXJpYWJsZXMuZGVsZXRlZHxsZW5ndGggPiAwICV9CitB TFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50 YWJsZSl9fQore3sgVkFSSUFCTEUuVU5TRVQoY29ubiwgJ0NPTFVNTicsIGRh dGEubmFtZSwgdmFyaWFibGVzLmRlbGV0ZWQpIH19Cit7JSBlbmRpZiAlfQor eyUgaWYgJ2FkZGVkJyBpbiB2YXJpYWJsZXMgYW5kIHZhcmlhYmxlcy5hZGRl ZHxsZW5ndGggPiAwICV9CitBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChk YXRhLnNjaGVtYSwgZGF0YS50YWJsZSl9fQore3sgVkFSSUFCTEUuU0VUKGNv bm4sICdDT0xVTU4nLCBkYXRhLm5hbWUsIHZhcmlhYmxlcy5hZGRlZCkgfX0K K3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gdmFyaWFibGVzIGFu ZCB2YXJpYWJsZXMuY2hhbmdlZHxsZW5ndGggPiAwICV9CitBTFRFUiBUQUJM RSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSl9fQor e3sgVkFSSUFCTEUuU0VUKGNvbm4sICdDT0xVTU4nLCBkYXRhLm5hbWUsIHZh cmlhYmxlcy5jaGFuZ2VkKSB9fQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9 Cit7IyMjIFVwZGF0ZSBjb2x1bW4gcHJpdmlsZWdlcyAjIyN9Cit7IyBDaGFu Z2UgdGhlIHByaXZpbGVnZXMgI30KK3slIGlmIGRhdGEuYXR0YWNsICV9Cit7 JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS5hdHRhY2wgJX0KK3slIGZvciBwcml2 IGluIGRhdGEuYXR0YWNsLmRlbGV0ZWQgJX0KK3t7IFBSSVZJTEVHRS5SRVNF VEFMTChjb25uLCBkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgZGF0YS5uYW1l LCBwcml2LmdyYW50ZWUpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9 Cit7JSBpZiAnY2hhbmdlZCcgaW4gZGF0YS5hdHRhY2wgJX0KK3slIGZvciBw cml2IGluIGRhdGEuYXR0YWNsLmNoYW5nZWQgJX0KK3t7IFBSSVZJTEVHRS5S RVNFVEFMTChjb25uLCBkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgZGF0YS5u YW1lLCBwcml2LmdyYW50ZWUpIH19Cit7eyBQUklWSUxFR0UuQVBQTFkoY29u biwgZGF0YS5zY2hlbWEsIGRhdGEudGFibGUsIGRhdGEubmFtZSwgcHJpdi5n cmFudGVlLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCkg fX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdhZGRlZCcg aW4gZGF0YS5hdHRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuYXR0YWNs LmFkZGVkICV9Cit7eyBQUklWSUxFR0UuQVBQTFkoY29ubiwgZGF0YS5zY2hl bWEsIGRhdGEudGFibGUsIGRhdGEubmFtZSwgcHJpdi5ncmFudGVlLCBwcml2 LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCkgfX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7IyMjIFVwcGRhdGUg dGFibGVzcGFjZSBzZWN1cml0eWxhYmVsICMjI30KK3sjIFRoZSBTUUwgZ2Vu ZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIFNlY3VyaXR5IExhYmVsICN9Cit7 JSBpZiBkYXRhLnNlY2xhYmVscyBhbmQgZGF0YS5zZWNsYWJlbHN8bGVuZ3Ro ID4gMCAlfQoreyUgc2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9 Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMu ZGVsZXRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMu ZGVsZXRlZCAlfQore3sgU0VDTEFCTEUuRFJPUChjb25uLCAnQ09MVU1OJywg ZGF0YS5zY2hlbWEsIGRhdGEudGFibGUsIGRhdGEubmFtZSwgci5wcm92aWRl cikgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdhZGRl ZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4g MCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9Cit7eyBTRUNM QUJMRS5BUFBMWShjb25uLCAnQ09MVU1OJyxkYXRhLnNjaGVtYSwgZGF0YS50 YWJsZSwgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVs KSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5n ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3Ro ID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KK3t7 IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdDT0xVTU4nLGRhdGEuc2NoZW1hLCBk YXRhLnRhYmxlLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlf bGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRp ZiAlfQoreyMjIyBFbmQgbWFpbiBpZiAjIyN9Cit7JSBlbmRpZiV9ClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4y X3BsdXMvYWNsLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5z L3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9wbHVzL2FjbC5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2EzZGJjNAotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3Rl bXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9wbHVzL2FjbC5zcWwKQEAgLTAsMCAr MSwzNyBAQAorU0VMRUNUICdhdHRhY2wnIGFzIGRlZnR5cGUsIENPQUxFU0NF KGd0LnJvbG5hbWUsICdwdWJsaWMnKSBncmFudGVlLCBnLnJvbG5hbWUgZ3Jh bnRvciwgYXJyYXlfYWdnKHByaXZpbGVnZV90eXBlKSBhcyBwcml2aWxlZ2Vz LCBhcnJheV9hZ2coaXNfZ3JhbnRhYmxlKSBhcyBncmFudGFibGUKK0ZST00K KyAgKFNFTEVDVAorICAgIGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dy YW50YWJsZSwKKyAgICBDQVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAgICAg V0hFTiAnQ09OTkVDVCcgVEhFTiAnYycKKyAgICAgICAgV0hFTiAnQ1JFQVRF JyBUSEVOICdDJworICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisg ICAgICAgIFdIRU4gJ0VYRUNVVEUnIFRIRU4gJ1gnCisgICAgICAgIFdIRU4g J0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNFUycg VEhFTiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAg ICAgICBXSEVOICdURU1QT1JBUlknIFRIRU4gJ1QnCisgICAgICAgIFdIRU4g J1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBU SEVOICdEJworICAgICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisgICAg ICAgIFdIRU4gJ1VTQUdFJyBUSEVOICdVJworICAgICAgICBFTFNFICdVTktO T1dOJworICAgIEVORCBBUyBwcml2aWxlZ2VfdHlwZQorICBGUk9NCisgICAg KFNFTEVDVCBhdHRhY2wKKyAgICAgICAgRlJPTSBwZ19hdHRyaWJ1dGUgYXR0 CisgICAgICAgIFdIRVJFIGF0dC5hdHRyZWxpZCA9IHt7dGlkfX06Om9pZAor ICAgICAgICBBTkQgYXR0LmF0dG51bSA9IHt7Y2xpZH19OjppbnQKKyAgICAp IGFjbCwKKyAgICAoU0VMRUNUIChkKS5ncmFudGVlIEFTIGdyYW50ZWUsIChk KS5ncmFudG9yIEFTIGdyYW50b3IsIChkKS5pc19ncmFudGFibGUKKyAgICAg ICAgQVMgaXNfZ3JhbnRhYmxlLCAoZCkucHJpdmlsZWdlX3R5cGUgQVMgcHJp dmlsZWdlX3R5cGUgRlJPTSAoU0VMRUNUCisgICAgICAgIGFjbGV4cGxvZGUo YXR0YWNsKSBhcyBkIEZST00gcGdfYXR0cmlidXRlIGF0dAorICAgICAgICBX SEVSRSBhdHQuYXR0cmVsaWQgPSB7e3RpZH19OjpvaWQKKyAgICAgICAgQU5E IGF0dC5hdHRudW0gPSB7e2NsaWR9fTo6aW50KSBhKSBkCisgICAgKSBkCisg IExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRv ciA9IGcub2lkKQorICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBn dCBPTiAoZC5ncmFudGVlID0gZ3Qub2lkKQorR1JPVVAgQlkgZy5yb2xuYW1l LCBndC5yb2xuYW1lCisKKworCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjJfcGx1 cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMv dGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4yX3BsdXMvY3JlYXRlLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjI2OTIzCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMv dGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4yX3BsdXMvY3JlYXRlLnNxbApAQCAt MCwwICsxLDM3IEBACit7JSBpbXBvcnQgJ2NvbHVtbi9tYWNyb3Mvc2VjdXJp dHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdjb2x1bW4v bWFjcm9zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUg aW1wb3J0ICdtYWNyb3MvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAl fQoreyUgaWYgZGF0YSAlfQoreyMjIyAgQWRkIGNvbHVtbiAjIyN9CitBTFRF UiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJs ZSl9fQorICAgIEFERCBDT0xVTU4ge3tjb25ufHF0SWRlbnQoZGF0YS5uYW1l KX19IHt7ZGF0YS5jbHR5cGV9fXslIGlmIGRhdGEuYXR0bGVuICV9Cisoe3tk YXRhLmF0dGxlbn19eyUgaWYgZGF0YS5hdHRwcmVjaXNpb24lfSwge3tkYXRh LmF0dHByZWNpc2lvbn19eyUgZW5kaWYgJX0peyUgZW5kaWYgJX17JSBpZiBk YXRhLmhhc1NxckJyYWNrZXQgJX0KK1tdeyUgZW5kaWYgJX17JSBpZiBkYXRh LmNvbGxzcGNuYW1lICV9CisgQ09MTEFURSB7e2RhdGEuY29sbHNwY25hbWV9 fXslIGVuZGlmICV9eyUgaWYgZGF0YS5hdHRub3RudWxsICV9CisgTk9UIE5V TEx7JSBlbmRpZiAlfXslIGlmIGRhdGEuZGVmdmFsICV9CisgREVGQVVMVCB7 e2RhdGEuZGVmdmFsfX17JSBlbmRpZiAlfTsKK3sjIyMgIEFkZCBjb21tZW50 cyAjIyN9Cit7JSBpZiBkYXRhIGFuZCBkYXRhLmRlc2NyaXB0aW9uICV9CitD T01NRU5UIE9OIENPTFVNTiB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwg ZGF0YS50YWJsZSwgZGF0YS5uYW1lKX19CisgICAgSVMge3tkYXRhLmRlc2Ny aXB0aW9ufHF0TGl0ZXJhbH19OworeyUgZW5kaWYgJX0KK3sjIyMgIEFkZCB2 YXJpYWJsZXMgdG8gY29sdW1uICMjI30KK3slIGlmIGRhdGEuYXR0b3B0aW9u cyAlfQorQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEs IGRhdGEudGFibGUpfX0KK3t7IFZBUklBQkxFLlNFVChjb25uLCAnQ09MVU1O JywgZGF0YS5uYW1lLCBkYXRhLmF0dG9wdGlvbnMpIH19Cit7JSBlbmRpZiAl fQoreyMjIyAgQUNMICMjI30KK3slIGlmIGRhdGEuYXR0YWNsICV9Cit7JSBm b3IgcHJpdiBpbiBkYXRhLmF0dGFjbCAlfQore3sgUFJJVklMRUdFLkFQUExZ KGNvbm4sIGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUsIHBy aXYuZ3JhbnRlZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3Jh bnQpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7IyMjICBTZWN1 cml0eSBMYWJsZXMgIyMjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgJX0KK3sl IGZvciByIGluIGRhdGEuc2VjbGFiZWxzICV9Cit7eyBTRUNMQUJMRS5BUFBM WShjb25uLCAnQ09MVU1OJyxkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgZGF0 YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9fQoreyUg ZW5kZm9yICV9CisKK3slIGVuZGlmICV9Cit7IyMjIEVuZCBtYWluIGlmICMj I30KK3slIGVuZGlmJX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1w bGF0ZXMvY29sdW1uL3NxbC85LjJfcGx1cy9kZWxldGUuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwv OS4yX3BsdXMvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4wZTE2MjUxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwv OS4yX3BsdXMvZGVsZXRlLnNxbApAQCAtMCwwICsxIEBACitBTFRFUiBUQUJM RSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSl9fSBE Uk9QIENPTFVNTiB7e2Nvbm58cXRJZGVudChkYXRhLm5hbWUpfX07ClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4y X3BsdXMvZGVwZW5kLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1 bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9wbHVzL2RlcGVuZC5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDg3N2UxMgot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1 bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9wbHVzL2RlcGVuZC5zcWwK QEAgLTAsMCArMSwxMSBAQAorU0VMRUNUCisgICAgcmVmLnJlbG5hbWUgQVMg cmVmbmFtZSwgZDIucmVmY2xhc3NpZCwgZGVwLmRlcHR5cGUgQVMgZGVwdHlw ZQorRlJPTSBwZ19kZXBlbmQgZGVwCisgICAgTEVGVCBKT0lOIHBnX2RlcGVu ZCBkMiBPTiBkZXAub2JqaWQ9ZDIub2JqaWQgQU5EIGRlcC5yZWZvYmppZCAh PSBkMi5yZWZvYmppZAorICAgIExFRlQgSk9JTiBwZ19jbGFzcyByZWYgT04g cmVmLm9pZD1kMi5yZWZvYmppZAorICAgIExFRlQgSk9JTiBwZ19hdHRyaWJ1 dGUgYXR0IE9OIGQyLnJlZmNsYXNzaWQ9YXR0LmF0dHJlbGlkIEFORCBkMi5y ZWZvYmpzdWJpZD1hdHQuYXR0bnVtCisgICAge3sgd2hlcmUgfX0gQU5ECisg ICAgZGVwLmNsYXNzaWQ9KFNFTEVDVCBvaWQgRlJPTSBwZ19jbGFzcyBXSEVS RSByZWxuYW1lPSdwZ19hdHRyZGVmJykgQU5ECisgICAgZGVwLnJlZm9iamlk IE5PVCBJTiAoU0VMRUNUIGQzLnJlZm9iamlkIEZST00gcGdfZGVwZW5kIGQz IFdIRVJFIGQzLm9iamlkPWQyLnJlZm9iamlkKQorCisKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1 bW4vc3FsLzkuMl9wbHVzL2VkaXRfbW9kZV90eXBlcy5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85 LjJfcGx1cy9lZGl0X21vZGVfdHlwZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjBjMTEyYzUKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29s dW1uL3NxbC85LjJfcGx1cy9lZGl0X21vZGVfdHlwZXMuc3FsCkBAIC0wLDAg KzEsNSBAQAorU0VMRUNUIHR0Lm9pZCwgZm9ybWF0X3R5cGUodHQub2lkLE5V TEwpIEFTIHR5cG5hbWUKK0ZST00gcGdfY2FzdAorICAgIEpPSU4gcGdfdHlw ZSB0dCBPTiB0dC5vaWQ9Y2FzdHRhcmdldAorV0hFUkUgY2FzdHNvdXJjZT17 e3R5cGVfaWR9fQorICAgIEFORCBjYXN0Y29udGV4dCBJTiAoJ2knLCAnYScp ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9z cWwvOS4yX3BsdXMvZ2V0X2NvbGxhdGlvbnMuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4yX3Bs dXMvZ2V0X2NvbGxhdGlvbnMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjllNjc5MzEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3Nx bC85LjJfcGx1cy9nZXRfY29sbGF0aW9ucy5zcWwKQEAgLTAsMCArMSw3IEBA CitTRUxFQ1QgLS1uc3BuYW1lLCBjb2xsbmFtZSwKKwlDQVNFIFdIRU4gbGVu Z3RoKG5zcG5hbWUpID4gMCBBTkQgbGVuZ3RoKGNvbGxuYW1lKSA+IDAgIFRI RU4KKwkgIGNvbmNhdChxdW90ZV9pZGVudChuc3BuYW1lKSwgJy4nLCBxdW90 ZV9pZGVudChjb2xsbmFtZSkpCisJRUxTRSAnJyBFTkQgQVMgY29sbGF0aW9u CitGUk9NIHBnX2NvbGxhdGlvbiBjLCBwZ19uYW1lc3BhY2UgbgorICAgIFdI RVJFIGMuY29sbG5hbWVzcGFjZT1uLm9pZAorICAgIE9SREVSIEJZIG5zcG5h bWUsIGNvbGxuYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4yX3BsdXMvZ2V0 X2luaGVyaXRlZF90YWJsZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4yX3BsdXMvZ2V0X2lu aGVyaXRlZF90YWJsZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjM3OTM0YjgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85 LjJfcGx1cy9nZXRfaW5oZXJpdGVkX3RhYmxlcy5zcWwKQEAgLTAsMCArMSwx MiBAQAorU0VMRUNUIGFycmF5X3RvX3N0cmluZyhhcnJheV9hZ2coaW5ocmVs bmFtZSksICcsICcpIGluaHJlbG5hbWUsIGF0dHJuYW1lCitGUk9NCisgKFNF TEVDVAorICAgaW5ocGFyZW50OjpyZWdjbGFzcyBBUyBpbmhyZWxuYW1lLAor ICAgYS5hdHRuYW1lIEFTIGF0dHJuYW1lCisgIEZST00gcGdfaW5oZXJpdHMg aQorICBMRUZUIEpPSU4gcGdfYXR0cmlidXRlIGEgT04KKyAgIChhdHRyZWxp ZCA9IGluaHBhcmVudCBBTkQgYXR0bnVtID4gMCkKKyAgV0hFUkUgaW5ocmVs aWQgPSB7e3RpZH19OjpvaWQKKyAgT1JERVIgQlkgaW5oc2Vxbm8KKyApIGEK K0dST1VQIEJZIGF0dHJuYW1lOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5z L3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9wbHVzL2dldF9wYXJlbnQuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2Nv bHVtbi9zcWwvOS4yX3BsdXMvZ2V0X3BhcmVudC5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRkNWQzYwotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRl cy9jb2x1bW4vc3FsLzkuMl9wbHVzL2dldF9wYXJlbnQuc3FsCkBAIC0wLDAg KzEsNSBAQAorU0VMRUNUIG5zcC5uc3BuYW1lIEFTIHNjaGVtYSAscmVsLnJl bG5hbWUgQVMgdGFibGUKK0ZST00gcGdfY2xhc3MgcmVsCisgICAgSk9JTiBw Z19uYW1lc3BhY2UgbnNwCisgICAgT04gcmVsLnJlbG5hbWVzcGFjZSA9IG5z cC5vaWQ6OmludAorICAgIFdIRVJFIHJlbC5vaWQgPSB7e3RpZH19OjppbnQK XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3Nx bC85LjJfcGx1cy9nZXRfcG9zaXRpb24uc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4yX3BsdXMv Z2V0X3Bvc2l0aW9uLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5jZWE1NzIxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4y X3BsdXMvZ2V0X3Bvc2l0aW9uLnNxbApAQCAtMCwwICsxLDQgQEAKK1NFTEVD VCBhdHQuYXR0bnVtCitGUk9NIHBnX2F0dHJpYnV0ZSBhdHQKKyAgICBXSEVS RSBhdHQuYXR0cmVsaWQgPSB7e3RpZH19OjpvaWQKKyAgICBBTkQgYXR0LmF0 dG5hbWUgPSB7e2RhdGEubmFtZXxxdExpdGVyYWx9fQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVt bi9zcWwvOS4yX3BsdXMvZ2V0X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9wbHVz L2dldF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uNDY5MDk2YwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9w bHVzL2dldF90eXBlcy5zcWwKQEAgLTAsMCArMSwxNCBAQAorU0VMRUNUICog RlJPTQorICAgIChTRUxFQ1QgZm9ybWF0X3R5cGUodC5vaWQsTlVMTCkgQVMg dHlwbmFtZSwKKyAgICBDQVNFIFdIRU4gdHlwZWxlbSA+IDAgVEhFTiB0eXBl bGVtIEVMU0UgdC5vaWQgRU5EIEFTIGVsZW1vaWQKKyAgICAsdHlwbGVuLCB0 eXB0eXBlLCB0Lm9pZCwgbnNwbmFtZSwKKyAgICAoU0VMRUNUIENPVU5UKDEp IEZST00gcGdfdHlwZSB0MiBXSEVSRSB0Mi50eXBuYW1lID0gdC50eXBuYW1l KSA+IDEgQVMgaXNkdXAKK0ZST00gcGdfdHlwZSB0CisgICAgSk9JTiBwZ19u YW1lc3BhY2UgbnNwIE9OIHR5cG5hbWVzcGFjZT1uc3Aub2lkCitXSEVSRSAo Tk9UICh0eXBuYW1lID0gJ3Vua25vd24nIEFORCBuc3BuYW1lID0gJ3BnX2Nh dGFsb2cnKSkKKyAgICBBTkQgdHlwaXNkZWZpbmVkIEFORCB0eXB0eXBlIElO ICgnYicsICdjJywgJ2QnLCAnZScsICdyJykKKyAgICBBTkQgTk9UIEVYSVNU UyAoc2VsZWN0IDEgZnJvbSBwZ19jbGFzcyB3aGVyZSByZWxuYW1lc3BhY2U9 dHlwbmFtZXNwYWNlIGFuZCByZWxuYW1lID0gdHlwbmFtZSBhbmQgcmVsa2lu ZCAhPSAnYycpCisgICAgQU5EICh0eXBuYW1lIG5vdCBsaWtlICdfJScgT1Ig Tk9UIEVYSVNUUyAoc2VsZWN0IDEgZnJvbSBwZ19jbGFzcyB3aGVyZSByZWxu YW1lc3BhY2U9dHlwbmFtZXNwYWNlIGFuZCByZWxuYW1lID0gc3Vic3RyaW5n KHR5cG5hbWUgZnJvbSAyKTo6bmFtZSBhbmQgcmVsa2luZCAhPSAnYycpKQor ICAgIEFORCBuc3AubnNwbmFtZSAhPSAnaW5mb3JtYXRpb25fc2NoZW1hJwor ICAgICkgQVMgZHVtbXkKKyAgICBPUkRFUiBCWSBuc3BuYW1lIDw+ICdwZ19j YXRhbG9nJywgbnNwbmFtZSA8PiAncHVibGljJywgbnNwbmFtZSwgMQpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzku Ml9wbHVzL2lzX3JlZmVyZW5jZWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4yX3BsdXMvaXNf cmVmZXJlbmNlZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uN2QwYmZjMwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9w bHVzL2lzX3JlZmVyZW5jZWQuc3FsCkBAIC0wLDAgKzEsNSBAQAorU0VMRUNU IENPVU5UKDEpCitGUk9NIHBnX2RlcGVuZCBkZXAKKyAgICBKT0lOIHBnX2Ns YXNzIGNsIE9OIGRlcC5jbGFzc2lkPWNsLm9pZCBBTkQgcmVsbmFtZT0ncGdf cmV3cml0ZScKKyAgICBXSEVSRSByZWZvYmppZD0ge3t0aWR9fTo6b2lkCisg ICAgQU5EIHJlZm9ianN1YmlkPSB7e2NsaWR8cXRMaXRlcmFsfX07CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0 ZXMvY29sdW1uL3NxbC85LjJfcGx1cy9ub2Rlcy5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjJf cGx1cy9ub2Rlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uMzMxOTE5NgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9w bHVzL25vZGVzLnNxbApAQCAtMCwwICsxLDE4IEBACitTRUxFQ1QgYXR0LmF0 dG5hbWUgYXMgbmFtZSwgYXR0LmF0dG51bSBhcyBPSUQKK0ZST00gcGdfYXR0 cmlidXRlIGF0dAorICBKT0lOIHBnX3R5cGUgdHkgT04gdHkub2lkPWF0dHR5 cGlkCisgIEpPSU4gcGdfbmFtZXNwYWNlIHRuIE9OIHRuLm9pZD10eS50eXBu YW1lc3BhY2UKKyAgSk9JTiBwZ19jbGFzcyBjbCBPTiBjbC5vaWQ9YXR0LmF0 dHJlbGlkCisgIEpPSU4gcGdfbmFtZXNwYWNlIG5hIE9OIG5hLm9pZD1jbC5y ZWxuYW1lc3BhY2UKKyAgTEVGVCBPVVRFUiBKT0lOIHBnX3R5cGUgZXQgT04g ZXQub2lkPXR5LnR5cGVsZW0KKyAgTEVGVCBPVVRFUiBKT0lOIHBnX2F0dHJk ZWYgZGVmIE9OIGFkcmVsaWQ9YXR0LmF0dHJlbGlkIEFORCBhZG51bT1hdHQu YXR0bnVtCisgIExFRlQgT1VURVIgSk9JTiAocGdfZGVwZW5kIEpPSU4gcGdf Y2xhc3MgY3MgT04gb2JqaWQ9Y3Mub2lkIEFORCBjcy5yZWxraW5kPSdTJykg T04gcmVmb2JqaWQ9YXR0LmF0dHJlbGlkIEFORCByZWZvYmpzdWJpZD1hdHQu YXR0bnVtCisgIExFRlQgT1VURVIgSk9JTiBwZ19uYW1lc3BhY2UgbnMgT04g bnMub2lkPWNzLnJlbG5hbWVzcGFjZQorICBMRUZUIE9VVEVSIEpPSU4gcGdf aW5kZXggcGkgT04gcGkuaW5kcmVsaWQ9YXR0LmF0dHJlbGlkIEFORCBpbmRp c3ByaW1hcnkKK1dIRVJFIGF0dC5hdHRyZWxpZCA9IHt7dGlkfX06Om9pZAor ICAgIHsjIyMgVG8gc2hvdyBzeXN0ZW0gb2JqZWN0cyAjIyN9CisgICAgeyUg aWYgbm90IHNob3dfc3lzX29iamVjdHMgJX0KKyAgICBBTkQgYXR0LmF0dG51 bSA+IDAKKyAgICB7JSBlbmRpZiAlfQorICAgIEFORCBhdHQuYXR0aXNkcm9w cGVkIElTIEZBTFNFCisgICAgT1JERVIgQlkgYXR0LmF0dG51bQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVz L2NvbHVtbi9zcWwvOS4yX3BsdXMvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85 LjJfcGx1cy9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5kNTM2OTA2Ci0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9z cWwvOS4yX3BsdXMvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSw0NSBAQAor U0VMRUNUIGF0dC5hdHRuYW1lIGFzIG5hbWUsIGF0dC4qLCBkZWYuKiwgcGdf Y2F0YWxvZy5wZ19nZXRfZXhwcihkZWYuYWRiaW4sIGRlZi5hZHJlbGlkKSBB UyBkZWZ2YWwsCisgICAgICAgIENBU0UgV0hFTiBhdHQuYXR0bmRpbXMgPiAw IFRIRU4gMSBFTFNFIDAgRU5EIEFTIGlzYXJyYXksCisgICAgICAgIGZvcm1h dF90eXBlKHR5Lm9pZCxOVUxMKSBBUyB0eXBuYW1lLAorICAgICAgICBmb3Jt YXRfdHlwZSh0eS5vaWQsYXR0LmF0dHR5cG1vZCkgQVMgZGlzcGxheXR5cG5h bWUsCisgICAgICAgIHRuLm5zcG5hbWUgYXMgdHlwbnNwbmFtZSwgZXQudHlw bmFtZSBhcyBlbGVtdHlwbmFtZSwKKyAgICAgICAgdHkudHlwc3RvcmFnZSBB UyBkZWZhdWx0c3RvcmFnZSwgY2wucmVsbmFtZSwgbmEubnNwbmFtZSwKKyAg ICAgICAgY29uY2F0KHF1b3RlX2lkZW50KG5hLm5zcG5hbWUpICwnLicsIHF1 b3RlX2lkZW50KGNsLnJlbG5hbWUpKSBBUyBwYXJlbnRfdGJsLAorCWF0dC5h dHRzdGF0dGFyZ2V0LCBkZXNjcmlwdGlvbiwgY3MucmVsbmFtZSBBUyBzZXJu YW1lLAorCW5zLm5zcG5hbWUgQVMgc2Vyc2NoZW1hLAorCShTRUxFQ1QgY291 bnQoMSkgRlJPTSBwZ190eXBlIHQyIFdIRVJFIHQyLnR5cG5hbWU9dHkudHlw bmFtZSkgPiAxIEFTIGlzZHVwLAorCWluZGtleSwgY29sbC5jb2xsbmFtZSwg bnNwYy5uc3BuYW1lIGFzIGNvbGxuc3BuYW1lICwgYXR0b3B0aW9ucywKKwkt LSBTdGFydCBwZ0FkbWluNCwgYWRkZWQgdG8gc2F2ZSB0aW1lIG9uIGNsaWVu dCBzaWRlIHBhcnNpbmcKKwlDQVNFIFdIRU4gbGVuZ3RoKGNvbGwuY29sbG5h bWUpID4gMCBBTkQgbGVuZ3RoKG5zcGMubnNwbmFtZSkgPiAwICBUSEVOCisJ ICBjb25jYXQocXVvdGVfaWRlbnQoY29sbC5jb2xsbmFtZSksJy4nLHF1b3Rl X2lkZW50KG5zcGMubnNwbmFtZSkpCisJRUxTRSAnJyBFTkQgQVMgY29sbHNw Y25hbWUsCisJQ0FTRSBXSEVOIHN0cnBvcyhmb3JtYXRfdHlwZSh0eS5vaWQs YXR0LmF0dHR5cG1vZCksICcuJykgPiAwIFRIRU4KKwkgIHNwbGl0X3BhcnQo Zm9ybWF0X3R5cGUodHkub2lkLGF0dC5hdHR0eXBtb2QpLCAnLicsIDIpCisJ RUxTRSBmb3JtYXRfdHlwZSh0eS5vaWQsYXR0LmF0dHR5cG1vZCkgRU5EIEFT IGNsdHlwZSwKKwktLSBFbmQgcGdBZG1pbjQKKwlFWElTVFMoU0VMRUNUIDEg RlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbnJlbGlkPWF0dC5hdHRyZWxp ZCBBTkQgY29udHlwZT0nZicgQU5EIGF0dC5hdHRudW09QU5ZKGNvbmtleSkp IEFzIGlzX2ZrLAorCShTRUxFQ1QgYXJyYXlfYWdnKHByb3ZpZGVyIHx8ICc9 JyB8fCBsYWJlbCkgRlJPTSBwZ19zZWNsYWJlbHMgc2wxIFdIRVJFIHNsMS5v YmpvaWQ9YXR0LmF0dHR5cGlkIEFORCBzbDEub2Jqc3ViaWQ9MCkgQVMgc2Vj bGFiZWxzLAorCShDQVNFIFdIRU4gKGF0dC5hdHRudW0gPCAxKSBUSEVOIHRy dWUgRWxTRSBmYWxzZSBFTkQpIEFTIGlzX3N5c19jb2x1bW4KK0ZST00gcGdf YXR0cmlidXRlIGF0dAorICBKT0lOIHBnX3R5cGUgdHkgT04gdHkub2lkPWF0 dHR5cGlkCisgIEpPSU4gcGdfbmFtZXNwYWNlIHRuIE9OIHRuLm9pZD10eS50 eXBuYW1lc3BhY2UKKyAgSk9JTiBwZ19jbGFzcyBjbCBPTiBjbC5vaWQ9YXR0 LmF0dHJlbGlkCisgIEpPSU4gcGdfbmFtZXNwYWNlIG5hIE9OIG5hLm9pZD1j bC5yZWxuYW1lc3BhY2UKKyAgTEVGVCBPVVRFUiBKT0lOIHBnX3R5cGUgZXQg T04gZXQub2lkPXR5LnR5cGVsZW0KKyAgTEVGVCBPVVRFUiBKT0lOIHBnX2F0 dHJkZWYgZGVmIE9OIGFkcmVsaWQ9YXR0LmF0dHJlbGlkIEFORCBhZG51bT1h dHQuYXR0bnVtCisgIExFRlQgT1VURVIgSk9JTiBwZ19kZXNjcmlwdGlvbiBk ZXMgT04gKGRlcy5vYmpvaWQ9YXR0LmF0dHJlbGlkIEFORCBkZXMub2Jqc3Vi aWQ9YXR0LmF0dG51bSBBTkQgZGVzLmNsYXNzb2lkPSdwZ19jbGFzcyc6OnJl Z2NsYXNzKQorICBMRUZUIE9VVEVSIEpPSU4gKHBnX2RlcGVuZCBKT0lOIHBn X2NsYXNzIGNzIE9OIG9iamlkPWNzLm9pZCBBTkQgY3MucmVsa2luZD0nUycp IE9OIHJlZm9iamlkPWF0dC5hdHRyZWxpZCBBTkQgcmVmb2Jqc3ViaWQ9YXR0 LmF0dG51bQorICBMRUZUIE9VVEVSIEpPSU4gcGdfbmFtZXNwYWNlIG5zIE9O IG5zLm9pZD1jcy5yZWxuYW1lc3BhY2UKKyAgTEVGVCBPVVRFUiBKT0lOIHBn X2luZGV4IHBpIE9OIHBpLmluZHJlbGlkPWF0dC5hdHRyZWxpZCBBTkQgaW5k aXNwcmltYXJ5CisgIExFRlQgT1VURVIgSk9JTiBwZ19jb2xsYXRpb24gY29s bCBPTiBhdHQuYXR0Y29sbGF0aW9uPWNvbGwub2lkCisgIExFRlQgT1VURVIg Sk9JTiBwZ19uYW1lc3BhY2UgbnNwYyBPTiBjb2xsLmNvbGxuYW1lc3BhY2U9 bnNwYy5vaWQKK1dIRVJFIGF0dC5hdHRyZWxpZCA9IHt7dGlkfX06Om9pZAor eyUgaWYgY2xpZCAlfQorICAgIEFORCBhdHQuYXR0bnVtID0ge3tjbGlkfX06 OmludAoreyUgZW5kaWYgJX0KK3sjIyMgVG8gc2hvdyBzeXN0ZW0gb2JqZWN0 cyAjIyN9Cit7JSBpZiBub3Qgc2hvd19zeXNfb2JqZWN0cyAlfQorICAgIEFO RCBhdHQuYXR0bnVtID4gMAoreyUgZW5kaWYgJX0KKyAgICBBTkQgYXR0LmF0 dGlzZHJvcHBlZCBJUyBGQUxTRQorICAgIE9SREVSIEJZIGF0dC5hdHRudW0K ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3Rl bXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3Nx bC85LjJfcGx1cy91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmZjZTI0YTcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3Nx bC85LjJfcGx1cy91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMTAxIEBACit7JSBp bXBvcnQgJ2NvbHVtbi9tYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNM QUJMRSAlfQoreyUgaW1wb3J0ICdjb2x1bW4vbWFjcm9zL3ByaXZpbGVnZS5t YWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvdmFy aWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAlfQoreyUgaWYgZGF0YSAlfQor eyMjIyAgUmVuYW1lIGNvbHVtbiBuYW1lICMjI30KK3slIGlmIGRhdGEubmFt ZSAhPSBvX2RhdGEubmFtZSAlfQorQUxURVIgVEFCTEUge3tjb25ufHF0SWRl bnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KKyAgICBSRU5BTUUge3tj b25ufHF0SWRlbnQob19kYXRhLm5hbWUpfX0gVE8ge3tjb25ufHF0SWRlbnQo ZGF0YS5uYW1lKX19OworeyUgZW5kaWYgJX0KK3sjIyMgIEFsdGVyIGNvbHVt biB0eXBlIGFuZCBjb2xsYXRpb24gIyMjfQoreyUgaWYgZGF0YS5jbHR5cGUg YW5kIGRhdGEuY2x0eXBlICE9IG9fZGF0YS5jbHR5cGUgJX0KK0FMVEVSIFRB QkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlKX19 CisgICAgQUxURVIgQ09MVU1OIHt7Y29ubnxxdElkZW50KGRhdGEubmFtZSl9 fSB7e2RhdGEuY2x0eXBlfX17JSBpZiBkYXRhLmF0dGxlbiAlfQorKHt7ZGF0 YS5hdHRsZW59fXslIGlmIGRhdGEuYXR0cHJlY2lzaW9uJX0sIHt7ZGF0YS5h dHRwcmVjaXNpb259fXslIGVuZGlmICV9KXslIGVuZGlmICV9eyUgaWYgZGF0 YS5oYXNTcXJCcmFja2V0ICV9CitbXXslIGVuZGlmICV9eyUgaWYgZGF0YS5j b2xsc3BjbmFtZSBhbmQgZGF0YS5jb2xsc3BjbmFtZSAhPSBvX2RhdGEuY29s bHNwY25hbWUgJX0KKyBDT0xMQVRFIHt7ZGF0YS5jb2xsc3BjbmFtZX19eyUg ZW5kaWYgJX07Cit7JSBlbmRpZiAlfQoreyMjIyAgQWx0ZXIgY29sdW1uIGRl ZmF1bHQgdmFsdWUgIyMjfQoreyUgaWYgZGF0YS5kZWZ2YWwgYW5kIGRhdGEu ZGVmdmFsICE9IG9fZGF0YS5kZWZ2YWwgJX0KK0FMVEVSIFRBQkxFIHt7Y29u bnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlKX19CisgICAgQUxU RVIgQ09MVU1OIHt7Y29ubnxxdElkZW50KGRhdGEubmFtZSl9fSBTRVQgREVG QVVMVCB7e2RhdGEuZGVmdmFsfX07Cit7JSBlbmRpZiAlfQoreyMjIyAgQWx0 ZXIgY29sdW1uIG5vdCBudWxsIHZhbHVlICMjI30KK3slIGlmICdhdHRub3Ru dWxsJyBpbiBkYXRhICV9CitBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChk YXRhLnNjaGVtYSwgZGF0YS50YWJsZSl9fQorICAgIEFMVEVSIENPTFVNTiB7 e2Nvbm58cXRJZGVudChkYXRhLm5hbWUpfX0geyUgaWYgZGF0YS5hdHRub3Ru dWxsICV9U0VUeyUgZWxzZSAlfURST1B7JSBlbmRpZiAlfSBOT1QgTlVMTDsK K3slIGVuZGlmICV9Cit7IyMjICBBbHRlciBjb2x1bW4gc3RhdGlzdGljcyB2 YWx1ZSAjIyN9Cit7JSBpZiBkYXRhLmF0dHN0YXR0ZXJnZXQgJX0KK0FMVEVS IFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxl KX19CisgICAgQUxURVIgQ09MVU1OIHt7Y29ubnxxdElkZW50KGRhdGEubmFt ZSl9fSBTRVQgU1RBVElTVElDUyB7e2RhdGEuYXR0c3RhdHRlcmdldH19Owor eyUgZW5kaWYgJX0KK3sjIyMgIEFsdGVyIGNvbHVtbiBzdG9yYWdlIHZhbHVl ICMjI30KK3slIGlmIGRhdGEuYXR0c3RvcmFnZSAlfQorQUxURVIgVEFCTEUg e3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KKyAg ICBBTFRFUiBDT0xVTU4ge3tjb25ufHF0SWRlbnQoZGF0YS5uYW1lKX19IFNF VCBTVE9SQUdFIHslaWYgZGF0YS5hdHRzdG9yYWdlID09ICdwJyAlfQorUExB SU57JSBlbGlmIGRhdGEuYXR0c3RvcmFnZSA9PSAnbSclfU1BSU57JSBlbGlm IGRhdGEuYXR0c3RvcmFnZSA9PSAnZSclfQorRVhURVJOQUx7JSBlbGlmIGRh dGEuYXR0c3RvcmFnZSA9PSAneCclfUVYVEVOREVEeyUgZW5kaWYgJX07Cit7 JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorQ09NTUVO VCBPTiBDT0xVTU4ge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEu dGFibGUsIGRhdGEubmFtZSl9fQorICAgIElTIHt7ZGF0YS5kZXNjcmlwdGlv bnxxdExpdGVyYWx9fTsKK3slIGVuZGlmICV9Cit7IyMjIFVwZGF0ZSBjb2x1 bW4gdmFyaWFibGVzICMjI30KK3slIGlmICdhdHRvcHRpb25zJyBpbiBkYXRh IGFuZCBkYXRhLmF0dG9wdGlvbnN8bGVuZ3RoID4gMCAlfQoreyUgc2V0IHZh cmlhYmxlcyA9IGRhdGEuYXR0b3B0aW9ucyAlfQoreyUgaWYgJ2RlbGV0ZWQn IGluIHZhcmlhYmxlcyBhbmQgdmFyaWFibGVzLmRlbGV0ZWR8bGVuZ3RoID4g MCAlfQorQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEs IGRhdGEudGFibGUpfX0KK3t7IFZBUklBQkxFLlVOU0VUKGNvbm4sICdDT0xV TU4nLCBkYXRhLm5hbWUsIHZhcmlhYmxlcy5kZWxldGVkKSB9fQoreyUgZW5k aWYgJX0KK3slIGlmICdhZGRlZCcgaW4gdmFyaWFibGVzIGFuZCB2YXJpYWJs ZXMuYWRkZWR8bGVuZ3RoID4gMCAlfQorQUxURVIgVEFCTEUge3tjb25ufHF0 SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KK3t7IFZBUklBQkxF LlNFVChjb25uLCAnQ09MVU1OJywgZGF0YS5uYW1lLCB2YXJpYWJsZXMuYWRk ZWQpIH19Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIHZhcmlh YmxlcyBhbmQgdmFyaWFibGVzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQorQUxU RVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFi bGUpfX0KK3t7IFZBUklBQkxFLlNFVChjb25uLCAnQ09MVU1OJywgZGF0YS5u YW1lLCB2YXJpYWJsZXMuY2hhbmdlZCkgfX0KK3slIGVuZGlmICV9Cit7JSBl bmRpZiAlfQoreyMjIyBVcGRhdGUgY29sdW1uIHByaXZpbGVnZXMgIyMjfQor eyMgQ2hhbmdlIHRoZSBwcml2aWxlZ2VzICN9Cit7JSBpZiBkYXRhLmF0dGFj bCAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuYXR0YWNsICV9Cit7JSBm b3IgcHJpdiBpbiBkYXRhLmF0dGFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxF R0UuUkVTRVRBTEwoY29ubiwgZGF0YS5zY2hlbWEsIGRhdGEudGFibGUsIGRh dGEubmFtZSwgcHJpdi5ncmFudGVlKSB9fQoreyUgZW5kZm9yICV9Cit7JSBl bmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEuYXR0YWNsICV9Cit7 JSBmb3IgcHJpdiBpbiBkYXRhLmF0dGFjbC5jaGFuZ2VkICV9Cit7eyBQUklW SUxFR0UuUkVTRVRBTEwoY29ubiwgZGF0YS5zY2hlbWEsIGRhdGEudGFibGUs IGRhdGEubmFtZSwgcHJpdi5ncmFudGVlKSB9fQore3sgUFJJVklMRUdFLkFQ UExZKGNvbm4sIGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUs IHByaXYuZ3JhbnRlZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhf Z3JhbnQpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAn YWRkZWQnIGluIGRhdGEuYXR0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRh LmF0dGFjbC5hZGRlZCAlfQore3sgUFJJVklMRUdFLkFQUExZKGNvbm4sIGRh dGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUsIHByaXYuZ3JhbnRl ZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQpIH19Cit7 JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyMjIyBV cHBkYXRlIHRhYmxlc3BhY2Ugc2VjdXJpdHlsYWJlbCAjIyN9Cit7IyBUaGUg U1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBTZWN1cml0eSBMYWJl bCAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgYW5kIGRhdGEuc2VjbGFiZWxz fGxlbmd0aCA+IDAgJX0KK3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xh YmVscyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2Vj bGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2Vj bGFiZWxzLmRlbGV0ZWQgJX0KK3t7IFNFQ0xBQkxFLkRST1AoY29ubiwgJ0NP TFVNTicsIGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUsIHIu cHJvdmlkZXIpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBp ZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxl bmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQor e3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ0NPTFVNTicsZGF0YS5zY2hlbWEs IGRhdGEudGFibGUsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0 eV9sYWJlbCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlm ICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2Vk fGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5jaGFuZ2Vk ICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnQ09MVU1OJyxkYXRhLnNj aGVtYSwgZGF0YS50YWJsZSwgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNl Y3VyaXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQor eyUgZW5kaWYgJX0KK3sjIyMgRW5kIG1haW4gaWYgIyMjfQoreyUgZW5kaWYl fQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL19faW5pdF9fLnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvX19pbml0X18ucHkKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzY0MTE2ZQotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL19f aW5pdF9fLnB5CkBAIC0wLDAgKzEsODY5IEBACisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRv b2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxl YXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisiIiIgSW1wbGVtZW50cyBJbmRl eCBOb2RlICIiIgorCitmcm9tIGZsYXNrIGltcG9ydCByZW5kZXJfdGVtcGxh dGUsIG1ha2VfcmVzcG9uc2UsIHJlcXVlc3QsIGpzb25pZnkKK2Zyb20gZmxh c2suZXh0LmJhYmVsIGltcG9ydCBnZXR0ZXh0Citmcm9tIHBnYWRtaW4udXRp bHMuYWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNlLCBcCisgICAgbWFr ZV9yZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IKK2Zyb20gcGdhZG1pbi5icm93c2VyLnV0aWxzIGltcG9ydCBQR0No aWxkTm9kZVZpZXcKK2Zyb20gcGdhZG1pbi5icm93c2VyLmNvbGxlY3Rpb24g aW1wb3J0IENvbGxlY3Rpb25Ob2RlTW9kdWxlCitpbXBvcnQgcGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMgYXMgZGF0 YWJhc2UKK2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBwcmVjb25k aXRpb25fcmVxdWlyZWQKK2Zyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1w b3J0IGdldF9kcml2ZXIKK2Zyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxU X0RSSVZFUgorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLnV0aWxzIGltcG9ydCBwYXJzZV9wcml2X2Zyb21fZGIsIFwKKyAg ICBwYXJzZV9wcml2X3RvX2RiCitmcm9tIGZ1bmN0b29scyBpbXBvcnQgd3Jh cHMKK2ltcG9ydCBqc29uCisKKworY2xhc3MgSW5kZXhlc01vZHVsZShDb2xs ZWN0aW9uTm9kZU1vZHVsZSk6CisgICAgIiIiCisgICAgIGNsYXNzIEluZGV4 ZXNNb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUpCisKKyAgICAgICAgQSBt b2R1bGUgY2xhc3MgZm9yIEluZGV4IG5vZGUgZGVyaXZlZCBmcm9tIENvbGxl Y3Rpb25Ob2RlTW9kdWxlLgorCisgICAgTWV0aG9kczoKKyAgICAtLS0tLS0t CisgICAgKiBfX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAtIE1l dGhvZCBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIEluZGV4IGFuZCBpdCdz IGJhc2UgbW9kdWxlLgorCisgICAgKiBnZXRfbm9kZXMoZ2lkLCBzaWQsIGRp ZCwgc2NpZCwgdGlkKQorICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBnZW5l cmF0ZSB0aGUgYnJvd3NlciBjb2xsZWN0aW9uIG5vZGUuCisKKyAgICAqIG5v ZGVfaW5vZGUoKQorICAgICAgLSBNZXRob2QgaXMgb3ZlcnJpZGRlbiBmcm9t IGl0cyBiYXNlIGNsYXNzIHRvIG1ha2UgdGhlIG5vZGUgYXMgbGVhZiBub2Rl LgorCisgICAgKiBzY3JpcHRfbG9hZCgpCisgICAgICAtIExvYWQgdGhlIG1v ZHVsZSBzY3JpcHQgZm9yIHNjaGVtYSwgd2hlbiBhbnkgb2YgdGhlIHNlcnZl ciBub2RlIGlzCisgICAgICAgIGluaXRpYWxpemVkLgorICAgICIiIgorCisg ICAgTk9ERV9UWVBFID0gJ2luZGV4JworICAgIENPTExFQ1RJT05fTEFCRUwg PSBnZXR0ZXh0KCJJbmRleGVzIikKKworICAgIGRlZiBfX2luaXRfXyhzZWxm LCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAgTWV0 aG9kIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgSW5kZXhNb2R1bGUgYW5k IGl0J3MgYmFzZSBtb2R1bGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAg ICAgICphcmdzOgorICAgICAgICAgICAgKiprd2FyZ3M6CisgICAgICAgICIi IgorICAgICAgICBzZWxmLm1pbl92ZXIgPSBOb25lCisgICAgICAgIHNlbGYu bWF4X3ZlciA9IE5vbmUKKyAgICAgICAgc3VwZXIoSW5kZXhlc01vZHVsZSwg c2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorCisgICAgZGVmIEJh Y2tlbmRTdXBwb3J0ZWQoc2VsZiwgbWFuYWdlciwgKiprd2FyZ3MpOgorICAg ICAgICAiIiIKKyAgICAgICAgTG9hZCB0aGlzIG1vZHVsZSBpZiB2aWQgaXMg dmlldywgd2Ugd2lsbCBub3QgbG9hZCBpdCB1bmRlcgorICAgICAgICBtYXRl cmlhbCB2aWV3CisgICAgICAgICIiIgorICAgICAgICBpZiBzdXBlcihJbmRl eGVzTW9kdWxlLCBzZWxmKS5CYWNrZW5kU3VwcG9ydGVkKG1hbmFnZXIsICoq a3dhcmdzKToKKyAgICAgICAgICAgIGNvbm4gPSBtYW5hZ2VyLmNvbm5lY3Rp b24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAgICAgICAjIElmIERCIGlz IG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4gZXJyb3IgdG8gYnJvd3Nlcgor ICAgICAgICAgICAgaWYgbm90IGNvbm4uY29ubmVjdGVkKCk6CisgICAgICAg ICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJlZCgKKyAgICAg ICAgICAgICAgICAgICAgZ2V0dGV4dCgKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGxv c3QhIgorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAg KQorCisgICAgICAgICAgICBpZiAndmlkJyBub3QgaW4ga3dhcmdzOgorICAg ICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgICAgIHRlbXBs YXRlX3BhdGggPSAnaW5kZXgvc3FsLzkuMV9wbHVzJworICAgICAgICAgICAg U1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAg ICAgICAgW3RlbXBsYXRlX3BhdGgsICdiYWNrZW5kX3N1cHBvcnQuc3FsJ10p LCB2aWQ9a3dhcmdzWyd2aWQnXSkKKyAgICAgICAgICAgIHN0YXR1cywgcmVz ID0gY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCisKKyAgICAgICAgICAgICMg Y2hlY2sgaWYgYW55IGVycm9ycworICAgICAgICAgICAgaWYgbm90IHN0YXR1 czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgICAgICMgQ2hlY2sgdmlkIGlz IHZpZXcgbm90IG1hdGVyaWFsIHZpZXcKKyAgICAgICAgICAgICMgdGhlbiB0 cnVlLCBvdGhld2lzZSBmYWxzZQorICAgICAgICAgICAgcmV0dXJuIHJlcwor CisgICAgZGVmIGdldF9ub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lk LCAqKmt3YXJncyk6CisgICAgICAgICIiIgorICAgICAgICBHZW5lcmF0ZSB0 aGUgY29sbGVjdGlvbiBub2RlCisgICAgICAgICMgVE9ETzo6CisgICAgICAg IFdlIGNhbiBoYXZlIGZvbGxvd2luZyBhcmd1bWVudHMgZm9yIGRpZmZlcmVu dCB0eXBlIG9mIHBhcmVudHMuCisgICAgICAgIGkuZS4KKyAgICAgICAgdGlk IC0gZm9yIHRhYmxlcworICAgICAgICB2aWQgLSBmb3IgbWF0ZXJpYWxpemVk IHZpZXdzCisgICAgICAgICIiIgorICAgICAgICBhc3NlcnQoJ3RpZCcgaW4g a3dhcmdzIG9yICd2aWQnIGluIGt3YXJncykKKyAgICAgICAgeWllbGQgc2Vs Zi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZSgKKyAgICAgICAg ICBrd2FyZ3NbJ3RpZCddIGlmICd0aWQnIGluIGt3YXJncyBlbHNlIGt3YXJn c1sndmlkJ10KKyAgICAgICAgICApCisKKyAgICBAcHJvcGVydHkKKyAgICBk ZWYgc2NyaXB0X2xvYWQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBM b2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBzZXJ2ZXIsIHdoZW4gYW55IG9m IHRoZSBzZXJ2ZXItZ3JvdXAgbm9kZSBpcworICAgICAgICBpbml0aWFsaXpl ZC4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBkYXRhYmFzZS5EYXRh YmFzZU1vZHVsZS5OT0RFX1RZUEUKKworICAgIEBwcm9wZXJ0eQorICAgIGRl ZiBub2RlX2lub2RlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgTG9h ZCB0aGUgbW9kdWxlIG5vZGUgYXMgYSBsZWFmIG5vZGUKKyAgICAgICAgIiIi CisgICAgICAgIHJldHVybiBGYWxzZQorCitibHVlcHJpbnQgPSBJbmRleGVz TW9kdWxlKF9fbmFtZV9fKQorCisKK2NsYXNzIEluZGV4ZXNWaWV3KFBHQ2hp bGROb2RlVmlldyk6CisgICAgIiIiCisgICAgVGhpcyBjbGFzcyBpcyByZXNw b25zaWJsZSBmb3IgZ2VuZXJhdGluZyByb3V0ZXMgZm9yIEluZGV4IG5vZGUK KworICAgIE1ldGhvZHM6CisgICAgLS0tLS0tLQorICAgICogX19pbml0X18o Kiprd2FyZ3MpCisgICAgICAtIE1ldGhvZCBpcyB1c2VkIHRvIGluaXRpYWxp emUgdGhlIEluZGV4VmlldyBhbmQgaXQncyBiYXNlIHZpZXcuCisKKyAgICAq IG1vZHVsZV9qcygpCisgICAgICAtIFRoaXMgcHJvcGVydHkgZGVmaW5lcyAo aWYgamF2YXNjcmlwdCkgZXhpc3RzIGZvciB0aGlzIG5vZGUuCisgICAgICAg IE92ZXJyaWRlIHRoaXMgcHJvcGVydHkgZm9yIHlvdXIgb3duIGxvZ2ljCisK KyAgICAqIGNoZWNrX3ByZWNvbmRpdGlvbigpCisgICAgICAtIFRoaXMgZnVu Y3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBj aGVja3MKKyAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUgcnVu bmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKKyAgICAgICAgbWFu YWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYK KworICAgICogbGlzdCgpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gaXMgdXNl ZCB0byBsaXN0IGFsbCB0aGUgSW5kZXggbm9kZXMgd2l0aGluIHRoYXQKKyAg ICAgIGNvbGxlY3Rpb24uCisKKyAgICAqIG5vZGVzKCkKKyAgICAgIC0gVGhp cyBmdW5jdGlvbiB3aWxsIHVzZWQgdG8gY3JlYXRlIGFsbCB0aGUgY2hpbGQg bm9kZSB3aXRoaW4gdGhhdAorICAgICAgICBjb2xsZWN0aW9uLCBIZXJlIGl0 IHdpbGwgY3JlYXRlIGFsbCB0aGUgSW5kZXggbm9kZS4KKworICAgICogcHJv cGVydGllcyhnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIGlkeCkKKyAgICAg IC0gVGhpcyBmdW5jdGlvbiB3aWxsIHNob3cgdGhlIHByb3BlcnRpZXMgb2Yg dGhlIHNlbGVjdGVkIEluZGV4IG5vZGUKKworICAgICogY3JlYXRlKGdpZCwg c2lkLCBkaWQsIHNjaWQsIHRpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3 aWxsIGNyZWF0ZSB0aGUgbmV3IEluZGV4IG9iamVjdAorCisgICAgKiB1cGRh dGUoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCBpZHgpCisgICAgICAtIFRo aXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGhlIGRhdGEgZm9yIHRoZSBzZWxl Y3RlZCBJbmRleCBub2RlCisKKyAgICAqIGRlbGV0ZShzZWxmLCBnaWQsIHNp ZCwgc2NpZCwgdGlkLCBpZHgpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdp bGwgZHJvcCB0aGUgSW5kZXggb2JqZWN0CisKKyAgICAqIG1zcWwoZ2lkLCBz aWQsIGRpZCwgc2NpZCwgdGlkLCBpZHgpCisgICAgICAtIFRoaXMgZnVuY3Rp b24gaXMgdXNlZCB0byByZXR1cm4gbW9kaWZpZWQgU1FMIGZvciB0aGUgc2Vs ZWN0ZWQKKyAgICAgICAgSW5kZXggbm9kZQorCisgICAgKiBnZXRfc3FsKGRh dGEsIHNjaWQsIHRpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGdl bmVyYXRlIHNxbCBmcm9tIG1vZGVsIGRhdGEKKworICAgICogc3FsKGdpZCwg c2lkLCBkaWQsIHNjaWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwg Z2VuZXJhdGUgc3FsIHRvIHNob3cgaXQgaW4gc3FsIHBhbmUgZm9yIHRoZQor ICAgICAgICBzZWxlY3RlZCBJbmRleCBub2RlLgorCisgICAgKiBkZXBlbmRl bmN5KGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgLSBUaGlzIGZ1bmN0 aW9uIHdpbGwgZ2VuZXJhdGUgZGVwZW5kZW5jeSBsaXN0IHNob3cgaXQgaW4g ZGVwZW5kZW5jeQorICAgICAgICBwYW5lIGZvciB0aGUgc2VsZWN0ZWQgSW5k ZXggbm9kZS4KKworICAgICogZGVwZW5kZW50KGdpZCwgc2lkLCBkaWQsIHNj aWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgZGVw ZW5kZW50IGxpc3QgdG8gc2hvdyBpdCBpbiBkZXBlbmRlbnQKKyAgICAgICAg cGFuZSBmb3IgdGhlIHNlbGVjdGVkIEluZGV4IG5vZGUuCisgICAgIiIiCisK KyAgICBub2RlX3R5cGUgPSBibHVlcHJpbnQubm9kZV90eXBlCisKKyAgICBw YXJlbnRfaWRzID0gWworICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdp ZCc6ICdnaWQnfSwKKyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQn OiAnc2lkJ30sCisgICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzog J2RpZCd9LAorICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdz Y2lkJ30sCisgICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3Rp ZCd9CisgICAgICAgICAgICBdCisgICAgaWRzID0gWworICAgICAgICAgICAg eyd0eXBlJzogJ2ludCcsICdpZCc6ICdpZHgnfQorICAgICAgICAgICAgXQor CisgICAgb3BlcmF0aW9ucyA9IGRpY3QoeworICAgICAgICAnb2JqJzogWwor ICAgICAgICAgICAgeydnZXQnOiAncHJvcGVydGllcycsICdkZWxldGUnOiAn ZGVsZXRlJywgJ3B1dCc6ICd1cGRhdGUnfSwKKyAgICAgICAgICAgIHsnZ2V0 JzogJ2xpc3QnLCAncG9zdCc6ICdjcmVhdGUnfQorICAgICAgICBdLAorICAg ICAgICAnZGVsZXRlJzogW3snZGVsZXRlJzogJ2RlbGV0ZSd9XSwKKyAgICAg ICAgJ2NoaWxkcmVuJzogW3snZ2V0JzogJ2NoaWxkcmVuJ31dLAorICAgICAg ICAnbm9kZXMnOiBbeydnZXQnOiAnbm9kZSd9LCB7J2dldCc6ICdub2Rlcyd9 XSwKKyAgICAgICAgJ3NxbCc6IFt7J2dldCc6ICdzcWwnfV0sCisgICAgICAg ICdtc3FsJzogW3snZ2V0JzogJ21zcWwnfSwgeydnZXQnOiAnbXNxbCd9XSwK KyAgICAgICAgJ3N0YXRzJzogW3snZ2V0JzogJ3N0YXRpc3RpY3MnfV0sCisg ICAgICAgICdkZXBlbmRlbmN5JzogW3snZ2V0JzogJ2RlcGVuZGVuY2llcyd9 XSwKKyAgICAgICAgJ2RlcGVuZGVudCc6IFt7J2dldCc6ICdkZXBlbmRlbnRz J31dLAorICAgICAgICAnbW9kdWxlLmpzJzogW3t9LCB7fSwgeydnZXQnOiAn bW9kdWxlX2pzJ31dLAorICAgICAgICAnZ2V0X2NvbGxhdGlvbnMnOiBbeydn ZXQnOiAnZ2V0X2NvbGxhdGlvbnMnfSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsnZ2V0JzogJ2dldF9jb2xsYXRpb25zJ31dLAorICAgICAgICAn Z2V0X2FjY2Vzc19tZXRob2RzJzogW3snZ2V0JzogJ2dldF9hY2Nlc3NfbWV0 aG9kcyd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsnZ2V0 JzogJ2dldF9hY2Nlc3NfbWV0aG9kcyd9XSwKKyAgICAgICAgJ2dldF9vcF9j bGFzcyc6IFt7J2dldCc6ICdnZXRfb3BfY2xhc3MnfSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7J2dldCc6ICdnZXRfb3BfY2xhc3MnfV0K KyAgICB9KQorCisgICAgZGVmIGNoZWNrX3ByZWNvbmRpdGlvbihmKToKKyAg ICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUg YXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVja3MKKyAgICAgICAgZGF0 YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUgcnVubmluZyB2aWV3LCBpdCB3aWxs IGFsc28gYXR0YWNoZXMKKyAgICAgICAgbWFuYWdlcixjb25uICYgdGVtcGxh dGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYKKyAgICAgICAgIiIiCisgICAg ICAgIEB3cmFwcyhmKQorICAgICAgICBkZWYgd3JhcCgqYXJncywgKiprd2Fy Z3MpOgorICAgICAgICAgICAgIyBIZXJlIGFyZ3NbMF0gd2lsbCBob2xkIHNl bGYgJiBrd2FyZ3Mgd2lsbCBob2xkIGdpZCxzaWQsZGlkCisgICAgICAgICAg ICBzZWxmID0gYXJnc1swXQorICAgICAgICAgICAgc2VsZi5tYW5hZ2VyID0g Z2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5h Z2VyKAorICAgICAgICAgICAgICAgIGt3YXJnc1snc2lkJ10KKyAgICAgICAg ICAgICkKKyAgICAgICAgICAgIHNlbGYuY29ubiA9IHNlbGYubWFuYWdlci5j b25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2RpZCddKQorICAgICAgICAgICAgIyBJ ZiBEQiBub3QgY29ubmVjdGVkIHRoZW4gcmV0dXJuIGVycm9yIHRvIGJyb3dz ZXIKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVkKCk6 CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJl ZCgKKyAgICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhh cyBiZWVuIGxvc3QhIgorICAgICAgICAgICAgICAgICAgICApCisgICAgICAg ICAgICAgICAgKQorCisgICAgICAgICAgICAjIFdlIG5lZWQgZGF0bGFzdHN5 c29pZCB0byBjaGVjayBpZiBjdXJyZW50IGluZGV4IGlzIHN5c3RlbSBpbmRl eAorICAgICAgICAgICAgc2VsZi5kYXRsYXN0c3lzb2lkID0gc2VsZi5tYW5h Z2VyLmRiX2luZm9ba3dhcmdzWydkaWQnXV1bJ2RhdGxhc3RzeXNvaWQnXQor CisgICAgICAgICAgICAjIHdlIHdpbGwgc2V0IHRlbXBsYXRlIHBhdGggZm9y IHNxbCBzY3JpcHRzCisgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGgg PSAnaW5kZXgvc3FsLzkuMV9wbHVzJworCisgICAgICAgICAgICAjIFdlIG5l ZWQgcGFyZW50J3MgbmFtZSBlZyB0YWJsZSBuYW1lIGFuZCBzY2hlbWEgbmFt ZQorICAgICAgICAgICAgIyB3aGVuIHdlIGNyZWF0ZSBuZXcgaW5kZXggaW4g dXBkYXRlIHdlIGNhbiBmZXRjaCBpdCB1c2luZworICAgICAgICAgICAgIyBw cm9wZXJ0eSBzcWwKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X3BhcmVudC5z cWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlk PWt3YXJnc1sndGlkJ10pCisgICAgICAgICAgICBzdGF0dXMsIHJzZXQgPSBz ZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yc2V0KQorCisgICAgICAgICAgICBm b3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgICAgICBzZWxm LnNjaGVtYSA9IHJvd1snc2NoZW1hJ10KKyAgICAgICAgICAgICAgICBzZWxm LnRhYmxlID0gcm93Wyd0YWJsZSddCisKKyAgICAgICAgICAgIHJldHVybiBm KCphcmdzLCAqKmt3YXJncykKKworICAgICAgICByZXR1cm4gd3JhcAorCisg ICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBnZXRfY29sbGF0aW9u cyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIGlkeD1Ob25lKToK KyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCByZXR1 cm4gbGlzdCBvZiBjb2xsYXRpb24gYXZhaWxhYmxlCisgICAgICAgIHZpYSBB SkFYIHJlc3BvbnNlCisgICAgICAgICIiIgorICAgICAgICByZXMgPSBbeyds YWJlbCc6ICcnLCAndmFsdWUnOiAnJ31dCisgICAgICAgIHRyeToKKyAgICAg ICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnZ2V0X2NvbGxhdGlvbnMuc3FsJ10pKQorICAgICAg ICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJh eShTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQorCisgICAgICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToK KyAgICAgICAgICAgICAgICByZXMuYXBwZW5kKAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsnbGFiZWwnOiByb3dbJ2NvbGxhdGlvbiddLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUnOiByb3dbJ2NvbGxh dGlvbiddfQorICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAg ICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAg ICAgICAgZGF0YT1yZXMsCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz0y MDAKKyAgICAgICAgICAgICAgICAgICAgKQorCisgICAgICAgIGV4Y2VwdCBF eGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3By ZWNvbmRpdGlvbgorICAgIGRlZiBnZXRfYWNjZXNzX21ldGhvZHMoc2VsZiwg Z2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCBpZHg9Tm9uZSk6CisgICAgICAg ICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGxpc3Qg b2YgYWNjZXNzIG1ldGhvZHMgYXZhaWxhYmxlCisgICAgICAgIHZpYSBBSkFY IHJlc3BvbnNlCisgICAgICAgICIiIgorICAgICAgICByZXMgPSBbeydsYWJl bCc6ICcnLCAndmFsdWUnOiAnJ31dCisgICAgICAgIHRyeToKKyAgICAgICAg ICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1w bGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnZ2V0X2FtLnNxbCddKSkKKyAgICAgICAgICAgIHN0YXR1 cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQorICAg ICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAg ICAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAg ICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7J2xhYmVsJzogcm93WydhbW5hbWUnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ3ZhbHVlJzogcm93WydhbW5hbWUnXX0KKyAgICAgICAg ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pz b25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgIGRhdGE9cmVzLAor ICAgICAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAg ICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Cisg ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBk ZWYgZ2V0X29wX2NsYXNzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRp ZCwgaWR4PU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5j dGlvbiB3aWxsIHJldHVybiBsaXN0IG9mIG9wX2NsYXNzIG1ldGhvZAorICAg ICAgICBmb3IgZWFjaCBhY2Nlc3MgbWV0aG9kcyBhdmFpbGFibGUgdmlhIEFK QVggcmVzcG9uc2UKKyAgICAgICAgIiIiCisgICAgICAgIHJlcyA9IGRpY3Qo KQorICAgICAgICB0cnk6CisgICAgICAgICAgICAjIEZldGNoaW5nIGFsbCB0 aGUgYWNjZXNzIG1ldGhvZHMKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90 ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X2Ft LnNxbCddKSkKKyAgICAgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29u bi5leGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgZm9yIHJvdyBp biByc2V0Wydyb3dzJ106CisgICAgICAgICAgICAgICAgIyBGZXRjaGluZyBh bGwgdGhlIG9wX2NsYXNzZXMgZm9yIGVhY2ggYWNjZXNzIG1ldGhvZAorICAg ICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9vcF9jbGFzcy5zcWwnXSks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9pZD1y b3dbJ29pZCddKQorICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzdWx0ID0g c2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAgICAgICAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAg ICAgICAgICAgICBvcF9jbGFzc19saXN0ID0gW3snbGFiZWwnOiAnJywgJ3Zh bHVlJzogJyd9XQorCisgICAgICAgICAgICAgICAgZm9yIHIgaW4gcmVzdWx0 Wydyb3dzJ106CisgICAgICAgICAgICAgICAgICAgIG9wX2NsYXNzX2xpc3Qu YXBwZW5kKHsnbGFiZWwnOiByWydvcGNuYW1lJ10sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUnOiByWydvcGNu YW1lJ119KQorCisgICAgICAgICAgICAgICAgIyBBcHBlbmQgb3BfY2xhc3Mg bGlzdCBpbiBtYWluIHJlc3VsdCBhcyBjb2xsZWN0aW9uCisgICAgICAgICAg ICAgICAgcmVzW3Jvd1snYW1uYW1lJ11dID0gb3BfY2xhc3NfbGlzdAorCisg ICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgICAgICBkYXRhPXJlcywKKyAgICAgICAgICAgICAgICAgICAg c3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICAgICApCisKKyAgICAgICAg ZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKworICAg IEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbGlzdChzZWxmLCBnaWQs IHNpZCwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAgICAiIiIKKyAgICAgICAg VGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGxpc3QgYWxsIHRoZSBzY2hlbWEg bm9kZXMgd2l0aGluIHRoYXQgY29sbGVjdGlvbi4KKworICAgICAgICBBcmdz OgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgZ3JvdXAgSUQKKyAgICAgICAg ICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNl IElECisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAg IHRpZDogVGFibGUgSUQKKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAg ICAgSlNPTiBvZiBhdmFpbGFibGUgc2NoZW1hIG5vZGVzCisgICAgICAgICIi IgorCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdub2Rlcy5zcWwnXSksIHRpZD10aWQpCisgICAg ICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwp CisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAg ICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNw b25zZT1yZXNbJ3Jvd3MnXSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAw CisgICAgICAgICAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlv bgorICAgIGRlZiBub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0 aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxs IHVzZWQgdG8gY3JlYXRlIGFsbCB0aGUgY2hpbGQgbm9kZSB3aXRoaW4gdGhh dCBjb2xsZWN0aW9uLgorICAgICAgICBIZXJlIGl0IHdpbGwgY3JlYXRlIGFs bCB0aGUgc2NoZW1hIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAg ICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNl cnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAg ICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAgICB0aWQ6IFRhYmxl IElECisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIEpTT04gb2Yg YXZhaWxhYmxlIHNjaGVtYSBjaGlsZCBub2RlcworICAgICAgICAiIiIKKyAg ICAgICAgcmVzID0gW10KKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRl KCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vZGVzLnNxbCddKSwgdGlk PXRpZCkKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1 dGVfMmRhcnJheShTUUwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJzZXQpCisKKyAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106Cisg ICAgICAgICAgICByZXMuYXBwZW5kKAorICAgICAgICAgICAgICAgICAgICBz ZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAg ICAgICAgICAgICAgICAgICByb3dbJ29pZCddLAorICAgICAgICAgICAgICAg ICAgICAgICAgdGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgcm93Wydu YW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICBpY29uPSJpY29uLWlu ZGV4IgorICAgICAgICAgICAgICAgICAgICApKQorCisgICAgICAgIHJldHVy biBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgZGF0YT1y ZXMsCisgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAg ICAgICkKKworICAgIGRlZiBfY29sdW1uX2RldGFpbHMoc2VsZiwgaWR4LCBk YXRhKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb25hbCB3 aWxsIGZldGNoIGxpc3Qgb2YgY29sdW1uIGRldGFpbHMgZm9yIGluZGV4CisK KyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGlkeDogSW5kZXggT0lECisg ICAgICAgICAgICBkYXRhOiBQcm9wZXJ0aWVzIGRhdGEKKworICAgICAgICBS ZXR1cm5zOgorICAgICAgICAgICAgVXBkYXRlZCBwcm9wZXJ0aWVzIGRhdGEg d2l0aCBjb2x1bW4gZGV0YWlscworICAgICAgICAiIiIKKworICAgICAgICBT UUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVf cGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnY29sdW1uX2RldGFpbHMuc3FsJ10pLCBpZHg9aWR4KQorICAgICAgICBz dGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkK KyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKyAgICAgICAg IyAnYXR0ZGVmJyBjb21lcyB3aXRoIHF1b3RlcyBmcm9tIHF1ZXJ5IHNvIHdl IG5lZWQgdG8gc3RyaXAgdGhlbQorICAgICAgICAjICdvcHRpb25zJyB3ZSBu ZWVkIHRydWUvZmFsc2UgdG8gcmVuZGVyIHN3aXRjaCBBU0MoZmFsc2UpL0RF U0ModHJ1ZSkKKyAgICAgICAgY29sdW1ucyA9IFtdCisgICAgICAgIGNvbHMg PSBbXQorICAgICAgICBjbnQgPSAxCisgICAgICAgIGZvciByb3cgaW4gcnNl dFsncm93cyddOgorICAgICAgICAgICAgIyBXZSBuZWVkIGFsbCBkYXRhIGFz IGNvbGxlY3Rpb24gZm9yIENvbHVtbnNNb2RlbAorICAgICAgICAgICAgY29s c19kYXRhID0geworICAgICAgICAgICAgICAgICdjb2xuYW1lJzogcm93Wydh dHRkZWYnXS5zdHJpcCgnIicpLAorICAgICAgICAgICAgICAgICdjb2xsc3Bj bmFtZSc6IHJvd1snY29sbG5zcG5hbWUnXSwKKyAgICAgICAgICAgICAgICAn b3BfY2xhc3MnOiByb3dbJ29wY25hbWUnXSwKKyAgICAgICAgICAgIH0KKyAg ICAgICAgICAgIGlmIHJvd1snb3B0aW9ucyddWzBdID09ICdERVNDJzoKKyAg ICAgICAgICAgICAgICBjb2xzX2RhdGFbJ3NvcnRfb3JkZXInXSA9IFRydWUK KyAgICAgICAgICAgIGNvbHVtbnMuYXBwZW5kKGNvbHNfZGF0YSkKKworICAg ICAgICAgICAgIyBXZSBuZWVkIHNhbWUgZGF0YSBhcyBzdHJpbmcgdG8gZGlz cGxheSBpbiBwcm9wZXJ0aWVzIHdpbmRvdworICAgICAgICAgICAgIyBJZiBt dWx0aXBsZSBjb2x1bW4gdGhlbiBzZXBhcmF0ZSBpdCBieSBjb2xvbgorICAg ICAgICAgICAgY29sc19zdHIgPSByb3dbJ2F0dGRlZiddCisgICAgICAgICAg ICBpZiByb3dbJ2NvbGxuc3BuYW1lJ106CisgICAgICAgICAgICAgICAgY29s c19zdHIgKz0gJyBDT0xMQVRFICcgKyByb3dbJ2NvbGxuc3BuYW1lJ10KKyAg ICAgICAgICAgIGlmIHJvd1snb3BjbmFtZSddOgorICAgICAgICAgICAgICAg IGNvbHNfc3RyICs9ICcgJyArIHJvd1snb3BjbmFtZSddCisgICAgICAgICAg ICBpZiByb3dbJ29wdGlvbnMnXVswXSA9PSAnREVTQyc6CisgICAgICAgICAg ICAgICAgY29sc19zdHIgKz0gJyBERVNDJworICAgICAgICAgICAgY29scy5h cHBlbmQoY29sc19zdHIpCisKKyAgICAgICAgIyBQdXNoIGFzIGNvbGxlY3Rp b24KKyAgICAgICAgZGF0YVsnY29sdW1ucyddID0gY29sdW1ucworICAgICAg ICAjIFB1c2ggYXMgc3RyaW5nCisgICAgICAgIGRhdGFbJ2NvbHMnXSA9ICcs ICcuam9pbihjb2xzKQorCisgICAgICAgIHJldHVybiBkYXRhCisKKworICAg IEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgcHJvcGVydGllcyhzZWxm LCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIGlkeCk6CisgICAgICAgICIi IgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgc2hvdyB0aGUgcHJvcGVy dGllcyBvZiB0aGUgc2VsZWN0ZWQgc2NoZW1hIG5vZGUuCisKKyAgICAgICAg QXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAg ICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiAgRGF0 YWJhc2UgSUQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAgICAg ICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAgICB0aWQ6IFRhYmxl IElECisgICAgICAgICAgICBpZHg6IEluZGV4IElECisKKyAgICAgICAgUmV0 dXJuczoKKyAgICAgICAgICAgIEpTT04gb2Ygc2VsZWN0ZWQgc2NoZW1hIG5v ZGUKKyAgICAgICAgIiIiCisKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBs YXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb3BlcnRpZXMuc3Fs J10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlkPXRpZCwg aWR4PWlkeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGxh c3RzeXNvaWQ9c2VsZi5kYXRsYXN0c3lzb2lkKQorCisgICAgICAgIHN0YXR1 cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisKKyAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICMgTWFr aW5nIGNvcHkgb2Ygb3V0cHV0IGZvciBmdXR1cmUgdXNlCisgICAgICAgIGRh dGEgPSBkaWN0KHJlc1sncm93cyddWzBdKQorCisgICAgICAgICMgQWRkIGNv bHVtbiBkZXRhaWxzIGZvciBjdXJyZW50IGluZGV4CisgICAgICAgIGRhdGEg PSBzZWxmLl9jb2x1bW5fZGV0YWlscyhpZHgsIGRhdGEpCisKKyAgICAgICAg cmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgcmVzcG9u c2U9ZGF0YSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAg ICAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRl ZiBjcmVhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkKToKKyAg ICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGVz IG5ldyB0aGUgc2NoZW1hIG9iamVjdAorCisgICAgICAgICBBcmdzOgorICAg ICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICBzaWQ6 IFNlcnZlciBJRAorICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAg ICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAgICAgICAgICB0aWQ6IFRhYmxl IElECisgICAgICAgICIiIgorICAgICAgICBkYXRhID0gcmVxdWVzdC5mb3Jt IGlmIHJlcXVlc3QuZm9ybSBlbHNlIGpzb24ubG9hZHMoCisgICAgICAgICAg ICByZXF1ZXN0LmRhdGEuZGVjb2RlKCkKKyAgICAgICAgKQorICAgICAgICBy ZXF1aXJlZF9hcmdzID0geworICAgICAgICAgICAgJ25hbWUnOiAnTmFtZScs CisgICAgICAgICAgICAnY29sdW1ucyc6ICdDb2x1bW5zJworICAgICAgICB9 CisKKyAgICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9hcmdzOgorICAgICAg ICAgICAgZXJyX21zZyA9IE5vbmUKKyAgICAgICAgICAgIGlmIGFyZyA9PSAn Y29sdW1ucycgYW5kIGxlbihkYXRhWydjb2x1bW5zJ10pIDwgMToKKyAgICAg ICAgICAgICAgICBlcnJfbXNnID0gIllvdSBtdXN0IHByb3ZpZGUgb25lIG9y IG1vcmUgY29sdW1uIHRvIGNyZWF0ZSBpbmRleCIKKworICAgICAgICAgICAg aWYgYXJnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgIGVycl9tc2cg PSAiQ291bGRuJ3QgZmluZCB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICglcyku IiAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRfYXJn c1thcmddCisgICAgICAgICAgICAgICAgIyBDaGVjayBpZiB3ZSBoYXZlIGF0 IGxlYXN0IG9uZSBjb2x1bW4KKyAgICAgICAgICAgIGlmIGVycl9tc2cgaXMg bm90IE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9y ZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTQxMCwKKyAg ICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0wLAorICAgICAgICAgICAgICAg ICAgICBlcnJvcm1zZz1nZXR0ZXh0KGVycl9tc2cpCisgICAgICAgICAgICAg ICAgKQorCisgICAgICAgICMgQWRkaW5nIHBhcmVudCBpbnRvIGRhdGEgZGlj dCwgd2lsbCBiZSB1c2luZyBpdCB3aGlsZSBjcmVhdGluZyBzcWwKKyAgICAg ICAgZGF0YVsnc2NoZW1hJ10gPSBzZWxmLnNjaGVtYQorICAgICAgICBkYXRh Wyd0YWJsZSddID0gc2VsZi50YWJsZQorCisgICAgICAgIHRyeToKKyAgICAg ICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnY3JlYXRlLnNxbCddKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYXRhPWRhdGEsIGNvbm49c2VsZi5jb25u KQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0 ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJlcykKKworICAgICAgICAgICAgIyBJZiB1c2VyIGNob29zZXMg Y29uY3VycmVudCBpbmRleCB0aGVuIHdlIGNhbiBub3QgcnVuIGl0IGFsb25n CisgICAgICAgICAgICAjIHdpdGggb3RoZXIgYWx0ZXIgc3RhdG1lbnRzIHNv IHdlIHdpbGwgc2VwYXJhdGUgYWx0ZXIgaW5kZXggcGFydAorICAgICAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBs YXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdhbHRlci5zcWwnXSksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGF0YT1kYXRhLCBjb25uPXNlbGYuY29ubikKKyAg ICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2Nh bGFyKFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1yZXMpCisKKyAgICAgICAgICAgICMgd2UgbmVlZCBvaWQgdG8gdG8gYWRk IG9iamVjdCBpbiB0cmVlIGF0IGJyb3dzZXIKKyAgICAgICAgICAgIFNRTCA9 IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRo LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnZ2V0X29pZC5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGlkPXRpZCwgZGF0YT1kYXRhKQorICAgICAgICAgICAgc3Rh dHVzLCBpZHggPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAg ICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXRpZCkKKworICAg ICAgICAgICAgcmV0dXJuIGpzb25pZnkoCisgICAgICAgICAgICAgICAgbm9k ZT1zZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAg ICAgICAgICAgICAgICAgIGlkeCwKKyAgICAgICAgICAgICAgICAgICAgc2Np ZCwKKyAgICAgICAgICAgICAgICAgICAgZGF0YVsnbmFtZSddLAorICAgICAg ICAgICAgICAgICAgICBpY29uPSJpY29uLWluZGV4IgorICAgICAgICAgICAg ICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlv biBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0 aW9uCisgICAgZGVmIGRlbGV0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lk LCB0aWQsIGlkeCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0 aW9uIHdpbGwgdXBkYXRlcyBleGlzdGluZyB0aGUgc2NoZW1hIG9iamVjdAor CisgICAgICAgICBBcmdzOgorICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91 cCBJRAorICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICBk aWQ6IERhdGFiYXNlIElECisgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAor ICAgICAgICAgICB0aWQ6IFRhYmxlIElECisgICAgICAgICAgIGlkeDogSW5k ZXggSUQKKyAgICAgICAgIiIiCisgICAgICAgICMgQmVsb3cgd2lsbCBkZWNp ZGUgaWYgaXQncyBzaW1wbGUgZHJvcCBvciBkcm9wIHdpdGggY2FzY2FkZSBj YWxsCisgICAgICAgIGlmIHNlbGYuY21kID09ICdkZWxldGUnOgorICAgICAg ICAgICAgIyBUaGlzIGlzIGEgY2FzY2FkZSBvcGVyYXRpb24KKyAgICAgICAg ICAgIGNhc2NhZGUgPSBUcnVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAg ICBjYXNjYWRlID0gRmFsc2UKKworICAgICAgICB0cnk6CisgICAgICAgICAg ICAjIFdlIHdpbGwgZmlyc3QgZmV0Y2ggdGhlIGluZGV4IG5hbWUgZm9yIGN1 cnJlbnQgcmVxdWVzdAorICAgICAgICAgICAgIyBzbyB0aGF0IHdlIGNyZWF0 ZSB0ZW1wbGF0ZSBmb3IgZHJvcHBpbmcgaW5kZXgKKyAgICAgICAgICAgIFNR TCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9w YXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGlkPXRpZCwgaWR4PWlkeCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkYXRsYXN0c3lzb2lkPXNlbGYuZGF0 bGFzdHN5c29pZCkKKworICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxm LmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBz dGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIGRhdGEgPSBk aWN0KHJlc1sncm93cyddWzBdKQorCisgICAgICAgICAgICBTUUwgPSByZW5k ZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rl bGV0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGF0YT1kYXRhLCBjb25uPXNlbGYuY29ubiwgY2FzY2FkZT1jYXNjYWRl KQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0 ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJlcykKKworICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9y ZXNwb25zZSgKKyAgICAgICAgICAgICAgICBzdWNjZXNzPTEsCisgICAgICAg ICAgICAgICAgaW5mbz1nZXR0ZXh0KCJJbmRleCBpcyBkcm9wcGVkIiksCisg ICAgICAgICAgICAgICAgZGF0YT17CisgICAgICAgICAgICAgICAgICAgICdp ZCc6IGlkeCwKKyAgICAgICAgICAgICAgICAgICAgJ3RpZCc6IHRpZAorICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICkKKworICAgICAgICBleGNl cHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVj a19wcmVjb25kaXRpb24KKyAgICBkZWYgdXBkYXRlKHNlbGYsIGdpZCwgc2lk LCBkaWQsIHNjaWQsIHRpZCwgaWR4KToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGVzIGV4aXN0aW5nIHRoZSBzY2hl bWEgb2JqZWN0CisKKyAgICAgICAgIEFyZ3M6CisgICAgICAgICAgIGdpZDog U2VydmVyIEdyb3VwIElECisgICAgICAgICAgIHNpZDogU2VydmVyIElECisg ICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAgc2NpZDog U2NoZW1hIElECisgICAgICAgICAgIHRpZDogVGFibGUgSUQKKyAgICAgICAg ICAgaWR4OiBJbmRleCBJRAorICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9 IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZvcm0gZWxzZSBqc29uLmxvYWRz KHJlcXVlc3QuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICB0cnk6CisgICAg ICAgICAgICBTUUwgPSBzZWxmLmdldF9zcWwoc2NpZCwgdGlkLCBpZHgsIGRh dGEpCisgICAgICAgICAgICBpZiBTUUwgYW5kIFNRTC5zdHJpcCgnXG4nKSBh bmQgU1FMLnN0cmlwKCcgJyk6CisgICAgICAgICAgICAgICAgc3RhdHVzLCBy ZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJl dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisg ICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAg ICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAg ICAgICBpbmZvPSJJbmRleCB1cGRhdGVkIiwKKyAgICAgICAgICAgICAgICAg ICAgZGF0YT17CisgICAgICAgICAgICAgICAgICAgICAgICAnaWQnOiBpZHgs CisgICAgICAgICAgICAgICAgICAgICAgICAndGlkJzogdGlkLAorICAgICAg ICAgICAgICAgICAgICAgICAgJ3NjaWQnOiBzY2lkCisgICAgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICBlbHNl OgorICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2Uo CisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAg ICAgICAgICAgaW5mbz0iTm90aGluZyB0byB1cGRhdGUiLAorICAgICAgICAg ICAgICAgICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgICAgICdp ZCc6IGlkeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICd0aWQnOiB0aWQs CisgICAgICAgICAgICAgICAgICAgICAgICAnc2NpZCc6IHNjaWQKKyAgICAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICkKKworICAgICAg ICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworCisg ICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBtc3FsKHNlbGYsIGdp ZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgaWR4PU5vbmUpOgorICAgICAgICAi IiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlcyBtb2Rp ZmllZCBzcWwgZm9yIHNjaGVtYSBvYmplY3QKKworICAgICAgICAgQXJnczoK KyAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAg c2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAor ICAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgdGlkOiBU YWJsZSBJRAorICAgICAgICAgICBpZHg6IEluZGV4IElEIChXaGVuIHdvcmtp bmcgd2l0aCBleGlzdGluZyBpbmRleCkKKyAgICAgICAgIiIiCisgICAgICAg IGRhdGEgPSBkaWN0KCkKKyAgICAgICAgZm9yIGssIHYgaW4gcmVxdWVzdC5h cmdzLml0ZW1zKCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAg ICAgZGF0YVtrXSA9IGpzb24ubG9hZHModikKKyAgICAgICAgICAgIGV4Y2Vw dCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgICAgIGRhdGFba10gPSB2CisK KyAgICAgICAgIyBBZGRpbmcgcGFyZW50IGludG8gZGF0YSBkaWN0LCB3aWxs IGJlIHVzaW5nIGl0IHdoaWxlIGNyZWF0aW5nIHNxbAorICAgICAgICBkYXRh WydzY2hlbWEnXSA9IHNlbGYuc2NoZW1hCisgICAgICAgIGRhdGFbJ3RhYmxl J10gPSBzZWxmLnRhYmxlCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg U1FMID0gc2VsZi5nZXRfc3FsKHNjaWQsIHRpZCwgaWR4LCBkYXRhKQorCisg ICAgICAgICAgICBpZiBTUUwgYW5kIFNRTC5zdHJpcCgnXG4nKSBhbmQgU1FM LnN0cmlwKCcgJyk6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNv bl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9U1FM LAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAg ICAgICAgICAgICAgICAgICAgKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9u IGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIGRlZiBnZXRfc3FsKHNlbGYs IHNjaWQsIHRpZCwgaWR4LCBkYXRhKToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5yYXRlIHNxbCBmcm9tIG1vZGVsIGRh dGEKKyAgICAgICAgIiIiCisgICAgICAgIGlmIGlkeCBpcyBub3QgTm9uZToK KyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAncHJvcGVydGllcy5zcWwnXSksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlkPXRpZCwgaWR4PWlk eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRsYXN0 c3lzb2lkPXNlbGYuZGF0bGFzdHN5c29pZCkKKworICAgICAgICAgICAgc3Rh dHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAg ICAgICAgIG9sZF9kYXRhID0gZGljdChyZXNbJ3Jvd3MnXVswXSkKKworICAg ICAgICAgICAgIyBJZiBuYW1lIGlzIG5vdCBwcmVzZW50IGluIGRhdGEgdGhl bgorICAgICAgICAgICAgIyB3ZSB3aWxsIGZldGNoIGl0IGZyb20gb2xkIGRh dGEsIHdlIGFsc28gbmVlZCBzY2hlbWEgJiB0YWJsZSBuYW1lCisgICAgICAg ICAgICBpZiAnbmFtZScgbm90IGluIGRhdGE6CisgICAgICAgICAgICAgICAg ZGF0YVsnbmFtZSddID0gb2xkX2RhdGFbJ25hbWUnXQorCisgICAgICAgICAg ICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgIi8i LmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3VwZGF0ZS5zcWwnXSksCisg ICAgICAgICAgICAgICAgZGF0YT1kYXRhLCBvX2RhdGE9b2xkX2RhdGEsIGNv bm49c2VsZi5jb25uCisgICAgICAgICAgICAgICAgKQorICAgICAgICBlbHNl OgorICAgICAgICAgICAgcmVxdWlyZWRfYXJncyA9IHsKKyAgICAgICAgICAg ICAgICAnbmFtZSc6ICdOYW1lJywKKyAgICAgICAgICAgICAgICAnY29sdW1u cyc6ICdDb2x1bW5zJworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9y IGFyZyBpbiByZXF1aXJlZF9hcmdzOgorICAgICAgICAgICAgICAgIGVyciA9 IEZhbHNlCisgICAgICAgICAgICAgICAgaWYgYXJnID09ICdjb2x1bW5zJyBh bmQgbGVuKGRhdGFbJ2NvbHVtbnMnXSkgPCAxOgorICAgICAgICAgICAgICAg ICAgICBlcnIgPSBUcnVlCisKKyAgICAgICAgICAgICAgICBpZiBhcmcgbm90 IGluIGRhdGE6CisgICAgICAgICAgICAgICAgICAgIGVyciA9IFRydWUKKyAg ICAgICAgICAgICAgICAgICAgIyBDaGVjayBpZiB3ZSBoYXZlIGF0IGxlYXN0 IG9uZSBjb2x1bW4KKyAgICAgICAgICAgICAgICBpZiBlcnI6CisgICAgICAg ICAgICAgICAgICAgIHJldHVybiBnZXR0ZXh0KCctLSBpbmNvbXBsZXRlIGRl ZmluaXRpb24nKQorCisgICAgICAgICAgICAjIElmIHRoZSByZXF1ZXN0IGZv ciBuZXcgb2JqZWN0IHdoaWNoIGRvIG5vdCBoYXZlIGRpZAorICAgICAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBs YXRlX3BhdGgsICdjcmVhdGUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgY29ubj1zZWxmLmNvbm4pCisg ICAgICAgICAgICBTUUwgKz0gIlxuIgorICAgICAgICAgICAgU1FMICs9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAn YWx0ZXIuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkYXRhPWRhdGEsIGNvbm49c2VsZi5jb25uKQorCisgICAgICAgIHJl dHVybiBTUUwKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg c3FsKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgaWR4KToKKyAg ICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0 ZXMgcmV2ZXJzZSBlbmdpbmVlcmVkIHNxbCBmb3Igc2NoZW1hIG9iamVjdAor CisgICAgICAgICBBcmdzOgorICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91 cCBJRAorICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICBk aWQ6IERhdGFiYXNlIElECisgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAor ICAgICAgICAgICB0aWQ6IFRhYmxlIElECisgICAgICAgICAgIGlkeDogSW5k ZXggSUQKKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGlkPXRpZCwgaWR4PWlkeCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRsYXN0c3lzb2lkPXNlbGYu ZGF0bGFzdHN5c29pZCkKKworICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBz ZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgICAgIGlmIG5v dCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3Nl cnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIGRhdGEg PSBkaWN0KHJlc1sncm93cyddWzBdKQorICAgICAgICAgICAgIyBBZGRpbmcg cGFyZW50IGludG8gZGF0YSBkaWN0LCB3aWxsIGJlIHVzaW5nIGl0IHdoaWxl IGNyZWF0aW5nIHNxbAorICAgICAgICAgICAgZGF0YVsnc2NoZW1hJ10gPSBz ZWxmLnNjaGVtYQorICAgICAgICAgICAgZGF0YVsndGFibGUnXSA9IHNlbGYu dGFibGUKKworICAgICAgICAgICAgIyBBZGQgY29sdW1uIGRldGFpbHMgZm9y IGN1cnJlbnQgaW5kZXgKKyAgICAgICAgICAgIGRhdGEgPSBzZWxmLl9jb2x1 bW5fZGV0YWlscyhpZHgsIGRhdGEpCisKKyAgICAgICAgICAgIFNRTCA9IHNl bGYuZ2V0X3NxbChzY2lkLCB0aWQsIE5vbmUsIGRhdGEpCisKKyAgICAgICAg ICAgIHNxbF9oZWFkZXIgPSAiLS0gSW5kZXg6IHswfVxuXG4tLSAiLmZvcm1h dChkYXRhWyduYW1lJ10pCisgICAgICAgICAgICBzcWxfaGVhZGVyICs9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdkZWxldGUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YT1kYXRhLCBjb25uPXNlbGYuY29u bikKKworICAgICAgICAgICAgU1FMID0gc3FsX2hlYWRlciArICdcblxuJyAr IFNRTAorCisgICAgICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZShyZXNw b25zZT1TUUwpCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgor ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAg ZGVmIGRlcGVuZGVudHMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlk LCBpZHgpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBn ZXQgdGhlIGRlcGVuZGVudHMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNlCisg ICAgICAgIGZvciB0aGUgc2NoZW1hIG5vZGUuCisKKyAgICAgICAgQXJnczoK KyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAg ICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJ RAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAgICB0 aWQ6IFRhYmxlIElECisgICAgICAgICAgICBpZHg6IEluZGV4IElECisgICAg ICAgICIiIgorICAgICAgICBkZXBlbmRlbnRzX3Jlc3VsdCA9IHNlbGYuZ2V0 X2RlcGVuZGVudHMoCisgICAgICAgICAgICBzZWxmLmNvbm4sIGlkeAorICAg ICAgICApCisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAg ICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW50c19yZXN1bHQsCisgICAg ICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5kZW5jaWVz KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgaWR4KToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2V0IHRoZSBkZXBlbmRl bmNpZXMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNlCisgICAgICAgIGZvciB0 aGUgc2NoZW1hIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAg IGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZl ciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAg ICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAgICB0aWQ6IFRhYmxlIElE CisgICAgICAgICAgICBpZHg6IEluZGV4IElECisKKyAgICAgICAgIiIiCisg ICAgICAgIGRlcGVuZGVuY2llc19yZXN1bHQgPSBzZWxmLmdldF9kZXBlbmRl bmNpZXMoCisgICAgICAgICAgICBzZWxmLmNvbm4sIGlkeAorICAgICAgICAp CisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAg ICAgICAgcmVzcG9uc2U9ZGVwZW5kZW5jaWVzX3Jlc3VsdCwKKyAgICAgICAg ICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCitJbmRl eGVzVmlldy5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvc3RhdGljL2lt Zy9jb2xsLWluZGV4LnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRl eGVzL3N0YXRpYy9pbWcvY29sbC1pbmRleC5wbmcKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMC4uYmIxNTEzYzgyODdlMmVlNWIzOWMzNjgzNmZjMDE2MzZlZDM1 Y2Y1ZgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNDY4CnpjbWVBU0BOPyhv bEh5YHVWQnEhaWEwdnBeMHdCITYzP3d5bGBHYk1mb0IqRT9TMExURmBvM1pQ TWFgUGleNXNYMgp6Pm80bG1vPmk8a0NSVihrSjh3dEZtWnpybW1ycDxjY0tw ZkxMa35haXgkfGwzXiQrVlZ5PDJ8diY0THJKaWRIXjYKekAkQm8tJDZwVEl7 flFwTDxRSjlYNk9wKj4jc3t+TWM7fSF2aGsmQCpNX3dGeF5rdl9AUGRqZFkq bSZqTCVKWGopCnpwTCNYdD0hQHdHcFppMjZkVzkjcmhiRkFQQFlYM1gmZlko RSpYQHMrdWYxUCQ7cUI3WHVqZF9tSXBmZ3R1Mk1mMgp6cCEqbjBnOFlJUjlH PX1zMTlDVkVKUip5TXY8RGN3b3lAaWFHVihvTDk3N343Q25wP1c9PHp3RHFy dFEkPVooeDkKemp+Y3heaTNkI18xKW8yQmAxRnlSZ053OEhGcEVwVClxP0l0 RDw2dEUyT3JrJFRnSH5iOW5qbWRXWGhKRkhGSW9TCnpnYWRrOzdFUmpKd1E4 MnQ1dyEoVXl1UH0qdmF6SypxS3x6MiFwcWEhbFVURE9kIzZNUEJnMGcyJlgx U3gwV0RAPQp6UCVVd2RDYG1+eU53ckVZTihFOTNNaDFva3hgc3gmMjhKTzwy Mzk3PFJ3a3l9MkJ1YTkySl96T3R3UGF8bzFjPUkKaVJ0ZUV5VTx1WCRSQmQ4 cVU8VDF9WUleN3prUUpWO2VsRntyNX1FLTEoISZQOwoKbGl0ZXJhbCAwCkhj bVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2luZGV4ZXMvc3RhdGljL2ltZy9pbmRleC5wbmcgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvaW5kZXhlcy9zdGF0aWMvaW1nL2luZGV4LnBuZwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwLi5hMjM5YzEyNTEwOWNhOGQ3M2I2YWZhODQwYjU3 NDBhOGJiMDY5MzRlCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA1NjIKemNt ZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjM/d3lsYEdiTWYrVz87c1Mw TFRGYG8zWlBNYWBQaV41c1gyCno+bzRsbW8+aTxrQ1JWKGtKOHk/K3twRjQ9 UGZ0SnBjSC0mUnFtUkVGZURIYmktQV9BaWUleVRSe2tsdTxSLVN2YQp6PGth aGNtP1p6YEIpX09jcE5QYnJ3PzJBPUNBZnZleTlDRU0xOyNCbntfXkNydWc5 S3pKQG9MKXpJJmd4VHp8aioKel4xRF4lLXorYC1kY2xjVGJCQDA3aSVSbHxP IVNJSypsX3VzT0tga1hQQEY/Um9TbEV7ajY9XjRLbC14Jnted257CnpLV0BB NlZaKVZvdDFyQT1jSU5mTWxkdDk7ZUwzXmNeUWl9KGN9RkM4aDkkVSVDYikq Z0ZGKlVuRihBJn5LWCZIZgp6PVg+c2ErSjV1SHJtT0dRVVZPWGE/Mz19PlVk PW85YUBPRyYoKylnO2I4TXFCKDhHKStMNExzdTQkcDMrMFhkdW4KejkrQWFC KzU/UTtQRztLeTg4eDBSanYqNDRsTUB0fTQyJXBuRld9ZylYPThETDVfZj9q Z1pZZn1oWXoxVnVDSmg+CnpxTjgrKlJadXs5YGgrUXlyY0luV3h0JjhwTHJj P3A8JSg0K3Zvb0FuTTdDfXpUfmhrPjNvbFF2MEBFP0lXb2dnRQp6cmlFUUkr YXx5JFkrY1JudUFWTCkmTjA5N154MzxJRlEyfUJ7NXBTPEhuYUlFP0dwP1B2 JW0wI3NFYlRtNHxJb1cKemlFQmhqTkA3Vz5SZFBgKGtZWEAwRmZgQ0xHfTFM TjNeNmpXR0JMST9HMVdGT3dLNmM2X2ZCc1dpaVhfJGwrM2hCCmloejB7b3Vt KyVONkR0RVZoPXg8c0wpUVFgRm5HSDl4dlg8YVhhV0c1ZkIyKlQKCmxpdGVy YWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9pbmRleC9qcy9pbmRleC5qcyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9pbmRl eC9qcy9pbmRleC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi45OTRmOWMwCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2luZGV4ZXMvdGVtcGxhdGVzL2luZGV4L2pzL2luZGV4Lmpz CkBAIC0wLDAgKzEsMzYyIEBACitkZWZpbmUoCisgICAgICAgIFsnanF1ZXJ5 JywgJ3VuZGVyc2NvcmUnLCAndW5kZXJzY29yZS5zdHJpbmcnLCAncGdhZG1p bicsICdwZ2FkbWluLmJyb3dzZXInLAorICAgICAgICAnYmFja2Zvcm0nLCAn YWxlcnRpZnknLCAncGdhZG1pbi5icm93c2VyLmNvbGxlY3Rpb24nXSwKK2Z1 bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgQmFja2Zvcm0s IGFsZXJ0aWZ5KSB7CisKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwt aW5kZXgnXSkgeworICAgIHZhciBkYXRhYmFzZXMgPSBwZ0FkbWluLkJyb3dz ZXIuTm9kZXNbJ2NvbGwtaW5kZXgnXSA9CisgICAgICBwZ0FkbWluLkJyb3dz ZXIuQ29sbGVjdGlvbi5leHRlbmQoeworICAgICAgICBub2RlOiAnaW5kZXgn LAorICAgICAgICBsYWJlbDogJ3t7IF8oJ0luZGV4ZXMnKSB9fScsCisgICAg ICAgIHR5cGU6ICdjb2xsLWluZGV4JywKKyAgICAgICAgY29sdW1uczogWydu YW1lJywgJ29pZCcsICdkZXNjcmlwdGlvbiddCisgICAgICB9KTsKKyAgfTsK KworICAgIC8vIE1vZGVsIHRvIGNyZWF0ZSBjb2x1bW4gY29sbGVjdGlvbiBj b250cm9sCisgICAgdmFyIENvbHVtbk1vZGVsID0gcGdBZG1pbi5Ccm93c2Vy Lk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICAgICAgZGVmYXVsdHM6IHsKKyAg ICAgICAgICBjb2xuYW1lOiB1bmRlZmluZWQsCisgICAgICAgICAgY29sbHNw Y25hbWU6IHVuZGVmaW5lZCwKKyAgICAgICAgICBvcF9jbGFzczogdW5kZWZp bmVkLAorICAgICAgICAgIHNvcnRfb3JkZXI6IGZhbHNlLAorICAgICAgICAg IG51bGxzOiBmYWxzZQorICAgICAgICB9LAorICAgICAgICBzY2hlbWE6IFsK KyAgICAgICAgICB7CisgICAgICAgICAgICBpZDogJ2NvbG5hbWUnLCBsYWJl bDone3sgXygnQ29sdW1uJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAg ICAgICAgIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6ICdpblNjaGVtYScsIGVk aXRhYmxlOiBmYWxzZSwKKyAgICAgICAgICAgIGNvbnRyb2w6ICdub2RlLWxp c3QtYnktbmFtZScsIG5vZGU6ICdjb2x1bW4nCisgICAgICAgICAgfSx7Cisg ICAgICAgICAgICBpZDogJ2NvbGxzcGNuYW1lJywgbGFiZWw6J3t7IF8oJ0Nv bGxhdGlvbicpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgICB0 eXBlOiAndGV4dCcsIGRpc2FibGVkOiAnaW5TY2hlbWEnLCBlZGl0YWJsZTog ZmFsc2UsCisgICAgICAgICAgICBjb250cm9sOiAnbm9kZS1hamF4LW9wdGlv bnMnLCB1cmw6ICdnZXRfY29sbGF0aW9ucycsIG5vZGU6ICdpbmRleCcKKyAg ICAgICAgICB9LHsKKyAgICAgICAgICAgIGlkOiAnb3BfY2xhc3MnLCBsYWJl bDone3sgXygnT3BlcmF0b3IgY2xhc3MnKSB9fScsIGNlbGw6ICdzdHJpbmcn LAorICAgICAgICAgICAgdHlwZTogJ3RleHQnLCBkaXNhYmxlZDogJ2NoZWNr QWNjZXNzTWV0aG9kJywgZWRpdGFibGU6IGZhbHNlLAorICAgICAgICAgICAg Y29udHJvbDogJ25vZGUtYWpheC1vcHRpb25zJywgdXJsOiAnZ2V0X29wX2Ns YXNzJywgbm9kZTogJ2luZGV4JywKKyAgICAgICAgICAgIGRlcHM6IFsnYW1u YW1lJ10sIHRyYW5zZm9ybTogZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAg ICAgIC8qIFdlIG5lZWQgdG8gZXh0cmFjdCBkYXRhIGZyb20gY29sbGVjdGlv biBhY2NvcmRpbmcKKyAgICAgICAgICAgICAgKiB0byBhY2Nlc3MgbWV0aG9k IHNlbGVjdGVkIGJ5IHVzZXIgaWYgbm90IHNlbGVjdGVkCisgICAgICAgICAg ICAgICogc2VuZCBidHJlZSByZWxhdGVkIG9wX2NsYXNzIG9wdGlvbnMKKyAg ICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICB2YXIgYW1uYW1lID0gdGhp cy5tb2RlbC5oYW5kbGVyLmdldCgnYW1uYW1lJyksCisgICAgICAgICAgICAg ICAgIG9wdGlvbnMgPSBkYXRhWydidHJlZSddOworCisgICAgICAgICAgICAg aWYoXy5pc1VuZGVmaW5lZChhbW5hbWUpKQorICAgICAgICAgICAgICAgcmV0 dXJuIG9wdGlvbnM7CisKKyAgICAgICAgICAgICBfLmVhY2goZGF0YSwgZnVu Y3Rpb24odiwgaykgeworICAgICAgICAgICAgICAgIGlmKGFtbmFtZSA9PT0g aykgeworICAgICAgICAgICAgICAgICAgb3B0aW9ucyA9IHY7CisgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICBy ZXR1cm4gb3B0aW9uczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9LHsK KyAgICAgICAgICAgIGlkOiAnc29ydF9vcmRlcicsIGxhYmVsOid7eyBfKCdT b3J0IG9yZGVyJykgfX0nLCBjZWxsOiAnc3dpdGNoJywKKyAgICAgICAgICAg IHR5cGU6ICdzd2l0Y2gnLCBkaXNhYmxlZDogJ2NoZWNrQWNjZXNzTWV0aG9k JywgZWRpdGFibGU6IGZhbHNlLAorICAgICAgICAgICAgZGVwczogWydhbW5h bWUnXSwKKyAgICAgICAgICAgIG9wdGlvbnM6IHsKKyAgICAgICAgICAgICAn b25UZXh0JzogJ0RFU0MnLCAnb2ZmVGV4dCc6ICdBU0MnLAorICAgICAgICAg ICAgICdvbkNvbG9yJzogJ3N1Y2Nlc3MnLCAnb2ZmQ29sb3InOiAnZGVmYXVs dCcsCisgICAgICAgICAgICAgJ3NpemUnOiAnc21hbGwnCisgICAgICAgICAg ICB9CisgICAgICAgICAgfSx7CisgICAgICAgICAgICBpZDogJ251bGxzJywg bGFiZWw6J3t7IF8oJ05VTExzJykgfX0nLCBjZWxsOiAnc3dpdGNoJywKKyAg ICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBkaXNhYmxlZDogJ2NoZWNrQWNj ZXNzTWV0aG9kJywgZWRpdGFibGU6IGZhbHNlLAorICAgICAgICAgICAgZGVw czogWydhbW5hbWUnLCAnc29ydF9vcmRlciddLAorICAgICAgICAgICAgb3B0 aW9uczogeworICAgICAgICAgICAgICdvblRleHQnOiAnRklSU1QnLCAnb2Zm VGV4dCc6ICdMQVNUJywKKyAgICAgICAgICAgICAnb25Db2xvcic6ICdzdWNj ZXNzJywgJ29mZkNvbG9yJzogJ2RlZmF1bHQnLAorICAgICAgICAgICAgICdz aXplJzogJ3NtYWxsJworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAg ICAgICAgXSwKKyAgICAgICAgLy8gV2Ugd2lsbCBjaGVjayBpZiB3ZSBhcmUg dW5kZXIgc2NoZW1hIG5vZGUKKyAgICAgICAgaW5TY2hlbWE6IGZ1bmN0aW9u KCkgeworICAgICAgICAgIGlmKHRoaXMubm9kZV9pbmZvICYmICAnY2F0YWxv ZycgaW4gdGhpcy5ub2RlX2luZm8pIHsKKyAgICAgICAgICAgIHJldHVybiB0 cnVlOworICAgICAgICAgIH0KKyAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg ICAgICAgIH0sCisgICAgICAgIC8vIFdlIHdpbGwgY2hlY2sgaWYgd2UgYXJl IHVuZGVyIHNjaGVtYSBub2RlICYgaW4gJ2NyZWF0ZScgbW9kZQorICAgICAg ICBpblNjaGVtYVdpdGhNb2RlbENoZWNrOiBmdW5jdGlvbihtKSB7CisgICAg ICAgICAgaWYodGhpcy5ub2RlX2luZm8gJiYgICdzY2hlbWEnIGluIHRoaXMu bm9kZV9pbmZvKSB7CisgICAgICAgICAgICAvLyBXZSB3aWxsIGRpc2FibGUg Y29udHJvbCBpZiBpdCdzIGluICdlZGl0JyBtb2RlCisgICAgICAgICAgICBp ZiAobS5pc05ldygpKSB7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIHJldHVybiB0 cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBy ZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSwKKyAgICAgICAgLy8gV2Ugd2lsbCBj aGVjayBpZiB3ZSBhcmUgdW5kZXIgc2NoZW1hIG5vZGUgYW5kIGFkZGVkIGNv bmRpdGlvbgorICAgICAgICBjaGVja0FjY2Vzc01ldGhvZDogZnVuY3Rpb24o bSkgeworICAgICAgICAvL0FjY2VzcyBtZXRob2QgaXMgZW1wdHkgb3IgYnRy ZWUgdGhlbiBkbyBub3QgZGlzYWJsZSBmaWVsZAorICAgICAgICAgIHZhciBw YXJlbnRfbW9kZWwgPSBtLmhhbmRsZXI7CisgICAgICAgICAgaWYoIW0uaW5T Y2hlbWEuYXBwbHkodGhpcywgW21dKSAmJgorICAgICAgICAgICAgICAoXy5p c1VuZGVmaW5lZChwYXJlbnRfbW9kZWwuZ2V0KCdhbW5hbWUnKSkgfHwKKyAg ICAgICAgICAgICAgIF8uaXNOdWxsKHBhcmVudF9tb2RlbC5nZXQoJ2FtbmFt ZScpKSB8fAorICAgICAgICAgICAgICAgU3RyaW5nKHBhcmVudF9tb2RlbC5n ZXQoJ2FtbmFtZScpKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcn IHx8CisgICAgICAgICAgICAgICBwYXJlbnRfbW9kZWwuZ2V0KCdhbW5hbWUn KSA9PT0gJ2J0cmVlJykpIHsKKyAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8g c2V0IG51bGxzIHRvIHRydWUgaWYgc29ydF9vcmRlciBpcyBzZXQgdG8gZGVz YworICAgICAgICAgICAgLy8gbnVsbHMgZmlyc3QgaXMgZGVmYXVsdCBmb3Ig ZGVzYworICAgICAgICAgICAgaWYobS5nZXQoJ3NvcnRfb3JkZXInKSA9PSB0 cnVlKSB7CisgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg eyBtLnNldCgnbnVsbHMnLCB0cnVlKSB9LCAxMCk7CisgICAgICAgICAgICB9 IGVsc2UgeworICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigp IHsgbS5zZXQoJ251bGxzJywgZmFsc2UpIH0sIDEwKTsKKyAgICAgICAgICAg IH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICB9Cisg ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0sCisgICAgfSk7CisK KyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ2luZGV4J10pIHsKKyAgICBwZ0Fk bWluLkJyb3dzZXIuTm9kZXNbJ2luZGV4J10gPSBwZ0FkbWluLkJyb3dzZXIu Tm9kZS5leHRlbmQoeworICAgICAgcGFyZW50X3R5cGU6IFsndGFibGUnLCAn bWF0ZXJpYWxpemVkX3ZpZXcnXSwKKyAgICAgIGNvbGxlY3Rpb25fdHlwZTog Wydjb2xsLXRhYmxlJ10sCisgICAgICB0eXBlOiAnaW5kZXgnLAorICAgICAg bGFiZWw6ICd7eyBfKCdJbmRleCcpIH19JywKKyAgICAgIGhhc1NRTDogIHRy dWUsCisgICAgICBoYXNEZXBlbmRzOiB0cnVlLAorICAgICAgSW5pdDogZnVu Y3Rpb24oKSB7CisgICAgICAgIC8qIEF2b2lkIG11bGl0cGxlIHJlZ2lzdHJh dGlvbiBvZiBtZW51cyAqLworICAgICAgICBpZiAodGhpcy5pbml0aWFsaXpl ZCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLmluaXRp YWxpemVkID0gdHJ1ZTsKKworICAgICAgICBwZ0Jyb3dzZXIuYWRkX21lbnVz KFt7CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9pbmRleF9vbl9jb2xsJywg bm9kZTogJ2NvbGwtaW5kZXgnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAg YXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3No b3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3Jl YXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygnSW5kZXguLi4nKSB9 fScsCisgICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLWluZGV4Jywg ZGF0YToge2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNrOiB0cnVlfSwKKyAgICAg ICAgICBlbmFibGU6ICdjYW5DcmVhdGUnCisgICAgICAgIH0seworICAgICAg ICAgIG5hbWU6ICdjcmVhdGVfaW5kZXgnLCBub2RlOiAnaW5kZXgnLCBtb2R1 bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29u dGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAg ICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVs OiAne3sgXygnSW5kZXguLi4nKSB9fScsCisgICAgICAgICAgaWNvbjogJ3dj VGFiSWNvbiBpY29uLWluZGV4JywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScs IGNoZWNrOiB0cnVlfSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUn CisgICAgICAgIH0seworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfaW5kZXhf b25UYWJsZScsIG5vZGU6ICd0YWJsZScsIG1vZHVsZTogdGhpcywKKyAgICAg ICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNr OiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6 ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdJbmRleC4u LicpIH19JywKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24taW5k ZXgnLCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6IHRydWV9LAor ICAgICAgICAgIGVuYWJsZTogJ2NhbkNyZWF0ZScKKyAgICAgICAgfSx7Cisg ICAgICAgICAgbmFtZTogJ2NyZWF0ZV9pbmRleCcsIG5vZGU6ICdtYXRlcmlh bGl6ZWRfdmlldycsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVz OiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpf cHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBw cmlvcml0eTogNSwgbGFiZWw6ICd7eyBfKCdJbmRleC4uLicpIH19JywKKyAg ICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24taW5kZXgnLCBkYXRhOiB7 YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6IHRydWV9LAorICAgICAgICAgIGVu YWJsZTogJ2NhbkNyZWF0ZScKKyAgICAgICAgfQorICAgICAgICBdKTsKKyAg ICAgIH0sCisgICAgICBjYW5Ecm9wOiBwZ0Jyb3dzZXIuTm9kZXNbJ3NjaGVt YSddLmNhbkNoaWxkRHJvcCwKKyAgICAgIGNhbkRyb3BDYXNjYWRlOiBwZ0Jy b3dzZXIuTm9kZXNbJ3NjaGVtYSddLmNhbkNoaWxkRHJvcCwKKyAgICAgIG1v ZGVsOiBwZ0FkbWluLkJyb3dzZXIuTm9kZS5Nb2RlbC5leHRlbmQoeworICAg ICAgICBkZWZhdWx0czogeworICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCwK KyAgICAgICAgICBuc3BuYW1lOiB1bmRlZmluZWQsCisgICAgICAgICAgdGFi bmFtZTogdW5kZWZpbmVkLAorICAgICAgICAgIHNwY25hbWU6IHVuZGVmaW5l ZAorICAgICAgICB9LAorICAgICAgICBzY2hlbWE6IFt7CisgICAgICAgICAg aWQ6ICduYW1lJywgbGFiZWw6ICd7eyBfKCdOYW1lJykgfX0nLCBjZWxsOiAn c3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIGRpc2FibGVkOiAn aW5TY2hlbWEnCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnb2lkJywg bGFiZWw6J3t7IF8oJ09JRCcpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAg ICAgICAgdHlwZTogJ2ludCcsIGRpc2FibGVkOiB0cnVlLCBtb2RlOiBbJ2Vk aXQnLCAncHJvcGVydGllcyddCisgICAgICAgIH0seworICAgICAgICAgIGlk OiAnc3BjbmFtZScsIGxhYmVsOid7eyBfKCdUYWJsZXNwYWNlJykgfX0nLCBj ZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICBjb250cm9sOiAnbm9kZS1saXN0 LWJ5LW5hbWUnLCBub2RlOiAndGFibGVzcGFjZScsCisgICAgICAgICAgdHlw ZTogJ3RleHQnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnY3JlYXRlJywgJ2Vk aXQnXSwKKyAgICAgICAgICBkaXNhYmxlZDogJ2luU2NoZW1hJywgZmlsdGVy OiBmdW5jdGlvbihkKSB7CisgICAgICAgICAgICAvLyBJZiB0YWJsZXNwYWNl IG5hbWUgaXMgbm90ICJwZ19nbG9iYWwiIHRoZW4gd2UgbmVlZCB0byBleGNs dWRlIHRoZW0KKyAgICAgICAgICAgIGlmKGQgJiYgZC5sYWJlbC5tYXRjaCgv cGdfZ2xvYmFsLykpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIHJl dHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVy biB0cnVlOworICAgICAgICAgIH0KKyAgICAgICAgfSx7CisgICAgICAgICAg aWQ6ICdhbW5hbWUnLCBsYWJlbDone3sgXygnQWNjZXNzIE1ldGhvZCcpIH19 JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBt b2RlOiBbJ3Byb3BlcnRpZXMnLCAnY3JlYXRlJywgJ2VkaXQnXSwKKyAgICAg ICAgICBkaXNhYmxlZDogJ2luU2NoZW1hV2l0aE1vZGVsQ2hlY2snLCB1cmw6 ICdnZXRfYWNjZXNzX21ldGhvZHMnLAorICAgICAgICAgIGdyb3VwOiAne3sg XygnRGVmaW5pdGlvbicpIH19JywKKyAgICAgICAgICBjb250cm9sOiBCYWNr Zm9ybS5Ob2RlQWpheE9wdGlvbnNDb250cm9sLmV4dGVuZCh7CisgICAgICAg ICAgICAgIC8vIFdoZW4gYWNjZXNzIG1ldGhvZCBjaGFuZ2VzIHdlIG5lZWQg dG8gY2xlYXIgY29sdW1ucyBjb2xsZWN0aW9uCisgICAgICAgICAgICAgIG9u Q2hhbmdlOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBCYWNrZm9y bS5Ob2RlQWpheE9wdGlvbnNDb250cm9sLnByb3RvdHlwZS5vbkNoYW5nZS5h cHBseSh0aGlzLCBhcmd1bWVudHMpOworICAgICAgICAgICAgICAgIHZhciBz ZWxmID0gdGhpcywKKyAgICAgICAgICAgICAgICAvLyBjdXJyZW50IGFjY2Vz cyBtZXRob2QKKyAgICAgICAgICAgICAgICBjdXJyZW50X2FtID0gc2VsZi5t b2RlbC5nZXQoJ2FtbmFtZScpLAorICAgICAgICAgICAgICAgIC8vIHByZXZp b3VzIGFjY2VzcyBtZXRob2QKKyAgICAgICAgICAgICAgICBwcmV2aW91c19h bSA9IHNlbGYubW9kZWwucHJldmlvdXMoJ2FtbmFtZScpOworICAgICAgICAg ICAgICAgIGlmICghXy5pc1VuZGVmaW5lZChjdXJyZW50X2FtKSAmJgorICAg ICAgICAgICAgICAgICAgIChjdXJyZW50X2FtICE9ICdidHJlZScgfHwgY3Vy cmVudF9hbSAhPSAnJykpIHsKKyAgICAgICAgICAgICAgICAgIHZhciBtc2cg PSAne3sgXygnQ2hhbmdpbmcgYWNjZXNzIG1ldGhvZCB3aWxsIGNsZWFyIGNv bHVtbnMgY29sbGVjdGlvbicpIH19JzsKKyAgICAgICAgICAgICAgICAgIGFs ZXJ0aWZ5LmNvbmZpcm0obXNnLCBmdW5jdGlvbiAoZSkgeworICAgICAgICAg ICAgICAgICAgICBpZiAoZSkgeworICAgICAgICAgICAgICAgICAgICAgIC8v IFVzZXIgY2xpY2tzIE9rLCBsZXRzIGNsZWFyIGNvbGxlY3Rpb24KKyAgICAg ICAgICAgICAgICAgICAgICB2YXIgY29sdW1uX2NvbGxlY3Rpb24gPSBzZWxm Lm1vZGVsLmdldCgnY29sdW1ucycpOworICAgICAgICAgICAgICAgICAgICAg IGNvbHVtbl9jb2xsZWN0aW9uLnJlc2V0KCk7CisgICAgICAgICAgICAgICAg ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHBy ZXZpb3VzIHZhbHVlIGFnYWluIGluIGNvbWJvIGJveAorICAgICAgICAgICAg ICAgICAgICAgIHNlbGYubW9kZWwuc2V0KCdhbW5hbWUnLCBwcmV2aW91c19h bSwgeyBzaWxlbnQ6IHRydWUgfSk7CisgICAgICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgfSkKKyAgICAgICAgfSx7Cisg ICAgICAgICAgaWQ6ICdjb2xzJywgbGFiZWw6J3t7IF8oJ0NvbHVtbnMnKSB9 fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0Jywg ZGlzYWJsZWQ6ICdpblNjaGVtYScsIG1vZGU6IFsncHJvcGVydGllcyddCisg ICAgICAgIH0seworICAgICAgICAgIGlkOiAnZmlsbGZhY3RvcicsIGxhYmVs Oid7eyBfKCdGaWxsIGZhY3RvcicpIH19JywgY2VsbDogJ3N0cmluZycsCisg ICAgICAgICAgdHlwZTogJ2ludCcsIGRpc2FibGVkOiAnaW5TY2hlbWEnLCBt b2RlOiBbJ2NyZWF0ZScsICdlZGl0JywgJ3Byb3BlcnRpZXMnXSwKKyAgICAg ICAgICBtaW46IDEwLCBtYXg6MTAwLCBncm91cDogJ3t7IF8oJ0RlZmluaXRp b24nKSB9fScKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdpbmRpc3Vu aXF1ZScsIGxhYmVsOid7eyBfKCdVbmlxdWU/JykgfX0nLCBjZWxsOiAnc3Ry aW5nJywKKyAgICAgICAgICB0eXBlOiAnc3dpdGNoJywgZGlzYWJsZWQ6ICdp blNjaGVtYVdpdGhNb2RlbENoZWNrJywKKyAgICAgICAgICBncm91cDogJ3t7 IF8oJ0RlZmluaXRpb24nKSB9fScKKyAgICAgICAgfSx7CisgICAgICAgICAg aWQ6ICdpbmRpc2NsdXN0ZXJlZCcsIGxhYmVsOid7eyBfKCdDbHVzdGVyZWQ/ JykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAnc3dp dGNoJywgZGlzYWJsZWQ6ICdpblNjaGVtYScsCisgICAgICAgICAgZ3JvdXA6 ICd7eyBfKCdEZWZpbml0aW9uJykgfX0nCisgICAgICAgIH0seworICAgICAg ICAgIGlkOiAnaW5kaXN2YWxpZCcsIGxhYmVsOid7eyBfKCdWYWxpZD8nKSB9 fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICdzd2l0Y2gn LCBkaXNhYmxlZDogdHJ1ZSwgbW9kZTogWydwcm9wZXJ0aWVzJ10KKyAgICAg ICAgfSx7CisgICAgICAgICAgaWQ6ICdpbmRpc3ByaW1hcnknLCBsYWJlbDon e3sgXygnUHJpbWFyeT8nKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAg ICAgIHR5cGU6ICdzd2l0Y2gnLCBkaXNhYmxlZDogdHJ1ZSwgbW9kZTogWydw cm9wZXJ0aWVzJ10KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdpc19z eXNfaWR4JywgbGFiZWw6J3t7IF8oJ1N5c3RlbSBpbmRleD8nKSB9fScsIGNl bGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBkaXNh YmxlZDogdHJ1ZSwgbW9kZTogWydwcm9wZXJ0aWVzJ10KKyAgICAgICAgfSx7 CisgICAgICAgICAgaWQ6ICdpc2NvbmN1cnJlbnQnLCBsYWJlbDone3sgXygn Q29uY3VycmVudCBidWlsZD8nKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAg ICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBkaXNhYmxlZDogJ2luU2NoZW1hV2l0 aE1vZGVsQ2hlY2snLAorICAgICAgICAgIG1vZGU6IFsnY3JlYXRlJywgJ2Vk aXQnXSwgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0nCisgICAgICAg IH0seworICAgICAgICAgIGlkOiAnaW5kY29uc3RyYWludCcsIGxhYmVsOid7 eyBfKCdDb25zdHJhaW50JykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAg ICAgICB0eXBlOiAndGV4dCcsIGRpc2FibGVkOiAnaW5TY2hlbWFXaXRoTW9k ZWxDaGVjaycsIG1vZGU6IFsnY3JlYXRlJywgJ2VkaXQnXSwKKyAgICAgICAg ICBjb250cm9sOiAnc3FsLWZpZWxkJywgdmlzaWJsZTogdHJ1ZSwgZ3JvdXA6 ICd7eyBfKCdEZWZpbml0aW9uJykgfX0nCisgICAgICAgIH0seworICAgICAg ICAgIGlkOiAnY29sdW1ucycsIGxhYmVsOiAnQ29sdW1ucycsIHR5cGU6ICdj b2xsZWN0aW9uJywKKyAgICAgICAgICBncm91cDogJ3t7IF8oJ0RlZmluaXRp b24nKSB9fScsIG1vZGVsOiBDb2x1bW5Nb2RlbCwgbW9kZTogWydlZGl0Jywg J2NyZWF0ZSddLAorICAgICAgICAgIGNhbkFkZDogZnVuY3Rpb24obSkgewor ICAgICAgICAgICAgLy8gV2Ugd2lsbCBkaXNhYmxlIGl0IGlmIGl0J3MgaW4g J2VkaXQnIG1vZGUKKyAgICAgICAgICAgIGlmIChtLmlzTmV3KCkpIHsKKyAg ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9IGVsc2Ug eworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9 CisgICAgICAgICAgfSwKKyAgICAgICAgICBjYW5FZGl0OiBmdW5jdGlvbiht KSB7CisgICAgICAgICAgICAvLyBXZSB3aWxsIGRpc2FibGUgaXQgaWYgaXQn cyBpbiAnZWRpdCcgbW9kZQorICAgICAgICAgICAgaWYgKG0uaXNOZXcoKSkg eworICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0g ZWxzZSB7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg ICAgIH0KKyAgICAgICAgICB9LAorICAgICAgICAgIGNhbkRlbGV0ZTogZnVu Y3Rpb24obSkgeworICAgICAgICAgICAgLy8gV2Ugd2lsbCBkaXNhYmxlIGl0 IGlmIGl0J3MgaW4gJ2VkaXQnIG1vZGUKKyAgICAgICAgICAgIGlmIChtLmlz TmV3KCkpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg ICAgICAgICAgICB9CisgICAgICAgICAgfSwKKyAgICAgICAgICBjb250cm9s OiAndW5pcXVlLWNvbC1jb2xsZWN0aW9uJywgdW5pcXVlQ29sIDogWydjb2xu YW1lJ10KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdkZXNjcmlwdGlv bicsIGxhYmVsOid7eyBfKCdDb21tZW50JykgfX0nLCBjZWxsOiAnc3RyaW5n JywKKyAgICAgICAgICB0eXBlOiAnbXVsdGlsaW5lJywgbW9kZTogWydwcm9w ZXJ0aWVzJywgJ2NyZWF0ZScsICdlZGl0J10sCisgICAgICAgICAgZGlzYWJs ZWQ6ICdpblNjaGVtYScKKyAgICAgICAgfQorICAgICAgICBdLAorICAgICAg ICB2YWxpZGF0ZTogZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIGVyciA9 IHt9LAorICAgICAgICAgICAgICBjaGFuZ2VkQXR0cnMgPSB0aGlzLmNoYW5n ZWQsCisgICAgICAgICAgICAgIG1zZyA9IHVuZGVmaW5lZDsKKyAgICAgICAg ICB0aGlzLmVycm9yTW9kZWwuY2xlYXIoKTsKKworICAgICAgICAgIGlmIChf LmhhcyhjaGFuZ2VkQXR0cnMsdGhpcy5nZXQoJ25hbWUnKSkKKyAgICAgICAg ICAgICAgICAgICAgJiYgXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgnbmFtZScp KQorICAgICAgICAgICAgICB8fCBTdHJpbmcodGhpcy5nZXQoJ25hbWUnKSku cmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAg ICAgbXNnID0gJ3t7IF8oJ05hbWUgY2FuIG5vdCBiZSBlbXB0eSEnKSB9fSc7 CisgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCduYW1lJywgbXNn KTsKKyAgICAgICAgICAgIHJldHVybiBtc2c7CisgICAgICAgICAgICB9Cisg ICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfSwKKyAgICAgICAg Ly8gV2Ugd2lsbCBjaGVjayBpZiB3ZSBhcmUgdW5kZXIgc2NoZW1hIG5vZGUg JiBpbiAnY3JlYXRlJyBtb2RlCisgICAgICAgIGluU2NoZW1hOiBmdW5jdGlv bigpIHsKKyAgICAgICAgICBpZih0aGlzLm5vZGVfaW5mbyAmJiAgJ2NhdGFs b2cnIGluIHRoaXMubm9kZV9pbmZvKSB7CisgICAgICAgICAgICByZXR1cm4g dHJ1ZTsKKyAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIGZhbHNlOwor ICAgICAgICB9LAorICAgICAgICAvLyBXZSB3aWxsIGNoZWNrIGlmIHdlIGFy ZSB1bmRlciBzY2hlbWEgbm9kZSAmIGluICdjcmVhdGUnIG1vZGUKKyAgICAg ICAgaW5TY2hlbWFXaXRoTW9kZWxDaGVjazogZnVuY3Rpb24obSkgeworICAg ICAgICAgIGlmKHRoaXMubm9kZV9pbmZvICYmICAnc2NoZW1hJyBpbiB0aGlz Lm5vZGVfaW5mbykgeworICAgICAgICAgICAgLy8gV2Ugd2lsbCBkaXNhYmxl IGNvbnRyb2wgaWYgaXQncyBpbiAnZWRpdCcgbW9kZQorICAgICAgICAgICAg aWYgKG0uaXNOZXcoKSkgeworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7 CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICByZXR1cm4g dHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAg cmV0dXJuIHRydWU7CisgICAgICAgIH0sCisgICAgICAgIC8vIENoZWNrcyB3 ZWF0aGVyIHRvIGVuYWJsZS9kaXNhYmxlIGNvbnRyb2wKKyAgICAgICAgaW5T Y2hlbWFXaXRoQ29sdW1uQ2hlY2s6IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAg ICBpZih0aGlzLm5vZGVfaW5mbyAmJiAgJ3NjaGVtYScgaW4gdGhpcy5ub2Rl X2luZm8pIHsKKyAgICAgICAgICAgIC8vIFdlIHdpbGwgZGlzYWJsZSBjb250 cm9sIGlmIGl0J3Mgc3lzdGVtIGNvbHVtbnMKKyAgICAgICAgICAgIC8vIGll OiBpdCdzIHBvc2l0aW9uIGlzIGxlc3MgdGhlbiAxCisgICAgICAgICAgICBp ZiAobS5pc05ldygpKSB7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIC8vIGlmIHdl IGFyZSBpbiBlZGl0IG1vZGUKKyAgICAgICAgICAgICAgaWYgKCFfLmlzVW5k ZWZpbmVkKG0uZ2V0KCdhdHRudW0nKSkgJiYgbS5nZXQoJ2F0dG51bScpID49 IDEgKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVl OworICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0KKyAgICAgICAgICB9 CisgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgIH0p LAorICAgICAgLy8gQmVsb3cgZnVuY3Rpb24gd2lsbCBlbmFibGUgcmlnaHQg Y2xpY2sgbWVudSBmb3IgY3JlYXRpbmcgY29sdW1uCisgICAgICBjYW5DcmVh dGU6IGZ1bmN0aW9uKGl0ZW1EYXRhLCBpdGVtLCBkYXRhKSB7CisgICAgICAg ICAgLy8gSWYgY2hlY2sgaXMgZmFsc2UgdGhlbiAsIHdlIHdpbGwgYWxsb3cg Y3JlYXRlIG1lbnUKKyAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLmNoZWNr ID09IGZhbHNlKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAg ICAgICB2YXIgdCA9IHBnQnJvd3Nlci50cmVlLCBpID0gaXRlbSwgZCA9IGl0 ZW1EYXRhLCBwYXJlbnRzID0gW107CisgICAgICAgICAgLy8gVG8gaXRlcmF0 ZSBvdmVyIHRyZWUgdG8gY2hlY2sgcGFyZW50IG5vZGUKKyAgICAgICAgICB3 aGlsZSAoaSkgeworICAgICAgICAgICAgLy8gSWYgaXQgaXMgc2NoZW1hIHRo ZW4gYWxsb3cgdXNlciB0byBjIHJlYXRlIHRhYmxlCisgICAgICAgICAgICBp ZiAoXy5pbmRleE9mKFsnc2NoZW1hJ10sIGQuX3R5cGUpID4gLTEpCisgICAg ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgcGFyZW50cy5w dXNoKGQuX3R5cGUpOworICAgICAgICAgICAgaSA9IHQuaGFzUGFyZW50KGkp ID8gdC5wYXJlbnQoaSkgOiBudWxsOworICAgICAgICAgICAgZCA9IGkgPyB0 Lml0ZW1EYXRhKGkpIDogbnVsbDsKKyAgICAgICAgICB9CisgICAgICAgICAg Ly8gSWYgbm9kZSBpcyB1bmRlciBjYXRhbG9nIHRoZW4gZG8gbm90IGFsbG93 ICdjcmVhdGUnIG1lbnUKKyAgICAgICAgICBpZiAoXy5pbmRleE9mKHBhcmVu dHMsICdjYXRhbG9nJykgPiAtMSkgeworICAgICAgICAgICAgcmV0dXJuIGZh bHNlOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4g dHJ1ZTsKKyAgICAgICAgICB9CisgICAgICB9CisgIH0pOworIH0KKworICBy ZXR1cm4gcGdCcm93c2VyLk5vZGVzWydpbmRleCddOworfSk7CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZW1wbGF0ZXMv aW5kZXgvc3FsLzkuMV9wbHVzL2FsdGVyLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9pbmRleC9zcWwvOS4xX3BsdXMv YWx0ZXIuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjkzZjMyM2UKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvaW5kZXhlcy90ZW1wbGF0ZXMvaW5kZXgvc3FsLzkuMV9wbHVzL2Fs dGVyLnNxbApAQCAtMCwwICsxLDkgQEAKK3sjIyBBbHRlciBpbmRleCB0byB1 c2UgY2x1c3RlciB0eXBlICMjfQoreyUgaWYgZGF0YS5pbmRpc2NsdXN0ZXJl ZCAlfQorQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEs IGRhdGEudGFibGUpfX0KKyAgICBDTFVTVEVSIE9OIHt7Y29ubnxxdElkZW50 KGRhdGEubmFtZSl9fTsKK3slIGVuZGlmICV9Cit7IyMgQ2hhbmdlcyBkZXNj cmlwdGlvbiAjI30KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KK0NPTU1F TlQgT04gSU5ERVgge3tjb25ufHF0SWRlbnQoZGF0YS5uYW1lKX19CisgICAg SVMge3tkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbH19O3slIGVuZGlmICV9 ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVtcGxhdGVzL2luZGV4L3Nx bC85LjFfcGx1cy9iYWNrZW5kX3N1cHBvcnQuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2luZGV4ZXMvdGVtcGxhdGVzL2luZGV4L3NxbC85LjFfcGx1 cy9iYWNrZW5kX3N1cHBvcnQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjZmNjZlZDEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZW1wbGF0ZXMvaW5kZXgvc3Fs LzkuMV9wbHVzL2JhY2tlbmRfc3VwcG9ydC5zcWwKQEAgLTAsMCArMSw5IEBA Cit7Iz09PT09PT09PT09PT1DaGVja3MgaWYgaXQgaXMgbWF0ZXJpYWxpemVk IHZpZXc9PT09PT09PSN9Cit7JSBpZiB2aWQgJX0KK1NFTEVDVAorICAgIENB U0UgV0hFTiBjLnJlbGtpbmQgPSAnbScgVEhFTiBUcnVlIEVMU0UgRmFsc2Ug RU5EIEFzIG1fdmlldworRlJPTQorICAgIHBnX2NsYXNzIGMKK1dIRVJFCisg ICAgYy5vaWQgPSB7eyB2aWQgfX06Om9pZAoreyUgZW5kaWYgJX0KZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRl cy9pbmRleC9zcWwvOS4xX3BsdXMvY29sdW1uX2RldGFpbHMuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVtcGxhdGVzL2luZGV4L3Nx bC85LjFfcGx1cy9jb2x1bW5fZGV0YWlscy5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMmNmNTQwYQotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9p bmRleC9zcWwvOS4xX3BsdXMvY29sdW1uX2RldGFpbHMuc3FsCkBAIC0wLDAg KzEsMzAgQEAKK1NFTEVDVAorICAgIGkuaW5kZXhyZWxpZCwKKyAgICBDQVNF IGkuaW5kb3B0aW9uW2kuYXR0bnVtIC0gMV0KKyAgICBXSEVOIDAgVEhFTiBB UlJBWVsnQVNDJywgJ05VTExTIExBU1QnXQorICAgIFdIRU4gMSBUSEVOIEFS UkFZWydERVNDJywgJ05VTExTIEZJUlNUJ10KKyAgICBXSEVOIDIgVEhFTiBB UlJBWVsnQVNDJywgJ05VTExTIEZJUlNUJ10KKyAgICBXSEVOIDMgVEhFTiBB UlJBWVsnREVTQycsICdOVUxMUyAgJ10KKyAgICBFTFNFIEFSUkFZWydVTktO T1dOIE9QVElPTicgfHwgaS5pbmRvcHRpb25baS5hdHRudW0gLSAxXSwgJydd CisgICAgRU5EOjp0ZXh0W10gQVMgb3B0aW9ucywKKyAgICBpLmF0dG51bSwK KyAgICBwZ19nZXRfaW5kZXhkZWYoaS5pbmRleHJlbGlkLCBpLmF0dG51bSwg dHJ1ZSkgYXMgYXR0ZGVmLAorICAgIENBU0UgV0hFTiAoby5vcGNkZWZhdWx0 ID0gRkFMU0UpIFRIRU4gby5vcGNuYW1lIEVMU0UgbnVsbCBFTkQgQVMgb3Bj bmFtZSwKKyAgICBvcC5vcHJuYW1lIEFTIG9wcm5hbWUsCisJQ0FTRSBXSEVO IGxlbmd0aChuc3BjLm5zcG5hbWUpID4gMCBBTkQgbGVuZ3RoKGNvbGwuY29s bG5hbWUpID4gMCAgVEhFTgorCSAgY29uY2F0KHF1b3RlX2lkZW50KG5zcGMu bnNwbmFtZSksICcuJywgcXVvdGVfaWRlbnQoY29sbC5jb2xsbmFtZSkpCisJ RUxTRSAnJyBFTkQgQVMgY29sbG5zcG5hbWUKK0ZST00gKAorICAgICAgU0VM RUNUCisgICAgICAgICAgaW5kZXhyZWxpZCwgaS5pbmRvcHRpb24sIGkuaW5k Y2xhc3MsCisgICAgICAgICAgdW5uZXN0KEFSUkFZKFNFTEVDVCBnZW5lcmF0 ZV9zZXJpZXMoMSwgaS5pbmRuYXR0cykgQVMgbikpIEFTIGF0dG51bQorICAg ICAgRlJPTQorICAgICAgICAgIHBnX2luZGV4IGkKKyAgICAgIFdIRVJFIGku aW5kZXhyZWxpZCA9IHt7aWR4fX06Ok9JRAorKSBpCisgICAgTEVGVCBKT0lO IHBnX29wY2xhc3MgbyBPTiAoby5vaWQgPSBpLmluZGNsYXNzW2kuYXR0bnVt IC0gMV0pCisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX2NvbnN0cmFpbnQgYyBP TiAoYy5jb25pbmRpZCA9IGkuaW5kZXhyZWxpZCkKKyAgICBMRUZUIE9VVEVS IEpPSU4gcGdfb3BlcmF0b3Igb3AgT04gKG9wLm9pZCA9IGMuY29uZXhjbG9w W2kuYXR0bnVtXSkKKyAgICBMRUZUIEpPSU4gcGdfYXR0cmlidXRlIGEgT04g KGEuYXR0cmVsaWQgPSBpLmluZGV4cmVsaWQgQU5EIGEuYXR0bnVtID0gaS5h dHRudW0pCisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX2NvbGxhdGlvbiBjb2xs IE9OIGEuYXR0Y29sbGF0aW9uPWNvbGwub2lkCisgICAgTEVGVCBPVVRFUiBK T0lOIHBnX25hbWVzcGFjZSBuc3BjIE9OIGNvbGwuY29sbG5hbWVzcGFjZT1u c3BjLm9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9p bmRleGVzL3RlbXBsYXRlcy9pbmRleC9zcWwvOS4xX3BsdXMvY3JlYXRlLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9p bmRleC9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi40NDcxYTg0Ci0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVtcGxhdGVzL2lu ZGV4L3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsMTIgQEAK K0NSRUFURSB7JSBpZiBkYXRhLmluZGlzdW5pcXVlICV9VU5JUVVFIHslIGVu ZGlmICV9SU5ERVggeyUgaWYgZGF0YS5pc2NvbmN1cnJlbnQgJX1DT05DVVJS RU5UTFkgeyUgZW5kaWYgJX17e2Nvbm58cXRJZGVudChkYXRhLm5hbWUpfX0K KyAgICBPTiB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJs ZSl9fSB7JSBpZiBkYXRhLmFtbmFtZSAlfVVTSU5HIHt7Y29ubnxxdElkZW50 KGRhdGEuYW1uYW1lKX19eyUgZW5kaWYgJX0KKworICAgICh7JSBmb3IgYyBp biBkYXRhLmNvbHVtbnMgJX17JSBpZiBsb29wLmluZGV4ICE9IDEgJX0sIHsl IGVuZGlmICV9e3tjb25ufHF0SWRlbnQoYy5jb2xuYW1lKX19eyUgaWYgYy5j b2xsc3BjbmFtZSAlfSBDT0xMQVRFIHt7Yy5jb2xsc3BjbmFtZX19IHslIGVu ZGlmICV9eyUgaWYgYy5vcF9jbGFzcyAlfQore3tjLm9wX2NsYXNzfX17JSBl bmRpZiAlfXslIGlmIGMuc29ydF9vcmRlciBpcyBkZWZpbmVkICV9eyUgaWYg Yy5zb3J0X29yZGVyICV9IERFU0N7JSBlbHNlICV9IEFTQ3slIGVuZGlmICV9 eyUgZW5kaWYgJX17JSBpZiBjLm51bGxzIGlzIGRlZmluZWQgJX0gTlVMTFMg eyUgaWYgYy5udWxscyAlfQorRklSU1R7JSBlbHNlICV9TEFTVHslIGVuZGlm ICV9eyUgZW5kaWYgJX17JSBlbmRmb3IgJX0peyUgaWYgZGF0YS5maWxsZmFj dG9yICV9CisKKyAgICBXSVRIIChGSUxMRkFDVE9SPXt7ZGF0YS5maWxsZmFj dG9yfX0peyUgZW5kaWYgJX17JSBpZiBkYXRhLnNwY25hbWUgJX0KKworICAg IFRBQkxFU1BBQ0Uge3tkYXRhLnNwY25hbWV9fXslIGVuZGlmICV9eyUgaWYg ZGF0YS5pbmRjb25zdHJhaW50ICV9CisKKyAgICBXSEVSRSB7e2RhdGEuaW5k Y29uc3RyYWludH19eyUgZW5kaWYgJX07CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZW1wbGF0ZXMvaW5kZXgvc3FsLzku MV9wbHVzL2RlbGV0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5k ZXhlcy90ZW1wbGF0ZXMvaW5kZXgvc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjM4MDhmYQot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRl eGVzL3RlbXBsYXRlcy9pbmRleC9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApA QCAtMCwwICsxIEBACitEUk9QIElOREVYIHt7Y29ubnxxdElkZW50KGRhdGEu bnNwbmFtZSwgZGF0YS5uYW1lKX19eyUgaWYgY2FzY2FkZSAlfSBjYXNjYWRl eyUgZW5kaWYgJX07ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVtcGxh dGVzL2luZGV4L3NxbC85LjFfcGx1cy9nZXRfYW0uc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL2luZGV4ZXMvdGVtcGxhdGVzL2luZGV4L3NxbC85LjFf cGx1cy9nZXRfYW0uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjViYjU3OWIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvaW5kZXhlcy90ZW1wbGF0ZXMvaW5kZXgvc3FsLzkuMV9w bHVzL2dldF9hbS5zcWwKQEAgLTAsMCArMSwzIEBACistLSBGZXRjaGVzIGFj Y2VzcyBtZXRob2RzCitTRUxFQ1Qgb2lkLCBhbW5hbWUKK0ZST00gcGdfYW0K XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZW1wbGF0ZXMvaW5kZXgvc3Fs LzkuMV9wbHVzL2dldF9jb2xsYXRpb25zLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9pbmRleC9zcWwvOS4xX3BsdXMv Z2V0X2NvbGxhdGlvbnMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjlmNTU2OWQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZW1wbGF0ZXMvaW5kZXgvc3FsLzku MV9wbHVzL2dldF9jb2xsYXRpb25zLnNxbApAQCAtMCwwICsxLDEyIEBACitT RUxFQ1QgLS1uc3BuYW1lLCBjb2xsbmFtZSwKKyAgICBDQVNFIFdIRU4gbGVu Z3RoKG5zcG5hbWUpID4gMCBBTkQgbGVuZ3RoKGNvbGxuYW1lKSA+IDAgIFRI RU4KKyAgICBjb25jYXQocXVvdGVfaWRlbnQobnNwbmFtZSksICcuJywgcXVv dGVfaWRlbnQoY29sbG5hbWUpKQorICAgIEVMU0UgJycgRU5EIEFTIGNvbGxh dGlvbgorRlJPTQorICAgIHBnX2NvbGxhdGlvbiBjLAorICAgIHBnX25hbWVz cGFjZSBuCitXSEVSRQorICAgIGMuY29sbG5hbWVzcGFjZT1uLm9pZAorT1JE RVIgQlkKKyAgICBuc3BuYW1lLAorICAgIGNvbGxuYW1lOwpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVtcGxhdGVzL2lu ZGV4L3NxbC85LjFfcGx1cy9nZXRfb2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9pbmRleC9zcWwvOS4xX3BsdXMv Z2V0X29pZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uYzMyNDAyZgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9pbmRleC9zcWwvOS4xX3BsdXMv Z2V0X29pZC5zcWwKQEAgLTAsMCArMSw3IEBACitTRUxFQ1QgRElTVElOQ1Qg T04oY2xzLnJlbG5hbWUpIGNscy5vaWQKK0ZST00gcGdfaW5kZXggaWR4Cisg ICAgSk9JTiBwZ19jbGFzcyBjbHMgT04gY2xzLm9pZD1pbmRleHJlbGlkCisg ICAgSk9JTiBwZ19jbGFzcyB0YWIgT04gdGFiLm9pZD1pbmRyZWxpZAorICAg IEpPSU4gcGdfbmFtZXNwYWNlIG4gT04gbi5vaWQ9dGFiLnJlbG5hbWVzcGFj ZQorV0hFUkUgaW5kcmVsaWQgPSB7e3RpZH19OjpPSUQKKyAgICBBTkQgY2xz LnJlbG5hbWUgPSB7e2RhdGEubmFtZXxxdExpdGVyYWx9fTsKXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvaW5kZXhlcy90ZW1wbGF0ZXMvaW5kZXgvc3FsLzkuMV9wbHVz L2dldF9vcF9jbGFzcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5k ZXhlcy90ZW1wbGF0ZXMvaW5kZXgvc3FsLzkuMV9wbHVzL2dldF9vcF9jbGFz cy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWYw MTMzYQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy9pbmRleGVzL3RlbXBsYXRlcy9pbmRleC9zcWwvOS4xX3BsdXMvZ2V0X29w X2NsYXNzLnNxbApAQCAtMCwwICsxLDUgQEAKK1NFTEVDVCBvcGNuYW1lLCAg b3BjbWV0aG9kCitGUk9NIHBnX29wY2xhc3MKKyAgICBXSEVSRSBvcGNtZXRo b2QgPSB7e29pZH19OjpPSUQKKyAgICBBTkQgTk9UIG9wY2RlZmF1bHQKKyAg ICBPUkRFUiBCWSAxOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBs YXRlcy9pbmRleC9zcWwvOS4xX3BsdXMvZ2V0X3BhcmVudC5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZW1wbGF0ZXMvaW5kZXgvc3Fs LzkuMV9wbHVzL2dldF9wYXJlbnQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjVkZDVkM2MKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZW1wbGF0ZXMvaW5kZXgv c3FsLzkuMV9wbHVzL2dldF9wYXJlbnQuc3FsCkBAIC0wLDAgKzEsNSBAQAor U0VMRUNUIG5zcC5uc3BuYW1lIEFTIHNjaGVtYSAscmVsLnJlbG5hbWUgQVMg dGFibGUKK0ZST00gcGdfY2xhc3MgcmVsCisgICAgSk9JTiBwZ19uYW1lc3Bh Y2UgbnNwCisgICAgT04gcmVsLnJlbG5hbWVzcGFjZSA9IG5zcC5vaWQ6Omlu dAorICAgIFdIRVJFIHJlbC5vaWQgPSB7e3RpZH19OjppbnQKXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvaW5kZXhlcy90ZW1wbGF0ZXMvaW5kZXgvc3FsLzkuMV9wbHVz L25vZGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3Rl bXBsYXRlcy9pbmRleC9zcWwvOS4xX3BsdXMvbm9kZXMuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkYTA2ZjIKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZW1w bGF0ZXMvaW5kZXgvc3FsLzkuMV9wbHVzL25vZGVzLnNxbApAQCAtMCwwICsx LDExIEBACitTRUxFQ1QgRElTVElOQ1QgT04oY2xzLnJlbG5hbWUpIGNscy5v aWQsIGNscy5yZWxuYW1lIGFzIG5hbWUKK0ZST00gcGdfaW5kZXggaWR4Cisg ICAgSk9JTiBwZ19jbGFzcyBjbHMgT04gY2xzLm9pZD1pbmRleHJlbGlkCisg ICAgSk9JTiBwZ19jbGFzcyB0YWIgT04gdGFiLm9pZD1pbmRyZWxpZAorICAg IExFRlQgT1VURVIgSk9JTiBwZ190YWJsZXNwYWNlIHRhIG9uIHRhLm9pZD1j bHMucmVsdGFibGVzcGFjZQorICAgIEpPSU4gcGdfbmFtZXNwYWNlIG4gT04g bi5vaWQ9dGFiLnJlbG5hbWVzcGFjZQorICAgIEpPSU4gcGdfYW0gYW0gT04g YW0ub2lkPWNscy5yZWxhbQorICAgIExFRlQgSk9JTiBwZ19kZXBlbmQgZGVw IE9OIChkZXAuY2xhc3NpZCA9IGNscy50YWJsZW9pZCBBTkQgZGVwLm9iamlk ID0gY2xzLm9pZCBBTkQgZGVwLnJlZm9ianN1YmlkID0gJzAnIEFORCBkZXAu cmVmY2xhc3NpZD0oU0VMRUNUIG9pZCBGUk9NIHBnX2NsYXNzIFdIRVJFIHJl bG5hbWU9J3BnX2NvbnN0cmFpbnQnKSBBTkQgZGVwLmRlcHR5cGU9J2knKQor ICAgIExFRlQgT1VURVIgSk9JTiBwZ19jb25zdHJhaW50IGNvbiBPTiAoY29u LnRhYmxlb2lkID0gZGVwLnJlZmNsYXNzaWQgQU5EIGNvbi5vaWQgPSBkZXAu cmVmb2JqaWQpCitXSEVSRSBpbmRyZWxpZCA9IHt7dGlkfX06Ok9JRAorICAg IE9SREVSIEJZIGNscy5yZWxuYW1lClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4 ZXMvdGVtcGxhdGVzL2luZGV4L3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9p bmRleC9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE4NWY3NAotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRl cy9pbmRleC9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwKQEAgLTAsMCAr MSwyMyBAQAorU0VMRUNUIERJU1RJTkNUIE9OKGNscy5yZWxuYW1lKSBjbHMu b2lkLCBjbHMucmVsbmFtZSBhcyBuYW1lLCBpbmRyZWxpZCwgaW5ka2V5LCBp bmRpc2NsdXN0ZXJlZCwKKyAgICBpbmRpc3ZhbGlkLCBpbmRpc3VuaXF1ZSwg aW5kaXNwcmltYXJ5LCBuLm5zcG5hbWUsaW5kbmF0dHMsY2xzLnJlbHRhYmxl c3BhY2UgQVMgc3Bjb2lkLAorICAgIENPQUxFU0NFKHNwY25hbWUsICdwZ19k ZWZhdWx0JykgYXMgc3BjbmFtZSwgdGFiLnJlbG5hbWUgYXMgdGFibmFtZSwg aW5kY2xhc3MsIGNvbi5vaWQgQVMgY29ub2lkLAorICAgIENBU0UgV0hFTiBj b250eXBlIElOICgncCcsICd1JywgJ3gnKSBUSEVOIGRlc3AuZGVzY3JpcHRp b24KKyAgICAgICAgIEVMU0UgZGVzLmRlc2NyaXB0aW9uIEVORCBBUyBkZXNj cmlwdGlvbiwKKyAgICBwZ19nZXRfZXhwcihpbmRwcmVkLCBpbmRyZWxpZCwg dHJ1ZSkgYXMgaW5kY29uc3RyYWludCwgY29udHlwZSwgY29uZGVmZXJyYWJs ZSwgY29uZGVmZXJyZWQsIGFtbmFtZSwKKyAgICBzdWJzdHJpbmcoYXJyYXlf dG9fc3RyaW5nKGNscy5yZWxvcHRpb25zLCAnLCcpIGZyb20gJ2ZpbGxmYWN0 b3I9KFswLTldKiknKSBBUyBmaWxsZmFjdG9yCit7JSBpZiBkYXRsYXN0c3lz b2lkICV9CisgICAgLChDQVNFIFdIRU4gY2xzLm9pZCA8PSB7eyBkYXRsYXN0 c3lzb2lkfX06Om9pZCBUSEVOIHRydWUgRWxTRSBmYWxzZSBFTkQpIEFTIGlz X3N5c19pZHgKK3slIGVuZGlmICV9CitGUk9NIHBnX2luZGV4IGlkeAorICAg IEpPSU4gcGdfY2xhc3MgY2xzIE9OIGNscy5vaWQ9aW5kZXhyZWxpZAorICAg IEpPSU4gcGdfY2xhc3MgdGFiIE9OIHRhYi5vaWQ9aW5kcmVsaWQKKyAgICBM RUZUIE9VVEVSIEpPSU4gcGdfdGFibGVzcGFjZSB0YSBvbiB0YS5vaWQ9Y2xz LnJlbHRhYmxlc3BhY2UKKyAgICBKT0lOIHBnX25hbWVzcGFjZSBuIE9OIG4u b2lkPXRhYi5yZWxuYW1lc3BhY2UKKyAgICBKT0lOIHBnX2FtIGFtIE9OIGFt Lm9pZD1jbHMucmVsYW0KKyAgICBMRUZUIEpPSU4gcGdfZGVwZW5kIGRlcCBP TiAoZGVwLmNsYXNzaWQgPSBjbHMudGFibGVvaWQgQU5EIGRlcC5vYmppZCA9 IGNscy5vaWQgQU5EIGRlcC5yZWZvYmpzdWJpZCA9ICcwJyBBTkQgZGVwLnJl ZmNsYXNzaWQ9KFNFTEVDVCBvaWQgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxu YW1lPSdwZ19jb25zdHJhaW50JykgQU5EIGRlcC5kZXB0eXBlPSdpJykKKyAg ICBMRUZUIE9VVEVSIEpPSU4gcGdfY29uc3RyYWludCBjb24gT04gKGNvbi50 YWJsZW9pZCA9IGRlcC5yZWZjbGFzc2lkIEFORCBjb24ub2lkID0gZGVwLnJl Zm9iamlkKQorICAgIExFRlQgT1VURVIgSk9JTiBwZ19kZXNjcmlwdGlvbiBk ZXMgT04gKGRlcy5vYmpvaWQ9Y2xzLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdw Z19jbGFzcyc6OnJlZ2NsYXNzKQorICAgIExFRlQgT1VURVIgSk9JTiBwZ19k ZXNjcmlwdGlvbiBkZXNwIE9OIChkZXNwLm9iam9pZD1jb24ub2lkIEFORCBk ZXNwLm9ianN1YmlkID0gMCBBTkQgZGVzcC5jbGFzc29pZD0ncGdfY29uc3Ry YWludCc6OnJlZ2NsYXNzKQorV0hFUkUgaW5kcmVsaWQgPSB7e3RpZH19OjpP SUQKKyAgICB7JSBpZiBpZHggJX1BTkQgY2xzLm9pZCA9IHt7aWR4fX06Ok9J RCB7JSBlbmRpZiAlfQorICAgIE9SREVSIEJZIGNscy5yZWxuYW1lCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZW1wbGF0 ZXMvaW5kZXgvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvaW5kZXhlcy90ZW1wbGF0ZXMvaW5kZXgvc3FsLzkuMV9w bHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZWZjNTFhMwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9pbmRleC9zcWwvOS4xX3Bs dXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDI0IEBACit7IyMgQ2hhbmdlcyBu YW1lICMjfQoreyUgaWYgZGF0YS5uYW1lIGFuZCBvX2RhdGEubmFtZSAhPSBk YXRhLm5hbWUgJX0KK0FMVEVSIElOREVYIHt7Y29ubnxxdElkZW50KGRhdGEu c2NoZW1hLCBvX2RhdGEubmFtZSl9fQorICAgIFJFTkFNRSBUTyB7e2Nvbm58 cXRJZGVudChkYXRhLm5hbWUpfX07Cit7JSBlbmRpZiAlfQoreyMjIENoYW5n ZXMgZmlsbGZhY3RvciAjI30KK3slIGlmIGRhdGEuZmlsbGZhY3RvciBhbmQg b19kYXRhLmZpbGxmYWN0b3IgIT0gZGF0YS5maWxsZmFjdG9yICV9CitBTFRF UiBJTkRFWCB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1l KX19CisgICAgU0VUIChGSUxMRkFDVE9SPXt7ZGF0YS5maWxsZmFjdG9yfX0p OworeyUgZW5kaWYgJX0KK3sjIyBDaGFuZ2VzIHRhYmxlc3BhY2UgIyN9Cit7 JSBpZiBkYXRhLnNwY25hbWUgYW5kIG9fZGF0YS5zcGNuYW1lICE9IGRhdGEu c3BjbmFtZSAlfQorQUxURVIgSU5ERVgge3tjb25ufHF0SWRlbnQoZGF0YS5z Y2hlbWEsIGRhdGEubmFtZSl9fQorICAgIFNFVCBUQUJMRVNQQUNFIHt7Y29u bnxxdElkZW50KGRhdGEuc3BjbmFtZSl9fTsKK3slIGVuZGlmICV9Cit7IyMg QWx0ZXIgaW5kZXggdG8gdXNlIGNsdXN0ZXIgdHlwZSAjI30KK3slIGlmIGRh dGEuaW5kaXNjbHVzdGVyZWQgYW5kIG9fZGF0YS5pbmRpc2NsdXN0ZXJlZCAh PSBkYXRhLmluZGlzY2x1c3RlcmVkICV9CitBTFRFUiBUQUJMRSB7e2Nvbm58 cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSl9fQorICAgIENMVVNU RVIgT04ge3tjb25ufHF0SWRlbnQoZGF0YS5uYW1lKX19OworeyUgZW5kaWYg JX0KK3sjIyBDaGFuZ2VzIGRlc2NyaXB0aW9uICMjfQoreyUgaWYgZGF0YS5k ZXNjcmlwdGlvbiBhbmQgb19kYXRhLmRlc2NyaXB0aW9uICE9IGRhdGEuZGVz Y3JpcHRpb24gJX0KK0NPTU1FTlQgT04gSU5ERVgge3tjb25ufHF0SWRlbnQo ZGF0YS5uYW1lKX19CisgICAgSVMge3tkYXRhLmRlc2NyaXB0aW9ufHF0TGl0 ZXJhbH19O3slIGVuZGlmICV9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL19f aW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL19faW5p dF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgy YzVjNjEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvcnVsZXMvX19pbml0X18ucHkKQEAgLTAsMCArMSw0ODkgQEAKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBv c3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAx NiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3 YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UK KyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyIiIkltcGxl bWVudHMgUnVsZSBOb2RlIiIiCisKK2ltcG9ydCBqc29uCitmcm9tIGZsYXNr IGltcG9ydCByZW5kZXJfdGVtcGxhdGUsIG1ha2VfcmVzcG9uc2UsIHJlcXVl c3QsIGpzb25pZnkKK2Zyb20gZmxhc2suZXh0LmJhYmVsIGltcG9ydCBnZXR0 ZXh0Citmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgbWFrZV9qc29u X3Jlc3BvbnNlLCBcCisgICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jlc3Bv bnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IKK2Zyb20gcGdhZG1pbi5icm93 c2VyLnV0aWxzIGltcG9ydCBQR0NoaWxkTm9kZVZpZXcKK2ltcG9ydCBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5z Y2hlbWFzIGFzIHNjaGVtYXMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy51dGlscyBpbXBv cnQgXAorICAgIHBhcnNlX3J1bGVfZGVmaW5pdGlvbgorZnJvbSBwZ2FkbWlu LmJyb3dzZXIuY29sbGVjdGlvbiBpbXBvcnQgQ29sbGVjdGlvbk5vZGVNb2R1 bGUKK2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBwcmVjb25kaXRp b25fcmVxdWlyZWQKK2Zyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0 IGdldF9kcml2ZXIKK2Zyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RS SVZFUgorZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHdyYXBzCisKKworY2xhc3Mg UnVsZU1vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSk6CisgICAgIiIiCisg ICAgY2xhc3MgUnVsZU1vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSk6CisK KyAgICAgICAgQSBydWxlIGNvbGxlY3Rpb24gTm9kZSB3aGljaCBpbmhlcml0 cyBDb2xsZWN0aW9uTm9kZU1vZHVsZQorICAgICAgICBjbGFzcyBhbmQgZGVm aW5lIG1ldGhvZHM6CisgICAgICAgICAgZ2V0X25vZGVzIC0gVG8gZ2VuZXJh dGUgY29sbGVjdGlvbiBub2RlLgorICAgICAgICAgIHNjcmlwdF9sb2FkIC0g dGVsbHMgd2hlbiB0byBsb2FkIGpzIGZpbGUuCisgICAgICAgICAgY3Nzc25w cGV0cyAtIGFkZCBjc3MgdG8gcGFnZQorICAgICIiIgorICAgIE5PREVfVFlQ RSA9ICdydWxlJworICAgIENPTExFQ1RJT05fTEFCRUwgPSBnZXR0ZXh0KCJS dWxlcyIpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dh cmdzKToKKyAgICAgICAgc2VsZi5taW5fdmVyID0gTm9uZQorICAgICAgICBz ZWxmLm1heF92ZXIgPSBOb25lCisKKyAgICAgICAgc3VwZXIoUnVsZU1vZHVs ZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorCisgICAgZGVm IEJhY2tlbmRTdXBwb3J0ZWQoc2VsZiwgbWFuYWdlciwgKiprd2FyZ3MpOgor ICAgICAgICAiIiIKKyAgICAgICAgTG9hZCB0aGlzIG1vZHVsZSBpZiB0aWQg aXMgdmlldywgd2Ugd2lsbCBub3QgbG9hZCBpdCB1bmRlcgorICAgICAgICBt YXRlcmlhbCB2aWV3CisgICAgICAgICIiIgorICAgICAgICBpZiBzdXBlcihS dWxlTW9kdWxlLCBzZWxmKS5CYWNrZW5kU3VwcG9ydGVkKG1hbmFnZXIsICoq a3dhcmdzKToKKyAgICAgICAgICAgIGNvbm4gPSBtYW5hZ2VyLmNvbm5lY3Rp b24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAgICAgICAjIElmIERCIGlz IG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4gZXJyb3IgdG8gYnJvd3Nlcgor ICAgICAgICAgICAgaWYgbm90IGNvbm4uY29ubmVjdGVkKCk6CisgICAgICAg ICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJlZCgKKyAgICAg ICAgICAgICAgICAgICAgZ2V0dGV4dCgKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGxv c3QhIgorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAg KQorCisgICAgICAgICAgICBpZiAndmlkJyBub3QgaW4ga3dhcmdzOgorICAg ICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgICAgIHRlbXBs YXRlX3BhdGggPSAncnVsZXMvc3FsJworCisgICAgICAgICAgICBTUUwgPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICAgICAgICBb dGVtcGxhdGVfcGF0aCwgJ2JhY2tlbmRfc3VwcG9ydC5zcWwnXSksIHZpZD1r d2FyZ3NbJ3ZpZCddKQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBjb25u LmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgICMgY2hlY2sgaWYg YW55IGVycm9ycworICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPXJlcykKKyAgICAgICAgICAgICMgQ2hlY2sgdGlkIGlzIHZpZXcgbm90 IG1hdGVyaWFsIHZpZXcKKyAgICAgICAgICAgICMgdGhlbiB0cnVlLCBvdGhl d2lzZSBmYWxzZQorICAgICAgICAgICAgaWYgcmVzIGlzIFRydWU6CisgICAg ICAgICAgICAgICAgcmV0dXJuIHJlcworICAgICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICAgICByZXR1cm4gcmVzCisKKyAgICBkZWYgZ2V0X25vZGVz KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsICoqa3dhcmdzKToKKyAgICAg ICAgIiIiCisgICAgICAgIEdlbmVyYXRlIHRoZSBjb2xsZWN0aW9uIG5vZGUK KyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydCgndGlkJyBpbiBrd2FyZ3Mg b3IgJ3ZpZCcgaW4ga3dhcmdzKQorICAgICAgICB5aWVsZCBzZWxmLmdlbmVy YXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKAorICAgICAgICAgIGt3YXJn c1sndGlkJ10gaWYgJ3RpZCcgaW4ga3dhcmdzIGVsc2Uga3dhcmdzWyd2aWQn XQorICAgICAgICAgICkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBub2Rl X2lub2RlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgSWYgYSBub2Rl IGhhcyBjaGlsZHJlbiByZXR1cm4gVHJ1ZSBvdGhlcndpc2UgRmFsc2UKKyAg ICAgICAgIiIiCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgQHByb3Bl cnR5CisgICAgZGVmIHNjcmlwdF9sb2FkKHNlbGYpOgorICAgICAgICAiIiIK KyAgICAgICAgTG9hZCB0aGUgbW9kdWxlIHNjcmlwdCBmb3IgcnVsZSwgd2hl biBhbnkgb2YgdGhlIGRhdGFiYXNlIG5vZGVzIGFyZQorICAgICAgICBpbml0 aWFsaXplZC4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzY2hlbWFz LlNjaGVtYU1vZHVsZS5OT0RFX1RZUEUKKworICAgIEBwcm9wZXJ0eQorICAg IGRlZiBjc3NzbmlwcGV0cyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAg IFJldHVybnMgYSBzbmlwcGV0IG9mIGNzcyB0byBpbmNsdWRlIGluIHRoZSBw YWdlCisgICAgICAgICIiIgorICAgICAgICBzbmlwcGV0cyA9IFsKKyAgICAg ICAgICAgICAgICByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAg ICAgICJicm93c2VyL2Nzcy9jb2xsZWN0aW9uLmNzcyIsCisgICAgICAgICAg ICAgICAgICAgIG5vZGVfdHlwZT1zZWxmLm5vZGVfdHlwZSwKKyAgICAgICAg ICAgICAgICAgICAgXz1nZXR0ZXh0CisgICAgICAgICAgICAgICAgICAgICks CisgICAgICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAg ICAgICAgICAgICAicnVsZXMvY3NzL3J1bGUuY3NzIiwKKyAgICAgICAgICAg ICAgICAgICAgbm9kZV90eXBlPXNlbGYubm9kZV90eXBlLAorICAgICAgICAg ICAgICAgICAgICBfPWdldHRleHQKKyAgICAgICAgICAgICAgICAgICAgKQor ICAgICAgICAgICAgICAgIF0KKworICAgICAgICBmb3Igc3VibW9kdWxlIGlu IHNlbGYuc3VibW9kdWxlczoKKyAgICAgICAgICAgIHNuaXBwZXRzLmV4dGVu ZChzdWJtb2R1bGUuY3Nzc25pcHBldHMpCisKKyAgICAgICAgcmV0dXJuIHNu aXBwZXRzCisKKworIyBDcmVhdGUgYmx1ZXByaW50IG9mIFJ1bGVNb2R1bGUu CitibHVlcHJpbnQgPSBSdWxlTW9kdWxlKF9fbmFtZV9fKQorCisKK2NsYXNz IFJ1bGVWaWV3KFBHQ2hpbGROb2RlVmlldyk6CisgICAgIiIiCisgICAgVGhp cyBpcyBhIGNsYXNzIGZvciBydWxlIG5vZGUgd2hpY2ggaW5oZXJpdHMgdGhl CisgICAgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBmcm9tIFBHQ2hpbGROb2Rl VmlldyBjbGFzcyBhbmQgZGVmaW5lCisgICAgdmFyaW91cyBtZXRob2RzIHRv IGxpc3QsIGNyZWF0ZSwgdXBkYXRlIGFuZCBkZWxldGUgcnVsZS4KKworICAg IFZhcmlhYmxlczoKKyAgICAtLS0tLS0tLS0KKyAgICAqIG5vZGVfdHlwZSAt IHRlbGxzIHdoaWNoIHR5cGUgb2Ygbm9kZSBpdCBpcworICAgICogcGFyZW50 X2lkcyAtIGlkIHdpdGggaXRzIHR5cGUgYW5kIG5hbWUgb2YgcGFyZW50IG5v ZGVzCisgICAgKiBpZHMgLSBpZCB3aXRoIHR5cGUgYW5kIG5hbWUgb2YgZXh0 ZW5zaW9uIG1vZHVsZSBiZWluZyB1c2VkLgorICAgICogb3BlcmF0aW9ucyAt IGZ1bmN0aW9uIHJvdXRlcyBtYXBwaW5ncyBkZWZpbmVkLgorICAgICIiIgor ICAgIG5vZGVfdHlwZSA9IGJsdWVwcmludC5ub2RlX3R5cGUKKworICAgIHBh cmVudF9pZHMgPSBbCisgICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lk JzogJ2dpZCd9LAorICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6 ICdzaWQnfSwKKyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAn ZGlkJ30sCisgICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3Nj aWQnfSwKKyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAndGlk J30KKyAgICAgICAgICAgIF0KKyAgICBpZHMgPSBbCisgICAgICAgICAgICB7 J3R5cGUnOiAnaW50JywgJ2lkJzogJ3JpZCd9CisgICAgICAgICAgICBdCisK KyAgICBvcGVyYXRpb25zID0gZGljdCh7CisgICAgICAgICdvYmonOiBbCisg ICAgICAgICAgICB7J2dldCc6ICdwcm9wZXJ0aWVzJywgJ2RlbGV0ZSc6ICdk ZWxldGUnLCAncHV0JzogJ3VwZGF0ZSd9LAorICAgICAgICAgICAgeydnZXQn OiAnbGlzdCcsICdwb3N0JzogJ2NyZWF0ZSd9CisgICAgICAgIF0sCisgICAg ICAgICdjaGlsZHJlbic6IFt7CisgICAgICAgICAgICAnZ2V0JzogJ2NoaWxk cmVuJworICAgICAgICB9XSwKKyAgICAgICAgJ2RlbGV0ZSc6IFt7J2RlbGV0 ZSc6ICdkZWxldGUnfV0sCisgICAgICAgICdub2Rlcyc6IFt7J2dldCc6ICdu b2RlJ30sIHsnZ2V0JzogJ25vZGVzJ31dLAorICAgICAgICAnc3FsJzogW3sn Z2V0JzogJ3NxbCd9XSwKKyAgICAgICAgJ21zcWwnOiBbeydnZXQnOiAnbXNx bCd9LCB7J2dldCc6ICdtc3FsJ31dLAorICAgICAgICAnc3RhdHMnOiBbeydn ZXQnOiAnc3RhdGlzdGljcyd9XSwKKyAgICAgICAgJ2RlcGVuZGVuY3knOiBb eydnZXQnOiAnZGVwZW5kZW5jaWVzJ31dLAorICAgICAgICAnZGVwZW5kZW50 JzogW3snZ2V0JzogJ2RlcGVuZGVudHMnfV0sCisgICAgICAgICdtb2R1bGUu anMnOiBbe30sIHt9LCB7J2dldCc6ICdtb2R1bGVfanMnfV0sCisgICAgICAg ICdjb25maWdzJzogW3snZ2V0JzogJ2NvbmZpZ3MnfV0KKyAgICB9KQorCisg ICAgZGVmIG1vZHVsZV9qcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgcHJvcGVydHkgZGVmaW5lcyB3aGV0aGVyIEphdmFzY3JpcHQgZXhp c3RzIGZvciB0aGlzIG5vZGUuCisgICAgICAgICIiIgorICAgICAgICByZXR1 cm4gbWFrZV9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZW5kZXJfdGVt cGxhdGUoCisgICAgICAgICAgICAgICAgICAgICJydWxlcy9qcy9ydWxlcy5q cyIsCisgICAgICAgICAgICAgICAgICAgIF89Z2V0dGV4dAorICAgICAgICAg ICAgICAgICAgICApLAorICAgICAgICAgICAgICAgIDIwMCwgeydDb250ZW50 LVR5cGUnOiAnYXBwbGljYXRpb24veC1qYXZhc2NyaXB0J30KKyAgICAgICAg ICAgICAgICApCisKKyAgICBkZWYgY2hlY2tfcHJlY29uZGl0aW9uKGYpOgor ICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2 ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNoZWNrIHRoZQorICAgICAg ICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5nIGEgdmlldy4g SXQgd2lsbCBhbHNvIGF0dGFjaAorICAgICAgICBtYW5hZ2VyLCBjb25uICYg dGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYKKyAgICAgICAgIiIi CisgICAgICAgIEB3cmFwcyhmKQorICAgICAgICBkZWYgd3JhcCgqYXJncywg Kiprd2FyZ3MpOgorCisgICAgICAgICAgICAjIEhlcmUgYXJnc1swXSB3aWxs IGhvbGQgc2VsZiAmIGt3YXJncyB3aWxsIGhvbGQgZ2lkLHNpZCxkaWQKKyAg ICAgICAgICAgIHNlbGYgPSBhcmdzWzBdCisgICAgICAgICAgICBzZWxmLm1h bmFnZXIgPSBnZXRfZHJpdmVyKAorICAgICAgICAgICAgICBQR19ERUZBVUxU X0RSSVZFUikuY29ubmVjdGlvbl9tYW5hZ2VyKGt3YXJnc1snc2lkJ10pCisg ICAgICAgICAgICBzZWxmLmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlv bihkaWQ9a3dhcmdzWydkaWQnXSkKKworICAgICAgICAgICAgIyBJZiBEQiBu b3QgY29ubmVjdGVkIHRoZW4gcmV0dXJuIGVycm9yIHRvIGJyb3dzZXIKKyAg ICAgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVkKCk6CisgICAg ICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJlZCgKKyAg ICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVu IGxvc3QhIgorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAg ICAgKQorCisgICAgICAgICAgICBzZWxmLmRhdGxhc3RzeXNvaWQgPSBzZWxm Lm1hbmFnZXIuZGJfaW5mb1trd2FyZ3NbJ2RpZCddXVsnZGF0bGFzdHN5c29p ZCddCisgICAgICAgICAgICB2ZXIgPSBzZWxmLm1hbmFnZXIudmVyc2lvbgor ICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ3J1bGVzL3NxbCcK KyAgICAgICAgICAgIHJldHVybiBmKCphcmdzLCAqKmt3YXJncykKKworICAg ICAgICByZXR1cm4gd3JhcAorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgor ICAgIGRlZiBsaXN0KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCk6 CisgICAgICAgICIiIgorICAgICAgICBGZXRjaCBhbGwgcnVsZSBwcm9wZXJ0 aWVzIGFuZCByZW5kZXIgaW50byBwcm9wZXJ0aWVzIHRhYgorICAgICAgICAi IiIKKworICAgICAgICAjIGZldGNoIHNjaGVtYSBuYW1lIGJ5IHNjaGVtYSBp ZAorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisg ICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3Fs J10pLCB0aWQ9dGlkKQorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29u bi5leGVjdXRlX2RpY3QoU1FMKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6 CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJlcykKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisg ICAgICAgICAgICAgICAgcmVzcG9uc2U9cmVzWydyb3dzJ10sCisgICAgICAg ICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkKKworICAg IEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbm9kZXMoc2VsZiwgZ2lk LCBzaWQsIGRpZCwgc2NpZCwgdGlkKToKKyAgICAgICAgIiIiCisgICAgICAg IExpc3QgYWxsIHRoZSBydWxlcyB1bmRlciB0aGUgUnVsZXMgQ29sbGVjdGlv biBub2RlCisgICAgICAgICIiIgorICAgICAgICByZXMgPSBbXQorICAgICAg ICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAg W3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLCB0aWQ9 dGlkKQorCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVj dXRlXzJkYXJyYXkoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1yc2V0KQorCisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgor ICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICAg c2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAg ICAgICAgICAgICAgICAgICAgcm93WydvaWQnXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgIHRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvd1sn bmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj0iaWNvbi1y dWxlIgorICAgICAgICAgICAgICAgICAgICApKQorCisgICAgICAgIHJldHVy biBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgZGF0YT1y ZXMsCisgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAg ICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgcHJv cGVydGllcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIHJpZCk6 CisgICAgICAgICIiIgorICAgICAgICBGZXRjaCB0aGUgcHJvcGVydGllcyBv ZiBhbiBpbmRpdmlkdWFsIHJ1bGUgYW5kIHJlbmRlciBpbiBwcm9wZXJ0aWVz IHRhYgorCisgICAgICAgICIiIgorICAgICAgICBTUUwgPSByZW5kZXJfdGVt cGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9w YXRoLCAncHJvcGVydGllcy5zcWwnXQorICAgICAgICAgICksIHJpZD1yaWQs IGRhdGxhc3RzeXNvaWQ9c2VsZi5kYXRsYXN0c3lzb2lkKQorICAgICAgICBz dGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorCisg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICBy ZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25z ZT1wYXJzZV9ydWxlX2RlZmluaXRpb24ocmVzKSwKKyAgICAgICAgICAgICAg ICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbgorICAgIGRlZiBjcmVhdGUoc2VsZiwgZ2lkLCBzaWQs IGRpZCwgc2NpZCwgdGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMg ZnVuY3Rpb24gd2lsbCBjcmVhdGUgYSBuZXcgcnVsZSBvYmplY3QKKyAgICAg ICAgIiIiCisgICAgICAgIHJlcXVpcmVkX2FyZ3MgPSBbCisgICAgICAgICAg ICAnbmFtZScsCisgICAgICAgIF0KKworICAgICAgICBkYXRhID0gcmVxdWVz dC5mb3JtIGlmIHJlcXVlc3QuZm9ybSBlbHNlIFwKKyAgICAgICAgICAgIGpz b24ubG9hZHMocmVxdWVzdC5kYXRhLmRlY29kZSgpKQorICAgICAgICBmb3Ig YXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICBpZiBhcmcgbm90 IGluIGRhdGE6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9y ZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTQxMCwKKyAg ICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0wLAorICAgICAgICAgICAgICAg ICAgICBlcnJvcm1zZz1nZXR0ZXh0KAorICAgICAgICAgICAgICAgICAgICAg ICAgIkNvdWxkbid0IGZpbmQgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAoJXMp LiIgJSBhcmcKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAg ICAgICkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgU1FMID0gcmVuZGVy X3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAgICAgIFtzZWxmLnRl bXBsYXRlX3BhdGgsICdjcmVhdGUuc3FsJ10pLCBkYXRhPWRhdGEpCisgICAg ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxh cihTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQorCisgICAgICAgICAgICAjIEZldGNoIHRoZSBydWxlIGlkIGFnYWlu c3QgcnVsZSBuYW1lIHRvIGRpc3BsYXkgbm9kZQorICAgICAgICAgICAgIyBp biB0cmVlIGJyb3dzZXIKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1w bGF0ZSgiLyIuam9pbigKKyAgICAgICAgICAgICAgICBbc2VsZi50ZW1wbGF0 ZV9wYXRoLCAncnVsZV9pZC5zcWwnXSksIHJ1bGVfbmFtZT1kYXRhWyduYW1l J10pCisgICAgICAgICAgICBzdGF0dXMsIHJ1bGVfaWQgPSBzZWxmLmNvbm4u ZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1 czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXJ1bGVfaWQpCisgICAgICAgICAgICByZXR1cm4ganNv bmlmeSgKKyAgICAgICAgICAgICAgICBub2RlPXNlbGYuYmx1ZXByaW50Lmdl bmVyYXRlX2Jyb3dzZXJfbm9kZSgKKyAgICAgICAgICAgICAgICAgICAgcnVs ZV9pZCwKKyAgICAgICAgICAgICAgICAgICAgdGlkLAorICAgICAgICAgICAg ICAgICAgICBkYXRhWyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgIGlj b249Imljb24tcnVsZSIKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAg ICApCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3Ry KGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiB1cGRh dGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCByaWQpOgorICAg ICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSBh IHJ1bGUgb2JqZWN0CisgICAgICAgICIiIgorICAgICAgICBkYXRhID0gcmVx dWVzdC5mb3JtIGlmIHJlcXVlc3QuZm9ybSBlbHNlIFwKKyAgICAgICAgICAg IGpzb24ubG9hZHMocmVxdWVzdC5kYXRhLmRlY29kZSgpKQorICAgICAgICBT UUwgPSBzZWxmLmdldFNRTChnaWQsIHNpZCwgZGF0YSwgdGlkLCByaWQpCisg ICAgICAgIHRyeToKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5j b25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBz dGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIHJldHVybiBt YWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgc3VjY2Vzcz0x LAorICAgICAgICAgICAgICAgIGluZm89Z2V0dGV4dCgiUnVsZSB1cGRhdGVk IiksCisgICAgICAgICAgICAgICAgZGF0YT17CisgICAgICAgICAgICAgICAg ICAgICdpZCc6IHRpZCwKKyAgICAgICAgICAgICAgICAgICAgJ3NpZCc6IHNp ZCwKKyAgICAgICAgICAgICAgICAgICAgJ2dpZCc6IGdpZCwKKyAgICAgICAg ICAgICAgICAgICAgJ2RpZCc6IGRpZAorICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6 CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAg ICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwg cmlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2ls bCBkcm9wIGEgcnVsZSBvYmplY3QKKyAgICAgICAgIiIiCisgICAgICAgICMg QmVsb3cgd2lsbCBkZWNpZGUgaWYgaXQncyBzaW1wbGUgZHJvcCBvciBkcm9w IHdpdGggY2FzY2FkZSBjYWxsCisgICAgICAgIGNhc2NhZGUgPSBUcnVlIGlm IHNlbGYuY21kID09ICdkZWxldGUnIGVsc2UgRmFsc2UKKworICAgICAgICB0 cnk6CisgICAgICAgICAgICAjIEdldCBuYW1lIGZvciBydWxlIGZyb20gZGlk CisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4o CisgICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdkZWxldGUu c3FsJ10pLCByaWQ9cmlkKQorICAgICAgICAgICAgc3RhdHVzLCByZXNfZGF0 YSA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAgICAgICAg aWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlc19kYXRhKQorICAgICAgICAg ICAgIyBkcm9wIHJ1bGUKKyAgICAgICAgICAgIHJzZXQgPSByZXNfZGF0YVsn cm93cyddWzBdCisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUo Ii8iLmpvaW4oCisgICAgICAgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0 aCwgJ2RlbGV0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICBydWxlbmFt ZT1yc2V0WydydWxlbmFtZSddLAorICAgICAgICAgICAgICAgICAgcmVsbmFt ZT1yc2V0WydyZWxuYW1lJ10sCisgICAgICAgICAgICAgICAgICBuc3BuYW1l PXJzZXRbJ25zcG5hbWUnXSwKKyAgICAgICAgICAgICAgICAgIGNhc2NhZGU9 Y2FzY2FkZQorICAgICAgICAgICAgKQorICAgICAgICAgICAgc3RhdHVzLCBy ZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAg ICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAg ICBzdWNjZXNzPTEsCisgICAgICAgICAgICAgICAgaW5mbz1nZXR0ZXh0KCJS dWxlIGRyb3BwZWQiKSwKKyAgICAgICAgICAgICAgICBkYXRhPXsKKyAgICAg ICAgICAgICAgICAgICAgJ2lkJzogdGlkLAorICAgICAgICAgICAgICAgICAg ICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAgICAgICAnZ2lkJzogZ2lk LAorICAgICAgICAgICAgICAgICAgICAnZGlkJzogZGlkCisgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgKQorCisgICAgICAgIGV4Y2VwdCBFeGNl cHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNv bmRpdGlvbgorICAgIGRlZiBtc3FsKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNj aWQsIHRpZCwgcmlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhp cyBmdW5jdGlvbiByZXR1cm5zIG1vZGlmaWVkIFNRTAorICAgICAgICAiIiIK KyAgICAgICAgZGF0YSA9IHJlcXVlc3QuYXJncworICAgICAgICBTUUwgPSBz ZWxmLmdldFNRTChnaWQsIHNpZCwgZGF0YSwgdGlkLCByaWQpCisgICAgICAg IHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAg ZGF0YT1TUUwsCisgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAg ICAgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBk ZWYgc3FsKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgcmlkKToK KyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5l cmF0ZSBzcWwgdG8gcmVuZGVyIGludG8gdGhlIHNxbCBwYW5lbAorICAgICAg ICAiIiIKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2lu KAorICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVz LnNxbCddKSwgcmlkPXJpZCkKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxm LmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1 czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9cmVzKQorICAgICAgICByZXNfZGF0YSA9IHBhcnNlX3J1bGVf ZGVmaW5pdGlvbihyZXMpCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbigKKyAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgs ICdjcmVhdGUuc3FsJ10pLAorICAgICAgICAgICAgZGF0YT1yZXNfZGF0YSwg ZGlzcGxheV9jb21tZW50cz1UcnVlKQorCisgICAgICAgIHJldHVybiBhamF4 X3Jlc3BvbnNlKHJlc3BvbnNlPVNRTCkKKworICAgIGRlZiBnZXRTUUwoc2Vs ZiwgZ2lkLCBzaWQsIGRhdGEsIHRpZCwgcmlkKToKKyAgICAgICAgIiIiCisg ICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBzcWwgZnJvbSBt b2RlbCBkYXRhCisgICAgICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAg ICAgICBpZiByaWQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAgICAg ICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLCBy aWQ9cmlkKQorICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5j b25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAgICAgICAgICAgcmVzX2Rh dGEgPSBbXQorICAgICAgICAgICAgICAgIHJlc19kYXRhID0gcGFyc2VfcnVs ZV9kZWZpbml0aW9uKHJlcykKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgICAgICAgICBvbGRf ZGF0YSA9IHJlc19kYXRhCisgICAgICAgICAgICAgICAgU1FMID0gcmVuZGVy X3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAgICAiLyIuam9pbihbc2Vs Zi50ZW1wbGF0ZV9wYXRoLCAndXBkYXRlLnNxbCddKSwKKyAgICAgICAgICAg ICAgICAgICAgZGF0YT1kYXRhLCBvX2RhdGE9b2xkX2RhdGEKKyAgICAgICAg ICAgICAgICAgICAgKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAg ICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdjcmVhdGUuc3Fs J10pLCBkYXRhPWRhdGEpCisgICAgICAgICAgICByZXR1cm4gU1FMCisgICAg ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisg ICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBkZXBlbmRlbnRzKHNl bGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgcmlkKToKKyAgICAgICAg IiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2V0cyB0aGUgZGVwZW5kZW50 cyBhbmQgcmV0dXJucyBhbiBhamF4IHJlc3BvbnNlCisgICAgICAgIGZvciB0 aGUgcnVsZSBub2RlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBn aWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIg SUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAg IHRpZDogVmlldyBJRAorICAgICAgICAgICAgcmlkOiBSdWxlIElECisgICAg ICAgICIiIgorICAgICAgICBkZXBlbmRlbnRzX3Jlc3VsdCA9IHNlbGYuZ2V0 X2RlcGVuZGVudHMoc2VsZi5jb25uLCByaWQpCisgICAgICAgIHJldHVybiBh amF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW50 c19yZXN1bHQsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAg ICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGRlcGVu ZGVuY2llcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIHJpZCk6 CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldHMgdGhl IGRlcGVuZGVuY2llcyBhbmQgcmV0dXJucyBzbiBhamF4IHJlc3BvbnNlCisg ICAgICAgIGZvciB0aGUgcnVsZSBub2RlLgorCisgICAgICAgIEFyZ3M6Cisg ICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAg c2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQK KyAgICAgICAgICAgIHRpZDogVmlldyBJRAorICAgICAgICAgICAgcmlkOiBS dWxlIElECisgICAgICAgICIiIgorICAgICAgICBkZXBlbmRlbmNpZXNfcmVz dWx0ID0gc2VsZi5nZXRfZGVwZW5kZW5jaWVzKHNlbGYuY29ubiwgcmlkKQor ICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJl c3BvbnNlPWRlcGVuZGVuY2llc19yZXN1bHQsCisgICAgICAgICAgICBzdGF0 dXM9MjAwCisgICAgICAgICAgICApCisKK1J1bGVWaWV3LnJlZ2lzdGVyX25v ZGVfdmlldyhibHVlcHJpbnQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvcnVsZXMvc3RhdGljL2ltZy9jb2xsLXJ1bGUucG5nIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL3N0YXRpYy9pbWcvY29sbC1ydWxl LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZmU2ZWQyN2Q5ODM1MWEw M2U5ODQ1MWZlODNlNzg1YWViNTEzNTFmCkdJVCBiaW5hcnkgcGF0Y2gKbGl0 ZXJhbCAzNTcKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjM/d3ls YEdiTCFRLUR2MUUwQkpEcnQwb1crNWI9SHtDXyZACnp8QzRGfHBHXkF5eGJP ZWQ4VUxUb3t7TGprfEhsKmxLa2oqYihFczB+X0o1QiR8Mj1CYF9wc3NMIT1g QF4+OzY1Zwp6YFMrbThZPWB6RXBlYytjTDRMc3U0JHAzKzBYZHVuOStBYUIr NT9RO1BHO0t5OEJ2fXRqdio0NHJ9bGFDSDdNfTcKekpZM2sockJVfjtLR2Q1 PD0jSnMrV3RYcX1PP0A/ZW5URTZrbzEwRT5TOzNaYEdpUCsoOXJ8VGhhVkpj Mj93bGhnCno8d0JGcW1hcjlWbkVLYU49RSRUY09SWFE1K0pCdlN6cXEhRlFR Q3RrVlJeQ0IzN3s+aUM5Vi1BRFR5VmlSPj8pRgp6SyNJWjB6fGNVfiZgOCg3 RnZRNWYlRVp7cCM4bGhCKVhLbk0tYUVaakM+bkN9USE+KmtBc1AlVSE1Vjw3 T3tAJmUKV0FSMTBoNF95UCl6fkpmWD1kI1d6cCRQITdjWjtlMwoKbGl0ZXJh bCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL3J1bGVzL3N0YXRpYy9pbWcvcnVsZS5wbmcgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvcnVsZXMvc3RhdGljL2ltZy9ydWxlLnBuZwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwLi44YjQ5NzgwOTBlMzNiYmUzZDVmN2VkMjQ5ZmQ5 M2MyZGEzNGY1MmQ2CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzNzMKemNt ZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjM/d3lsYEdiS31jentvY0Uw RGdzUXVnKGtze2M+dHtDXygwCnp8QzFeSUFOVCV5KWJ7VVR7cnspNHt5Ji1l fDhmN25OQTNSfUh2VzUxe3J+Q2d8NCpqPmU+fnllcXQxVTFvQmxuaAp6YFMr bXd8SS09JnBHXkF5eGNsRnVtVlhheHwyP1NxX24+a0slall6cChUcFdRZSEm YjUmdSlNP29DT3x7I1gjQnYKempOTUxWK1d7RyZvLVUzZDV8YEtablRzX1RA SGlgYkRFRFVsYGdeYH1HTilZaktEQnpATyMtRnxYMUJlY3JvMz1MCnpWblV6 YEo5fmRhI31ycTZfTVdPa0lwUDZndDhmMzI+I0pEUy00emZjeSlKKXwoeWE0 ZFF9X1MzblA5YHIkaXcpfgp6QTgzSlVpRUJoak5AN1c+UmRQYChrWVhAMEZm YENMR30xTE4zXjZqV0dCTEk/RzFXRk93SzZjNl9mQnNXaWlYXyQKbWwrM2hC aHowe291bSslTjZEdEVWaD14PHNMKVFRYEZuR0g5eHZYPGFYYVdFaks5LXZS CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL2Nzcy9ydWxl LmNzcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZW1wbGF0ZXMv cnVsZXMvY3NzL3J1bGUuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjNkMjFiY2YKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL2Nzcy9ydWxl LmNzcwpAQCAtMCwwICsxLDE2IEBACisuaWNvbi1ydWxleworICBiYWNrZ3Jv dW5kLWltYWdlOiB1cmwoJ3t7IHVybF9mb3IoJ05PREUtcnVsZS5zdGF0aWMn LCBmaWxlbmFtZT0naW1nL3J1bGUucG5nJykgfX0nKSAhaW1wb3J0YW50Owor ICBib3JkZXItcmFkaXVzOiAxMHB4OworICBiYWNrZ3JvdW5kLXJlcGVhdDog bm8tcmVwZWF0OworICBhbGlnbi1jb250ZW50OiBjZW50ZXI7CisgIHZlcnRp Y2FsLWFsaWduOiBtaWRkbGU7CisgIGhlaWdodDogMS4zZW07Cit9CisKKy5z cWxfZmllbGRfaGVpZ2h0XzE0MCB7CisgIGhlaWdodDogMTQwcHg7Cit9CisK Ky5zcWxfZmllbGRfaGVpZ2h0XzI4MCB7CisgIGhlaWdodDogMjgwcHg7Cit9 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcnVsZXMvdGVt cGxhdGVzL3J1bGVzL2pzL3J1bGVzLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3J1bGVzL3RlbXBsYXRlcy9ydWxlcy9qcy9ydWxlcy5qcwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjMyZTZjCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL3RlbXBs YXRlcy9ydWxlcy9qcy9ydWxlcy5qcwpAQCAtMCwwICsxLDI0NSBAQAorZGVm aW5lKAorICBbJ2pxdWVyeScsICd1bmRlcnNjb3JlJywgJ3VuZGVyc2NvcmUu c3RyaW5nJywgJ3BnYWRtaW4nLAorICAgICdwZ2FkbWluLmJyb3dzZXInLCAn Y29kZW1pcnJvciddLAorCitmdW5jdGlvbigkLCBfLCBTLCBwZ0FkbWluLCBw Z0Jyb3dzZXIsIENvZGVNaXJyb3IpIHsKKworICAvKioKKyAgICBDcmVhdGUg YW5kIGFkZCBhIHJ1bGUgY29sbGVjdGlvbiBpbnRvIG5vZGVzCisgICAgQHBh cmFtIHt2YXJpYWJsZX0gbGFiZWwgLSBMYWJlbCBmb3IgTm9kZQorICAgIEBw YXJhbSB7dmFyaWFibGV9IHR5cGUgLSBUeXBlIG9mIE5vZGUKKyAgICBAcGFy YW0ge3ZhcmlhYmxlfSBjb2x1bW5zIC0gTGlzdCBvZiBjb2x1bW5zIHRvCisg ICAgICBkaXNwbGF5IHVuZGVyIHVuZGVyIHByb3BlcnRpZXMuCisgICAqLwor ICBpZiAoIXBnQnJvd3Nlci5Ob2Rlc1snY29sbC1ydWxlJ10pIHsKKyAgICB2 YXIgcnVsZXMgPSBwZ0FkbWluLkJyb3dzZXIuTm9kZXNbJ2NvbGwtcnVsZSdd ID0KKyAgICAgIHBnQWRtaW4uQnJvd3Nlci5Db2xsZWN0aW9uLmV4dGVuZCh7 CisgICAgICAgIG5vZGU6ICdydWxlJywKKyAgICAgICAgbGFiZWw6ICd7eyBf KCJSdWxlcyIpIH19JywKKyAgICAgICAgdHlwZTogJ2NvbGwtcnVsZScsCisg ICAgICAgIGNvbHVtbnM6IFsibmFtZSIsICJvd25lciIsICJjb21tZW50Il0K KyAgICAgIH0pOworICB9CisKKworICAvKioKKyAgICBDcmVhdGUgYW5kIEFk ZCBhbiBSdWxlIE5vZGUgaW50byBub2RlcworICAgIEBwYXJhbSB7dmFyaWFi bGV9IHBhcmVudF90eXBlIC0gVGhlIGxpc3Qgb2Ygbm9kZXMKKyAgICB1bmRl ciB3aGljaCB0aGlzIG5vZGUgdG8gZGlzcGxheQorICAgIEBwYXJhbSB7dmFy aWFibGV9IHR5cGUgLSBUeXBlIG9mIE5vZGUKKyAgICBAcGFyYW0ge3Zhcmlh YmxlfSBoYXNTUUwgLSBUbyBzaG93IFNRTCB0YWIKKyAgICBAcGFyYW0ge3Zh cmlhYmxlfSBjYW5Ecm9wIC0gQWRkcyBkcm9wIHJ1bGUgb3B0aW9uCisgICAg aW4gdGhlIGNvbnRleHQgbWVudQorICAgIEBwYXJhbSB7dmFyaWFibGV9IGNh bkRyb3BDYXNjYWRlIC0gQWRkcyBkcm9wIENhc2NhZGUKKyAgICBydWxlIG9w dGlvbiBpbiB0aGUgY29udGV4dCBtZW51CisgICAqLworICBpZiAoIXBnQnJv d3Nlci5Ob2Rlc1sncnVsZSddKSB7CisgICAgcGdBZG1pbi5Ccm93c2VyLk5v ZGVzWydydWxlJ10gPSBwZ0FkbWluLkJyb3dzZXIuTm9kZS5leHRlbmQoewor ICAgICAgcGFyZW50X3R5cGU6IFsndGFibGUnLCd2aWV3J10sCisgICAgICB0 eXBlOiAncnVsZScsCisgICAgICBsYWJlbDogJ3t7IF8oInJ1bGUiKSB9fScs CisgICAgICBjb2xsZWN0aW9uX3R5cGU6ICdjb2xsLXRhYmxlJywKKyAgICAg IGhhc1NRTDogIHRydWUsCisgICAgICBoYXNEZXBlbmRzOiB0cnVlLAorICAg ICAgY2FuRHJvcDogcGdCcm93c2VyLk5vZGVzWydzY2hlbWEnXS5jYW5DaGls ZERyb3AsCisgICAgICBjYW5Ecm9wQ2FzY2FkZTogcGdCcm93c2VyLk5vZGVz WydzY2hlbWEnXS5jYW5DaGlsZERyb3AsCisgICAgICBJbml0OiBmdW5jdGlv bigpIHsKKworICAgICAgICAvKiBBdm9pZCBtdWxpdHBsZSByZWdpc3RyYXRp b24gb2YgbWVudXMgKi8KKyAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQp CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5pbml0aWFs aXplZCA9IHRydWU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAgQWRkICJj cmVhdGUgcnVsZSIgbWVudSBvcHRpb24gaW50byBjb250ZXh0IGFuZCBvYmpl Y3QgbWVudQorICAgICAgICAgIGZvciB0aGUgZm9sbG93aW5nIG5vZGVzOgor ICAgICAgICAgIGNvbGwtcnVsZSwgcnVsZSBhbmQgdmlldyBhbmQgdGFibGUu CisgICAgICAgICAgQHByb3BlcnR5IHtkYXRhfSAtIEFsbG93IGNyZWF0ZSBy dWxlIG9wdGlvbiBvbiBzY2hlbWEgbm9kZSBvcgorICAgICAgICAgIHN5c3Rl bSBydWxlcyBub2RlLgorICAgICAgICAgKi8KKyAgICAgICAgcGdCcm93c2Vy LmFkZF9tZW51cyhbeworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfcnVsZV9v bl9jb2xsJywgbm9kZTogJ2NvbGwtcnVsZScsIG1vZHVsZTogdGhpcywKKyAg ICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxi YWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdv cnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCJSdWxl Li4uIikgfX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1y dWxlJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNrOiB0cnVlfSwK KyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUnCisgICAgICAgIH0sewor ICAgICAgICAgIG5hbWU6ICdjcmVhdGVfcnVsZScsIG5vZGU6ICd2aWV3Jywg bW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0Jywg J2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywK KyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBs YWJlbDogJ3t7IF8oIlJ1bGUuLi4iKSB9fScsCisgICAgICAgICAgaWNvbjog J3djVGFiSWNvbiBpY29uLXJ1bGUnLCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRl JywgY2hlY2s6IHRydWV9LAorICAgICAgICAgIGVuYWJsZTogJ2NhbkNyZWF0 ZScKKyAgICAgICAgfSx7CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9ydWxl Jywgbm9kZTogJ3J1bGUnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBw bGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3df b2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRl JywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygiUnVsZS4uLiIpIH19JywK KyAgICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tcnVsZScsIGRhdGE6 IHthY3Rpb246ICdjcmVhdGUnLCBjaGVjazogdHJ1ZX0sCisgICAgICAgICAg ZW5hYmxlOiAnY2FuQ3JlYXRlJworICAgICAgICB9LHsKKyAgICAgICAgICBu YW1lOiAnY3JlYXRlX3J1bGUnLCBub2RlOiAndGFibGUnLCBtb2R1bGU6IHRo aXMsCisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCdd LCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAg IGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sg XygiUnVsZS4uLiIpIH19JywKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29u IGljb24tcnVsZScsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUnLCBjaGVjazog dHJ1ZX0sCisgICAgICAgICAgZW5hYmxlOiAnY2FuQ3JlYXRlJworICAgICAg ICB9CisgICAgICAgIF0pOworICAgICAgfSwKKworICAgICAgLyoqCisgICAg ICAgIERlZmluZSBtb2RlbCBmb3IgdGhlIHJ1bGUgbm9kZSBhbmQgc3BlY2lm eSB0aGUgbm9kZQorICAgICAgICBwcm9wZXJ0aWVzIG9mIHRoZSBtb2RlbCBp biBzY2hlbWEuCisgICAgICAgKi8KKyAgICAgIG1vZGVsOiBwZ0FkbWluLkJy b3dzZXIuTm9kZS5Nb2RlbC5leHRlbmQoeworICAgICAgICBkZWZhdWx0czog eworICAgICAgICB9LAorICAgICAgICBzY2hlbWE6IFt7CisgICAgICAgICAg aWQ6ICduYW1lJywgbGFiZWw6ICd7eyBfKCJOYW1lIikgfX0nLAorICAgICAg ICAgIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0peworICAg ICAgICAgICAgcmV0dXJuICFtLmlzTmV3KCk7CisgICAgICAgICAgfQorICAg ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdvaWQnLCBsYWJl bDone3sgXygiT0lEIikgfX0nLAorICAgICAgICAgIHR5cGU6ICd0ZXh0Jywg ZGlzYWJsZWQ6IHRydWUsIG1vZGU6IFsncHJvcGVydGllcyddCisgICAgICAg IH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ3NjaGVtYScsIGxhYmVs Oid7eyBfKCIiKSB9fScsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCB2aXNp YmxlOiBmYWxzZSwgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0peworCisgICAgICAg ICAgICAvLyBJdCBpcyB1c2VkIHdoaWxlIGdlbmVyYXRpbmcgc3FsCisgICAg ICAgICAgICBtLnNldCgnc2NoZW1hJywgbS5ub2RlX2luZm8uc2NoZW1hLmxh YmVsKTsKKyAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHsKKyAg ICAgICAgICBpZDogJ3ZpZXcnLCBsYWJlbDone3sgXygiIikgfX0nLAorICAg ICAgICAgIHR5cGU6ICd0ZXh0JywgdmlzaWJsZTogZmFsc2UsIGRpc2FibGVk OiBmdW5jdGlvbihtKXsKKworICAgICAgICAgICAgLy8gSXQgaXMgdXNlZCB3 aGlsZSBnZW5lcmF0aW5nIHNxbAorICAgICAgICAgICAgbS5zZXQoJ3ZpZXcn LCB0aGlzLm5vZGVfZGF0YS5sYWJlbCk7CisgICAgICAgICAgfQorICAgICAg ICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdjb21tZW50JywgbGFi ZWw6J3t7IF8oIkNvbW1lbnQiKSB9fScsIGNlbGw6ICdzdHJpbmcnLCB0eXBl OiAnbXVsdGlsaW5lJworICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg ICAgaWQ6ICdldmVudCcsIGxhYmVsOid7eyBfKCJFdmVudCIpIH19JywgY29u dHJvbDogJ3NlbGVjdDInLAorICAgICAgICAgIGdyb3VwOiAne3sgXygiRGVm aW5pdGlvbiIpIH19JywgdHlwZTogJ3RleHQnLAorICAgICAgICAgIHNlbGVj dDI6IHsKKyAgICAgICAgICAgIHdpZHRoOiAnMTAwJScKKyAgICAgICAgICB9 LAorICAgICAgICAgIG9wdGlvbnM6WworICAgICAgICAgICAge2xhYmVsOiAn U2VsZWN0JywgdmFsdWU6ICdTZWxlY3QnfSwKKyAgICAgICAgICAgIHtsYWJl bDogJ0luc2VydCcsIHZhbHVlOiAnSW5zZXJ0J30sCisgICAgICAgICAgICB7 bGFiZWw6ICdVcGRhdGUnLCB2YWx1ZTogJ1VwZGF0ZSd9LAorICAgICAgICAg ICAge2xhYmVsOiAnRGVsZXRlJywgdmFsdWU6ICdEZWxldGUnfQorICAgICAg ICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAn ZG9faW5zdGVhZCcsIGxhYmVsOid7eyBfKCJEbyBJbnN0ZWFkIikgfX0nLCBn cm91cDogJ3t7IF8oIkRlZmluaXRpb24iKSB9fScsCisgICAgICAgICAgdHlw ZTogJ3N3aXRjaCcKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg IGlkOiAnY29uZGl0aW9uJywgbGFiZWw6J3t7IF8oIkNvbmRpdGlvbiIpIH19 JywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIGdyb3VwOiAne3sgXygiRGVm aW5pdGlvbiIpIH19JywKKyAgICAgICAgICBtb2RlOiBbJ2NyZWF0ZScsICdl ZGl0J10sIGV4dHJhQ2xhc3NlczogWydzcWxfZmllbGRfaGVpZ2h0XzE0MCdd LAorICAgICAgICAgIGNvbnRyb2w6IEJhY2tmb3JtLlNxbEZpZWxkQ29udHJv bAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdzdGF0 ZW1lbnRzJywgbGFiZWw6J3t7IF8oIiIpIH19JywKKyAgICAgICAgICB0eXBl OiAndGV4dCcsIGdyb3VwOiAne3sgXygiU3RhdGVtZW50cyIpIH19JywKKyAg ICAgICAgICBtb2RlOiBbJ2NyZWF0ZScsICdlZGl0J10sIGV4dHJhQ2xhc3Nl czogWydzcWxfZmllbGRfaGVpZ2h0XzI4MCddLAorICAgICAgICAgIGNvbnRy b2w6IEJhY2tmb3JtLlNxbEZpZWxkQ29udHJvbAorICAgICAgICB9LAorICAg ICAgICB7CisgICAgICAgICAgaWQ6ICdzeXN0ZW1fcnVsZScsIGxhYmVsOid7 eyBfKCJTeXN0ZW0gcnVsZT8iKSB9fScsCisgICAgICAgICAgdHlwZTogJ3N3 aXRjaCcsIG1vZGU6IFsncHJvcGVydGllcyddCisgICAgICAgIH0sCisgICAg ICAgIHsKKyAgICAgICAgICBpZDogJ2VuYWJsZWQnLCBsYWJlbDone3sgXygi RW5hYmxlZD8iKSB9fScsCisgICAgICAgICAgdHlwZTogJ3N3aXRjaCcsIG1v ZGU6IFsncHJvcGVydGllcyddCisgICAgICAgIH0KKyAgICAgICAgXSwKKyAg ICAgICAgdmFsaWRhdGU6IGZ1bmN0aW9uKCkgeworCisgICAgICAgICAgLy8g VHJpZ2dlcnMgc3BlY2lmaWMgZXJyb3IgbWVzc2FnZXMgZm9yIGZpZWxkcwor ICAgICAgICAgIHZhciBlcnIgPSB7fSwKKyAgICAgICAgICAgIGVycm1zZywK KyAgICAgICAgICAgIGZpZWxkX25hbWUgPSB0aGlzLmdldCgnbmFtZScpOwor ICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKGZpZWxkX25hbWUpIHx8IF8u aXNOdWxsKGZpZWxkX25hbWUpIHx8CisgICAgICAgICAgICBTdHJpbmcoZmll bGRfbmFtZSkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PT0gJycpCisg ICAgICAgICAgeworICAgICAgICAgICAgZXJyWyduYW1lJ10gPSAne3sgXygi UGxlYXNlIHNwZWNpZnkgbmFtZS4iKSB9fSc7CisgICAgICAgICAgICBlcnJt c2cgPSBlcnJtc2cgfHwgZXJyWyduYW1lJ107CisgICAgICAgICAgICB0aGlz LmVycm9yTW9kZWwuc2V0KCduYW1lJywgZXJybXNnKTsKKyAgICAgICAgICAg IHJldHVybiBlcnJtc2c7CisgICAgICAgICAgfQorICAgICAgICAgIGVsc2UK KyAgICAgICAgICB7CisgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwudW5z ZXQoJ25hbWUnKTsKKyAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIG51 bGw7CisgICAgICAgIH0KKyAgICAgIH0pLAorCisgICAgICAvLyBTaG93IG9y IGhpZGUgY3JlYXRlIHJ1bGUgbWVudSBvcHRpb24gb24gcGFyZW50IG5vZGUK KyAgICAgIGNhbkNyZWF0ZTogZnVuY3Rpb24oaXRlbURhdGEsIGl0ZW0sIGRh dGEpIHsKKworICAgICAgICAvLyBJZiBjaGVjayBpcyBmYWxzZSB0aGVuICwg d2Ugd2lsbCBhbGxvdyBjcmVhdGUgbWVudQorICAgICAgICBpZiAoZGF0YSAm JiBkYXRhLmNoZWNrID09PSBmYWxzZSkKKyAgICAgICAgICByZXR1cm4gdHJ1 ZTsKKworICAgICAgICB2YXIgdCA9IHBnQnJvd3Nlci50cmVlLCBpID0gaXRl bSwgZCA9IGl0ZW1EYXRhOworCisgICAgICAgIC8vIFRvIGl0ZXJhdGUgb3Zl ciB0cmVlIHRvIGNoZWNrIHBhcmVudCBub2RlCisgICAgICAgIHdoaWxlIChp KSB7CisKKyAgICAgICAgICAvLyBJZiBpdCBpcyBzY2hlbWEgdGhlbiBhbGxv dyB1c2VyIHRvIGNyZWF0ZSBydWxlCisgICAgICAgICAgaWYgKF8uaW5kZXhP ZihbJ3NjaGVtYSddLCBkLl90eXBlKSA+IC0xKQorICAgICAgICAgICAgcmV0 dXJuIHRydWU7CisKKyAgICAgICAgICBpZiAoJ2NvbGwtcnVsZScgPT0gZC5f dHlwZSkgeworCisgICAgICAgICAgICAvL0NoZWNrIGlmIHdlIGFyZSBub3Qg Y2hpbGQgb2YgcnVsZQorICAgICAgICAgICAgcHJldl9pID0gdC5oYXNQYXJl bnQoaSkgPyB0LnBhcmVudChpKSA6IG51bGw7CisgICAgICAgICAgICBwcmV2 X2QgPSBwcmV2X2kgPyB0Lml0ZW1EYXRhKHByZXZfaSkgOiBudWxsOworICAg ICAgICAgICAgcHJldl9qID0gdC5oYXNQYXJlbnQocHJldl9pKSA/IHQucGFy ZW50KHByZXZfaSkgOiBudWxsOworICAgICAgICAgICAgcHJldl9lID0gcHJl dl9qID8gdC5pdGVtRGF0YShwcmV2X2opIDogbnVsbDsKKyAgICAgICAgICAg IHByZXZfayA9IHQuaGFzUGFyZW50KHByZXZfaikgPyB0LnBhcmVudChwcmV2 X2opIDogbnVsbDsKKyAgICAgICAgICAgIHByZXZfZiA9IHByZXZfayA/IHQu aXRlbURhdGEocHJldl9rKSA6IG51bGw7CisgICAgICAgICAgICBpZiggcHJl dl9mLl90eXBlID09ICdjYXRhbG9nJykgeworICAgICAgICAgICAgICByZXR1 cm4gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisK KyAgICAgICAgICAvKioKKyAgICAgICAgICAgIENoZWNrIGlmIGl0IGlzIHZp ZXcgYW5kIGl0cyBwYXJlbnQgbm9kZSBpcyBzY2hlbWEKKyAgICAgICAgICAg IHRoZW4gYWxsb3cgdG8gY3JlYXRlIFJ1bGUKKyAgICAgICAgICAgKi8KKyAg ICAgICAgICBlbHNlIGlmKCd2aWV3JyA9PSBkLl90eXBlKXsKKyAgICAgICAg ICAgIHByZXZfaSA9IHQuaGFzUGFyZW50KGkpID8gdC5wYXJlbnQoaSkgOiBu dWxsOworICAgICAgICAgICAgcHJldl9kID0gcHJldl9pID8gdC5pdGVtRGF0 YShwcmV2X2kpIDogbnVsbDsKKyAgICAgICAgICAgIHByZXZfaiA9IHQuaGFz UGFyZW50KHByZXZfaSkgPyB0LnBhcmVudChwcmV2X2kpIDogbnVsbDsKKyAg ICAgICAgICAgIHByZXZfZSA9IHByZXZfaiA/IHQuaXRlbURhdGEocHJldl9q KSA6IG51bGw7CisgICAgICAgICAgICBpZihwcmV2X2UuX3R5cGUgPT0gJ3Nj aGVtYScpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg ICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg ICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBpID0gdC5oYXNQ YXJlbnQoaSkgPyB0LnBhcmVudChpKSA6IG51bGw7CisgICAgICAgICAgZCA9 IGkgPyB0Lml0ZW1EYXRhKGkpIDogbnVsbDsKKyAgICAgICAgfQorCisgICAg ICAgIC8vIEJ5IGRlZmF1bHQgd2UgZG8gbm90IHdhbnQgdG8gYWxsb3cgY3Jl YXRlIG1lbnUKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgIH0KKwor ICB9KTsKKyAgfQorCisgIHJldHVybiBwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwt cnVsZSddOworfSk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL3NxbC9iYWNrZW5kX3N1cHBvcnQu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL3RlbXBsYXRlcy9y dWxlcy9zcWwvYmFja2VuZF9zdXBwb3J0LnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5iYjVlOGQ4Ci0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL3RlbXBsYXRlcy9ydWxl cy9zcWwvYmFja2VuZF9zdXBwb3J0LnNxbApAQCAtMCwwICsxLDkgQEAKK3sj PT09PT09PT09PT09PUNoZWNrcyBpZiBpdCBpcyBtYXRlcmlhbGl6ZWQgdmll dz09PT09PT09I30KK3slIGlmIHZpZCAlfQorU0VMRUNUCisgICAgQ0FTRSBX SEVOIGMucmVsa2luZCA9ICdtJyBUSEVOIEZhbHNlIEVMU0UgVHJ1ZSBFTkQg QXMgbV92aWV3CitGUk9NCisgICAgcGdfY2xhc3MgYworV0hFUkUKKyAgICBj Lm9pZCA9IHt7IHZpZCB9fTo6b2lkCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL3RlbXBsYXRlcy9ydWxl cy9zcWwvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxl cy90ZW1wbGF0ZXMvcnVsZXMvc3FsL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTkyN2U1YgotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZW1wbGF0ZXMv cnVsZXMvc3FsL2NyZWF0ZS5zcWwKQEAgLTAsMCArMSwyNiBAQAoreyMgPT09 PT09PT09PT09Q3JlYXRlIFJ1bGU9PT09PT09PT09PT09ICN9Cit7JSBpZiBk aXNwbGF5X2NvbW1lbnRzICV9CistLSBSdWxlOiB7eyBkYXRhLm5hbWUgfX0g T04ge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19 CisKKy0tIERST1AgUnVsZSB7eyBkYXRhLm5hbWUgfX0gT04ge3sgY29ubnxx dElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19OworCit7JSBlbmRp ZiAlfQoreyUgaWYgZGF0YS5uYW1lIGFuZCBkYXRhLnNjaGVtYSBhbmQgZGF0 YS52aWV3ICV9CitDUkVBVEUgT1IgUkVQTEFDRSBSVUxFIHt7IGNvbm58cXRJ ZGVudChkYXRhLm5hbWUpIH19IEFTCisgIE9OIHt7IGRhdGEuZXZlbnR8dXBw ZXIgaWYgZGF0YS5ldmVudCBlbHNlICdTRUxFQ1QnIH19IFRPIHt7IGNvbm58 cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS52aWV3KSB9fQoreyUgaWYgZGF0 YS5jb25kaXRpb24gJX0KKyAgV0hFUkUge3sgZGF0YS5jb25kaXRpb24gfX0K K3slIGVuZGlmICV9CisgIERPeyUgaWYgZGF0YS5pc19pbnN0ZWFkID09IFRy dWUgJX0KK3t7ICcgSU5TVEVBRCcgfX0KK3slIGVsc2UgJX0KK3t7ICcnIH19 Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5zdGF0ZW1lbnRzICV9Cit7eyBk YXRhLnN0YXRlbWVudHMucnN0cmlwKCc7JykgfX07Cit7JSBlbHNlICV9Cisg IE5PVEhJTkc7Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5jb21tZW50ICV9 CitDT01NRU5UIE9OIFJVTEUge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkg fX0gT04ge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnZpZXcp IH19IElTIHt7IGRhdGEuY29tbWVudHxxdExpdGVyYWwgfX07eyUgZW5kaWYg JX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL3NxbC9kZWxldGUuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL3RlbXBsYXRlcy9ydWxlcy9z cWwvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5jZjE4OTEzCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL3J1bGVzL3RlbXBsYXRlcy9ydWxlcy9zcWwvZGVsZXRlLnNx bApAQCAtMCwwICsxLDE2IEBACit7IyA9PT09PT09PSBEcm9wL0Nhc2NhZGUg UnVsZSA9PT09PT09PT0gI30KK3slIGlmIHJpZCAlfQorU0VMRUNUCisgICAg cncucnVsZW5hbWUsCisgICAgY2wucmVsbmFtZSwKKyAgICBuc3AubnNwbmFt ZQorRlJPTQorICAgIHBnX3Jld3JpdGUgcncKK0pPSU4gcGdfY2xhc3MgY2wg T04gY2wub2lkPXJ3LmV2X2NsYXNzCitKT0lOIHBnX25hbWVzcGFjZSBuc3Ag T04gbnNwLm9pZD1jbC5yZWxuYW1lc3BhY2UKK1dIRVJFCisgICAgcncub2lk PXt7IHJpZCB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBydWxlbmFtZSBhbmQg cmVsbmFtZSBhbmQgbnNwbmFtZSAlfQorRFJPUCBSVUxFIHt7IGNvbm58cXRJ ZGVudChydWxlbmFtZSkgfX0gT04ge3sgY29ubnxxdElkZW50KG5zcG5hbWUs IHJlbG5hbWUpIH19IHslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERSB7JSBlbmRp ZiAlfTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL3NxbC9wcm9wZXJ0aWVz LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZW1wbGF0ZXMv cnVsZXMvc3FsL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmFmZGQxMzkKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL3Nx bC9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDI3IEBACit7IyA9PT09PT09 PT09PT09PT09PT09IEZldGNoIFJ1bGVzID09PT09PT09PT09PT09PT09PT09 ICN9Cit7JSBpZiB0aWQgb3IgcmlkICV9CitTRUxFQ1QKKyAgICBydy5vaWQg QVMgb2lkLAorICAgIHJ3LnJ1bGVuYW1lIEFTIG5hbWUsCisgICAgcmVsbmFt ZSBBUyB2aWV3LAorICAgIENBU0UgV0hFTiByZWxraW5kID0gJ3InIFRIRU4g VFJVRSBFTFNFIEZBTFNFIEVORCBBUyBwYXJlbnRpc3RhYmxlLAorICAgIG5z cG5hbWUgQVMgc2NoZW1hLAorICAgIGRlc2NyaXB0aW9uIEFTIGNvbW1lbnQs CisgICAgeyMgPT09PT0gQ2hlY2sgd2hldGhlciBpdCBpcyBzeXN0ZW0gcnVs ZSBvciBub3QgPT09PT0gI30KKyAgICBDQVNFIFdIRU4gcncucnVsZW5hbWUg PSAnX1JFVFVSTicgVEhFTiBUcnVlIEVMU0UgRmFsc2UgRU5EIEFTIHN5c3Rl bV9ydWxlLAorICAgIENBU0UgV0hFTiBydy5ldl9lbmFibGVkICE9ICdEJyBU SEVOIFRydWUgRUxTRSBGYWxzZSBFTkQgQVMgZW5hYmxlZCwKKyAgICBwZ19n ZXRfcnVsZWRlZihydy5vaWQsIHRydWUpIEFTIGRlZmluaXRpb24KK0ZST00K KyAgICBwZ19yZXdyaXRlIHJ3CitKT0lOIHBnX2NsYXNzIGNsIE9OIGNsLm9p ZD1ydy5ldl9jbGFzcworSk9JTiBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5v aWQ9Y2wucmVsbmFtZXNwYWNlCitMRUZUIE9VVEVSIEpPSU4gcGdfZGVzY3Jp cHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPXJ3Lm9pZCBBTkQgZGVzLmNsYXNz b2lkPSdwZ19yZXdyaXRlJzo6cmVnY2xhc3MpCitXSEVSRQorICB7JSBpZiB0 aWQgJX0KKyAgICAgIGV2X2NsYXNzID0ge3sgdGlkIH19CisgIHslIGVsaWYg cmlkICV9CisgICAgICBydy5vaWQgPSB7eyByaWQgfX0KKyAgeyUgZW5kaWYg JX0KK09SREVSIEJZCisgICAgcncucnVsZW5hbWUKKyB7JSBlbmRpZiAlfQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL3RlbXBs YXRlcy9ydWxlcy9zcWwvcnVsZV9pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL3NxbC9ydWxlX2lkLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZGM2ZGJhCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVz L3RlbXBsYXRlcy9ydWxlcy9zcWwvcnVsZV9pZC5zcWwKQEAgLTAsMCArMSw5 IEBACit7Iz09PT09PT09QmVsb3cgd2lsbCBwcm92aWRlIHJ1bGUgaWQgZm9y IGxhc3QgY3JlYXRlZCBydWxlPT09PT09PT0jfQoreyUgaWYgcnVsZV9uYW1l ICV9CitTRUxFQ1QKKyAgICBydy5vaWQKK0ZST00KKyAgICBwZ19yZXdyaXRl IHJ3CitXSEVSRQorICAgIHJ3LnJ1bGVuYW1lPXt7IHJ1bGVfbmFtZXxxdExp dGVyYWwgfX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL3NxbC91cGRhdGUu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL3RlbXBsYXRlcy9y dWxlcy9zcWwvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5jMGQ0OWE4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3J1bGVzL3RlbXBsYXRlcy9ydWxlcy9zcWwvdXBk YXRlLnNxbApAQCAtMCwwICsxLDIyIEBACit7IyA9PT09PSBVcGRhdGUgUnVs ZSA9PT09PSAjfQoreyUgaWYgZGF0YS5ldmVudCBvciBkYXRhLmRvX2luc3Rl YWQgb3IgZGF0YS5jb25kaXRpb24gJX0KK0NSRUFURSBPUiBSRVBMQUNFIFJV TEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5uYW1lKSB9fSBBUworICAgIE9O IHslIGlmIGRhdGEuZXZlbnQgYW5kIGRhdGEuZXZlbnQgIT0gb19kYXRhLmV2 ZW50ICV9e3sgZGF0YS5ldmVudHx1cHBlciB9fXslIGVsc2UgJX17eyBvX2Rh dGEuZXZlbnR8dXBwZXIgfX17JSBlbmRpZiAlfQorICAgIFRPIHt7IGNvbm58 cXRJZGVudChvX2RhdGEuc2NoZW1hLCBvX2RhdGEudmlldykgfX0KK3slIGlm IGRhdGEuY29uZGl0aW9uIGFuZCBvX2RhdGEuY29uZGl0aW9uICE9IGRhdGEu Y29uZGl0aW9uICV9CisgICAgV0hFUkUge3sgZGF0YS5jb25kaXRpb24gfX0K K3slIGVsaWYgZGF0YS5jb25kaXRpb24gaXMgbm90IGRlZmluZWQgYW5kIG9f ZGF0YS5jb25kaXRpb24gJX0KKyAgICBXSEVSRSB7eyBvX2RhdGEuY29uZGl0 aW9uIH19Cit7JSBlbmRpZiAlfQorIERPeyUgaWYgZGF0YS5kb19pbnN0ZWFk IGluIFsndHJ1ZScsIFRydWVdICV9e3sgJyBJTlNURUFEJyB9fXslIGVsc2Ug JX17eyAnICcgfX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLnN0YXRlbWVu dHMgYW5kIGRhdGEuc3RhdGVtZW50cyAhPSBvX2RhdGEuc3RhdGVtZW50cyAl fQorIHt7IGRhdGEuc3RhdGVtZW50cy5yc3RyaXAoJzsnKSB9fTsKKyB7JSBl bGlmIGRhdGEuc3RhdGVtZW50cyBpcyBub3QgZGVmaW5lZCBhbmQgb19kYXRh LnN0YXRlbWVudHMgJX0KKyB7eyBvX2RhdGEuc3RhdGVtZW50cy5yc3RyaXAo JzsnKSB9fTsKK3slIGVsc2UgJX0KKyBOT1RISU5HOworeyUgZW5kaWYgJX0K K3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmNvbW1lbnQgIT0gb19kYXRhLmNv bW1lbnQgJX0KK0NPTU1FTlQgT04gUlVMRSB7eyBjb25ufHF0SWRlbnQob19k YXRhLm5hbWUpIH19IE9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEuc2NoZW1h LCBvX2RhdGEudmlldykgfX0gSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJh bCB9fTt7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL3N0YXRpYy9pbWcvY29sbC10YWJsZS5wbmcgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvc3RhdGljL2ltZy9jb2xsLXRhYmxlLnBuZwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwLi42ODBlODY0NTdlOGM0OGNkMDEzMjlmMDMwM2Q2 NjNiMDMwNGFiNDRkCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA1NTUKemNt ZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjM/d3lsYEdiTWYtVDxFdlMw SnI4Xj9CRjFlXmJ1P1R6bUQ/CnpzWE1Sa0olMFl8YFNXTWJvKmxqTXRaZTVD Z0U9b2MmaSlKOUBNLWhhd3xEUX1aOWVfND5lJW82MTMhfkBlaGJfNQp6Kj5t Kj0rb2YqfT1lPF4rYFNSWXFkKEVmK2RJM2UyeXcjWmJeOFdxJWp+K2RHe1Be K0hyJSY0dEpiJj11IVNkekgKeipRe0NkPUZPWFRAN30kOWBTUmh6aHMlfk5U ZGB1citPPSFmdVY0U18pdkYxb0swa2x7e1BwWUNGSjhQQHhwTCtFCnpfd1BT YHtQXzBtK2Z9UHBaUD43MykyMjtObzs+O1I7WF5nWjBZNVptekY3QkheJmlq IWozcSZTITMrLTFabG5QQAp6b0NPfHsjWCNCdmpOTUxWK1d7RiVKelgzX0Jy ZUNFS1E3aX1Ba2d9LSQ1Y3lkTyRUZW83TUc9K04jRm08cFhTbEEKekYqXk9m cnJWbU8maXohZyt2Y245TjtLYm9XZT5nM19NZElidGo1NXo0Njd3WXIoOFRm YERNO05nSn0qMlRzOXh0CnphOER2eVJMNyllPUNycDN5TWhuOEk8SV9nUlZU bkRzeG9WRGBHaDw2WmlXKzc5RnVvbVRERyNvXylnbjFsX0tAdAp6YkpMbGFY VzhzODYxQDheQHZFWjg/fU0zUUFgZHJuYnVRYX4/YGE9QDRkZVY9Zmh7TSRp ZiNmclNoZDc4cTlpNDsKekItSlhwQz4yT0M3I1NFRT1vJVg3OFdASGM4Q2FQ WlRiWTxAODw8KWQ3fGVVOHcrY2w9WmhsSDtTfHZuLWZoQVoyCmNQXz5EYmZm Kz1Ac3ArOT5mRXBNKVVIeDN2SVZDZyEwSmxzS2kyd2lxCgpsaXRlcmFsIDAK SGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvc3RhdGljL2ltZy90YWJsZS1yZXBsLXNtLnBuZyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9zdGF0aWMvaW1nL3RhYmxlLXJlcGwtc20ucG5nCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAuLjk2N2JkOTM3ZmI4OWM0ODNhOTUxNDZjODhm YjRjMDY2ZjZkYTU3MTEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDY3NQp6 Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXjB3QiE2Mz93eWxgR1hsNDc+eHBh TFJeN2QjaWBHYCZpJEtte14jMU8KenBIQUkqYj9APT5YVjBITWQtbSs7amJ+ KiRVbGAxSihRKT0pXlhZJDgkQTBHQF8/ZikoVGlCLTBvfnU5REVgNGhfCnpA M3MyT20oOGREZEk3bWgtZkdOengldWtieUxhIzJ5TGEjWXtyaXN8SiRuNTNA emJZSStZZGFTdzkwd0l3ZnF3bwp6KkZBb0dmQkRNQUgqYTVGdnU0ZWtIKmVt KGQtdzk/JVBIJkpIezMyK2J2PHdETn11azxSe2RNdSl+O1E8ZSpPQWEKenVV PmdIP0tBSD5wRWtMd2NZRGI2bFRualNNem45VGQ7YXxTPih7U35rS0hka2F4 ZD98LVBwd14lamYmXzl1STloCno9diUrbXtRZGopQTN1SjRgfVM/WTtke0NK P31TVzBrdl9lPXtlV05OOT1HWnBqI1ZvU0gqRENqWTE1e2hlUnFOOwp6OX1B eXpJJiM2T14jYF97eX1hdyhtMGpucj8qOCFNTDtqcElzZExZQ3VmRztNPnMw S0BPRmAzNFdVaE9mZjhkQTQKeiVva0NVanh+RFJ4JiNiMCMqIWV2VTxRWTBI YDBJeyZIfDZmVmolNFMjJT9GRz9TUENHby1VM2Q1fEAoYDZ4YS11Cno3Jntu KmprJmRAdD1aWXQjbSF3QitOYngmSXxPKHt4UU1LM2FfM1B8JntJXzY2ckNf PitPJnlOQ3g8QD5YeU1TJQp6VClrcXwlRzIyeVMoKGwoQl8mX0tAYlpZN156 YF5QRmZDaVFFYlc9dHc2SlMzWDFDT35ES0pgQnYlOU9PaS0kYG0Kem8wcyFY WGpuZGRkO2p8Ul4kcHQhNkRFanhDfEliTj0tNFAzb2VJMGB0U3pNPkFTXjlE ZjVNQ0BKWjBgJk41dEIkCnpneEpgekdUNDhURygzNjNDa2cwZyllX2Y7bDlh QGZSSUI4b1IzT0QqV01GOFpZaU9pdlU+SVUjVX1hKSNXbiF2cgp6VX18TXhG ej1uLURpalU1YDYtIWNsQEpYRW1TN0QpKWgxUjNXKUthaHJpWlFwWUdDa21e PmJQMGwrWGtLUndfR1IKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9zdGF0aWMvaW1nL3RhYmxl LXJlcGwucG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3N0YXRpYy9pbWcv dGFibGUtcmVwbC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmEwODJj NjdiOGMzMDdiNjczZDMyZmMwZGYxMmZiNWU4NTdmYzFmNwpHSVQgYmluYXJ5 IHBhdGNoCmxpdGVyYWwgODM5CnpjbVYtTjFHeE4mUCk8aDszS3xMazAwMGUx TkpMVHEwMDBtRzAwMG1PMHt7UjNDQGx8RDAwMDRAUCl0LXMwMDAwWAp6bUZK RG58Qn0hOXFTTilkKnpNOFo+RUdrJDw+dSQrPUh9WXI8KmQlPFczbEtpbzlL KHJ8QW94e2UjcmNGIX1ASCMKel8raHlBUjxpUjt0bmZnbT9sKys5RXU4OG1u Q1hTZ3tjRkRYTDhrNkRxM2taND5hXkRHLVFDXlotcm5FZS17OWNqCno7bzsl cDteTzF1PEteWSRocmozTz07LU9gPjlXQ3BveE18eXNYRDJ0c3BSRDN0Z05p Oz9Da0NCP2VGako+Z3d1ewp6c1g/RUBSPGhpN2sqYENpdngyNiRYcFhIeXFx YnRMdCp4KUd1an1qVShBQkBIeT8zZUJaalExKmxDbnBUeS1iZTEKek9NYU9t TlBAbWlpb3J+WSFCfmxwbzZUVUImMGRlbFIpKTdqQGJLe1JeNzhLUD9zTFo5 YW0zemshUUV1QSlLclMzCnpoX3luQiNaclg4T01rTEZ2OVluVHZhKWMqLWZx QyVYdD4hQGhvZ2JHVTUzRjtmeGJ3NHg8WXhjSHUzVENeWWlvZAp6XzRRK30p TXZOWlNEbmpNaUpoZ2xZTEI1KnFfPTkycUUrX3hfVzFidFZYVmAxcVImdX4j YV5xXlRCWG8lbCkxSUYKendZSWpseFZYNllfeEY+dio8K04pSWgqNX14IUc1 aiR4ZTtMU0Rubk8hYG1nNj0zdD1MUitQdFZwVV5kJDxZK0JRCnpfeTdPXjBk IUpNUXZnOGIqayU5IzAxMHFOUyN0bVkwN3c3OzA3dzh2JCFrNlUwMDctZExf dCYtKF8+JkBVXz0yNwp6S21qSVo3RklUUDRvKiVrWlhSQmMwM1d9QXBwZFlM c0Y9OGZCdj1LWGx6XlojUChWZ2o0azk0MHByRUx2dGZIIT4KeiZaeit3Sz0z dVN6eWpKanh8KHtiYFVad1ojd0s2XlEhe2Y1T0RrJnxUUlNeQHV6LVczbGUz R2ZvNGJ+WXAlRWo0Cnpob19nOW0kIzN2cFRFMHRLd3VEMUFVR3M2RUljQUlE JXczSkhafWsjNUVxfTJuM1NCN24mekchbjJgdy1ofGtLLQp6JDw1MHokU2Nl JkRsUCZGbCQ0ZzBTNShGWnEqcW5mKVlMTEUpWVVnTUhaYH1qZzQ3cSkpYEcy Vll3emduZl9XYlIKemhnJmt6bjM4O08wMDAwYmJWWFFuV01Pbj1JJTlIV1ZS VTV4R0I3YlBFaXAxSkZmbWp6RmdpM2RJeTV5YUZmfT9iCnpGck14JXNzSTIw QzNIbnRiWXgrNFdqYndkV05CdTMwNVVLIUZmQX1TRWlmQHVHQll8ZkcmKFJn RD07LVdGZmh1TwpSUmpkRjIwMDJvdlBESExrVjFoXmFzb3d3cQoKbGl0ZXJh bCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL3N0YXRpYy9pbWcvdGFibGUucG5nIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL3N0YXRpYy9pbWcvdGFibGUucG5nCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAuLjM3YjIyMjdkOGZlMGNmNzZiZGUyMzg1NTY3NjQwM2M1N2NjZmI1 NjkKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDU5Mwp6Y21lQVNATj8ob2xI eWB1VkJxIWlhMHZwXjB3QiE2Mz93eWxgR2JNZmpSMm56UzBKcjheP0Mxd3xD NyVEVVVkMkUKenR7WlBKLWhYLWpAJDt3OG88RG9gP0FGN2xZdEI3Uy11T2Fx X0tXV0d8NjktZXQyXjxoXnpnNW9lTG9VK2Q8KXozCnoqP1l8Z2h2bzBnN3Jm RCheR2E+VCVob2Ywdi1rYVFUPXZkdjtUeWQ8dWVNeCFjbFlreWQtdnwkemtt UDFnOWleRQp6Szc5MSgoY3tPRHBGVnhzeldAMSk3Y1hBRWVFSXpPXk9ZLUNL NiZ6RiY2K2lELW5AREhfVS0laz9fYSVvd1M0KlYKejYpUlMoVUF1UHVgdGA0 MHp5OSN5IT4zUTUtbzFPYmRpQ2xKOCNaaip4Tip+X08mPnBne1FVWHoqUk5s PFpyJUZyCnorcVdNLWVyKCZlWk80dXMtQGt0XnpPfTZ5PXJfaWFBaXJQK2hp NW1eZkU+O09rSH0mbT9FJUphQyRzSDxqMThWSAp6anYqNDRMKGc5cVlCQ1VM ZVZFV01UUEBENXp+fiZQeEZFXiM7b3RpbmNQKl5tLTJNNCVlYEhJYDZ+JmVv QUc3S0QKekJIanx5d1hmYntmN1FGfU1wcFQqejVmejhUeCtrMDlNN05PbFA+ ZFkodzJ5SSpFVEpCI0N4RFZ5TV82aHNxPyp7CnolYlIyeWpeXmJ7YmIwWndk KEJ1PUo9YkN4Pmp0R0czblIqTnBScUchS2xXSlo9Sih0bmgyaX1UPEZ5VTNl X3IhQwp6WT90SV9GNUI8ZyYoVXl2YGZ1WXQ7ZjhwNVJoZGlnX2NMdGJtKiMo NXdoSDdzKWVfZjtsOWFAZlJJQjhvUjNPRCoKeldNRjhaWWlPaXZVPklVI1V9 YSkjV24hdnJVfXxNeEZ6PW4tRGlqVTVgNi0hY2xASlhFbVM3RCkpaDFSM1cp S2FoClRyaVpRcFlHQ2ttXj5iUDBsK1hrS3chQTlQCgpsaXRlcmFsIDAKSGNt Vj9kMDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dHJpZ2dlcnMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dHJpZ2dlcnMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uZWQ2NzVjZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy9fX2luaXRfXy5weQpAQCAtMCww ICsxLDg5NCBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMK KyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmln aHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBU ZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBv c3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKworIiIiIEltcGxlbWVudHMgVHJpZ2dlciBOb2RlICIiIgorCitm cm9tIGZsYXNrIGltcG9ydCByZW5kZXJfdGVtcGxhdGUsIG1ha2VfcmVzcG9u c2UsIHJlcXVlc3QsIGpzb25pZnkKK2Zyb20gZmxhc2suZXh0LmJhYmVsIGlt cG9ydCBnZXR0ZXh0Citmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQg bWFrZV9qc29uX3Jlc3BvbnNlLCBcCisgICAgbWFrZV9yZXNwb25zZSBhcyBh amF4X3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IKK2Zyb20gcGdh ZG1pbi5icm93c2VyLnV0aWxzIGltcG9ydCBQR0NoaWxkTm9kZVZpZXcKK2Zy b20gcGdhZG1pbi5icm93c2VyLmNvbGxlY3Rpb24gaW1wb3J0IENvbGxlY3Rp b25Ob2RlTW9kdWxlCitpbXBvcnQgcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy5kYXRhYmFzZXMgYXMgZGF0YWJhc2UKK2Zyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu c2NoZW1hcy51dGlscyBpbXBvcnQgXAorICAgIHRyaWdnZXJfZGVmaW5pdGlv biBhcyBfdHJpZ2dlcl9kZWZpbml0aW9uCitmcm9tIHBnYWRtaW4udXRpbHMu YWpheCBpbXBvcnQgcHJlY29uZGl0aW9uX3JlcXVpcmVkCitmcm9tIHBnYWRt aW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCitmcm9tIGNvbmZp ZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKK2Zyb20gZnVuY3Rvb2xzIGlt cG9ydCB3cmFwcworaW1wb3J0IGpzb24KKworCitjbGFzcyBUcmlnZ2VyTW9k dWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxlKToKKyAgICAiIiIKKyAgICAgY2xh c3MgVHJpZ2dlck1vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSkKKworICAg ICAgICBBIG1vZHVsZSBjbGFzcyBmb3IgVHJpZ2dlciBub2RlIGRlcml2ZWQg ZnJvbSBDb2xsZWN0aW9uTm9kZU1vZHVsZS4KKworICAgIE1ldGhvZHM6Cisg ICAgLS0tLS0tLQorICAgICogX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQor ICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSBUcmln Z2VyIGFuZCBpdCdzIGJhc2UgbW9kdWxlLgorCisgICAgKiBnZXRfbm9kZXMo Z2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkKQorICAgICAgLSBNZXRob2QgaXMg dXNlZCB0byBnZW5lcmF0ZSB0aGUgYnJvd3NlciBjb2xsZWN0aW9uIG5vZGUu CisKKyAgICAqIG5vZGVfaW5vZGUoKQorICAgICAgLSBNZXRob2QgaXMgb3Zl cnJpZGRlbiBmcm9tIGl0cyBiYXNlIGNsYXNzIHRvIG1ha2UgdGhlIG5vZGUg YXMgbGVhZiBub2RlLgorCisgICAgKiBzY3JpcHRfbG9hZCgpCisgICAgICAt IExvYWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9yIHRyaWdnZXIsIHdoZW4gYW55 IG9mIHRoZSBzZXJ2ZXIgbm9kZSBpcworICAgICAgICBpbml0aWFsaXplZC4K KyAgICAiIiIKKworICAgIE5PREVfVFlQRSA9ICd0cmlnZ2VyJworICAgIENP TExFQ1RJT05fTEFCRUwgPSBnZXR0ZXh0KCJUcmlnZ2VycyIpCisKKyAgICBk ZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAg IiIiCisgICAgICAgIE1ldGhvZCBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhl IFRyaWdnZXJNb2R1bGUgYW5kIGl0J3MgYmFzZSBtb2R1bGUuCisKKyAgICAg ICAgQXJnczoKKyAgICAgICAgICAgICphcmdzOgorICAgICAgICAgICAgKipr d2FyZ3M6CisgICAgICAgICIiIgorICAgICAgICBzZWxmLm1pbl92ZXIgPSBO b25lCisgICAgICAgIHNlbGYubWF4X3ZlciA9IE5vbmUKKyAgICAgICAgc3Vw ZXIoVHJpZ2dlck1vZHVsZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dh cmdzKQorCisgICAgZGVmIEJhY2tlbmRTdXBwb3J0ZWQoc2VsZiwgbWFuYWdl ciwgKiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAgTG9hZCB0aGlz IG1vZHVsZSBpZiB2aWQgaXMgdmlldywgd2Ugd2lsbCBub3QgbG9hZCBpdCB1 bmRlcgorICAgICAgICBtYXRlcmlhbCB2aWV3CisgICAgICAgICIiIgorICAg ICAgICBpZiBzdXBlcihUcmlnZ2VyTW9kdWxlLCBzZWxmKS5CYWNrZW5kU3Vw cG9ydGVkKG1hbmFnZXIsICoqa3dhcmdzKToKKyAgICAgICAgICAgIGNvbm4g PSBtYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAg ICAgICAgICAjIElmIERCIGlzIG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4g ZXJyb3IgdG8gYnJvd3NlcgorICAgICAgICAgICAgaWYgbm90IGNvbm4uY29u bmVjdGVkKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlv bl9yZXF1aXJlZCgKKyAgICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUg c2VydmVyIGhhcyBiZWVuIGxvc3QhIgorICAgICAgICAgICAgICAgICAgICAp CisgICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICBpZiAndmlkJyBu b3QgaW4ga3dhcmdzOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisK KyAgICAgICAgICAgIHRlbXBsYXRlX3BhdGggPSAndHJpZ2dlci9zcWwvOS4x X3BsdXMnCisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8i LmpvaW4oCisgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVfcGF0aCwgJ2Jh Y2tlbmRfc3VwcG9ydC5zcWwnXSksIHZpZD1rd2FyZ3NbJ3ZpZCddKQorICAg ICAgICAgICAgc3RhdHVzLCByZXMgPSBjb25uLmV4ZWN1dGVfc2NhbGFyKFNR TCkKKyAgICAgICAgICAgICMgY2hlY2sgaWYgYW55IGVycm9ycworICAgICAg ICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAg ICAgICMgQ2hlY2sgdmlkIGlzIHZpZXcgbm90IG1hdGVyaWFsIHZpZXcKKyAg ICAgICAgICAgICMgdGhlbiB0cnVlLCBvdGhld2lzZSBmYWxzZQorICAgICAg ICAgICAgcmV0dXJuIHJlcworCisgICAgZGVmIGdldF9ub2RlcyhzZWxmLCBn aWQsIHNpZCwgZGlkLCBzY2lkLCAqKmt3YXJncyk6CisgICAgICAgICIiIgor ICAgICAgICBHZW5lcmF0ZSB0aGUgY29sbGVjdGlvbiBub2RlCisgICAgICAg ICMgVE9ETzo6CisgICAgICAgIFdlIGNhbiBoYXZlIGZvbGxvd2luZyBhcmd1 bWVudHMgZm9yIGRpZmZlcmVudCB0eXBlIG9mIHBhcmVudHMuCisgICAgICAg IGkuZS4KKyAgICAgICAgdGlkIC0gZm9yIHRhYmxlcworICAgICAgICB2aWQg LSBmb3IgbWF0ZXJpYWxpemVkIHZpZXdzCisgICAgICAgICIiIgorICAgICAg ICBhc3NlcnQoJ3RpZCcgaW4ga3dhcmdzIG9yICd2aWQnIGluIGt3YXJncykK KyAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rp b25fbm9kZSgKKyAgICAgICAgICBrd2FyZ3NbJ3RpZCddIGlmICd0aWQnIGlu IGt3YXJncyBlbHNlIGt3YXJnc1sndmlkJ10KKyAgICAgICAgICApCisKKyAg ICBAcHJvcGVydHkKKyAgICBkZWYgc2NyaXB0X2xvYWQoc2VsZik6CisgICAg ICAgICIiIgorICAgICAgICBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBz ZXJ2ZXIsIHdoZW4gYW55IG9mIHRoZSBzZXJ2ZXItZ3JvdXAgbm9kZSBpcwor ICAgICAgICBpbml0aWFsaXplZC4KKyAgICAgICAgIiIiCisgICAgICAgIHJl dHVybiBkYXRhYmFzZS5EYXRhYmFzZU1vZHVsZS5OT0RFX1RZUEUKKworICAg IEBwcm9wZXJ0eQorICAgIGRlZiBub2RlX2lub2RlKHNlbGYpOgorICAgICAg ICAiIiIKKyAgICAgICAgTG9hZCB0aGUgbW9kdWxlIG5vZGUgYXMgYSBsZWFm IG5vZGUKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBUcnVlCisKKyAg ICBAcHJvcGVydHkKKyAgICBkZWYgY3Nzc25pcHBldHMoc2VsZik6CisgICAg ICAgICIiIgorICAgICAgICBSZXR1cm5zIGEgc25pcHBldCBvZiBjc3MgdG8g aW5jbHVkZSBpbiB0aGUgcGFnZQorICAgICAgICAiIiIKKyAgICAgICAgc25p cHBldHMgPSBbCisgICAgICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRlKAor ICAgICAgICAgICAgICAgICAgICAidHJpZ2dlci9jc3MvdHJpZ2dlci5jc3Mi LAorICAgICAgICAgICAgICAgICAgICBub2RlX3R5cGU9c2VsZi5ub2RlX3R5 cGUKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIF0K KworICAgICAgICBmb3Igc3VibW9kdWxlIGluIHNlbGYuc3VibW9kdWxlczoK KyAgICAgICAgICAgIHNuaXBwZXRzLmV4dGVuZChzdWJtb2R1bGUuY3Nzc25p cHBldHMpCisKKyAgICAgICAgcmV0dXJuIHNuaXBwZXRzCisKK2JsdWVwcmlu dCA9IFRyaWdnZXJNb2R1bGUoX19uYW1lX18pCisKKworY2xhc3MgVHJpZ2dl clZpZXcoUEdDaGlsZE5vZGVWaWV3KToKKyAgICAiIiIKKyAgICBUaGlzIGNs YXNzIGlzIHJlc3BvbnNpYmxlIGZvciBnZW5lcmF0aW5nIHJvdXRlcyBmb3Ig VHJpZ2dlciBub2RlCisKKyAgICBNZXRob2RzOgorICAgIC0tLS0tLS0KKyAg ICAqIF9faW5pdF9fKCoqa3dhcmdzKQorICAgICAgLSBNZXRob2QgaXMgdXNl ZCB0byBpbml0aWFsaXplIHRoZSBUcmlnZ2VyVmlldyBhbmQgaXQncyBiYXNl IHZpZXcuCisKKyAgICAqIG1vZHVsZV9qcygpCisgICAgICAtIFRoaXMgcHJv cGVydHkgZGVmaW5lcyAoaWYgamF2YXNjcmlwdCkgZXhpc3RzIGZvciB0aGlz IG5vZGUuCisgICAgICAgIE92ZXJyaWRlIHRoaXMgcHJvcGVydHkgZm9yIHlv dXIgb3duIGxvZ2ljCisKKyAgICAqIGNoZWNrX3ByZWNvbmRpdGlvbigpCisg ICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0 b3Igd2hpY2ggd2lsbCBjaGVja3MKKyAgICAgICAgZGF0YWJhc2UgY29ubmVj dGlvbiBiZWZvcmUgcnVubmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNo ZXMKKyAgICAgICAgbWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9w ZXJ0aWVzIHRvIHNlbGYKKworICAgICogbGlzdCgpCisgICAgICAtIFRoaXMg ZnVuY3Rpb24gaXMgdXNlZCB0byBsaXN0IGFsbCB0aGUgVHJpZ2dlciBub2Rl cyB3aXRoaW4gdGhhdAorICAgICAgY29sbGVjdGlvbi4KKworICAgICogbm9k ZXMoKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgdXNlZCB0byBjcmVh dGUgYWxsIHRoZSBjaGlsZCBub2RlIHdpdGhpbiB0aGF0CisgICAgICAgIGNv bGxlY3Rpb24sIEhlcmUgaXQgd2lsbCBjcmVhdGUgYWxsIHRoZSBUcmlnZ2Vy IG5vZGUuCisKKyAgICAqIHByb3BlcnRpZXMoZ2lkLCBzaWQsIGRpZCwgc2Np ZCwgdGlkLCB0cmlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgc2hv dyB0aGUgcHJvcGVydGllcyBvZiB0aGUgc2VsZWN0ZWQgVHJpZ2dlciBub2Rl CisKKyAgICAqIGNyZWF0ZShnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQpCisg ICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgdGhlIG5ldyBUcmln Z2VyIG9iamVjdAorCisgICAgKiB1cGRhdGUoZ2lkLCBzaWQsIGRpZCwgc2Np ZCwgdGlkLCB0cmlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBk YXRlIHRoZSBkYXRhIGZvciB0aGUgc2VsZWN0ZWQgVHJpZ2dlciBub2RlCisK KyAgICAqIGRlbGV0ZShzZWxmLCBnaWQsIHNpZCwgc2NpZCwgdGlkLCB0cmlk KToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGRyb3AgdGhlIFRyaWdn ZXIgb2JqZWN0CisKKyAgICAqIGVuYWJsZShzZWxmLCBnaWQsIHNpZCwgc2Np ZCwgdGlkLCB0cmlkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGVu YWJsZS9kaXNhYmxlIFRyaWdnZXIgb2JqZWN0CisKKyAgICAqIG1zcWwoZ2lk LCBzaWQsIGRpZCwgc2NpZCwgdGlkLCB0cmlkKQorICAgICAgLSBUaGlzIGZ1 bmN0aW9uIGlzIHVzZWQgdG8gcmV0dXJuIG1vZGlmaWVkIFNRTCBmb3IgdGhl IHNlbGVjdGVkCisgICAgICAgIFRyaWdnZXIgbm9kZQorCisgICAgKiBnZXRf c3FsKGRhdGEsIHNjaWQsIHRpZCwgdHJpZCkKKyAgICAgIC0gVGhpcyBmdW5j dGlvbiB3aWxsIGdlbmVyYXRlIHNxbCBmcm9tIG1vZGVsIGRhdGEKKworICAg ICogc3FsKGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgdHJpZCk6CisgICAg ICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBzcWwgdG8gc2hvdyBp dCBpbiBzcWwgcGFuZSBmb3IgdGhlCisgICAgICAgIHNlbGVjdGVkIFRyaWdn ZXIgbm9kZS4KKworICAgICogZGVwZW5kZW5jeShnaWQsIHNpZCwgZGlkLCBz Y2lkLCB0aWQsIHRyaWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwg Z2VuZXJhdGUgZGVwZW5kZW5jeSBsaXN0IHNob3cgaXQgaW4gZGVwZW5kZW5j eQorICAgICAgICBwYW5lIGZvciB0aGUgc2VsZWN0ZWQgVHJpZ2dlciBub2Rl LgorCisgICAgKiBkZXBlbmRlbnQoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlk LCB0cmlkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRl IGRlcGVuZGVudCBsaXN0IHRvIHNob3cgaXQgaW4gZGVwZW5kZW50CisgICAg ICAgIHBhbmUgZm9yIHRoZSBzZWxlY3RlZCBUcmlnZ2VyIG5vZGUuCisKKyAg ICAqIGdldF90cmlnZ2VyX2Z1bmN0aW9ucyhnaWQsIHNpZCwgZGlkLCBzY2lk LCB0aWQsIHRyaWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0 dXJuIGxpc3Qgb2YgdHJpZ2dlciBmdW5jdGlvbnMgYXZhaWxhYmxlCisgICAg ICAgIHZpYSBBSkFYIHJlc3BvbnNlCisKKyAgICAqIF9jb2x1bW5fZGV0YWls cyh0aWQsIGNsaXN0KTo6CisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBm ZXRjaCB0aGUgY29sdW1ucyBmb3IgdHJpZ2dlcgorICAgICIiIgorCisgICAg bm9kZV90eXBlID0gYmx1ZXByaW50Lm5vZGVfdHlwZQorCisgICAgcGFyZW50 X2lkcyA9IFsKKyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAn Z2lkJ30sCisgICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3Np ZCd9LAorICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdkaWQn fSwKKyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnc2NpZCd9 LAorICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICd0aWQnfQor ICAgICAgICAgICAgXQorICAgIGlkcyA9IFsKKyAgICAgICAgICAgIHsndHlw ZSc6ICdpbnQnLCAnaWQnOiAndHJpZCd9CisgICAgICAgICAgICBdCisKKyAg ICBvcGVyYXRpb25zID0gZGljdCh7CisgICAgICAgICdvYmonOiBbCisgICAg ICAgICAgICB7J2dldCc6ICdwcm9wZXJ0aWVzJywgJ2RlbGV0ZSc6ICdkZWxl dGUnLCAncHV0JzogJ3VwZGF0ZSd9LAorICAgICAgICAgICAgeydnZXQnOiAn bGlzdCcsICdwb3N0JzogJ2NyZWF0ZSd9CisgICAgICAgIF0sCisgICAgICAg ICdkZWxldGUnOiBbeydkZWxldGUnOiAnZGVsZXRlJ31dLAorICAgICAgICAn Y2hpbGRyZW4nOiBbeydnZXQnOiAnY2hpbGRyZW4nfV0sCisgICAgICAgICdu b2Rlcyc6IFt7J2dldCc6ICdub2RlJ30sIHsnZ2V0JzogJ25vZGVzJ31dLAor ICAgICAgICAnc3FsJzogW3snZ2V0JzogJ3NxbCd9XSwKKyAgICAgICAgJ21z cWwnOiBbeydnZXQnOiAnbXNxbCd9LCB7J2dldCc6ICdtc3FsJ31dLAorICAg ICAgICAnc3RhdHMnOiBbeydnZXQnOiAnc3RhdGlzdGljcyd9XSwKKyAgICAg ICAgJ2RlcGVuZGVuY3knOiBbeydnZXQnOiAnZGVwZW5kZW5jaWVzJ31dLAor ICAgICAgICAnZGVwZW5kZW50JzogW3snZ2V0JzogJ2RlcGVuZGVudHMnfV0s CisgICAgICAgICdtb2R1bGUuanMnOiBbe30sIHt9LCB7J2dldCc6ICdtb2R1 bGVfanMnfV0sCisgICAgICAgICdnZXRfdHJpZ2dlcmZ1bmN0aW9ucyc6IFt7 J2dldCc6ICdnZXRfdHJpZ2dlcl9mdW5jdGlvbnMnfSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7J2dldCc6ICdnZXRfdHJpZ2dlcl9mdW5j dGlvbnMnfV0sCisgICAgICAgICdlbmFibGUnOiBbeydwdXQnOiAnZW5hYmxl X2Rpc2FibGVfdHJpZ2dlcid9XQorICAgIH0pCisKKyAgICBkZWYgY2hlY2tf cHJlY29uZGl0aW9uKGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBm dW5jdGlvbiB3aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxs IGNoZWNrcworICAgICAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBy dW5uaW5nIHZpZXcsIGl0IHdpbGwgYWxzbyBhdHRhY2hlcworICAgICAgICBt YW5hZ2VyLGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gc2Vs ZgorICAgICAgICAiIiIKKyAgICAgICAgQHdyYXBzKGYpCisgICAgICAgIGRl ZiB3cmFwKCphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICAjIEhlcmUg YXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJncyB3aWxsIGhvbGQgZ2lk LHNpZCxkaWQKKyAgICAgICAgICAgIHNlbGYgPSBhcmdzWzBdCisgICAgICAg ICAgICBzZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJ VkVSKS5jb25uZWN0aW9uX21hbmFnZXIoCisgICAgICAgICAgICAgICAga3dh cmdzWydzaWQnXQorICAgICAgICAgICAgKQorICAgICAgICAgICAgc2VsZi5j b25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlk J10pCisgICAgICAgICAgICAjIElmIERCIG5vdCBjb25uZWN0ZWQgdGhlbiBy ZXR1cm4gZXJyb3IgdG8gYnJvd3NlcgorICAgICAgICAgICAgaWYgbm90IHNl bGYuY29ubi5jb25uZWN0ZWQoKToKKyAgICAgICAgICAgICAgICByZXR1cm4g cHJlY29uZGl0aW9uX3JlcXVpcmVkKAorICAgICAgICAgICAgICAgICAgICBn ZXR0ZXh0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb25uZWN0 aW9uIHRvIHRoZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiCisgICAgICAgICAg ICAgICAgICAgICkKKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgICAg ICMgV2UgbmVlZCBkYXRsYXN0c3lzb2lkIHRvIGNoZWNrIGlmIGN1cnJlbnQg dHJpZ2dlciBpcyBzeXN0ZW0gdHJpZ2dlcgorICAgICAgICAgICAgc2VsZi5k YXRsYXN0c3lzb2lkID0gc2VsZi5tYW5hZ2VyLmRiX2luZm9ba3dhcmdzWydk aWQnXV1bJ2RhdGxhc3RzeXNvaWQnXQorCisgICAgICAgICAgICAjIHdlIHdp bGwgc2V0IHRlbXBsYXRlIHBhdGggZm9yIHNxbCBzY3JpcHRzCisgICAgICAg ICAgICBzZWxmLnRlbXBsYXRlX3BhdGggPSAndHJpZ2dlci9zcWwvOS4xX3Bs dXMnCisgICAgICAgICAgICAjIFN0b3JlIHNlcnZlciB0eXBlCisgICAgICAg ICAgICBzZWxmLnNlcnZlcl90eXBlID0gc2VsZi5tYW5hZ2VyLnNlcnZlcl90 eXBlCisgICAgICAgICAgICAjIFdlIG5lZWQgcGFyZW50J3MgbmFtZSBlZyB0 YWJsZSBuYW1lIGFuZCBzY2hlbWEgbmFtZQorICAgICAgICAgICAgIyB3aGVu IHdlIGNyZWF0ZSBuZXcgdHJpZ2dlciBpbiB1cGRhdGUgd2UgY2FuIGZldGNo IGl0IHVzaW5nCisgICAgICAgICAgICAjIHByb3BlcnR5IHNxbAorICAgICAg ICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRl bXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdnZXRfcGFyZW50LnNxbCddKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0aWQ9a3dhcmdzWyd0aWQnXSkKKyAg ICAgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlXzJk YXJyYXkoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPXJzZXQpCisKKyAgICAgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93 cyddOgorICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hID0gcm93WydzY2hl bWEnXQorICAgICAgICAgICAgICAgIHNlbGYudGFibGUgPSByb3dbJ3RhYmxl J10KKworICAgICAgICAgICAgIyBIZXJlIHdlIGFyZSBzdG9yaW5nIHRyaWdn ZXIgZGVmaW5pdGlvbgorICAgICAgICAgICAgIyBXZSB3aWxsIHVzZSBpdCB0 byBjaGVjayB0cmlnZ2VyIHR5cGUgZGVmaW5pdGlvbgorICAgICAgICAgICAg c2VsZi50cmlnZ2VyX2RlZmluaXRpb24gPSB7CisgICAgICAgICAgICAgICAg J1RSSUdHRVJfVFlQRV9ST1cnOiAgICAgICAgICgxIDw8IDApLAorICAgICAg ICAgICAgICAgICdUUklHR0VSX1RZUEVfQkVGT1JFJzogICAgICAoMSA8PCAx KSwKKyAgICAgICAgICAgICAgICAnVFJJR0dFUl9UWVBFX0lOU0VSVCc6ICAg ICAgKDEgPDwgMiksCisgICAgICAgICAgICAgICAgJ1RSSUdHRVJfVFlQRV9E RUxFVEUnOiAgICAgICgxIDw8IDMpLAorICAgICAgICAgICAgICAgICdUUklH R0VSX1RZUEVfVVBEQVRFJzogICAgICAoMSA8PCA0KSwKKyAgICAgICAgICAg ICAgICAnVFJJR0dFUl9UWVBFX1RSVU5DQVRFJzogICAgKDEgPDwgNSksCisg ICAgICAgICAgICAgICAgJ1RSSUdHRVJfVFlQRV9JTlNURUFEJzogICAgICgx IDw8IDYpCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBm KCphcmdzLCAqKmt3YXJncykKKworICAgICAgICByZXR1cm4gd3JhcAorCisg ICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBnZXRfdHJpZ2dlcl9m dW5jdGlvbnMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCB0cmlk PU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3 aWxsIHJldHVybiBsaXN0IG9mIHRyaWdnZXIgZnVuY3Rpb25zIGF2YWlsYWJs ZQorICAgICAgICB2aWEgQUpBWCByZXNwb25zZQorICAgICAgICAiIiIKKyAg ICAgICAgcmVzID0gW3snbGFiZWwnOiAnJywgJ3ZhbHVlJzogJyd9XQorCisg ICAgICAgICMgVE9ETzogUkVNT1ZFIFRydWUgQ29uZGl0aW9uICwgaXQncyBq dXN0IGZvciB0ZXN0aW5nCisgICAgICAgICMgSWYgc2VydmVyIHR5cGUgaXMg RURCLVBQQVMgdGhlbiB3ZSBhbHNvIG5lZWQgdG8gYWRkCisgICAgICAgICMg aW5saW5lIGVkYi1zcGwgYWxvbmcgd2l0aCBvcHRpb25zIGZldGNoZWQgYnkg YmVsb3cgc3FsCisKKyAgICAgICAgaWYgc2VsZi5zZXJ2ZXJfdHlwZSA9PSAn cHBhcyc6CisgICAgICAgICAgICByZXMuYXBwZW5kKHsKKyAgICAgICAgICAg ICAgICAnbGFiZWwnOiAnSW5saW5lIEVEQi1TUEwnLAorICAgICAgICAgICAg ICAgICd2YWx1ZSc6ICdJbmxpbmUgRURCLVNQTCcKKyAgICAgICAgICAgICAg ICB9KQorICAgICAgICB0cnk6CisgICAgICAgICAgICBTUUwgPSByZW5kZXJf dGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF90 cmlnZ2VyZnVuY3Rpb25zLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaG93X3N5c3RlbV9vYmplY3RzPXNlbGYuYmx1ZXBy aW50LnNob3dfc3lzdGVtX29iamVjdHMKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCisgICAgICAgICAgICBzdGF0dXMsIHJzZXQgPSBz ZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIGZv ciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgICAgIHJlcy5h cHBlbmQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeydsYWJlbCc6 IHJvd1sndGZ1bmN0aW9ucyddLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAndmFsdWUnOiByb3dbJ3RmdW5jdGlvbnMnXX0KKyAgICAgICAgICAg ICAgICAgICAgICAgICkKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25f cmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgIGRhdGE9cmVzLAorICAg ICAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAg ICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg bGlzdChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAg ICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGxpc3Qg YWxsIHRoZSB0cmlnZ2VyIG5vZGVzIHdpdGhpbiB0aGF0IGNvbGxlY3Rpb24u CisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIGdy b3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAg ICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgc2NpZDogU2NoZW1h IElECisgICAgICAgICAgICB0aWQ6IFRhYmxlIElECisKKyAgICAgICAgUmV0 dXJuczoKKyAgICAgICAgICAgIEpTT04gb2YgYXZhaWxhYmxlIHRyaWdnZXIg bm9kZXMKKyAgICAgICAgIiIiCisKKyAgICAgICAgU1FMID0gcmVuZGVyX3Rl bXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb3BlcnRpZXMu c3FsJ10pLCB0aWQ9dGlkKQorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYu Y29ubi5leGVjdXRlX2RpY3QoU1FMKQorCisgICAgICAgIGlmIG5vdCBzdGF0 dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXJlcykKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2Uo CisgICAgICAgICAgICAgICAgcmVzcG9uc2U9cmVzWydyb3dzJ10sCisgICAg ICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbm9kZXMoc2VsZiwg Z2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkKToKKyAgICAgICAgIiIiCisgICAg ICAgIFRoaXMgZnVuY3Rpb24gd2lsbCB1c2VkIHRvIGNyZWF0ZSBhbGwgdGhl IGNoaWxkIG5vZGUgd2l0aGluIHRoYXQgY29sbGVjdGlvbi4KKyAgICAgICAg SGVyZSBpdCB3aWxsIGNyZWF0ZSBhbGwgdGhlIHRyaWdnZXIgbm9kZS4KKwor ICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAg SUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBk aWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQK KyAgICAgICAgICAgIHRpZDogVGFibGUgSUQKKworICAgICAgICBSZXR1cm5z OgorICAgICAgICAgICAgSlNPTiBvZiBhdmFpbGFibGUgdHJpZ2dlciBjaGls ZCBub2RlcworICAgICAgICAiIiIKKyAgICAgICAgcmVzID0gW10KKyAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBs YXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ25vZGVzLnNxbCddKSwgdGlkPXRpZCkKKyAgICAgICAgc3RhdHVz LCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAg ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJzZXQpCisKKyAgICAgICAgZm9y IHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAgICByZXMuYXBwZW5k KAorICAgICAgICAgICAgICAgICAgICBzZWxmLmJsdWVwcmludC5nZW5lcmF0 ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAgICAgICAgICByb3db J29pZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgdGlkLAorICAgICAg ICAgICAgICAgICAgICAgICAgcm93WyduYW1lJ10sCisgICAgICAgICAgICAg ICAgICAgICAgICBpY29uPSJpY29uLXRyaWdnZXIiIGlmIHJvd1snaXNfZW5h YmxlX3RyaWdnZXInXQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAi aWNvbi10cmlnZ2VyLWJhZCIKKyAgICAgICAgICAgICAgICAgICAgKSkKKwor ICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAg ICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAK KyAgICAgICAgICAgICAgICApCisKKyAgICBkZWYgX2NvbHVtbl9kZXRhaWxz KHNlbGYsIHRpZCwgY2xpc3QpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhp cyBmdW5jdGlvbmFsIHdpbGwgZmV0Y2ggbGlzdCBvZiBjb2x1bW4gZm9yIHRy aWdnZXIKKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgdGlkOiBUYWJs ZSBPSUQKKyAgICAgICAgICAgIGNsaXN0OiBMaXN0IG9mIGNvbHVtbnMKKwor ICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgVXBkYXRlZCBwcm9wZXJ0 aWVzIGRhdGEgd2l0aCBjb2x1bW4KKyAgICAgICAgIiIiCisKKyAgICAgICAg U1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRl X3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ2dldF9jb2x1bW5zLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRpZD10aWQsIGNsaXN0PWNsaXN0KQorICAgICAgICBzdGF0 dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAg ICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKyAgICAgICAgIyAn dGdhdHRyJyBjb250YWlucyBsaXN0IG9mIGNvbHVtbnMgZnJvbSB0YWJsZSB1 c2VkIGluIHRyaWdnZXIKKyAgICAgICAgY29sdW1ucyA9IFtdCisKKyAgICAg ICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAgICBjb2x1 bW5zLmFwcGVuZCh7J2NvbHVtbic6IHJvd1snbmFtZSddfSkKKworICAgICAg ICByZXR1cm4gY29sdW1ucworCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgor ICAgIGRlZiBwcm9wZXJ0aWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQs IHRpZCwgdHJpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0 aW9uIHdpbGwgc2hvdyB0aGUgcHJvcGVydGllcyBvZiB0aGUgc2VsZWN0ZWQg dHJpZ2dlciBub2RlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBn aWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIg SUQKKyAgICAgICAgICAgIGRpZDogIERhdGFiYXNlIElECisgICAgICAgICAg ICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJ RAorICAgICAgICAgICAgdGlkOiBUYWJsZSBJRAorICAgICAgICAgICAgdHJp ZDogVHJpZ2dlciBJRAorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAg ICBKU09OIG9mIHNlbGVjdGVkIHRyaWdnZXIgbm9kZQorICAgICAgICAiIiIK KworICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3Nl bGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0aWQ9dGlkLCB0cmlkPXRyaWQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRsYXN0c3lzb2lkPXNlbGYu ZGF0bGFzdHN5c29pZCkKKworICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYu Y29ubi5leGVjdXRlX2RpY3QoU1FMKQorCisgICAgICAgIGlmIG5vdCBzdGF0 dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXJlcykKKworICAgICAgICAjIE1ha2luZyBjb3B5IG9mIG91 dHB1dCBmb3IgZnV0dXJlIHVzZQorICAgICAgICBkYXRhID0gZGljdChyZXNb J3Jvd3MnXVswXSkKKyAgICAgICAgaWYgZGF0YVsndGduYXJncyddID4gMToK KyAgICAgICAgICAgICMgV2Uga25vdyB0aGF0IHRyaWdnZXIgaGFzIG1vcmUg dGhhbiAxIGFyZ3VtZW50cywgbGV0J3Mgam9pbiB0aGVtCisgICAgICAgICAg ICAjIGFuZCBjb252ZXJ0IGl0IGFzIHN0cmluZworICAgICAgICAgICAgZGF0 YVsndGdhcmdzJ10gPSAnLCAnLmpvaW4oZGF0YVsndGdhcmdzJ10pCisKKyAg ICAgICAgaWYgbGVuKGRhdGFbJ3RnYXR0ciddKSA+IDE6CisgICAgICAgICAg ICBjb2x1bW5zID0gJywgJy5qb2luKGRhdGFbJ3RnYXR0ciddLnNwbGl0KCcg JykpCisgICAgICAgICAgICBkYXRhWydjb2x1bW5zJ10gPSBzZWxmLl9jb2x1 bW5fZGV0YWlscyh0aWQsIGNvbHVtbnMpCisKKyAgICAgICAgZGF0YSA9IF90 cmlnZ2VyX2RlZmluaXRpb24oZGF0YSkKKworICAgICAgICByZXR1cm4gYWph eF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZT1kYXRhLAor ICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICAgICAp CisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGNyZWF0ZShz ZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAgICAiIiIK KyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZXMgbmV3IHRoZSB0 cmlnZ2VyIG9iamVjdAorCisgICAgICAgICBBcmdzOgorICAgICAgICAgICBn aWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICBzaWQ6IFNlcnZlciBJ RAorICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgIHNj aWQ6IFNjaGVtYSBJRAorICAgICAgICAgICB0aWQ6IFRhYmxlIElECisgICAg ICAgICIiIgorICAgICAgICBkYXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVl c3QuZm9ybSBlbHNlIGpzb24ubG9hZHMoCisgICAgICAgICAgICByZXF1ZXN0 LmRhdGEuZGVjb2RlKCkKKyAgICAgICAgKQorICAgICAgICByZXF1aXJlZF9h cmdzID0geworICAgICAgICAgICAgJ25hbWUnOiAnTmFtZScsCisgICAgICAg ICAgICAndGZ1bmN0aW9uJzogJ1RyaWdnZXIgZnVuY3Rpb24nCisgICAgICAg IH0KKworICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAg ICAgICAgICBpZiBhcmcgbm90IGluIGRhdGE6CisgICAgICAgICAgICAgICAg cmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAg ICAgICAgIHN0YXR1cz00MTAsCisgICAgICAgICAgICAgICAgICAgICAgICBz dWNjZXNzPTAsCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcm1zZz1n ZXR0ZXh0KCJDb3VsZG4ndCBmaW5kIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIg KCVzKS4iICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXF1aXJlZF9hcmdzW2FyZ10pCisgICAgICAgICAgICAgICAgICAgICAgICAp CisKKyAgICAgICAgIyBBZGRpbmcgcGFyZW50IGludG8gZGF0YSBkaWN0LCB3 aWxsIGJlIHVzaW5nIGl0IHdoaWxlIGNyZWF0aW5nIHNxbAorICAgICAgICBk YXRhWydzY2hlbWEnXSA9IHNlbGYuc2NoZW1hCisgICAgICAgIGRhdGFbJ3Rh YmxlJ10gPSBzZWxmLnRhYmxlCisKKyAgICAgICAgdHJ5OgorICAgICAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBs YXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdjcmVhdGUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgY29ubj1zZWxmLmNvbm4pCisg ICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3Nj YWxhcihTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9cmVzKQorCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29u bi5leGVjdXRlX3NjYWxhcihTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICAjIHdlIG5lZWQg b2lkIHRvIHRvIGFkZCBvYmplY3QgaW4gdHJlZSBhdCBicm93c2VyCisgICAg ICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYu dGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ2dldF9vaWQuc3FsJ10pLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRpZD10aWQsIGRhdGE9ZGF0YSkKKyAg ICAgICAgICAgIHN0YXR1cywgdHJpZCA9IHNlbGYuY29ubi5leGVjdXRlX3Nj YWxhcihTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9dGlkKQorCisgICAgICAgICAgICByZXR1cm4ganNvbmlmeSgKKyAgICAg ICAgICAgICAgICBub2RlPXNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dz ZXJfbm9kZSgKKyAgICAgICAgICAgICAgICAgICAgdHJpZCwKKyAgICAgICAg ICAgICAgICAgICAgc2NpZCwKKyAgICAgICAgICAgICAgICAgICAgZGF0YVsn bmFtZSddLAorICAgICAgICAgICAgICAgICAgICBpY29uPSJpY29uLXRyaWdn ZXIiCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAg ICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAg IEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVsZXRlKHNlbGYsIGdp ZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgdHJpZCk6CisgICAgICAgICIiIgor ICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlcyBleGlzdGluZyB0 aGUgdHJpZ2dlciBvYmplY3QKKworICAgICAgICAgQXJnczoKKyAgICAgICAg ICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgc2lkOiBTZXJ2 ZXIgSUQKKyAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAg ICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgdGlkOiBUYWJsZSBJRAor ICAgICAgICAgICB0cmlkOiBUcmlnZ2VyIElECisgICAgICAgICIiIgorICAg ICAgICAjIEJlbG93IHdpbGwgZGVjaWRlIGlmIGl0J3Mgc2ltcGxlIGRyb3Ag b3IgZHJvcCB3aXRoIGNhc2NhZGUgY2FsbAorICAgICAgICBpZiBzZWxmLmNt ZCA9PSAnZGVsZXRlJzoKKyAgICAgICAgICAgICMgVGhpcyBpcyBhIGNhc2Nh ZGUgb3BlcmF0aW9uCisgICAgICAgICAgICBjYXNjYWRlID0gVHJ1ZQorICAg ICAgICBlbHNlOgorICAgICAgICAgICAgY2FzY2FkZSA9IEZhbHNlCisKKyAg ICAgICAgdHJ5OgorICAgICAgICAgICAgIyBXZSB3aWxsIGZpcnN0IGZldGNo IHRoZSB0cmlnZ2VyIG5hbWUgZm9yIGN1cnJlbnQgcmVxdWVzdAorICAgICAg ICAgICAgIyBzbyB0aGF0IHdlIGNyZWF0ZSB0ZW1wbGF0ZSBmb3IgZHJvcHBp bmcgdHJpZ2dlcgorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRl KCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9wZXJ0aWVzLnNx bCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQ9 dGlkLCB0cmlkPXRyaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGF0bGFzdHN5c29pZD1zZWxmLmRhdGxhc3RzeXNvaWQpCisKKyAg ICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGlj dChTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQorCisgICAgICAgICAgICBkYXRhID0gZGljdChyZXNbJ3Jvd3MnXVsw XSkKKworICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5q b2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdkZWxldGUuc3FsJ10pLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgY29u bj1zZWxmLmNvbm4sIGNhc2NhZGU9Y2FzY2FkZSkKKyAgICAgICAgICAgIHN0 YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAg ICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAg ICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAg ICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAgIGluZm89Z2V0 dGV4dCgiVHJpZ2dlciBpcyBkcm9wcGVkIiksCisgICAgICAgICAgICAgICAg ZGF0YT17CisgICAgICAgICAgICAgICAgICAgICdpZCc6IHRyaWQsCisgICAg ICAgICAgICAgICAgICAgICd0aWQnOiB0aWQKKyAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICApCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh cyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9u CisgICAgZGVmIHVwZGF0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0 aWQsIHRyaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlv biB3aWxsIHVwZGF0ZXMgZXhpc3RpbmcgdGhlIHRyaWdnZXIgb2JqZWN0CisK KyAgICAgICAgIEFyZ3M6CisgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3Vw IElECisgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgIGRp ZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAgc2NpZDogU2NoZW1hIElECisg ICAgICAgICAgIHRpZDogVGFibGUgSUQKKyAgICAgICAgICAgdHJpZDogVHJp Z2dlciBJRAorICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVlc3Qu Zm9ybSBpZiByZXF1ZXN0LmZvcm0gZWxzZSBqc29uLmxvYWRzKHJlcXVlc3Qu ZGF0YS5kZWNvZGUoKSkKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBT UUwgPSBzZWxmLmdldF9zcWwoc2NpZCwgdGlkLCB0cmlkLCBkYXRhKQorICAg ICAgICAgICAgaWYgU1FMIGFuZCBTUUwuc3RyaXAoJ1xuJykgYW5kIFNRTC5z dHJpcCgnICcpOgorICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2Vs Zi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgICAgICBp ZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAg ICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAg ICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICAgICAgaW5m bz0iVHJpZ2dlciB1cGRhdGVkIiwKKyAgICAgICAgICAgICAgICAgICAgZGF0 YT17CisgICAgICAgICAgICAgICAgICAgICAgICAnaWQnOiB0cmlkLAorICAg ICAgICAgICAgICAgICAgICAgICAgJ3RpZCc6IHRpZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICdzY2lkJzogc2NpZAorICAgICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAg ICAgICAgICAgICAgICAgICBzdWNjZXNzPTEsCisgICAgICAgICAgICAgICAg ICAgIGluZm89Ik5vdGhpbmcgdG8gdXBkYXRlIiwKKyAgICAgICAgICAgICAg ICAgICAgZGF0YT17CisgICAgICAgICAgICAgICAgICAgICAgICAnaWQnOiB0 cmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3RpZCc6IHRpZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICdzY2lkJzogc2NpZAorICAgICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKQorCisgICAgICAgIGV4 Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNo ZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBtc3FsKHNlbGYsIGdpZCwgc2lk LCBkaWQsIHNjaWQsIHRpZCwgdHJpZD1Ob25lKToKKyAgICAgICAgIiIiCisg ICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZXMgbW9kaWZpZWQg c3FsIGZvciB0cmlnZ2VyIG9iamVjdAorCisgICAgICAgICBBcmdzOgorICAg ICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICBzaWQ6 IFNlcnZlciBJRAorICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAg ICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAgICAgICAgICB0aWQ6IFRhYmxl IElECisgICAgICAgICAgIHRyaWQ6IFRyaWdnZXIgSUQgKFdoZW4gd29ya2lu ZyB3aXRoIGV4aXN0aW5nIHRyaWdnZXIpCisgICAgICAgICIiIgorICAgICAg ICBkYXRhID0gZGljdCgpCisgICAgICAgIGZvciBrLCB2IGluIHJlcXVlc3Qu YXJncy5pdGVtcygpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAg ICAgIGRhdGFba10gPSBqc29uLmxvYWRzKHYpCisgICAgICAgICAgICBleGNl cHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICBkYXRhW2tdID0gdgor CisgICAgICAgICMgQWRkaW5nIHBhcmVudCBpbnRvIGRhdGEgZGljdCwgd2ls bCBiZSB1c2luZyBpdCB3aGlsZSBjcmVhdGluZyBzcWwKKyAgICAgICAgZGF0 YVsnc2NoZW1hJ10gPSBzZWxmLnNjaGVtYQorICAgICAgICBkYXRhWyd0YWJs ZSddID0gc2VsZi50YWJsZQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAg IFNRTCA9IHNlbGYuZ2V0X3NxbChzY2lkLCB0aWQsIHRyaWQsIGRhdGEpCisK KyAgICAgICAgICAgIGlmIFNRTCBhbmQgU1FMLnN0cmlwKCdcbicpIGFuZCBT UUwuc3RyaXAoJyAnKToKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9q c29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1T UUwsCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAg ICAgICAgICAgICAgICAgICAgICApCisgICAgICAgIGV4Y2VwdCBFeGNlcHRp b24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgZGVmIGdldF9zcWwoc2Vs Ziwgc2NpZCwgdGlkLCB0cmlkLCBkYXRhKToKKyAgICAgICAgIiIiCisgICAg ICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5yYXRlIHNxbCBmcm9tIG1vZGVs IGRhdGEKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHRyaWQgaXMgbm90IE5v bmU6CisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpv aW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb3BlcnRpZXMuc3FsJ10pLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZD10aWQsIHRy aWQ9dHJpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk YXRsYXN0c3lzb2lkPXNlbGYuZGF0bGFzdHN5c29pZCkKKworICAgICAgICAg ICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkK KyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAg cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisK KyAgICAgICAgICAgIG9sZF9kYXRhID0gZGljdChyZXNbJ3Jvd3MnXVswXSkK KworICAgICAgICAgICAgIyBJZiBuYW1lIGlzIG5vdCBwcmVzZW50IGluIGRh dGEgdGhlbgorICAgICAgICAgICAgIyB3ZSB3aWxsIGZldGNoIGl0IGZyb20g b2xkIGRhdGEsIHdlIGFsc28gbmVlZCBzY2hlbWEgJiB0YWJsZSBuYW1lCisg ICAgICAgICAgICBpZiAnbmFtZScgbm90IGluIGRhdGE6CisgICAgICAgICAg ICAgICAgZGF0YVsnbmFtZSddID0gb2xkX2RhdGFbJ25hbWUnXQorCisgICAg ICAgICAgICBpZiBvbGRfZGF0YVsndGduYXJncyddID4gMToKKyAgICAgICAg ICAgICAgICAjIFdlIGtub3cgdGhhdCB0cmlnZ2VyIGhhcyBtb3JlIHRoYW4g MSBhcmd1bWVudHMsIGxldCdzIGpvaW4gdGhlbQorICAgICAgICAgICAgICAg IG9sZF9kYXRhWyd0Z2FyZ3MnXSA9ICcsICcuam9pbihvbGRfZGF0YVsndGdh cmdzJ10pCisKKyAgICAgICAgICAgIGlmIGxlbihvbGRfZGF0YVsndGdhdHRy J10pID4gMToKKyAgICAgICAgICAgICAgICBjb2x1bW5zID0gJywgJy5qb2lu KG9sZF9kYXRhWyd0Z2F0dHInXS5zcGxpdCgnICcpKQorICAgICAgICAgICAg ICAgIG9sZF9kYXRhWydjb2x1bW5zJ10gPSBzZWxmLl9jb2x1bW5fZGV0YWls cyh0aWQsIGNvbHVtbnMpCisKKyAgICAgICAgICAgIG9sZF9kYXRhID0gX3Ry aWdnZXJfZGVmaW5pdGlvbihvbGRfZGF0YSkKKworICAgICAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICIvIi5qb2lu KFtzZWxmLnRlbXBsYXRlX3BhdGgsICd1cGRhdGUuc3FsJ10pLAorICAgICAg ICAgICAgICAgIGRhdGE9ZGF0YSwgb19kYXRhPW9sZF9kYXRhLCBjb25uPXNl bGYuY29ubgorICAgICAgICAgICAgICAgICkKKyAgICAgICAgZWxzZToKKyAg ICAgICAgICAgIHJlcXVpcmVkX2FyZ3MgPSB7CisgICAgICAgICAgICAgICAg J25hbWUnOiAnTmFtZScsCisgICAgICAgICAgICAgICAgJ3RmdW5jdGlvbic6 ICdUcmlnZ2VyIGZ1bmN0aW9uJworICAgICAgICAgICAgfQorCisgICAgICAg ICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICAg ICAgaWYgYXJnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gZ2V0dGV4dCgnLS0gaW5jb21wbGV0ZSBkZWZpbml0aW9uJykKKwor ICAgICAgICAgICAgIyBJZiB0aGUgcmVxdWVzdCBmb3IgbmV3IG9iamVjdCB3 aGljaCBkbyBub3QgaGF2ZSBkaWQKKyAgICAgICAgICAgIFNRTCA9IHJlbmRl cl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnY3Jl YXRlLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYXRhPWRhdGEsIGNvbm49c2VsZi5jb25uKQorICAgICAgICByZXR1cm4g U1FMCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHNxbChz ZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIHRyaWQpOgorICAgICAg ICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlcyBy ZXZlcnNlIGVuZ2luZWVyZWQgc3FsIGZvciB0cmlnZ2VyIG9iamVjdAorCisg ICAgICAgICBBcmdzOgorICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJ RAorICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICBkaWQ6 IERhdGFiYXNlIElECisgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAg ICAgICAgICB0aWQ6IFRhYmxlIElECisgICAgICAgICAgIHRyaWQ6IFRyaWdn ZXIgSUQKKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGlkPXRpZCwgdHJpZD10cmlkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGxhc3RzeXNvaWQ9c2Vs Zi5kYXRsYXN0c3lzb2lkKQorCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9 IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgZGF0 YSA9IGRpY3QocmVzWydyb3dzJ11bMF0pCisgICAgICAgICAgICAjIEFkZGlu ZyBwYXJlbnQgaW50byBkYXRhIGRpY3QsIHdpbGwgYmUgdXNpbmcgaXQgd2hp bGUgY3JlYXRpbmcgc3FsCisgICAgICAgICAgICBkYXRhWydzY2hlbWEnXSA9 IHNlbGYuc2NoZW1hCisgICAgICAgICAgICBkYXRhWyd0YWJsZSddID0gc2Vs Zi50YWJsZQorCisgICAgICAgICAgICBpZiBkYXRhWyd0Z25hcmdzJ10gPiAx OgorICAgICAgICAgICAgICAgICMgV2Uga25vdyB0aGF0IHRyaWdnZXIgaGFz IG1vcmUgdGhhbiAxIGFyZ3VtZW50cywgbGV0J3Mgam9pbiB0aGVtCisgICAg ICAgICAgICAgICAgZGF0YVsndGdhcmdzJ10gPSAnLCAnLmpvaW4oZGF0YVsn dGdhcmdzJ10pCisKKyAgICAgICAgICAgIGlmIGxlbihkYXRhWyd0Z2F0dHIn XSkgPiAxOgorICAgICAgICAgICAgICAgIGNvbHVtbnMgPSAnLCAnLmpvaW4o ZGF0YVsndGdhdHRyJ10uc3BsaXQoJyAnKSkKKyAgICAgICAgICAgICAgICBk YXRhWydjb2x1bW5zJ10gPSBzZWxmLl9jb2x1bW5fZGV0YWlscyh0aWQsIGNv bHVtbnMpCisKKyAgICAgICAgICAgIGRhdGEgPSBfdHJpZ2dlcl9kZWZpbml0 aW9uKGRhdGEpCisKKyAgICAgICAgICAgIFNRTCA9IHNlbGYuZ2V0X3NxbChz Y2lkLCB0aWQsIE5vbmUsIGRhdGEpCisKKyAgICAgICAgICAgIHNxbF9oZWFk ZXIgPSAiLS0gVHJpZ2dlcjogezB9XG5cbi0tICIuZm9ybWF0KGRhdGFbJ25h bWUnXSkKKyAgICAgICAgICAgIHNxbF9oZWFkZXIgKz0gcmVuZGVyX3RlbXBs YXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rl bGV0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkYXRhPWRhdGEsIGNvbm49c2VsZi5jb25uKQorCisgICAg ICAgICAgICBTUUwgPSBzcWxfaGVhZGVyICsgJ1xuXG4nICsgU1FMLnN0cmlw KCdcbicpCisKKyAgICAgICAgICAgICMgSWYgdHJpZ2dlciBpcyBkaXNiYWxl ZCB0aGVuIGFkZCBzcWwgY29kZSBmb3IgdGhlIHNhbWUKKyAgICAgICAgICAg IGlmIG5vdCBkYXRhWydpc19lbmFibGVfdHJpZ2dlciddOgorICAgICAgICAg ICAgICAgIFNRTCArPSAnXG5cbicKKyAgICAgICAgICAgICAgICBTUUwgKz0g cmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ2VuYWJsZV9kaXNhYmxlX3RyaWdnZXIuc3FsJ10pLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1kYXRhLCBj b25uPXNlbGYuY29ubikKKworICAgICAgICAgICAgcmV0dXJuIGFqYXhfcmVz cG9uc2UocmVzcG9uc2U9U1FMKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRp b24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRp dGlvbgorICAgIGRlZiBlbmFibGVfZGlzYWJsZV90cmlnZ2VyKHNlbGYsIGdp ZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgdHJpZCk6CisgICAgICAgICIiIgor ICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZW5hYmxlIE9SIGRpc2FibGUg dGhlIGN1cnJlbnQgdHJpZ2dlciBvYmplY3QKKworICAgICAgICAgQXJnczoK KyAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAg c2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAor ICAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgdGlkOiBU YWJsZSBJRAorICAgICAgICAgICB0cmlkOiBUcmlnZ2VyIElECisgICAgICAg ICIiIgorCisgICAgICAgIGRhdGEgPSByZXF1ZXN0LmZvcm0gaWYgcmVxdWVz dC5mb3JtIGVsc2UganNvbi5sb2FkcyhyZXF1ZXN0LmRhdGEuZGVjb2RlKCkp CisKKyAgICAgICAgIyBDb252ZXJ0IHN0ciAndHJ1ZScgdG8gYm9vbGVhbiB0 eXBlCisgICAgICAgIGlzX2VuYWJsZV9mbGFnID0ganNvbi5sb2FkcyhkYXRh WydlbmFibGUnXSkKKworICAgICAgICB0cnk6CisKKyAgICAgICAgICAgIFNR TCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9w YXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGlkPXRpZCwgdHJpZD10cmlkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGxhc3RzeXNvaWQ9c2VsZi5k YXRsYXN0c3lzb2lkKQorCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNl bGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAgICAgICAgaWYgbm90 IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgb19kYXRh ID0gZGljdChyZXNbJ3Jvd3MnXVswXSkKKworICAgICAgICAgICAgIyBJZiBl bmFibGUgaXMgc2V0IHRvIHRydWUgbWVhbnMgd2UgbmVlZCBTUUwgdG8gZW5h YmxlCisgICAgICAgICAgICAjIGN1cnJlbnQgdHJpZ2dlciB3aGljaCBpcyBk aXNhYmxlZCBhbHJlYWR5IHNvIHdlIG5lZWQgdG8KKyAgICAgICAgICAgICMg YWx0ZXIgdGhlICdpc19lbmFibGVfdHJpZ2dlcicgZmxhZyBzbyB0aGF0IHdl IGNhbiByZW5kZXIKKyAgICAgICAgICAgICMgY29ycmVjdCBTUUwgZm9yIG9w ZXJhdGlvbgorICAgICAgICAgICAgb19kYXRhWydpc19lbmFibGVfdHJpZ2dl ciddID0gaXNfZW5hYmxlX2ZsYWcKKworICAgICAgICAgICAgIyBBZGRpbmcg cGFyZW50IGludG8gZGF0YSBkaWN0LCB3aWxsIGJlIHVzaW5nIGl0IHdoaWxl IGNyZWF0aW5nIHNxbAorICAgICAgICAgICAgb19kYXRhWydzY2hlbWEnXSA9 IHNlbGYuc2NoZW1hCisgICAgICAgICAgICBvX2RhdGFbJ3RhYmxlJ10gPSBz ZWxmLnRhYmxlCisKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZW5hYmxlX2Rpc2Fi bGVfdHJpZ2dlci5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YT1vX2RhdGEsIGNvbm49c2VsZi5jb25uKQorICAgICAg ICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIo U1FMKQorCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQorCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNl KAorICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAg ICBpbmZvPSJUcmlnZ2VyIHVwZGF0ZWQiLAorICAgICAgICAgICAgICAgIGRh dGE9eworICAgICAgICAgICAgICAgICAgICAnaWQnOiB0cmlkLAorICAgICAg ICAgICAgICAgICAgICAndGlkJzogdGlkLAorICAgICAgICAgICAgICAgICAg ICAnc2NpZCc6IHNjaWQKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICApCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3Ry KGUpKQorCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGRl cGVuZGVudHMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCB0cmlk KToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2V0IHRo ZSBkZXBlbmRlbnRzIGFuZCByZXR1cm4gYWpheCByZXNwb25zZQorICAgICAg ICBmb3IgdGhlIHRyaWdnZXIgbm9kZS4KKworICAgICAgICBBcmdzOgorICAg ICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNp ZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisg ICAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgIHRpZDog VGFibGUgSUQKKyAgICAgICAgICAgIHRyaWQ6IFRyaWdnZXIgSUQKKyAgICAg ICAgIiIiCisgICAgICAgIGRlcGVuZGVudHNfcmVzdWx0ID0gc2VsZi5nZXRf ZGVwZW5kZW50cygKKyAgICAgICAgICAgIHNlbGYuY29ubiwgdHJpZAorICAg ICAgICApCisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAg ICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW50c19yZXN1bHQsCisgICAg ICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5kZW5jaWVz KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgdHJpZCk6CisgICAg ICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldCB0aGUgZGVwZW5k ZW5jaWVzIGFuZCByZXR1cm4gYWpheCByZXNwb25zZQorICAgICAgICBmb3Ig dGhlIHRyaWdnZXIgbm9kZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAg ICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2Vy dmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAg ICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgIHRpZDogVGFibGUg SUQKKyAgICAgICAgICAgIHRyaWQ6IFRyaWdnZXIgSUQKKworICAgICAgICAi IiIKKyAgICAgICAgZGVwZW5kZW5jaWVzX3Jlc3VsdCA9IHNlbGYuZ2V0X2Rl cGVuZGVuY2llcygKKyAgICAgICAgICAgIHNlbGYuY29ubiwgdHJpZAorICAg ICAgICApCisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAg ICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW5jaWVzX3Jlc3VsdCwKKyAg ICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQor CitUcmlnZ2VyVmlldy5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3N0 YXRpYy9pbWcvY29sbC10cmlnZ2VyLnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90cmlnZ2Vycy9zdGF0aWMvaW1nL2NvbGwtdHJpZ2dlci5wbmcKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMC4uM2MzMzk0MDZmYTMyNWRhZDY3ZjU5MTQx YTZhMDhhNTMzNGRlYmNkYQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzUw CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeMHdCITczPyQjKWVGUEZ2NUFY P2IxPTZraVBVPXJ3VD1NREJnYTV4UAp6XzhvdXd8TD4mI0EyWGp7Y1Ijdy1W Qkl7Kz9hUlppOTcoIyp4Q0UkX3VfVllabjhEJU1qV2kmS3Ylbio9NylYMTcK enZEP1hQSjBLJl4pNVM0Xzw5ZjB7a1djfnhiODBkeGh4NUA7UHIpKyotYlE5 ai1tQW9Tdk5UVDNHK0Y5NkNEVHRVCnp5cyhnb0RedkdYZlZWZ0VzX1hZbWc3 QHkoKTZ3WW97RE18KlVtcVZVbzhyPkR2eTlYSW42IzN0N0hgY0dKPmxifgp6 YHU2VEBnPjVoOUcpNWRjdTtmU3MzcXc8dk0yZX5tZGtXQkkpZV9mO2w5YUBm UklCOG9SM09EKldNRjhaWWlPaXYKelU+SVUjVX1hKSNXbiF2clV9fE14Rno9 bi1EaWpVNWA2LSFjbEBKWEVtUzdEKSloMVIzVylLYWhyaVpRcFlHQ2ttCkxe PmJQMGwrWGtLQVIlPzMKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy9zdGF0aWMv aW1nL3RyaWdnZXItYmFkLnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90 cmlnZ2Vycy9zdGF0aWMvaW1nL3RyaWdnZXItYmFkLnBuZwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwLi42Y2MyZmU5NmM4ZjIzNGE3MzY3MmNjNzNmZDI3MmEx NWZjN2RlNGY5CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA2MTAKemNtZUFT QE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjM/d3lsYEdiTWYmajZuZ1MwTFRH QDEqfDMjVS1CfW8lO1hkCnpAQmpiYmZCZzlNPi1VZkVLbVBwdGNrMCNpPnEk dlI4NWt+dk07PHdIO0BJREJsY3l7Xj5oNjZ2R3Q7PyE9RiNaYgp6WntfN2or YFg1cytfMkJxPjBAfCFMfHk7NHZhKVlRTVBLdnNfRTxaNzM9NGJqQEJoeGpH cEBTbFJBOSowK310bDIKejhLMEFxSzdAdzhfWENRMVNvRi1CdjJWfWsjS2Uh JChIfXhXLXV3RSFiOVhtZXpoTG8heXwrP1JLTGk2c2VCWmdiCnp0PG97Pktl WD19UC1BZkxkbW8+N3VDOHpGPnxhfTBfJT1gMzw+S31zRENvVm5fZ2ZkJipY SEswMz1MbXVZZDdjQQp6ZDxZREQ9akhYKio9NDQpKkdueiE3cGtoeTYlXmgm SVVqTkpuKDU7R1R3WT1RUHBBMW4mb2g8O2Aye21MSmlDencKejxadT52TD4y PlM0PXtFK25RYUdURWJ3JTM0M1c1O2QtZntkcCMmYioybGNaMW5zPVdyYDJM WFpAWX0hZ1pIJj1JCnpMUkEtKyNOVSFUX0R7cyFXc1kzT15VN2IwJXxUVSlp JTtma2VBU1l9Xm9EUXdZMk5lVmQrZEcpYTxtREFzV3hUawp6XnMhN0BYPHwx KWFOXm1nZmcwMVVeY0p9fll6QG1kKighZX10Tmc7LXVabyRQJjVDWjFQbklt cEp0SDJtPyVJdTwKekA+TTVwJG9FLTF0bDMhP29GWnNgPU8obE4rY3dWJFBz K29laUFUeF9vYlVefihFeE8tWUtkel5ObEljI3MjUzdQCnpEdik5QEdCN21N SDg5cFN1bX58VXZOQU5jR08qTShGdGFpK3hjcUVJNXtpYzB7RktiSk81N1My P0gwSFApV0cyQgpMPmdUZX5EV000Zkk3U0RBCgpsaXRlcmFsIDAKSGNtVj9k MDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJp Z2dlcnMvc3RhdGljL2ltZy90cmlnZ2VyLnBuZyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy90cmlnZ2Vycy9zdGF0aWMvaW1nL3RyaWdnZXIucG5nCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAuLjNiNDEzZTRhNjQ4Yzk5OWMwZGNjMDA1YWFh ZjAyYTcxMGJlNDQxNGIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDMyNAp6 Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXjB3QiE3Mz8kIyllRlBIRjNoKVZX MT02a2lQVT1yd1Q9TURCc3NCSXoKent7TWdjfEJ1Pz11VHZqaV9CeWV7V1la JFVfNEF6JFk+MipqYS1HeDhXa0EpOEJ8KDB7Mz1ZcTNxeWFnYzFzOypiCnpL LXZTMC1BLW9QMFUzZHdFey03XypPTDwobkI3IWVJaHMlMjs1YiFLN30jTG88 bEw7I3Z0XjZQMkNaZUVLN0NTUgp6Nmo7cDY7am41KCtQT0tGb0kwRGJ1NC0q Q1RYdUsxSWNJfXBgWjxUUUpGN1hmVz0+KmE0cjU/PVJXSWFxWFhFc3YKeksq TG9fVHE4PFM1PSZDOGw4YUotNm9aazBwYG9zVXB7fGl9aD1IKmM1RSZZNDg8 PCVjN0BWQlVUWSNiPUgkTnBhCnJ0ckRjY0stYSgkczMqazgqdmlEaiVEX3o5 eiFhJEEpYiE5YktuKUNAdTZ7MS1vRCFNPDVoaWI2CgpsaXRlcmFsIDAKSGNt Vj9kMDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dHJpZ2dlcnMvdGVtcGxhdGVzL3RyaWdnZXIvY3NzL3RyaWdnZXIuY3NzIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBsYXRlcy90cmln Z2VyL2Nzcy90cmlnZ2VyLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi44MTFjODM4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBsYXRlcy90cmlnZ2VyL2Nz cy90cmlnZ2VyLmNzcwpAQCAtMCwwICsxLDIwIEBACisuaWNvbi1jb2xsLXRy aWdnZXIgeworICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3t7IHVybF9mb3Io J05PREUtdHJpZ2dlci5zdGF0aWMnLCBmaWxlbmFtZT0naW1nL2NvbGwtdHJp Z2dlci5wbmcnICl9fScpICFpbXBvcnRhbnQ7CisgIGJhY2tncm91bmQtcmVw ZWF0OiBuby1yZXBlYXQ7CisgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsKKyAg dmVydGljYWwtYWxpZ246IG1pZGRsZTsKKyAgaGVpZ2h0OiAxLjNlbTsKK30K KworLmljb24tdHJpZ2dlciB7CisgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgn e3sgdXJsX2ZvcignTk9ERS10cmlnZ2VyLnN0YXRpYycsIGZpbGVuYW1lPSdp bWcvdHJpZ2dlci5wbmcnKSB9fScpICFpbXBvcnRhbnQ7CisgIGJhY2tncm91 bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgIGFsaWduLWNvbnRlbnQ6IGNlbnRl cjsKKyAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKKyAgaGVpZ2h0OiAxLjNl bTsKK30KKworLmljb24tdHJpZ2dlci1iYWQgeworICBiYWNrZ3JvdW5kLWlt YWdlOiB1cmwoJ3t7IHVybF9mb3IoJ05PREUtdHJpZ2dlci5zdGF0aWMnLCBm aWxlbmFtZT0naW1nL3RyaWdnZXItYmFkLnBuZycpIH19JykgIWltcG9ydGFu dDsKKyAgYm9yZGVyLXJhZGl1czogMTBweAorfQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBsYXRlcy90cmlnZ2Vy L2pzL3RyaWdnZXIuanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dl cnMvdGVtcGxhdGVzL3RyaWdnZXIvanMvdHJpZ2dlci5qcwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTg1YThjCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBs YXRlcy90cmlnZ2VyL2pzL3RyaWdnZXIuanMKQEAgLTAsMCArMSw1MzkgQEAK K2RlZmluZSgKKyAgICAgICAgWydqcXVlcnknLCAndW5kZXJzY29yZScsICd1 bmRlcnNjb3JlLnN0cmluZycsICdwZ2FkbWluJywgJ3BnYWRtaW4uYnJvd3Nl cicsCisgICAgICAgICdiYWNrZm9ybScsICdhbGVydGlmeScsICdwZ2FkbWlu LmJyb3dzZXIuY29sbGVjdGlvbiddLAorZnVuY3Rpb24oJCwgXywgUywgcGdB ZG1pbiwgcGdCcm93c2VyLCBCYWNrZm9ybSwgYWxlcnRpZnkpIHsKKworICBp ZiAoIXBnQnJvd3Nlci5Ob2Rlc1snY29sbC10cmlnZ2VyJ10pIHsKKyAgICB2 YXIgdHJpZ2dlcnMgPSBwZ0FkbWluLkJyb3dzZXIuTm9kZXNbJ2NvbGwtdHJp Z2dlciddID0KKyAgICAgIHBnQWRtaW4uQnJvd3Nlci5Db2xsZWN0aW9uLmV4 dGVuZCh7CisgICAgICAgIG5vZGU6ICd0cmlnZ2VyJywKKyAgICAgICAgbGFi ZWw6ICd7eyBfKCdUcmlnZ2VycycpIH19JywKKyAgICAgICAgdHlwZTogJ2Nv bGwtdHJpZ2dlcicsCisgICAgICAgIGNvbHVtbnM6IFsnbmFtZScsICdvaWQn LCAnZGVzY3JpcHRpb24nXQorICAgICAgfSk7CisgIH07CisKKyAgaWYgKCFw Z0Jyb3dzZXIuTm9kZXNbJ3RyaWdnZXInXSkgeworICAgIHBnQWRtaW4uQnJv d3Nlci5Ob2Rlc1sndHJpZ2dlciddID0gcGdBZG1pbi5Ccm93c2VyLk5vZGUu ZXh0ZW5kKHsKKyAgICAgIHBhcmVudF90eXBlOiBbJ3RhYmxlJywgJ3ZpZXcn LCAnbWF0ZXJpYWxpemVkX3ZpZXcnXSwKKyAgICAgIGNvbGxlY3Rpb25fdHlw ZTogWydjb2xsLXRhYmxlJ10sCisgICAgICB0eXBlOiAndHJpZ2dlcicsCisg ICAgICBsYWJlbDogJ3t7IF8oJ1RyaWdnZXInKSB9fScsCisgICAgICBoYXNT UUw6ICB0cnVlLAorICAgICAgaGFzRGVwZW5kczogdHJ1ZSwKKyAgICAgIElu aXQ6IGZ1bmN0aW9uKCkgeworICAgICAgICAvKiBBdm9pZCBtdWxpdHBsZSBy ZWdpc3RyYXRpb24gb2YgbWVudXMgKi8KKyAgICAgICAgaWYgKHRoaXMuaW5p dGlhbGl6ZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhp cy5pbml0aWFsaXplZCA9IHRydWU7CisKKyAgICAgICAgcGdCcm93c2VyLmFk ZF9tZW51cyhbeworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfdHJpZ2dlcl9v bl9jb2xsJywgbm9kZTogJ2NvbGwtdHJpZ2dlcicsIG1vZHVsZTogdGhpcywK KyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNh bGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0 ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdU cmlnZ2VyLi4uJykgfX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24g aWNvbi10cmlnZ2VyJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNr OiB0cnVlfSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUnCisgICAg ICAgIH0seworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfdHJpZ2dlcicsIG5v ZGU6ICd0cmlnZ2VyJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxp ZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29i al9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScs IHByaW9yaXR5OiA0LCBsYWJlbDogJ3t7IF8oJ1RyaWdnZXIuLi4nKSB9fScs CisgICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLXRyaWdnZXInLCBk YXRhOiB7YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6IHRydWV9LAorICAgICAg ICAgIGVuYWJsZTogJ2NhbkNyZWF0ZScKKyAgICAgICAgfSx7CisgICAgICAg ICAgbmFtZTogJ2NyZWF0ZV90cmlnZ2VyX29uVGFibGUnLCBub2RlOiAndGFi bGUnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydvYmpl Y3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRp ZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6 IDQsIGxhYmVsOiAne3sgXygnVHJpZ2dlci4uLicpIH19JywKKyAgICAgICAg ICBpY29uOiAnd2NUYWJJY29uIGljb24tdHJpZ2dlcicsIGRhdGE6IHthY3Rp b246ICdjcmVhdGUnLCBjaGVjazogdHJ1ZX0sCisgICAgICAgICAgZW5hYmxl OiAnY2FuQ3JlYXRlJworICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAn ZW5hYmxlX3RyaWdnZXInLCBub2RlOiAndHJpZ2dlcicsIG1vZHVsZTogdGhp cywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10s IGNhbGxiYWNrOiAnZW5hYmxlX3RyaWdnZXInLAorICAgICAgICAgIGNhdGVn b3J5OiAnY29ubmVjdCcsIHByaW9yaXR5OiAzLCBsYWJlbDogJ3t7IF8oJ0Vu YWJsZSB0cmlnZ2VyJykgfX0nLAorICAgICAgICAgIGljb246ICdmYSBmYS1j aGVjaycsIGVuYWJsZSA6ICdjYW5DcmVhdGVfd2l0aF90cmlnZ2VyX2VuYWJs ZScKKyAgICAgICAgfSx7CisgICAgICAgICAgbmFtZTogJ2Rpc2FibGVfdHJp Z2dlcicsIG5vZGU6ICd0cmlnZ2VyJywgbW9kdWxlOiB0aGlzLAorICAgICAg ICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6 ICdkaXNhYmxlX3RyaWdnZXInLAorICAgICAgICAgIGNhdGVnb3J5OiAnZHJv cCcsIHByaW9yaXR5OiAzLCBsYWJlbDogJ3t7IF8oJ0Rpc2FibGUgdHJpZ2dl cicpIH19JywKKyAgICAgICAgICBpY29uOiAnZmEgZmEtdGltZXMnLCBlbmFi bGUgOiAnY2FuQ3JlYXRlX3dpdGhfdHJpZ2dlcl9kaXNhYmxlJworICAgICAg ICB9LHsKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX3RyaWdnZXInLCBub2Rl OiAndmlldycsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBb J29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJv cGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlv cml0eTogNCwgbGFiZWw6ICd7eyBfKCdUcmlnZ2VyLi4uJykgfX0nLAorICAg ICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi10cmlnZ2VyJywgZGF0YTog e2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNrOiB0cnVlfSwKKyAgICAgICAgICBl bmFibGU6ICdjYW5DcmVhdGUnCisgICAgICAgIH0KKyAgICAgICAgXSk7Cisg ICAgICB9LAorICAgICAgY2FsbGJhY2tzOiB7CisgICAgICAgIC8qIEVuYWJs ZSB0cmlnZ2VyICovCisgICAgICAgIGVuYWJsZV90cmlnZ2VyOiBmdW5jdGlv bihhcmdzKSB7CisgICAgICAgICAgdmFyIGlucHV0ID0gYXJncyB8fCB7fTsK KyAgICAgICAgICBvYmogPSB0aGlzLAorICAgICAgICAgIHQgPSBwZ0Jyb3dz ZXIudHJlZSwKKyAgICAgICAgICBpID0gaW5wdXQuaXRlbSB8fCB0LnNlbGVj dGVkKCksCisgICAgICAgICAgZCA9IGkgJiYgaS5sZW5ndGggPT0gMSA/IHQu aXRlbURhdGEoaSkgOiB1bmRlZmluZWQ7CisKKyAgICAgICAgICBpZiAoIWQp CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICB2YXIg ZGF0YSA9IGQ7CisgICAgICAgICAgJC5hamF4KHsKKyAgICAgICAgICAgIHVy bDogb2JqLmdlbmVyYXRlX3VybChpLCAnZW5hYmxlJyAsIGQsIHRydWUpLAor ICAgICAgICAgICAgdHlwZTonUFVUJywKKyAgICAgICAgICAgIGRhdGE6IHsn ZW5hYmxlJyA6IHRydWV9LAorICAgICAgICAgICAgZGF0YVR5cGU6ICJqc29u IiwKKyAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykgeworICAg ICAgICAgICAgICBpZiAocmVzLnN1Y2Nlc3MgPT0gMSkgeworICAgICAgICAg ICAgICAgIGFsZXJ0aWZ5LnN1Y2Nlc3MoInt7IF8oJyIgKyByZXMuaW5mbyAr ICInKSB9fSIpOworICAgICAgICAgICAgICAgIHQucmVtb3ZlSWNvbihpKTsK KyAgICAgICAgICAgICAgICBkYXRhLmljb24gPSAnaWNvbi10cmlnZ2VyJzsK KyAgICAgICAgICAgICAgICB0LmFkZEljb24oaSwge2ljb246IGRhdGEuaWNv bn0pOworICAgICAgICAgICAgICAgIHQudW5sb2FkKGkpOworICAgICAgICAg ICAgICAgIHQuc2V0SW5vZGUoaSk7CisgICAgICAgICAgICAgICAgdC5kZXNl bGVjdChpKTsKKyAgICAgICAgICAgICAgICAvLyBGZXRjaCB1cGRhdGVkIGRh dGEgZnJvbSBzZXJ2ZXIKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1 bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgdC5zZWxlY3QoaSk7Cisg ICAgICAgICAgICAgICAgfSwgMTApOworICAgICAgICAgICAgICB9CisgICAg ICAgICAgICB9LAorICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uKHhociwg c3RhdHVzLCBlcnJvcikgeworICAgICAgICAgICAgICB0cnkgeworICAgICAg ICAgICAgICAgIHZhciBlcnIgPSAkLnBhcnNlSlNPTih4aHIucmVzcG9uc2VU ZXh0KTsKKyAgICAgICAgICAgICAgICBpZiAoZXJyLnN1Y2Nlc3MgPT0gMCkg eworICAgICAgICAgICAgICAgICAgbXNnID0gUygne3sgXygnICsgZXJyLmVy cm9ybXNnICsgJyl9fScpLnZhbHVlKCk7CisgICAgICAgICAgICAgICAgICBh bGVydGlmeS5lcnJvcigie3sgXygnIiArIGVyci5lcnJvcm1zZyArICInKSB9 fSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfSBjYXRj aCAoZSkge30KKyAgICAgICAgICAgICAgdC51bmxvYWQoaSk7CisgICAgICAg ICAgICB9CisgICAgICAgICAgfSkKKyAgICAgICAgfSwKKyAgICAgICAgLyog RGlzYWJsZSB0cmlnZ2VyICovCisgICAgICAgIGRpc2FibGVfdHJpZ2dlcjog ZnVuY3Rpb24oYXJncykgeworICAgICAgICAgIHZhciBpbnB1dCA9IGFyZ3Mg fHwge307CisgICAgICAgICAgb2JqID0gdGhpcywKKyAgICAgICAgICB0ID0g cGdCcm93c2VyLnRyZWUsCisgICAgICAgICAgaSA9IGlucHV0Lml0ZW0gfHwg dC5zZWxlY3RlZCgpLAorICAgICAgICAgIGQgPSBpICYmIGkubGVuZ3RoID09 IDEgPyB0Lml0ZW1EYXRhKGkpIDogdW5kZWZpbmVkOworCisgICAgICAgICAg aWYgKCFkKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAg ICAgdmFyIGRhdGEgPSBkOworICAgICAgICAgICQuYWpheCh7CisgICAgICAg ICAgICB1cmw6IG9iai5nZW5lcmF0ZV91cmwoaSwgJ2VuYWJsZScgLCBkLCB0 cnVlKSwKKyAgICAgICAgICAgIHR5cGU6J1BVVCcsCisgICAgICAgICAgICBk YXRhOiB7J2VuYWJsZScgOiBmYWxzZX0sCisgICAgICAgICAgICBkYXRhVHlw ZTogImpzb24iLAorICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24ocmVz KSB7CisgICAgICAgICAgICAgIGlmIChyZXMuc3VjY2VzcyA9PSAxKSB7Cisg ICAgICAgICAgICAgICAgYWxlcnRpZnkuc3VjY2Vzcygie3sgXygnIiArIHJl cy5pbmZvICsgIicpIH19Iik7CisgICAgICAgICAgICAgICAgdC5yZW1vdmVJ Y29uKGkpOworICAgICAgICAgICAgICAgIGRhdGEuaWNvbiA9ICdpY29uLXRy aWdnZXItYmFkJzsKKyAgICAgICAgICAgICAgICB0LmFkZEljb24oaSwge2lj b246IGRhdGEuaWNvbn0pOworICAgICAgICAgICAgICAgIHQudW5sb2FkKGkp OworICAgICAgICAgICAgICAgIHQuc2V0SW5vZGUoaSk7CisgICAgICAgICAg ICAgICAgdC5kZXNlbGVjdChpKTsKKyAgICAgICAgICAgICAgICAvLyBGZXRj aCB1cGRhdGVkIGRhdGEgZnJvbSBzZXJ2ZXIKKyAgICAgICAgICAgICAgICBz ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgdC5z ZWxlY3QoaSk7CisgICAgICAgICAgICAgICAgfSwgMTApOworICAgICAgICAg ICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZXJyb3I6IGZ1 bmN0aW9uKHhociwgc3RhdHVzLCBlcnJvcikgeworICAgICAgICAgICAgICB0 cnkgeworICAgICAgICAgICAgICAgIHZhciBlcnIgPSAkLnBhcnNlSlNPTih4 aHIucmVzcG9uc2VUZXh0KTsKKyAgICAgICAgICAgICAgICBpZiAoZXJyLnN1 Y2Nlc3MgPT0gMCkgeworICAgICAgICAgICAgICAgICAgbXNnID0gUygne3sg XygnICsgZXJyLmVycm9ybXNnICsgJyl9fScpLnZhbHVlKCk7CisgICAgICAg ICAgICAgICAgICBhbGVydGlmeS5lcnJvcigie3sgXygnIiArIGVyci5lcnJv cm1zZyArICInKSB9fSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgfSBjYXRjaCAoZSkge30KKyAgICAgICAgICAgICAgdC51bmxvYWQo aSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgfSkKKyAgICAgICAgfQor ICAgICAgfSwKKyAgICAgIGNhbkRyb3A6IHBnQnJvd3Nlci5Ob2Rlc1snc2No ZW1hJ10uY2FuQ2hpbGREcm9wLAorICAgICAgY2FuRHJvcENhc2NhZGU6IHBn QnJvd3Nlci5Ob2Rlc1snc2NoZW1hJ10uY2FuQ2hpbGREcm9wLAorICAgICAg bW9kZWw6IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7Cisg ICAgICAgIGRlZmF1bHRzOiB7CisgICAgICAgICAgbmFtZTogdW5kZWZpbmVk LAorCQkJCQlpc19yb3dfdHJpZ2dlcjogdHJ1ZQorICAgICAgICB9LAorICAg ICAgICBzY2hlbWE6IFt7CisgICAgICAgICAgaWQ6ICduYW1lJywgbGFiZWw6 ICd7eyBfKCdOYW1lJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAg ICB0eXBlOiAndGV4dCcsIGRpc2FibGVkOiAnaW5TY2hlbWEnCisgICAgICAg IH0seworICAgICAgICAgIGlkOiAnb2lkJywgbGFiZWw6J3t7IF8oJ09JRCcp IH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ2ludCcs IGRpc2FibGVkOiB0cnVlLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXQorICAgICAg ICB9LHsKKyAgICAgICAgICBpZDogJ2lzX2VuYWJsZV90cmlnZ2VyJywgbGFi ZWw6J3t7IF8oJ0VuYWJsZSB0cmlnZ2VyPycpIH19JywKKyAgICAgICAgICB0 eXBlOiAnc3dpdGNoJywgZGlzYWJsZWQ6ICdpblNjaGVtYScsIG1vZGU6IFsn cHJvcGVydGllcyddCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnaXNf cm93X3RyaWdnZXInLCBsYWJlbDone3sgXygnUm93IHRyaWdnZXInKSB9fScs CisgICAgICAgICAgdHlwZTogJ3N3aXRjaCcsIGdyb3VwOiAne3sgXygnRGVm aW5pdGlvbicpIH19JywKKyAgICAgICAgICBtb2RlOiBbJ2NyZWF0ZScsJ2Vk aXQnLCAncHJvcGVydGllcyddLAorICAgICAgICAgIGRlcHM6IFsnaXNfY29u c3RyYWludF90cmlnZ2VyJ10sCisgICAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0 aW9uKG0pIHsKKyAgICAgICAgICAgIC8vIElmIGNvbnRyYWludCB0cmlnZ2Vy IGlzIHNldCB0byBUcnVlIHRoZW4gcm93IHRyaWdnZXIgd2lsbAorICAgICAg ICAgICAgLy8gYXV0b21hdGljYWxseSBzZXQgdG8gVHJ1ZSBhbmQgYmVjb21l cyBkaXNhYmxlCisgICAgICAgICAgICB2YXIgaXNfY29uc3RyYWludF90cmln Z2VyID0gbS5nZXQoJ2lzX2NvbnN0cmFpbnRfdHJpZ2dlcicpOworICAgICAg ICAgICAgaWYoIW0uaW5TY2hlbWFXaXRoTW9kZWxDaGVjay5hcHBseSh0aGlz LCBbbV0pKSB7CisgICAgICAgICAgICAgICAgaWYoIV8uaXNVbmRlZmluZWQo aXNfY29uc3RyYWludF90cmlnZ2VyKSAmJgorICAgICAgICAgICAgICAgIGlz X2NvbnN0cmFpbnRfdHJpZ2dlciA9PT0gdHJ1ZSkgeworICAgICAgICAgICAg ICAgIC8vIGNoYW5nZSBpdCdzIG1vZGVsIHZhbHVlCisgICAgICAgICAgICAg ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IG0uc2V0KCdpc19yb3df dHJpZ2dlcicsIHRydWUpIH0sIDEwKTsKKyAgICAgICAgICAgICAgICAgICAg cmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8g RGlzYmFsZSBpdAorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg ICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfSx7CisgICAgICAg ICAgaWQ6ICdpc19jb25zdHJhaW50X3RyaWdnZXInLCBsYWJlbDone3sgXygn Q29uc3RyYWludCB0cmlnZ2VyJykgfX0nLAorICAgICAgICAgIHR5cGU6ICdz d2l0Y2gnLCBkaXNhYmxlZDogJ2luU2NoZW1hV2l0aE1vZGVsQ2hlY2snLAor ICAgICAgICAgIG1vZGU6IFsnY3JlYXRlJywnZWRpdCcsICdwcm9wZXJ0aWVz J10sCisgICAgICAgICAgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0n CisgICAgICAgIH0seworICAgICAgICAgIGlkOiAndGdkZWZlcnJhYmxlJywg bGFiZWw6J3t7IF8oJ0RlZmVycmFibGUnKSB9fScsCisgICAgICAgICAgdHlw ZTogJ3N3aXRjaCcsIGdyb3VwOiAne3sgXygnRGVmaW5pdGlvbicpIH19JywK KyAgICAgICAgICBtb2RlOiBbJ2NyZWF0ZScsJ2VkaXQnLCAncHJvcGVydGll cyddLAorICAgICAgICAgIGRlcHM6IFsnaXNfY29uc3RyYWludF90cmlnZ2Vy J10sCisgICAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsKKyAgICAg ICAgICAgIC8vIElmIGNvbnRyYWludCB0cmlnZ2VyIGlzIHNldCB0byBUcnVl IHRoZW4gb25seSBlbmFibGUgaXQKKyAgICAgICAgICAgIHZhciBpc19jb25z dHJhaW50X3RyaWdnZXIgPSBtLmdldCgnaXNfY29uc3RyYWludF90cmlnZ2Vy Jyk7CisgICAgICAgICAgICBpZighbS5pblNjaGVtYVdpdGhNb2RlbENoZWNr LmFwcGx5KHRoaXMsIFttXSkpIHsKKyAgICAgICAgICAgICAgICBpZighXy5p c1VuZGVmaW5lZChpc19jb25zdHJhaW50X3RyaWdnZXIpICYmCisgICAgICAg ICAgICAgICAgaXNfY29uc3RyYWludF90cmlnZ2VyID09PSB0cnVlKSB7Cisg ICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0 KGZ1bmN0aW9uKCkgeyBtLnNldCgndGdkZWZlcnJhYmxlJywgZmFsc2UpIH0s IDEwKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg ICAgICAgICAvLyBEaXNiYWxlIGl0CisgICAgICAgICAgICAgICAgcmV0dXJu IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9 LHsKKyAgICAgICAgICBpZDogJ3RnaW5pdGRlZmVycmVkJywgbGFiZWw6J3t7 IF8oJ0RlZmVycmVkJykgfX0nLAorICAgICAgICAgIHR5cGU6ICdzd2l0Y2gn LCBncm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsCisgICAgICAgICAg bW9kZTogWydjcmVhdGUnLCdlZGl0JywgJ3Byb3BlcnRpZXMnXSwKKyAgICAg ICAgICBkZXBzOiBbJ3RnZGVmZXJyYWJsZSddLAorICAgICAgICAgIGRpc2Fi bGVkOiBmdW5jdGlvbihtKSB7CisgICAgICAgICAgICAvLyBJZiBjb250cmFp bnQgdHJpZ2dlciBpcyBzZXQgdG8gVHJ1ZSB0aGVuIG9ubHkgZW5hYmxlIGl0 CisgICAgICAgICAgICB2YXIgaXNfY29uc3RyYWludF90cmlnZ2VyID0gbS5n ZXQoJ3RnZGVmZXJyYWJsZScpOworICAgICAgICAgICAgaWYoIW0uaW5TY2hl bWFXaXRoTW9kZWxDaGVjay5hcHBseSh0aGlzLCBbbV0pKSB7CisgICAgICAg ICAgICAgICAgaWYoIV8uaXNVbmRlZmluZWQoaXNfY29uc3RyYWludF90cmln Z2VyKSAmJgorICAgICAgICAgICAgICAgIGlzX2NvbnN0cmFpbnRfdHJpZ2dl ciA9PT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFs c2U7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgbS5zZXQoJ3RnaW5pdGRl ZmVycmVkJywgZmFsc2UpIH0sIDEwKTsKKyAgICAgICAgICAgICAgICAgICAg cmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg fSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBEaXNiYWxlIGl0CisgICAg ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAg ICAgICAgfQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3RmdW5jdGlv bicsIGxhYmVsOid7eyBfKCdUcmlnZ2VyIEZ1bmN0aW9uJykgfX0nLAorICAg ICAgICAgIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6ICdpblNjaGVtYVdpdGhN b2RlbENoZWNrJywKKyAgICAgICAgICBtb2RlOiBbJ2NyZWF0ZScsJ2VkaXQn LCAncHJvcGVydGllcyddLCBncm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9 fScsCisgICAgICAgICAgY29udHJvbDogJ25vZGUtYWpheC1vcHRpb25zJywg dXJsOiAnZ2V0X3RyaWdnZXJmdW5jdGlvbnMnCisgICAgICAgIH0seworICAg ICAgICAgIGlkOiAndGdhcmdzJywgbGFiZWw6J3t7IF8oJ0FyZ3VtZW50cycp IH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgZ3JvdXA6ICd7eyBf KCdEZWZpbml0aW9uJykgfX0nLAorICAgICAgICAgIHR5cGU6ICd0ZXh0Jyxt b2RlOiBbJ2NyZWF0ZScsJ2VkaXQnLCAncHJvcGVydGllcyddLCBkZXBzOiBb J3RmdW5jdGlvbiddLAorICAgICAgICAgIGRpc2FibGVkOiBmdW5jdGlvbiht KSB7CisgICAgICAgICAgICAvLyBXZSB3aWxsIGRpc2FibGUgaXQgd2hlbiBF REIgUFBBUyBhbmQgdHJpZ2dlciBmdW5jdGlvbiBpcworICAgICAgICAgICAg Ly8gc2V0IHRvIElubGluZSBFREItU1BMCisgICAgICAgICAgICB2YXIgdGZ1 bmN0aW9uID0gbS5nZXQoJ3RmdW5jdGlvbicpLAorICAgICAgICAgICAgICAg IHNlcnZlcl90eXBlID0gbS5ub2RlX2luZm9bJ3NlcnZlciddWydzZXJ2ZXJf dHlwZSddOworICAgICAgICAgICAgaWYoIW0uaW5TY2hlbWFXaXRoTW9kZWxD aGVjay5hcHBseSh0aGlzLCBbbV0pKSB7CisgICAgICAgICAgICAgICAgaWYo c2VydmVyX3R5cGUgPT09ICdwcGFzJyAmJgorICAgICAgICAgICAgICAgICAg ICAhXy5pc1VuZGVmaW5lZCh0ZnVuY3Rpb24pICYmCisgICAgICAgICAgICAg ICAgdGZ1bmN0aW9uID09PSAnSW5saW5lIEVEQi1TUEwnKSB7CisgICAgICAg ICAgICAgICAgICAgIC8vIERpc2JhbGUgYW5kIGNsZWFyIGl0cyB2YWx1ZQor ICAgICAgICAgICAgICAgICAgICBtLnNldCgndGdhcmdzJywgdW5kZWZpbmVk KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4g ZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNl IHsKKyAgICAgICAgICAgICAgICAvLyBEaXNiYWxlIGl0CisgICAgICAgICAg ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAg fQorICAgICAgICB9LHsKKyAgICAgICAgaWQ6ICdmaXJlcycsIGxhYmVsOid7 eyBfKCdGaXJlcycpIH19JywgZGVwczogWydpc19jb25zdHJhaW50X3RyaWdn ZXInXSwKKyAgICAgICAgbW9kZTogWydjcmVhdGUnLCdlZGl0JywgJ3Byb3Bl cnRpZXMnXSwgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0nLAorICAg ICAgICBvcHRpb25zOiBmdW5jdGlvbihtKSB7CisgICAgICAgICAgICB2YXIg dGFibGVfb3B0aW9ucyA9IFsKKyAgICAgICAgICAgICAgICB7bGFiZWw6ICJC RUZPUkUiLCB2YWx1ZTogIkJFRk9SRSJ9LAorICAgICAgICAgICAgICAgIHts YWJlbDogIkFGVEVSIiwgdmFsdWU6ICJBRlRFUiJ9XSwKKyAgICAgICAgICAg ICAgICB2aWV3X29wdGlvbnMgPSBbCisgICAgICAgICAgICAgICAge2xhYmVs OiAiQkVGT1JFIiwgdmFsdWU6ICJCRUZPUkUifSwKKyAgICAgICAgICAgICAg ICB7bGFiZWw6ICJBRlRFUiIsIHZhbHVlOiAiQUZURVIifSwKKyAgICAgICAg ICAgICAgICB7bGFiZWw6ICJJTlNURUFEIE9GIiwgdmFsdWU6ICJJTlNURUFE IE9GIn1dOworICAgICAgICAgICAgLy8gSWYgd2UgYXJlIHVuZGVyIHRhYmxl IHRoZW4gc2hvdyB0YWJsZSBzcGVjaWZpYyBvcHRpb25zCisgICAgICAgICAg ICBpZihfLmluZGV4T2YoT2JqZWN0LmtleXModGhpcy5tb2RlbC5ub2RlX2lu Zm8pLCAndGFibGUnKSAhPSAtMSkgeworICAgICAgICAgICAgICAgIHJldHVy biB0YWJsZV9vcHRpb25zOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg ICAgICAgICAgICByZXR1cm4gdmlld19vcHRpb25zOworICAgICAgICAgICAg fQorICAgICAgICB9LAorICAgICAgICAvLyBJZiBjcmVhdGUgbW9kZSB0aGVu IGJ5IGRlZmF1bHQgb3BlbiBjb21wb3NpdGUgdHlwZQorICAgICAgICBjb250 cm9sOiBCYWNrZm9ybS5TZWxlY3QyQ29udHJvbC5leHRlbmQoeworICAgICAg ICAgICAgcmVuZGVyOiBmdW5jdGlvbigpeworICAgICAgICAgICAgICAgIC8v IEluaXRpYWxpemUgcGFyZW50J3MgcmVuZGVyIG1ldGhvZAorICAgICAgICAg ICAgICAgIEJhY2tmb3JtLlNlbGVjdDJDb250cm9sLnByb3RvdHlwZS5yZW5k ZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKKyAgICAgICAgICAgICAgICBp Zih0aGlzLm1vZGVsLmlzTmV3KCkgJiYKKyAgICAgICAgICAgICAgICAgICAg ICAgIHRoaXMubW9kZWwuZ2V0KCdpc19jb25zdHJhaW50X3RyaWdnZXInKSAh PT0gdHJ1ZSApIHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5z ZXQoeydmaXJlcyc6ICdCRUZPUkUnfSwge3NpbGVudDogdHJ1ZX0pOworICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdGhpczsK KyAgICAgICAgICAgIH0KKyAgICAgICAgfSksCisgICAgICAgIHNlbGVjdDI6 IHsgYWxsb3dDbGVhcjogZmFsc2UsIHdpZHRoOiAiMTAwJSIgfSwKKyAgICAg ICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgLy8gSWYgY29u dHJhaW50IHRyaWdnZXIgaXMgc2V0IHRvIFRydWUgdGhlbiBvbmx5IGVuYWJs ZSBpdAorICAgICAgICB2YXIgaXNfY29uc3RyYWludF90cmlnZ2VyID0gbS5n ZXQoJ2lzX2NvbnN0cmFpbnRfdHJpZ2dlcicpOworICAgICAgICBpZighbS5p blNjaGVtYVdpdGhNb2RlbENoZWNrLmFwcGx5KHRoaXMsIFttXSkpIHsKKyAg ICAgICAgICAgIGlmKCFfLmlzVW5kZWZpbmVkKGlzX2NvbnN0cmFpbnRfdHJp Z2dlcikgJiYKKyAgICAgICAgICAgIGlzX2NvbnN0cmFpbnRfdHJpZ2dlciA9 PT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rp b24oKSB7IG0uc2V0KCdmaXJlcycsICdBRlRFUicsIHtzaWxlbnQ6IHRydWV9 KSB9LCAxMCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxz ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg ICAgIC8vIERpc2JhbGUgaXQKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor ICAgICAgICB9CisgICAgICAgfQorICAgICAgfSx7CisgICAgICAgIHR5cGU6 ICduZXN0ZWQnLCBjb250cm9sOiAnZmllbGRzZXQnLCBtb2RlOiBbJ2NyZWF0 ZScsJ2VkaXQnLCAncHJvcGVydGllcyddLAorICAgICAgICBsYWJlbDogJ3t7 IF8oJ0V2ZW50cycpIH19JywgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykg fX0nLAorICAgICAgICBzY2hlbWE6W3sKKyAgICAgICAgICAgIGlkOiAnZXZu dF9pbnNlcnQnLCBsYWJlbDone3sgXygnSU5TRVJUJykgfX0nLAorICAgICAg ICAgICAgdHlwZTogJ3N3aXRjaCcsIG1vZGU6IFsnY3JlYXRlJywnZWRpdCcs ICdwcm9wZXJ0aWVzJ10sCisgICAgICAgICAgICBncm91cDogJ3t7IF8oJ0V2 ZW50cycpIH19JywKKyAgICAgICAgICAgIGRpc2FibGVkOiBmdW5jdGlvbiht KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG0uaW5TY2hlbWFXaXRoTW9k ZWxDaGVjay5hcHBseSh0aGlzLCBbbV0pOworICAgICAgICAgICAgfQorICAg ICAgICB9LHsKKyAgICAgICAgICAgIGlkOiAnZXZudF91cGRhdGUnLCBsYWJl bDone3sgXygnVVBEQVRFJykgfX0nLAorICAgICAgICAgICAgdHlwZTogJ3N3 aXRjaCcsIG1vZGU6IFsnY3JlYXRlJywnZWRpdCcsICdwcm9wZXJ0aWVzJ10s CisgICAgICAgICAgICBncm91cDogJ3t7IF8oJ0V2ZW50cycpIH19JywKKyAg ICAgICAgICAgIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7CisgICAgICAgICAg ICAgICAgcmV0dXJuIG0uaW5TY2hlbWFXaXRoTW9kZWxDaGVjay5hcHBseSh0 aGlzLCBbbV0pOworICAgICAgICAgICAgfQorICAgICAgICB9LHsKKyAgICAg ICAgICAgIGlkOiAnZXZudF9kZWxldGUnLCBsYWJlbDone3sgXygnREVMRVRF JykgfX0nLAorICAgICAgICAgICAgdHlwZTogJ3N3aXRjaCcsIG1vZGU6IFsn Y3JlYXRlJywnZWRpdCcsICdwcm9wZXJ0aWVzJ10sCisgICAgICAgICAgICBn cm91cDogJ3t7IF8oJ0V2ZW50cycpIH19JywKKyAgICAgICAgICAgIGRpc2Fi bGVkOiBmdW5jdGlvbihtKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG0u aW5TY2hlbWFXaXRoTW9kZWxDaGVjay5hcHBseSh0aGlzLCBbbV0pOworICAg ICAgICAgICAgfQorICAgICAgICB9LHsKKyAgICAgICAgICAgIGlkOiAnZXZu dF90dXJuY2F0ZScsIGxhYmVsOid7eyBfKCdUVVJOQ0FURScpIH19JywKKyAg ICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBncm91cDogJ3t7IF8oJ0V2ZW50 cycpIH19JywKKyAgICAgICAgICAgIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7 CisgICAgICAgICAgICB2YXIgaXNfY29uc3RyYWludF90cmlnZ2VyID0gbS5n ZXQoJ2lzX2NvbnN0cmFpbnRfdHJpZ2dlcicpLAorICAgICAgICAgICAgICAg IGlzX3Jvd190cmlnZ2VyID0gbS5nZXQoJ2lzX3Jvd190cmlnZ2VyJyksCisg ICAgICAgICAgICAgICAgc2VydmVyX3R5cGUgPSBtLm5vZGVfaW5mb1snc2Vy dmVyJ11bJ3NlcnZlcl90eXBlJ107CisgICAgICAgICAgICBpZighbS5pblNj aGVtYVdpdGhNb2RlbENoZWNrLmFwcGx5KHRoaXMsIFttXSkpIHsKKyAgICAg ICAgICAgICAgICAvLyBXZSB3aWxsIGVuYWJhbGUgdHJ1bmNhdGUgb25seSBm b3IgRURCIFBQQVMKKyAgICAgICAgICAgICAgICAvLyBhbmQgYm90aCB0cmln Z2VycyByb3cgJiBjb25zdGFyaW50IGFyZSBzZXQgdG8gZmFsc2UKKyAgICAg ICAgICAgICAgICBpZihzZXJ2ZXJfdHlwZSA9PT0gJ3BwYXMnICYmCisgICAg ICAgICAgICAgICAgICAgICFfLmlzVW5kZWZpbmVkKGlzX2NvbnN0cmFpbnRf dHJpZ2dlcikgJiYKKyAgICAgICAgICAgICAgICAgICAgIV8uaXNVbmRlZmlu ZWQoaXNfcm93X3RyaWdnZXIpICYmCisgICAgICAgICAgICAgICAgaXNfY29u c3RyYWludF90cmlnZ2VyID09PSBmYWxzZSAmJgorICAgICAgICAgICAgICAg ICAgICBpc19yb3dfdHJpZ2dlciA9PT0gZmFsc2UpIHsKKyAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0gZWxz ZSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg ICAgICAgLy8gRGlzYmFsZSBpdAorICAgICAgICAgICAgICAgIHJldHVybiB0 cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIH1dCisg ICAgICAgIH0seworICAgICAgICAgICAgaWQ6ICd3aGVuY2xhdXNlJywgbGFi ZWw6J3t7IF8oJ1doZW4nKSB9fScsCisgICAgICAgICAgICB0eXBlOiAndGV4 dCcsIGRpc2FibGVkOiAnaW5TY2hlbWFXaXRoTW9kZWxDaGVjaycsCisgICAg ICAgICAgICBtb2RlOiBbJ2NyZWF0ZScsICdlZGl0JywgJ3Byb3BlcnRpZXMn XSwKKyAgICAgICAgICAgIGNvbnRyb2w6ICdzcWwtZmllbGQnLCB2aXNpYmxl OiB0cnVlLCBncm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScKKyAgICAg ICAgfSx7CisgICAgICAgICAgICBpZDogJ2NvbHVtbnMnLCBsYWJlbDogJ3t7 IF8oJ0NvbHVtbnMnKSB9fScsCisgICAgICAgICAgICB0eXBlOiAnY29sbGVj dGlvbicsIGNvbnRyb2w6ICdtdWx0aS1zZWxlY3QtYWpheCcsCisgICAgICAg ICAgICBkZXBzOiBbJ2V2bnRfdXBkYXRlJ10sIG5vZGU6ICdjb2x1bW4nLCBn cm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsCisgICAgICAgICAgICBt b2RlbDogcGdCcm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICAgICAg ICAgICAgICBrZXlzOiBbJ2NvbHVtbiddLCBkZWZhdWx0czogeyBjb2x1bW46 IHVuZGVmaW5lZCB9CisgICAgICAgICAgICB9KSwKKyAgICAgICAgICAgIGRp c2FibGVkOiBmdW5jdGlvbihtKSB7CisgICAgICAgICAgICAgICAgaWYodGhp cy5ub2RlX2luZm8gJiYgICdjYXRhbG9nJyBpbiB0aGlzLm5vZGVfaW5mbykg eworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgICAgLy9EaXNiYWxlIGluIGVkaXQg bW9kZQorICAgICAgICAgICAgICAgIGlmICghbS5pc05ldygpKSB7CisgICAg ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAvLyBFbmFibGUgY29sdW1uIG9ubHkgaWYg dXBkYXRlIGV2ZW50IGlzIHNldCB0cnVlCisgICAgICAgICAgICAgICAgdmFy IGlzVXBkYXRlID0gbS5nZXQoJ2V2bnRfdXBkYXRlJyk7CisgICAgICAgICAg ICAgICAgaWYoIV8uaXNVbmRlZmluZWQoaXNVcGRhdGUpICYmIGlzVXBkYXRl KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg ICAgICAgICB9CisgICAgICAgIH0seworICAgICAgICAgICAgaWQ6ICdjb2Rl JywgbGFiZWw6J3t7IF8oJ0NvZGUnKSB9fScsIGdyb3VwOiAne3sgXygnQ29k ZScpIH19JywKKyAgICAgICAgICAgIHR5cGU6ICd0ZXh0JywgbW9kZTogWydj cmVhdGUnLCAnZWRpdCddLCBkZXBzOiBbJ3RmdW5jdGlvbiddLAorICAgICAg ICAgICAgY29udHJvbDogJ3NxbC1maWVsZCcsIHZpc2libGU6IHRydWUsCisg ICAgICAgICAgICBkaXNhYmxlZDogZnVuY3Rpb24obSkgeworICAgICAgICAg ICAgICAgIC8vIFdlIHdpbGwgZW5hYmxlIGl0IG9ubHkgd2hlbiBFREIgUFBB UyBhbmQgdHJpZ2dlciBmdW5jdGlvbiBpcworICAgICAgICAgICAgICAgIC8v IHNldCB0byBJbmxpbmUgRURCLVNQTAorICAgICAgICAgICAgICAgIHZhciB0 ZnVuY3Rpb24gPSBtLmdldCgndGZ1bmN0aW9uJyksCisgICAgICAgICAgICAg ICAgICAgIHNlcnZlcl90eXBlID0gbS5ub2RlX2luZm9bJ3NlcnZlciddWydz ZXJ2ZXJfdHlwZSddOworICAgICAgICAgICAgICAgIGlmKCFtLmluU2NoZW1h V2l0aE1vZGVsQ2hlY2suYXBwbHkodGhpcywgW21dKSkgeworICAgICAgICAg ICAgICAgICAgICBpZihzZXJ2ZXJfdHlwZSA9PT0gJ3BwYXMnICYmCisgICAg ICAgICAgICAgICAgICAgICAgICAhXy5pc1VuZGVmaW5lZCh0ZnVuY3Rpb24p ICYmCisgICAgICAgICAgICAgICAgICAgIHRmdW5jdGlvbiA9PT0gJ0lubGlu ZSBFREItU1BMJykgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWxzbyBjbGVh ciBhbmQgZGlzYWJsZSBBcmd1bWVudCBmaWVsZAorICAgICAgICAgICAgICAg ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBEaXNiYWxlIGl0 CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSx7CisgICAgICAg ICAgaWQ6ICdpc19zeXNfdHJpZ2dlcicsIGxhYmVsOid7eyBfKCdTeXN0ZW0g dHJpZ2dlcj8nKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5 cGU6ICdzd2l0Y2gnLCBkaXNhYmxlZDogJ2luU2NoZW1hV2l0aE1vZGVsQ2hl Y2snLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXQorICAgICAgICB9LHsKKyAgICAg ICAgICBpZDogJ2lzX2NvbnN0YXJpbnQnLCBsYWJlbDone3sgXygnQ29uc3Ry YWludD8nKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6 ICdzd2l0Y2gnLCBkaXNhYmxlZDogJ2luU2NoZW1hV2l0aE1vZGVsQ2hlY2sn LCBtb2RlOiBbJ3Byb3BlcnRpZXMnXQorICAgICAgICB9LHsKKyAgICAgICAg ICBpZDogJ2Rlc2NyaXB0aW9uJywgbGFiZWw6J3t7IF8oJ0NvbW1lbnQnKSB9 fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICdtdWx0aWxp bmUnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnY3JlYXRlJywgJ2VkaXQnXSwK KyAgICAgICAgICBkaXNhYmxlZDogJ2luU2NoZW1hJworICAgICAgICB9XSwK KyAgICAgICAgdmFsaWRhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZh ciBlcnIgPSB7fSwKKyAgICAgICAgICAgICAgY2hhbmdlZEF0dHJzID0gdGhp cy5jaGFuZ2VkLAorICAgICAgICAgICAgICBtc2cgPSB1bmRlZmluZWQ7Cisg ICAgICAgICAgdGhpcy5lcnJvck1vZGVsLmNsZWFyKCk7CisKKyAgICAgICAg ICBpZihfLmhhcyhjaGFuZ2VkQXR0cnMsdGhpcy5nZXQoJ25hbWUnKSkKKyAg ICAgICAgICAgICAgICAgICAgJiYgXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgn bmFtZScpKQorICAgICAgICAgICAgICB8fCBTdHJpbmcodGhpcy5nZXQoJ25h bWUnKSkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAg ICAgICAgICAgbXNnID0gJ3t7IF8oJ05hbWUgY2FuIG5vdCBiZSBlbXB0eSEn KSB9fSc7CisgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCduYW1l JywgbXNnKTsKKyAgICAgICAgICAgIHJldHVybiBtc2c7CisgICAgICAgICAg ICB9CisgICAgICAgICAgaWYoXy5oYXMoY2hhbmdlZEF0dHJzLHRoaXMuZ2V0 KCd0ZnVuY3Rpb24nKSkKKyAgICAgICAgICAgICAgICAgICAgJiYgXy5pc1Vu ZGVmaW5lZCh0aGlzLmdldCgndGZ1bmN0aW9uJykpCisgICAgICAgICAgICAg IHx8IFN0cmluZyh0aGlzLmdldCgndGZ1bmN0aW9uJykpLnJlcGxhY2UoL15c cyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgIG1zZyA9ICd7 eyBfKCdUcmlnZ2VyIGZ1bmN0aW9uIGNhbiBub3QgYmUgZW1wdHkhJykgfX0n OworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgndGZ1bmN0aW9u JywgbXNnKTsKKyAgICAgICAgICAgIHJldHVybiBtc2c7CisgICAgICAgICAg ICB9CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfSwKKyAg ICAgICAgLy8gV2Ugd2lsbCBjaGVjayBpZiB3ZSBhcmUgdW5kZXIgc2NoZW1h IG5vZGUgJiBpbiAnY3JlYXRlJyBtb2RlCisgICAgICAgIGluU2NoZW1hOiBm dW5jdGlvbigpIHsKKyAgICAgICAgICBpZih0aGlzLm5vZGVfaW5mbyAmJiAg J2NhdGFsb2cnIGluIHRoaXMubm9kZV9pbmZvKSB7CisgICAgICAgICAgICBy ZXR1cm4gdHJ1ZTsKKyAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIGZh bHNlOworICAgICAgICB9LAorICAgICAgICAvLyBXZSB3aWxsIGNoZWNrIGlm IHdlIGFyZSB1bmRlciBzY2hlbWEgbm9kZSAmIGluICdjcmVhdGUnIG1vZGUK KyAgICAgICAgaW5TY2hlbWFXaXRoTW9kZWxDaGVjazogZnVuY3Rpb24obSkg eworICAgICAgICAgIGlmKHRoaXMubm9kZV9pbmZvICYmICAnc2NoZW1hJyBp biB0aGlzLm5vZGVfaW5mbykgeworICAgICAgICAgICAgLy8gV2Ugd2lsbCBk aXNhYmxlIGNvbnRyb2wgaWYgaXQncyBpbiAnZWRpdCcgbW9kZQorICAgICAg ICAgICAgaWYgKG0uaXNOZXcoKSkgeworICAgICAgICAgICAgICByZXR1cm4g ZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBy ZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAg ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0sCisgICAgICAgIC8vIENo ZWNrcyB3ZWF0aGVyIHRvIGVuYWJsZS9kaXNhYmxlIGNvbnRyb2wKKyAgICAg ICAgaW5TY2hlbWFXaXRoQ29sdW1uQ2hlY2s6IGZ1bmN0aW9uKG0pIHsKKyAg ICAgICAgICBpZih0aGlzLm5vZGVfaW5mbyAmJiAgJ3NjaGVtYScgaW4gdGhp cy5ub2RlX2luZm8pIHsKKyAgICAgICAgICAgIC8vIFdlIHdpbGwgZGlzYWJs ZSBjb250cm9sIGlmIGl0J3Mgc3lzdGVtIGNvbHVtbnMKKyAgICAgICAgICAg IC8vIGllOiBpdCdzIHBvc2l0aW9uIGlzIGxlc3MgdGhlbiAxCisgICAgICAg ICAgICBpZiAobS5pc05ldygpKSB7CisgICAgICAgICAgICAgIHJldHVybiBm YWxzZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIC8v IGlmIHdlIGFyZSBpbiBlZGl0IG1vZGUKKyAgICAgICAgICAgICAgaWYgKCFf LmlzVW5kZWZpbmVkKG0uZ2V0KCdhdHRudW0nKSkgJiYgbS5nZXQoJ2F0dG51 bScpID49IDEgKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVy biB0cnVlOworICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0KKyAgICAg ICAgICB9CisgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAg ICAgIH0pLAorICAgICAgLy8gQmVsb3cgZnVuY3Rpb24gd2lsbCBlbmFibGUg cmlnaHQgY2xpY2sgbWVudSBmb3IgY3JlYXRpbmcgY29sdW1uCisgICAgICBj YW5DcmVhdGU6IGZ1bmN0aW9uKGl0ZW1EYXRhLCBpdGVtLCBkYXRhKSB7Cisg ICAgICAgICAgLy8gSWYgY2hlY2sgaXMgZmFsc2UgdGhlbiAsIHdlIHdpbGwg YWxsb3cgY3JlYXRlIG1lbnUKKyAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRh LmNoZWNrID09IGZhbHNlKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisK KyAgICAgICAgICB2YXIgdCA9IHBnQnJvd3Nlci50cmVlLCBpID0gaXRlbSwg ZCA9IGl0ZW1EYXRhLCBwYXJlbnRzID0gW107CisgICAgICAgICAgLy8gVG8g aXRlcmF0ZSBvdmVyIHRyZWUgdG8gY2hlY2sgcGFyZW50IG5vZGUKKyAgICAg ICAgICB3aGlsZSAoaSkgeworICAgICAgICAgICAgLy8gSWYgaXQgaXMgc2No ZW1hIHRoZW4gYWxsb3cgdXNlciB0byBjIHJlYXRlIHRhYmxlCisgICAgICAg ICAgICBpZiAoXy5pbmRleE9mKFsnc2NoZW1hJ10sIGQuX3R5cGUpID4gLTEp CisgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgcGFy ZW50cy5wdXNoKGQuX3R5cGUpOworICAgICAgICAgICAgaSA9IHQuaGFzUGFy ZW50KGkpID8gdC5wYXJlbnQoaSkgOiBudWxsOworICAgICAgICAgICAgZCA9 IGkgPyB0Lml0ZW1EYXRhKGkpIDogbnVsbDsKKyAgICAgICAgICB9CisgICAg ICAgICAgLy8gSWYgbm9kZSBpcyB1bmRlciBjYXRhbG9nIHRoZW4gZG8gbm90 IGFsbG93ICdjcmVhdGUnIG1lbnUKKyAgICAgICAgICBpZiAoXy5pbmRleE9m KHBhcmVudHMsICdjYXRhbG9nJykgPiAtMSkgeworICAgICAgICAgICAgcmV0 dXJuIGZhbHNlOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBy ZXR1cm4gdHJ1ZTsKKyAgICAgICAgICB9CisgICAgICB9LAorICAgICAgLy8g Q2hlY2sgdG8gd2hldGhlciB0cmlnZ2VyIGlzIGRpc2FibGUgPworICAgICAg Y2FuQ3JlYXRlX3dpdGhfdHJpZ2dlcl9lbmFibGU6IGZ1bmN0aW9uKGl0ZW1E YXRhLCBpdGVtLCBkYXRhKSB7CisgICAgICAgIGlmKHRoaXMuY2FuQ3JlYXRl LmFwcGx5KHRoaXMsIFtpdGVtRGF0YSwgaXRlbSwgZGF0YV0pKSB7CisgICAg ICAgICAgLy8gV2UgYXJlIGhlcmUgbWVhbnMgd2UgY2FuIGNyZWF0ZSBtZW51 LCBub3cgbGV0J3MgY2hlY2sgY29uZGl0aW9uCisgICAgICAgICAgaWYoaXRl bURhdGEuaWNvbiA9PT0gJ2ljb24tdHJpZ2dlci1iYWQnKSB7CisgICAgICAg ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAg ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgIH0KKyAgICAgICAgfQor ICAgICAgfSwKKyAgICAgIC8vIENoZWNrIHRvIHdoZXRoZXIgdHJpZ2dlciBp cyBlbmFibGUgPworICAgICAgY2FuQ3JlYXRlX3dpdGhfdHJpZ2dlcl9kaXNh YmxlOiBmdW5jdGlvbihpdGVtRGF0YSwgaXRlbSwgZGF0YSkgeworICAgICAg ICBpZih0aGlzLmNhbkNyZWF0ZS5hcHBseSh0aGlzLCBbaXRlbURhdGEsIGl0 ZW0sIGRhdGFdKSkgeworICAgICAgICAgIC8vIFdlIGFyZSBoZXJlIG1lYW5z IHdlIGNhbiBjcmVhdGUgbWVudSwgbm93IGxldCdzIGNoZWNrIGNvbmRpdGlv bgorICAgICAgICAgIGlmKGl0ZW1EYXRhLmljb24gPT09ICdpY29uLXRyaWdn ZXInKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICB9 IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg IH0KKyAgICAgICAgfQorICAgICAgfQorICB9KTsKKyB9CisKKyAgcmV0dXJu IHBnQnJvd3Nlci5Ob2Rlc1sndHJpZ2dlciddOworfSk7CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVtcGxhdGVzL3Ry aWdnZXIvc3FsLzkuMV9wbHVzL2FsdGVyLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy90cmlnZ2Vycy90ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvOS4xX3Bs dXMvYWx0ZXIuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjkzZjMyM2UKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvdHJpZ2dlcnMvdGVtcGxhdGVzL3RyaWdnZXIvc3FsLzkuMV9w bHVzL2FsdGVyLnNxbApAQCAtMCwwICsxLDkgQEAKK3sjIyBBbHRlciBpbmRl eCB0byB1c2UgY2x1c3RlciB0eXBlICMjfQoreyUgaWYgZGF0YS5pbmRpc2Ns dXN0ZXJlZCAlfQorQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5z Y2hlbWEsIGRhdGEudGFibGUpfX0KKyAgICBDTFVTVEVSIE9OIHt7Y29ubnxx dElkZW50KGRhdGEubmFtZSl9fTsKK3slIGVuZGlmICV9Cit7IyMgQ2hhbmdl cyBkZXNjcmlwdGlvbiAjI30KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0K K0NPTU1FTlQgT04gSU5ERVgge3tjb25ufHF0SWRlbnQoZGF0YS5uYW1lKX19 CisgICAgSVMge3tkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbH19O3slIGVu ZGlmICV9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBsYXRlcy90 cmlnZ2VyL3NxbC85LjFfcGx1cy9iYWNrZW5kX3N1cHBvcnQuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBsYXRlcy90cmlnZ2Vy L3NxbC85LjFfcGx1cy9iYWNrZW5kX3N1cHBvcnQuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiNWU4ZDgKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVtcGxh dGVzL3RyaWdnZXIvc3FsLzkuMV9wbHVzL2JhY2tlbmRfc3VwcG9ydC5zcWwK QEAgLTAsMCArMSw5IEBACit7Iz09PT09PT09PT09PT1DaGVja3MgaWYgaXQg aXMgbWF0ZXJpYWxpemVkIHZpZXc9PT09PT09PSN9Cit7JSBpZiB2aWQgJX0K K1NFTEVDVAorICAgIENBU0UgV0hFTiBjLnJlbGtpbmQgPSAnbScgVEhFTiBG YWxzZSBFTFNFIFRydWUgRU5EIEFzIG1fdmlldworRlJPTQorICAgIHBnX2Ns YXNzIGMKK1dIRVJFCisgICAgYy5vaWQgPSB7eyB2aWQgfX06Om9pZAoreyUg ZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90 cmlnZ2Vycy90ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvOS4xX3BsdXMvY3JlYXRl LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90ZW1wbGF0 ZXMvdHJpZ2dlci9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzdmZmFkCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBs YXRlcy90cmlnZ2VyL3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsCkBAIC0wLDAg KzEsMjcgQEAKK3sjIyMgU2V0IGEgZmxhZyB3aGljaCBhbGxvd3MgdXMgdG8g cHV0IE9SIGJldHdlZW4gZXZlbnRzICMjI30KK3slIHNldCBvcl9mbGFnID0g RmFsc2UgJX0KK0NSRUFURXslIGlmIGRhdGEuaXNfY29uc3RyYWludF90cmln Z2VyICV9IENPTlNUUkFJTlR7JSBlbmRpZiAlfSBUUklHR0VSIHt7IGNvbm58 cXRJZGVudChkYXRhLm5hbWUpIH19CisgICAge3tkYXRhLmZpcmVzfX0geyUg aWYgZGF0YS5ldm50X2luc2VydCAlfUlOU0VSVHslIHNldCBvcl9mbGFnID0g VHJ1ZSAlfQoreyUgZW5kaWYgJX17JSBpZiBkYXRhLmV2bnRfZGVsZXRlICV9 Cit7JSBpZiBvcl9mbGFnICV9IE9SIHslIGVuZGlmICV9REVMRVRFeyUgc2V0 IG9yX2ZsYWcgPSBUcnVlICV9Cit7JSBlbmRpZiAlfXslIGlmIGRhdGEuZXZu dF90dXJuY2F0ZSAlfQoreyUgaWYgb3JfZmxhZyAlfSBPUiB7JSBlbmRpZiAl fVRSVU5DQVRFeyUgc2V0IG9yX2ZsYWcgPSBUcnVlICV9Cit7JSBlbmRpZiAl fXslIGlmIGRhdGEuZXZudF91cGRhdGUgJX0KK3slIGlmIG9yX2ZsYWcgJX0g T1IgeyUgZW5kaWYgJX1VUERBVEUgeyUgaWYgZGF0YS5jb2x1bW5zfGxlbmd0 aCA+IDAgJX1PRiB7JSBmb3IgYyBpbiBkYXRhLmNvbHVtbnMgJX17JSBpZiBs b29wLmluZGV4ICE9IDEgJX0sIHslIGVuZGlmICV9e3sgY29ubnxxdElkZW50 KGMuY29sdW1uKSB9fXslIGVuZGZvciAlfXslIGVuZGlmICV9Cit7JSBlbmRp ZiAlfQorCisgICAgT04ge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBk YXRhLnRhYmxlKSB9fQoreyUgaWYgZGF0YS50Z2RlZmVycmFibGUgJX0KKyAg ICBERUZFUlJBQkxFeyUgaWYgZGF0YS50Z2luaXRkZWZlcnJlZCAlfSBJTklU SUFMTFkgREVGRVJSRUR7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KKyAgICBG T1IgRUFDSHslIGlmIGRhdGEuaXNfcm93X3RyaWdnZXIgJX0gUk9XeyUgZWxz ZSAlfSBTVEFURU1FTlR7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS53aGVuY2xh dXNlICV9CisKKyAgICBXSEVOIHt7IGRhdGEud2hlbmNsYXVzZSB9fXslIGVu ZGlmICV9CisKKyAgICB7JSBpZiBkYXRhLmNvZGUgJX17eyBkYXRhLmNvZGUg fX17JSBlbHNlICV9RVhFQ1VURSBQUk9DRURVUkUge3sgZGF0YS50ZnVuY3Rp b24gfX0oeyUgaWYgZGF0YS50Z2FyZ3MgJX17eyBkYXRhLnRnYXJncyB9fXsl IGVuZGlmJX0peyUgZW5kaWYlfTsKKworeyUgaWYgZGF0YS5kZXNjcmlwdGlv biAlfQorQ09NTUVOVCBPTiBUUklHR0VSIHt7IGNvbm58cXRJZGVudChkYXRh Lm5hbWUpIH19IE9OIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0 YS50YWJsZSkgfX0KKyAgICBJUyB7e2RhdGEuZGVzY3JpcHRpb258cXRMaXRl cmFsfX07Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL3RyaWdnZXJzL3RlbXBsYXRlcy90cmlnZ2VyL3NxbC85LjFf cGx1cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdn ZXJzL3RlbXBsYXRlcy90cmlnZ2VyL3NxbC85LjFfcGx1cy9kZWxldGUuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjNmU4MmIK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJp Z2dlcnMvdGVtcGxhdGVzL3RyaWdnZXIvc3FsLzkuMV9wbHVzL2RlbGV0ZS5z cWwKQEAgLTAsMCArMSBAQAorRFJPUCBUUklHR0VSIHt7Y29ubnxxdElkZW50 KGRhdGEubmFtZSl9fSBPTiB7e2Nvbm58cXRJZGVudChkYXRhLm5zcG5hbWUs IGRhdGEucmVsbmFtZSApfX17JSBpZiBjYXNjYWRlICV9IENBU0NBREV7JSBl bmRpZiAlfTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVtcGxhdGVz L3RyaWdnZXIvc3FsLzkuMV9wbHVzL2VuYWJsZV9kaXNhYmxlX3RyaWdnZXIu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBsYXRl cy90cmlnZ2VyL3NxbC85LjFfcGx1cy9lbmFibGVfZGlzYWJsZV90cmlnZ2Vy LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzAw OTI3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L3RyaWdnZXJzL3RlbXBsYXRlcy90cmlnZ2VyL3NxbC85LjFfcGx1cy9lbmFi bGVfZGlzYWJsZV90cmlnZ2VyLnNxbApAQCAtMCwwICsxLDIgQEAKK0FMVEVS IFRBQkxFIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJs ZSkgfX0KKyAgICB7JSBpZiBkYXRhLmlzX2VuYWJsZV90cmlnZ2VyID09IFRy dWUgJX1FTkFCTEV7JSBlbHNlICV9RElTQUJMRXslIGVuZGlmICV9IFRSSUdH RVIge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX07ClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL3RyaWdnZXJzL3RlbXBsYXRlcy90cmlnZ2VyL3NxbC85LjFfcGx1 cy9nZXRfY29sdW1ucy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJp Z2dlcnMvdGVtcGxhdGVzL3RyaWdnZXIvc3FsLzkuMV9wbHVzL2dldF9jb2x1 bW5zLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j NzRjNjhiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3RyaWdnZXJzL3RlbXBsYXRlcy90cmlnZ2VyL3NxbC85LjFfcGx1cy9n ZXRfY29sdW1ucy5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QgYXR0LmF0 dG5hbWUgYXMgbmFtZQorRlJPTSBwZ19hdHRyaWJ1dGUgYXR0CisgICAgV0hF UkUgYXR0LmF0dHJlbGlkID0ge3t0aWR9fTo6b2lkCisgICAgQU5EIGF0dC5h dHRudW0gSU4gKHt7IGNsaXN0IH19KQorICAgIEFORCBhdHQuYXR0aXNkcm9w cGVkIElTIEZBTFNFCisgICAgT1JERVIgQlkgYXR0LmF0dG51bQpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy90cmlnZ2Vycy90ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvOS4x X3BsdXMvZ2V0X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJp Z2dlcnMvdGVtcGxhdGVzL3RyaWdnZXIvc3FsLzkuMV9wbHVzL2dldF9vaWQu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmMzAy NTcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dHJpZ2dlcnMvdGVtcGxhdGVzL3RyaWdnZXIvc3FsLzkuMV9wbHVzL2dldF9v aWQuc3FsCkBAIC0wLDAgKzEsNSBAQAorU0VMRUNUIHQub2lkCitGUk9NIHBn X3RyaWdnZXIgdAorICAgIFdIRVJFIE5PVCB0Z2lzaW50ZXJuYWwKKyAgICBB TkQgdGdyZWxpZCA9IHt7dGlkfX06Ok9JRAorICAgIEFORCB0Z25hbWUgPSB7 e2RhdGEubmFtZXxxdExpdGVyYWx9fTsKXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJp Z2dlcnMvdGVtcGxhdGVzL3RyaWdnZXIvc3FsLzkuMV9wbHVzL2dldF9wYXJl bnQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBs YXRlcy90cmlnZ2VyL3NxbC85LjFfcGx1cy9nZXRfcGFyZW50LnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZGQ1ZDNjCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJz L3RlbXBsYXRlcy90cmlnZ2VyL3NxbC85LjFfcGx1cy9nZXRfcGFyZW50LnNx bApAQCAtMCwwICsxLDUgQEAKK1NFTEVDVCBuc3AubnNwbmFtZSBBUyBzY2hl bWEgLHJlbC5yZWxuYW1lIEFTIHRhYmxlCitGUk9NIHBnX2NsYXNzIHJlbAor ICAgIEpPSU4gcGdfbmFtZXNwYWNlIG5zcAorICAgIE9OIHJlbC5yZWxuYW1l c3BhY2UgPSBuc3Aub2lkOjppbnQKKyAgICBXSEVSRSByZWwub2lkID0ge3t0 aWR9fTo6aW50ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBsYXRl cy90cmlnZ2VyL3NxbC85LjFfcGx1cy9nZXRfdHJpZ2dlcmZ1bmN0aW9ucy5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVtcGxhdGVz L3RyaWdnZXIvc3FsLzkuMV9wbHVzL2dldF90cmlnZ2VyZnVuY3Rpb25zLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MTM0ZTBl Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Ry aWdnZXJzL3RlbXBsYXRlcy90cmlnZ2VyL3NxbC85LjFfcGx1cy9nZXRfdHJp Z2dlcmZ1bmN0aW9ucy5zcWwKQEAgLTAsMCArMSwxMSBAQAorU0VMRUNUIHF1 b3RlX2lkZW50KG5zcG5hbWUpIHx8ICcuJyB8fCBxdW90ZV9pZGVudChwcm9u YW1lKSBBUyB0ZnVuY3Rpb25zCitGUk9NIHBnX3Byb2MgcCwgcGdfbmFtZXNw YWNlIG4sIHBnX2xhbmd1YWdlIGwKKyAgICBXSEVSRSBwLnByb25hbWVzcGFj ZSA9IG4ub2lkCisgICAgQU5EIHAucHJvbGFuZyA9IGwub2lkCisgICAgLS0g UEdPSURfVFlQRV9UUklHR0VSID0gMjI3OQorICAgIEFORCBsLmxhbm5hbWUg IT0gJ2VkYnNwbCcgQU5EIHByb3JldHR5cGUgPSAyMjc5CisgICAgLS0gSWYg U2hvdyBTeXN0ZW1PYmplY3RzIGlzIG5vdCB0cnVlCisgICAgeyUgaWYgbm90 IHNob3dfc3lzdGVtX29iamVjdHMgJX0KKyAgICBBTkQgKG5zcG5hbWUgTk9U IExJS0UgRSdwZ1xfJScgQU5EIG5zcG5hbWUgTk9UIGluICgnaW5mb3JtYXRp b25fc2NoZW1hJykpCisgICAgeyUgZW5kaWYgJX0KKyAgICBPUkRFUiBCWSBu c3BuYW1lIEFTQywgcHJvbmFtZSBBU0MKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90ZW1wbGF0ZXMvdHJpZ2dlci9zcWwv OS4xX3BsdXMvbm9kZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Ry aWdnZXJzL3RlbXBsYXRlcy90cmlnZ2VyL3NxbC85LjFfcGx1cy9ub2Rlcy5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDk1YWRh MwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90 cmlnZ2Vycy90ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvOS4xX3BsdXMvbm9kZXMu c3FsCkBAIC0wLDAgKzEsNSBAQAorU0VMRUNUIHQub2lkLCB0LnRnbmFtZSBh cyBuYW1lLCAoQ0FTRSBXSEVOIHRnZW5hYmxlZCA9ICdPJyBUSEVOIHRydWUg RWxTRSBmYWxzZSBFTkQpIEFTIGlzX2VuYWJsZV90cmlnZ2VyCitGUk9NIHBn X3RyaWdnZXIgdAorICAgIFdIRVJFIE5PVCB0Z2lzaW50ZXJuYWwKKyAgICBB TkQgdGdyZWxpZCA9IHt7dGlkfX06Ok9JRAorICAgIE9SREVSIEJZIHRnbmFt ZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vy cy90ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVtcGxhdGVz L3RyaWdnZXIvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzNTYyN2IKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVt cGxhdGVzL3RyaWdnZXIvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCkBA IC0wLDAgKzEsMjMgQEAKK1NFTEVDVCB0Lm9pZCx0LnRnbmFtZSBBUyBuYW1l LCB0LnhtaW4sIHQuKiwgcmVsbmFtZSwgQ0FTRSBXSEVOIHJlbGtpbmQgPSAn cicgVEhFTiBUUlVFIEVMU0UgRkFMU0UgRU5EIEFTIHBhcmVudGlzdGFibGUs CisgICAgbnNwbmFtZSwgZGVzLmRlc2NyaXB0aW9uLCBsLmxhbm5hbWUsIHAu cHJvc3JjLCBwLnByb25hbWUgQVMgdGZ1bmN0aW9uLAorICAgIENPQUxFU0NF KHN1YnN0cmluZyhwZ19nZXRfdHJpZ2dlcmRlZih0Lm9pZCksICdXSEVOICgu KikgRVhFQ1VURSBQUk9DRURVUkUnKSwKKyAgICBzdWJzdHJpbmcocGdfZ2V0 X3RyaWdnZXJkZWYodC5vaWQpLCAnV0hFTiAoLiopICBcXCR0cmlnZ2VyJykp IEFTIHdoZW5jbGF1c2UsCisgICAgLS0gV2UgbmVlZCB0byBjb252ZXJ0IHRn YXJncyBjb2x1bW4gYnl0ZWEgZGF0YXR5cGUgdG8gYXJyYXkgZGF0YXR5cGUK KyAgICAoc3RyaW5nX3RvX2FycmF5KGVuY29kZSh0Z2FyZ3MsICdlc2NhcGUn KSwgJ1wwMDAnKTo6dGV4dFtdKVsxOnRnbmFyZ3NdIEFTIHRnYXJncywKK3sl IGlmIGRhdGxhc3RzeXNvaWQgJX0KKyAgICAoQ0FTRSBXSEVOIHQub2lkIDw9 IHt7IGRhdGxhc3RzeXNvaWR9fTo6b2lkIFRIRU4gdHJ1ZSBFbFNFIGZhbHNl IEVORCkgQVMgaXNfc3lzX3RyaWdnZXIsCit7JSBlbmRpZiAlfQorICAgIChD QVNFIFdIRU4gdGdjb25zdHJhaW50ICE9IDA6Ok9JRCBUSEVOIHRydWUgRWxT RSBmYWxzZSBFTkQpIEFTIGlzX2NvbnN0YXJpbnQsCisgICAgKENBU0UgV0hF TiB0Z2VuYWJsZWQgPSAnTycgVEhFTiB0cnVlIEVsU0UgZmFsc2UgRU5EKSBB UyBpc19lbmFibGVfdHJpZ2dlcgorRlJPTSBwZ190cmlnZ2VyIHQKKyAgICBK T0lOIHBnX2NsYXNzIGNsIE9OIGNsLm9pZD10Z3JlbGlkCisgICAgSk9JTiBw Z19uYW1lc3BhY2UgbmEgT04gbmEub2lkPXJlbG5hbWVzcGFjZQorICAgIExF RlQgT1VURVIgSk9JTiBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpv aWQ9dC5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfdHJpZ2dlcic6OnJlZ2Ns YXNzKQorICAgIExFRlQgT1VURVIgSk9JTiBwZ19wcm9jIHAgT04gcC5vaWQ9 dC50Z2ZvaWQKKyAgICBMRUZUIE9VVEVSIEpPSU4gcGdfbGFuZ3VhZ2UgbCBP TiBsLm9pZD1wLnByb2xhbmcKK1dIRVJFIE5PVCB0Z2lzaW50ZXJuYWwKKyAg ICBBTkQgdGdyZWxpZCA9IHt7dGlkfX06Ok9JRAoreyUgaWYgdHJpZCAlfQor ICAgIEFORCB0Lm9pZCA9IHt7dHJpZH19OjpPSUQKK3slIGVuZGlmICV9CitP UkRFUiBCWSB0Z25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvdHJpZ2dlcnMvdGVtcGxhdGVzL3RyaWdnZXIvc3FsLzkuMV9wbHVz L3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMv dGVtcGxhdGVzL3RyaWdnZXIvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTA1OTRjMgotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vy cy90ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbApA QCAtMCwwICsxLDggQEAKK3slIGlmIGRhdGEubmFtZSBhbmQgb19kYXRhLm5h bWUgIT0gZGF0YS5uYW1lICV9CitBTFRFUiBUUklHR0VSIHt7IGNvbm58cXRJ ZGVudChvX2RhdGEubmFtZSkgfX0gT04ge3sgY29ubnxxdElkZW50KG9fZGF0 YS5uc3BuYW1lLCBvX2RhdGEucmVsbmFtZSkgfX0KKyAgICBSRU5BTUUgVE8g e3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX07Cit7JSBlbmRpZiAlfQor eyUgaWYgZGF0YS5kZXNjcmlwdGlvbiBhbmQgb19kYXRhLmRlc2NyaXB0aW9u ICE9IGRhdGEuZGVzY3JpcHRpb24gJX0KK0NPTU1FTlQgT04gVFJJR0dFUiB7 eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fSBPTiB7eyBjb25ufHF0SWRl bnQob19kYXRhLm5zcG5hbWUsIG9fZGF0YS5yZWxuYW1lKSB9fQorICAgIElT IHt7ZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWx9fTsKK3slIGVuZGlmICV9 Cg== --047d7bf0c29ac731b5052fe13a96 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 --047d7bf0c29ac731b5052fe13a96--