Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kzWzz-0005DE-Og for pgadmin-hackers@arkaria.postgresql.org; Wed, 13 Jan 2021 03:39:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kzWzS-0004fw-1s for pgadmin-hackers@arkaria.postgresql.org; Wed, 13 Jan 2021 03:38:34 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kzWzR-0004ew-EL for pgadmin-hackers@lists.postgresql.org; Wed, 13 Jan 2021 03:38:33 +0000 Received: from mail-pf1-x432.google.com ([2607:f8b0:4864:20::432]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kzWzM-0001yk-Vf for pgadmin-hackers@postgresql.org; Wed, 13 Jan 2021 03:38:32 +0000 Received: by mail-pf1-x432.google.com with SMTP id x126so387238pfc.7 for ; Tue, 12 Jan 2021 19:38:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=V/nGlVkzviO2wG3oE+WtwB6HNP60L5hiuqL2BqLu2hA=; b=gSt7VmTiWLB0USOs3J3YGlQDVU8EymabFQUzjyNxLRQxhoZId9E+mo3Jo8KtEcv0Pm Jy4hr9guv61WF6mCEsnKrdX1Y33djxK/YGwyjsxdYIEUqbZ+HkfmMSZMrD90ZKFnwg/N QWF6BZbBOSDvXajytr9xrMzevdR+xKxIWPJD6Et/pjfW7ZfHIsbkyTkdqQiW7bWUCOuf LVvUa7aN02ho4/szSGVpzRfEuBg2ogNAk3aSzLOxvXgPSzzlArJrESushLpGNZA8fv67 aBXmDz9QK6LC2dcR8fCFYJOV+HFibl8RWVxwXXuxD0ltGfbtKIDC2Zav7/hUdrS1WR+r 0uzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=V/nGlVkzviO2wG3oE+WtwB6HNP60L5hiuqL2BqLu2hA=; b=Ym8N0D8/6ByVUCJbxx9SLPqzT+iwLIArMz7sgcGLXQCbcVAs/uXKP6QHCzELKPgzAp Z9M5XClan6q35+DNRUE1E8TTj2ndlim76Ff/QB5aPe0FmWAA6qMPYJDoQnvfClO9Ndla HFaeUpwRHmAtGK1YUupF3z83eurec+++uNJfSDPdX/aoHf8S+HgiwUz8oh9987roxnSu cI0WXpkjqkY4MVFSGhBAI4GZ0bDUxIHSrSLBWKgY7417zMXJVxPbr3iEJtWMHBLJ6Mus NMwWXGG5v7T5AtBUiT031dlQusIFX/sc8KND+eW5I12buIKbptQ0wkDehHr5YGR5vZ0Y VvTg== X-Gm-Message-State: AOAM531LlLQWYvqW4ojd34RxhuOGHuX6/QpjR5PBD9aLJkDP1LlDRSSp EJEUsK/jddSaNkyF65XbTQOa8+bonWSKhWW6/5+gkBfrVS9ClhOoJ4yllj2ZHvpfTWMucqEu2V7 BscASUDWbVL7s8lsVjgTlgVq1CYymDQ0PggZgP9sge71XfoFVT4yZgEq7kNEncBHMTtOnmHTMr1 jk2y6yEux90bACRvhWDFn2bi1oMBTPCfGUsBBEjGkRJCznvIwaOFPokH2tyg== X-Google-Smtp-Source: ABdhPJxA7Pufh4Ah3ngOoYlYEGVM0bnjnM3NEcaynP+uEqd9Wqt9Vqt0BanxkGeSZiyPRYrSNCQvgGDuoUndwGy1zMM= X-Received: by 2002:a62:b410:0:b029:1a4:7868:7e4e with SMTP id h16-20020a62b4100000b02901a478687e4emr97448pfn.62.1610509106239; Tue, 12 Jan 2021 19:38:26 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Pradip Parkale Date: Wed, 13 Jan 2021 09:08:15 +0530 Message-ID: Subject: Re: [pgAdmin][RM5912]: Added support for Logical Replication. To: Akshay Joshi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="0000000000002f8d1805b8bfdff0" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --0000000000002f8d1805b8bfdff0 Content-Type: multipart/alternative; boundary="0000000000002f8d1705b8bfdfee" --0000000000002f8d1705b8bfdfee Content-Type: text/plain; charset="UTF-8" Hi Akshay, Please ignore my previous patch. Please find my updated patch. On Mon, Jan 11, 2021 at 5:07 PM Pradip Parkale < pradip.parkale@enterprisedb.com> wrote: > Hi Hackers, > > Please find the attached patch for logical replication support. > > -- > Thanks & Regards, > Pradip Parkale > Software Engineer | EnterpriseDB Corporation > -- Thanks & Regards, Pradip Parkale Software Engineer | EnterpriseDB Corporation --0000000000002f8d1705b8bfdfee Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Akshay,

Please ignore=C2=A0my=C2=A0p= revious patch. Please find my updated patch.

=
On Mon= , Jan 11, 2021 at 5:07 PM Pradip Parkale <pradip.parkale@enterprisedb.com> wrote:
Hi Hackers,

Please f= ind the attached patch for logical replication support.

--
Thanks & Regards,
P= radip Parkale
Software Engineer | EnterpriseDB Corporation


--
Thanks & Regards,
Pradip Park= ale
Software Engineer | EnterpriseDB Corporation
--0000000000002f8d1705b8bfdfee-- --0000000000002f8d1805b8bfdff0 Content-Type: application/octet-stream; name="RM-5912_v2.patch" Content-Disposition: attachment; filename="RM-5912_v2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kjuvi07t0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9wdWJsaWNhdGlvbnMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL19faW5pdF9fLnB5Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYzliODNjMTA4Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3B1YmxpY2F0aW9ucy9fX2luaXRfXy5weQpAQCAtMCwwICsxLDgyOCBAQAorIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmln aHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMg c29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKworIiIiSW1wbGVtZW50cyBQdWJsaWNhdGlvbiBOb2RlIiIiCitpbXBv cnQgc2ltcGxlanNvbiBhcyBqc29uCitmcm9tIGZ1bmN0b29scyBpbXBvcnQgd3JhcHMKKworaW1w b3J0IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzIGFzIGRh dGFiYXNlcworZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCByZXF1ZXN0LCBqc29u aWZ5Citmcm9tIGZsYXNrX2JhYmVsZXggaW1wb3J0IGdldHRleHQKK2Zyb20gcGdhZG1pbi5icm93 c2VyLmNvbGxlY3Rpb24gaW1wb3J0IENvbGxlY3Rpb25Ob2RlTW9kdWxlCitmcm9tIHBnYWRtaW4u YnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE5vZGVWaWV3Citmcm9tIHBnYWRtaW4udXRpbHMu YWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIFwK KyAgICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGdvbmUKK2Zyb20gcGdhZG1pbi51 dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gY29uZmlnIGltcG9ydCBQR19ERUZB VUxUX0RSSVZFUgorZnJvbSBwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmLmNvbXBhcmUgaW1wb3J0 IFNjaGVtYURpZmZPYmplY3RDb21wYXJlCisKKworY2xhc3MgUHVibGljYXRpb25Nb2R1bGUoQ29s bGVjdGlvbk5vZGVNb2R1bGUpOgorICAgICIiIgorICAgIGNsYXNzIFB1YmxpY2F0aW9uTW9kdWxl KENvbGxlY3Rpb25Ob2RlTW9kdWxlKQorCisgICAgICAgIEEgbW9kdWxlIGNsYXNzIGZvciBQdWJs aWNhdGlvbiBub2RlIGRlcml2ZWQgZnJvbSBDb2xsZWN0aW9uTm9kZU1vZHVsZS4KKworICAgIE1l dGhvZHM6CisgICAgLS0tLS0tLQorICAgICogX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAg ICAgLSBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSBQdWJsaWNhdGlvbk1vZHVsZSBh bmQgaXQncworICAgICAgYmFzZSBtb2R1bGUuCisKKyAgICAqIGdldF9ub2RlcyhnaWQsIHNpZCwg ZGlkKQorICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgYnJvd3NlciBjb2xs ZWN0aW9uIG5vZGUuCisKKyAgICAqIG5vZGVfaW5vZGUoKQorICAgICAgLSBNZXRob2QgaXMgb3Zl cnJpZGRlbiBmcm9tIGl0cyBiYXNlIGNsYXNzIHRvIG1ha2UgdGhlIG5vZGUgYXMgbGVhZiBub2Rl LgorCisgICAgKiBzY3JpcHRfbG9hZCgpCisgICAgICAtIExvYWQgdGhlIG1vZHVsZSBzY3JpcHQg Zm9yIHB1YmxpY2F0aW9uLCB3aGVuIGFueSBvZiB0aGUgZGF0YWJhc2Ugbm9kZQorICAgICAgaXMg aW5pdGlhbGl6ZWQuCisgICAgIiIiCisKKyAgICBfTk9ERV9UWVBFID0gJ3B1YmxpY2F0aW9uJwor ICAgIF9DT0xMRUNUSU9OX0xBQkVMID0gZ2V0dGV4dCgiUHVibGljYXRpb25zIikKKworICAgIGRl ZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAg TWV0aG9kIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgUHVibGljYXRpb25Nb2R1bGUgYW5kIGl0 J3MKKyAgICAgICAgYmFzZSBtb2R1bGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgICph cmdzOgorICAgICAgICAgICAgKiprd2FyZ3M6CisgICAgICAgICIiIgorICAgICAgICBzdXBlcihQ dWJsaWNhdGlvbk1vZHVsZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAgICAg ICBzZWxmLm1pbl92ZXIgPSAxMDAwMDAKKyAgICAgICAgc2VsZi5tYXhfdmVyID0gTm9uZQorCisg ICAgZGVmIGdldF9ub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlkKToKKyAgICAgICAgIiIiCisgICAg ICAgIE1ldGhvZCBpcyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBicm93c2VyIGNvbGxlY3Rpb24gbm9k ZQorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAg ICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAg ICAgICAgIiIiCisgICAgICAgIHlpZWxkIHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9u X25vZGUoZGlkKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG5vZGVfaW5vZGUoc2VsZik6Cisg ICAgICAgICIiIgorICAgICAgICBPdmVycmlkZSB0aGlzIHByb3BlcnR5IHRvIG1ha2UgdGhlIG5v ZGUgYSBsZWFmIG5vZGUuCisKKyAgICAgICAgUmV0dXJuczogRmFsc2UgYXMgdGhpcyBpcyB0aGUg bGVhZiBub2RlCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIEBwcm9w ZXJ0eQorICAgIGRlZiBzY3JpcHRfbG9hZChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIExv YWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9yIHB1YmxpY2F0aW9uLCB3aGVuIGFueSBvZiB0aGUgZGF0 YWJhc2Ugbm9kZXMKKyAgICAgICAgYXJlIGluaXRpYWxpemVkLgorCisgICAgICAgIFJldHVybnM6 IG5vZGUgdHlwZSBvZiB0aGUgc2VydmVyIG1vZHVsZS4KKyAgICAgICAgIiIiCisgICAgICAgIHJl dHVybiBkYXRhYmFzZXMuRGF0YWJhc2VNb2R1bGUubm9kZV90eXBlCisKKyAgICBAcHJvcGVydHkK KyAgICBkZWYgbW9kdWxlX3VzZV90ZW1wbGF0ZV9qYXZhc2NyaXB0KHNlbGYpOgorICAgICAgICAi IiIKKyAgICAgICAgUmV0dXJucyB3aGV0aGVyIEppbmphMiB0ZW1wbGF0ZSBpcyB1c2VkIGZvciBn ZW5lcmF0aW5nIHRoZSBqYXZhc2NyaXB0CisgICAgICAgIG1vZHVsZS4KKyAgICAgICAgIiIiCisg ICAgICAgIHJldHVybiBGYWxzZQorCisKK2JsdWVwcmludCA9IFB1YmxpY2F0aW9uTW9kdWxlKF9f bmFtZV9fKQorCisKK2NsYXNzIFB1YmxpY2F0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcsIFNjaGVt YURpZmZPYmplY3RDb21wYXJlKToKKyAgICAiIiIKKyAgICBjbGFzcyBQdWJsaWNhdGlvblZpZXco UEdDaGlsZE5vZGVWaWV3KQorCisgICAgICAgIEEgdmlldyBjbGFzcyBmb3IgUHVibGljYXRpb24g bm9kZSBkZXJpdmVkIGZyb20gUEdDaGlsZE5vZGVWaWV3LgorICAgICAgICBUaGlzIGNsYXNzIGlz IHJlc3BvbnNpYmxlIGZvciBhbGwgdGhlIHN0dWZmIHJlbGF0ZWQgdG8gdmlldyBsaWtlCisgICAg ICAgIHVwZGF0aW5nIHB1YmxpY2F0aW9uIG5vZGUsIHNob3dpbmcgcHJvcGVydGllcywgc2hvd2lu ZyBzcWwgaW4gc3FsIHBhbmUuCisKKyAgICBNZXRob2RzOgorICAgIC0tLS0tLS0KKyAgICAqIF9f aW5pdF9fKCoqa3dhcmdzKQorICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRo ZSBQdWJsaWNhdGlvblZpZXcgYW5kIGl0J3MgYmFzZSB2aWV3LgorCisgICAgKiBjaGVja19wcmVj b25kaXRpb24oKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgYmVoYXZlIGFzIGEgZGVjb3Jh dG9yIHdoaWNoIHdpbGwgY2hlY2tzCisgICAgICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3Jl IHJ1bm5pbmcgdmlldywgaXQgd2lsbCBhbHNvIGF0dGFjaGVzCisgICAgICAgIG1hbmFnZXIsY29u biAmIHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCisKKyAgICAqIGxpc3QoKQorICAg ICAgLSBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gbGlzdCBhbGwgdGhlIHB1YmxpY2F0aW9uIG5v ZGVzIHdpdGhpbiB0aGF0CisgICAgICBjb2xsZWN0aW9uLgorCisgICAgKiBub2RlcygpCisgICAg ICAtIFRoaXMgZnVuY3Rpb24gd2lsbCB1c2VkIHRvIGNyZWF0ZSBhbGwgdGhlIGNoaWxkIG5vZGUg d2l0aGluIHRoYXQKKyAgICAgIGNvbGxlY3Rpb24uIEhlcmUgaXQgd2lsbCBjcmVhdGUgYWxsIHRo ZSBwdWJsaWNhdGlvbiBub2RlLgorCisgICAgKiBwcm9wZXJ0aWVzKGdpZCwgc2lkLCBkaWQsIHBi aWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBzaG93IHRoZSBwcm9wZXJ0aWVzIG9mIHRo ZSBzZWxlY3RlZCBwdWJsaWNhdGlvbiBub2RlCisKKyAgICAqIHVwZGF0ZShnaWQsIHNpZCwgZGlk LCBwYmlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHRoZSBkYXRhIGZvciB0 aGUgc2VsZWN0ZWQgcHVibGljYXRpb24gbm9kZQorCisgICAgKiBjcmVhdGUoZ2lkLCBzaWQsIGRp ZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSB0aGUgbmV3IHB1YmxpY2F0aW9u IG5vZGUKKworICAgICogZGVsZXRlKGdpZCwgc2lkLCBkaWQsIHBiaWQpCisgICAgICAtIFRoaXMg ZnVuY3Rpb24gd2lsbCBkZWxldGUgdGhlIHNlbGVjdGVkIHB1YmxpY2F0aW9uIG5vZGUKKworICAg ICogbXNxbChnaWQsIHNpZCwgZGlkLCBwYmlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIGlzIHVz ZWQgdG8gcmV0dXJuIG1vZGlmaWVkIFNRTCBmb3IgdGhlIHNlbGVjdGVkCisgICAgICBwdWJsaWNh dGlvbiBub2RlCisKKyAgICAqIGdldF9zcWwoZGF0YSwgcGJpZCkKKyAgICAgIC0gVGhpcyBmdW5j dGlvbiB3aWxsIGdlbmVyYXRlIHNxbCBmcm9tIG1vZGVsIGRhdGEKKworICAgICogZ2V0X3RhYmxl cyhnaWQsIHNpZCwgZGlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGhhbmRs ZXIgYW5kIGlubGluZSBmdW5jdGlvbnMgZm9yIHRoZQorICAgICAgc2VsZWN0ZWQgcHVibGljYXRp b24gbm9kZQorCisgICAgKiBnZXRfdGVtcGxhdGVzKGdpZCwgc2lkLCBkaWQpCisgICAgICAtIFRo aXMgZnVuY3Rpb24gcmV0dXJucyBwdWJsaWNhdGlvbiB0ZW1wbGF0ZXMuCisKKyAgICAqIHNxbChn aWQsIHNpZCwgZGlkLCBwYmlkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRl IHNxbCB0byBzaG93IGl0IGluIHNxbCBwYW5lIGZvciB0aGUKKyAgICAgIHNlbGVjdGVkIHB1Ymxp Y2F0aW9uIG5vZGUuCisKKyAgICAqIGRlcGVuZGVudHMoZ2lkLCBzaWQsIGRpZCwgcGJpZCk6Cisg ICAgICAtIFRoaXMgZnVuY3Rpb24gZ2V0IHRoZSBkZXBlbmRlbnRzIGFuZCByZXR1cm4gYWpheCBy ZXNwb25zZSBmb3IgdGhlCisgICAgICBwdWJsaWNhdGlvbiBub2RlLgorCisgICAgKiBkZXBlbmRl bmNpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgcGJpZCk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24g Z2V0IHRoZSBkZXBlbmRlbmNpZXMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNlIGZvciB0aGUKKyAg ICAgIHB1YmxpY2F0aW9uIG5vZGUuCisgICAgIiIiCisKKyAgICBfTk9UX0ZPVU5EX1BVQl9JTkZP Uk1BVElPTiA9IFwKKyAgICAgICAgZ2V0dGV4dCgiQ291bGQgbm90IGZpbmQgdGhlIHB1YmxpY2F0 aW9uIGluZm9ybWF0aW9uLiIpCisgICAgbm9kZV90eXBlID0gYmx1ZXByaW50Lm5vZGVfdHlwZQor CisgICAgcGFyZW50X2lkcyA9IFsKKyAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdnaWQn fSwKKyAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdzaWQnfSwKKyAgICAgICAgeyd0eXBl JzogJ2ludCcsICdpZCc6ICdkaWQnfQorICAgIF0KKyAgICBpZHMgPSBbCisgICAgICAgIHsndHlw ZSc6ICdpbnQnLCAnaWQnOiAncGJpZCd9CisgICAgXQorCisgICAgb3BlcmF0aW9ucyA9IGRpY3Qo eworICAgICAgICAnb2JqJzogWworICAgICAgICAgICAgeydnZXQnOiAncHJvcGVydGllcycsICdk ZWxldGUnOiAnZGVsZXRlJywgJ3B1dCc6ICd1cGRhdGUnfSwKKyAgICAgICAgICAgIHsnZ2V0Jzog J2xpc3QnLCAncG9zdCc6ICdjcmVhdGUnLCAnZGVsZXRlJzogJ2RlbGV0ZSd9CisgICAgICAgIF0s CisgICAgICAgICdub2Rlcyc6IFt7J2dldCc6ICdub2RlJ30sIHsnZ2V0JzogJ25vZGVzJ31dLAor ICAgICAgICAnc3FsJzogW3snZ2V0JzogJ3NxbCd9XSwKKyAgICAgICAgJ21zcWwnOiBbeydnZXQn OiAnbXNxbCd9LCB7J2dldCc6ICdtc3FsJ31dLAorICAgICAgICAnc3RhdHMnOiBbeydnZXQnOiAn c3RhdGlzdGljcyd9XSwKKyAgICAgICAgJ2RlcGVuZGVuY3knOiBbeydnZXQnOiAnZGVwZW5kZW5j aWVzJ31dLAorICAgICAgICAnZGVwZW5kZW50JzogW3snZ2V0JzogJ2RlcGVuZGVudHMnfV0sCisg ICAgICAgICdnZXRfdGFibGVzJzogW3t9LCB7J2dldCc6ICdnZXRfdGFibGVzJ31dLAorICAgICAg ICAnZ2V0X3RlbXBsYXRlcyc6IFt7fSwgeydnZXQnOiAnZ2V0X3RlbXBsYXRlcyd9XSwKKyAgICAg ICAgJ2RlbGV0ZSc6IFt7J2RlbGV0ZSc6ICdkZWxldGUnfSwgeydkZWxldGUnOiAnZGVsZXRlJ31d CisgICAgfSkKKworICAgIGRlZiBfaW5pdF8oc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICAiIiIK KyAgICAgICAgTWV0aG9kIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgUHVibGljYXRpb25WaWV3 IGFuZCBpdHMgYmFzZSB2aWV3LgorICAgICAgICBJbml0aWFsaXplIGFsbCB0aGUgdmFyaWFibGVz IGNyZWF0ZS91c2VkIGR5bmFtaWNhbGx5IGxpa2UgY29ubiwKKyAgICAgICAgdGVtcGxhdGVfcGF0 aC4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgKiprd2FyZ3M6CisgICAgICAgICIiIgor ICAgICAgICBzZWxmLmNvbm4gPSBOb25lCisgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9IE5v bmUKKyAgICAgICAgc2VsZi5tYW5hZ2VyID0gTm9uZQorCisgICAgICAgIHN1cGVyKFB1YmxpY2F0 aW9uVmlldywgc2VsZikuX19pbml0X18oKiprd2FyZ3MpCisKKyAgICBkZWYgY2hlY2tfcHJlY29u ZGl0aW9uKGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2 ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNoZWNrIHRoZQorICAgICAgICBkYXRhYmFzZSBj b25uZWN0aW9uIGJlZm9yZSBydW5uaW5nIHRoZSB2aWV3LiBJdCBhbHNvIGF0dGFjaGVzCisgICAg ICAgIG1hbmFnZXIsIGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gc2VsZgorICAg ICAgICAiIiIKKworICAgICAgICBAd3JhcHMoZikKKyAgICAgICAgZGVmIHdyYXAoKmFyZ3MsICoq a3dhcmdzKToKKyAgICAgICAgICAgICMgSGVyZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dh cmdzIHdpbGwgaG9sZCBnaWQsc2lkLGRpZAorICAgICAgICAgICAgc2VsZiA9IGFyZ3NbMF0KKyAg ICAgICAgICAgIHNlbGYuZHJpdmVyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikKKyAg ICAgICAgICAgIHNlbGYubWFuYWdlciA9IHNlbGYuZHJpdmVyLmNvbm5lY3Rpb25fbWFuYWdlcihr d2FyZ3NbJ3NpZCddKQorICAgICAgICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5l Y3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAgICAgICBzZWxmLmRhdGxhc3RzeXNvaWQg PSBzZWxmLm1hbmFnZXIuZGJfaW5mb1trd2FyZ3NbJ2RpZCddXVsKKyAgICAgICAgICAgICAgICAn ZGF0bGFzdHN5c29pZCddIGlmIHNlbGYubWFuYWdlci5kYl9pbmZvIGlzIG5vdCBOb25lIFwKKyAg ICAgICAgICAgICAgICBhbmQga3dhcmdzWydkaWQnXSBpbiBzZWxmLm1hbmFnZXIuZGJfaW5mbyBl bHNlIDAKKworICAgICAgICAgICAgIyBTZXQgdGhlIHRlbXBsYXRlIHBhdGggZm9yIHRoZSBTUUwg c2NyaXB0cworICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gKAorICAgICAgICAgICAg ICAgICJwdWJsaWNhdGlvbnMvc3FsLyNncGRiI3swfSMiLmZvcm1hdChzZWxmLm1hbmFnZXIudmVy c2lvbikgaWYKKyAgICAgICAgICAgICAgICBzZWxmLm1hbmFnZXIuc2VydmVyX3R5cGUgPT0gJ2dw ZGInIGVsc2UKKyAgICAgICAgICAgICAgICAicHVibGljYXRpb25zL3NxbC8jezB9IyIuZm9ybWF0 KHNlbGYubWFuYWdlci52ZXJzaW9uKQorICAgICAgICAgICAgKQorCisgICAgICAgICAgICByZXR1 cm4gZigqYXJncywgKiprd2FyZ3MpCisKKyAgICAgICAgcmV0dXJuIHdyYXAKKworICAgIEBzdGF0 aWNtZXRob2QKKyAgICBkZWYgX3BhcnNlcl9kYXRhX2lucHV0X2Zyb21fY2xpZW50KGRhdGEpOgor ICAgICAgICAiIiIKKworICAgICAgICA6cGFyYW0gZGF0YToKKyAgICAgICAgOnJldHVybjogZGF0 YQorICAgICAgICAiIiIKKworICAgICAgICBpZiAncHVidGFibGUnIGluIGRhdGEgYW5kIGRhdGFb J3B1YnRhYmxlJ10gIT0gJyc6CisgICAgICAgICAgICBkYXRhWydwdWJ0YWJsZSddID0ganNvbi5s b2FkcygKKyAgICAgICAgICAgICAgICBkYXRhWydwdWJ0YWJsZSddLCBlbmNvZGluZz0ndXRmLTgn CisgICAgICAgICAgICApCisgICAgICAgIHJldHVybiBkYXRhCisKKyAgICBAY2hlY2tfcHJlY29u ZGl0aW9uCisgICAgZGVmIGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCk6CisgICAgICAgICIiIgor ICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gbGlzdCBhbGwgdGhlIHB1YmxpY2F0aW9u IG5vZGVzIHdpdGhpbiB0aGF0CisgICAgICAgIGNvbGxlY3Rpb24uCisKKyAgICAgICAgQXJnczoK KyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZl ciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAiIiIKKyAgICAgICAg c3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fUFJPUEVSVElFU19TUUxd KSkKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKwor ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAg ICAgICAgICAgcmVzcG9uc2U9cmVzWydyb3dzJ10sCisgICAgICAgICAgICBzdGF0dXM9MjAwCisg ICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbm9kZXMoc2VsZiwg Z2lkLCBzaWQsIGRpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVz ZWQgdG8gY3JlYXRlIGFsbCB0aGUgY2hpbGQgbm9kZXMgd2l0aGluIHRoZQorICAgICAgICBjb2xs ZWN0aW9uLiBIZXJlIGl0IHdpbGwgY3JlYXRlIGFsbCB0aGUgcHVibGljYXRpb24gbm9kZXMuCisK KyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAg ICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAg ICAiIiIKKyAgICAgICAgcmVzID0gW10KKyAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIv Ii5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ25vZGVzLnNxbCddKSkKKyAgICAgICAgc3RhdHVzLCByZXN1bHQgPSBzZWxm LmNvbm4uZXhlY3V0ZV8yZGFycmF5KHNxbCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzdWx0KQorCisg ICAgICAgIGZvciByb3cgaW4gcmVzdWx0Wydyb3dzJ106CisgICAgICAgICAgICByZXMuYXBwZW5k KAorICAgICAgICAgICAgICAgIHNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgK KyAgICAgICAgICAgICAgICAgICAgcm93WydvaWQnXSwKKyAgICAgICAgICAgICAgICAgICAgZGlk LAorICAgICAgICAgICAgICAgICAgICByb3dbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAg aWNvbj0iaWNvbi1wdWJsaWNhdGlvbiIKKyAgICAgICAgICAgICAgICApKQorCisgICAgICAgIHJl dHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICBkYXRhPXJlcywKKyAgICAgICAg ICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAg IGRlZiBub2RlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHBiaWQpOgorICAgICAgICAiIiIKKyAgICAg ICAgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIHByb3BlcnRpZXMgb2YgdGhlIHB1YmxpY2F0aW9u IG5vZGVzLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJ RAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2Ug SUQKKyAgICAgICAgICAgIHBiaWQ6IFB1YmxpY2F0aW9uIElECisgICAgICAgICIiIgorICAgICAg ICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9QUk9QRVJUSUVTX1NR TF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGJpZD1wYmlkKQorICAgICAgICBz dGF0dXMsIHJlc3VsdCA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoc3FsKQorICAgICAgICBp ZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1yZXN1bHQpCisKKyAgICAgICAgZm9yIHJvdyBpbiByZXN1bHRbJ3Jvd3MnXToKKyAg ICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgZGF0 YT1zZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAg ICAgIHJvd1snb2lkJ10sCisgICAgICAgICAgICAgICAgICAgIGRpZCwKKyAgICAgICAgICAgICAg ICAgICAgcm93WyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgIGljb249Imljb24tcHVibGlj YXRpb24iCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisg ICAgICAgICAgICApCisKKyAgICAgICAgcmV0dXJuIGdvbmUoZ2V0dGV4dCgiQ291bGQgbm90IGZp bmQgdGhlIHNwZWNpZmllZCBwdWJsaWNhdGlvbi4iKSkKKworICAgIEBjaGVja19wcmVjb25kaXRp b24KKyAgICBkZWYgcHJvcGVydGllcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBwYmlkKToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBzaG93IHRoZSBwcm9wZXJ0aWVzIG9m IHRoZQorICAgICAgICBzZWxlY3RlZCBwdWJsaWNhdGlvbiBub2RlLgorCisgICAgICAgIEFyZ3M6 CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2 ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAgIHBiaWQ6IFB1 YmxpY2F0aW9uIElECisgICAgICAgICIiIgorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuX2Zl dGNoX3Byb3BlcnRpZXMoZGlkLCBwYmlkKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAg ICAgICAgICByZXR1cm4gcmVzCisKKyAgICAgICAgaWYgJ2FsbF90YWJsZScgaW4gcmVzIGFuZCBy ZXNbJ2FsbF90YWJsZSddOgorICAgICAgICAgICAgcmVzWydwdWJ0YWJsZSddID0gJycKKworICAg ICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPXJlcywKKyAg ICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgZGVmIF9mZXRjaF9wcm9wZXJ0 aWVzKHNlbGYsIGRpZCwgcGJpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9u IGZldGNoIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBleHRlbnNpb24uCisgICAgICAgIDpwYXJhbSBk aWQ6CisgICAgICAgIDpwYXJhbSBwYmlkOgorICAgICAgICA6cmV0dXJuOgorICAgICAgICAiIiIK KyAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgIi8iLmpvaW4oW3Nl bGYudGVtcGxhdGVfcGF0aCwgc2VsZi5fUFJPUEVSVElFU19TUUxdKSwKKyAgICAgICAgICAgIHBi aWQ9cGJpZAorICAgICAgICApCisKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV9kaWN0KHNxbCkKKworICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0 dXJuIEZhbHNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAg IGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZSwgZ29u ZShzZWxmLl9OT1RfRk9VTkRfUFVCX0lORk9STUFUSU9OKQorCisgICAgICAgIGdldF9uYW1lX3Nx bCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRl X3BhdGgsIHNlbGYuX0RFTEVURV9TUUxdKSwKKyAgICAgICAgICAgIHBiaWQ9cGJpZCwgY29ubj1z ZWxmLmNvbm4KKyAgICAgICAgKQorICAgICAgICBzdGF0dXMsIHBuYW1lID0gc2VsZi5jb25uLmV4 ZWN1dGVfc2NhbGFyKGdldF9uYW1lX3NxbCkKKyAgICAgICAgdGFibGVfc3FsID0gcmVuZGVyX3Rl bXBsYXRlKAorICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2dldF90 YWJsZXMuc3FsJ10pLAorICAgICAgICAgICAgcG5hbWU9cG5hbWUKKyAgICAgICAgKQorCisgICAg ICAgIHB1Yl90YWJsZSA9IFtdCisgICAgICAgIHN0YXR1cywgdGFibGVfcmVzID0gc2VsZi5jb25u LmV4ZWN1dGVfZGljdCh0YWJsZV9zcWwpCisKKyAgICAgICAgZm9yIHRhYmxlIGluIHRhYmxlX3Jl c1sncm93cyddOgorICAgICAgICAgICAgcHViX3RhYmxlLmFwcGVuZCh0YWJsZVsncHVidGFibGUn XSkKKworICAgICAgICByZXNbJ3Jvd3MnXVswXVsncHVidGFibGUnXSA9IHB1Yl90YWJsZQorCisg ICAgICAgIHJldHVybiBUcnVlLCByZXNbJ3Jvd3MnXVswXQorCisgICAgQGNoZWNrX3ByZWNvbmRp dGlvbgorICAgIGRlZiB1cGRhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgcGJpZCk6CisgICAgICAg ICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHRoZSBkYXRhIGZvciB0aGUg c2VsZWN0ZWQgcHVibGljYXRpb24gbm9kZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAg Z2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAg ICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICBwYmlkOiBQdWJsaWNhdGlvbiBJRAor ICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZvcm0g ZWxzZSBqc29uLmxvYWRzKAorICAgICAgICAgICAgcmVxdWVzdC5kYXRhLCBlbmNvZGluZz0ndXRm LTgnCisgICAgICAgICkKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBkYXRhID0gc2VsZi5f cGFyc2VyX2RhdGFfaW5wdXRfZnJvbV9jbGllbnQoZGF0YSkKKworICAgICAgICAgICAgc3FsLCBu YW1lID0gc2VsZi5nZXRfc3FsKGRhdGEsIHBiaWQpCisKKyAgICAgICAgICAgICMgTW9zdCBwcm9i YWJseSB0aGlzIGlzIGR1ZSB0byBlcnJvcgorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uo c3FsLCBzdHIpOgorICAgICAgICAgICAgICAgIHJldHVybiBzcWwKKyAgICAgICAgICAgIHNxbCA9 IHNxbC5zdHJpcCgnXG4nKS5zdHJpcCgnICcpCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNl bGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykK KworICAgICAgICAgICAgcmV0dXJuIGpzb25pZnkoCisgICAgICAgICAgICAgICAgbm9kZT1zZWxm LmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAgICAgIHBi aWQsCisgICAgICAgICAgICAgICAgICAgIGRpZCwKKyAgICAgICAgICAgICAgICAgICAgbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgaWNvbj0iaWNvbi0lcyIgJSBzZWxmLm5vZGVfdHlwZQorICAg ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh cyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1z dHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGNyZWF0ZShzZWxmLCBn aWQsIHNpZCwgZGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBj cmVhdGUgdGhlIHB1YmxpY2F0aW9uIG9iamVjdAorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAg ICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAg ICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVpcmVkX2Fy Z3MgPSBbCisgICAgICAgICAgICAnbmFtZScKKyAgICAgICAgXQorCisgICAgICAgIGRhdGEgPSBy ZXF1ZXN0LmZvcm0gaWYgcmVxdWVzdC5mb3JtIGVsc2UganNvbi5sb2FkcygKKyAgICAgICAgICAg IHJlcXVlc3QuZGF0YSwgZW5jb2Rpbmc9J3V0Zi04JworICAgICAgICApCisgICAgICAgIGZvciBh cmcgaW4gcmVxdWlyZWRfYXJnczoKKyAgICAgICAgICAgIGlmIGFyZyBub3QgaW4gZGF0YToKKyAg ICAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAg ICAgICBzdGF0dXM9NDEwLAorICAgICAgICAgICAgICAgICAgICBzdWNjZXNzPTAsCisgICAgICAg ICAgICAgICAgICAgIGVycm9ybXNnPWdldHRleHQoCisgICAgICAgICAgICAgICAgICAgICAgICAi Q291bGQgbm90IGZpbmQgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAoe30pLiIKKyAgICAgICAgICAg ICAgICAgICAgKS5mb3JtYXQoYXJnKQorICAgICAgICAgICAgICAgICkKKworICAgICAgICB0cnk6 CisgICAgICAgICAgICBkYXRhID0gc2VsZi5fcGFyc2VyX2RhdGFfaW5wdXRfZnJvbV9jbGllbnQo ZGF0YSkKKworICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxm LnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuX0NSRUFURV9TUUxdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYXRhPWRhdGEsIGNvbm49c2VsZi5jb25uKQorCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9 IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJl cykKKworICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAg ICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdnZXRfcG9zaXRpb24uc3FsJ10pLAorICAg ICAgICAgICAgICAgIGNvbm49c2VsZi5jb25uLCBwdWJuYW1lPWRhdGFbJ25hbWUnXQorICAgICAg ICAgICAgKQorCisgICAgICAgICAgICBzdGF0dXMsIHJfc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVf ZGljdChzcWwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJl dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cl9zZXQpCisKKyAgICAgICAgICAg IHJldHVybiBqc29uaWZ5KAorICAgICAgICAgICAgICAgIG5vZGU9c2VsZi5ibHVlcHJpbnQuZ2Vu ZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAgICAgICAgICAgICAgICByX3NldFsncm93cyddWzBd WydvaWQnXSwKKyAgICAgICAgICAgICAgICAgICAgZGlkLAorICAgICAgICAgICAgICAgICAgICBy X3NldFsncm93cyddWzBdWyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgIGljb249J2ljb24t cHVibGljYXRpb24nCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorCisgICAgICAg IGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAg IGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgcGJpZD1Ob25lKToKKyAgICAgICAgIiIi CisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBkcm9wIHRoZSBwdWJsaWNhdGlvbiBvYmplY3QK KworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAg ICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAg ICAgICAgICBwYmlkOiBQdWJsaWNhdGlvbiBJRAorICAgICAgICAiIiIKKyAgICAgICAgaWYgcGJp ZCBpcyBOb25lOgorICAgICAgICAgICAgZGF0YSA9IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZv cm0gZWxzZSBqc29uLmxvYWRzKAorICAgICAgICAgICAgICAgIHJlcXVlc3QuZGF0YSwgZW5jb2Rp bmc9J3V0Zi04JworICAgICAgICAgICAgKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZGF0 YSA9IHsnaWRzJzogW3BiaWRdfQorCisgICAgICAgIGNhc2NhZGUgPSBzZWxmLl9jaGVja19jYXNj YWRlX29wZXJhdGlvbigpCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZm9yIHBiaWQgaW4g ZGF0YVsnaWRzJ106CisgICAgICAgICAgICAgICAgIyBHZXQgbmFtZSBmb3IgcHVibGljYXRpb24g ZnJvbSBwYmlkCisgICAgICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAg ICAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCBzZWxmLl9ERUxFVEVf U1FMXSksCisgICAgICAgICAgICAgICAgICAgIHBiaWQ9cGJpZCwgY29ubj1zZWxmLmNvbm4KKyAg ICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgc3RhdHVzLCBwbmFtZSA9IHNlbGYuY29u bi5leGVjdXRlX3NjYWxhcihzcWwpCisKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXBuYW1lKQorCisgICAgICAgICAgICAgICAgIyBkcm9wIHB1YmxpY2F0aW9uCisgICAgICAgICAg ICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAgICAiLyIuam9p bihbc2VsZi50ZW1wbGF0ZV9wYXRoLCBzZWxmLl9ERUxFVEVfU1FMXSksCisgICAgICAgICAgICAg ICAgICAgIHBuYW1lPXBuYW1lLCBjYXNjYWRlPWNhc2NhZGUsIGNvbm49c2VsZi5jb25uCisgICAg ICAgICAgICAgICAgKQorCisgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4u ZXhlY3V0ZV9zY2FsYXIoc3FsKQorICAgICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAg ICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVz KQorCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAg ICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICBpbmZvPWdldHRleHQoIlB1YmxpY2F0aW9u IGRyb3BwZWQiKQorICAgICAgICAgICAgKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMg ZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3Ry KGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBtc3FsKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHBiaWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9u IGlzIHVzZWQgdG8gcmV0dXJuIG1vZGlmaWVkIFNRTCBmb3IgdGhlIHNlbGVjdGVkCisgICAgICAg IHB1YmxpY2F0aW9uIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2Vy dmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlk OiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgcGJpZDogUHVibGljYXRpb24gSUQKKyAgICAgICAg IiIiCisgICAgICAgIGRhdGEgPSB7fQorICAgICAgICBmb3IgaywgdiBpbiByZXF1ZXN0LmFyZ3Mu aXRlbXMoKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAjIGNvbW1lbnRzIHNo b3VsZCBiZSB0YWtlbiBhcyBpcyBiZWNhdXNlIGlmIHVzZXIgZW50ZXJzIGEKKyAgICAgICAgICAg ICAgICAjIGpzb24gY29tbWVudCBpdCBpcyBwYXJzZWQgYnkgbG9hZHMgd2hpY2ggc2hvdWxkIG5v dCBoYXBwZW4KKyAgICAgICAgICAgICAgICBpZiBrIGluICgnZGVzY3JpcHRpb24nLCk6CisgICAg ICAgICAgICAgICAgICAgIGRhdGFba10gPSB2CisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICAgICAgICAgZGF0YVtrXSA9IGpzb24ubG9hZHModiwgZW5jb2Rpbmc9J3V0Zi04JykK KyAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgICAgIGRhdGFba10g PSB2CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNxbCwgbmFtZSA9IHNlbGYuZ2V0X3NxbChk YXRhLCBwYmlkKQorICAgICAgICAgICAgIyBNb3N0IHByb2JhYmx5IHRoaXMgaXMgZHVlIHRvIGVy cm9yCisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShzcWwsIHN0cik6CisgICAgICAgICAg ICAgICAgcmV0dXJuIHNxbAorICAgICAgICAgICAgaWYgc3FsID09ICcnOgorICAgICAgICAgICAg ICAgIHNxbCA9ICItLW1vZGlmaWVkIFNRTCIKKworICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNv bl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBkYXRhPXNxbCwKKyAgICAgICAgICAgICAgICBz dGF0dXM9MjAwCisgICAgICAgICAgICApCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToK KyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUp KQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBfZ2V0X29wdGlvbl9kZXRhaWxzKG9sZF9k YXRhLCBkYXRhKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiB0aGUgb3B0aW9uIGRldGFp bHMKKyAgICAgICAgOnBhcmFtIG9sZF9kYXRhOgorICAgICAgICA6cGFyYW0gZGF0YToKKyAgICAg ICAgOnJldHVybjogZGF0YQorICAgICAgICAiIiIKKyAgICAgICAgaWYgJ2V2bnRfaW5zZXJ0JyBp biBkYXRhIG9yICdldm50X2RlbGV0ZScgaW4gZGF0YSBvciBcCisgICAgICAgICAgICAgICAgJ2V2 bnRfdXBkYXRlJyBpbiBkYXRhIG9yICdldm50X3RydW5jYXRlJyBpbiBkYXRhOgorCisgICAgICAg ICAgICBpZiAnZXZudF9pbnNlcnQnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgIGRhdGFb J2V2bnRfaW5zZXJ0J10gPSBvbGRfZGF0YVsnZXZudF9pbnNlcnQnXQorCisgICAgICAgICAgICBp ZiAnZXZudF9kZWxldGUnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgIGRhdGFbJ2V2bnRf ZGVsZXRlJ10gPSBvbGRfZGF0YVsnZXZudF9kZWxldGUnXQorCisgICAgICAgICAgICBpZiAnZXZu dF91cGRhdGUnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgIGRhdGFbJ2V2bnRfdXBkYXRl J10gPSBvbGRfZGF0YVsnZXZudF91cGRhdGUnXQorCisgICAgICAgICAgICBpZiAnZXZudF90cnVu Y2F0ZScgbm90IGluIGRhdGEgYW5kICdldm50X3RydW5jYXRlJyBpbiBvbGRfZGF0YToKKyAgICAg ICAgICAgICAgICBkYXRhWydldm50X3RydW5jYXRlJ10gPSBvbGRfZGF0YVsnZXZudF90cnVuY2F0 ZSddCisKKyAgICAgICAgcmV0dXJuIGRhdGEKKworICAgIGRlZiBnZXRfc3FsKHNlbGYsIGRhdGEs IHBiaWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2Vu ZXJhdGUgc3FsIGZyb20gbW9kZWwgZGF0YS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAg ZGF0YTogQ29udGFpbnMgdGhlIGRhdGEgb2YgdGhlIHNlbGVjdGVkIHB1YmxpY2F0aW9uIG5vZGUu CisgICAgICAgICAgICBwYmlkOiBQdWJsaWNhdGlvbiBJRAorICAgICAgICAiIiIKKyAgICAgICAg cmVxdWlyZWRfYXJncyA9IFsKKyAgICAgICAgICAgICduYW1lJworICAgICAgICBdCisgICAgICAg IGRyb3BfdGFibGUgPSBGYWxzZQorCisgICAgICAgIGlmIHBiaWQgaXMgbm90IE5vbmU6CisgICAg ICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgIi8iLmpvaW4o W3NlbGYudGVtcGxhdGVfcGF0aCwgc2VsZi5fUFJPUEVSVElFU19TUUxdKSwgcGJpZD1wYmlkCisg ICAgICAgICAgICApCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRl X2RpY3Qoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAg aWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAgICAgICAgICAgIHJldHVybiBnb25lKHNl bGYuX05PVF9GT1VORF9QVUJfSU5GT1JNQVRJT04pCisKKyAgICAgICAgICAgIG9sZF9kYXRhID0g c2VsZi5fZ2V0X29sZF90YWJsZV9kYXRhKHJlc1sncm93cyddWzBdWyduYW1lJ10sIHJlcykKKwor ICAgICAgICAgICAgZHJvcF90YWJsZV9kYXRhID0gW10KKworICAgICAgICAgICAgZm9yIHRhYmxl IGluIG9sZF9kYXRhWydwdWJ0YWJsZSddOgorICAgICAgICAgICAgICAgIGlmIHRhYmxlIG5vdCBp biBkYXRhWydwdWJ0YWJsZSddOgorICAgICAgICAgICAgICAgICAgICBkcm9wX3RhYmxlX2RhdGEu YXBwZW5kKHRhYmxlKQorICAgICAgICAgICAgICAgICAgICBkcm9wX3RhYmxlID0gVHJ1ZQorCisg ICAgICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICAgICAgaWYg YXJnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgICAgICBkYXRhW2FyZ10gPSBvbGRfZGF0 YVthcmddCisKKyAgICAgICAgICAgICMgQWRkIG9sZCBldmVudCBzZXR0aW5nIGZvciBmdXR1cmUg cmVmZXJlbmNlCisgICAgICAgICAgICBkYXRhID0gc2VsZi5fZ2V0X29wdGlvbl9kZXRhaWxzKG9s ZF9kYXRhLCBkYXRhKQorCisgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAg ICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgc2VsZi5fVVBEQVRFX1NR TF0pLAorICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgb19kYXRhPW9sZF9kYXRhLCBjb25uPXNl bGYuY29ubiwKKyAgICAgICAgICAgICAgICBkcm9wX3RhYmxlPWRyb3BfdGFibGUsIGRyb3BfdGFi bGVfZGF0YT1kcm9wX3RhYmxlX2RhdGEKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHJldHVy biBzcWwuc3RyaXAoJ1xuJyksIGRhdGFbJ25hbWUnXSBpZiAnbmFtZScgaW4gZGF0YSBcCisgICAg ICAgICAgICAgICAgZWxzZSBvbGRfZGF0YVsnbmFtZSddCisgICAgICAgIGVsc2U6CisKKyAgICAg ICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRo LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9DUkVB VEVfU1FMXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1kYXRhLCBj b25uPXNlbGYuY29ubikKKyAgICAgICAgICAgIHJldHVybiBzcWwuc3RyaXAoJ1xuJyksIGRhdGFb J25hbWUnXQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBnZXRfdGFibGVzKHNl bGYsIGdpZCwgc2lkLCBkaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBy ZXR1cm5zIHRoZSB0YWJsZXMgbGlzdC4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lk OiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAg ICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICIiIgorICAgICAgICByZXMgPSBbeydsYWJlbCc6 ICcnLCAndmFsdWUnOiAnJ31dCisKKyAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5q b2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ2dldF9hbGxfdGFibGVzLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNob3dfc3lzX29iamVjdHM9c2VsZi5ibHVlcHJpbnQuCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaG93X3N5c3RlbV9vYmplY3RzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyX3R5cGU9c2VsZi5tYW5hZ2VyLnNlcnZlcl90eXBlCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5l eGVjdXRlXzJkYXJyYXkoc3FsKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgIGZvciBy b3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgICAgICdsYWJlbCc6IHJvd1sndGFibGUnXSwKKyAgICAg ICAgICAgICAgICAgICAgJ3ZhbHVlJzogcm93Wyd0YWJsZSddCisgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgKQorICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAg ICAgICAgZGF0YT1yZXMsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKworICAg IGRlZiBfZ2V0X29sZF90YWJsZV9kYXRhKHNlbGYsIHBuYW1lLCByZXMpOgorICAgICAgICAiIiIK KyAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm4gdGFibGUgZGV0YWlscyBiZWZvcmUgdXBkYXRl CisgICAgICAgIDpwYXJhbSBwbmFtZToKKyAgICAgICAgOnBhcmFtIHJlczoKKyAgICAgICAgOnJl dHVybjpvbGRfZGF0YQorICAgICAgICAiIiIKKworICAgICAgICB0YWJsZV9zcWwgPSByZW5kZXJf dGVtcGxhdGUoCisgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnZ2V0 X3RhYmxlcy5zcWwnXSksCisgICAgICAgICAgICBwbmFtZT1wbmFtZQorICAgICAgICApCisKKyAg ICAgICAgcHViX3RhYmxlID0gW10KKyAgICAgICAgc3RhdHVzLCB0YWJsZV9yZXMgPSBzZWxmLmNv bm4uZXhlY3V0ZV9kaWN0KHRhYmxlX3NxbCkKKworICAgICAgICBmb3IgdGFibGUgaW4gdGFibGVf cmVzWydyb3dzJ106CisgICAgICAgICAgICBwdWJfdGFibGUuYXBwZW5kKHRhYmxlWydwdWJ0YWJs ZSddKQorCisgICAgICAgIHJlc1sncm93cyddWzBdWydwdWJ0YWJsZSddID0gcHViX3RhYmxlCisK KyAgICAgICAgIyBNYWtpbmcgY29weSBvZiBvdXRwdXQgZm9yIGZ1dHVyZSB1c2UKKyAgICAgICAg b2xkX2RhdGEgPSBkaWN0KHJlc1sncm93cyddWzBdKQorCisgICAgICAgIGlmICdhbGxfdGFibGUn IGluIG9sZF9kYXRhIGFuZCBvbGRfZGF0YVsnYWxsX3RhYmxlJ106CisgICAgICAgICAgICBvbGRf ZGF0YVsncHVidGFibGUnXSA9ICcnCisKKyAgICAgICAgcmV0dXJuIG9sZF9kYXRhCisKKyAgICBA Y2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHNxbChzZWxmLCBnaWQsIHNpZCwgZGlkLCBwYmlk LCBqc29uX3Jlc3A9VHJ1ZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdp bGwgZ2VuZXJhdGUgc3FsIHRvIHNob3cgaW4gdGhlIHNxbCBwYW5lbCBmb3IgdGhlCisgICAgICAg IHNlbGVjdGVkIHB1YmxpY2F0aW9uIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAg IGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAg ICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgcGJpZDogUHVibGljYXRpb24gSUQK KyAgICAgICAgICAgIGpzb25fcmVzcDoKKyAgICAgICAgIiIiCisgICAgICAgIHNxbCA9IHJlbmRl cl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsIHNl bGYuX1BST1BFUlRJRVNfU1FMXSksCisgICAgICAgICAgICBwYmlkPXBiaWQKKyAgICAgICAgKQor ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAg ICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgorICAg ICAgICAgICAgcmV0dXJuIGdvbmUoc2VsZi5fTk9UX0ZPVU5EX1BVQl9JTkZPUk1BVElPTikKKwor ICAgICAgICBnZXRfbmFtZV9zcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAiLyIu am9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCBzZWxmLl9ERUxFVEVfU1FMXSksCisgICAgICAgICAg ICBwYmlkPXBiaWQsIGNvbm49c2VsZi5jb25uCisgICAgICAgICkKKyAgICAgICAgc3RhdHVzLCBw bmFtZSA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihnZXRfbmFtZV9zcWwpCisKKyAgICAgICAg IyBHZXQgb2xkIHRhYmxlIGRldGFpbHMKKyAgICAgICAgb2xkX2RhdGEgPSBzZWxmLl9nZXRfb2xk X3RhYmxlX2RhdGEocG5hbWUsIHJlcykKKworICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUo Ii8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLl9DUkVBVEVfU1FMXSksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkYXRhPW9sZF9kYXRhLCBjb25uPXNlbGYuY29ubikKKworICAgICAgICBzcWxfaGVh ZGVyID0gIi0tIFB1YmxpY2F0aW9uIDoge307Ii5mb3JtYXQob2xkX2RhdGFbJ25hbWUnXSkKKyAg ICAgICAgc3FsX2hlYWRlciArPSAiXG4iCisKKyAgICAgICAgc3FsX2hlYWRlciArPSAiLS0gIgor CisgICAgICAgIHNxbF9oZWFkZXIgKz0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgIi8i LmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgc2VsZi5fREVMRVRFX1NRTF0pLAorICAgICAgICAg ICAgcG5hbWU9b2xkX2RhdGFbJ25hbWUnXSwgKQorCisgICAgICAgIHNxbF9oZWFkZXIgKz0gIlxu IgorCisgICAgICAgIHNxbCA9IHNxbF9oZWFkZXIgKyBzcWwKKworICAgICAgICBpZiBub3QganNv bl9yZXNwOgorICAgICAgICAgICAgcmV0dXJuIHNxbAorCisgICAgICAgIHJldHVybiBhamF4X3Jl c3BvbnNlKHJlc3BvbnNlPXNxbCkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg ZGVwZW5kZW50cyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBwYmlkKToKKyAgICAgICAgIiIiCisgICAg ICAgIFRoaXMgZnVuY3Rpb24gZ2V0cyB0aGUgZGVwZW5kZW50cyBhbmQgcmV0dXJucyBhbiBhamF4 IHJlc3BvbnNlCisgICAgICAgIGZvciB0aGUgcHVibGljYXRpb24gbm9kZS4KKworICAgICAgICBB cmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDog U2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICBwYmlk OiBQdWJsaWNhdGlvbiBJRAorICAgICAgICAiIiIKKyAgICAgICAgZGVwZW5kZW50c19yZXN1bHQg PSBzZWxmLmdldF9kZXBlbmRlbnRzKHNlbGYuY29ubiwgcGJpZCkKKyAgICAgICAgcmV0dXJuIGFq YXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZT1kZXBlbmRlbnRzX3Jlc3VsdCwKKyAg ICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlv bgorICAgIGRlZiBkZXBlbmRlbmNpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgcGJpZCk6CisgICAg ICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldHMgdGhlIGRlcGVuZGVuY2llcyBhbmQg cmV0dXJucyBhbiBhamF4IHJlc3BvbnNlCisgICAgICAgIGZvciB0aGUgcHVibGljYXRpb24gbm9k ZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAg ICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisg ICAgICAgICAgICBwYmlkOiBQdWJsaWNhdGlvbiBJRAorICAgICAgICAiIiIKKyAgICAgICAgZGVw ZW5kZW5jaWVzX3Jlc3VsdCA9IHNlbGYuZ2V0X2RlcGVuZGVuY2llcyhzZWxmLmNvbm4sIHBiaWQp CisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9uc2U9ZGVw ZW5kZW5jaWVzX3Jlc3VsdCwKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisK K1B1YmxpY2F0aW9uVmlldy5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1 YmxpY2F0aW9ucy9zdGF0aWMvaW1nL2NvbGwtcHVibGljYXRpb24uc3ZnIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy9zdGF0 aWMvaW1nL2NvbGwtcHVibGljYXRpb24uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMC4uY2M5NDY5MTliCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy9zdGF0aWMvaW1n L2NvbGwtcHVibGljYXRpb24uc3ZnCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEu MCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3Ig MjQuMC4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAg LS0+Cis8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3Lncz Lm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsi IHg9IjBweCIgeT0iMHB4IgorCSB2aWV3Qm94PSIwIDAgMTYgMTYiIHN0eWxlPSJlbmFibGUtYmFj a2dyb3VuZDpuZXcgMCAwIDE2IDE2OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+Cis8c3R5bGUgdHlw ZT0idGV4dC9jc3MiPgorCS5zdDB7ZmlsbDojRERFMUYwO3N0cm9rZTojNEI1RkFEO3N0cm9rZS13 aWR0aDowLjY1O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJv a2UtbWl0ZXJsaW1pdDoxMDt9CisJLnN0MXtmaWxsOiM0QjVGQUQ7fQorCS5zdDJ7ZmlsbDpub25l O3N0cm9rZTojNEI1RkFEO3N0cm9rZS13aWR0aDowLjY1O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0 cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9Cis8L3N0eWxlPgorPGc+ CisJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEwLDEzYy0yLDItNS4xLDItNy4xLDBzLTItNS4xLDAt Ny4xQzQuNSw3LjUsOC41LDExLjUsMTAsMTN6Ii8+Cis8L2c+Cis8Zz4KKwk8cGF0aCBjbGFzcz0i c3QwIiBkPSJNMTEuOCwxMS4zYy0yLDItNS4xLDItNy4xLDBzLTItNS4xLDAtNy4xQzYuMiw1Ljcs MTAuMiw5LjgsMTEuOCwxMS4zeiIvPgorPC9nPgorPHBhdGggY2xhc3M9InN0MSIgZD0iTTguNyw3 LjhsMC44LTAuN2MwLjEsMC4xLDAuMywwLjEsMC40LDAuMWMwLjYsMCwxLTAuNCwxLTFzLTAuNC0x LTEtMXMtMSwwLjQtMSwxYzAsMC4xLDAsMC4zLDAuMSwwLjRMOC4yLDcuMworCUw4LjcsNy44eiIv PgorPGc+CisJPHBhdGggY2xhc3M9InN0MiIgZD0iTTEwLjUsMS42YzIuMiwwLDQsMS44LDQsNCIv PgorCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xMC42LDMuNmMxLjEsMCwyLDAuOSwyLDIiLz4KKzwv Zz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy9zdGF0aWMvaW1nL2NvbGwtc3Vic2NyaXB0 aW9uLnN2ZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9wdWJsaWNhdGlvbnMvc3RhdGljL2ltZy9jb2xsLXN1YnNjcmlwdGlvbi5zdmcKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5kMTRhZGZkMzkKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv cHVibGljYXRpb25zL3N0YXRpYy9pbWcvY29sbC1zdWJzY3JpcHRpb24uc3ZnCkBAIC0wLDAgKzEs MzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIEdlbmVy YXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjQuMC4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcg VmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+Cis8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVy XzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6 Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgorCSB2aWV3Qm94PSIwIDAg MTYgMTYiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDE2IDE2OyIgeG1sOnNwYWNl PSJwcmVzZXJ2ZSI+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCS5zdDB7ZmlsbDojRkJFRURG O3N0cm9rZTojRTU4RTI2O3N0cm9rZS13aWR0aDowLjY1O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0 cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9CisJLnN0MXtmaWxsOiNF NThFMjY7fQorCS5zdDJ7ZmlsbDpub25lO3N0cm9rZTojRTU4RTI2O3N0cm9rZS13aWR0aDowLjY1 O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJs aW1pdDoxMDt9Cis8L3N0eWxlPgorPGc+CisJPGc+CisJCTxnPgorCQkJPHBhdGggY2xhc3M9InN0 MCIgZD0iTTEyLjksNS43YzIsMiwyLDUuMSwwLDcuMXMtNS4xLDItNy4xLDBDNy4zLDExLjMsMTEu NCw3LjIsMTIuOSw1Ljd6Ii8+CisJCTwvZz4KKwk8L2c+CisJPGc+CisJCTxnPgorCQkJPHBhdGgg Y2xhc3M9InN0MCIgZD0iTTExLjQsNC4yYzIsMiwyLDUuMSwwLDcuMXMtNS4xLDItNy4xLDBDNS44 LDkuOCw5LjksNS43LDExLjQsNC4yeiIvPgorCQk8L2c+CisJCTxnPgorCQkJPHBhdGggY2xhc3M9 InN0MSIgZD0iTTcuOCw3LjNMNy4xLDYuNmMwLjEtMC4xLDAuMS0wLjMsMC4xLTAuNGMwLTAuNi0w LjQtMS0xLTFzLTEsMC40LTEsMXMwLjQsMSwxLDFjMC4xLDAsMC4zLDAsMC40LTAuMQorCQkJCWww LjcsMC43Ii8+CisJCQk8Zz4KKwkJCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNNS42LDEuN2MwLDIu Mi0xLjgsNC00LDQiLz4KKwkJCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMy43LDEuOGMwLDEuMS0w LjksMi0yLDIiLz4KKwkJCTwvZz4KKwkJPC9nPgorCTwvZz4KKzwvZz4KKzwvc3ZnPgpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3B1YmxpY2F0aW9ucy9zdGF0aWMvaW1nL3B1YmxpY2F0aW9uLnN2ZyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvc3RhdGlj L2ltZy9wdWJsaWNhdGlvbi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw Li4zYjU4MmNmNTEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3N0YXRpYy9pbWcvcHVibGlj YXRpb24uc3ZnCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9 InV0Zi04Ij8+Cis8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjMuMC42LCBTVkcg RXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+Cis8c3ZnIHZl cnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2 ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0i MHB4IgorCSB2aWV3Qm94PSIwIDAgMTYgMTYiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcg MCAwIDE2IDE2OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3Mi PgorCS5zdDB7ZmlsbDojRERFMUYwO3N0cm9rZTojNEI1RkFEO3N0cm9rZS13aWR0aDowLjY1O3N0 cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1p dDoxMDt9CisJLnN0MXtmaWxsOiM0QjVGQUQ7fQorCS5zdDJ7ZmlsbDpub25lO3N0cm9rZTojNEI1 RkFEO3N0cm9rZS13aWR0aDowLjY1O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9p bjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9Cis8L3N0eWxlPgorPGc+CisJPGc+CisJCTxw YXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMSwxMmMtMiwyLTUuMSwyLTcuMSwwcy0yLTUuMSwwLTcuMUM1 LjQsNi40LDkuNSwxMC41LDExLDEyeiIvPgorCTwvZz4KKwk8Zz4KKwkJPHBhdGggY2xhc3M9InN0 MSIgZD0iTTcuOSw4LjZsMC43LTAuN0M4LjcsOCw4LjksOCw5LDhjMC42LDAsMS0wLjQsMS0xUzku Niw2LDksNlM4LDYuNCw4LDdjMCwwLjEsMCwwLjMsMC4xLDAuNEw3LjQsOC4xIi8+CisJCTxnPgor CQkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTkuNiwyLjVjMi4yLDAsNCwxLjgsNCw0Ii8+CisJCQk8 cGF0aCBjbGFzcz0ic3QyIiBkPSJNOS43LDQuNGMxLjEsMCwyLDAuOSwyLDIiLz4KKwkJPC9nPgor CTwvZz4KKzwvZz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy9zdGF0aWMvaW1nL3N1YnNj cmlwdGlvbi5zdmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvcHVibGljYXRpb25zL3N0YXRpYy9pbWcvc3Vic2NyaXB0aW9uLnN2ZwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjYzYTE1M2M2ZAotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9w dWJsaWNhdGlvbnMvc3RhdGljL2ltZy9zdWJzY3JpcHRpb24uc3ZnCkBAIC0wLDAgKzEsMjIgQEAK Kzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIEdlbmVyYXRvcjog QWRvYmUgSWxsdXN0cmF0b3IgMjMuMC42LCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lv bjogNi4wMCBCdWlsZCAwKSAgLS0+Cis8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHht bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cu dzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgorCSB2aWV3Qm94PSIwIDAgMTYgMTYi IHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDE2IDE2OyIgeG1sOnNwYWNlPSJwcmVz ZXJ2ZSI+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCS5zdDB7ZmlsbDojRkJFRURGO3N0cm9r ZTojRTU4RTI2O3N0cm9rZS13aWR0aDowLjY1O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1s aW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9CisJLnN0MXtmaWxsOiNFNThFMjY7 fQorCS5zdDJ7ZmlsbDpub25lO3N0cm9rZTojRTU4RTI2O3N0cm9rZS13aWR0aDowLjY1O3N0cm9r ZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDox MDt9Cis8L3N0eWxlPgorPGc+CisJPGc+CisJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMi4yLDVj MiwyLDIsNS4xLDAsNy4xcy01LjEsMi03LjEsMEM2LjYsMTAuNiwxMC43LDYuNSwxMi4yLDV6Ii8+ CisJPC9nPgorCTxnPgorCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNOC42LDguMUw3LjksNy40Qzgs Ny4zLDgsNy4xLDgsN2MwLTAuNi0wLjQtMS0xLTFTNiw2LjQsNiw3czAuNCwxLDEsMWMwLjEsMCww LjMsMCwwLjQtMC4xbDAuNywwLjciLz4KKwkJPGc+CisJCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJN Ni40LDIuNWMwLDIuMi0xLjgsNC00LDQiLz4KKwkJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik00LjUs Mi42YzAsMS4xLTAuOSwyLTIsMiIvPgorCQk8L2c+CisJPC9nPgorPC9nPgorPC9zdmc+CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvcHVibGljYXRpb25zL3N0YXRpYy9qcy9wdWJsaWNhdGlvbi5qcyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvc3RhdGlj L2pzL3B1YmxpY2F0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4u MTYwY2UyZThjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy9zdGF0aWMvanMvcHVibGljYXRp b24uanMKQEAgLTAsMCArMSwyMzIgQEAKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyBwZ0FkbWluIDQgLSBQb3N0Z3Jl U1FMIFRvb2xzCisvLworLy8gQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4g RGV2ZWxvcG1lbnQgVGVhbQorLy8gVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUg UG9zdGdyZVNRTCBMaWNlbmNlCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworZGVmaW5lKCdwZ2FkbWluLm5vZGUucHVi bGljYXRpb24nLCBbCisgICdzb3VyY2VzL2dldHRleHQnLCAnc291cmNlcy91cmxfZm9yJywgJ2px dWVyeScsICd1bmRlcnNjb3JlJywKKyAgJ3NvdXJjZXMvcGdhZG1pbicsICdwZ2FkbWluLmJyb3dz ZXInLCAncGdhZG1pbi5iYWNrZm9ybScsCisgICdwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlvbics ICdwZ2FkbWluLmJyb3dzZXIuc2VydmVyLnByaXZpbGVnZScsCitdLCBmdW5jdGlvbihnZXR0ZXh0 LCB1cmxfZm9yLCAkLCBfLCBwZ0FkbWluLCBwZ0Jyb3dzZXIsIEJhY2tmb3JtKSB7CisKKyAgLy8g RXh0ZW5kIHRoZSBicm93c2VyJ3MgY29sbGVjdGlvbiBjbGFzcyBmb3IgcHVibGljYXRpb25zIGNv bGxlY3Rpb24KKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwtcHVibGljYXRpb24nXSkgewor ICAgIHBnQnJvd3Nlci5Ob2Rlc1snY29sbC1wdWJsaWNhdGlvbiddID0KKyAgICAgIHBnQnJvd3Nl ci5Db2xsZWN0aW9uLmV4dGVuZCh7CisgICAgICAgIG5vZGU6ICdwdWJsaWNhdGlvbicsCisgICAg ICAgIGxhYmVsOiBnZXR0ZXh0KCdQdWJsaWNhdGlvbnMnKSwKKyAgICAgICAgdHlwZTogJ2NvbGwt cHVibGljYXRpb24nLAorICAgICAgICBjb2x1bW5zOiBbJ25hbWUnLCAncHVib3duZXInLCAnYWxs X3RhYmxlJ10sCisgICAgICB9KTsKKyAgfQorCisgIC8vIEV4dGVuZCB0aGUgYnJvd3NlcidzIG5v ZGUgY2xhc3MgZm9yIHB1YmxpY2F0aW9uIG5vZGUKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ3B1 YmxpY2F0aW9uJ10pIHsKKyAgICBwZ0Jyb3dzZXIuTm9kZXNbJ3B1YmxpY2F0aW9uJ10gPSBwZ0Jy b3dzZXIuTm9kZS5leHRlbmQoeworICAgICAgcGFyZW50X3R5cGU6ICdkYXRhYmFzZScsCisgICAg ICB0eXBlOiAncHVibGljYXRpb24nLAorICAgICAgc3FsQWx0ZXJIZWxwOiAnc3FsLWFsdGVycHVi bGljYXRpb24uaHRtbCcsCisgICAgICBzcWxDcmVhdGVIZWxwOiAnc3FsLWNyZWF0ZXB1YmxpY2F0 aW9uLmh0bWwnLAorICAgICAgZGlhbG9nSGVscDogdXJsX2ZvcignaGVscC5zdGF0aWMnLCB7J2Zp bGVuYW1lJzogJ3B1YmxpY2F0aW9uX2RpYWxvZy5odG1sJ30pLAorICAgICAgbGFiZWw6IGdldHRl eHQoJ1B1YmxpY2F0aW9uJyksCisgICAgICBoYXNTUUw6ICB0cnVlLAorICAgICAgY2FuRHJvcDog dHJ1ZSwKKyAgICAgIGNhbkRyb3BDYXNjYWRlOiB0cnVlLAorICAgICAgaGFzRGVwZW5kczogdHJ1 ZSwKKyAgICAgIEluaXQ6IGZ1bmN0aW9uKCkgeworCisgICAgICAgIC8vIEF2b2lkIG11bHRpcGxl IHJlZ2lzdHJhdGlvbiBvZiBtZW51cworICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkKKyAg ICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7CisKKwor ICAgICAgICAvLyBBZGQgY29udGV4dCBtZW51cyBmb3IgcHVibGljYXRpb24KKyAgICAgICAgcGdC cm93c2VyLmFkZF9tZW51cyhbeworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfcHVibGljYXRpb25f b25fZGF0YWJhc2UnLCBub2RlOiAnZGF0YWJhc2UnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAg YXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3Bl cnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVs OiBnZXR0ZXh0KCdQdWJsaWNhdGlvbi4uLicpLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24g aWNvbi1wdWJsaWNhdGlvbicsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUnfSwKKyAgICAgICAgICBl bmFibGU6IHBnQnJvd3Nlci5Ob2Rlc1snZGF0YWJhc2UnXS5jYW5DcmVhdGUsCisgICAgICAgIH0s eworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfcHVibGljYXRpb25fb25fY29sbCcsIG5vZGU6ICdj b2xsLXB1YmxpY2F0aW9uJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2Jq ZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAg ICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJlbDogZ2V0dGV4dCgnUHVi bGljYXRpb24uLi4nKSwKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tcHVibGljYXRp b24nLCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJ30sCisgICAgICAgIH0seworICAgICAgICAgIG5h bWU6ICdjcmVhdGVfcHVibGljYXRpb24nLCBub2RlOiAncHVibGljYXRpb24nLCBtb2R1bGU6IHRo aXMsCisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazog J3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJp b3JpdHk6IDQsIGxhYmVsOiBnZXR0ZXh0KCdQdWJsaWNhdGlvbi4uLicpLAorICAgICAgICAgIGlj b246ICd3Y1RhYkljb24gaWNvbi1wdWJsaWNhdGlvbicsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUn fSwKKyAgICAgICAgfV0pOworICAgICAgfSwKKyAgICAgIC8vIERlZmluZSB0aGUgbW9kZWwgZm9y IHB1YmxpY2F0aW9uIG5vZGUKKyAgICAgIG1vZGVsOiBwZ0Jyb3dzZXIuTm9kZS5Nb2RlbC5leHRl bmQoeworICAgICAgICBpZEF0dHJpYnV0ZTogJ29pZCcsCisgICAgICAgIGRlZmF1bHRzOiB7Cisg ICAgICAgICAgbmFtZTogdW5kZWZpbmVkLAorICAgICAgICAgIHB1Ym93bmVyOiB1bmRlZmluZWQs CisgICAgICAgICAgcHVidGFibGU6IHVuZGVmaW5lZCwKKyAgICAgICAgICBhbGxfdGFibGU6IHVu ZGVmaW5lZCwKKyAgICAgICAgICBldm50X2luc2VydDp0cnVlLAorICAgICAgICAgIGV2bnRfZGVs ZXRlOnRydWUsCisgICAgICAgICAgZXZudF91cGRhdGU6dHJ1ZSwKKyAgICAgICAgICBldm50X3Ry dW5jYXRlOnRydWUsCisgICAgICAgICAgb25seV90YWJsZTogdW5kZWZpbmVkLAorICAgICAgICB9 LAorCisgICAgICAgIC8vIERlZmF1bHQgdmFsdWVzIQorICAgICAgICBpbml0aWFsaXplOiBmdW5j dGlvbihhdHRycywgYXJncykgeworICAgICAgICAgIHZhciBpc05ldyA9IChfLnNpemUoYXR0cnMp ID09PSAwKTsKKyAgICAgICAgICBpZiAoaXNOZXcpIHsKKyAgICAgICAgICAgIHZhciB1c2VySW5m byA9IHBnQnJvd3Nlci5zZXJ2ZXJJbmZvW2FyZ3Mubm9kZV9pbmZvLnNlcnZlci5faWRdLnVzZXI7 CisKKyAgICAgICAgICAgIHRoaXMuc2V0KHsncHVib3duZXInOiB1c2VySW5mby5uYW1lfSwge3Np bGVudDogdHJ1ZX0pOworICAgICAgICAgIH0KKyAgICAgICAgICBwZ0Jyb3dzZXIuTm9kZS5Nb2Rl bC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworICAgICAgICB9 LAorCisgICAgICAgIC8vIERlZmluZSB0aGUgc2NoZW1hIGZvciB0aGUgcHVibGljYXRpb24gbm9k ZQorICAgICAgICBzY2hlbWE6IFt7CisgICAgICAgICAgaWQ6ICduYW1lJywgbGFiZWw6IGdldHRl eHQoJ05hbWUnKSwgdHlwZTogJ3RleHQnLAorICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycs ICdjcmVhdGUnLCAnZWRpdCddLAorICAgICAgICAgIHZpc2libGU6IGZ1bmN0aW9uKCkgeworICAg ICAgICAgICAgaWYoIV8uaXNVbmRlZmluZWQodGhpcy5ub2RlX2luZm8pICYmICFfLmlzVW5kZWZp bmVkKHRoaXMubm9kZV9pbmZvLnNlcnZlcikKKyAgICAgICAgICAgICAgJiYgIV8uaXNVbmRlZmlu ZWQodGhpcy5ub2RlX2luZm8uc2VydmVyLnZlcnNpb24pICYmCisgICAgICAgICAgICAgICAgdGhp cy5ub2RlX2luZm8uc2VydmVyLnZlcnNpb24gPj0gMTAwMDAwKSB7CisgICAgICAgICAgICAgIHJl dHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg ICAgICAgIH0sCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnb2lkJywgbGFiZWw6IGdldHRl eHQoJ09JRCcpLCBjZWxsOiAnc3RyaW5nJywgbW9kZTogWydwcm9wZXJ0aWVzJ10sCisgICAgICAg ICAgdHlwZTogJ3RleHQnLAorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3B1Ym93bmVyJywg bGFiZWw6IGdldHRleHQoJ093bmVyJyksIHR5cGU6ICd0ZXh0JywKKyAgICAgICAgICBjb250cm9s OiBCYWNrZm9ybS5Ob2RlTGlzdEJ5TmFtZUNvbnRyb2wsIG5vZGU6ICdyb2xlJywKKyAgICAgICAg ICBtb2RlOiBbJ2VkaXQnLCAncHJvcGVydGllcycsICdjcmVhdGUnXSwgc2VsZWN0MjogeyBhbGxv d0NsZWFyOiBmYWxzZX0sCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnYWxsX3RhYmxlJywg bGFiZWw6IGdldHRleHQoJ0FsbCB0YWJsZT8nKSwgdHlwZTogJ3N3aXRjaCcsCisgICAgICAgICAg Z3JvdXA6IGdldHRleHQoJ0RlZmluaXRpb24nKSwgbW9kZTogWydlZGl0JywgJ3Byb3BlcnRpZXMn LCAnY3JlYXRlJ10sIGRlcHM6IFsnbmFtZSddLAorICAgICAgICAgIHJlYWRvbmx5OiBmdW5jdGlv bihtKSB7cmV0dXJuICFtLmlzTmV3KCk7fSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg ICAgIGlkOiAnb25seV90YWJsZScsIGxhYmVsOiBnZXR0ZXh0KCdPbmx5IHRhYmxlJyksIHR5cGU6 ICdzd2l0Y2gnLAorICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdEZWZpbml0aW9uJyksIG1vZGU6 IFsnZWRpdCcsICdjcmVhdGUnXSwKKyAgICAgICAgICBkZXBzOiBbJ25hbWUnLCAncHVidGFibGUn LCAnYWxsX3RhYmxlJ10sIHJlYWRvbmx5OiAnaXNUYWJsZScsCisgICAgICAgIH0sCisgICAgICAg IHsKKyAgICAgICAgICBpZDogJ3B1YnRhYmxlJywgbGFiZWw6IGdldHRleHQoJ1RhYmxlJyksIHR5 cGU6ICdhcnJheScsc2VsZWN0MjogeyBhbGxvd0NsZWFyOiB0cnVlLCBtdWx0aXBsZTogdHJ1ZSB9 LAorICAgICAgICAgIGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycsIHVybDonZ2V0X3RhYmxl cycsCisgICAgICAgICAgZ3JvdXA6IGdldHRleHQoJ0RlZmluaXRpb24nKSwgbW9kZTogWydlZGl0 JywgJ3Byb3BlcnRpZXMnLCAnY3JlYXRlJ10sCisgICAgICAgICAgZGVwczogWydhbGxfdGFibGUn XSwgZGlzYWJsZWQ6ICdpc0FsbFRhYmxlJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg ICAgIHR5cGU6ICduZXN0ZWQnLCBjb250cm9sOiAnZmllbGRzZXQnLCBtb2RlOiBbJ2NyZWF0ZScs J2VkaXQnLCAncHJvcGVydGllcyddLAorICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdXaXRoJyks IGdyb3VwOiBnZXR0ZXh0KCdEZWZpbml0aW9uJyksIGNvbnRlbnRDbGFzczogJ3JvdycsCisgICAg ICAgICAgc2NoZW1hOlt7CisgICAgICAgICAgICBpZDogJ2V2bnRfaW5zZXJ0JywgbGFiZWw6IGdl dHRleHQoJ0lOU0VSVCcpLAorICAgICAgICAgICAgdHlwZTogJ3N3aXRjaCcsIG1vZGU6IFsnY3Jl YXRlJywnZWRpdCcsICdwcm9wZXJ0aWVzJ10sCisgICAgICAgICAgICBncm91cDogZ2V0dGV4dCgn V2l0aCcpLAorICAgICAgICAgICAgZXh0cmFUb2dnbGVDbGFzc2VzOiAncGctZWwtc20tNicsCisg ICAgICAgICAgICBjb250cm9sTGFiZWxDbGFzc05hbWU6ICdjb250cm9sLWxhYmVsIHBnLWVsLXNt LTUgcGctZWwtMTInLAorICAgICAgICAgICAgY29udHJvbHNDbGFzc05hbWU6ICdwZ2FkbWluLWNv bnRyb2xzIHBnLWVsLXNtLTcgcGctZWwtMTInLAorICAgICAgICAgIH0seworICAgICAgICAgICAg aWQ6ICdldm50X3VwZGF0ZScsIGxhYmVsOiBnZXR0ZXh0KCdVUERBVEUnKSwKKyAgICAgICAgICAg IHR5cGU6ICdzd2l0Y2gnLCBtb2RlOiBbJ2NyZWF0ZScsJ2VkaXQnLCAncHJvcGVydGllcyddLAor ICAgICAgICAgICAgZ3JvdXA6IGdldHRleHQoJ1dpdGgnKSwKKyAgICAgICAgICAgIGV4dHJhVG9n Z2xlQ2xhc3NlczogJ3BnLWVsLXNtLTYnLAorICAgICAgICAgICAgY29udHJvbExhYmVsQ2xhc3NO YW1lOiAnY29udHJvbC1sYWJlbCBwZy1lbC1zbS01IHBnLWVsLTEyJywKKyAgICAgICAgICAgIGNv bnRyb2xzQ2xhc3NOYW1lOiAncGdhZG1pbi1jb250cm9scyBwZy1lbC1zbS03IHBnLWVsLTEyJywK KyAgICAgICAgICB9LHsKKyAgICAgICAgICAgIGlkOiAnZXZudF9kZWxldGUnLCBsYWJlbDogZ2V0 dGV4dCgnREVMRVRFJyksCisgICAgICAgICAgICB0eXBlOiAnc3dpdGNoJywgbW9kZTogWydjcmVh dGUnLCdlZGl0JywgJ3Byb3BlcnRpZXMnXSwKKyAgICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdX aXRoJyksCisgICAgICAgICAgICBleHRyYVRvZ2dsZUNsYXNzZXM6ICdwZy1lbC1zbS02JywKKyAg ICAgICAgICAgIGNvbnRyb2xMYWJlbENsYXNzTmFtZTogJ2NvbnRyb2wtbGFiZWwgcGctZWwtc20t NSBwZy1lbC0xMicsCisgICAgICAgICAgICBjb250cm9sc0NsYXNzTmFtZTogJ3BnYWRtaW4tY29u dHJvbHMgcGctZWwtc20tNyBwZy1lbC0xMicsCisgICAgICAgICAgfSx7CisgICAgICAgICAgICBp ZDogJ2V2bnRfdHJ1bmNhdGUnLCBsYWJlbDogZ2V0dGV4dCgnVFJVTkNBVEUnKSwKKyAgICAgICAg ICAgIHR5cGU6ICdzd2l0Y2gnLCBncm91cDogZ2V0dGV4dCgnV2l0aCcpLAorICAgICAgICAgICAg ZXh0cmFUb2dnbGVDbGFzc2VzOiAncGctZWwtc20tNicsCisgICAgICAgICAgICBjb250cm9sTGFi ZWxDbGFzc05hbWU6ICdjb250cm9sLWxhYmVsIHBnLWVsLXNtLTUgcGctZWwtMTInLAorICAgICAg ICAgICAgY29udHJvbHNDbGFzc05hbWU6ICdwZ2FkbWluLWNvbnRyb2xzIHBnLWVsLXNtLTcgcGct ZWwtMTInLAorICAgICAgICAgICAgdmlzaWJsZTogZnVuY3Rpb24obSkgeworICAgICAgICAgICAg ICBpZighXy5pc1VuZGVmaW5lZChtLm5vZGVfaW5mbykgJiYgIV8uaXNVbmRlZmluZWQobS5ub2Rl X2luZm8uc2VydmVyKQorICAgICAgICAgICAgICAmJiAhXy5pc1VuZGVmaW5lZChtLm5vZGVfaW5m by5zZXJ2ZXIudmVyc2lvbikgJiYKKyAgICAgICAgICAgICAgICBtLm5vZGVfaW5mby5zZXJ2ZXIu dmVyc2lvbiA+PSAxMTAwMDApCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgICB9XSwKKyAg ICAgICAgfSwKKyAgICAgICAgXSwKKworICAgICAgICBpc0FsbFRhYmxlOiAgZnVuY3Rpb24obSl7 CisgICAgICAgICAgdmFyIGFsbF90YWJsZSA9IG0uZ2V0KCdhbGxfdGFibGUnKTsKKyAgICAgICAg ICBpZihhbGxfdGFibGUpeworICAgICAgICAgICAgc2V0VGltZW91dCggZnVuY3Rpb24oKSB7Cisg ICAgICAgICAgICAgIG0uc2V0KCdwdWJ0YWJsZScsICcnKTsKKyAgICAgICAgICAgIH0sIDEwKTsK KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgIH0KKyAgICAgICAgICByZXR1cm4g ZmFsc2U7CisgICAgICAgIH0sCisgICAgICAgIGlzVGFibGU6ICBmdW5jdGlvbihtKXsKKyAgICAg ICAgICB2YXIgYWxsX3RhYmxlID0gbS5nZXQoJ2FsbF90YWJsZScpLAorICAgICAgICAgICAgdGFi bGUgPSBtLmdldCgncHVidGFibGUnKTsKKyAgICAgICAgICBpZihhbGxfdGFibGUpeworICAgICAg ICAgICAgc2V0VGltZW91dCggZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIG0uc2V0KCdvbmx5 X3RhYmxlJywgZmFsc2UpOworICAgICAgICAgICAgfSwgMTApOworICAgICAgICAgICAgcmV0dXJu IHRydWU7CisgICAgICAgICAgfQorCisgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQodGFibGUp IHx8IHRhYmxlLmxlbmd0aCA8IDEpeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg ICAgfQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSwKKworICAgICAgICAvKiB2 YWxpZGF0ZSBmdW5jdGlvbiBpcyB1c2VkIHRvIHZhbGlkYXRlIHRoZSBpbnB1dCBnaXZlbiBieQor ICAgICAgICAgKiB0aGUgdXNlci4gSW4gY2FzZSBvZiBlcnJvciwgbWVzc2FnZSB3aWxsIGJlIGRp c3BsYXllZCBvbgorICAgICAgICAgKiB0aGUgR1VJIGZvciB0aGUgcmVzcGVjdGl2ZSBjb250cm9s LgorICAgICAgICAgKi8KKyAgICAgICAgdmFsaWRhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgICAg IHZhciBuYW1lID0gdGhpcy5nZXQoJ25hbWUnKSwKKyAgICAgICAgICAgIG1zZzsKKworICAgICAg ICAgIGlmIChfLmlzVW5kZWZpbmVkKG5hbWUpIHx8IF8uaXNOdWxsKG5hbWUpIHx8CisgICAgICAg ICAgICBTdHJpbmcobmFtZSkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAg ICAgICAgICAgbXNnID0gZ2V0dGV4dCgnTmFtZSBjYW5ub3QgYmUgZW1wdHkuJyk7CisgICAgICAg ICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCduYW1lJywgbXNnKTsKKyAgICAgICAgICAgIHJldHVy biBtc2c7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC51 bnNldCgnbmFtZScpOworICAgICAgICAgIH0KKyAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAg ICAgfSwKKyAgICAgICAgY2FuQ3JlYXRlOiBmdW5jdGlvbihpdGVtRGF0YSwgaXRlbSkgeworCisg ICAgICAgICAgdmFyIHRyZWVEYXRhID0gdGhpcy5nZXRUcmVlTm9kZUhpZXJhcmNoeShpdGVtKSwK KyAgICAgICAgICAgIHNlcnZlciA9IHRyZWVEYXRhWydzZXJ2ZXInXTsKKworICAgICAgICAgIC8v IElmIHNlcnZlciBpcyBsZXNzIHRoYW4gMTAgdGhlbiBkbyBub3QgYWxsb3cgJ2NyZWF0ZScgbWVu dQorICAgICAgICAgIGlmIChzZXJ2ZXIgJiYgc2VydmVyLnZlcnNpb24gPCAxMDAwMDApCisgICAg ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAvLyBieSBkZWZhdWx0IHdlIHdhbnQg dG8gYWxsb3cgY3JlYXRlIG1lbnUKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSwK KworICAgICAgfSksCisgICAgfSk7CisgIH0KKyAgcmV0dXJuIHBnQnJvd3Nlci5Ob2Rlc1snY29s bC1wdWJsaWNhdGlvbiddOworfSk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9wdWJs aWNhdGlvbnMvc3FsLzExX3BsdXMvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9w dWJsaWNhdGlvbnMvc3FsLzExX3BsdXMvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwLi40MmY1MzcyMzgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25z L3RlbXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsLzExX3BsdXMvcHJvcGVydGllcy5zcWwKQEAgLTAs MCArMSw4IEBACitzZWxlY3QgYy5vaWQgYXMgb2lkLCBjLnB1Ym5hbWUgYXMgbmFtZSwKK3B1Ymlu c2VydCBhcyBldm50X2luc2VydCwgcHVidXBkYXRlIGFzIGV2bnRfdXBkYXRlLCBwdWJkZWxldGUg YXMgZXZudF9kZWxldGUsIHB1YnRydW5jYXRlIGFzIGV2bnRfdHJ1bmNhdGUsCitwdWJhbGx0YWJs ZXMgYXMgYWxsX3RhYmxlLAorcGdhLnJvbG5hbWUgYXMgcHVib3duZXIgZnJvbSBwZ19wdWJsaWNh dGlvbiBjCitqb2luIHBnX2F1dGhpZCBwZ2Egb24gYy5wdWJvd25lcj0gcGdhLm9pZAoreyUgIGlm IHBiaWQgJX0KKyAgICB3aGVyZSBjLm9pZCA9IHt7IHBiaWQgfX0KK3slIGVuZGlmICV9CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsL2RlZmF1bHQvY3JlYXRl LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvZGVmYXVsdC9jcmVhdGUu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMjcyZGVmOTkyCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0 L2NyZWF0ZS5zcWwKQEAgLTAsMCArMSwyMCBAQAoreyUgaWYgZGF0YS5ldm50X2RlbGV0ZSBvciBk YXRhLmV2bnRfdXBkYXRlIG9yIGRhdGEuZXZudF90cnVuY2F0ZSAlfQoreyUgc2V0IGFkZF9jb21t YV9hZnRlcl9pbnNlcnQgPSAnaW5zZXJ0JyAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZXZu dF90cnVuY2F0ZSAlfQoreyUgc2V0IGFkZF9jb21tYV9hZnRlcl9kZWxldGUgPSAnZGVsZXRlJyAl fQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZXZudF9kZWxldGUgb3IgZGF0YS5ldm50X3RydW5j YXRlJX0KK3slIHNldCBhZGRfY29tbWFfYWZ0ZXJfdXBkYXRlID0gJ3VwZGF0ZScgJX0KK3slIGVu ZGlmICV9CisKK0NSRUFURSBQVUJMSUNBVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9 fQoreyUgaWYgZGF0YS5hbGxfdGFibGUgJX0KKyAgICBGT1IgQUxMIFRBQkxFUworeyUgZWxpZiBk YXRhLnB1YnRhYmxlICV9CisgICAgRk9SIFRBQkxFIHslIGlmIGRhdGEub25seV90YWJsZSV9T05M WSB7JSBlbmRpZiAlfXslIGZvciB0YWJsZSBpbiBkYXRhLnB1YnRhYmxlICV9eyUgaWYgbG9vcC5p bmRleCAhPSAxICV9LCB7JSBlbmRpZiAlfXt7IHRhYmxlIH19eyUgZW5kZm9yICV9CisKK3slIGVu ZGlmICV9Cit7JSBpZiBkYXRhLmV2bnRfaW5zZXJ0IG9yIGRhdGEuZXZudF91cGRhdGUgb3IgZGF0 YS5ldm50X2RlbGV0ZSBvciBkYXRhLmV2bnRfdHJ1bmNhdGUgJX0KK1dJVEggKHB1Ymxpc2ggPSAn eyUgaWYgZGF0YS5ldm50X2luc2VydCAlfWluc2VydHslIGlmIGFkZF9jb21tYV9hZnRlcl9pbnNl cnQgPT0gJ2luc2VydCcgJX0sIHslIGVuZGlmICV9eyUgZW5kaWYgJX17JSBpZiBkYXRhLmV2bnRf dXBkYXRlICV9dXBkYXRleyUgaWYgYWRkX2NvbW1hX2FmdGVyX3VwZGF0ZSA9PSAndXBkYXRlJyAl fSwgeyUgZW5kaWYgJX17JSBlbmRpZiAlfXslIGlmIGRhdGEuZXZudF9kZWxldGUgJX1kZWxldGV7 JSBpZiBhZGRfY29tbWFfYWZ0ZXJfZGVsZXRlID09ICdkZWxldGUnICV9LCB7JSBlbmRpZiAlfXsl IGVuZGlmICV9eyUgaWYgZGF0YS5ldm50X3RydW5jYXRlICV9dHJ1bmNhdGV7JSBlbmRpZiAlfScp OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9u cy9zcWwvZGVmYXVsdC9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25z L3NxbC9kZWZhdWx0L2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwLi45OGNiNWQwZDEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9wdWJs aWNhdGlvbnMvc3FsL2RlZmF1bHQvZGVsZXRlLnNxbApAQCAtMCwwICsxLDggQEAKK3sjID09PT09 PT09PT09PT0gR2V0IHRoZSBwdWJsaWNhdGlvbiBuYW1lIHVzaW5nIG9pZCA9PT09PT09PT09PT09 ICN9Cit7JSBpZiBwYmlkICV9CisgICAgU0VMRUNUIHB1Ym5hbWUgRlJPTSBwZ19wdWJsaWNhdGlv biBXSEVSRSBvaWQgPSB7e3BiaWR9fTo6b2lkOworeyUgZW5kaWYgJX0KK3sjID09PT09PT09PT09 PT0gRHJvcCB0aGUgcHVibGljYXRpb24gPT09PT09PT09PT09PSAjfQoreyUgaWYgcG5hbWUgJX0K K0RST1AgUFVCTElDQVRJT04ge3sgY29ubnxxdElkZW50KHBuYW1lKSB9fXslIGlmIGNhc2NhZGUg JX0gQ0FTQ0FERXslIGVuZGlmJX07Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90 ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0L2dldF9hbGxfdGFibGVzLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNh dGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvZGVmYXVsdC9nZXRfYWxsX3RhYmxlcy5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5iNDkzYWJjN2IKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsL2RlZmF1bHQv Z2V0X2FsbF90YWJsZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUIHF1b3RlX2lkZW50KGMu dGFibGVfc2NoZW1hKXx8Jy4nfHxxdW90ZV9pZGVudChjLnRhYmxlX25hbWUpIEFTIHRhYmxlCitm cm9tIGluZm9ybWF0aW9uX3NjaGVtYS50YWJsZXMgYword2hlcmUgYy50YWJsZV90eXBlID0gJ0JB U0UgVEFCTEUnCisgICAgICBBTkQgYy50YWJsZV9zY2hlbWEgTk9UIExJS0UgJ3BnXF8lJworICAg ICAgQU5EIGMudGFibGVfc2NoZW1hIE5PVCBMSUtFICdwZ2FnZW50JworICAgICAgQU5EIGMudGFi bGVfc2NoZW1hIE5PVCBJTiAoJ2luZm9ybWF0aW9uX3NjaGVtYScpIE9SREVSIEJZIDE7CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsL2RlZmF1bHQvZ2V0X3Bv c2l0aW9uLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvZGVmYXVsdC9n ZXRfcG9zaXRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMjkz ZjRmNjkyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25z L3NxbC9kZWZhdWx0L2dldF9wb3NpdGlvbi5zcWwKQEAgLTAsMCArMSBAQAorc2VsZWN0IG9pZCwg cHVibmFtZSBhcyBuYW1lIGZyb20gcGdfcHVibGljYXRpb24gd2hlcmUgcHVibmFtZSA9ICd7eyBw dWJuYW1lIH19JzsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9z cWwvZGVmYXVsdC9nZXRfdGFibGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9u cy9zcWwvZGVmYXVsdC9nZXRfdGFibGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAuLjdmNTFjNzJkMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVz L3B1YmxpY2F0aW9ucy9zcWwvZGVmYXVsdC9nZXRfdGFibGVzLnNxbApAQCAtMCwwICsxIEBACitz ZWxlY3QgcXVvdGVfaWRlbnQocGdiX3RhYmxlLnNjaGVtYW5hbWUpfHwnLid8fHF1b3RlX2lkZW50 KHBnYl90YWJsZS50YWJsZW5hbWUpICBhcyBwdWJ0YWJsZSAgZnJvbSBwZ19wdWJsaWNhdGlvbl90 YWJsZXMgcGdiX3RhYmxlIHdoZXJlIHB1Ym5hbWUgPSAne3sgcG5hbWUgfX0nIGFuZCBwZ2JfdGFi bGUuc2NoZW1hbmFtZSBOT1QgTElLRSAncGdhZ2VudCc7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rl bXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsL2RlZmF1bHQvbm9kZXMuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1w bGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0L25vZGVzLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAuLmM4MTU3ZjE4MAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlv bnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvZGVmYXVsdC9ub2Rlcy5zcWwKQEAgLTAsMCAr MSBAQAorc2VsZWN0IG9pZCAsIHB1Ym5hbWUgYXMgbmFtZSBmcm9tIHBnX3B1YmxpY2F0aW9uOwpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0L3By b3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0 L3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNzVi YTA3NWU0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25z L3NxbC9kZWZhdWx0L3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsOCBAQAorc2VsZWN0IGMub2lk IGFzIG9pZCwgYy5wdWJuYW1lIGFzIG5hbWUsCitwdWJpbnNlcnQgYXMgZXZudF9pbnNlcnQsIHB1 YnVwZGF0ZSBhcyBldm50X3VwZGF0ZSwgcHViZGVsZXRlIGFzIGV2bnRfZGVsZXRlLAorcHViYWxs dGFibGVzIGFzIGFsbF90YWJsZSwKK3BnYS5yb2xuYW1lIGFzIHB1Ym93bmVyIGZyb20gcGdfcHVi bGljYXRpb24gYworam9pbiBwZ19hdXRoaWQgcGdhIG9uIGMucHVib3duZXI9IHBnYS5vaWQKK3sl ICBpZiBwYmlkICV9CisgICAgd2hlcmUgYy5vaWQgPSB7eyBwYmlkIH19Cit7JSBlbmRpZiAlfQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0L3Vw ZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsL2RlZmF1bHQvdXBk YXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjE5MGJiZjNkNgot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvZGVm YXVsdC91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMzQgQEAKK3slIGlmIGRhdGEuZXZudF9kZWxldGUg b3IgZGF0YS5ldm50X3VwZGF0ZSBvciBkYXRhLmV2bnRfdHJ1bmNhdGUgJX0KK3slIHNldCBhZGRf Y29tbWFfYWZ0ZXJfaW5zZXJ0ID0gJ2luc2VydCcgJX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRh LmV2bnRfdHJ1bmNhdGUgJX0KK3slIHNldCBhZGRfY29tbWFfYWZ0ZXJfZGVsZXRlID0gJ2RlbGV0 ZScgJX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmV2bnRfZGVsZXRlIG9yIGRhdGEuZXZudF90 cnVuY2F0ZSV9Cit7JSBzZXQgYWRkX2NvbW1hX2FmdGVyX3VwZGF0ZSA9ICd1cGRhdGUnICV9Cit7 JSBlbmRpZiAlfQorCit7JSBpZiBkYXRhLnB1Ym93bmVyICV9CitBTFRFUiBQVUJMSUNBVElPTiB7 eyBjb25ufHF0SWRlbnQob19kYXRhLm5hbWUpIH19IE9XTkVSIFRPIHt7IGRhdGEucHVib3duZXIg fX07Cit7JSBlbmRpZiAlfQorCit7JSBpZiBkYXRhLmV2bnRfaW5zZXJ0IG9yIGRhdGEuZXZudF91 cGRhdGUgb3IgZGF0YS5ldm50X2RlbGV0ZSAlfQorQUxURVIgUFVCTElDQVRJT04ge3sgY29ubnxx dElkZW50KG9fZGF0YS5uYW1lKSB9fSBTRVQKKyhwdWJsaXNoID0gJ3slIGlmIGRhdGEuZXZudF9p bnNlcnQgJX1pbnNlcnR7JSBpZiBhZGRfY29tbWFfYWZ0ZXJfaW5zZXJ0ID09ICdpbnNlcnQnICV9 LCB7JSBlbmRpZiAlfXslIGVuZGlmICV9eyUgaWYgZGF0YS5ldm50X3VwZGF0ZSAlfXVwZGF0ZXsl IGlmIGFkZF9jb21tYV9hZnRlcl91cGRhdGUgPT0gJ3VwZGF0ZScgJX0sIHslIGVuZGlmICV9eyUg ZW5kaWYgJX17JSBpZiBkYXRhLmV2bnRfZGVsZXRlICV9ZGVsZXRleyUgaWYgYWRkX2NvbW1hX2Fm dGVyX2RlbGV0ZSA9PSAnZGVsZXRlJyAlfSwgeyUgZW5kaWYgJX17JSBlbmRpZiAlfXslIGlmIGRh dGEuZXZudF90cnVuY2F0ZSAlfXRydW5jYXRleyUgZW5kaWYgJX0nKTsKK3slIGVuZGlmICV9CisK K3slIGlmIGRyb3BfdGFibGUgJX0KK0FMVEVSIFBVQkxJQ0FUSU9OIHt7IGNvbm58cXRJZGVudChv X2RhdGEubmFtZSkgfX0gRFJPUCBUQUJMRSB7JSBpZiBkYXRhLm9ubHlfdGFibGUlfU9OTFkgeyUg ZW5kaWYgJX17JSBmb3IgdGFibGUgaW4gZHJvcF90YWJsZV9kYXRhICV9eyUgaWYgbG9vcC5pbmRl eCAhPSAxICV9LCB7JSBlbmRpZiAlfXt7IHRhYmxlIH19eyUgZW5kZm9yICV9OworeyUgZW5kaWYg JX0KKworeyUgaWYgZGF0YS5wdWJ0YWJsZSAlfQorQUxURVIgUFVCTElDQVRJT04ge3sgY29ubnxx dElkZW50KG9fZGF0YS5uYW1lKSB9fSBTRVQgVEFCTEUgeyUgaWYgZGF0YS5vbmx5X3RhYmxlJX1P TkxZIHslIGVuZGlmICV9eyUgZm9yIHRhYmxlIGluIGRhdGEucHVidGFibGUgJX17JSBpZiBsb29w LmluZGV4ICE9IDEgJX0sIHslIGVuZGlmICV9e3sgdGFibGUgfX17JSBlbmRmb3IgJX07Cit7JSBl bmRpZiAlfQorCit7JSBpZiBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FMVEVSIFBVQkxJ Q0FUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEubmFtZSkgfX0gUkVOQU1FIFRPIHt7IGNvbm58 cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUgZW5kaWYgJX0KKworCisKKwpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1Ymxp Y2F0aW9ucy90ZXN0cy8xMF9wbHVzL2FsdGVyX3B1YmxpY2F0aW9uLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVz dHMvMTBfcGx1cy9hbHRlcl9wdWJsaWNhdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwLi41MzBiYTE0OWIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3Rz LzEwX3BsdXMvYWx0ZXJfcHVibGljYXRpb24uc3FsCkBAIC0wLDAgKzEsNyBAQAorLS0gUHVibGlj YXRpb24gOiBhbHRlcmRfcHVibGljYXRpb247CistLSBEUk9QIFBVQkxJQ0FUSU9OIGFsdGVyZF9w dWJsaWNhdGlvbjsKKworCitDUkVBVEUgUFVCTElDQVRJT04gYWx0ZXJkX3B1YmxpY2F0aW9uCisg ICAgRk9SIEFMTCBUQUJMRVMKK1dJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUnKTsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvMTBfcGx1cy9hbHRlcl9wdWJsaWNhdGlvbl9ldmVudC5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv cHVibGljYXRpb25zL3Rlc3RzLzEwX3BsdXMvYWx0ZXJfcHVibGljYXRpb25fZXZlbnQuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNTMwYmExNDliCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL2FsdGVyX3B1YmxpY2F0aW9uX2V2ZW50LnNx bApAQCAtMCwwICsxLDcgQEAKKy0tIFB1YmxpY2F0aW9uIDogYWx0ZXJkX3B1YmxpY2F0aW9uOwor LS0gRFJPUCBQVUJMSUNBVElPTiBhbHRlcmRfcHVibGljYXRpb247CisKKworQ1JFQVRFIFBVQkxJ Q0FUSU9OIGFsdGVyZF9wdWJsaWNhdGlvbgorICAgIEZPUiBBTEwgVEFCTEVTCitXSVRIIChwdWJs aXNoID0gJ2luc2VydCwgdXBkYXRlJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzLzEwX3Bs dXMvYWx0ZXJfcHVibGljYXRpb25fZXZlbnRfbXNxbC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzLzEwX3Bs dXMvYWx0ZXJfcHVibGljYXRpb25fZXZlbnRfbXNxbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwLi5mMDE1OTRkYTIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rl c3RzLzEwX3BsdXMvYWx0ZXJfcHVibGljYXRpb25fZXZlbnRfbXNxbC5zcWwKQEAgLTAsMCArMSwy IEBACitBTFRFUiBQVUJMSUNBVElPTiBhbHRlcmRfcHVibGljYXRpb25fZXZlbnQgU0VUCisocHVi bGlzaCA9ICdpbnNlcnQsIHVwZGF0ZScpOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9w bHVzL2FsdGVyX3B1YmxpY2F0aW9uX21zcWwuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL2Fs dGVyX3B1YmxpY2F0aW9uX21zcWwuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMC4uMzA4NjlkMmE4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVz L2FsdGVyX3B1YmxpY2F0aW9uX21zcWwuc3FsCkBAIC0wLDAgKzEgQEAKK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RfcHVibGljYXRpb25fdG9fYWx0ZXIgUkVOQU1FIFRPIGFsdGVyZF9wdWJsaWNhdGlv bjsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvMTBfcGx1cy9jcmVhdGVfcHVibGljYXRpb24u c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9wdWJsaWNhdGlvbi5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi43YzA5NjA4YWUKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv cHVibGljYXRpb25zL3Rlc3RzLzEwX3BsdXMvY3JlYXRlX3B1YmxpY2F0aW9uLnNxbApAQCAtMCww ICsxLDcgQEAKKy0tIFB1YmxpY2F0aW9uIDogdGVzdF9wdWJsaWNhdGlvbl9jcmVhdGU7CistLSBE Uk9QIFBVQkxJQ0FUSU9OIHRlc3RfcHVibGljYXRpb25fY3JlYXRlOworCisKK0NSRUFURSBQVUJM SUNBVElPTiB0ZXN0X3B1YmxpY2F0aW9uX2NyZWF0ZQorICAgIEZPUiBBTEwgVEFCTEVTCitXSVRI IChwdWJsaXNoID0gJ2luc2VydCwgdXBkYXRlJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3Rz LzEwX3BsdXMvY3JlYXRlX3B1YmxpY2F0aW9uX21zcWwuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9w bHVzL2NyZWF0ZV9wdWJsaWNhdGlvbl9tc3FsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAuLmI2ZDFlNmY3YwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMv MTBfcGx1cy9jcmVhdGVfcHVibGljYXRpb25fbXNxbC5zcWwKQEAgLTAsMCArMSwzIEBACitDUkVB VEUgUFVCTElDQVRJT04gdGVzdF9wdWJsaWNhdGlvbl9jcmVhdGUKKyAgICBGT1IgQUxMIFRBQkxF UworV0lUSCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZScpOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9u cy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9wdWJsaWNhdGlvbl91cGRhdGUuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90 ZXN0cy8xMF9wbHVzL2NyZWF0ZV9wdWJsaWNhdGlvbl91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMmUxZjhlZWRmCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0 aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9wdWJsaWNhdGlvbl91cGRhdGUuc3FsCkBAIC0wLDAg KzEsNyBAQAorLS0gUHVibGljYXRpb24gOiB0ZXN0X3B1YmxpY2F0aW9uX3dpdGhfdXBkYXRlOwor LS0gRFJPUCBQVUJMSUNBVElPTiB0ZXN0X3B1YmxpY2F0aW9uX3dpdGhfdXBkYXRlOworCisKK0NS RUFURSBQVUJMSUNBVElPTiB0ZXN0X3B1YmxpY2F0aW9uX3dpdGhfdXBkYXRlCisgICAgRk9SIEFM TCBUQUJMRVMKK1dJVEggKHB1Ymxpc2ggPSAndXBkYXRlJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25z L3Rlc3RzLzEwX3BsdXMvY3JlYXRlX3B1YmxpY2F0aW9uX3VwZGF0ZV9tc3FsLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlv bnMvdGVzdHMvMTBfcGx1cy9jcmVhdGVfcHVibGljYXRpb25fdXBkYXRlX21zcWwuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMGRhMThmNjU2Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9wdWJsaWNhdGlvbl91cGRhdGVfbXNx bC5zcWwKQEAgLTAsMCArMSwzIEBACitDUkVBVEUgUFVCTElDQVRJT04gdGVzdF9wdWJsaWNhdGlv bl93aXRoX3VwZGF0ZQorICAgIEZPUiBBTEwgVEFCTEVTCitXSVRIIChwdWJsaXNoID0gJ3VwZGF0 ZScpOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL3Rlc3QuanNvbiBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlv bnMvdGVzdHMvMTBfcGx1cy90ZXN0Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwLi45OWQ2MDU3ODMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzLzEwX3Bs dXMvdGVzdC5qc29uCkBAIC0wLDAgKzEsNzkgQEAKK3sKKyAgInNjZW5hcmlvcyI6IFsKKyAgICB7 CisgICAgICAidHlwZSI6ICJjcmVhdGUiLAorICAgICAgIm5hbWUiOiAiQ3JlYXRlIFRhYmxlIEZv ciBwdWJsaWNhdGlvbiIsCisgICAgICAiZW5kcG9pbnQiOiAiTk9ERS10YWJsZS5vYmoiLAorICAg ICAgInNxbF9lbmRwb2ludCI6ICJOT0RFLXRhYmxlLnNxbF9pZCIsCisgICAgICAiZGF0YSI6IHsK KyAgICAgICAgIm5hbWUiOiAidGVzdF9wdWJsaWNhdGlvbiIsCisgICAgICAgICJjb2x1bW5zIjog WworICAgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImVtcF9pZCIsCisgICAgICAgICAg ICAiY2x0eXBlIjogImludGVnZXIiLAorICAgICAgICAgICAgImlzX3ByaW1hcnlfa2V5IjogdHJ1 ZQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAibmFtZSIs CisgICAgICAgICAgICAiY2x0eXBlIjogInRleHQiCisgICAgICAgICAgfSwKKyAgICAgICAgICB7 CisgICAgICAgICAgICAibmFtZSI6ICJzYWxhcnkiLAorICAgICAgICAgICAgImNsdHlwZSI6ICJi aWdpbnQiCisgICAgICAgICAgfQorICAgICAgICBdLAorICAgICAgICAiaXNfcGFydGl0aW9uZWQi OiBmYWxzZSwKKyAgICAgICAgInNjaGVtYSI6ICJwdWJsaWMiLAorICAgICAgICAic3BjbmFtZSI6 ICJwZ19kZWZhdWx0IgorICAgICAgfSwKKyAgICAgICJzdG9yZV9vYmplY3RfaWQiOiB0cnVlCisg ICAgfSwKKyAgICB7CisgICAgICAidHlwZSI6ICJjcmVhdGUiLAorICAgICAgIm5hbWUiOiAiQ3Jl YXRlICBQdWJsaWNhdGlvbiIsCisgICAgICAiZW5kcG9pbnQiOiAiTk9ERS1wdWJsaWNhdGlvbi5v YmoiLAorICAgICAgInNxbF9lbmRwb2ludCI6ICJOT0RFLXB1YmxpY2F0aW9uLnNxbF9pZCIsCisg ICAgICAibXNxbF9lbmRwb2ludCI6ICJOT0RFLXB1YmxpY2F0aW9uLm1zcWwiLAorICAgICAgImRh dGEiOiB7CisgICAgICAgICJuYW1lIjogInRlc3RfcHVibGljYXRpb25fY3JlYXRlIiwKKyAgICAg ICAgImV2bnRfaW5zZXJ0IjogdHJ1ZSwKKyAgICAgICAgImV2bnRfdXBkYXRlIjogdHJ1ZSwKKyAg ICAgICAgImV2bnRfZGVsZXRlIjogZmFsc2UsCisgICAgICAgICJldm50X3RydW5jYXRlIjogZmFs c2UsCisgICAgICAgICJwdWJvd25lciI6ICJwb3N0Z3JlcyIsCisgICAgICAgICJhbGxfdGFibGUi OiB0cnVlLAorICAgICAgICAicHVidGFibGUiOiAiIgorICAgICAgfSwKKyAgICAgICJleHBlY3Rl ZF9zcWxfZmlsZSI6ICJjcmVhdGVfcHVibGljYXRpb24uc3FsIiwKKyAgICAgICJleHBlY3RlZF9t c3FsX2ZpbGUiOiAiY3JlYXRlX3B1YmxpY2F0aW9uX21zcWwuc3FsIgorICAgIH0sCisgICAgewor ICAgICAgInR5cGUiOiAiYWx0ZXIiLAorICAgICAgIm5hbWUiOiAiQWx0ZXIgIFB1YmxpY2F0aW9u IG5hbWUiLAorICAgICAgImVuZHBvaW50IjogIk5PREUtcHVibGljYXRpb24ub2JqX2lkIiwKKyAg ICAgICJzcWxfZW5kcG9pbnQiOiAiTk9ERS1wdWJsaWNhdGlvbi5zcWxfaWQiLAorICAgICAgImRh dGEiOiB7CisgICAgICAgICJuYW1lIjogImFsdGVyZF9wdWJsaWNhdGlvbiIKKyAgICAgIH0sCisg ICAgICAiZXhwZWN0ZWRfc3FsX2ZpbGUiOiAiYWx0ZXJfcHVibGljYXRpb24uc3FsIgorICAgIH0s CisgICAgeworICAgICAgInR5cGUiOiAiYWx0ZXIiLAorICAgICAgIm5hbWUiOiAiQWx0ZXIgIFB1 YmxpY2F0aW9uIGV2ZW50IiwKKyAgICAgICJlbmRwb2ludCI6ICJOT0RFLXB1YmxpY2F0aW9uLm9i al9pZCIsCisgICAgICAic3FsX2VuZHBvaW50IjogIk5PREUtcHVibGljYXRpb24uc3FsX2lkIiwK KyAgICAgICJkYXRhIjogeworICAgICAgICAiZXZudF9pbnNlcnQiOiB0cnVlCisgICAgICB9LAor ICAgICAgImV4cGVjdGVkX3NxbF9maWxlIjogImFsdGVyX3B1YmxpY2F0aW9uX2V2ZW50LnNxbCIK KyAgICB9LAorICAgIHsKKyAgICAgICJ0eXBlIjogImRlbGV0ZSIsCisgICAgICAibmFtZSI6ICJE cm9wIHB1YmxpY2F0aW9uIiwKKyAgICAgICJlbmRwb2ludCI6ICJOT0RFLXB1YmxpY2F0aW9uLmRl bGV0ZV9pZCIsCisgICAgICAiZGF0YSI6IHsKKyAgICAgICAgIm5hbWUiOiAiYWx0ZXJkX3B1Ymxp Y2F0aW9uX2V2ZW50IgorICAgICAgfQorICAgIH0KKyAgXQorfQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9u cy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvX19pbml0X18ucHkKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4yN2NkODkwNjcKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVi bGljYXRpb25zL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0 IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNv ZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKKworCitjbGFzcyBSdWxlc1Rlc3RHZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0b3Ip OgorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgIHJldHVybiBbXQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1 YmxpY2F0aW9ucy90ZXN0cy9wdWJsaWNhdGlvbl90ZXN0X2RhdGEuanNvbiBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVz dHMvcHVibGljYXRpb25fdGVzdF9kYXRhLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwLi5kYTA4NDA4ZGIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzL3B1 YmxpY2F0aW9uX3Rlc3RfZGF0YS5qc29uCkBAIC0wLDAgKzEsMzk3IEBACit7CisgICJhZGRfcHVi bGljYXRpb24iOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiQ3JlYXRlIHB1YmxpY2F0aW9uIHdp dGggaW5zZXJ0IGFuZCB1cGRhdGUiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlv bi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2Rh dGEiOiB7CisgICAgICAgICJuYW1lIjogIlBMQUNFSE9MREVSIiwKKyAgICAgICAgImV2bnRfaW5z ZXJ0IjogdHJ1ZSwKKyAgICAgICAgImV2bnRfdXBkYXRlIjogdHJ1ZSwKKyAgICAgICAgImV2bnRf ZGVsZXRlIjogZmFsc2UsCisgICAgICAgICJldm50X3RydW5jYXRlIjogZmFsc2UsCisgICAgICAg ICJwdWJvd25lciI6ICJwb3N0Z3JlcyIsCisgICAgICAgICJhbGxfdGFibGUiOiB0cnVlLAorICAg ICAgICAicHVidGFibGUiOiAiIgorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjog ZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsK KyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAg ICAibmFtZSI6ICJDcmVhdGUgcHVibGljYXRpb24gZm9yIGZldyB0YWJsZXMiLAorICAgICAgInVy bCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0 IjogdHJ1ZSwKKyAgICAgICJmZXdfdGFibGVzIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7 CisgICAgICAgICJuYW1lIjogIlBMQUNFSE9MREVSIiwKKyAgICAgICAgImV2bnRfaW5zZXJ0Ijog dHJ1ZSwKKyAgICAgICAgImV2bnRfdXBkYXRlIjogdHJ1ZSwKKyAgICAgICAgImV2bnRfZGVsZXRl IjogZmFsc2UsCisgICAgICAgICJldm50X3RydW5jYXRlIjogZmFsc2UsCisgICAgICAgICJwdWJv d25lciI6ICJwb3N0Z3JlcyIsCisgICAgICAgICJhbGxfdGFibGUiOiBmYWxzZSwKKyAgICAgICAg InB1YnRhYmxlIjogIlBMQUNFX0hPTERFUiIKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1 aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2Rh dGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAg eworICAgICAgIm5hbWUiOiAiQ3JlYXRlIGEgcHVibGljYXRpb24gd2l0aG91dCBuYW1lIiwKKyAg ICAgICJ1cmwiOiAiL2Jyb3dzZXIvcHVibGljYXRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRp dmVfdGVzdCI6IGZhbHNlLAorICAgICAgIndpdGhvdXRfbmFtZSI6IHRydWUsCisgICAgICAidGVz dF9kYXRhIjogeworICAgICAgICAibmFtZSI6ICJQTEFDRUhPTERFUiIsCisgICAgICAgICJldm50 X2luc2VydCI6IHRydWUsCisgICAgICAgICJldm50X3VwZGF0ZSI6IHRydWUsCisgICAgICAgICJl dm50X2RlbGV0ZSI6IGZhbHNlLAorICAgICAgICAiZXZudF90cnVuY2F0ZSI6IGZhbHNlLAorICAg ICAgICAicHVib3duZXIiOiAicG9zdGdyZXMiLAorICAgICAgICAiYWxsX3RhYmxlIjogdHJ1ZSwK KyAgICAgICAgInB1YnRhYmxlIjogIiIKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1aXJl ZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEi OiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDQxMAorICAgICAgfQorICAgIH0sCisgICAgewor ICAgICAgIm5hbWUiOiAiRXJyb3Igd2hpbGUgYWRkaW5nIGEgcHVibGljYXRpb24iLAorICAgICAg InVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90 ZXN0IjogZmFsc2UsCisgICAgICAiZXJyb3JfY3JlYXRpbmdfcHVibGljYXRpb24iOiB0cnVlLAor ICAgICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAgIm5hbWUiOiAiUExBQ0VIT0xERVIiLAorICAg ICAgICAiZXZudF9pbnNlcnQiOiB0cnVlLAorICAgICAgICAiZXZudF91cGRhdGUiOiB0cnVlLAor ICAgICAgICAiZXZudF9kZWxldGUiOiBmYWxzZSwKKyAgICAgICAgImV2bnRfdHJ1bmNhdGUiOiBm YWxzZSwKKyAgICAgICAgInB1Ym93bmVyIjogInBvc3RncmVzIiwKKyAgICAgICAgImFsbF90YWJs ZSI6IHRydWUsCisgICAgICAgICJwdWJ0YWJsZSI6ICIiCisgICAgICB9LAorICAgICAgIm1vY2tp bmdfcmVxdWlyZWQiOiB0cnVlLAorICAgICAgIm1vY2tfZGF0YSI6IHsKKyAgICAgICAgImZ1bmN0 aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuY29ubmVjdGlvbi5Db25u ZWN0aW9uLmV4ZWN1dGVfZGljdCIsCisgICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAn TW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvciAnKSIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0 ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICB9CisgICAgfSwK KyAgICB7CisgICAgICAibmFtZSI6ICJFeGNlcHRpb24gd2hpbGUgYWRkaW5nIGEgcHVibGljYXRp b24iLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJp c19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAi bmFtZSI6ICJQTEFDRUhPTERFUiIsCisgICAgICAgICJldm50X2luc2VydCI6IHRydWUsCisgICAg ICAgICJldm50X3VwZGF0ZSI6IHRydWUsCisgICAgICAgICJldm50X2RlbGV0ZSI6IGZhbHNlLAor ICAgICAgICAiZXZudF90cnVuY2F0ZSI6IGZhbHNlLAorICAgICAgICAicHVib3duZXIiOiAicG9z dGdyZXMiLAorICAgICAgICAiYWxsX3RhYmxlIjogdHJ1ZSwKKyAgICAgICAgInB1YnRhYmxlIjog IiIKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IHRydWUsCisgICAgICAibW9j a19kYXRhIjogeworICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZl ci5wc3ljb3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV9kaWN0IiwKKyAgICAgICAg InJldHVybl92YWx1ZSI6ICIoVHJ1ZSwgVHJ1ZSkoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2Vy dmVyIEVycm9yICcpIgorICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAg ICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgIH0KKyAgICB9CisgIF0sCisgICJnZXRfcHVibGlj YXRpb24iOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiR2V0IGEgcHVibGljYXRpb24gVVJMIiwK KyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvcHVibGljYXRpb24vb2JqLyIsCisgICAgICAiaXNfcG9z aXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAg ICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJz dGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAi RXJyb3Igd2hpbGUgZmV0Y2hpbmcgYSBwdWJsaWNhdGlvbiBwcm9wZXJ0aWVzIiwKKyAgICAgICJ1 cmwiOiAiL2Jyb3dzZXIvcHVibGljYXRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVz dCI6IGZhbHNlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiB0cnVlLAorICAgICAgIm1vY2tf ZGF0YSI6IHsKKyAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIu cHN5Y29wZzIuY29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfZGljdCIsCisgICAgICAgICJy ZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvcicpIgor ICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUi OiA1MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkdldCBhIHB1Ymxp Y2F0aW9uIHByb3BlcnRpZXMgdW5kZXIgZGF0YWJhc2Ugbm9kZXMiLAorICAgICAgInVybCI6ICIv YnJvd3Nlci9wdWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1 ZSwKKyAgICAgICJkYXRhYmFzZV9ub2RlcyI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJl ZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEi OiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgewor ICAgICAgIm5hbWUiOiAiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgYSBwdWJsaWNhdGlvbiBwcm9wZXJ0 aWVzIHVuZGVyIGRhdGFiYXNlIG5vZGVzIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvcHVibGlj YXRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAgImRh dGFiYXNlX25vZGVzIjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogdHJ1ZSwKKyAg ICAgICJtb2NrX2RhdGEiOiB7CisgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRp bHMuZHJpdmVyLnBzeWNvcGcyLmNvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX2RpY3QiLAor ICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIg RXJyb3InKSIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0 YXR1c19jb2RlIjogNTAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJH ZXQgYSBwdWJsaWNhdGlvbiBOb2RlIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvcHVibGljYXRp b24vbm9kZXMvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2Nr aW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhw ZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAg fSwKKyAgICB7CisgICAgICAibmFtZSI6ICJHZXQgYSBwdWJsaWNhdGlvbiBOb2RlIGRlcGVuZGFu dHMiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9kZXBlbmRlbnQvIiwKKyAg ICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjog ZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsK KyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAg ICAibmFtZSI6ICJHZXQgYSBwdWJsaWNhdGlvbiBOb2RlIGRlcGVuZGVuY3kiLAorICAgICAgInVy bCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9kZXBlbmRlbmN5LyIsCisgICAgICAiaXNfcG9zaXRp dmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAg Im1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0 dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiRXJy b3Igd2hpbGUgZmV0Y2hpbmcgdGhlIHB1YmxpY2F0aW9uIHVuZGVyIHRoZSBkYXRhYmFzZSBub2Rl cyB1c2luZyB3cm9uZyBkYXRhYmFzZSBpZCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3B1Ymxp Y2F0aW9uL25vZGVzLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAg Im1vY2tpbmdfcmVxdWlyZWQiOiB0cnVlLAorICAgICAgIm1vY2tfZGF0YSI6IHsKKyAgICAgICAg ImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuY29ubmVjdGlv bi5Db25uZWN0aW9uLmV4ZWN1dGVfMmRhcnJheSIsCisgICAgICAgICJyZXR1cm5fdmFsdWUiOiAi KEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvcicpIgorICAgICAgfSwKKyAgICAg ICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgIH0K KyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkdldCBhbGwgdGhlIHB1YmxpY2F0aW9uIHVu ZGVyIHRoZSBkYXRhYmFzZSBub2RlcyIsCisgICAgICAidXJsIjogIi9icm93c2VyL3B1YmxpY2F0 aW9uL25vZGVzLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9j a2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgImRhdGFiYXNlX25vZGVzIjogdHJ1ZSwKKyAg ICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAi c3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjog IkdldCBhbGwgdGhlIHB1YmxpY2F0aW9uIHVuZGVyIHRoZSBkYXRhYmFzZSBub2RlcyB1c2luZyB3 cm9uZyBkYXRhYmFzZSBpZCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3B1YmxpY2F0aW9uL25v ZGVzLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAiaW5jb3JyZWN0 X2RhdGFiYXNlX2lkIjogdHJ1ZSwKKyAgICAgICJkYXRhYmFzZV9ub2RlcyI6IHRydWUsCisgICAg ICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAg ICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAg fQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgYWxs IHRoZSBwdWJsaWNhdGlvbiB1bmRlciB0aGUgZGF0YWJhc2Ugbm9kZXMgdXNpbmcgd3JvbmcgZGF0 YWJhc2UgaWQiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9ub2Rlcy8iLAor ICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAgICJkYXRhYmFzZV9ub2RlcyI6 IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IHRydWUsCisgICAgICAibW9ja19kYXRh IjogeworICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3lj b3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV8yZGFycmF5IiwKKyAgICAgICAgInJl dHVybl92YWx1ZSI6ICIoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yJykiCisg ICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6 IDUwMAorICAgICAgfQorICAgIH0KKyAgXSwKKyAgImRlbGV0ZV9wdWJsaWNhdGlvbiI6IFsKKyAg ICB7CisgICAgICAibmFtZSI6ICJEZWxldGUgYSBwdWJsaWNhdGlvbiBVUkwiLAorICAgICAgInVy bCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0 IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19k YXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2Rl IjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJFcnJvciB3aGls ZSBkZWxldGluZyB0aGUgcHVibGljYXRpb24iLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJs aWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAi bW9ja2luZ19yZXF1aXJlZCI6IHRydWUsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAgICAi ZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0aW9u LkNvbm5lY3Rpb24uZXhlY3V0ZV9zY2FsYXIiLAorICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihG YWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InKSIKKyAgICAgIH0sCisgICAgICAi ZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICB9Cisg ICAgfQorICBdLAorICAidXBkYXRlX3B1YmxpY2F0aW9uIjogWworICAgIHsKKyAgICAgICJuYW1l IjogInVwZGF0ZSBhIHB1YmxpY2F0aW9uIG5hbWUiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9w dWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAg ICJ1cGRhdGVfbmFtZSI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAibmFt ZSI6ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAiaWQiOiAiUExBQ0VfSE9MREVSIgorICAgICAg fSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjog e30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAw CisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJ1cGRhdGUgYSBwdWJsaWNh dGlvbiBldmVudCBpbnNlcnQiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9v YmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJvd25lcl9wdWJs aWNhdGlvbiI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAiaWQiOiAiUExB Q0VfSE9MREVSIiwKKyAgICAgICAgImV2bnRfaW5zZXJ0IjogIlBMQUNFSE9MREVSIgorICAgICAg fSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjog e30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAw CisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJ1cGRhdGUgYSBwdWJsaWNh dGlvbiBldmVudCBkZWxldGUiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9v YmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJvd25lcl9wdWJs aWNhdGlvbiI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAiaWQiOiAiUExB Q0VfSE9MREVSIiwKKyAgICAgICAgImV2bnRfZGVsZXRlIjogIlBMQUNFSE9MREVSIgorICAgICAg fSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjog e30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAw CisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJFcnJvciB3aGlsZSBmZXRj aGluZyBhIHB1YmxpY2F0aW9uIHRvIHVwZGF0ZSIsCisgICAgICAidXJsIjogIi9icm93c2VyL3B1 YmxpY2F0aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAg ICJtb2NraW5nX3JlcXVpcmVkIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAg ICJuYW1lIjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJpZCI6ICJQTEFDRV9IT0xERVIiCisg ICAgICB9LAorICAgICAgIm1vY2tfZGF0YSI6IHsKKyAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAi cGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuY29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1 dGVfZGljdCIsCisgICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVy bmFsIFNlcnZlciBFcnJvcicpIgorICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogewor ICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAg ICJuYW1lIjogIkVycm9yIHdoaWxlIGZldGNoaW5nIGEgcHVibGljYXRpb24gdG8gdXBkYXRlIHVz aW5nIHdyb25nIHB1YmxpY2F0aW9uIGlkIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvcHVibGlj YXRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAid3Jv bmdfcHVibGljYXRpb25faWQiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxz ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJpZCI6ICJQTEFDRV9IT0xERVIiCisg ICAgICB9LAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7 CisgICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgfQorICAgIH0KKyAgXSwKKyAgImRl bGV0ZV9tdWx0aXBsZV9wdWJsaWNhdGlvbiI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJEZWxl dGUgbXVsdGlwbGUgcHVibGljYXRpb24iLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNh dGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2Nr aW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhw ZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAg fQorICBdLAorICAic3FsX3B1YmxpY2F0aW9uIjogWworICAgIHsKKyAgICAgICJuYW1lIjogIkZl dGNoIHRoZSBwdWJsaWNhdGlvbiBTUUwiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNh dGlvbi9zcWwvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2Nr aW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAgfSwKKyAg ICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAg IH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkVycm9yIHdoaWxlIGZldGNoaW5nIGEg cHVibGljYXRpb24gU1FMIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvcHVibGljYXRpb24vc3Fs LyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAgIm1vY2tpbmdfcmVx dWlyZWQiOiB0cnVlLAorICAgICAgIm1vY2tfZGF0YSI6IHsKKyAgICAgICAgImZ1bmN0aW9uX25h bWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuY29ubmVjdGlvbi5Db25uZWN0aW9u LmV4ZWN1dGVfZGljdCIsCisgICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2Vk IEludGVybmFsIFNlcnZlciBFcnJvcicpIgorICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRh IjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsK KyAgICAgICJuYW1lIjogIkZldGNoaW5nIGEgcHVibGljYXRpb24gbVNRTCIsCisgICAgICAidXJs IjogIi9icm93c2VyL3B1YmxpY2F0aW9uL21zcWwvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0 IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19k YXRhIjogeworICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5w c3ljb3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV9kaWN0IiwKKyAgICAgICAgInJl dHVybl92YWx1ZSI6ICIoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yJykiCisg ICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6 IDIwMAorICAgICAgfQorICAgIH0KKyAgXQorfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy90 ZXN0X3B1YmxpY2F0aW9uX2NyZWF0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvdGVzdF9wdWJsaWNhdGlv bl9jcmVhdGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5hYWQzYjMz ZDIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzL3Rlc3RfcHVibGljYXRpb25fY3Jl YXRlLnB5CkBAIC0wLDAgKzEsOTUgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4g NCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhl IHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVu ZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9y dCBqc29uCitpbXBvcnQgdXVpZAorZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAorCitm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVt YXMudGFibGVzLnRlc3RzIFwKKyAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCitmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGlt cG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5y b3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFy ZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0 ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHB1YmxpY2F0aW9uX3V0 aWxzCisKKworY2xhc3MgUHVibGljYXRpb25zQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3Ip OgorICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3IHB1YmxpY2F0aW9uIiIiCisgICAgc2Nl bmFyaW9zID0gdXRpbHMuZ2VuZXJhdGVfc2NlbmFyaW9zKCdhZGRfcHVibGljYXRpb24nLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWNhdGlvbl91dGlscy50 ZXN0X2Nhc2VzKQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmRiX25hbWUg PSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCisgICAgICAgIHNj aGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCisgICAgICAgIHNlbGYu c2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCisgICAgICAgIHNlbGYuZGJfaWQg PSBzY2hlbWFfaW5mb1siZGJfaWQiXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1h X2luZm9bInNjaGVtYV9uYW1lIl0KKworICAgICAgICBzZWxmLnNlcnZlcl92ZXJzaW9uID0gc2No ZW1hX2luZm9bInNlcnZlcl92ZXJzaW9uIl0KKyAgICAgICAgaWYgc2VsZi5zZXJ2ZXJfdmVyc2lv biA8IDk5OTk5OgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgKKyAgICAgICAgICAgICAgICAi TG9naWNhbCByZXBsaWNhdGlvbiBpcyBub3Qgc3VwcG9ydGVkICIKKyAgICAgICAgICAgICAgICAi Zm9yIHNlcnZlciB2ZXJzaW9uIGxlc3MgdGhhbiAxMCIKKworICAgICAgICAgICAgKQorCisgICAg ICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMu U0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29u WydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAg ICAgICAgICAgICAgICJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSBwdWJs aWNhdGlvbi4iKQorCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdCBhbmQgaGFzYXR0 cihzZWxmLCAnZmV3X3RhYmxlcycpOgorICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRh YmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgICAgIHNl bGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuIFwKKyAgICAgICAgICAgICAgICBjcmVhdGVfdGFi bGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQorCisgICAgICAgICAgICBzZWxm LnRlc3RfZGF0YVsncHVidGFibGUnXSA9IHB1YmxpY2F0aW9uX3V0aWxzLmdldF90YWJsZXMoc2Vs ZikKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdp bGwgcHVibGljYXRpb24uIiIiCisgICAgICAgIHNlbGYudGVzdF9kYXRhWyduYW1lJ10gPSBcCisg ICAgICAgICAgICAidGVzdF9wdWJsaWNhdGlvbl9hZGRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0pCisKKyAgICAgICAgZGF0YSA9IHNlbGYudGVzdF9kYXRhCisgICAgICAgIGlmIHNlbGYu aXNfcG9zaXRpdmVfdGVzdDoKKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5jcmVhdGVfcHVi bGljYXRpb24oKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAn d2l0aG91dF9uYW1lJyk6CisgICAgICAgICAgICAgICAgZGVsIGRhdGFbIm5hbWUiXQorICAgICAg ICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5jcmVhdGVfcHVibGljYXRpb24oKQorICAgICAgICAg ICAgZWxpZiBoYXNhdHRyKHNlbGYsICdlcnJvcl9jcmVhdGluZ19wdWJsaWNhdGlvbicpOgorICAg ICAgICAgICAgICAgIHdpdGggcGF0Y2goc2VsZi5tb2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZT1ldmFsKHNlbGYubW9ja19k YXRhWyJyZXR1cm5fdmFsdWUiXSkpOgorICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNl bGYuY3JlYXRlX3B1YmxpY2F0aW9uKCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg ICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2lkZV9lZmZlY3Q9c2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1 ZSJdKToKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmNyZWF0ZV9wdWJsaWNh dGlvbigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHBlY3RlZF9kYXRhWyJzdGF0dXNfY29kZSJd KQorCisgICAgZGVmIGNyZWF0ZV9wdWJsaWNhdGlvbihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl bGYudGVzdGVyLnBvc3QoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJf R1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBz dHIoCisgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkgKyAnLycsCisgICAgICAgICAgICBkYXRh PWpzb24uZHVtcHMoc2VsZi50ZXN0X2RhdGEpLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdo dG1sL2pzb24nKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBpZiBub3QgaGFz YXR0cihzZWxmLCAnd2l0aG91dF9uYW1lJyk6CisgICAgICAgICAgICBwdWJsaWNhdGlvbl91dGls cy5kZWxldGVfcHVibGljYXRpb24oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3RfZGF0YVsn bmFtZSddKQorCisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0 YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2Vs Zi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvdGVzdF9wdWJsaWNhdGlvbl9kZWxl dGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvcHVibGljYXRpb25zL3Rlc3RzL3Rlc3RfcHVibGljYXRpb25fZGVsZXRlLnB5Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uODgzOWJkMjNmCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1 YmxpY2F0aW9ucy90ZXN0cy90ZXN0X3B1YmxpY2F0aW9uX2RlbGV0ZS5weQpAQCAtMCwwICsxLDk0 IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xz CisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50 IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBM aWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgdXVpZAorZnJvbSB1bml0dGVz dC5tb2NrIGltcG9ydCBwYXRjaAorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2No ZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20g cGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVz c2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0 X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFz IHB1YmxpY2F0aW9uX3V0aWxzCisKKworY2xhc3MgUHVibGljYXRpb25EZWxldGVUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSBwdWJsaWNh dGlvbi4iIiIKKyAgICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2VuYXJpb3MoJ2RlbGV0 ZV9wdWJsaWNhdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHB1YmxpY2F0aW9uX3V0aWxzLnRlc3RfY2FzZXMpCisKKyAgICBkZWYgc2V0VXAoc2VsZik6Cisg ICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJk Yl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEi XVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0K KyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIHNlbGYu c2VydmVyX3ZlcnNpb24gPSBzY2hlbWFfaW5mb1sic2VydmVyX3ZlcnNpb24iXQorICAgICAgICBp ZiBzZWxmLnNlcnZlcl92ZXJzaW9uIDwgOTk5OTk6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0 KAorICAgICAgICAgICAgICAgICJMb2dpY2FsIHJlcGxpY2F0aW9uIGlzIG5vdCBzdXBwb3J0ZWQg IgorICAgICAgICAgICAgICAgICJmb3Igc2VydmVyIHZlcnNpb24gbGVzcyB0aGFuIDEwIgorCisg ICAgICAgICAgICApCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0 YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAg ICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRh YmFzZSB0byBkZWxldGUgcHVibGljYXRpb24uIikKKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBz Y2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVt YV9pbmZvWyJzY2hlbWFfbmFtZSJdCisKKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1h X3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFf bmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBkZWxldGUgcHVibGljYXRp b24uIikKKyAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lID0gInRlc3RfcHVibGljYXRpb25f ZGVsZXRlXyVzIiAlICgKKyAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisKKyAg ICAgICAgc2VsZi5wdWJsaWNhdGlvbl9pZCA9IFwKKyAgICAgICAgICAgIHB1YmxpY2F0aW9uX3V0 aWxzLmNyZWF0ZV9wdWJsaWNhdGlvbihzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1l KQorCisgICAgZGVmIGRlbGV0ZV9wdWJsaWNhdGlvbihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl bGYudGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZF Ul9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyAr IHN0cihzZWxmLmRiX2lkKSArCisgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5wdWJsaWNhdGlv bl9pZCksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisKKyAgICBkZWYgcnVu VGVzdChzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBwdWJsaWNh dGlvbiIiIgorICAgICAgICBwdWJsaWNhdGlvbl9yZXNwb25zZSA9IHB1YmxpY2F0aW9uX3V0aWxz LiBcCisgICAgICAgICAgICB2ZXJpZnlfcHVibGljYXRpb24oc2VsZi5zZXJ2ZXIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYucHVibGljYXRpb25fbmFtZSkKKyAgICAgICAgaWYgbm90IHB1Ymxp Y2F0aW9uX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg ZmluZCB0aGUgcHVibGljYXRpb24gdG8gZGVsZXRlLiIpCisKKyAgICAgICAgaWYgc2VsZi5pc19w b3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAiaW52YWxpZF9wdWJs aWNhdGlvbl9pZCIpOgorICAgICAgICAgICAgICAgIHNlbGYucHVibGljYXRpb25faWQgPSA5OTk5 CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZGVsZXRlX3B1YmxpY2F0aW9uKCkKKyAgICAg ICAgZWxzZToKKyAgICAgICAgICAgIHdpdGggcGF0Y2goc2VsZi5tb2NrX2RhdGFbImZ1bmN0aW9u X25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPWV2YWwoc2VsZi5t b2NrX2RhdGFbInJldHVybl92YWx1ZSJdKSk6CisgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLmRlbGV0ZV9wdWJsaWNhdGlvbigpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNw b25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVk X2RhdGFbInN0YXR1c19jb2RlIl0pCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAg ICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgaWYgbm90IHNlbGYuaXNfcG9zaXRp dmVfdGVzdCBvciBoYXNhdHRyKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnaW52YWxpZF9wdWJsaWNhdGlvbl9pZCcpOgorICAgICAgICAgICAg cHVibGljYXRpb25fdXRpbHMuZGVsZXRlX3B1YmxpY2F0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRi X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5wdWJsaWNhdGlvbl9uYW1lKQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0 X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1Ymxp Y2F0aW9ucy90ZXN0cy90ZXN0X3B1YmxpY2F0aW9uX2RlbGV0ZV9tdWx0aXBsZS5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlv bnMvdGVzdHMvdGVzdF9wdWJsaWNhdGlvbl9kZWxldGVfbXVsdGlwbGUucHkKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5hOTY4MTJiMjQKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGlj YXRpb25zL3Rlc3RzL3Rlc3RfcHVibGljYXRpb25fZGVsZXRlX211bHRpcGxlLnB5CkBAIC0wLDAg KzEsMTAzIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FM IFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVs b3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdy ZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgdXVpZAoraW1wb3J0 IGpzb24KKworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCisgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191 dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGlt cG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5y b3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFy ZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0 ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHB1YmxpY2F0aW9uX3V0 aWxzCisKKworY2xhc3MgUHVibGljYXRpb25EZWxldGVUZXN0Q2FzZXMoQmFzZVRlc3RHZW5lcmF0 b3IpOgorICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBkZWxldGUgcHVibGljYXRpb24uIiIiCisKKyAg ICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2VuYXJpb3MoJ2RlbGV0ZV9tdWx0aXBsZV9w dWJsaWNhdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1 YmxpY2F0aW9uX3V0aWxzLnRlc3RfY2FzZXMpCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAg ICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9u YW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVst MV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAg ICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIGRiX2NvbiA9 IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQ LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNv bm5lY3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAg ICJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBkZWxldGUgcHVibGljYXRpb24uIikK KyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAg IHNlbGYuc2VydmVyX3ZlcnNpb24gPSBzY2hlbWFfaW5mb1sic2VydmVyX3ZlcnNpb24iXQorICAg ICAgICBpZiBzZWxmLnNlcnZlcl92ZXJzaW9uIDwgOTk5OTk6CisgICAgICAgICAgICBzZWxmLnNr aXBUZXN0KAorICAgICAgICAgICAgICAgICJMb2dpY2FsIHJlcGxpY2F0aW9uIGlzIG5vdCBzdXBw b3J0ZWQgIgorICAgICAgICAgICAgICAgICJmb3Igc2VydmVyIHZlcnNpb24gbGVzcyB0aGFuIDEw IgorCisgICAgICAgICAgICApCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGls cy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUp CisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlIHB1YmxpY2F0aW9uLiIp CisgICAgICAgIHNlbGYudGFibGVfbmFtZSA9ICJ0YWJsZV9jb2x1bW5fJXMiICUgKHN0cih1dWlk LnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3Jl YXRlX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFt ZSkKKyAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lID0gInRlc3RfcHVibGljYXRpb25fZGVs ZXRlXyVzIiAlICgKKyAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAg IHNlbGYucHVibGljYXRpb25fbmFtZV8xID0gInRlc3RfcHVibGljYXRpb25fZGVsZXRlXyVzIiAl ICgKKyAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHNlbGYucHVi bGljYXRpb25faWRzID0gWworICAgICAgICAgICAgcHVibGljYXRpb25fdXRpbHMuY3JlYXRlX3B1 YmxpY2F0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lKSwKKyAg ICAgICAgICAgIHB1YmxpY2F0aW9uX3V0aWxzLmNyZWF0ZV9wdWJsaWNhdGlvbihzZWxmLnNlcnZl ciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYucHVibGljYXRpb25fbmFtZV8xKSwKKyAgICAgICAgXQorCisgICAgZGVm IGRlbGV0ZV9tdWx0aXBsZV9wdWJsaWNhdGlvbihzZWxmLCBkYXRhKToKKyAgICAgICAgcmV0dXJu IHNlbGYudGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS8iLmZvcm1h dChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1 ZSwKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgIGNvbnRl bnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICApCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToK KyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBwdWJsaWNhdGlvbi4iIiIKKyAg ICAgICAgcnVsZV9yZXNwb25zZSA9IHB1YmxpY2F0aW9uX3V0aWxzLiBcCisgICAgICAgICAgICB2 ZXJpZnlfcHVibGljYXRpb24oc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu cHVibGljYXRpb25fbmFtZSkKKyAgICAgICAgaWYgbm90IHJ1bGVfcmVzcG9uc2U6CisgICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBwdWJsaWNhdGlvbiB0byBk ZWxldGUuIikKKworICAgICAgICBydWxlX3Jlc3BvbnNlID0gcHVibGljYXRpb25fdXRpbHMuIFwK KyAgICAgICAgICAgIHZlcmlmeV9wdWJsaWNhdGlvbihzZWxmLnNlcnZlciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lXzEpCisgICAgICAgIGlmIG5vdCBydWxlX3Jl c3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUg cHVibGljYXRpb24gdG8gZGVsZXRlLiIpCisKKyAgICAgICAgZGF0YSA9IHsnaWRzJzogc2VsZi5w dWJsaWNhdGlvbl9pZHN9CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi5kZWxldGVfbXVsdGlwbGVf cHVibGljYXRpb24oZGF0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0 dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkX2RhdGFbInN0 YXR1c19jb2RlIl0pCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICMgRGlzY29u bmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRh YmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlv bnMvdGVzdHMvdGVzdF9wdWJsaWNhdGlvbl9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzL3Rlc3RfcHVi bGljYXRpb25fZ2V0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uY2Jh ODc5NGNmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy90ZXN0X3B1YmxpY2F0aW9u X2dldC5weQpAQCAtMCwwICsxLDEwMCBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1p biA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBU aGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQg dW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1w b3J0IHV1aWQKK2Zyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgcGF0Y2gKKworZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50 ZXN0cyBcCisgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscworZnJvbSBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9y dCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAg ZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSBy ZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitm cm9tIC4gaW1wb3J0IHV0aWxzIGFzIHB1YmxpY2F0aW9uX3V0aWxzCisKKworY2xhc3MgUHVibGlj YXRpb25HZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3 aWxsIGZldGNoIHRoZSBwdWJsaWNhdGlvbiB1bmRlciB0YWJsZSBub2RlLiIiIgorICAgIHNjZW5h cmlvcyA9IHV0aWxzLmdlbmVyYXRlX3NjZW5hcmlvcygnZ2V0X3B1YmxpY2F0aW9uJywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljYXRpb25fdXRpbHMudGVz dF9jYXNlcykKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5kYl9uYW1lID0g cGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAgICBzY2hl bWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQorICAgICAgICBzZWxmLnNl cnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQorICAgICAgICBzZWxmLmRiX2lkID0g c2NoZW1hX2luZm9bImRiX2lkIl0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA9IHNjaGVt YV9pbmZvWyJzZXJ2ZXJfdmVyc2lvbiJdCisgICAgICAgIGlmIHNlbGYuc2VydmVyX3ZlcnNpb24g PCA5OTk5OToKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoCisgICAgICAgICAgICAgICAgIkxv Z2ljYWwgcmVwbGljYXRpb24gaXMgbm90IHN1cHBvcnRlZCAiCisgICAgICAgICAgICAgICAgImZv ciBzZXJ2ZXIgdmVyc2lvbiBsZXNzIHRoYW4gMTAiCisKKyAgICAgICAgICAgICkKKyAgICAgICAg ZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJW RVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bJ2Rh dGEnXVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAg ICAgICAgICAgIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGRlbGV0ZSBwdWJsaWNh dGlvbi4iKQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQi XQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0K KyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNl bGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKworICAgICAgICBpZiBub3Qg c2NoZW1hX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg ZmluZCB0aGUgc2NoZW1hIHRvIGRlbGV0ZSBwdWJsaWNhdGlvbi4iKQorICAgICAgICBzZWxmLnRh YmxlX25hbWUgPSAidGFibGVfY29sdW1uXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQor ICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNl cnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCisgICAgICAgIHNlbGYu cHVibGljYXRpb25fbmFtZSA9ICJ0ZXN0X3B1YmxpY2F0aW9uX2dldF8lcyIgJSAoCisgICAgICAg ICAgICBzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX2lk ID0gcHVibGljYXRpb25fdXRpbHMuIFwKKyAgICAgICAgICAgIGNyZWF0ZV9wdWJsaWNhdGlvbihz ZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lKQor CisgICAgZGVmIGdldF9wdWJsaWNhdGlvbihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYudGVz dGVyLmdldCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkg KyAnLycgKyBzdHIoCisgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAg ICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArIHN0cihzZWxmLnB1YmxpY2F0aW9uX2lk KSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAgIGRlZiBydW5U ZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIHB1Ymxp Y2F0aW9uLiIiIgorCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAgICAgICAg ICAgIGlmIGhhc2F0dHIoc2VsZiwgImRhdGFiYXNlX25vZGVzIik6CisgICAgICAgICAgICAgICAg c2VsZi5wdWJsaWNhdGlvbl9pZCA9ICcnCisgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxm LmdldF9wdWJsaWNhdGlvbigpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJl c3BvbnNlID0gc2VsZi5nZXRfcHVibGljYXRpb24oKQorICAgICAgICBlbHNlOgorICAgICAgICAg ICAgaWYgaGFzYXR0cihzZWxmLCAiZGF0YWJhc2Vfbm9kZXMiKToKKyAgICAgICAgICAgICAgICBz ZWxmLnB1YmxpY2F0aW9uX2lkID0gJycKKyAgICAgICAgICAgICAgICB3aXRoIHBhdGNoKHNlbGYu bW9ja19kYXRhWyJmdW5jdGlvbl9uYW1lIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0dXJuX3ZhbHVlIl0pKToKKyAgICAg ICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmdldF9wdWJsaWNhdGlvbigpCisgICAgICAg ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHdpdGggcGF0Y2goc2VsZi5tb2NrX2RhdGFbImZ1 bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZT1l dmFsKHNlbGYubW9ja19kYXRhWyJyZXR1cm5fdmFsdWUiXSkpOgorICAgICAgICAgICAgICAgICAg ICByZXNwb25zZSA9IHNlbGYuZ2V0X3B1YmxpY2F0aW9uKCkKKworICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZXhwZWN0ZWRfZGF0YVsic3RhdHVzX2NvZGUiXSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxm KToKKyAgICAgICAgcHVibGljYXRpb25fdXRpbHMuZGVsZXRlX3B1YmxpY2F0aW9uKHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX25hbWUpCisgICAgICAgICMgRGlzY29ubmVjdCB0aGUg ZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxm LCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMv dGVzdF9wdWJsaWNhdGlvbl9wdXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzL3Rlc3RfcHVibGljYXRpb25f cHV0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYmMzMTYwMmFiCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy90ZXN0X3B1YmxpY2F0aW9uX3B1dC5weQpA QCAtMCwwICsxLDEyNyBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9z dGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1p biBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IGpzb24K K2ltcG9ydCB1dWlkCitmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCisKK2Zyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJs ZXMudGVzdHMgXAorICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKK2Zyb20gcGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBp bXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAor ICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zy b20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGls cworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBwdWJsaWNhdGlvbl91dGlscworCisKK2NsYXNzIFB1 YmxpY2F0aW9uVXBkYXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIlRoaXMg Y2xhc3Mgd2lsbCB1cGRhdGUgdGhlIHB1YmxpY2F0aW9uLiIiIgorICAgIHNjZW5hcmlvcyA9IHV0 aWxzLmdlbmVyYXRlX3NjZW5hcmlvcygndXBkYXRlX3B1YmxpY2F0aW9uJywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljYXRpb25fdXRpbHMudGVzdF9jYXNl cykKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50 X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAgICBzY2hlbWFfaW5m byA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9p ZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQorICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1h X2luZm9bImRiX2lkIl0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA9IHNjaGVtYV9pbmZv WyJzZXJ2ZXJfdmVyc2lvbiJdCisgICAgICAgIGlmIHNlbGYuc2VydmVyX3ZlcnNpb24gPCA5OTk5 OToKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoCisgICAgICAgICAgICAgICAgIkxvZ2ljYWwg cmVwbGljYXRpb24gaXMgbm90IHN1cHBvcnRlZCAiCisgICAgICAgICAgICAgICAgImZvciBzZXJ2 ZXIgdmVyc2lvbiBsZXNzIHRoYW4gMTAiCisKKyAgICAgICAgICAgICkKKyAgICAgICAgZGJfY29u ID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JP VVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsi Y29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAg ICAgIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGRlbGV0ZSBwdWJsaWNhdGlvbi4i KQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAg ICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAg ICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2Vy dmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9y ZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhl IHNjaGVtYSB0byBkZWxldGUgcHVibGljYXRpb24uIikKKyAgICAgICAgc2VsZi50YWJsZV9uYW1l ID0gInRhYmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKworICAgICAg ICBzZWxmLnNlcnZlcl92ZXJzaW9uID0gc2NoZW1hX2luZm9bInNlcnZlcl92ZXJzaW9uIl0KKyAg ICAgICAgaWYgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA8IDk5OTk5OgorICAgICAgICAgICAgc2VsZi5z a2lwVGVzdCgKKyAgICAgICAgICAgICAgICAiTG9naWNhbCByZXBsaWNhdGlvbiBpcyBub3Qgc3Vw cG9ydGVkICIKKyAgICAgICAgICAgICAgICAiZm9yIHNlcnZlciB2ZXJzaW9uIGxlc3MgdGhhbiAx MCIKKworICAgICAgICAgICAgKQorICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxz LmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxl X25hbWUpCisgICAgICAgIHNlbGYucHVibGljYXRpb25fbmFtZSA9ICJ0ZXN0X3B1YmxpY2F0aW9u X3VwZGF0ZV8lcyIgJSAoCisgICAgICAgICAgICBzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAg ICAgICBzZWxmLnB1YmxpY2F0aW9uX2lkID0gXAorICAgICAgICAgICAgcHVibGljYXRpb25fdXRp bHMuY3JlYXRlX3B1YmxpY2F0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wdWJsaWNhdGlv bl9uYW1lKQorCisgICAgZGVmIHVwZGF0ZV9wdWJsaWNhdGlvbihzZWxmLCBkYXRhKToKKyAgICAg ICAgcmV0dXJuIHNlbGYudGVzdGVyLnB1dCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0 aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lk KSArICcvJyArIHN0cigKKyAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKSArCisgICAgICAgICAg ICAnLycgKyBzdHIoc2VsZi5wdWJsaWNhdGlvbl9pZCksCisgICAgICAgICAgICBkYXRhPWpzb24u ZHVtcHMoZGF0YSksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisKKyAgICBk ZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0 aGUgcHVibGljYXRpb24uIiIiCisKKyAgICAgICAgcHVibGljYXRpb25fbmFtZSA9IHB1YmxpY2F0 aW9uX3V0aWxzLiBcCisgICAgICAgICAgICB2ZXJpZnlfcHVibGljYXRpb24oc2VsZi5zZXJ2ZXIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHVibGljYXRpb25fbmFtZSkKKyAgICAgICAgaWYg aGFzYXR0cihzZWxmLCAidXBkYXRlX25hbWUiKToKKyAgICAgICAgICAgIHNlbGYudGVzdF9kYXRh WyduYW1lJ10gPSAidGVzdF9wdWJsaWNhdGlvbl91cGRhdGVfJXMiICUgKAorICAgICAgICAgICAg ICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBz ZWxmLnRlc3RfZGF0YVsnbmFtZSddID0gc2VsZi5wdWJsaWNhdGlvbl9uYW1lCisgICAgICAgIHNl bGYudGVzdF9kYXRhWydpZCddID0gc2VsZi5wdWJsaWNhdGlvbl9pZAorCisgICAgICAgIGlmIG5v dCBwdWJsaWNhdGlvbl9uYW1lOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgZmluZCB0aGUgcHVibGljYXRpb24gdG8gdXBkYXRlLiIpCisKKyAgICAgICAgaWYgc2VsZi5p c19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAid3JvbmdfcHVi bGljYXRpb25faWQiKToKKyAgICAgICAgICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX2lkID0gOTk5 OQorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAicGxpZF9ub25lIik6CisgICAgICAgICAg ICAgICAgc2VsZi5wdWJsaWNhdGlvbl9pZCA9ICcnCisgICAgICAgICAgICByZXNwb25zZSA9IHNl bGYudXBkYXRlX3B1YmxpY2F0aW9uKHNlbGYudGVzdF9kYXRhKQorICAgICAgICBlbHNlOgorICAg ICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0 dXJuX3ZhbHVlIl0pKToKKyAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJ3cm9uZ19w dWJsaWNhdGlvbl9pZCIpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX2lk ID0gOTk5OQorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi51cGRhdGVfcHVibGljYXRp b24oc2VsZi50ZXN0X2RhdGEpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5z dGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkX2RhdGFb InN0YXR1c19jb2RlIl0pCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIGNvbm5l Y3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZWxmLnNlcnZlclsnZGInXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2Vy bmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydzc2xtb2RlJ10p CisKKyAgICAgICAgcHVibGljYXRpb25fdXRpbHMuZGVsZXRlX3B1YmxpY2F0aW9uKHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnRlc3RfZGF0YVsnbmFtZSddKQorCisgICAgICAgICMgRGlzY29ubmVjdCB0 aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShz ZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVz dHMvdGVzdF9wdWJsaWNhdGlvbl9zcWwucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzL3Rlc3RfcHVibGljYXRp b25fc3FsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYjFhY2I3ODc0 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy90ZXN0X3B1YmxpY2F0aW9uX3NxbC5w eQpAQCAtMCwwICsxLDg4IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgdXVp ZAorZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAoraW1wb3J0IGpzb24KK2Zyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJs ZXMudGVzdHMgXAorICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKK2Zyb20gcGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBp bXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAor ICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zy b20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGls cworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBwdWJsaWNhdGlvbl91dGlscworCisKK2NsYXNzIFB1 YmxpY2F0aW9uR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIlRoaXMgY2xh c3Mgd2lsbCBmZXRjaCB0aGUgcHVibGljYXRpb24gdW5kZXIgdGFibGUgbm9kZS4iIiIKKyAgICBz Y2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2VuYXJpb3MoJ3NxbF9wdWJsaWNhdGlvbicsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY2F0aW9uX3V0aWxz LnRlc3RfY2FzZXMpCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFt ZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAg c2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9p ZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIHNlbGYuc2VydmVyX3ZlcnNpb24gPSBz Y2hlbWFfaW5mb1sic2VydmVyX3ZlcnNpb24iXQorICAgICAgICBpZiBzZWxmLnNlcnZlcl92ZXJz aW9uIDwgOTk5OTk6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KAorICAgICAgICAgICAgICAg ICJMb2dpY2FsIHJlcGxpY2F0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgIgorICAgICAgICAgICAgICAg ICJmb3Igc2VydmVyIHZlcnNpb24gbGVzcyB0aGFuIDEwIgorCisgICAgICAgICAgICApCisgICAg ICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMu U0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29u WydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAg ICAgICAgICAgICAgICJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBkZWxldGUgcHVi bGljYXRpb24uIikKKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1h X2lkIl0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFt ZSJdCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1h cyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5v dCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5v dCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlIHB1YmxpY2F0aW9uLiIpCisgICAgICAgIHNlbGYu dGFibGVfbmFtZSA9ICJ0YWJsZV9jb2x1bW5fJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0p CisgICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYu c2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKKyAgICAgICAgc2Vs Zi5wdWJsaWNhdGlvbl9uYW1lID0gInRlc3RfcHVibGljYXRpb25fZGVsZXRlXyVzIiAlICgKKyAg ICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHNlbGYucHVibGljYXRp b25faWQgPSBcCisgICAgICAgICAgICBwdWJsaWNhdGlvbl91dGlscy5jcmVhdGVfcHVibGljYXRp b24oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX25hbWUpCisKKyAgICBkZWYg Z2V0X3NxbChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYudGVzdGVyLmdldCgKKyAgICAgICAg ICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKyBzdHIoCisgICAg ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxm LmRiX2lkKSArICcvJyArIHN0cihzZWxmLnB1YmxpY2F0aW9uX2lkKSwKKyAgICAgICAgICAgIGNv bnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAg ICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIHB1YmxpY2F0aW9uIHVuZGVyIHRhYmxl IG5vZGUuIiIiCisKKyAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAg ICAgcmVzcG9uc2UgPSBzZWxmLmdldF9zcWwoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg d2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0dXJuX3ZhbHVl Il0pKToKKyAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X3NxbCgpCisKKyAgICAg ICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmV4cGVjdGVkX2RhdGFbInN0YXR1c19jb2RlIl0pCisKKyAgICBkZWYg dGVhckRvd24oc2VsZik6CisgICAgICAgIHB1YmxpY2F0aW9uX3V0aWxzLmRlbGV0ZV9wdWJsaWNh dGlvbihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lKQorICAgICAgICAjIERp c2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3Rf ZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGlj YXRpb25zL3Rlc3RzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy91dGlscy5weQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmJlMzk5YTRjNgotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJs aWNhdGlvbnMvdGVzdHMvdXRpbHMucHkKQEAgLTAsMCArMSwxNTIgQEAKKyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChD KSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3 YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisKKworaW1wb3J0IHN5cworaW1wb3J0IG9zCitpbXBvcnQganNvbgoraW1wb3J0 IHRyYWNlYmFjaworCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRl c3RfdXRpbHMgYXMgdXRpbHMKKworQ1VSUkVOVF9QQVRIID0gb3MucGF0aC5kaXJuYW1lKG9zLnBh dGgucmVhbHBhdGgoX19maWxlX18pKQord2l0aCBvcGVuKENVUlJFTlRfUEFUSCArICIvcHVibGlj YXRpb25fdGVzdF9kYXRhLmpzb24iKSBhcyBkYXRhX2ZpbGU6CisgICAgdGVzdF9jYXNlcyA9IGpz b24ubG9hZChkYXRhX2ZpbGUpCisKKworZGVmIGdldF90YWJsZXMoc2VsZik6CisgICAgdGFibGVz ID0gc2VsZi50ZXN0ZXIuZ2V0KAorICAgICAgICAnL2Jyb3dzZXIvcHVibGljYXRpb24vZ2V0X3Rh Ymxlcy8nICsgc3RyKAorICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0 cigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAgIHN0cihzZWxm LmRiX2lkKSArICcvJywKKyAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAgIHJl dHVybiBqc29uLmR1bXBzKFt0YWJsZXMuanNvblsnZGF0YSddWzFdWyd2YWx1ZSddXSkKKworCitk ZWYgY3JlYXRlX3B1YmxpY2F0aW9uX2FwaShzZWxmKToKKyAgICByZXR1cm4gc2VsZi50ZXN0ZXIu cG9zdCgKKyAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyAr CisgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoCisgICAgICAgICAgICBz ZWxmLmRiX2lkKSArICcvJywKKyAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYudGVzdF9kYXRh KSwKKyAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisKK2RlZiBjcmVhdGVfcHVi bGljYXRpb24oc2VydmVyLCBkYl9uYW1lLCBwdWJsaWNhdGlvbl9uYW1lKToKKyAgICAiIiIKKyAg ICBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYSBwdWJsaWNhdGlvbiB1bmRlciBwcm92aWRlZCB0YWJs ZS4KKyAgICA6cGFyYW0gc2VydmVyOiBzZXJ2ZXIgZGV0YWlscworICAgIDp0eXBlIHNlcnZlcjog ZGljdAorICAgIDpwYXJhbSBkYl9uYW1lOiBkYXRhYmFzZSBuYW1lCisgICAgOnR5cGUgZGJfbmFt ZTogc3RyCisgICAgOnBhcmFtIHB1YmxpY2F0aW9uX25hbWU6IHB1YmxpY2F0aW9uIG5hbWUKKyAg ICA6dHlwZSBwdWJsaWNhdGlvbl9uYW1lOiBzdHIKKyAgICA6cmV0dXJuIHB1YmxpY2F0aW9uX2lk OiBwdWJsaWNhdGlvbiBpZAorICAgIDpydHlwZTogaW50CisgICAgIiIiCisgICAgdHJ5OgorICAg ICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oZGJfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUn XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsn ZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyWydwb3J0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXJ2ZXJbJ3NzbG1vZGUnXSkKKyAgICAgICAgb2xkX2lzb2xhdGlvbl9s ZXZlbCA9IGNvbm5lY3Rpb24uaXNvbGF0aW9uX2xldmVsCisgICAgICAgIGNvbm5lY3Rpb24uc2V0 X2lzb2xhdGlvbl9sZXZlbCgwKQorICAgICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNv cigpCisgICAgICAgIHF1ZXJ5ID0gIkNSRUFURSBwdWJsaWNhdGlvbiAlcyBGT1IgQUxMIFRBQkxF UyIgJSBcCisgICAgICAgICAgICAgICAgKHB1YmxpY2F0aW9uX25hbWUpCisgICAgICAgIHBnX2N1 cnNvci5leGVjdXRlKHF1ZXJ5KQorICAgICAgICBjb25uZWN0aW9uLnNldF9pc29sYXRpb25fbGV2 ZWwob2xkX2lzb2xhdGlvbl9sZXZlbCkKKyAgICAgICAgY29ubmVjdGlvbi5jb21taXQoKQorICAg ICAgICAjIEdldCByb2xlIG9pZCBvZiBuZXdseSBhZGRlZCBwdWJsaWNhdGlvbgorICAgICAgICBw Z19jdXJzb3IuZXhlY3V0ZSgic2VsZWN0IG9pZCBmcm9tIHBnX3B1YmxpY2F0aW9uIHB1YiB3aGVy ZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJwdWIucHVibmFtZT0nJXMnIiAlCisgICAg ICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY2F0aW9uX25hbWUpCisgICAgICAgIHB1YmxpY2F0 aW9uID0gcGdfY3Vyc29yLmZldGNob25lKCkKKyAgICAgICAgcHVibGljYXRpb25faWQgPSAnJwor ICAgICAgICBpZiBwdWJsaWNhdGlvbjoKKyAgICAgICAgICAgIHB1YmxpY2F0aW9uX2lkID0gcHVi bGljYXRpb25bMF0KKyAgICAgICAgY29ubmVjdGlvbi5jbG9zZSgpCisgICAgICAgIHJldHVybiBw dWJsaWNhdGlvbl9pZAorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHRyYWNlYmFjay5w cmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICByYWlzZQorCisKK2RlZiB2ZXJpZnlf cHVibGljYXRpb24oc2VydmVyLCBkYl9uYW1lLCBwdWJsaWNhdGlvbl9uYW1lKToKKyAgICAiIiIK KyAgICBUaGlzIGZ1bmN0aW9uIHZlcmlmaWVzIHB1YmxpY2F0aW9uIGV4aXN0IGluIGRhdGFiYXNl IG9yIG5vdC4KKyAgICA6cGFyYW0gc2VydmVyOiBzZXJ2ZXIgZGV0YWlscworICAgIDp0eXBlIHNl cnZlcjogZGljdAorICAgIDpwYXJhbSBkYl9uYW1lOiBkYXRhYmFzZSBuYW1lCisgICAgOnR5cGUg ZGJfbmFtZTogc3RyCisgICAgOnBhcmFtIHB1YmxpY2F0aW9uX25hbWU6IHB1YmxpY2F0aW9uIG5h bWUKKyAgICA6dHlwZSBwdWJsaWNhdGlvbl9uYW1lOiBzdHIKKyAgICA6cmV0dXJuIHB1YmxpY2F0 aW9uOiBwdWJsaWNhdGlvbiByZWNvcmQgZnJvbSBkYXRhYmFzZQorICAgIDpydHlwZTogdHVwbGUK KyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29u bmVjdGlvbihkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydob3N0J10sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnc3NsbW9kZSddKQor ICAgICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgIHBnX2N1cnNv ci5leGVjdXRlKCJzZWxlY3QgKiBmcm9tIHBnX3B1YmxpY2F0aW9uIHB1YiAiCisgICAgICAgICAg ICAgICAgICAgICAgICAgICJ3aGVyZSBwdWIucHVibmFtZT0nJXMnIiAlCisgICAgICAgICAgICAg ICAgICAgICAgICAgIHB1YmxpY2F0aW9uX25hbWUpCisgICAgICAgIHB1YmxpY2F0aW9uID0gcGdf Y3Vyc29yLmZldGNob25lKCkKKyAgICAgICAgY29ubmVjdGlvbi5jbG9zZSgpCisgICAgICAgIHJl dHVybiBwdWJsaWNhdGlvbgorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHRyYWNlYmFj ay5wcmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICByYWlzZQorCisKK2RlZiBkZWxl dGVfcHVibGljYXRpb24oc2VydmVyLCBkYl9uYW1lLCBwdWJsaWNhdGlvbl9uYW1lKToKKyAgICAi IiIKKyAgICBUaGlzIGZ1bmN0aW9uIHVzZSB0byBkZWxldGUgdGhlIGV4aXN0aW5nIHJvbGVzIGlu IHRoZSBzZXJ2ZXJzCisKKyAgICA6cGFyYW0gZGJfbmFtZTogIGRiX25hbWUKKyAgICA6dHlwZSBk Yl9uYW1lOiBkYl9uYW1lIG9iamVjdAorICAgIDpwYXJhbSBzZXJ2ZXI6IHNlcnZlcgorICAgIDp0 eXBlIHNlcnZlcjogc2VydmVyIG9iamVjdAorICAgIDpwYXJhbSBwdWJsaWNhdGlvbl9uYW1lOiBw dWJsaWNhdGlvbiBuYW1lCisgICAgOnR5cGUgcHVibGljYXRpb25fbmFtZTogc3RyCisgICAgOnJl dHVybjogTm9uZQorICAgICIiIgorCisgICAgdHJ5OgorICAgICAgICBjb25uZWN0aW9uID0gdXRp bHMuZ2V0X2RiX2Nvbm5lY3Rpb24oZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnaG9zdCddLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydwb3J0 J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJb J3NzbG1vZGUnXSkKKyAgICAgICAgcGdfY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorCisg ICAgICAgIHBnX2N1cnNvci5leGVjdXRlKCJzZWxlY3QgKiBmcm9tIHBnX3B1YmxpY2F0aW9uIHB1 YiB3aGVyZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJwdWIucHVibmFtZT0nJXMnIiAl CisgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY2F0aW9uX25hbWUpCisgICAgICAgIHB1 YmxpY2F0aW9uX2NvdW50ID0gcGdfY3Vyc29yLmZldGNob25lKCkKKyAgICAgICAgaWYgcHVibGlj YXRpb25fY291bnQ6CisgICAgICAgICAgICBvbGRfaXNvbGF0aW9uX2xldmVsID0gY29ubmVjdGlv bi5pc29sYXRpb25fbGV2ZWwKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9s ZXZlbCgwKQorICAgICAgICAgICAgcGdfY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAg ICAgICAgICAgcXVlcnkgPSAiRFJPUCBwdWJsaWNhdGlvbiAlcyIgJSBwdWJsaWNhdGlvbl9uYW1l CisgICAgICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZShxdWVyeSkKKyAgICAgICAgICAgIGNvbm5l Y3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZlbChvbGRfaXNvbGF0aW9uX2xldmVsKQorICAgICAgICAg ICAgY29ubmVjdGlvbi5jb21taXQoKQorICAgICAgICBjb25uZWN0aW9uLmNsb3NlKCkKKyAgICBl eGNlcHQgRXhjZXB0aW9uOgorICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9c3lzLnN0 ZGVycikKKyAgICAgICAgcmFpc2UKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9zdGF0aWMvanMvdGFi bGUuanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvc3RhdGljL2pzL3RhYmxlLmpzCmluZGV4IGZmZWI2OWY2Ni4uYjRh MjNjNGVlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvc3RhdGljL2pzL3RhYmxlLmpzCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9zdGF0aWMvanMvdGFibGUuanMKQEAgLTUxNyw2ICs1MTcsMTEgQEAgZGVmaW5lKCdw Z2FkbWluLm5vZGUudGFibGUnLCBbCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg ICB9LAogICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdyZXBsaWNhX2lkZW50 aXR5JywgbGFiZWw6IGdldHRleHQoJ1JlcGxpY2EgSWRlbnRpdHknKSwKKyAgICAgICAgICBncm91 cDogZ2V0dGV4dCgnYWR2YW5jZWQnKSwgdHlwZTogJ3RleHQnLG1vZGU6IFsnZWRpdCcsICdwcm9w ZXJ0aWVzJ10sCisgICAgICAgIH0sCisKICAgICAgICAgewogICAgICAgICAgIGlkOiAnYWR2YW5j ZWQnLCBsYWJlbDogZ2V0dGV4dCgnQWR2YW5jZWQnKSwgdHlwZTogJ2dyb3VwJywKICAgICAgICAg ICB2aXNpYmxlOiBTaG93QWR2YW5jZWRUYWIuc2hvd19hZHZhbmNlZF90YWIsCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlcy9zcWwvMTBfcGx1cy9wcm9wZXJ0aWVzLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMF9wbHVzL3Byb3BlcnRpZXMuc3FsCmlu ZGV4IGQ1MmVjMmE2My4uY2I0ZDQ3Yzk0IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVz L3RhYmxlcy9zcWwvMTBfcGx1cy9wcm9wZXJ0aWVzLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxh dGVzL3RhYmxlcy9zcWwvMTBfcGx1cy9wcm9wZXJ0aWVzLnNxbApAQCAtNCw2ICs0LDEyIEBAIFNF TEVDVCByZWwub2lkLCByZWwucmVsbmFtZSBBUyBuYW1lLCByZWwucmVsdGFibGVzcGFjZSBBUyBz cGNvaWQscmVsLnJlbGFjbCBBUyByCiAgICAgSk9JTiBwZ190YWJsZXNwYWNlIHNwIE9OIGR0Yi5k YXR0YWJsZXNwYWNlPXNwLm9pZAogICAgIFdIRVJFIGR0Yi5vaWQgPSB7eyBkaWQgfX06Om9pZCkK ICAgRU5EKSBhcyBzcGNuYW1lLAorICAoQ0FTRSByZWwucmVscmVwbGlkZW50CisgICAgICAgICAg V0hFTiAnZCcgVEhFTiAnZGVmYXVsdCcKKyAgICAgICAgICBXSEVOICduJyBUSEVOICdub3RoaW5n JworICAgICAgICAgIFdIRU4gJ2YnIFRIRU4gJ2Z1bGwnCisgICAgICAgICAgV0hFTiAnaScgVEhF TiAnaW5kZXgnCisgIEVORCkgYXMgcmVwbGljYV9pZGVudGl0eSwKICAgKHNlbGVjdCBuc3BuYW1l IEZST00gcGdfbmFtZXNwYWNlIFdIRVJFIG9pZCA9IHt7c2NpZH19OjpvaWQgKSBhcyBzY2hlbWEs CiAgIHBnX2dldF91c2VyYnlpZChyZWwucmVsb3duZXIpIEFTIHJlbG93bmVyLCByZWwucmVsaGFz b2lkcywgcmVsLnJlbGtpbmQsCiAgIChDQVNFIFdIRU4gcmVsLnJlbGtpbmQgPSAncCcgVEhFTiB0 cnVlIEVMU0UgZmFsc2UgRU5EKSBBUyBpc19wYXJ0aXRpb25lZCwKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMV9wbHVzL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3RlbXBsYXRlcy90YWJsZXMvc3FsLzExX3BsdXMvcHJvcGVydGllcy5zcWwKaW5kZXggODJm OWE0MzU4Li5mZWEzMTYyODkgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGVz L3NxbC8xMV9wbHVzL3Byb3BlcnRpZXMuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFi bGVzL3NxbC8xMV9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC00LDYgKzQsMTIgQEAgU0VMRUNUIHJl bC5vaWQsIHJlbC5yZWxuYW1lIEFTIG5hbWUsIHJlbC5yZWx0YWJsZXNwYWNlIEFTIHNwY29pZCxy ZWwucmVsYWNsIEFTIHIKICAgICBKT0lOIHBnX3RhYmxlc3BhY2Ugc3AgT04gZHRiLmRhdHRhYmxl c3BhY2U9c3Aub2lkCiAgICAgV0hFUkUgZHRiLm9pZCA9IHt7IGRpZCB9fTo6b2lkKQogICBFTkQp IGFzIHNwY25hbWUsCisgIChDQVNFIHJlbC5yZWxyZXBsaWRlbnQKKyAgICAgICAgICBXSEVOICdk JyBUSEVOICdkZWZhdWx0JworICAgICAgICAgIFdIRU4gJ24nIFRIRU4gJ25vdGhpbmcnCisgICAg ICAgICAgV0hFTiAnZicgVEhFTiAnZnVsbCcKKyAgICAgICAgICBXSEVOICdpJyBUSEVOICdpbmRl eCcKKyAgRU5EKSBhcyByZXBsaWNhX2lkZW50aXR5LAogICAoc2VsZWN0IG5zcG5hbWUgRlJPTSBw Z19uYW1lc3BhY2UgV0hFUkUgb2lkID0ge3tzY2lkfX06Om9pZCApIGFzIHNjaGVtYSwKICAgcGdf Z2V0X3VzZXJieWlkKHJlbC5yZWxvd25lcikgQVMgcmVsb3duZXIsIHJlbC5yZWxoYXNvaWRzLCBy ZWwucmVsa2luZCwKICAgKENBU0UgV0hFTiByZWwucmVsa2luZCA9ICdwJyBUSEVOIHRydWUgRUxT RSBmYWxzZSBFTkQpIEFTIGlzX3BhcnRpdGlvbmVkLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rl bXBsYXRlcy90YWJsZXMvc3FsLzExX3BsdXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0 ZXMvdGFibGVzL3NxbC8xMV9wbHVzL3VwZGF0ZS5zcWwKaW5kZXggNDhlYzAzNDk0Li41NTljMmM2 MjggMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMV9wbHVzL3Vw ZGF0ZS5zcWwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZXMvc3FsLzExX3BsdXMvdXBk YXRlLnNxbApAQCAtMjc5LDMgKzI3OSw5IEBAIEFMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRh dGEuc2NoZW1hLCBkYXRhLm5hbWUpfX0KIHslIGVuZGlmICV9CiAKIHslIGVuZGlmICV9Cit7IyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyN9Cit7IyMg Q2hhbmdlIHJlcGxpY2EgaWRlbnRpdHkgIyN9Cit7IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyN9Cit7JSBpZiBkYXRhLnJlcGxpY2FfaWRlbnRpdHkg YW5kIGRhdGEucmVwbGljYV9pZGVudGl0eSAhPSBvX2RhdGEucmVwbGljYV9pZGVudGl0eSAlfQor QUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSl9fSBSRVBM SUNBIElERU5USVRZIHt7ZGF0YS5yZXBsaWNhX2lkZW50aXR5IH19OworeyUgZW5kaWYgJX0KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMl9wbHVzL3Byb3BlcnRp ZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZXMvc3FsLzEyX3BsdXMvcHJvcGVydGll cy5zcWwKaW5kZXggNWEyZGJiNGE4Li4yYzcyNWI2YmYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90 ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMl9wbHVzL3Byb3BlcnRpZXMuc3FsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMl9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC00LDYgKzQs MTIgQEAgU0VMRUNUIHJlbC5vaWQsIHJlbC5yZWxuYW1lIEFTIG5hbWUsIHJlbC5yZWx0YWJsZXNw YWNlIEFTIHNwY29pZCxyZWwucmVsYWNsIEFTIHIKICAgICBKT0lOIHBnX3RhYmxlc3BhY2Ugc3Ag T04gZHRiLmRhdHRhYmxlc3BhY2U9c3Aub2lkCiAgICAgV0hFUkUgZHRiLm9pZCA9IHt7IGRpZCB9 fTo6b2lkKQogICBFTkQpIGFzIHNwY25hbWUsCisgIChDQVNFIHJlbC5yZWxyZXBsaWRlbnQKKyAg ICAgICAgICBXSEVOICdkJyBUSEVOICdkZWZhdWx0JworICAgICAgICAgIFdIRU4gJ24nIFRIRU4g J25vdGhpbmcnCisgICAgICAgICAgV0hFTiAnZicgVEhFTiAnZnVsbCcKKyAgICAgICAgICBXSEVO ICdpJyBUSEVOICdpbmRleCcKKyAgRU5EKSBhcyByZXBsaWNhX2lkZW50aXR5LAogICAoc2VsZWN0 IG5zcG5hbWUgRlJPTSBwZ19uYW1lc3BhY2UgV0hFUkUgb2lkID0ge3tzY2lkfX06Om9pZCApIGFz IHNjaGVtYSwKICAgcGdfZ2V0X3VzZXJieWlkKHJlbC5yZWxvd25lcikgQVMgcmVsb3duZXIsIHJl bC5yZWxraW5kLAogICAoQ0FTRSBXSEVOIHJlbC5yZWxraW5kID0gJ3AnIFRIRU4gdHJ1ZSBFTFNF IGZhbHNlIEVORCkgQVMgaXNfcGFydGl0aW9uZWQsCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVt cGxhdGVzL3RhYmxlcy9zcWwvMTJfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRl cy90YWJsZXMvc3FsLzEyX3BsdXMvdXBkYXRlLnNxbAppbmRleCAyNWUxYjYyOTUuLjFmNDdlNTZm MCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZXMvc3FsLzEyX3BsdXMvdXBk YXRlLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlcy9zcWwvMTJfcGx1cy91cGRh dGUuc3FsCkBAIC0yNzIsMyArMjcyLDkgQEAgQ09NTUVOVCBPTiBUQUJMRSB7e2Nvbm58cXRJZGVu dChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKX19CiB7JSBlbmRpZiAlfQogCiB7JSBlbmRpZiAlfQor eyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjfQor eyMjIENoYW5nZSByZXBsaWNhIGlkZW50aXR5ICMjfQoreyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjfQoreyUgaWYgZGF0YS5yZXBsaWNhX2lkZW50 aXR5IGFuZCBkYXRhLnJlcGxpY2FfaWRlbnRpdHkgIT0gb19kYXRhLnJlcGxpY2FfaWRlbnRpdHkg JX0KK0FMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpfX0g UkVQTElDQSBJREVOVElUWSB7e2RhdGEucmVwbGljYV9pZGVudGl0eSB9fTsKK3slIGVuZGlmICV9 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlcy9zcWwvZGVmYXVsdC91cGRh dGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZXMvc3FsL2RlZmF1bHQvdXBkYXRlLnNx bAppbmRleCA0ZDg0YmFiY2UuLmIwNjIzNTQ0NCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBs YXRlcy90YWJsZXMvc3FsL2RlZmF1bHQvdXBkYXRlLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxh dGVzL3RhYmxlcy9zcWwvZGVmYXVsdC91cGRhdGUuc3FsCkBAIC0yNTYsMyArMjU2LDEwIEBAIENP TU1FTlQgT04gVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSl9fQog eyUgZW5kaWYgJX0KIAogeyUgZW5kaWYgJX0KKworeyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjfQoreyMjIENoYW5nZSByZXBsaWNhIGlkZW50aXR5 ICMjfQoreyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjfQoreyUgaWYgZGF0YS5yZXBsaWNhX2lkZW50aXR5IGFuZCBkYXRhLnJlcGxpY2FfaWRlbnRp dHkgIT0gb19kYXRhLnJlcGxpY2FfaWRlbnRpdHkgJX0KK0FMVEVSIFRBQkxFIHt7Y29ubnxxdElk ZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpfX0gUkVQTElDQSBJREVOVElUWSB7e2RhdGEucmVw bGljYV9pZGVudGl0eSB9fTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3RhdGljL2pzL2RhdGFiYXNl LmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3N0YXRpYy9qcy9kYXRhYmFzZS5qcwppbmRleCA2YTk3ZGQ1YmEuLjc2YjFhMDlkOCAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3N0YXRpYy9qcy9kYXRhYmFzZS5qcworKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3RhdGljL2pzL2RhdGFiYXNlLmpzCkBAIC05NSw2ICs5 NSwxOCBAQCBkZWZpbmUoJ3BnYWRtaW4ubm9kZS5kYXRhYmFzZScsIFsKIAogICAgICAgICByZXR1 cm4gc2VydmVyLmNvbm5lY3RlZCAmJiBzZXJ2ZXIudXNlci5jYW5fY3JlYXRlX2RiOwogICAgICAg fSwKKyAgICAgIGNhbkNyZWF0ZTogZnVuY3Rpb24oaXRlbURhdGEsIGl0ZW0pIHsKKyAgICAgICAg dmFyIHRyZWVEYXRhID0gdGhpcy5nZXRUcmVlTm9kZUhpZXJhcmNoeShpdGVtKSwKKyAgICAgICAg ICBzZXJ2ZXIgPSB0cmVlRGF0YVsnc2VydmVyJ107CisKKyAgICAgICAgLy8gSWYgc2VydmVyIGlz IGxlc3MgdGhhbiAxMCB0aGVuIGRvIG5vdCBhbGxvdyAnY3JlYXRlJyBtZW51CisgICAgICAgIGlm IChzZXJ2ZXIgJiYgc2VydmVyLnZlcnNpb24gPCAxMDAwMDApCisgICAgICAgICAgcmV0dXJuIGZh bHNlOworCisgICAgICAgIC8vIGJ5IGRlZmF1bHQgd2Ugd2FudCB0byBhbGxvdyBjcmVhdGUgbWVu dQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIH0sCisKICAgICAgIGlzX25vdF9jb25uZWN0 ZWQ6IGZ1bmN0aW9uKG5vZGUpIHsKICAgICAgICAgcmV0dXJuIChub2RlICYmIG5vZGUuY29ubmVj dGVkICE9IHRydWUgJiYgbm9kZS5hbGxvd0Nvbm4gPT0gdHJ1ZSk7CiAgICAgICB9LApkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3N1YnNjcmlwdGlvbnMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy9fX2luaXRfXy5weQpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmY1ZGZkOWNkNgotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z dWJzY3JpcHRpb25zL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNzkxIEBACisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAo QykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0 d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCisiIiJJbXBsZW1lbnRzIFN1YnNjcmlwdGlvbiBOb2RlIiIiCisKK2ltcG9y dCBzaW1wbGVqc29uIGFzIGpzb24KK2Zyb20gZnVuY3Rvb2xzIGltcG9ydCB3cmFwcworCitpbXBv cnQgcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMgYXMgZGF0 YWJhc2VzCitmcm9tIGZsYXNrIGltcG9ydCByZW5kZXJfdGVtcGxhdGUsIHJlcXVlc3QsIGpzb25p ZnkKK2Zyb20gZmxhc2tfYmFiZWxleCBpbXBvcnQgZ2V0dGV4dAorZnJvbSBwZ2FkbWluLmJyb3dz ZXIuY29sbGVjdGlvbiBpbXBvcnQgQ29sbGVjdGlvbk5vZGVNb2R1bGUKK2Zyb20gcGdhZG1pbi5i cm93c2VyLnV0aWxzIGltcG9ydCBQR0NoaWxkTm9kZVZpZXcKK2Zyb20gcGdhZG1pbi51dGlscy5h amF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIGludGVybmFsX3NlcnZlcl9lcnJvciwgXAor ICAgIG1ha2VfcmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgZ29uZQorZnJvbSBwZ2FkbWluLnV0 aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgorZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFV TFRfRFJJVkVSCitmcm9tIHBnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmYubm9kZV9yZWdpc3RyeSBp bXBvcnQgU2NoZW1hRGlmZlJlZ2lzdHJ5Citmcm9tIHBnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmYu Y29tcGFyZSBpbXBvcnQgU2NoZW1hRGlmZk9iamVjdENvbXBhcmUKK2ltcG9ydCBwc3ljb3BnMgor ZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBnZXRfY29tcGxldGVfZmlsZV9wYXRoCisKKworY2xh c3MgU3Vic2NyaXB0aW9uTW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxlKToKKyAgICAiIiIKKyAg ICBjbGFzcyBTdWJzY3JpcHRpb25Nb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUpCisKKyAgICAg ICAgQSBtb2R1bGUgY2xhc3MgZm9yIFN1YnNjcmlwdGlvbiBub2RlIGRlcml2ZWQgZnJvbSBDb2xs ZWN0aW9uTm9kZU1vZHVsZS4KKworICAgIE1ldGhvZHM6CisgICAgLS0tLS0tLQorICAgICogX19p bml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFs aXplIHRoZSBTdWJzY3JpcHRpb25Nb2R1bGUgYW5kIGl0J3MKKyAgICAgIGJhc2UgbW9kdWxlLgor CisgICAgKiBnZXRfbm9kZXMoZ2lkLCBzaWQsIGRpZCkKKyAgICAgIC0gTWV0aG9kIGlzIHVzZWQg dG8gZ2VuZXJhdGUgdGhlIGJyb3dzZXIgY29sbGVjdGlvbiBub2RlLgorCisgICAgKiBub2RlX2lu b2RlKCkKKyAgICAgIC0gTWV0aG9kIGlzIG92ZXJyaWRkZW4gZnJvbSBpdHMgYmFzZSBjbGFzcyB0 byBtYWtlIHRoZSBub2RlIGFzIGxlYWYgbm9kZS4KKworICAgICogc2NyaXB0X2xvYWQoKQorICAg ICAgLSBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBzdWJzY3JpcHRpb24sIHdoZW4gYW55IG9m IHRoZSBkYXRhYmFzZSBub2RlCisgICAgICBpcyBpbml0aWFsaXplZC4KKyAgICAiIiIKKworICAg IF9OT0RFX1RZUEUgPSAnc3Vic2NyaXB0aW9uJworICAgIF9DT0xMRUNUSU9OX0xBQkVMID0gZ2V0 dGV4dCgiU3Vic2NyaXB0aW9ucyIpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoq a3dhcmdzKToKKyAgICAgICAgIiIiCisgICAgICAgIE1ldGhvZCBpcyB1c2VkIHRvIGluaXRpYWxp emUgdGhlIFN1YnNjcmlwdGlvbk1vZHVsZSBhbmQgaXQncworICAgICAgICBiYXNlIG1vZHVsZS4K KworICAgICAgICBBcmdzOgorICAgICAgICAgICAgKmFyZ3M6CisgICAgICAgICAgICAqKmt3YXJn czoKKyAgICAgICAgIiIiCisgICAgICAgIHN1cGVyKFN1YnNjcmlwdGlvbk1vZHVsZSwgc2VsZiku X19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBzZWxmLm1pbl92ZXIgPSAxMDAwMDAK KyAgICAgICAgc2VsZi5tYXhfdmVyID0gTm9uZQorCisgICAgZGVmIGdldF9ub2RlcyhzZWxmLCBn aWQsIHNpZCwgZGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIE1ldGhvZCBpcyB1c2VkIHRvIGdl bmVyYXRlIHRoZSBicm93c2VyIGNvbGxlY3Rpb24gbm9kZQorCisgICAgICAgIEFyZ3M6CisgICAg ICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQK KyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgIiIiCisgICAgICAgIHlpZWxk IHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25vZGUoZGlkKQorCisgICAgQHByb3Bl cnR5CisgICAgZGVmIG5vZGVfaW5vZGUoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBPdmVy cmlkZSB0aGlzIHByb3BlcnR5IHRvIG1ha2UgdGhlIG5vZGUgYSBsZWFmIG5vZGUuCisKKyAgICAg ICAgUmV0dXJuczogRmFsc2UgYXMgdGhpcyBpcyB0aGUgbGVhZiBub2RlCisgICAgICAgICIiIgor ICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBzY3JpcHRfbG9h ZChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIExvYWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9y IHN1YnNjcmlwdGlvbiwgd2hlbiBhbnkgb2YgdGhlIGRhdGFiYXNlIG5vZGVzCisgICAgICAgIGFy ZSBpbml0aWFsaXplZC4KKworICAgICAgICBSZXR1cm5zOiBub2RlIHR5cGUgb2YgdGhlIHNlcnZl ciBtb2R1bGUuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gZGF0YWJhc2VzLkRhdGFiYXNl TW9kdWxlLm5vZGVfdHlwZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG1vZHVsZV91c2VfdGVt cGxhdGVfamF2YXNjcmlwdChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgd2hl dGhlciBKaW5qYTIgdGVtcGxhdGUgaXMgdXNlZCBmb3IgZ2VuZXJhdGluZyB0aGUgamF2YXNjcmlw dAorICAgICAgICBtb2R1bGUuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gRmFsc2UKKwor CitibHVlcHJpbnQgPSBTdWJzY3JpcHRpb25Nb2R1bGUoX19uYW1lX18pCisKKworY2xhc3MgU3Vi c2NyaXB0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcsIFNjaGVtYURpZmZPYmplY3RDb21wYXJlKToK KyAgICAiIiIKKyAgICBjbGFzcyBTdWJzY3JpcHRpb25WaWV3KFBHQ2hpbGROb2RlVmlldykKKwor ICAgICAgICBBIHZpZXcgY2xhc3MgZm9yIFN1YnNjcmlwdGlvbiBub2RlIGRlcml2ZWQgZnJvbSBQ R0NoaWxkTm9kZVZpZXcuCisgICAgICAgIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIGFs bCB0aGUgc3R1ZmYgcmVsYXRlZCB0byB2aWV3IGxpa2UKKyAgICAgICAgdXBkYXRpbmcgc3Vic2Ny aXB0aW9uIG5vZGUsIHNob3dpbmcgcHJvcGVydGllcywgc2hvd2luZyBzcWwKKyAgICAgICAgaW4g c3FsIHBhbmUuCisKKyAgICBNZXRob2RzOgorICAgIC0tLS0tLS0KKyAgICAqIF9faW5pdF9fKCoq a3dhcmdzKQorICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSBTdWJzY3Jp cHRpb25WaWV3IGFuZCBpdCdzIGJhc2Ugdmlldy4KKworICAgICogY2hlY2tfcHJlY29uZGl0aW9u KCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3aGlj aCB3aWxsIGNoZWNrcworICAgICAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5n IHZpZXcsIGl0IHdpbGwgYWxzbyBhdHRhY2hlcworICAgICAgICBtYW5hZ2VyLGNvbm4gJiB0ZW1w bGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gc2VsZgorCisgICAgKiBsaXN0KCkKKyAgICAgIC0gVGhp cyBmdW5jdGlvbiBpcyB1c2VkIHRvIGxpc3QgYWxsIHRoZSBzdWJzY3JpcHRpb24gbm9kZXMgd2l0 aGluIHRoYXQKKyAgICAgIGNvbGxlY3Rpb24uCisKKyAgICAqIG5vZGVzKCkKKyAgICAgIC0gVGhp cyBmdW5jdGlvbiB3aWxsIHVzZWQgdG8gY3JlYXRlIGFsbCB0aGUgY2hpbGQgbm9kZSB3aXRoaW4g dGhhdAorICAgICAgY29sbGVjdGlvbi4gSGVyZSBpdCB3aWxsIGNyZWF0ZSBhbGwgdGhlIHN1YnNj cmlwdGlvbiBub2RlLgorCisgICAgKiBwcm9wZXJ0aWVzKGdpZCwgc2lkLCBkaWQsIHN1YmlkKQor ICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgc2hvdyB0aGUgcHJvcGVydGllcyBvZiB0aGUgc2Vs ZWN0ZWQKKyAgICAgIHN1YnNjcmlwdGlvbiBub2RlCisKKyAgICAqIHVwZGF0ZShnaWQsIHNpZCwg ZGlkLCBzdWJpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0aGUgZGF0YSBm b3IgdGhlIHNlbGVjdGVkIHN1YnNjcmlwdGlvbiBub2RlCisKKyAgICAqIGNyZWF0ZShnaWQsIHNp ZCwgZGlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRlIHRoZSBuZXcgc3Vic2Ny aXB0aW9uIG5vZGUKKworICAgICogZGVsZXRlKGdpZCwgc2lkLCBkaWQsIHN1YmlkKQorICAgICAg LSBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHRoZSBzZWxlY3RlZCBzdWJzY3JpcHRpb24gbm9k ZQorCisgICAgKiBtc3FsKGdpZCwgc2lkLCBkaWQsIHN1YmlkKQorICAgICAgLSBUaGlzIGZ1bmN0 aW9uIGlzIHVzZWQgdG8gcmV0dXJuIG1vZGlmaWVkIFNRTCBmb3IgdGhlIHNlbGVjdGVkCisgICAg ICBzdWJzY3JpcHRpb24gbm9kZQorCisgICAgKiBnZXRfc3FsKGRhdGEsIHN1YmlkKQorICAgICAg LSBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3FsIGZyb20gbW9kZWwgZGF0YQorCisgICAg KiBnZXRfcHVibGljYXRpb25zKGdpZCwgc2lkLCBkaWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24g cmV0dXJucyB0aGUgcHVibGljYXRpb25zIGxpc3QKKworICAgICogZ2V0X3RlbXBsYXRlcyhnaWQs IHNpZCwgZGlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHJldHVybnMgc3Vic2NyaXB0aW9uIHRl bXBsYXRlcy4KKworICAgICogc3FsKGdpZCwgc2lkLCBkaWQsIHN1YmlkKToKKyAgICAgIC0gVGhp cyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlIHNxbCB0byBzaG93IGl0IGluIHNxbCBwYW5lIGZvciB0 aGUKKyAgICAgIHNlbGVjdGVkIHN1YnNjcmlwdGlvbiBub2RlLgorCisgICAgKiBkZXBlbmRlbnRz KGdpZCwgc2lkLCBkaWQsIHN1YmlkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRl cGVuZGVudHMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNlIGZvciB0aGUKKyAgICAgIHN1YnNjcmlw dGlvbiBub2RlLgorCisgICAgKiBkZXBlbmRlbmNpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc3Vi aWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIGdldCB0aGUgZGVwZW5kZW5jaWVzIGFuZCByZXR1 cm4gYWpheCByZXNwb25zZSBmb3IgdGhlCisgICAgICBzdWJzY3JpcHRpb24gbm9kZS4KKyAgICAi IiIKKworICAgIF9OT1RfRk9VTkRfUFVCX0lORk9STUFUSU9OID0gXAorICAgICAgICBnZXR0ZXh0 KCJDb3VsZCBub3QgZmluZCB0aGUgc3Vic2NyaXB0aW9uIGluZm9ybWF0aW9uLiIpCisgICAgbm9k ZV90eXBlID0gYmx1ZXByaW50Lm5vZGVfdHlwZQorCisgICAgcGFyZW50X2lkcyA9IFsKKyAgICAg ICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdnaWQnfSwKKyAgICAgICAgeyd0eXBlJzogJ2ludCcs ICdpZCc6ICdzaWQnfSwKKyAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdkaWQnfQorICAg IF0KKyAgICBpZHMgPSBbCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnc3ViaWQnfQor ICAgIF0KKworICAgIG9wZXJhdGlvbnMgPSBkaWN0KHsKKyAgICAgICAgJ29iaic6IFsKKyAgICAg ICAgICAgIHsnZ2V0JzogJ3Byb3BlcnRpZXMnLCAnZGVsZXRlJzogJ2RlbGV0ZScsICdwdXQnOiAn dXBkYXRlJ30sCisgICAgICAgICAgICB7J2dldCc6ICdsaXN0JywgJ3Bvc3QnOiAnY3JlYXRlJywg J2RlbGV0ZSc6ICdkZWxldGUnfQorICAgICAgICBdLAorICAgICAgICAnbm9kZXMnOiBbeydnZXQn OiAnbm9kZSd9LCB7J2dldCc6ICdub2Rlcyd9XSwKKyAgICAgICAgJ3NxbCc6IFt7J2dldCc6ICdz cWwnfV0sCisgICAgICAgICdtc3FsJzogW3snZ2V0JzogJ21zcWwnfSwgeydnZXQnOiAnbXNxbCd9 XSwKKyAgICAgICAgJ3N0YXRzJzogW3snZ2V0JzogJ3N0YXRpc3RpY3MnfV0sCisgICAgICAgICdk ZXBlbmRlbmN5JzogW3snZ2V0JzogJ2RlcGVuZGVuY2llcyd9XSwKKyAgICAgICAgJ2RlcGVuZGVu dCc6IFt7J2dldCc6ICdkZXBlbmRlbnRzJ31dLAorICAgICAgICAnZ2V0X3B1YmxpY2F0aW9ucyc6 IFt7fSwgeydnZXQnOiAnZ2V0X3B1YmxpY2F0aW9ucyd9XSwKKyAgICAgICAgJ2dldF90ZW1wbGF0 ZXMnOiBbe30sIHsnZ2V0JzogJ2dldF90ZW1wbGF0ZXMnfV0sCisgICAgICAgICdkZWxldGUnOiBb eydkZWxldGUnOiAnZGVsZXRlJ30sIHsnZGVsZXRlJzogJ2RlbGV0ZSd9XQorICAgIH0pCisKKyAg ICBkZWYgX2luaXRfKHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgIiIiCisgICAgICAgIE1ldGhv ZCBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIFN1YnNjcmlwdGlvblZpZXcgYW5kIGl0cyBiYXNl IHZpZXcuCisgICAgICAgIEluaXRpYWxpemUgYWxsIHRoZSB2YXJpYWJsZXMgY3JlYXRlL3VzZWQg ZHluYW1pY2FsbHkgbGlrZSBjb25uLAorICAgICAgICB0ZW1wbGF0ZV9wYXRoLgorCisgICAgICAg IEFyZ3M6CisgICAgICAgICAgICAqKmt3YXJnczoKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYu Y29ubiA9IE5vbmUKKyAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gTm9uZQorICAgICAgICBz ZWxmLm1hbmFnZXIgPSBOb25lCisKKyAgICAgICAgc3VwZXIoU3Vic2NyaXB0aW9uVmlldywgc2Vs ZikuX19pbml0X18oKiprd2FyZ3MpCisKKyAgICBkZWYgY2hlY2tfcHJlY29uZGl0aW9uKGYpOgor ICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2ZSBhcyBhIGRlY29y YXRvciB3aGljaCB3aWxsIGNoZWNrIHRoZQorICAgICAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJl Zm9yZSBydW5uaW5nIHRoZSB2aWV3LiBJdCBhbHNvIGF0dGFjaGVzCisgICAgICAgIG1hbmFnZXIs IGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gc2VsZgorICAgICAgICAiIiIKKwor ICAgICAgICBAd3JhcHMoZikKKyAgICAgICAgZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdzKToKKyAg ICAgICAgICAgICMgSGVyZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dhcmdzIHdpbGwgaG9s ZCBnaWQsc2lkLGRpZAorICAgICAgICAgICAgc2VsZiA9IGFyZ3NbMF0KKyAgICAgICAgICAgIHNl bGYuZHJpdmVyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikKKyAgICAgICAgICAgIHNl bGYubWFuYWdlciA9IHNlbGYuZHJpdmVyLmNvbm5lY3Rpb25fbWFuYWdlcihrd2FyZ3NbJ3NpZCdd KQorICAgICAgICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3 YXJnc1snZGlkJ10pCisgICAgICAgICAgICBzZWxmLmRhdGxhc3RzeXNvaWQgPSBzZWxmLm1hbmFn ZXIuZGJfaW5mb1trd2FyZ3NbJ2RpZCddXVsKKyAgICAgICAgICAgICAgICAnZGF0bGFzdHN5c29p ZCddIGlmIHNlbGYubWFuYWdlci5kYl9pbmZvIGlzIG5vdCBOb25lIFwKKyAgICAgICAgICAgICAg ICBhbmQga3dhcmdzWydkaWQnXSBpbiBzZWxmLm1hbmFnZXIuZGJfaW5mbyBlbHNlIDAKKworICAg ICAgICAgICAgIyBTZXQgdGhlIHRlbXBsYXRlIHBhdGggZm9yIHRoZSBTUUwgc2NyaXB0cworICAg ICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gKAorICAgICAgICAgICAgICAgICJzdWJzY3Jp cHRpb25zL3NxbC8jZ3BkYiN7MH0jIi5mb3JtYXQoc2VsZi5tYW5hZ2VyLnZlcnNpb24pIGlmCisg ICAgICAgICAgICAgICAgc2VsZi5tYW5hZ2VyLnNlcnZlcl90eXBlID09ICdncGRiJyBlbHNlCisg ICAgICAgICAgICAgICAgInN1YnNjcmlwdGlvbnMvc3FsLyN7MH0jIi5mb3JtYXQoc2VsZi5tYW5h Z2VyLnZlcnNpb24pCisgICAgICAgICAgICApCisKKyAgICAgICAgICAgIHJldHVybiBmKCphcmdz LCAqKmt3YXJncykKKworICAgICAgICByZXR1cm4gd3JhcAorCisgICAgQGNoZWNrX3ByZWNvbmRp dGlvbgorICAgIGRlZiBsaXN0KHNlbGYsIGdpZCwgc2lkLCBkaWQpOgorICAgICAgICAiIiIKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGxpc3QgYWxsIHRoZSBzdWJzY3JpcHRpb24g bm9kZXMgd2l0aGluIHRoYXQKKyAgICAgICAgY29sbGVjdGlvbi4KKworICAgICAgICBBcmdzOgor ICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVy IElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICIiIgorICAgICAgICBz cWwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9QUk9QRVJUSUVTX1NRTF0p LCBkaWQ9ZGlkKQorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qo c3FsKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9u c2UoCisgICAgICAgICAgICByZXNwb25zZT1yZXNbJ3Jvd3MnXSwKKyAgICAgICAgICAgIHN0YXR1 cz0yMDAKKyAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBub2Rl cyhzZWxmLCBnaWQsIHNpZCwgZGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rp b24gaXMgdXNlZCB0byBjcmVhdGUgYWxsIHRoZSBjaGlsZCBub2RlcyB3aXRoaW4gdGhlCisgICAg ICAgIGNvbGxlY3Rpb24uIEhlcmUgaXQgd2lsbCBjcmVhdGUgYWxsIHRoZSBzdWJzY3JpcHRpb24g bm9kZXMuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElE CisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJ RAorICAgICAgICAiIiIKKyAgICAgICAgcmVzID0gW10KKyAgICAgICAgc3FsID0gcmVuZGVyX3Rl bXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ25vZGVzLnNxbCddKSwgZGlkPWRpZCkKKyAgICAgICAgc3Rh dHVzLCByZXN1bHQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KHNxbCkKKyAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9cmVzdWx0KQorCisgICAgICAgIGZvciByb3cgaW4gcmVzdWx0Wydyb3dzJ106CisgICAg ICAgICAgICByZXMuYXBwZW5kKAorICAgICAgICAgICAgICAgIHNlbGYuYmx1ZXByaW50LmdlbmVy YXRlX2Jyb3dzZXJfbm9kZSgKKyAgICAgICAgICAgICAgICAgICAgcm93WydvaWQnXSwKKyAgICAg ICAgICAgICAgICAgICAgZGlkLAorICAgICAgICAgICAgICAgICAgICByb3dbJ25hbWUnXSwKKyAg ICAgICAgICAgICAgICAgICAgaWNvbj0iaWNvbi1zdWJzY3JpcHRpb24iCisgICAgICAgICAgICAg ICAgKSkKKworICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAg ZGF0YT1yZXMsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKworICAgIEBjaGVj a19wcmVjb25kaXRpb24KKyAgICBkZWYgbm9kZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzdWJpZCk6 CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggcHJvcGVydGll cyBvZiB0aGUgc3Vic2NyaXB0aW9uIG5vZGVzLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAg ICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAg ICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAgIHN1YmlkOiBTdWJzY3JpcHRpb24g SUQKKyAgICAgICAgIiIiCisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuX1BST1BFUlRJRVNfU1FMXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdWJpZD1zdWJpZCkKKyAgICAgICAgc3RhdHVzLCByZXN1bHQgPSBzZWxmLmNvbm4uZXhlY3V0 ZV8yZGFycmF5KHNxbCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzdWx0KQorCisgICAgICAgIGZvciBy b3cgaW4gcmVzdWx0Wydyb3dzJ106CisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3Bv bnNlKAorICAgICAgICAgICAgICAgIGRhdGE9c2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nl cl9ub2RlKAorICAgICAgICAgICAgICAgICAgICByb3dbJ29pZCddLAorICAgICAgICAgICAgICAg ICAgICBkaWQsCisgICAgICAgICAgICAgICAgICAgIHJvd1snbmFtZSddLAorICAgICAgICAgICAg ICAgICAgICBpY29uPSJpY29uLXN1YnNjcmlwdGlvbiIKKyAgICAgICAgICAgICAgICApLAorICAg ICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICkKKworICAgICAgICByZXR1cm4g Z29uZShnZXR0ZXh0KCJDb3VsZCBub3QgZmluZCB0aGUgc3BlY2lmaWVkIHN1YnNjcmlwdGlvbi4i KSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgcHJvcGVydGllcyhzZWxmLCBn aWQsIHNpZCwgZGlkLCBzdWJpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9u IHdpbGwgc2hvdyB0aGUgcHJvcGVydGllcyBvZiB0aGUgc2VsZWN0ZWQgc3Vic2NyaXB0aW9uCisg ICAgICAgIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdy b3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRh YmFzZSBJRAorICAgICAgICAgICAgc3ViaWQ6IFN1YnNjcmlwdGlvbiBJRAorICAgICAgICAiIiIK KyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLl9mZXRjaF9wcm9wZXJ0aWVzKGRpZCwgc3ViaWQp CisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiByZXMKKworICAg ICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPXJlcywKKyAg ICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgZGVmIF9mZXRjaF9wcm9wZXJ0 aWVzKHNlbGYsIGRpZCwgc3ViaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlv biBmZXRjaCB0aGUgcHJvcGVydGllcyBvZiB0aGUgZXh0ZW5zaW9uLgorICAgICAgICA6cGFyYW0g ZGlkOgorICAgICAgICA6cGFyYW0gc3ViaWQ6CisgICAgICAgIDpyZXR1cm46CisgICAgICAgICIi IgorICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLCBzZWxmLl9QUk9QRVJUSUVTX1NRTF0pLAorICAgICAgICAgICAg c3ViaWQ9c3ViaWQsIGRpZD1kaWQsCisgICAgICAgICkKKyAgICAgICAgc3RhdHVzLCByZXMgPSBz ZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKworICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAg ICAgICAgICAgcmV0dXJuIEZhbHNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVz KQorCisgICAgICAgIGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgIHJldHVy biBGYWxzZSwgZ29uZShzZWxmLl9OT1RfRk9VTkRfUFVCX0lORk9STUFUSU9OKQorCisgICAgICAg IHJldHVybiBUcnVlLCByZXNbJ3Jvd3MnXVswXQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgor ICAgIGRlZiB1cGRhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc3ViaWQpOgorICAgICAgICAiIiIK KyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0aGUgZGF0YSBmb3IgdGhlIHNlbGVj dGVkIHN1YnNjcmlwdGlvbiBub2RlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6 IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAg IGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAgIHN1YmlkOiBTdWJzY3JpcHRpb24gSUQKKyAg ICAgICAgIiIiCisgICAgICAgIGRhdGEgPSByZXF1ZXN0LmZvcm0gaWYgcmVxdWVzdC5mb3JtIGVs c2UganNvbi5sb2FkcygKKyAgICAgICAgICAgIHJlcXVlc3QuZGF0YSwgZW5jb2Rpbmc9J3V0Zi04 JworICAgICAgICApCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgJ3B1YicgaW4gZGF0 YToKKyAgICAgICAgICAgICAgICBkYXRhWydwdWInXSA9IGpzb24ubG9hZHMoCisgICAgICAgICAg ICAgICAgICAgIGRhdGFbJ3B1YiddLCBlbmNvZGluZz0ndXRmLTgnCisgICAgICAgICAgICAgICAg KQorICAgICAgICAgICAgc3FsLCBuYW1lID0gc2VsZi5nZXRfc3FsKGRhdGEsIHN1YmlkKQorICAg ICAgICAgICAgIyBNb3N0IHByb2JhYmx5IHRoaXMgaXMgZHVlIHRvIGVycm9yCisgICAgICAgICAg ICBpZiBub3QgaXNpbnN0YW5jZShzcWwsIHN0cik6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNx bAorICAgICAgICAgICAgc3FsID0gc3FsLnN0cmlwKCdcbicpLnN0cmlwKCcgJykKKyAgICAgICAg ICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwpCisgICAgICAgICAg ICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICByZXR1cm4ganNvbmlmeSgKKyAgICAg ICAgICAgICAgICBub2RlPXNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgKKyAg ICAgICAgICAgICAgICAgICAgc3ViaWQsCisgICAgICAgICAgICAgICAgICAgIGRpZCwKKyAgICAg ICAgICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgaWNvbj0iaWNvbi0lcyIg JSBzZWxmLm5vZGVfdHlwZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAg ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3Nl cnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisg ICAgZGVmIGNyZWF0ZShzZWxmLCBnaWQsIHNpZCwgZGlkKToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgdGhlIHN1YnNjcmlwdGlvbiBvYmplY3QKKworICAg ICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAg IHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICIi IgorICAgICAgICByZXF1aXJlZF9hcmdzID0gWworICAgICAgICAgICAgJ25hbWUnCisgICAgICAg IF0KKworICAgICAgICBkYXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVlc3QuZm9ybSBlbHNlIGpz b24ubG9hZHMoCisgICAgICAgICAgICByZXF1ZXN0LmRhdGEsIGVuY29kaW5nPSd1dGYtOCcKKyAg ICAgICAgKQorICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICBp ZiBhcmcgbm90IGluIGRhdGE6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNw b25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTQxMCwKKyAgICAgICAgICAgICAgICAg ICAgc3VjY2Vzcz0wLAorICAgICAgICAgICAgICAgICAgICBlcnJvcm1zZz1nZXR0ZXh0KAorICAg ICAgICAgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBmaW5kIHRoZSByZXF1aXJlZCBwYXJhbWV0 ZXIgKHt9KS4iCisgICAgICAgICAgICAgICAgICAgICkuZm9ybWF0KGFyZykKKyAgICAgICAgICAg ICAgICApCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZGF0YVsncHViJ10gPSBqc29uLmxv YWRzKAorICAgICAgICAgICAgICAgIGRhdGFbJ3B1YiddLCBlbmNvZGluZz0ndXRmLTgnCisgICAg ICAgICAgICApCisKKyAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLl9DUkVBVEVfU1FMXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGF0YT1kYXRhLCBjb25uPXNlbGYuY29ubikKKyAgICAgICAgICAgIHN0YXR1cywgcmVz ID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVz OgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQorCisgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAg ICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2dldF9wb3NpdGlvbi5zcWwnXSksCisg ICAgICAgICAgICAgICAgY29ubj1zZWxmLmNvbm4sIHN1Ym5hbWU9ZGF0YVsnbmFtZSddCisgICAg ICAgICAgICApCisKKyAgICAgICAgICAgIHN0YXR1cywgcl9zZXQgPSBzZWxmLmNvbm4uZXhlY3V0 ZV9kaWN0KHNxbCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAg cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yX3NldCkKKworICAgICAgICAg ICAgcmV0dXJuIGpzb25pZnkoCisgICAgICAgICAgICAgICAgbm9kZT1zZWxmLmJsdWVwcmludC5n ZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAgICAgIHJfc2V0Wydyb3dzJ11b MF1bJ29pZCddLAorICAgICAgICAgICAgICAgICAgICBkaWQsCisgICAgICAgICAgICAgICAgICAg IHJfc2V0Wydyb3dzJ11bMF1bJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgaWNvbj0naWNv bi1zdWJzY3JpcHRpb24nCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorCisgICAg ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgor ICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc3ViaWQ9Tm9uZSk6CisgICAgICAg ICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZHJvcCB0aGUgc3Vic2NyaXB0aW9uIG9i amVjdAorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAor ICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQK KyAgICAgICAgICAgIHN1YmlkOiBTdWJzY3JpcHRpb24gSUQKKyAgICAgICAgICAgIG9ubHlfc3Fs OgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc3ViaWQgaXMgTm9uZToKKyAgICAgICAgICAgIGRh dGEgPSByZXF1ZXN0LmZvcm0gaWYgcmVxdWVzdC5mb3JtIGVsc2UganNvbi5sb2FkcygKKyAgICAg ICAgICAgICAgICByZXF1ZXN0LmRhdGEsIGVuY29kaW5nPSd1dGYtOCcKKyAgICAgICAgICAgICkK KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGRhdGEgPSB7J2lkcyc6IFtzdWJpZF19CisKKyAg ICAgICAgY2FzY2FkZSA9IHNlbGYuX2NoZWNrX2Nhc2NhZGVfb3BlcmF0aW9uKCkKKworICAgICAg ICB0cnk6CisgICAgICAgICAgICBmb3Igc3ViaWQgaW4gZGF0YVsnaWRzJ106CisgICAgICAgICAg ICAgICAgIyBHZXQgbmFtZSBmb3Igc3Vic2NyaXB0aW9uIGZyb20gc3ViaWQKKyAgICAgICAgICAg ICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAgICIvIi5qb2lu KFtzZWxmLnRlbXBsYXRlX3BhdGgsIHNlbGYuX0RFTEVURV9TUUxdKSwKKyAgICAgICAgICAgICAg ICAgICAgc3ViaWQ9c3ViaWQsIGNvbm49c2VsZi5jb25uCisgICAgICAgICAgICAgICAgKQorICAg ICAgICAgICAgICAgIHN0YXR1cywgc3VibmFtZSA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihz cWwpCisKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN1Ym5hbWUpCisKKyAgICAg ICAgICAgICAgICAjIGRyb3Agc3Vic2NyaXB0aW9uCisgICAgICAgICAgICAgICAgc3FsID0gcmVu ZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLCBzZWxmLl9ERUxFVEVfU1FMXSksCisgICAgICAgICAgICAgICAgICAgIHN1Ym5hbWU9 c3VibmFtZSwgY2FzY2FkZT1jYXNjYWRlLCBjb25uPXNlbGYuY29ubgorICAgICAgICAgICAgICAg ICkKKworICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2Nh bGFyKHNxbCkKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAg ICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBzdWNjZXNz PTEsCisgICAgICAgICAgICAgICAgaW5mbz1nZXR0ZXh0KCJTdWJzY3JpcHRpb24gZHJvcHBlZCIp CisgICAgICAgICAgICApCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAg ICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIG1zcWwoc2VsZiwgZ2lkLCBzaWQsIGRpZCwg c3ViaWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQg dG8gcmV0dXJuIG1vZGlmaWVkIFNRTCBmb3IgdGhlIHNlbGVjdGVkCisgICAgICAgIHN1YnNjcmlw dGlvbiBub2RlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91 cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJh c2UgSUQKKyAgICAgICAgICAgIHN1YmlkOiBTdWJzY3JpcHRpb24gSUQKKyAgICAgICAgIiIiCisg ICAgICAgIGRhdGEgPSB7fQorICAgICAgICBmb3IgaywgdiBpbiByZXF1ZXN0LmFyZ3MuaXRlbXMo KToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAjIGNvbW1lbnRzIHNob3VsZCBi ZSB0YWtlbiBhcyBpcyBiZWNhdXNlIGlmIHVzZXIgZW50ZXJzIGEKKyAgICAgICAgICAgICAgICAj IGpzb24gY29tbWVudCBpdCBpcyBwYXJzZWQgYnkgbG9hZHMgd2hpY2ggc2hvdWxkIG5vdCBoYXBw ZW4KKyAgICAgICAgICAgICAgICBpZiBrIGluICgnZGVzY3JpcHRpb24nLCk6CisgICAgICAgICAg ICAgICAgICAgIGRhdGFba10gPSB2CisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICAgICAgICAgZGF0YVtrXSA9IGpzb24ubG9hZHModiwgZW5jb2Rpbmc9J3V0Zi04JykKKyAgICAg ICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgICAgIGRhdGFba10gPSB2Cisg ICAgICAgIHRyeToKKyAgICAgICAgICAgIHNxbCwgbmFtZSA9IHNlbGYuZ2V0X3NxbChkYXRhLCBz dWJpZCkKKyAgICAgICAgICAgICMgTW9zdCBwcm9iYWJseSB0aGlzIGlzIGR1ZSB0byBlcnJvcgor ICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc3FsLCBzdHIpOgorICAgICAgICAgICAgICAg IHJldHVybiBzcWwKKyAgICAgICAgICAgIGlmIHNxbCA9PSAnJzoKKyAgICAgICAgICAgICAgICBz cWwgPSAiLS1tb2RpZmllZCBTUUwiCisKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVz cG9uc2UoCisgICAgICAgICAgICAgICAgZGF0YT1zcWwsCisgICAgICAgICAgICAgICAgc3RhdHVz PTIwMAorICAgICAgICAgICAgKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKwor ICAgIGRlZiBnZXRfZGV0YWlscyhzZWxmLCBkYXRhLCBvbGRfZGF0YSk6CisgICAgICAgICIiIgor ICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHJlcXVpcmVkIGRhdGEgdG8gY3JlYXRl IHN1YnNjcmlwdGlvbgorICAgICAgICA6cGFyYW0gZGF0YToKKyAgICAgICAgOnJldHVybjoKKwor ICAgICAgICAiIiIKKyAgICAgICAgcmVxdWlyZWRfYXJncyA9IFsnbmFtZSddCisKKyAgICAgICAg cmVxdWlyZWRfY29ubmVjdGlvbl9hcmdzID0gWydob3N0JywgJ3BvcnQnLCAndXNlcm5hbWUnLCAn ZGInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NlcnZpY2UnLCAncGFz c2ZpbGUnXQorICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICBp ZiBhcmcgbm90IGluIGRhdGEgYW5kIGFyZyBpbiBvbGRfZGF0YToKKyAgICAgICAgICAgICAgICBk YXRhW2FyZ10gPSBvbGRfZGF0YVthcmddCisKKyAgICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9j b25uZWN0aW9uX2FyZ3M6CisgICAgICAgICAgICBpZiBhcmcgbm90IGluIGRhdGEgYW5kIGFyZyBp biBvbGRfZGF0YToKKyAgICAgICAgICAgICAgICBkYXRhW2FyZ10gPSBvbGRfZGF0YVthcmddCisK KyAgICAgICAgcmV0dXJuIGRhdGEKKworICAgIGRlZiBnZXRfc3FsKHNlbGYsIGRhdGEsIHN1Ymlk PU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRl IHNxbCBmcm9tIG1vZGVsIGRhdGEuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGRhdGE6 IENvbnRhaW5zIHRoZSBkYXRhIG9mIHRoZSBzZWxlY3RlZCBzdWJzY3JpcHRpb24gbm9kZS4KKyAg ICAgICAgICAgIHN1YmlkOiBTdWJzY3JpcHRpb24gSUQKKyAgICAgICAgIiIiCisKKyAgICAgICAg cmVxdWlyZWRfYXJncyA9IFsnbmFtZSddCisKKyAgICAgICAgcmVxdWlyZWRfY29ubmVjdGlvbl9h cmdzID0gWydob3N0JywgJ3BvcnQnLCAndXNlcm5hbWUnLCAnZGInLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ3NlcnZpY2UnLCAncGFzc2ZpbGUnXQorCisgICAgICAgIGlm IHN1YmlkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAor ICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsIHNlbGYuX1BST1BF UlRJRVNfU1FMXSksCisgICAgICAgICAgICAgICAgc3ViaWQ9c3ViaWQKKyAgICAgICAgICAgICkK KyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwpCisg ICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICBpZiBsZW4ocmVzWydy b3dzJ10pID09IDA6CisgICAgICAgICAgICAgICAgcmV0dXJuIGdvbmUoc2VsZi5fTk9UX0ZPVU5E X1BVQl9JTkZPUk1BVElPTikKKworICAgICAgICAgICAgb2xkX2RhdGEgPSByZXNbJ3Jvd3MnXVsw XQorICAgICAgICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9hcmdzOgorICAgICAgICAgICAgICAg IGlmIGFyZyBub3QgaW4gZGF0YToKKyAgICAgICAgICAgICAgICAgICAgZGF0YVthcmddID0gb2xk X2RhdGFbYXJnXQorCisgICAgICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2Nvbm5lY3Rpb25f YXJnczoKKyAgICAgICAgICAgICAgICBpZiBhcmcgaW4gZGF0YToKKyAgICAgICAgICAgICAgICAg ICAgb2xkX2RhdGFbYXJnXSA9IGRhdGFbYXJnXQorCisgICAgICAgICAgICBzcWwgPSByZW5kZXJf dGVtcGxhdGUoCisgICAgICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwg c2VsZi5fVVBEQVRFX1NRTF0pLAorICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgb19kYXRhPW9s ZF9kYXRhLCBjb25uPXNlbGYuY29ubgorICAgICAgICAgICAgKQorICAgICAgICAgICAgcmV0dXJu IHNxbC5zdHJpcCgnXG4nKSwgZGF0YVsnbmFtZSddIGlmICduYW1lJyBpbiBkYXRhIFwKKyAgICAg ICAgICAgICAgICBlbHNlIG9sZF9kYXRhWyduYW1lJ10KKyAgICAgICAgZWxzZToKKworICAgICAg ICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX0NSRUFU RV9TUUxdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWRhdGEsIGNv bm49c2VsZi5jb25uKQorICAgICAgICAgICAgcmV0dXJuIHNxbC5zdHJpcCgnXG4nKSwgZGF0YVsn bmFtZSddCisKKyAgICBkZWYgZ2V0X2Nvbm5lY3Rpb24oc2VsZiwgY29ubmVjdGlvbl9kZXRhaWxz KToKKworICAgICAgICBwYXNzZmlsZSA9IFwKKyAgICAgICAgICAgIGNvbm5lY3Rpb25fZGV0YWls c1sncGFzc2ZpbGUnXSBpZiAncGFzc2ZpbGUnIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbiBjb25uZWN0aW9uX2RldGFpbHMgYW5kIFwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uX2RldGFpbHNb CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXNz ZmlsZSddICE9ICcnIGVsc2UgTm9uZQorCisgICAgICAgIHNlcnZpY2UgPSBcCisgICAgICAgICAg ICBjb25uZWN0aW9uX2RldGFpbHNbJ3NlcnZpY2UnXSBpZiAnc2VydmljZScgaW4gY29ubmVjdGlv bl9kZXRhaWxzIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFuZCBjb25uZWN0aW9uX2RldGFpbHNbJ3NlcnZpY2UnXVwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICE9ICcnIGVsc2UgTm9uZQorCisgICAgICAgIGNvbm4g PSBwc3ljb3BnMi5jb25uZWN0KAorICAgICAgICAgICAgaG9zdD1jb25uZWN0aW9uX2RldGFpbHNb J2hvc3QnXSBpZiBub3Qgc2VydmljZSBlbHNlIE5vbmUsCisgICAgICAgICAgICBkYXRhYmFzZT1j b25uZWN0aW9uX2RldGFpbHNbJ2RiJ10sCisgICAgICAgICAgICB1c2VyPWNvbm5lY3Rpb25fZGV0 YWlsc1sndXNlcm5hbWUnXSBpZiBub3Qgc2VydmljZSBlbHNlIE5vbmUsCisgICAgICAgICAgICBw YXNzd29yZD1jb25uZWN0aW9uX2RldGFpbHNbJ3Bhc3N3b3JkJ10gaWYgbm90IHNlcnZpY2UgZWxz ZSBOb25lLAorICAgICAgICAgICAgcG9ydD1jb25uZWN0aW9uX2RldGFpbHNbJ3BvcnQnXSBpZiBu b3Qgc2VydmljZSBlbHNlIE5vbmUsCisgICAgICAgICAgICBwYXNzZmlsZT1nZXRfY29tcGxldGVf ZmlsZV9wYXRoKHBhc3NmaWxlKSwKKyAgICAgICAgICAgIHNlcnZpY2U9c2VydmljZQorICAgICAg ICApCisgICAgICAgICMgY3JlYXRlIGEgY3Vyc29yCisgICAgICAgIGN1ciA9IGNvbm4uY3Vyc29y KCkKKyAgICAgICAgY3VyLmV4ZWN1dGUoJ1NFTEVDVCBwdWJuYW1lIGZyb20gcGdfcHVibGljYXRp b24nKQorCisgICAgICAgIHB1YmxpY2F0aW9ucyA9IGN1ci5mZXRjaGFsbCgpCisgICAgICAgICMg Q2xvc2UgdGhlIGNvbm5lY3Rpb24KKyAgICAgICAgY29ubi5jbG9zZSgpCisKKyAgICAgICAgcmV0 dXJuIHB1YmxpY2F0aW9ucworCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBnZXRf cHVibGljYXRpb25zKHNlbGYsIGdpZCwgc2lkLCBkaWQsICphcmdzLCAqKmt3YXJncyk6CisgICAg ICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHB1YmxpY2F0aW9uIGxp c3QKKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAg ICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisg ICAgICAgICIiIgorCisgICAgICAgIHVybF9wYXJhbXMgPSBOb25lCisgICAgICAgIGlmIHJlcXVl c3QuYXJnczoKKyAgICAgICAgICAgIHVybF9wYXJhbXMgPSB7azogdiBmb3IgaywgdiBpbiByZXF1 ZXN0LmFyZ3MuaXRlbXMoKX0KKworICAgICAgICBpZiAnb2lkJyBpbiB1cmxfcGFyYW1zOgorICAg ICAgICAgICAgc3RhdHVzLCBwYXJhbXMgPSBzZWxmLl9mZXRjaF9wcm9wZXJ0aWVzKGRpZCwgdXJs X3BhcmFtc1snb2lkJ10pCisgICAgICAgICAgICBwYXJhbXNbJ3Bhc3N3b3JkJ10gPSB1cmxfcGFy YW1zWydwYXNzd29yZCddCisgICAgICAgICAgICB1cmxfcGFyYW1zID0gcGFyYW1zCisKKyAgICAg ICAgcmVzID0gc2VsZi5nZXRfY29ubmVjdGlvbih1cmxfcGFyYW1zKQorCisgICAgICAgIHJlc3Vs dCA9IFtdCisgICAgICAgIGZvciBwdWIgaW4gcmVzOgorICAgICAgICAgICAgcmVzdWx0LmFwcGVu ZCh7CisgICAgICAgICAgICAgICAgInZhbHVlIjogcHViWzBdLAorICAgICAgICAgICAgICAgICJs YWJlbCI6IHB1YlswXQorICAgICAgICAgICAgfSkKKworICAgICAgICByZXR1cm4gbWFrZV9qc29u X3Jlc3BvbnNlKAorICAgICAgICAgICAgZGF0YT1yZXN1bHQsCisgICAgICAgICAgICBzdGF0dXM9 MjAwCisgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgc3FsKHNl bGYsIGdpZCwgc2lkLCBkaWQsIHN1YmlkLCBqc29uX3Jlc3A9VHJ1ZSk6CisgICAgICAgICIiIgor ICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3FsIHRvIHNob3cgaW4gdGhlIHNx bCBwYW5lIGZvciB0aGUKKyAgICAgICAgc2VsZWN0ZWQgcHVibGljYXRpb24gbm9kZS4KKworICAg ICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAg IHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAg ICBzdWJpZDogUHVibGljYXRpb24gSUQKKyAgICAgICAgICAgIGpzb25fcmVzcDoKKyAgICAgICAg IiIiCisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICIvIi5qb2lu KFtzZWxmLnRlbXBsYXRlX3BhdGgsIHNlbGYuX1BST1BFUlRJRVNfU1FMXSksCisgICAgICAgICAg ICBzdWJpZD1zdWJpZAorICAgICAgICApCisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25u LmV4ZWN1dGVfZGljdChzcWwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICBpZiBs ZW4ocmVzWydyb3dzJ10pID09IDA6CisgICAgICAgICAgICByZXR1cm4gZ29uZShzZWxmLl9OT1Rf Rk9VTkRfUFVCX0lORk9STUFUSU9OKQorCisgICAgICAgICMgTWFraW5nIGNvcHkgb2Ygb3V0cHV0 IGZvciBmdXR1cmUgdXNlCisgICAgICAgIG9sZF9kYXRhID0gZGljdChyZXNbJ3Jvd3MnXVswXSkK KyAgICAgICAgaWYgb2xkX2RhdGFbJ3Nsb3RfbmFtZSddIGlzIE5vbmUgYW5kICdjcmVhdGVfc2xv dCcgbm90IGluIG9sZF9kYXRhOgorICAgICAgICAgICAgb2xkX2RhdGFbJ2NyZWF0ZV9zbG90J10g PSBGYWxzZQorCisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuX0NSRUFURV9TUUxdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9b2xk X2RhdGEsIGNvbm49c2VsZi5jb25uKQorICAgICAgICBzcWwgKz0gIlxuXG4iCisKKyAgICAgICAg c3FsX2hlYWRlciA9ICItLSBTdWJzY3JpcHRpb24gOiB7fTsiLmZvcm1hdChvbGRfZGF0YVsnbmFt ZSddKQorICAgICAgICBzcWxfaGVhZGVyICs9ICJcbiIKKworICAgICAgICBzcWxfaGVhZGVyICs9 ICItLSBEUk9QIFNVQlNDUklQVElPTiB7fTsiLmZvcm1hdChvbGRfZGF0YVsnbmFtZSddKQorCisg ICAgICAgIHNxbF9oZWFkZXIgKz0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgIi8iLmpv aW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgc2VsZi5fREVMRVRFX1NRTF0pLAorICAgICAgICAgICAg c25hbWU9b2xkX2RhdGFbJ25hbWUnXSwgKQorCisgICAgICAgIHNxbF9oZWFkZXIgKz0gIlxuIgor CisgICAgICAgIHNxbCA9IHNxbF9oZWFkZXIgKyBzcWwKKworICAgICAgICBpZiBub3QganNvbl9y ZXNwOgorICAgICAgICAgICAgcmV0dXJuIHNxbAorCisgICAgICAgIHJldHVybiBhamF4X3Jlc3Bv bnNlKHJlc3BvbnNlPXNxbCkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVw ZW5kZW50cyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzdWJpZCk6CisgICAgICAgICIiIgorICAgICAg ICBUaGlzIGZ1bmN0aW9uIGdldHMgdGhlIGRlcGVuZGVudHMgYW5kIHJldHVybnMgYW4gYWpheCBy ZXNwb25zZQorICAgICAgICBmb3IgdGhlIHN1YnNjcmlwdGlvbiBub2RlLgorCisgICAgICAgIEFy Z3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBT ZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAgIHN1Ymlk OiBTdWJzY3JpcHRpb24gSUQKKyAgICAgICAgIiIiCisgICAgICAgIGRlcGVuZGVudHNfcmVzdWx0 ID0gc2VsZi5nZXRfZGVwZW5kZW50cyhzZWxmLmNvbm4sIHN1YmlkKQorICAgICAgICByZXR1cm4g YWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPWRlcGVuZGVudHNfcmVzdWx0LAor ICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0 aW9uCisgICAgZGVmIGRlcGVuZGVuY2llcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzdWJpZCk6Cisg ICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldHMgdGhlIGRlcGVuZGVuY2llcyBh bmQgcmV0dXJucyBhbiBhamF4IHJlc3BvbnNlCisgICAgICAgIGZvciB0aGUgc3Vic2NyaXB0aW9u IG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElE CisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJ RAorICAgICAgICAgICAgc3ViaWQ6IFN1YnNjcmlwdGlvbiBJRAorICAgICAgICAiIiIKKyAgICAg ICAgZGVwZW5kZW5jaWVzX3Jlc3VsdCA9IHNlbGYuZ2V0X2RlcGVuZGVuY2llcyhzZWxmLmNvbm4s IHN1YmlkKQorICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3Bv bnNlPWRlcGVuZGVuY2llc19yZXN1bHQsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAg ICkKKworCitTdWJzY3JpcHRpb25WaWV3LnJlZ2lzdGVyX25vZGVfdmlldyhibHVlcHJpbnQpCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc3Vic2NyaXB0aW9ucy9zdGF0aWMvaW1nL2NvbGwtcHVibGljYXRpb24uc3ZnIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlw dGlvbnMvc3RhdGljL2ltZy9jb2xsLXB1YmxpY2F0aW9uLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAuLmNjOTQ2OTE5YgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25z L3N0YXRpYy9pbWcvY29sbC1wdWJsaWNhdGlvbi5zdmcKQEAgLTAsMCArMSwyMiBAQAorPD94bWwg dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJ bGx1c3RyYXRvciAyNC4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAw IEJ1aWxkIDApICAtLT4KKzxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0 dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcv MTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCisJIHZpZXdCb3g9IjAgMCAxNiAxNiIgc3R5bGU9 ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTYgMTY7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4K KzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisJLnN0MHtmaWxsOiNEREUxRjA7c3Ryb2tlOiM0QjVG QUQ7c3Ryb2tlLXdpZHRoOjAuNjU7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2lu OnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO30KKwkuc3Qxe2ZpbGw6IzRCNUZBRDt9CisJLnN0 MntmaWxsOm5vbmU7c3Ryb2tlOiM0QjVGQUQ7c3Ryb2tlLXdpZHRoOjAuNjU7c3Ryb2tlLWxpbmVj YXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO30KKzwv c3R5bGU+Cis8Zz4KKwk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTAsMTNjLTIsMi01LjEsMi03LjEs MHMtMi01LjEsMC03LjFDNC41LDcuNSw4LjUsMTEuNSwxMCwxM3oiLz4KKzwvZz4KKzxnPgorCTxw YXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMS44LDExLjNjLTIsMi01LjEsMi03LjEsMHMtMi01LjEsMC03 LjFDNi4yLDUuNywxMC4yLDkuOCwxMS44LDExLjN6Ii8+Cis8L2c+Cis8cGF0aCBjbGFzcz0ic3Qx IiBkPSJNOC43LDcuOGwwLjgtMC43YzAuMSwwLjEsMC4zLDAuMSwwLjQsMC4xYzAuNiwwLDEtMC40 LDEtMXMtMC40LTEtMS0xcy0xLDAuNC0xLDFjMCwwLjEsMCwwLjMsMC4xLDAuNEw4LjIsNy4zCisJ TDguNyw3Ljh6Ii8+Cis8Zz4KKwk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTAuNSwxLjZjMi4yLDAs NCwxLjgsNCw0Ii8+CisJPHBhdGggY2xhc3M9InN0MiIgZD0iTTEwLjYsMy42YzEuMSwwLDIsMC45 LDIsMiIvPgorPC9nPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy9zdGF0aWMvaW1nL2Nv bGwtc3Vic2NyaXB0aW9uLnN2ZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3N0YXRpYy9pbWcvY29sbC1zdWJzY3JpcHRp b24uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uZDE0YWRmZDM5Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvc3RhdGljL2ltZy9jb2xsLXN1YnNjcmlwdGlvbi5z dmcKQEAgLTAsMCArMSwzMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi Pz4KKzwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNC4wLjEsIFNWRyBFeHBvcnQg UGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4KKzxzdmcgdmVyc2lvbj0i MS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxu czp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCisJ IHZpZXdCb3g9IjAgMCAxNiAxNiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTYg MTY7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisJLnN0 MHtmaWxsOiNGQkVFREY7c3Ryb2tlOiNFNThFMjY7c3Ryb2tlLXdpZHRoOjAuNjU7c3Ryb2tlLWxp bmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO30K Kwkuc3Qxe2ZpbGw6I0U1OEUyNjt9CisJLnN0MntmaWxsOm5vbmU7c3Ryb2tlOiNFNThFMjY7c3Ry b2tlLXdpZHRoOjAuNjU7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5k O3N0cm9rZS1taXRlcmxpbWl0OjEwO30KKzwvc3R5bGU+Cis8Zz4KKwk8Zz4KKwkJPGc+CisJCQk8 cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTIuOSw1LjdjMiwyLDIsNS4xLDAsNy4xcy01LjEsMi03LjEs MEM3LjMsMTEuMywxMS40LDcuMiwxMi45LDUuN3oiLz4KKwkJPC9nPgorCTwvZz4KKwk8Zz4KKwkJ PGc+CisJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTEuNCw0LjJjMiwyLDIsNS4xLDAsNy4xcy01 LjEsMi03LjEsMEM1LjgsOS44LDkuOSw1LjcsMTEuNCw0LjJ6Ii8+CisJCTwvZz4KKwkJPGc+CisJ CQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNNy44LDcuM0w3LjEsNi42YzAuMS0wLjEsMC4xLTAuMyww LjEtMC40YzAtMC42LTAuNC0xLTEtMXMtMSwwLjQtMSwxczAuNCwxLDEsMWMwLjEsMCwwLjMsMCww LjQtMC4xCisJCQkJbDAuNywwLjciLz4KKwkJCTxnPgorCQkJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9 Ik01LjYsMS43YzAsMi4yLTEuOCw0LTQsNCIvPgorCQkJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0z LjcsMS44YzAsMS4xLTAuOSwyLTIsMiIvPgorCQkJPC9nPgorCQk8L2c+CisJPC9nPgorPC9nPgor PC9zdmc+CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy9zdGF0aWMvaW1nL3B1YmxpY2F0aW9uLnN2ZyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJz Y3JpcHRpb25zL3N0YXRpYy9pbWcvcHVibGljYXRpb24uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMC4uM2I1ODJjZjUxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMv c3RhdGljL2ltZy9wdWJsaWNhdGlvbi5zdmcKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lv bj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3Ry YXRvciAyMy4wLjYsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxk IDApICAtLT4KKzxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93 d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94 bGluayIgeD0iMHB4IiB5PSIwcHgiCisJIHZpZXdCb3g9IjAgMCAxNiAxNiIgc3R5bGU9ImVuYWJs ZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTYgMTY7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KKzxzdHls ZSB0eXBlPSJ0ZXh0L2NzcyI+CisJLnN0MHtmaWxsOiNEREUxRjA7c3Ryb2tlOiM0QjVGQUQ7c3Ry b2tlLXdpZHRoOjAuNjU7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5k O3N0cm9rZS1taXRlcmxpbWl0OjEwO30KKwkuc3Qxe2ZpbGw6IzRCNUZBRDt9CisJLnN0MntmaWxs Om5vbmU7c3Ryb2tlOiM0QjVGQUQ7c3Ryb2tlLXdpZHRoOjAuNjU7c3Ryb2tlLWxpbmVjYXA6cm91 bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO30KKzwvc3R5bGU+ Cis8Zz4KKwk8Zz4KKwkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTExLDEyYy0yLDItNS4xLDItNy4x LDBzLTItNS4xLDAtNy4xQzUuNCw2LjQsOS41LDEwLjUsMTEsMTJ6Ii8+CisJPC9nPgorCTxnPgor CQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNNy45LDguNmwwLjctMC43QzguNyw4LDguOSw4LDksOGMw LjYsMCwxLTAuNCwxLTFTOS42LDYsOSw2UzgsNi40LDgsN2MwLDAuMSwwLDAuMywwLjEsMC40TDcu NCw4LjEiLz4KKwkJPGc+CisJCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNOS42LDIuNWMyLjIsMCw0 LDEuOCw0LDQiLz4KKwkJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik05LjcsNC40YzEuMSwwLDIsMC45 LDIsMiIvPgorCQk8L2c+CisJPC9nPgorPC9nPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9u cy9zdGF0aWMvaW1nL3N1YnNjcmlwdGlvbi5zdmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy9zdGF0aWMvaW1nL3N1YnNj cmlwdGlvbi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi42M2ExNTNj NmQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy9zdGF0aWMvaW1nL3N1YnNjcmlwdGlvbi5z dmcKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi Pz4KKzwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjYsIFNWRyBFeHBvcnQg UGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4KKzxzdmcgdmVyc2lvbj0i MS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxu czp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCisJ IHZpZXdCb3g9IjAgMCAxNiAxNiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTYg MTY7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisJLnN0 MHtmaWxsOiNGQkVFREY7c3Ryb2tlOiNFNThFMjY7c3Ryb2tlLXdpZHRoOjAuNjU7c3Ryb2tlLWxp bmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO30K Kwkuc3Qxe2ZpbGw6I0U1OEUyNjt9CisJLnN0MntmaWxsOm5vbmU7c3Ryb2tlOiNFNThFMjY7c3Ry b2tlLXdpZHRoOjAuNjU7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5k O3N0cm9rZS1taXRlcmxpbWl0OjEwO30KKzwvc3R5bGU+Cis8Zz4KKwk8Zz4KKwkJPHBhdGggY2xh c3M9InN0MCIgZD0iTTEyLjIsNWMyLDIsMiw1LjEsMCw3LjFzLTUuMSwyLTcuMSwwQzYuNiwxMC42 LDEwLjcsNi41LDEyLjIsNXoiLz4KKwk8L2c+CisJPGc+CisJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9 Ik04LjYsOC4xTDcuOSw3LjRDOCw3LjMsOCw3LjEsOCw3YzAtMC42LTAuNC0xLTEtMVM2LDYuNCw2 LDdzMC40LDEsMSwxYzAuMSwwLDAuMywwLDAuNC0wLjFsMC43LDAuNyIvPgorCQk8Zz4KKwkJCTxw YXRoIGNsYXNzPSJzdDIiIGQ9Ik02LjQsMi41YzAsMi4yLTEuOCw0LTQsNCIvPgorCQkJPHBhdGgg Y2xhc3M9InN0MiIgZD0iTTQuNSwyLjZjMCwxLjEtMC45LDItMiwyIi8+CisJCTwvZz4KKwk8L2c+ Cis8L2c+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3N0YXRpYy9qcy9zdWJzY3JpcHRp b24uanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc3Vic2NyaXB0aW9ucy9zdGF0aWMvanMvc3Vic2NyaXB0aW9uLmpzCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMDEzZGY0ZjY1Ci0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlw dGlvbnMvc3RhdGljL2pzL3N1YnNjcmlwdGlvbi5qcwpAQCAtMCwwICsxLDQwNyBAQAorLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwor Ly8KKy8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKy8vCisvLyBDb3B5cmlnaHQgKEMp IDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisvLyBUaGlzIHNvZnR3 YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKy8vCisvLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwor CitkZWZpbmUoJ3BnYWRtaW4ubm9kZS5zdWJzY3JpcHRpb24nLCBbCisgICdzb3VyY2VzL2dldHRl eHQnLCAnc291cmNlcy91cmxfZm9yJywgJ2pxdWVyeScsICd1bmRlcnNjb3JlJywKKyAgJ3NvdXJj ZXMvcGdhZG1pbicsICdwZ2FkbWluLmJyb3dzZXInLCAncGdhZG1pbi5iYWNrZm9ybScsCisgICdz b3VyY2VzL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL21vZGVsX3ZhbGlkYXRpb24nLCAn cGdhZG1pbi5hbGVydGlmeWpzJywgJ3BnYWRtaW4uYnJvd3Nlci5jb2xsZWN0aW9uJywKK10sIGZ1 bmN0aW9uKGdldHRleHQsIHVybF9mb3IsICQsIF8sIHBnQWRtaW4sIHBnQnJvd3NlciwgQmFja2Zv cm0sIG1vZGVsVmFsaWRhdGlvbiwgQWxlcnRpZnkpIHsKKworICAvLyBFeHRlbmQgdGhlIGJyb3dz ZXIncyBjb2xsZWN0aW9uIGNsYXNzIGZvciBzdWJzY3JpcHRpb25zIGNvbGxlY3Rpb24KKyAgaWYg KCFwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwtc3Vic2NyaXB0aW9uJ10pIHsKKyAgICBwZ0Jyb3dzZXIu Tm9kZXNbJ2NvbGwtc3Vic2NyaXB0aW9uJ10gPQorICAgICAgcGdCcm93c2VyLkNvbGxlY3Rpb24u ZXh0ZW5kKHsKKyAgICAgICAgbm9kZTogJ3N1YnNjcmlwdGlvbicsCisgICAgICAgIGxhYmVsOiBn ZXR0ZXh0KCdTdWJzY3JpcHRpb25zJyksCisgICAgICAgIHR5cGU6ICdjb2xsLXN1YnNjcmlwdGlv bicsCisgICAgICAgIGNvbHVtbnM6IFsnbmFtZScsICdzdWJvd25lcicsICdwdWInLCAnZW5hYmxl ZCddLAorICAgICAgfSk7CisgIH0KKworICAvLyBFeHRlbmQgdGhlIGJyb3dzZXIncyBub2RlIGNs YXNzIGZvciBzdWJzY3JpcHRpb24gbm9kZQorICBpZiAoIXBnQnJvd3Nlci5Ob2Rlc1snc3Vic2Ny aXB0aW9uJ10pIHsKKyAgICBwZ0Jyb3dzZXIuTm9kZXNbJ3N1YnNjcmlwdGlvbiddID0gcGdCcm93 c2VyLk5vZGUuZXh0ZW5kKHsKKyAgICAgIHBhcmVudF90eXBlOiAnZGF0YWJhc2UnLAorICAgICAg dHlwZTogJ3N1YnNjcmlwdGlvbicsCisgICAgICBzcWxBbHRlckhlbHA6ICdzcWwtYWx0ZXJzdWJz Y3JpcHRpb24uaHRtbCcsCisgICAgICBzcWxDcmVhdGVIZWxwOiAnc3FsLWNyZWF0ZXN1YnNjcmlw dGlvbi5odG1sJywKKyAgICAgIGRpYWxvZ0hlbHA6IHVybF9mb3IoJ2hlbHAuc3RhdGljJywgeydm aWxlbmFtZSc6ICdzdWJzY3JpcHRpb25fZGlhbG9nLmh0bWwnfSksCisgICAgICBsYWJlbDogZ2V0 dGV4dCgnU3Vic2NyaXB0aW9uJyksCisgICAgICBoYXNTUUw6ICB0cnVlLAorICAgICAgY2FuRHJv cDogdHJ1ZSwKKyAgICAgIGNhbkRyb3BDYXNjYWRlOiB0cnVlLAorICAgICAgaGFzRGVwZW5kczog dHJ1ZSwKKyAgICAgIHdpZHRoOiAnNTEwcHgnLAorICAgICAgSW5pdDogZnVuY3Rpb24oKSB7CisK KyAgICAgICAgLy8gQXZvaWQgbXVsdGlwbGUgcmVnaXN0cmF0aW9uIG9mIG1lbnVzCisgICAgICAg IGlmICh0aGlzLmluaXRpYWxpemVkKQorICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlz LmluaXRpYWxpemVkID0gdHJ1ZTsKKworCisgICAgICAgIC8vIEFkZCBjb250ZXh0IG1lbnVzIGZv ciBzdWJzY3JpcHRpb24KKyAgICAgICAgcGdCcm93c2VyLmFkZF9tZW51cyhbeworICAgICAgICAg IG5hbWU6ICdjcmVhdGVfc3Vic2NyaXB0aW9uX29uX2RhdGFiYXNlJywgbm9kZTogJ2RhdGFiYXNl JywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQn XSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTog J2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJlbDogZ2V0dGV4dCgnU3Vic2NyaXB0aW9uLi4uJyks CisgICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLXN1YnNjcmlwdGlvbicsIGRhdGE6IHth Y3Rpb246ICdjcmVhdGUnfSwKKyAgICAgICAgICBlbmFibGU6IHBnQnJvd3Nlci5Ob2Rlc1snZGF0 YWJhc2UnXS5jYW5DcmVhdGUsCisgICAgICAgIH0seworICAgICAgICAgIG5hbWU6ICdjcmVhdGVf c3Vic2NyaXB0aW9uX29uX2NvbGwnLCBub2RlOiAnY29sbC1zdWJzY3JpcHRpb24nLCBtb2R1bGU6 IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFj azogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywg cHJpb3JpdHk6IDQsIGxhYmVsOiBnZXR0ZXh0KCdTdWJzY3JpcHRpb24uLi4nKSwKKyAgICAgICAg ICBpY29uOiAnd2NUYWJJY29uIGljb24tc3Vic2NyaXB0aW9uJywgZGF0YToge2FjdGlvbjogJ2Ny ZWF0ZSd9LAorICAgICAgICAgIGVuYWJsZTogJ2NhbkNyZWF0ZScsCisgICAgICAgIH0seworICAg ICAgICAgIG5hbWU6ICdjcmVhdGVfc3Vic2NyaXB0aW9uJywgbm9kZTogJ3N1YnNjcmlwdGlvbics IG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10s IGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdj cmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6IGdldHRleHQoJ1N1YnNjcmlwdGlvbi4uLicpLAor ICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1zdWJzY3JpcHRpb24nLCBkYXRhOiB7YWN0 aW9uOiAnY3JlYXRlJ30sCisgICAgICAgICAgZW5hYmxlOiAnY2FuQ3JlYXRlJywKKyAgICAgICAg fV0pOworICAgICAgfSwKKyAgICAgIC8vIERlZmluZSB0aGUgbW9kZWwgZm9yIHN1YnNjcmlwdGlv biBub2RlCisgICAgICBtb2RlbDogcGdCcm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICAg ICAgaWRBdHRyaWJ1dGU6ICdvaWQnLAorICAgICAgICBkZWZhdWx0czogeworICAgICAgICAgIG5h bWU6IHVuZGVmaW5lZCwKKyAgICAgICAgICBzdWJvd25lcjogdW5kZWZpbmVkLAorICAgICAgICAg IHB1YnRhYmxlOiB1bmRlZmluZWQsCisgICAgICAgICAgcHViOltdLAorICAgICAgICAgIGVuYWJs ZWQ6dHJ1ZSwKKyAgICAgICAgICBjcmVhdGVfc2xvdDogdHJ1ZSwKKyAgICAgICAgICBjb3B5X2Rh dGE6dHJ1ZSwKKyAgICAgICAgICBjb25uZWN0OnRydWUsCisgICAgICAgICAgc3luYzonb2ZmJywK KyAgICAgICAgfSwKKworICAgICAgICAvLyBEZWZhdWx0IHZhbHVlcyEKKyAgICAgICAgaW5pdGlh bGl6ZTogZnVuY3Rpb24oYXR0cnMsIGFyZ3MpIHsKKyAgICAgICAgICB2YXIgaXNOZXcgPSAoXy5z aXplKGF0dHJzKSA9PT0gMCk7CisgICAgICAgICAgaWYgKGlzTmV3KSB7CisgICAgICAgICAgICB2 YXIgdXNlckluZm8gPSBwZ0Jyb3dzZXIuc2VydmVySW5mb1thcmdzLm5vZGVfaW5mby5zZXJ2ZXIu X2lkXS51c2VyOworCisgICAgICAgICAgICB0aGlzLnNldCh7J3N1Ym93bmVyJzogdXNlckluZm8u bmFtZX0sIHtzaWxlbnQ6IHRydWV9KTsKKyAgICAgICAgICB9CisgICAgICAgICAgcGdCcm93c2Vy Lk5vZGUuTW9kZWwucHJvdG90eXBlLmluaXRpYWxpemUuYXBwbHkodGhpcywgYXJndW1lbnRzKTsK KyAgICAgICAgfSwKKworICAgICAgICAvLyBEZWZpbmUgdGhlIHNjaGVtYSBmb3IgdGhlIHN1YnNj cmlwdGlvbiBub2RlCisgICAgICAgIHNjaGVtYTogW3sKKyAgICAgICAgICBpZDogJ25hbWUnLCBs YWJlbDogZ2V0dGV4dCgnTmFtZScpLCB0eXBlOiAndGV4dCcsCisgICAgICAgICAgbW9kZTogWydw cm9wZXJ0aWVzJywgJ2NyZWF0ZScsICdlZGl0J10sCisgICAgICAgICAgdmlzaWJsZTogZnVuY3Rp b24oKSB7CisgICAgICAgICAgICBpZighXy5pc1VuZGVmaW5lZCh0aGlzLm5vZGVfaW5mbykgJiYg IV8uaXNVbmRlZmluZWQodGhpcy5ub2RlX2luZm8uc2VydmVyKQorICAgICAgICAgICAgICAmJiAh Xy5pc1VuZGVmaW5lZCh0aGlzLm5vZGVfaW5mby5zZXJ2ZXIudmVyc2lvbikgJiYKKyAgICAgICAg ICAgICAgICB0aGlzLm5vZGVfaW5mby5zZXJ2ZXIudmVyc2lvbiA+PSAxMDAwMDApIHsKKyAgICAg ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4g ZmFsc2U7CisgICAgICAgICAgfSwKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdvaWQnLCBs YWJlbDogZ2V0dGV4dCgnT0lEJyksIGNlbGw6ICdzdHJpbmcnLCBtb2RlOiBbJ3Byb3BlcnRpZXMn XSwKKyAgICAgICAgICB0eXBlOiAndGV4dCcsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg ICAgICBpZDogJ3N1Ym93bmVyJywgbGFiZWw6IGdldHRleHQoJ093bmVyJyksIHR5cGU6ICd0ZXh0 JywKKyAgICAgICAgICBjb250cm9sOiBCYWNrZm9ybS5Ob2RlTGlzdEJ5TmFtZUNvbnRyb2wsIG5v ZGU6ICdyb2xlJywKKyAgICAgICAgICBtb2RlOiBbJ2VkaXQnLCAncHJvcGVydGllcycsICdjcmVh dGUnXSwgc2VsZWN0MjogeyBhbGxvd0NsZWFyOiBmYWxzZX0sCisgICAgICAgIH0sCisgICAgICAg IHsKKyAgICAgICAgICBpZDogJ2hvc3QnLCBsYWJlbDogZ2V0dGV4dCgnSG9zdCBuYW1lL2FkZHJl c3MnKSwgdHlwZTogJ3RleHQnLCBncm91cDogZ2V0dGV4dCgnQ29ubmVjdGlvbicpLAorICAgICAg ICAgIG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0JywgJ2NyZWF0ZSddLGRpc2FibGVkOiAnaXNT aGFyZWQnLAorICAgICAgICAgIGNvbnRyb2w6IEJhY2tmb3JtLklucHV0Q29udHJvbC5leHRlbmQo eworICAgICAgICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBCYWNr Zm9ybS5JbnB1dENvbnRyb2wucHJvdG90eXBlLm9uQ2hhbmdlLmFwcGx5KHRoaXMsIGFyZ3VtZW50 cyk7CisgICAgICAgICAgICAgIGlmICghdGhpcy5tb2RlbCB8fCAhdGhpcy5tb2RlbC5jaGFuZ2Vk KSB7CisgICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5pbmZvcm1fdGV4dCA9IHVuZGVmaW5lZDsK KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0s CisgICAgICAgICAgfSksCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAncG9ydCcsIGxhYmVs OiBnZXR0ZXh0KCdQb3J0JyksIHR5cGU6ICdpbnQnLCBncm91cDogZ2V0dGV4dCgnQ29ubmVjdGlv bicpLAorICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0JywgJ2NyZWF0ZSddLCBt aW46IDEsIG1heDogNjU1MzUsIGRpc2FibGVkOiAnaXNTaGFyZWQnLAorICAgICAgICAgIGNvbnRy b2w6IEJhY2tmb3JtLklucHV0Q29udHJvbC5leHRlbmQoeworICAgICAgICAgICAgb25DaGFuZ2U6 IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBCYWNrZm9ybS5JbnB1dENvbnRyb2wucHJvdG90 eXBlLm9uQ2hhbmdlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgICAgICAgICAgICAgIGlmICgh dGhpcy5tb2RlbCB8fCAhdGhpcy5tb2RlbC5jaGFuZ2VkKSB7CisgICAgICAgICAgICAgICAgdGhp cy5tb2RlbC5pbmZvcm1fdGV4dCA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAgICAgICByZXR1cm47 CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgfSksCisgICAgICAg IH0seworICAgICAgICAgIGlkOiAndXNlcm5hbWUnLCBsYWJlbDogZ2V0dGV4dCgnVXNlcm5hbWUn KSwgdHlwZTogJ3RleHQnLCBncm91cDogZ2V0dGV4dCgnQ29ubmVjdGlvbicpLAorICAgICAgICAg IG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICAgIGNvbnRy b2w6IEJhY2tmb3JtLklucHV0Q29udHJvbC5leHRlbmQoeworICAgICAgICAgICAgb25DaGFuZ2U6 IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBCYWNrZm9ybS5JbnB1dENvbnRyb2wucHJvdG90 eXBlLm9uQ2hhbmdlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgICAgICAgICAgICAgIGlmICgh dGhpcy5tb2RlbCB8fCAhdGhpcy5tb2RlbC5jaGFuZ2VkKSB7CisgICAgICAgICAgICAgICAgdGhp cy5tb2RlbC5pbmZvcm1fdGV4dCA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAgICAgICByZXR1cm47 CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgfSksCisgICAgICAg IH0seworICAgICAgICAgIGlkOiAncGFzc3dvcmQnLCBsYWJlbDogZ2V0dGV4dCgnUGFzc3dvcmQn KSwgdHlwZTogJ3Bhc3N3b3JkJywgbWF4bGVuZ3RoOiBudWxsLAorICAgICAgICAgIGdyb3VwOiBn ZXR0ZXh0KCdDb25uZWN0aW9uJyksIGNvbnRyb2w6ICdpbnB1dCcsIG1vZGU6IFsnY3JlYXRlJywg J2VkaXQnXSwgZGVwczogWydjb25uZWN0X25vdyddLAorICAgICAgICB9LHsKKyAgICAgICAgICBp ZDogJ2RiJywgbGFiZWw6IGdldHRleHQoJ01haW50ZW5hbmNlIGRhdGFiYXNlJyksIHR5cGU6ICd0 ZXh0JywgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwKKyAgICAgICAgICBtb2RlOiBbJ3By b3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6 ICdzZXJ2aWNlJywgbGFiZWw6IGdldHRleHQoJ1NlcnZpY2UnKSwgdHlwZTogJ3RleHQnLAorICAg ICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICAg IGdyb3VwOiBnZXR0ZXh0KCdDb25uZWN0aW9uJyksCisgICAgICAgIH0sCisgICAgICAgIHsKKyAg ICAgICAgICBpZDogJ3Bhc3NmaWxlJywgbGFiZWw6IGdldHRleHQoJ1Bhc3NmaWxlJyksIHR5cGU6 ICd0ZXh0JywgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwKKyAgICAgICAgICBtb2RlOiBb J3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwKKyAgICAgICAgfSwKKyAgICAgICAgewor ICAgICAgICAgIGlkOiAncHViJywgbGFiZWw6IGdldHRleHQoJ1B1YmxpY2F0aW9uJyksIHR5cGU6 ICd0ZXh0JywgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwKKyAgICAgICAgICBtb2RlOiBb J3Byb3BlcnRpZXMnXSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnY3Vy X3B1YicsIGxhYmVsOiBnZXR0ZXh0KCdDdXJyZW50IHB1YmxpY2F0aW9uJyksIHR5cGU6ICd0ZXh0 JywgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwKKyAgICAgICAgICBtb2RlOiBbJ2VkaXQn XSwgZGlzYWJsZWQ6dHJ1ZSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAn cHViJywgbGFiZWw6IGdldHRleHQoJ1B1YmxpY2F0aW9uJyksIHR5cGU6ICdhcnJheScsIHNlbGVj dDI6IHsgYWxsb3dDbGVhcjogdHJ1ZSwgbXVsdGlwbGU6IHRydWUsIHdpZHRoOiAnOTElJ30sCisg ICAgICAgICAgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwgbW9kZTogWydjcmVhdGUnLCAn ZWRpdCddLGNvbnRyb2xzQ2xhc3NOYW1lOiAncGdhZG1pbi1jb250cm9scyBwZy1lbC1zbS0xMSBw Zy1lbC0xMicsCisgICAgICAgICAgZGVwczogWydhbGxfdGFibGUnXSwKKyAgICAgICAgICBoZWxw TWVzc2FnZTogZ2V0dGV4dCgnQ2xpY2tzIG9uIHRoZSBidXR0b24gdG8gZ2V0IFB1YmxpY2F0aW9u JyksCisgICAgICAgICAgY29udHJvbDogQmFja2Zvcm0uU2VsZWN0MkNvbnRyb2wuZXh0ZW5kKHsK KyAgICAgICAgICAgIGRlZmF1bHRzOiBfLmV4dGVuZChCYWNrZm9ybS5TZWxlY3QyQ29udHJvbC5w cm90b3R5cGUuZGVmYXVsdHMsIHsKKyAgICAgICAgICAgICAgc2VsZWN0MjogeworICAgICAgICAg ICAgICAgIGFsbG93Q2xlYXI6IHRydWUsCisgICAgICAgICAgICAgICAgc2VsZWN0T25CbHVyOiB0 cnVlLAorICAgICAgICAgICAgICAgIHRhZ3M6IHRydWUsCisgICAgICAgICAgICAgICAgcGxhY2Vo b2xkZXI6IGdldHRleHQoJ1NlbGVjdCBhbiBpdGVtLi4uJyksCisgICAgICAgICAgICAgICAgd2lk dGg6ICdzdHlsZScsCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9KSwKKyAgICAgICAg ICAgIHRlbXBsYXRlOiBfLnRlbXBsYXRlKFsKKyAgICAgICAgICAgICAgJzxsYWJlbCBjbGFzcz0i PCU9QmFja2Zvcm0uY29udHJvbExhYmVsQ2xhc3NOYW1lJT4iIGZvcj0iPCU9Y0lkJT4iPjwlPWxh YmVsJT48L2xhYmVsPicsCisgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSI8JT1CYWNrZm9ybS5j b250cm9sc0NsYXNzTmFtZSU+Ij4nLAorICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iaW5wdXQt Z3JvdXAiPicsCisgICAgICAgICAgICAgICcgPHNlbGVjdCB0aXRsZT0iPCU9bmFtZSU+IiBpZD0i PCU9Y0lkJT4iIGNsYXNzPSI8JT1CYWNrZm9ybS5jb250cm9sQ2xhc3NOYW1lJT4gPCU9ZXh0cmFD bGFzc2VzLmpvaW4oXCcgXCcpJT4iJywKKyAgICAgICAgICAgICAgJyAgbmFtZT0iPCU9bmFtZSU+ IiB2YWx1ZT0iPCUtdmFsdWUlPiIgPCU9ZGlzYWJsZWQgPyAiZGlzYWJsZWQiIDogIiIlPiA8JT1y ZWFkb25seSA/ICJkaXNhYmxlZCIgOiAiIiU+JywKKyAgICAgICAgICAgICAgJyAgPCU9cmVxdWly ZWQgPyAicmVxdWlyZWQiIDogIiIlPjwlPSBzZWxlY3QyLm11bHRpcGxlID8gIiBtdWx0aXBsZT4i IDogIj4iICU+JywKKyAgICAgICAgICAgICAgJyAgPCU9c2VsZWN0Mi5maXJzdF9lbXB0eSA/ICIg PG9wdGlvbj48L29wdGlvbj4iIDogIiIlPicsCisgICAgICAgICAgICAgICcgIDwlIGZvciAodmFy IGk9MDsgaSA8IG9wdGlvbnMubGVuZ3RoOyBpKyspIHslPicsCisgICAgICAgICAgICAgICcgICA8 JSB2YXIgb3B0aW9uID0gb3B0aW9uc1tpXTsgJT4nLAorICAgICAgICAgICAgICAnICAgPG9wdGlv biAnLAorICAgICAgICAgICAgICAnICAgIDwlIGlmIChvcHRpb24uaW1hZ2UpIHsgJT4gZGF0YS1p bWFnZT08JT1vcHRpb24uaW1hZ2UlPiA8JX0lPicsCisgICAgICAgICAgICAgICcgICAgdmFsdWU9 PCUtIGZvcm1hdHRlci5mcm9tUmF3KG9wdGlvbi52YWx1ZSkgJT4nLAorICAgICAgICAgICAgICAn ICAgIDwlIGlmIChvcHRpb24uc2VsZWN0ZWQpIHslPnNlbGVjdGVkPSJzZWxlY3RlZCI8JX0gZWxz ZSB7JT4nLAorICAgICAgICAgICAgICAnICAgIDwlIGlmICghc2VsZWN0Mi5tdWx0aXBsZSAmJiBv cHRpb24udmFsdWUgPT09IHJhd1ZhbHVlKSB7JT5zZWxlY3RlZD0ic2VsZWN0ZWQiPCV9JT4nLAor ICAgICAgICAgICAgICAnICAgIDwlIGlmIChzZWxlY3QyLm11bHRpcGxlICYmIHJhd1ZhbHVlICYm IHJhd1ZhbHVlLmluZGV4T2Yob3B0aW9uLnZhbHVlKSAhPSAtMSl7JT5zZWxlY3RlZD0ic2VsZWN0 ZWQiIGRhdGEtaW5kZXg9InJhd1ZhbHVlLmluZGV4T2Yob3B0aW9uLnZhbHVlKSI8JX0lPicsCisg ICAgICAgICAgICAgICcgICAgPCV9JT4nLAorICAgICAgICAgICAgICAnICAgIDwlPSBkaXNhYmxl ZCA/ICJkaXNhYmxlZCIgOiAiIiU+IDwlPXJlYWRvbmx5ID8gImRpc2FibGVkIiA6ICIiJT4+PCUt b3B0aW9uLmxhYmVsJT48L29wdGlvbj4nLAorICAgICAgICAgICAgICAnICA8JX0lPicsCisgICAg ICAgICAgICAgICcgPC9zZWxlY3Q+JywKKyAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImlucHV0 LWdyb3VwLWFwcGVuZCI+JywKKyAgICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biBidG4t cHJpbWFyeS1pY29uIGZhIGZhLXN5bmMgZ2V0X3B1YmxpY2F0aW9uIiA8JT1kaXNhYmxlZCA/ICJk aXNhYmxlZCIgOiAiIiU+IDwlPXJlYWRvbmx5ID8gImRpc2FibGVkIiA6ICIiJT4gYXJpYS1oaWRk ZW49InRydWUiIGFyaWEtbGFiZWw9IicgKyBnZXR0ZXh0KCdHZXQgUHVibGljYXRpb24nKSArICci IHRpdGxlPSInICsgZ2V0dGV4dCgnR2V0IFB1YmxpY2F0aW9uJykgKyAnIj48L2J1dHRvbj4nLAor ICAgICAgICAgICAgICAnPC9kaXY+JywKKyAgICAgICAgICAgICAgJzwvZGl2PicsCisgICAgICAg ICAgICAgICc8JSBpZiAoaGVscE1lc3NhZ2UgJiYgaGVscE1lc3NhZ2UubGVuZ3RoKSB7ICU+JywK KyAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSI8JT1CYWNrZm9ybS5oZWxwTWVzc2FnZUNsYXNz TmFtZSU+Ij48JT1oZWxwTWVzc2FnZSU+PC9zcGFuPicsCisgICAgICAgICAgICAgICc8JSB9ICU+ JywKKyAgICAgICAgICAgICAgJzwvZGl2PicsCisgICAgICAgICAgICBdLmpvaW4oJ1xuJykpLAor CisgICAgICAgICAgICBldmVudHM6ICBfLmV4dGVuZCh7fSwgQmFja2Zvcm0uU2VsZWN0MkNvbnRy b2wucHJvdG90eXBlLmV2ZW50cygpLCB7CisgICAgICAgICAgICAgICdjbGljayAuZ2V0X3B1Ymxp Y2F0aW9uJzogJ2dldFB1YmxpY2F0aW9uJywKKyAgICAgICAgICAgIH0pLAorCisgICAgICAgICAg ICByZW5kZXI6IGZ1bmN0aW9uKCl7CisgICAgICAgICAgICAgIHJldHVybiBCYWNrZm9ybS5TZWxl Y3QyQ29udHJvbC5wcm90b3R5cGUucmVuZGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgICAg ICAgICAgICB9LAorCisgICAgICAgICAgICBnZXRQdWJsaWNhdGlvbjogZnVuY3Rpb24oKSB7Cisg ICAgICAgICAgICAgIHZhciBzZWxmID0gdGhpczsKKyAgICAgICAgICAgICAgdmFyIHB1YmxpY2F0 aW9uX3VybCA9IHBnQnJvd3Nlci5Ob2Rlc1snZGF0YWJhc2UnXS5nZW5lcmF0ZV91cmwuYXBwbHko CisgICAgICAgICAgICAgICAgcGdCcm93c2VyLk5vZGVzWydzdWJzY3JpcHRpb24nXSwgWworICAg ICAgICAgICAgICAgICAgbnVsbCwgJ2dldF9wdWJsaWNhdGlvbnMnLCB0aGlzLmZpZWxkLmdldCgn bm9kZV9kYXRhJyksIG51bGwsCisgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmdldCgnbm9k ZV9pbmZvJyksIHBnQnJvd3Nlci5Ob2Rlc1snZGF0YWJhc2UnXS51cmxfanVtcF9hZnRlcl9ub2Rl LAorICAgICAgICAgICAgICAgIF0pOworICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gJyc7CisK KyAgICAgICAgICAgICAgJC5hamF4KHsKKyAgICAgICAgICAgICAgICB1cmw6IHB1YmxpY2F0aW9u X3VybCwKKyAgICAgICAgICAgICAgICB0eXBlOiAnR0VUJywKKyAgICAgICAgICAgICAgICBkYXRh OiBzZWxmLm1vZGVsLnRvSlNPTih0cnVlLCAnR0VUJyksCisgICAgICAgICAgICAgICAgZGF0YVR5 cGU6ICdqc29uJywKKyAgICAgICAgICAgICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pz b24nLAorICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgIC5kb25lKGZ1bmN0aW9uKHJl cykgeworICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzLmRhdGE7CisgICAgICAgICAgICAg ICAgICBzZWxmLmZpZWxkLnNldCgnb3B0aW9ucycsIHJlc3VsdCk7CisgICAgICAgICAgICAgICAg ICBCYWNrZm9ybS5TZWxlY3QyQ29udHJvbC5wcm90b3R5cGUucmVuZGVyLmFwcGx5KHNlbGYsIGFy Z3VtZW50cyk7CisKKyAgICAgICAgICAgICAgICAgIHZhciB0cmFuc2Zvcm0gPSBzZWxmLmZpZWxk LmdldCgndHJhbnNmb3JtJykgfHwgc2VsZi5kZWZhdWx0cy50cmFuc2Zvcm07CisgICAgICAgICAg ICAgICAgICBpZiAodHJhbnNmb3JtICYmIF8uaXNGdW5jdGlvbih0cmFuc2Zvcm0pKSB7CisgICAg ICAgICAgICAgICAgICAgIHNlbGYuZmllbGQuc2V0KCdvcHRpb25zJywgdHJhbnNmb3JtLmJpbmQo c2VsZiwgcmVzdWx0KSk7CisgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg ICAgICAgICBzZWxmLmZpZWxkLnNldCgnb3B0aW9ucycsIHJlc3VsdCk7CisgICAgICAgICAgICAg ICAgICB9CisKKyAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgIC5mYWlsKGZ1bmN0 aW9uKHJlcykgeworICAgICAgICAgICAgICAgICAgQWxlcnRpZnkuYWxlcnQoCisgICAgICAgICAg ICAgICAgICAgIGdldHRleHQoJ0NoZWNrIGNvbm5lY3Rpb24/JyksCisgICAgICAgICAgICAgICAg ICAgIGdldHRleHQocmVzLnJlc3BvbnNlSlNPTi5lcnJvcm1zZykKKyAgICAgICAgICAgICAgICAg ICk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LAorICAgICAgICAgIH0pLAor ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdjb3B5X2RhdGFfYWZ0ZXJfcmVm cmVzaCcsIGxhYmVsOiBnZXR0ZXh0KCdDb3B5IGRhdGEnKSwKKyAgICAgICAgICB0eXBlOiAnc3dp dGNoJywgbW9kZTogWydlZGl0J10sCisgICAgICAgICAgZ3JvdXA6IGdldHRleHQoJ1dpdGgnKSwK KyAgICAgICAgICBleHRyYVRvZ2dsZUNsYXNzZXM6ICdwZy1lbC1zbS02JywKKyAgICAgICAgICBj b250cm9sTGFiZWxDbGFzc05hbWU6ICdjb250cm9sLWxhYmVsIHBnLWVsLXNtLTUgcGctZWwtMTIn LAorICAgICAgICAgIGNvbnRyb2xzQ2xhc3NOYW1lOiAncGdhZG1pbi1jb250cm9scyBwZy1lbC1z bS03IHBnLWVsLTEyJywKKyAgICAgICAgICByZWFkb25seTogJ2lzUmVmcmVzaCcsIGRlcHMgOlsn cmVmcmVzaF9wdWInXSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnY29w eV9kYXRhJywgbGFiZWw6IGdldHRleHQoJ0NvcHkgZGF0YScpLAorICAgICAgICAgIHR5cGU6ICdz d2l0Y2gnLCBtb2RlOiBbJ2NyZWF0ZSddLAorICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdXaXRo JyksCisgICAgICAgICAgZXh0cmFUb2dnbGVDbGFzc2VzOiAncGctZWwtc20tNicsCisgICAgICAg ICAgY29udHJvbExhYmVsQ2xhc3NOYW1lOiAnY29udHJvbC1sYWJlbCBwZy1lbC1zbS01IHBnLWVs LTEyJywKKyAgICAgICAgICBjb250cm9sc0NsYXNzTmFtZTogJ3BnYWRtaW4tY29udHJvbHMgcGct ZWwtc20tNyBwZy1lbC0xMicsCisgICAgICAgICAgcmVhZG9ubHk6ICdpc0Nvbm5lY3QnLCBkZXBz IDpbJ2Nvbm5lY3QnXSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnY3Jl YXRlX3Nsb3QnLCBsYWJlbDogZ2V0dGV4dCgnQ3JlYXRlIHNsb3QnKSwKKyAgICAgICAgICB0eXBl OiAnc3dpdGNoJywgbW9kZTogWydjcmVhdGUnXSwKKyAgICAgICAgICBncm91cDogZ2V0dGV4dCgn V2l0aCcpLAorICAgICAgICAgIGV4dHJhVG9nZ2xlQ2xhc3NlczogJ3BnLWVsLXNtLTYnLAorICAg ICAgICAgIGNvbnRyb2xMYWJlbENsYXNzTmFtZTogJ2NvbnRyb2wtbGFiZWwgcGctZWwtc20tNSBw Zy1lbC0xMicsCisgICAgICAgICAgY29udHJvbHNDbGFzc05hbWU6ICdwZ2FkbWluLWNvbnRyb2xz IHBnLWVsLXNtLTcgcGctZWwtMTInLAorICAgICAgICAgIGRpc2FibGVkOiAnaXNEaXNhYmxlJywK KyAgICAgICAgICByZWFkb25seTogJ2lzQ29ubmVjdCcsIGRlcHMgOlsnY29ubmVjdCddLAorCisg ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ2VuYWJsZWQnLCBsYWJlbDogZ2V0 dGV4dCgnRW5hYmxlZCcpLAorICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBtb2RlOiBbJ2NyZWF0 ZScsJ2VkaXQnLCAncHJvcGVydGllcyddLAorICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdXaXRo JyksCisgICAgICAgICAgZXh0cmFUb2dnbGVDbGFzc2VzOiAncGctZWwtc20tNicsCisgICAgICAg ICAgY29udHJvbExhYmVsQ2xhc3NOYW1lOiAnY29udHJvbC1sYWJlbCBwZy1lbC1zbS01IHBnLWVs LTEyJywKKyAgICAgICAgICBjb250cm9sc0NsYXNzTmFtZTogJ3BnYWRtaW4tY29udHJvbHMgcGct ZWwtc20tNyBwZy1lbC0xMicsCisgICAgICAgICAgcmVhZG9ubHk6ICdpc0Nvbm5lY3QnLCBkZXBz IDpbJ2Nvbm5lY3QnXSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAncmVm cmVzaF9wdWInLCBsYWJlbDogZ2V0dGV4dCgnUmVmcmVzaCBwdWJsaWNhdGlvbicpLAorICAgICAg ICAgIHR5cGU6ICdzd2l0Y2gnLCBtb2RlOiBbJ2VkaXQnXSwKKyAgICAgICAgICBncm91cDogZ2V0 dGV4dCgnV2l0aCcpLAorICAgICAgICAgIGV4dHJhVG9nZ2xlQ2xhc3NlczogJ3BnLWVsLXNtLTYn LAorICAgICAgICAgIGNvbnRyb2xMYWJlbENsYXNzTmFtZTogJ2NvbnRyb2wtbGFiZWwgcGctZWwt c20tNSBwZy1lbC0xMicsCisgICAgICAgICAgY29udHJvbHNDbGFzc05hbWU6ICdwZ2FkbWluLWNv bnRyb2xzIHBnLWVsLXNtLTcgcGctZWwtMTInLAorICAgICAgICB9LHsKKyAgICAgICAgICBpZDog J2Nvbm5lY3QnLCBsYWJlbDogZ2V0dGV4dCgnQ29ubmVjdCcpLAorICAgICAgICAgIHR5cGU6ICdz d2l0Y2gnLCBtb2RlOiBbJ2NyZWF0ZSddLAorICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdXaXRo JyksCisgICAgICAgICAgZXh0cmFUb2dnbGVDbGFzc2VzOiAncGctZWwtc20tNicsCisgICAgICAg ICAgY29udHJvbExhYmVsQ2xhc3NOYW1lOiAnY29udHJvbC1sYWJlbCBwZy1lbC1zbS01IHBnLWVs LTEyJywKKyAgICAgICAgICBjb250cm9sc0NsYXNzTmFtZTogJ3BnYWRtaW4tY29udHJvbHMgcGct ZWwtc20tNyBwZy1lbC0xMicsCisgICAgICAgICAgZGlzYWJsZWQ6ICdpc0Rpc2FibGUnLCBkZXBz OlsnZW5hYmxlZCcsICdjcmVhdGVfc2xvdCcsICdjb3B5X2RhdGEnXSwKKyAgICAgICAgfSwKKyAg ICAgICAgeworICAgICAgICAgIGlkOiAnc2xvdF9uYW1lJywgbGFiZWw6IGdldHRleHQoJ1Nsb3Qg bmFtZScpLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgbW9kZTogWydjcmVhdGUnLCdlZGl0Jywg J3Byb3BlcnRpZXMnXSwKKyAgICAgICAgICBncm91cDogZ2V0dGV4dCgnV2l0aCcpLAorICAgICAg ICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdzeW5jJywgbGFiZWw6IGdldHRleHQoJ1N5 bmNocm9ub3VzIGNvbW1pdCcpLCBjb250cm9sOiAnc2VsZWN0MicsIGRlcHM6WydldmVudCddLAor ICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdXaXRoJyksIHR5cGU6ICd0ZXh0JywKKyAgICAgICAg ICBzZWxlY3QyOiB7CisgICAgICAgICAgICB3aWR0aDogJzEwMCUnLAorICAgICAgICAgICAgYWxs b3dDbGVhcjogZmFsc2UsCisgICAgICAgICAgfSwKKyAgICAgICAgICBvcHRpb25zOlsKKyAgICAg ICAgICAgIHtsYWJlbDogJ2xvY2FsJywgdmFsdWU6ICdsb2NhbCd9LAorICAgICAgICAgICAge2xh YmVsOiAncmVtb3RlX3dyaXRlJywgdmFsdWU6ICdyZW1vdGVfd3JpdGUnfSwKKyAgICAgICAgICAg IHtsYWJlbDogJ3JlbW90ZV9hcHBseScsIHZhbHVlOiAncmVtb3RlX2FwcGx5J30sCisgICAgICAg ICAgICB7bGFiZWw6ICdvbicsIHZhbHVlOiAnb24nfSwKKyAgICAgICAgICAgIHtsYWJlbDogJ29m ZicsIHZhbHVlOiAnb2ZmJ30sCisgICAgICAgICAgXSwKKyAgICAgICAgfSwKKyAgICAgICAgXSwK KyAgICAgICAgaXNTaGFyZWQ6IGZ1bmN0aW9uKCl7CisgICAgICAgICAgcmV0dXJuIGZhbHNlOwor ICAgICAgICB9LAorICAgICAgICBpc0Rpc2FibGU6ZnVuY3Rpb24obSl7CisgICAgICAgICAgaWYg KG0uaXNOZXcoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICByZXR1cm4g dHJ1ZTsKKyAgICAgICAgfSwKKworICAgICAgICBpc0Nvbm5lY3Q6IGZ1bmN0aW9uKG0peworICAg ICAgICAgIGlmKCFtLmdldCgnY29ubmVjdCcpKXsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoIGZ1 bmN0aW9uKCkgeworICAgICAgICAgICAgICBtLnNldCgnY29weV9kYXRhJywgZmFsc2UpOworICAg ICAgICAgICAgICBtLnNldCgnY3JlYXRlX3Nsb3QnLCBmYWxzZSk7CisgICAgICAgICAgICAgIG0u c2V0KCdlbmFibGVkJywgZmFsc2UpOworICAgICAgICAgICAgfSwgMTApOworICAgICAgICAgICAg cmV0dXJuIHRydWU7CisgICAgICAgICAgfQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg ICAgfSwKKyAgICAgICAgaXNSZWZyZXNoOiBmdW5jdGlvbihtKXsKKyAgICAgICAgICBpZiAoIW0u Z2V0KCdyZWZyZXNoX3B1YicpIHx8IF8uaXNVbmRlZmluZWQobS5nZXQoJ3JlZnJlc2hfcHViJykp KXsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBt LnNldCgnY29weV9kYXRhX2FmdGVyX3JlZnJlc2gnLCBmYWxzZSk7CisgICAgICAgICAgICB9LCAx MCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICB9CisgICAgICAgICAgcmV0 dXJuIGZhbHNlOworICAgICAgICB9LAorICAgICAgICAvKiB2YWxpZGF0ZSBmdW5jdGlvbiBpcyB1 c2VkIHRvIHZhbGlkYXRlIHRoZSBpbnB1dCBnaXZlbiBieQorICAgICAgICAgKiB0aGUgdXNlci4g SW4gY2FzZSBvZiBlcnJvciwgbWVzc2FnZSB3aWxsIGJlIGRpc3BsYXllZCBvbgorICAgICAgICAg KiB0aGUgR1VJIGZvciB0aGUgcmVzcGVjdGl2ZSBjb250cm9sLgorICAgICAgICAgKi8KKyAgICAg ICAgdmFsaWRhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciBtc2c7CisgICAgICAgICAg dGhpcy5lcnJvck1vZGVsLmNsZWFyKCk7CisgICAgICAgICAgdmFyIG5hbWUgPSB0aGlzLmdldCgn bmFtZScpOworCisgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQobmFtZSkgfHwgXy5pc051bGwo bmFtZSkgfHwKKyAgICAgICAgICAgIFN0cmluZyhuYW1lKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywg JycpID09ICcnKSB7CisgICAgICAgICAgICBtc2cgPSBnZXR0ZXh0KCdOYW1lIGNhbm5vdCBiZSBl bXB0eS4nKTsKKyAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ25hbWUnLCBtc2cpOwor ICAgICAgICAgICAgcmV0dXJuIG1zZzsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBjb25zdCB2 YWxpZGF0ZU1vZGVsID0gbmV3IG1vZGVsVmFsaWRhdGlvbi5Nb2RlbFZhbGlkYXRpb24odGhpcyk7 CisgICAgICAgICAgcmV0dXJuIHZhbGlkYXRlTW9kZWwudmFsaWRhdGUoKTsKKyAgICAgICAgfSwK KyAgICAgICAgY2FuQ3JlYXRlOiBmdW5jdGlvbihpdGVtRGF0YSwgaXRlbSkgeworICAgICAgICAg IHZhciB0cmVlRGF0YSA9IHRoaXMuZ2V0VHJlZU5vZGVIaWVyYXJjaHkoaXRlbSksCisgICAgICAg ICAgICBzZXJ2ZXIgPSB0cmVlRGF0YVsnc2VydmVyJ107CisKKyAgICAgICAgICAvLyBJZiBzZXJ2 ZXIgaXMgbGVzcyB0aGFuIDEwIHRoZW4gZG8gbm90IGFsbG93ICdjcmVhdGUnIG1lbnUKKyAgICAg ICAgICBpZiAoc2VydmVyICYmIHNlcnZlci52ZXJzaW9uIDwgMTAwMDAwKQorICAgICAgICAgICAg cmV0dXJuIGZhbHNlOworCisgICAgICAgICAgLy8gYnkgZGVmYXVsdCB3ZSB3YW50IHRvIGFsbG93 IGNyZWF0ZSBtZW51CisgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0sCisKKyAgICAg IH0pLAorICAgIH0pOworICB9CisgIHJldHVybiBwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwtc3Vic2Ny aXB0aW9uJ107Cit9KTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3RlbXBsYXRlcy9zdWJzY3JpcHRp b25zL3NxbC9kZWZhdWx0L2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1wbGF0ZXMvc3Vic2NyaXB0 aW9ucy9zcWwvZGVmYXVsdC9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMC4uZmVjMmM1NThiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVtcGxhdGVz L3N1YnNjcmlwdGlvbnMvc3FsL2RlZmF1bHQvY3JlYXRlLnNxbApAQCAtMCwwICsxLDI0IEBACit7 JSBpZiBkYXRhLmNvcHlfZGF0YSBpcyBkZWZpbmVkIG9yIGRhdGEuY3JlYXRlX3Nsb3QgaXMgZGVm aW5lZCBvciBkYXRhLnNsb3RfbmFtZSBpcyBkZWZpbmVkIG9yIGRhdGEuc3luYyBpcyBkZWZpbmVk ICV9Cit7JSBzZXQgYWRkX3NlbWljb2xvbl9hZnRlcl9lbmFibGVkID0gJ2VuYWJsZWQnICV9Cit7 JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5jcmVhdGVfc2xvdCBpcyBkZWZpbmVkIG9yIGRhdGEuc2xv dF9uYW1lIGlzIGRlZmluZWQgJX0KK3slIHNldCBhZGRfc2VtaWNvbG9uX2FmdGVyX2NvcHlfZGF0 YSA9ICdjb3B5X2RhdGEnICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5zbG90X25hbWUgaXMg ZGVmaW5lZCBvciBkYXRhLnN5bmMgaXMgZGVmaW5lZCAlfQoreyUgc2V0IGFkZF9zZW1pY29sb25f YWZ0ZXJfY3JlYXRlX3Nsb3QgPSAnY3JlYXRlX3Nsb3QnICV9Cit7JSBlbmRpZiAlfQoreyUgaWYg ZGF0YS5zeW5jIGlzIGRlZmluZWQgJX0KK3slIHNldCBhZGRfc2VtaWNvbG9uX2FmdGVyX3Nsb3Rf bmFtZSA9ICdzbG90X25hbWUnICV9Cit7JSBlbmRpZiAlfQorCitDUkVBVEUgU1VCU0NSSVBUSU9O IHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19Cit7JSBpZiBkYXRhLmhvc3Qgb3IgZGF0YS5w b3J0IG9yIGRhdGEudXNlcm5hbWUgb3IgZGF0YS5wYXNzd29yZCAgb3IgZGF0YS5kYiAlfQorQ09O TkVDVElPTiAnIHslIGlmIGRhdGEuaG9zdCAlfWhvc3Q9e3sgZGF0YS5ob3N0fX0geyUgZW5kaWYg JX17JSBpZiBkYXRhLnBvcnQgJX1wb3J0PXt7IGRhdGEucG9ydCB9fSB7JSBlbmRpZiAlfXslIGlm IGRhdGEudXNlcm5hbWUgJX11c2VyPXt7IGRhdGEudXNlcm5hbWUgfX0geyUgZW5kaWYgJX17JSBp ZiBkYXRhLmRiICV9ZGJuYW1lPXt7IGRhdGEuZGIgfX0geyUgZW5kaWYgJX17JSBpZiBkYXRhLnNl cnZpY2UgJX1zZXJ2aWNlPXt7IGRhdGEuc2VydmljZSB9fSB7JSBlbmRpZiAlfXslIGlmIGRhdGEu cGFzc2ZpbGUgJX1wYXNzZmlsZT17eyBkYXRhLnBhc3NmaWxlIH19IHslIGVuZGlmICV9eyUgaWYg ZGF0YS5wYXNzd29yZCAlfXBhc3N3b3JkPXt7IGRhdGEucGFzc3dvcmR9fXslIGVuZGlmICV9Jwor eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHViICV9CitQVUJMSUNBVElPTiB7JSBmb3IgcHViIGlu IGRhdGEucHViICV9eyUgaWYgbG9vcC5pbmRleCAhPSAxICV9LHslIGVuZGlmICV9e3sgY29ubnxx dElkZW50KHB1YikgfX17JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9CisKK3dpdGggKHslIGlmIGRh dGEuY29ubmVjdCBpcyBkZWZpbmVkICV9Y29ubmVjdCA9IHt7IGRhdGEuY29ubmVjdH19LCB7JSBl bmRpZiAlfWVuYWJsZWQgPSB7eyBkYXRhLmVuYWJsZWR9fSwgeyUgaWYgZGF0YS5jb3B5X2RhdGEg JX1jb3B5X2RhdGEgPSB7eyBkYXRhLmNvcHlfZGF0YX19eyUgaWYgYWRkX3NlbWljb2xvbl9hZnRl cl9jb3B5X2RhdGEgPT0gJ2NvcHlfZGF0YScgJX0seyUgZW5kaWYgJX17JSBlbmRpZiAlfQoreyUg aWYgZGF0YS5jcmVhdGVfc2xvdCBpcyBkZWZpbmVkICV9IGNyZWF0ZV9zbG90ID0ge3sgZGF0YS5j cmVhdGVfc2xvdCB9fXslIGlmIGFkZF9zZW1pY29sb25fYWZ0ZXJfY3JlYXRlX3Nsb3QgPT0gJ2Ny ZWF0ZV9zbG90JyAlfSx7JSBlbmRpZiAlfXslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnNsb3RfbmFt ZSBpcyBkZWZpbmVkICBhbmQgZGF0YS5zbG90X25hbWUgIT0gJyclfSBzbG90X25hbWUgPSB7eyBk YXRhLnNsb3RfbmFtZSB9fXslIGlmIGFkZF9zZW1pY29sb25fYWZ0ZXJfc2xvdF9uYW1lID09ICdz bG90X25hbWUnICV9LHslIGVuZGlmICV9eyUgZW5kaWYgJX17JSBpZiBkYXRhLnN5bmMgJX0gc3lu Y2hyb25vdXNfY29tbWl0ID0gJ3t7IGRhdGEuc3luYyB9fSd7JSBlbmRpZiAlfSk7CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c3Vic2NyaXB0aW9ucy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVsdC9kZWxldGUu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3N1YnNjcmlwdGlvbnMvdGVtcGxhdGVzL3N1YnNjcmlwdGlvbnMvc3FsL2RlZmF1bHQvZGVsZXRl LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjMzOTQyZmE5OQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3RlbXBsYXRlcy9zdWJzY3JpcHRpb25zL3NxbC9kZWZh dWx0L2RlbGV0ZS5zcWwKQEAgLTAsMCArMSw4IEBACit7IyA9PT09PT09PT09PT09IEdldCB0aGUg c3Vic2NyaXB0aW9uIG5hbWUgdXNpbmcgb2lkID09PT09PT09PT09PT0gI30KK3slIGlmIHN1Ymlk ICV9CisgICAgU0VMRUNUIHN1Ym5hbWUgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgb2lkID0g e3tzdWJpZH19OjpvaWQ7Cit7JSBlbmRpZiAlfQoreyMgPT09PT09PT09PT09PSBEcm9wIHRoZSBs YW5ndWFnZSA9PT09PT09PT09PT09ICN9Cit7JSBpZiBzdWJuYW1lICV9CitEUk9QIFNVQlNDUklQ VElPTiB7eyBjb25ufHF0SWRlbnQoc3VibmFtZSkgfX17JSBpZiBjYXNjYWRlICV9IENBU0NBREV7 JSBlbmRpZiV9OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3RlbXBsYXRlcy9z dWJzY3JpcHRpb25zL3NxbC9kZWZhdWx0L2dldF9wb3NpdGlvbi5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1w bGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVsdC9nZXRfcG9zaXRpb24uc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNDZhYWMxMTgxCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1 YnNjcmlwdGlvbnMvdGVtcGxhdGVzL3N1YnNjcmlwdGlvbnMvc3FsL2RlZmF1bHQvZ2V0X3Bvc2l0 aW9uLnNxbApAQCAtMCwwICsxIEBACitzZWxlY3Qgb2lkLCBzdWJuYW1lIGFzIG5hbWUgZnJvbSBw Z19zdWJzY3JpcHRpb24gd2hlcmUgc3VibmFtZSA9ICd7eyBzdWJuYW1lIH19JzsKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z dWJzY3JpcHRpb25zL3RlbXBsYXRlcy9zdWJzY3JpcHRpb25zL3NxbC9kZWZhdWx0L25vZGVzLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z dWJzY3JpcHRpb25zL3RlbXBsYXRlcy9zdWJzY3JpcHRpb25zL3NxbC9kZWZhdWx0L25vZGVzLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjEwZjg0MTc0MwotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zdWJzY3JpcHRpb25zL3RlbXBsYXRlcy9zdWJzY3JpcHRpb25zL3NxbC9kZWZhdWx0 L25vZGVzLnNxbApAQCAtMCwwICsxLDcgQEAKK3NlbGVjdCBvaWQsIHN1Yi5zdWJuYW1lIGFzIG5h bWUgZnJvbSBwZ19zdWJzY3JpcHRpb24gc3ViCitXSEVSRQoreyUgaWYgc3ViaWQgJX0KKyAgICBz dWIub2lkID0ge3sgc3ViaWQgfX07Cit7JSBlbHNlICV9CisgICAgc3ViLnN1YmRiaWQgPSB7eyBk aWQgfX07Cit7JSBlbmRpZiAlfTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3RlbXBsYXRlcy9zdWJz Y3JpcHRpb25zL3NxbC9kZWZhdWx0L3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVtcGxhdGVz L3N1YnNjcmlwdGlvbnMvc3FsL2RlZmF1bHQvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwLi43ZGQxOGI1MTcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0 aW9ucy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVsdC9wcm9wZXJ0aWVzLnNxbApA QCAtMCwwICsxLDIxIEBACitTRUxFQ1QgIHN1Yi5vaWQgYXMgb2lkLAorICAgICAgICBzdWJuYW1l IGFzIG5hbWUsCisgICAgICAgIHN1YnB1YmxpY2F0aW9ucyBhcyBwdWIsCisgICAgICAgIHN1Yi5z dWJzeW5jY29tbWl0IGFzIHN5bmMsCisgICAgICAgIHN1YnB1YmxpY2F0aW9ucyBhcyBjdXJfcHVi LAorICAgICAgICBwZ2Eucm9sbmFtZSBhcyBzdWJvd25lciwKKyAgICAgICAgc3Vic2xvdG5hbWUg YXMgc2xvdF9uYW1lLAorICAgICAgICBzdWJlbmFibGVkIGFzIGVuYWJsZWQsCisJCVNQTElUX1BB UlQoU1BMSVRfUEFSVChzdWJjb25uaW5mbywncG9ydCcsMSksICc9JywyKSBhcyBob3N0LAorCQlT UExJVF9QQVJUKFNQTElUX1BBUlQoc3ViY29ubmluZm8sJ3BvcnQ9JywyKSwgJyAnLDEpIGFzIHBv cnQsCisJCVNQTElUX1BBUlQoU1BMSVRfUEFSVChzdWJjb25uaW5mbywndXNlcj0nLDIpLCAnICcs MSkgYXMgdXNlcm5hbWUsCisJCVNQTElUX1BBUlQoU1BMSVRfUEFSVChzdWJjb25uaW5mbywnZGJu YW1lPScsMiksICcgJywxKSBhcyBkYiwKKwkJU1BMSVRfUEFSVChTUExJVF9QQVJUKHN1YmNvbm5p bmZvLCdzZXJ2aWNlPScsMiksICcgJywxKSBhcyBzZXJ2aWNlLAorCQlTUExJVF9QQVJUKFNQTElU X1BBUlQoc3ViY29ubmluZm8sJ3Bhc3NmaWxlPScsMiksICcgJywxKSBhcyBwYXNzZmlsZQorRlJP TSBwZ19zdWJzY3JpcHRpb24gc3ViIGpvaW4gcGdfYXV0aGlkIHBnYSBvbiBzdWIuc3Vib3duZXI9 IHBnYS5vaWQKK1dIRVJFCit7JSBpZiBzdWJpZCAlfQorICAgIHN1Yi5vaWQgPSB7eyBzdWJpZCB9 fTsKK3slIGVsc2UgJX0KKyAgICBzdWIuc3ViZGJpZCA9IHt7IGRpZCB9fTsKK3slIGVuZGlmICV9 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVs dC91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVtcGxhdGVzL3N1YnNjcmlwdGlvbnMvc3FsL2RlZmF1 bHQvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjc4OTc2 MWUwNgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3RlbXBsYXRlcy9zdWJzY3JpcHRpb25z L3NxbC9kZWZhdWx0L3VwZGF0ZS5zcWwKQEAgLTAsMCArMSw1MiBAQAoreyUgaWYgZGF0YS5zeW5j IGlzIGRlZmluZWQgJX0KK3slIHNldCBhZGRfc2VtaWNvbG9uX2FmdGVyX3Nsb3RfbmFtZSA9ICdz bG90X25hbWUnICV9Cit7JSBlbmRpZiAlfQorCit7IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyN9Cit7IyMgQ2hhbmdlIG93bmVyIG9mIHN1YnNjcmlw dGlvbiAjI30KK3sjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjI30KK3slIGlmIGRhdGEuc3Vib3duZXIgYW5kIGRhdGEuc3Vib3duZXIgIT0gb19kYXRh LnN1Ym93bmVyICV9CitBTFRFUiBTVUJTQ1JJUFRJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5u YW1lKSB9fSBPV05FUiBUTyB7eyBkYXRhLnN1Ym93bmVyIH19OworeyUgZW5kaWYgJX0KKworeyUg aWYgZGF0YS5uYW1lIGFuZCBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FMVEVSIFNVQlND UklQVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLm5hbWUpIH19IFJFTkFNRSBUTyB7eyBjb25u fHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsKK3slIGVuZGlmICV9CisKK3slIGlmIGRhdGEuZW5hYmxl ZCBpcyBkZWZpbmVkIGFuZCBkYXRhLmVuYWJsZWQgIT0gb19kYXRhLmVuYWJsZWQgJX0KK3slIGlm IG5vdCBkYXRhLmVuYWJsZWQgJX0KK0FMVEVSIFNVQlNDUklQVElPTiB7eyBjb25ufHF0SWRlbnQo b19kYXRhLm5hbWUpIH19IERJU0FCTEU7Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KKworeyUg aWYgZGF0YS5zbG90X25hbWUgb3IgZGF0YS5zeW5jICV9CitBTFRFUiBTVUJTQ1JJUFRJT04ge3sg Y29ubnxxdElkZW50KG9fZGF0YS5uYW1lKSB9fSBTRVQgKHslIGlmIGRhdGEuc2xvdF9uYW1lICV9 c2xvdF9uYW1lID0ge3sgZGF0YS5zbG90X25hbWUgfX17JSBpZiBhZGRfc2VtaWNvbG9uX2FmdGVy X3Nsb3RfbmFtZSA9PSAnc2xvdF9uYW1lJyAlfSwgeyUgZW5kaWYgJX17JSBlbmRpZiAlfXslIGlm IGRhdGEuc3luYyAlfXN5bmNocm9ub3VzX2NvbW1pdCA9ICd7eyBkYXRhLnN5bmMgfX0neyUgZW5k aWYgJX0pOworeyUgZW5kaWYgJX0KKworeyUgaWYgZGF0YS5lbmFibGVkIGlzIGRlZmluZWQgYW5k IGRhdGEuZW5hYmxlZCAhPSBvX2RhdGEuZW5hYmxlZCAlfQoreyUgaWYgZGF0YS5lbmFibGVkICV9 CitBTFRFUiBTVUJTQ1JJUFRJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5uYW1lKSB9fSBFTkFC TEU7Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KKworeyUgaWYgZGF0YS5yZWZyZXNoX3B1YiAl fQorQUxURVIgU1VCU0NSSVBUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEubmFtZSkgfX0gUkVG UkVTSCBQVUJMSUNBVElPTnslIGlmIG5vdCBkYXRhLmNvcHlfZGF0YV9hZnRlcl9yZWZyZXNoICV9 IFdJVEggKGNvcHlfZGF0YSA9IEZhbHNlKXslIGVsc2UgJX0gV0lUSCAoY29weV9kYXRhID0gVHJ1 ZSl7JSBlbmRpZiAlfTsKK3slIGVuZGlmICV9CisKK3slIGlmIGRhdGEucHViJX0KK3slIGlmIGRh dGEucHViIGFuZCBub3QgZGF0YS5yZWZyZXNoX3B1YiBhbmQgbm90IGRhdGEuZW5hYmxlZCAlfQor QUxURVIgU1VCU0NSSVBUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEubmFtZSkgfX0gU0VUIFBV QkxJQ0FUSU9OIHslIGZvciBwdWIgaW4gZGF0YS5wdWIgJX17JSBpZiBsb29wLmluZGV4ICE9IDEg JX0seyUgZW5kaWYgJX17eyBjb25ufHF0SWRlbnQocHViKSB9fXslIGVuZGZvciAlfSBXSVRIIChy ZWZyZXNoID0gZmFsc2UpOworeyUgZWxzZSAlfQorQUxURVIgU1VCU0NSSVBUSU9OIHt7IGNvbm58 cXRJZGVudChvX2RhdGEubmFtZSkgfX0gU0VUIFBVQkxJQ0FUSU9OIHslIGZvciBwdWIgaW4gZGF0 YS5wdWIgJX17JSBpZiBsb29wLmluZGV4ICE9IDEgJX0seyUgZW5kaWYgJX17eyBjb25ufHF0SWRl bnQocHViKSB9fXslIGVuZGZvciAlfTsKK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQorCit7JSBp ZiBkYXRhLmhvc3Qgb3IgZGF0YS5wb3J0IG9yIGRhdGEudXNlcm5hbWUgb3IgZGF0YS5wYXNzd29y ZCAgb3IgZGF0YS5kYiBvciAgZGF0YS5zZXJ2aWNlIG9yIGRhdGEucGFzc2ZpbGUgJX0KK0FMVEVS IFNVQlNDUklQVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLm5hbWUpIH19IENPTk5FQ1RJT04g J2hvc3Q9e3sgb19kYXRhLmhvc3R9fSBwb3J0PXt7IG9fZGF0YS5wb3J0IH19IHVzZXI9e3sgb19k YXRhLnVzZXJuYW1lIH19IGRibmFtZT17eyBvX2RhdGEuZGIgfX17JSBpZiBkYXRhLnNlcnZpY2Ug JX0gc2VydmljZT17eyBvX2RhdGEuc2VydmljZSB9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5wYXNz ZmlsZSAlfSBwYXNzZmlsZT17eyBvX2RhdGEucGFzc2ZpbGUgfX17JSBlbmRpZiAlfXslIGlmIGRh dGEucGFzc3dvcmQgJX0gcGFzc3dvcmQ9e3sgZGF0YS5wYXNzd29yZH19eyUgZW5kaWYgJX0nOwor eyUgZW5kaWYgJX0KKworCisKKworCisKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzLzEwX3Bs dXMvYWx0ZXJfbWFpbnRlbmFuY2VfZGIuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1cy9hbHRl cl9tYWludGVuYW5jZV9kYi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw Li42ZjYyNmZhYmYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy8xMF9wbHVzL2Fs dGVyX21haW50ZW5hbmNlX2RiLnNxbApAQCAtMCwwICsxLDcgQEAKKy0tIFN1YnNjcmlwdGlvbiA6 IHRlc3RfYWx0ZXJfc3Vic2NyaXB0aW9uOworLS0gRFJPUCBTVUJTQ1JJUFRJT04gdGVzdF9hbHRl cl9zdWJzY3JpcHRpb247CisKK0NSRUFURSBTVUJTQ1JJUFRJT04gdGVzdF9hbHRlcl9zdWJzY3Jp cHRpb24KK0NPTk5FQ1RJT04gJyBob3N0PWxvY2FsaG9zdCAgIHBvcnQ9NTQzMiB1c2VyPXBvc3Rn cmVzIGRibmFtZT1lZGIgJworUFVCTElDQVRJT04gc2FtcGxlX18xCit3aXRoIChlbmFibGVkID0g RmFsc2UsICBjcmVhdGVfc2xvdCA9IEZhbHNlLCBzbG90X25hbWUgPSBOb25lLCBzeW5jaHJvbm91 c19jb21taXQgPSAncmVtb3RlX2FwcGx5Jyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy8x MF9wbHVzL2FsdGVyX3N1YnNjcmlwdGlvbi5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy8xMF9wbHVzL2Fs dGVyX3N1YnNjcmlwdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw Li41Zjg5NjUwMmMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy8xMF9wbHVzL2Fs dGVyX3N1YnNjcmlwdGlvbi5zcWwKQEAgLTAsMCArMSw3IEBACistLSBTdWJzY3JpcHRpb24gOiB0 ZXN0X2FsdGVyX3N1YnNjcmlwdGlvbjsKKy0tIERST1AgU1VCU0NSSVBUSU9OIHRlc3RfYWx0ZXJf c3Vic2NyaXB0aW9uOworCitDUkVBVEUgU1VCU0NSSVBUSU9OIHRlc3RfYWx0ZXJfc3Vic2NyaXB0 aW9uCitDT05ORUNUSU9OICcgaG9zdD1sb2NhbGhvc3QgIHBvcnQ9NTQzMiB1c2VyPXBvc3RncmVz IGRibmFtZT1wb3N0Z3JlcyAnCitQVUJMSUNBVElPTiBzYW1wbGVfXzEKK3dpdGggKGVuYWJsZWQg PSBGYWxzZSwgIGNyZWF0ZV9zbG90ID0gRmFsc2UsIHNsb3RfbmFtZSA9IE5vbmUsIHN5bmNocm9u b3VzX2NvbW1pdCA9ICdvZmYnKTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzLzEwX3BsdXMv YWx0ZXJfc3luYy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy8xMF9wbHVzL2FsdGVyX3N5bmMuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNWUyNGRiYjZhCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1cy9hbHRlcl9zeW5jLnNxbApAQCAtMCwwICsx LDcgQEAKKy0tIFN1YnNjcmlwdGlvbiA6IHRlc3RfYWx0ZXJfc3Vic2NyaXB0aW9uOworLS0gRFJP UCBTVUJTQ1JJUFRJT04gdGVzdF9hbHRlcl9zdWJzY3JpcHRpb247CisKK0NSRUFURSBTVUJTQ1JJ UFRJT04gdGVzdF9hbHRlcl9zdWJzY3JpcHRpb24KK0NPTk5FQ1RJT04gJyBob3N0PWxvY2FsaG9z dCAgcG9ydD01NDMyIHVzZXI9cG9zdGdyZXMgZGJuYW1lPXBvc3RncmVzICcKK1BVQkxJQ0FUSU9O IHNhbXBsZV9fMQord2l0aCAoZW5hYmxlZCA9IEZhbHNlLCAgY3JlYXRlX3Nsb3QgPSBGYWxzZSwg c2xvdF9uYW1lID0gTm9uZSwgc3luY2hyb25vdXNfY29tbWl0ID0gJ3JlbW90ZV9hcHBseScpOwpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1cy9jcmVhdGVfc3Vic2NyaXB0aW9uLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z dWJzY3JpcHRpb25zL3Rlc3RzLzEwX3BsdXMvY3JlYXRlX3N1YnNjcmlwdGlvbi5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5hMGEyMzM4YWIKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c3Vic2NyaXB0aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9zdWJzY3JpcHRpb24uc3FsCkBAIC0w LDAgKzEsNyBAQAorLS0gU3Vic2NyaXB0aW9uIDogdGVzdF9jcmVhdGVfc3Vic2NyaXB0aW9uOwor LS0gRFJPUCBTVUJTQ1JJUFRJT04gdGVzdF9jcmVhdGVfc3Vic2NyaXB0aW9uOworCitDUkVBVEUg U1VCU0NSSVBUSU9OIHRlc3RfY3JlYXRlX3N1YnNjcmlwdGlvbgorQ09OTkVDVElPTiAnIGhvc3Q9 bG9jYWxob3N0ICBwb3J0PTU0MzIgdXNlcj1wb3N0Z3JlcyBkYm5hbWU9cG9zdGdyZXMgJworUFVC TElDQVRJT04gc2FtcGxlX18xCit3aXRoIChlbmFibGVkID0gRmFsc2UsICBjcmVhdGVfc2xvdCA9 IEZhbHNlLCBzbG90X25hbWUgPSBOb25lLCBzeW5jaHJvbm91c19jb21taXQgPSAnb2ZmJyk7CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9zdWJzY3JpcHRpb25fbXNx bC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9zdWJzY3JpcHRpb25fbXNxbC5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi42Zjc1OWNlMjcKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9zdWJzY3JpcHRpb25f bXNxbC5zcWwKQEAgLTAsMCArMSw0IEBACitDUkVBVEUgU1VCU0NSSVBUSU9OIHRlc3RfY3JlYXRl X3N1YnNjcmlwdGlvbgorQ09OTkVDVElPTiAnIGhvc3Q9bG9jYWxob3N0IHBvcnQ9NTQzMiB1c2Vy PXBvc3RncmVzIGRibmFtZT1wb3N0Z3JlcyBwYXNzd29yZD1lZGInCitQVUJMSUNBVElPTiBzYW1w bGVfXzEKK3dpdGggKGNvbm5lY3QgPSBGYWxzZSwgZW5hYmxlZCA9IEZhbHNlLCAgY3JlYXRlX3Ns b3QgPSBGYWxzZSwgc2xvdF9uYW1lID0gTm9uZSwgc3luY2hyb25vdXNfY29tbWl0ID0gJ29mZicp OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1cy90ZXN0Lmpzb24gYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9u cy90ZXN0cy8xMF9wbHVzL3Rlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAuLmQ5Y2Y0NWJkZAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzLzEwX3Bs dXMvdGVzdC5qc29uCkBAIC0wLDAgKzEsNzAgQEAKK3sKKyAgInNjZW5hcmlvcyI6IFsKKyAgICB7 CisgICAgICAidHlwZSI6ICJjcmVhdGUiLAorICAgICAgIm5hbWUiOiAiQ3JlYXRlICBTdWJzY3Jp cHRpb24iLAorICAgICAgImVuZHBvaW50IjogIk5PREUtc3Vic2NyaXB0aW9uLm9iaiIsCisgICAg ICAic3FsX2VuZHBvaW50IjogIk5PREUtc3Vic2NyaXB0aW9uLnNxbF9pZCIsCisgICAgICAibXNx bF9lbmRwb2ludCI6ICJOT0RFLXN1YnNjcmlwdGlvbi5tc3FsIiwKKyAgICAgICJkYXRhIjogewor ICAgICAgICAgICJ1c2VybmFtZSI6ICJwb3N0Z3JlcyIsCisgICAgICAgICAgIm5hbWUiOiAidGVz dF9jcmVhdGVfc3Vic2NyaXB0aW9uIiwKKyAgICAgICAgICAiY29ubmVjdCI6IGZhbHNlLAorICAg ICAgICAgICJjb3B5X2RhdGEiOiBmYWxzZSwKKyAgICAgICAgICAiY3JlYXRlX3Nsb3QiOiBmYWxz ZSwKKyAgICAgICAgICAiZGIiOiAicG9zdGdyZXMiLAorICAgICAgICAgICJzdWJvd25lciI6ICJw b3N0Z3JlcyIsCisgICAgICAgICAgImVuYWJsZWQiOiBmYWxzZSwKKyAgICAgICAgICAiaG9zdCI6 ICJsb2NhbGhvc3QiLAorICAgICAgICAgICJzbG90X25hbWUiOiAiTm9uZSIsCisgICAgICAgICAg InNlcnZpY2UiOiAiIiwKKyAgICAgICAgICAicG9ydCI6IDU0MzIsCisgICAgICAgICAgInBhc3N3 b3JkIjogImVkYiIsCisgICAgICAgICAgInN5bmMiOiAib2ZmIiwKKyAgICAgICAgICAicHViIjog IltcInNhbXBsZV9fMVwiXSIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfc3FsX2ZpbGUiOiAi Y3JlYXRlX3N1YnNjcmlwdGlvbi5zcWwiLAorICAgICAgImV4cGVjdGVkX21zcWxfZmlsZSI6ICJj cmVhdGVfc3Vic2NyaXB0aW9uX21zcWwuc3FsIgorICAgIH0sCisgICAgeworICAgICAgInR5cGUi OiAiYWx0ZXIiLAorICAgICAgIm5hbWUiOiAiQWx0ZXIgIFN1YnNjcmlwdGlvbiIsCisgICAgICAi ZW5kcG9pbnQiOiAiTk9ERS1zdWJzY3JpcHRpb24ub2JqX2lkIiwKKyAgICAgICJzcWxfZW5kcG9p bnQiOiAiTk9ERS1zdWJzY3JpcHRpb24uc3FsX2lkIiwKKyAgICAgICJkYXRhIjogeworICAgICAg ICAgICJuYW1lIjogInRlc3RfYWx0ZXJfc3Vic2NyaXB0aW9uIgorICAgICAgfSwKKyAgICAgICJl eHBlY3RlZF9zcWxfZmlsZSI6ICJhbHRlcl9zdWJzY3JpcHRpb24uc3FsIgorICAgIH0sCisgICAg eworICAgICAgInR5cGUiOiAiYWx0ZXIiLAorICAgICAgIm5hbWUiOiAiQWx0ZXIgIHN5bmMgb2Yg c3Vic2NyaXB0aW9uIiwKKyAgICAgICJlbmRwb2ludCI6ICJOT0RFLXN1YnNjcmlwdGlvbi5vYmpf aWQiLAorICAgICAgInNxbF9lbmRwb2ludCI6ICJOT0RFLXN1YnNjcmlwdGlvbi5zcWxfaWQiLAor ICAgICAgImRhdGEiOiB7CisgICAgICAgICAgInN5bmMiOiAicmVtb3RlX2FwcGx5IgorICAgICAg fSwKKyAgICAgICJleHBlY3RlZF9zcWxfZmlsZSI6ICJhbHRlcl9zeW5jLnNxbCIKKyAgICB9LAor CisgICAgeworICAgICAgInR5cGUiOiAiYWx0ZXIiLAorICAgICAgIm5hbWUiOiAiQWx0ZXIgIG1h aW50YWluYW5jZSBEQiBpbiBjb25uZWN0aW9uIHN0cmluZyBvZiBzdWJzY3JpcHRpb24iLAorICAg ICAgImVuZHBvaW50IjogIk5PREUtc3Vic2NyaXB0aW9uLm9ial9pZCIsCisgICAgICAic3FsX2Vu ZHBvaW50IjogIk5PREUtc3Vic2NyaXB0aW9uLnNxbF9pZCIsCisgICAgICAiZGF0YSI6IHsKKyAg ICAgICAgICAiZGIiOiAiZWRiIgorICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9zcWxfZmlsZSI6 ICJhbHRlcl9tYWludGVuYW5jZV9kYi5zcWwiCisgICAgfSwKKworICAgIHsKKyAgICAgICJ0eXBl IjogImRlbGV0ZSIsCisgICAgICAibmFtZSI6ICJEcm9wIHN1YnNjcmlwdGlvbiIsCisgICAgICAi ZW5kcG9pbnQiOiAiTk9ERS1zdWJzY3JpcHRpb24uZGVsZXRlX2lkIiwKKyAgICAgICJkYXRhIjog eworICAgICAgICAibmFtZSI6ICJ0ZXN0X2FsdGVyX3N1YnNjcmlwdGlvbiIKKyAgICAgIH0KKyAg ICB9CisgIF0KK30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL19faW5pdF9fLnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlw dGlvbnMvdGVzdHMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwLi4yN2NkODkwNjcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy9fX2luaXRf Xy5weQpAQCAtMCwwICsxLDE2IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBw Z0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRl ciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHBn YWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCisKKworY2xhc3MgUnVs ZXNUZXN0R2VuZXJhdG9yKEJhc2VUZXN0R2VuZXJhdG9yKToKKworICAgIGRlZiBydW5UZXN0KHNl bGYpOgorICAgICAgICByZXR1cm4gW10KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3N1YnNj cmlwdGlvbl90ZXN0X2RhdGEuanNvbiBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3N1YnNjcmlwdGlvbl90ZXN0 X2RhdGEuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjQ3NzM1NTdm ZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3N1YnNjcmlwdGlvbl90ZXN0X2Rh dGEuanNvbgpAQCAtMCwwICsxLDQzMiBAQAoreworICAiYWRkX3N1YnNjcmlwdGlvbiI6IFsKKyAg ICB7CisgICAgICAibmFtZSI6ICJDcmVhdGUgc3Vic2NyaXB0aW9uIHdpdGggaW5zZXJ0IGFuZCB1 cGRhdGUiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vb2JqLyIsCisgICAg ICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAg ICAgICJ1c2VybmFtZSI6ICJwb3N0Z3JlcyIsCisgICAgICAgICAgIm5hbWUiOiAiUExBQ0VIT0xE RVIiLAorICAgICAgICAgICJjb25uZWN0IjogZmFsc2UsCisgICAgICAgICAgImNvcHlfZGF0YSI6 IGZhbHNlLAorICAgICAgICAgICJjcmVhdGVfc2xvdCI6IGZhbHNlLAorICAgICAgICAgICJkYiI6 ICJwb3N0Z3JlcyIsCisgICAgICAgICAgInN1Ym93bmVyIjogInBvc3RncmVzIiwKKyAgICAgICAg ICAiZW5hYmxlZCI6IGZhbHNlLAorICAgICAgICAgICJob3N0IjogImxvY2FsaG9zdCIsCisgICAg ICAgICAgInNsb3RfbmFtZSI6ICJOT05FIiwKKyAgICAgICAgICAic2VydmljZSI6ICIiLAorICAg ICAgICAgICJwb3J0IjogNTQzMiwKKyAgICAgICAgICAicGFzc3dvcmQiOiAiIiwKKyAgICAgICAg ICAic3luYyI6ICJvZmYiLAorICAgICAgICAgICJwdWIiOiAiUExBQ0VfSE9MREVSIgorICAgICAg fSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjog e30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAw CisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJDcmVhdGUgc3Vic2NyaXB0 aW9uIGZvciBmZXcgdGFibGVzIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9u L29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgImdldF9wdWJs aWNhdGlvbiI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAgICJ1c2VybmFt ZSI6ICJwb3N0Z3JlcyIsCisgICAgICAgICAgIm5hbWUiOiAiUExBQ0VIT0xERVIiLAorICAgICAg ICAgICJjb25uZWN0IjogZmFsc2UsCisgICAgICAgICAgImNvcHlfZGF0YSI6IGZhbHNlLAorICAg ICAgICAgICJjcmVhdGVfc2xvdCI6IGZhbHNlLAorICAgICAgICAgICJkYiI6ICJwb3N0Z3JlcyIs CisgICAgICAgICAgInN1Ym93bmVyIjogInBvc3RncmVzIiwKKyAgICAgICAgICAiZW5hYmxlZCI6 IGZhbHNlLAorICAgICAgICAgICJob3N0IjogImxvY2FsaG9zdCIsCisgICAgICAgICAgInNsb3Rf bmFtZSI6ICJOT05FIiwKKyAgICAgICAgICAic2VydmljZSI6ICIiLAorICAgICAgICAgICJwb3J0 IjogNTQzMiwKKyAgICAgICAgICAicGFzc3dvcmQiOiAiIiwKKyAgICAgICAgICAic3luYyI6ICJv ZmYiLAorICAgICAgICAgICJwdWIiOiAiUExBQ0VfSE9MREVSIgorICAgICAgfSwKKyAgICAgICJt b2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAi ZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9Cisg ICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJDcmVhdGUgYSBzdWJzY3JpcHRpb24gd2l0aG91 dCBuYW1lIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL29iai8iLAorICAg ICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAgICJ3aXRob3V0X25hbWUiOiB0cnVl LAorICAgICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAgICAidXNlcm5hbWUiOiAicG9zdGdyZXMi LAorICAgICAgICAgICJuYW1lIjogIlBMQUNFSE9MREVSIiwKKyAgICAgICAgICAiY29ubmVjdCI6 IGZhbHNlLAorICAgICAgICAgICJjb3B5X2RhdGEiOiBmYWxzZSwKKyAgICAgICAgICAiY3JlYXRl X3Nsb3QiOiBmYWxzZSwKKyAgICAgICAgICAiZGIiOiAicG9zdGdyZXMiLAorICAgICAgICAgICJz dWJvd25lciI6ICJwb3N0Z3JlcyIsCisgICAgICAgICAgImVuYWJsZWQiOiBmYWxzZSwKKyAgICAg ICAgICAiaG9zdCI6ICJsb2NhbGhvc3QiLAorICAgICAgICAgICJzbG90X25hbWUiOiAiTk9ORSIs CisgICAgICAgICAgInNlcnZpY2UiOiAiIiwKKyAgICAgICAgICAicG9ydCI6IDU0MzIsCisgICAg ICAgICAgInBhc3N3b3JkIjogIiIsCisgICAgICAgICAgInN5bmMiOiAib2ZmIiwKKyAgICAgICAg ICAicHViIjogIlBMQUNFX0hPTERFUiIKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1aXJl ZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEi OiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDQxMAorICAgICAgfQorICAgIH0sCisgICAgewor ICAgICAgIm5hbWUiOiAiRXJyb3Igd2hpbGUgYWRkaW5nIGEgc3Vic2NyaXB0aW9uIiwKKyAgICAg ICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZl X3Rlc3QiOiBmYWxzZSwKKyAgICAgICJlcnJvcl9jcmVhdGluZ19zdWJzY3JpcHRpb24iOiB0cnVl LAorICAgICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAgICAidXNlcm5hbWUiOiAicG9zdGdyZXMi LAorICAgICAgICAgICJuYW1lIjogIlBMQUNFSE9MREVSIiwKKyAgICAgICAgICAiY29ubmVjdCI6 IGZhbHNlLAorICAgICAgICAgICJjb3B5X2RhdGEiOiBmYWxzZSwKKyAgICAgICAgICAiY3JlYXRl X3Nsb3QiOiBmYWxzZSwKKyAgICAgICAgICAiZGIiOiAicG9zdGdyZXMiLAorICAgICAgICAgICJz dWJvd25lciI6ICJwb3N0Z3JlcyIsCisgICAgICAgICAgImVuYWJsZWQiOiBmYWxzZSwKKyAgICAg ICAgICAiaG9zdCI6ICJsb2NhbGhvc3QiLAorICAgICAgICAgICJzbG90X25hbWUiOiAiTk9ORSIs CisgICAgICAgICAgInNlcnZpY2UiOiAiIiwKKyAgICAgICAgICAicG9ydCI6IDU0MzIsCisgICAg ICAgICAgInBhc3N3b3JkIjogIiIsCisgICAgICAgICAgInN5bmMiOiAib2ZmIiwKKyAgICAgICAg ICAicHViIjogIlBMQUNFX0hPTERFUiIKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1aXJl ZCI6IHRydWUsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAgICAiZnVuY3Rpb25fbmFtZSI6 ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhl Y3V0ZV9kaWN0IiwKKyAgICAgICAgInJldHVybl92YWx1ZSI6ICIoRmFsc2UsICdNb2NrZWQgSW50 ZXJuYWwgU2VydmVyIEVycm9yICcpIgorICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjog eworICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAg ICAgICJuYW1lIjogIkV4Y2VwdGlvbiB3aGlsZSBhZGRpbmcgYSBzdWJzY3JpcHRpb24iLAorICAg ICAgInVybCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRp dmVfdGVzdCI6IGZhbHNlLAorICAgICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAgICAidXNlcm5h bWUiOiAicG9zdGdyZXMiLAorICAgICAgICAgICJuYW1lIjogIlBMQUNFSE9MREVSIiwKKyAgICAg ICAgICAiY29ubmVjdCI6IGZhbHNlLAorICAgICAgICAgICJjb3B5X2RhdGEiOiBmYWxzZSwKKyAg ICAgICAgICAiY3JlYXRlX3Nsb3QiOiBmYWxzZSwKKyAgICAgICAgICAiZGIiOiAicG9zdGdyZXMi LAorICAgICAgICAgICJzdWJvd25lciI6ICJwb3N0Z3JlcyIsCisgICAgICAgICAgImVuYWJsZWQi OiBmYWxzZSwKKyAgICAgICAgICAiaG9zdCI6ICJsb2NhbGhvc3QiLAorICAgICAgICAgICJzbG90 X25hbWUiOiAiTk9ORSIsCisgICAgICAgICAgInNlcnZpY2UiOiAiIiwKKyAgICAgICAgICAicG9y dCI6IDU0MzIsCisgICAgICAgICAgInBhc3N3b3JkIjogIiIsCisgICAgICAgICAgInN5bmMiOiAi b2ZmIiwKKyAgICAgICAgICAicHViIjogIlBMQUNFX0hPTERFUiIKKyAgICAgIH0sCisgICAgICAi bW9ja2luZ19yZXF1aXJlZCI6IHRydWUsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAgICAi ZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0aW9u LkNvbm5lY3Rpb24uZXhlY3V0ZV9kaWN0IiwKKyAgICAgICAgInJldHVybl92YWx1ZSI6ICIoVHJ1 ZSwgVHJ1ZSkoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yICcpIgorICAgICAg fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAK KyAgICAgIH0KKyAgICB9CisgIF0sCisgICJnZXRfc3Vic2NyaXB0aW9uIjogWworICAgIHsKKyAg ICAgICJuYW1lIjogIkdldCBhIHN1YnNjcmlwdGlvbiBVUkwiLAorICAgICAgInVybCI6ICIvYnJv d3Nlci9zdWJzY3JpcHRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUs CisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9 LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAor ICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiRXJyb3Igd2hpbGUgZmV0Y2hp bmcgYSBzdWJzY3JpcHRpb24gcHJvcGVydGllcyIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1 YnNjcmlwdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAg ICAibW9ja2luZ19yZXF1aXJlZCI6IHRydWUsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAg ICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0 aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV9kaWN0IiwKKyAgICAgICAgInJldHVybl92YWx1ZSI6ICIo RmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yJykiCisgICAgICB9LAorICAgICAg ImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgfQor ICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiR2V0IGEgc3Vic2NyaXB0aW9uIHByb3BlcnRp ZXMgdW5kZXIgZGF0YWJhc2Ugbm9kZXMiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zdWJzY3Jp cHRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAiZGF0 YWJhc2Vfbm9kZXMiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAg ICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAi c3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjog IkVycm9yIHdoaWxlIGZldGNoaW5nIGEgc3Vic2NyaXB0aW9uIHByb3BlcnRpZXMgdW5kZXIgZGF0 YWJhc2Ugbm9kZXMiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vb2JqLyIs CisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAgImRhdGFiYXNlX25vZGVz IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogdHJ1ZSwKKyAgICAgICJtb2NrX2Rh dGEiOiB7CisgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJpdmVyLnBz eWNvcGcyLmNvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX2RpY3QiLAorICAgICAgICAicmV0 dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InKSIKKyAg ICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjog NTAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJHZXQgYSBzdWJzY3Jp cHRpb24gTm9kZSIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9ub2Rlcy8i LAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWly ZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRh IjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsK KyAgICAgICJuYW1lIjogIkdldCBhIHN1YnNjcmlwdGlvbiBOb2RlIGRlcGVuZGFudHMiLAorICAg ICAgInVybCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vZGVwZW5kZW50LyIsCisgICAgICAiaXNf cG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAor ICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAg ICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUi OiAiR2V0IGEgc3Vic2NyaXB0aW9uIE5vZGUgZGVwZW5kZW5jeSIsCisgICAgICAidXJsIjogIi9i cm93c2VyL3N1YnNjcmlwdGlvbi9kZXBlbmRlbmN5LyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVz dCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tf ZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29k ZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiRXJyb3Igd2hp bGUgZmV0Y2hpbmcgdGhlIHN1YnNjcmlwdGlvbiB1bmRlciB0aGUgZGF0YWJhc2Ugbm9kZXMgdXNp bmcgd3JvbmcgZGF0YWJhc2UgaWQiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRp b24vbm9kZXMvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAibW9j a2luZ19yZXF1aXJlZCI6IHRydWUsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAgICAiZnVu Y3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0aW9uLkNv bm5lY3Rpb24uZXhlY3V0ZV8yZGFycmF5IiwKKyAgICAgICAgInJldHVybl92YWx1ZSI6ICIoRmFs c2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yJykiCisgICAgICB9LAorICAgICAgImV4 cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgfQorICAg IH0sCisgICAgeworICAgICAgIm5hbWUiOiAiR2V0IGFsbCB0aGUgc3Vic2NyaXB0aW9uIHVuZGVy IHRoZSBkYXRhYmFzZSBub2RlcyIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlv bi9ub2Rlcy8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tp bmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJkYXRhYmFzZV9ub2RlcyI6IHRydWUsCisgICAg ICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0 YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJH ZXQgYWxsIHRoZSBzdWJzY3JpcHRpb24gdW5kZXIgdGhlIGRhdGFiYXNlIG5vZGVzIHVzaW5nIHdy b25nIGRhdGFiYXNlIGlkIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL25v ZGVzLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAiaW5jb3JyZWN0 X2RhdGFiYXNlX2lkIjogdHJ1ZSwKKyAgICAgICJkYXRhYmFzZV9ub2RlcyI6IHRydWUsCisgICAg ICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAg ICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAg fQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgYWxs IHRoZSBzdWJzY3JpcHRpb24gdW5kZXIgdGhlIGRhdGFiYXNlIG5vZGVzIHVzaW5nIHdyb25nIGRh dGFiYXNlIGlkIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL25vZGVzLyIs CisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAgImRhdGFiYXNlX25vZGVz IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogdHJ1ZSwKKyAgICAgICJtb2NrX2Rh dGEiOiB7CisgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJpdmVyLnBz eWNvcGcyLmNvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlXzJkYXJyYXkiLAorICAgICAgICAi cmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InKSIK KyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2Rl IjogNTAwCisgICAgICB9CisgICAgfQorICBdLAorICAiZGVsZXRlX3N1YnNjcmlwdGlvbiI6IFsK KyAgICB7CisgICAgICAibmFtZSI6ICJEZWxldGUgYSBzdWJzY3JpcHRpb24gVVJMIiwKKyAgICAg ICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZl X3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJt b2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVz X2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkVycm9y IHdoaWxlIGRlbGV0aW5nIHRoZSBzdWJzY3JpcHRpb24iLAorICAgICAgInVybCI6ICIvYnJvd3Nl ci9zdWJzY3JpcHRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAor ICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiB0cnVlLAorICAgICAgIm1vY2tfZGF0YSI6IHsKKyAg ICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuY29u bmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfc2NhbGFyIiwKKyAgICAgICAgInJldHVybl92YWx1 ZSI6ICIoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yJykiCisgICAgICB9LAor ICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAg ICAgfQorICAgIH0KKyAgXSwKKyAgInVwZGF0ZV9zdWJzY3JpcHRpb24iOiBbCisgICAgeworICAg ICAgIm5hbWUiOiAidXBkYXRlIGEgc3Vic2NyaXB0aW9uIG5hbWUiLAorICAgICAgInVybCI6ICIv YnJvd3Nlci9zdWJzY3JpcHRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRy dWUsCisgICAgICAidXBkYXRlX25hbWUiOiB0cnVlLAorICAgICAgInRlc3RfZGF0YSI6IHsKKyAg ICAgICAgIm5hbWUiOiAiUExBQ0VfSE9MREVSIiwKKyAgICAgICAgImlkIjogIlBMQUNFX0hPTERF UiIKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1v Y2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNf Y29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAidXBkYXRl IGEgcG9ydCBpbiBjb25uZWN0aW9uIGRldGFpbHMgb2Ygc3Vic2NyaXB0aW9uIiwKKyAgICAgICJ1 cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rl c3QiOiB0cnVlLAorICAgICAgIm93bmVyX3N1YnNjcmlwdGlvbiI6IHRydWUsCisgICAgICAidGVz dF9kYXRhIjogeworICAgICAgICAiaWQiOiAiUExBQ0VfSE9MREVSIiwKKyAgICAgICAgInBvcnQi OiAiNTQ0NCIKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAg ICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJz dGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAi dXBkYXRlIGEgdXNlcm5hbWUgaW4gY29ubmVjdGlvbiBkZXRhaWxzIG9mIHN1YnNjcmlwdGlvbiIs CisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9vYmovIiwKKyAgICAgICJpc19w b3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJvd25lcl9zdWJzY3JpcHRpb24iOiB0cnVlLAor ICAgICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAgImlkIjogIlBMQUNFX0hPTERFUiIsCisgICAg ICAgICJ1c2VybmFtZSI6ICJzYW1wbGVfdXNlcm5hbWUiCisgICAgICB9LAorICAgICAgIm1vY2tp bmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBl Y3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9 LAorICAgIHsKKyAgICAgICJuYW1lIjogIkVycm9yIHdoaWxlIGZldGNoaW5nIGEgc3Vic2NyaXB0 aW9uIHRvIHVwZGF0ZSIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9vYmov IiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAibW9ja2luZ19yZXF1 aXJlZCI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAibmFtZSI6ICJQTEFD RV9IT0xERVIiLAorICAgICAgICAiaWQiOiAiUExBQ0VfSE9MREVSIgorICAgICAgfSwKKyAgICAg ICJtb2NrX2RhdGEiOiB7CisgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMu ZHJpdmVyLnBzeWNvcGcyLmNvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX2RpY3QiLAorICAg ICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgRXJy b3InKSIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1 c19jb2RlIjogNTAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJFcnJv ciB3aGlsZSBmZXRjaGluZyBhIHN1YnNjcmlwdGlvbiB0byB1cGRhdGUgdXNpbmcgd3Jvbmcgc3Vi c2NyaXB0aW9uIGlkIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL29iai8i LAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIndyb25nX3N1YnNjcmlw dGlvbl9pZCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAg InRlc3RfZGF0YSI6IHsKKyAgICAgICAgImlkIjogIlBMQUNFX0hPTERFUiIKKyAgICAgIH0sCisg ICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAg InN0YXR1c19jb2RlIjogNTAwCisgICAgICB9CisgICAgfQorICBdLAorICAiZGVsZXRlX211bHRp cGxlX3N1YnNjcmlwdGlvbiI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJEZWxldGUgbXVsdGlw bGUgc3Vic2NyaXB0aW9uIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL29i ai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVx dWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9k YXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9CisgIF0s CisgICJzcWxfc3Vic2NyaXB0aW9uIjogWworICAgIHsKKyAgICAgICJuYW1lIjogIkZldGNoIHRo ZSBzdWJzY3JpcHRpb24gU1FMIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9u L3NxbC8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdf cmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7CisgICAgICB9LAorICAgICAg ImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQor ICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgYSBzdWJz Y3JpcHRpb24gU1FMIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL3NxbC8i LAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAgICJtb2NraW5nX3JlcXVp cmVkIjogdHJ1ZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7CisgICAgICAgICJmdW5jdGlvbl9uYW1l IjogInBnYWRtaW4udXRpbHMuZHJpdmVyLnBzeWNvcGcyLmNvbm5lY3Rpb24uQ29ubmVjdGlvbi5l eGVjdXRlX2RpY3QiLAorICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01vY2tlZCBJ bnRlcm5hbCBTZXJ2ZXIgRXJyb3InKSIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6 IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICB9CisgICAgfSwKKyAgICB7Cisg ICAgICAibmFtZSI6ICJGZXRjaGluZyBhIHN1YnNjcmlwdGlvbiBtU1FMIiwKKyAgICAgICJ1cmwi OiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL21zcWwvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0 IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19k YXRhIjogeworICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5w c3ljb3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV9kaWN0IiwKKyAgICAgICAgInJl dHVybl92YWx1ZSI6ICIoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yJykiCisg ICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6 IDIwMAorICAgICAgfQorICAgIH0KKyAgXQorfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMv dGVzdF9zdWJzY3JpcHRpb25fY3JlYXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvdGVzdF9zdWJzY3Jp cHRpb25fY3JlYXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNzNi ZDM1M2I4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvdGVzdF9zdWJzY3JpcHRp b25fY3JlYXRlLnB5CkBAIC0wLDAgKzEsOTcgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBn QWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAy MCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVh c2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisK K2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAorZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRj aAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz LnNjaGVtYXMudGFibGVzLnRlc3RzIFwKKyAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxz Citmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRl c3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBv cnQgcGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGlt cG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHN1YnNjcmlw dGlvbl91dGlscworCisKK2NsYXNzIFB1YmxpY2F0aW9uc0FkZFRlc3RDYXNlKEJhc2VUZXN0R2Vu ZXJhdG9yKToKKyAgICAiIiJUaGlzIGNsYXNzIHdpbGwgYWRkIG5ldyBzdWJzY3JpcHRpb24iIiIK KyAgICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2VuYXJpb3MoJ2FkZF9zdWJzY3JpcHRp b24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRp b25fdXRpbHMudGVzdF9jYXNlcykKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2Vs Zi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQor ICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQorICAg ICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQorICAgICAgICBz ZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFt ZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAgIHNlbGYuc2VydmVyX3ZlcnNp b24gPSBzY2hlbWFfaW5mb1sic2VydmVyX3ZlcnNpb24iXQorICAgICAgICBpZiBzZWxmLnNlcnZl cl92ZXJzaW9uIDwgOTk5OTk6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KAorICAgICAgICAg ICAgICAgICJMb2dpY2FsIHJlcGxpY2F0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgIgorICAgICAgICAg ICAgICAgICJmb3Igc2VydmVyIHZlcnNpb24gbGVzcyB0aGFuIDEwIgorCisgICAgICAgICAgICAp CisKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxm LCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5v dCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oCisgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFk ZCBhIHN1YnNjcmlwdGlvbi4iKQorCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdCBh bmQgaGFzYXR0cihzZWxmLCAnZmV3X3RhYmxlc18xMScpOgorICAgICAgICAgICAgc2VsZi50YWJs ZV9uYW1lID0gInRhYmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAg ICAgICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYu c2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKKworICAg ICAgICAgICAgc2VsZi50ZXN0X2RhdGFbJ3B1YnRhYmxlJ10gPSBzdWJzY3JpcHRpb25fdXRpbHMu Z2V0X3RhYmxlcyhzZWxmKQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIlRo aXMgZnVuY3Rpb24gd2lsbCBzdWJzY3JpcHRpb24uIiIiCisgICAgICAgIHNlbGYudGVzdF9kYXRh WyduYW1lJ10gPSBcCisgICAgICAgICAgICAidGVzdF9zdWJzY3JpcHRpb25fYWRkXyVzIiAlIChz dHIodXVpZC51dWlkNCgpKVsxOjhdKQorCisgICAgICAgIHNlbGYudGVzdF9kYXRhWydwdWInXSA9 ICIiIlsic2FtcGxlX18xIl0iIiIKKworICAgICAgICBkYXRhID0gc2VsZi50ZXN0X2RhdGEKKyAg ICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLmNyZWF0ZV9zdWJzY3JpcHRpb24oKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYg aGFzYXR0cihzZWxmLCAnd2l0aG91dF9uYW1lJyk6CisgICAgICAgICAgICAgICAgZGVsIGRhdGFb Im5hbWUiXQorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5jcmVhdGVfc3Vic2NyaXB0 aW9uKCkKKyAgICAgICAgICAgIGVsaWYgaGFzYXR0cihzZWxmLCAnZXJyb3JfY3JlYXRpbmdfc3Vi c2NyaXB0aW9uJyk6CisgICAgICAgICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsi ZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVl PWV2YWwoc2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1ZSJdKSk6CisgICAgICAgICAgICAgICAg ICAgIHJlc3BvbnNlID0gc2VsZi5jcmVhdGVfc3Vic2NyaXB0aW9uKCkKKyAgICAgICAgICAgIGVs c2U6CisgICAgICAgICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25f bmFtZSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lkZV9lZmZlY3Q9c2VsZi5tb2Nr X2RhdGFbInJldHVybl92YWx1ZSJdKToKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLmNyZWF0ZV9zdWJzY3JpcHRpb24oKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3Bv bnNlLnN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRf ZGF0YVsic3RhdHVzX2NvZGUiXSkKKworICAgIGRlZiBjcmVhdGVfc3Vic2NyaXB0aW9uKHNlbGYp OgorICAgICAgICByZXR1cm4gc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAgICAgIHNlbGYudXJs ICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYu c2VydmVyX2lkKSArICcvJyArIHN0cigKKyAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKSArICcv JywKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhzZWxmLnRlc3RfZGF0YSksCisgICAgICAg ICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6 CisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAgICAgICAgICAgIHN1YnNjcmlw dGlvbl91dGlscy5kZWxldGVfc3Vic2NyaXB0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnRlc3RfZGF0YVsnbmFtZSddKQorCisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UK KyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNl cnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3Rlc3Rfc3Vi c2NyaXB0aW9uX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3Rlc3Rfc3Vic2NyaXB0aW9uX2Rl bGV0ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjdjZDJhYWZjZQot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3Rlc3Rfc3Vic2NyaXB0aW9uX2RlbGV0 ZS5weQpAQCAtMCwwICsxLDkzIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBw Z0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRl ciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQg dXVpZAorZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAorCitmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0 IFwKKyAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBk YXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHJl Z3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zy b20gLiBpbXBvcnQgdXRpbHMgYXMgc3Vic2NyaXB0aW9uX3V0aWxzCisKKworY2xhc3MgUHVibGlj YXRpb25EZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFz cyB3aWxsIGRlbGV0ZSBzdWJzY3JpcHRpb24uIiIiCisgICAgc2NlbmFyaW9zID0gdXRpbHMuZ2Vu ZXJhdGVfc2NlbmFyaW9zKCdkZWxldGVfc3Vic2NyaXB0aW9uJywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uX3V0aWxzLnRlc3RfY2FzZXMpCisK KyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2Rl X2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBw YXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBz Y2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZv WyJkYl9pZCJdCisgICAgICAgIHNlbGYuc2VydmVyX3ZlcnNpb24gPSBzY2hlbWFfaW5mb1sic2Vy dmVyX3ZlcnNpb24iXQorICAgICAgICBpZiBzZWxmLnNlcnZlcl92ZXJzaW9uIDwgOTk5OTk6Cisg ICAgICAgICAgICBzZWxmLnNraXBUZXN0KAorICAgICAgICAgICAgICAgICJMb2dpY2FsIHJlcGxp Y2F0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgIgorICAgICAgICAgICAgICAgICJmb3Igc2VydmVyIHZl cnNpb24gbGVzcyB0aGFuIDEwIgorCisgICAgICAgICAgICApCisgICAgICAgIGRiX2NvbiA9IGRh dGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2Vy dmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5l Y3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJD b3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBkZWxldGUgc3Vic2NyaXB0aW9uLiIpCisg ICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCisgICAgICAg IHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQorICAgICAgICBz Y2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3Bv bnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2No ZW1hIHRvIGRlbGV0ZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnNjcmlwdGlv bi4iKQorICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1lID0gInRlc3Rfc3Vic2NyaXB0aW9u X2RlbGV0ZV8lcyIgJSAoCisgICAgICAgICAgICBzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorCisg ICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX2lkID0gc3Vic2NyaXB0aW9uX3V0aWxzLmNyZWF0ZV9z dWJzY3JpcHRpb24oCisgICAgICAgICAgICBzZWxmLnNlcnZlciwKKyAgICAgICAgICAgIHNlbGYu ZGJfbmFtZSwKKyAgICAgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX25hbWUpCisKKyAgICBkZWYg ZGVsZXRlX3N1YnNjcmlwdGlvbihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYudGVzdGVyLmRl bGV0ZSgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAn LycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRi X2lkKSArCisgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zdWJzY3JpcHRpb25faWQpLAorICAg ICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6 CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgc3Vic2NyaXB0aW9uIiIiCisg ICAgICAgIHN1YnNjcmlwdGlvbl9yZXNwb25zZSA9IHN1YnNjcmlwdGlvbl91dGlscy52ZXJpZnlf c3Vic2NyaXB0aW9uKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICBzZWxm LmRiX25hbWUsCisgICAgICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1lKQorICAgICAgICBp ZiBub3Qgc3Vic2NyaXB0aW9uX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJDb3VsZCBub3QgZmluZCB0aGUgc3Vic2NyaXB0aW9uIHRvIGRlbGV0ZS4iKQorCisgICAgICAg IGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwg ImludmFsaWRfc3Vic2NyaXB0aW9uX2lkIik6CisgICAgICAgICAgICAgICAgc2VsZi5zdWJzY3Jp cHRpb25faWQgPSA5OTk5CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZGVsZXRlX3N1YnNj cmlwdGlvbigpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB3aXRoIHBhdGNoKHNlbGYubW9j a19kYXRhWyJmdW5jdGlvbl9uYW1lIl0sCisgICAgICAgICAgICAgICAgICAgICAgIHJldHVybl92 YWx1ZT1ldmFsKHNlbGYubW9ja19kYXRhWyJyZXR1cm5fdmFsdWUiXSkpOgorICAgICAgICAgICAg ICAgIHJlc3BvbnNlID0gc2VsZi5kZWxldGVfc3Vic2NyaXB0aW9uKCkKKworICAgICAgICBzZWxm LmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZXhwZWN0ZWRfZGF0YVsic3RhdHVzX2NvZGUiXSkKKworICAgIGRlZiB0ZWFyRG93 bihzZWxmKToKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICBzdWJz Y3JpcHRpb25fdXRpbHMuZGVsZXRlX3N1YnNjcmlwdGlvbihzZWxmLnNlcnZlciwgc2VsZi5kYl9u YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnN1YnNjcmlwdGlvbl9uYW1lKQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2Rh dGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlw dGlvbnMvdGVzdHMvdGVzdF9zdWJzY3JpcHRpb25fZGVsZXRlX211bHRpcGxlLnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlv bnMvdGVzdHMvdGVzdF9zdWJzY3JpcHRpb25fZGVsZXRlX211bHRpcGxlLnB5Cm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uZWE5M2MwNmYyCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNj cmlwdGlvbnMvdGVzdHMvdGVzdF9zdWJzY3JpcHRpb25fZGVsZXRlX211bHRpcGxlLnB5CkBAIC0w LDAgKzEsMTA2IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3Jl U1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERl dmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9z dGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgdXVpZAoraW1w b3J0IGpzb24KKworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCisgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxl c191dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3Rz IGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQg cGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9y dCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHN1YnNjcmlwdGlv bl91dGlscworCisKK2NsYXNzIFB1YmxpY2F0aW9uRGVsZXRlVGVzdENhc2VzKEJhc2VUZXN0R2Vu ZXJhdG9yKToKKyAgICAiIiJUaGlzIGNsYXNzIHdpbGwgZGVsZXRlIHN1YnNjcmlwdGlvbi4iIiIK KworICAgIHNjZW5hcmlvcyA9IHV0aWxzLmdlbmVyYXRlX3NjZW5hcmlvcygnZGVsZXRlX211bHRp cGxlX3N1YnNjcmlwdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN1YnNjcmlwdGlvbl91dGlscy50ZXN0X2Nhc2VzKQorCisgICAgZGVmIHNldFVwKHNlbGYp OgorICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0x XVsiZGJfbmFtZSJdCisgICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2No ZW1hIl1bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9p ZCJdCisgICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQorICAgICAgICBz ZWxmLnNlcnZlcl92ZXJzaW9uID0gc2NoZW1hX2luZm9bInNlcnZlcl92ZXJzaW9uIl0KKyAgICAg ICAgaWYgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA8IDk5OTk5OgorICAgICAgICAgICAgc2VsZi5za2lw VGVzdCgKKyAgICAgICAgICAgICAgICAiTG9naWNhbCByZXBsaWNhdGlvbiBpcyBub3Qgc3VwcG9y dGVkICIKKyAgICAgICAgICAgICAgICAiZm9yIHNlcnZlciB2ZXJzaW9uIGxlc3MgdGhhbiAxMCIK KworICAgICAgICAgICAgKQorICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0 X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkK KyAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAgICAgICAg IHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiQ291bGQgbm90IGNvbm5lY3QgdG8g ZGF0YWJhc2UgdG8gZGVsZXRlIHN1YnNjcmlwdGlvbi4iKQorICAgICAgICBzZWxmLnNjaGVtYV9p ZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0g c2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2No ZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hl bWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byAiCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImRlbGV0ZSBzdWJzY3JpcHRpb24uIikKKyAgICAgICAgc2VsZi50 YWJsZV9uYW1lID0gInRhYmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkK KyAgICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VsZi5z ZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQorICAgICAgICBzZWxm LnN1YnNjcmlwdGlvbl9uYW1lID0gInRlc3Rfc3Vic2NyaXB0aW9uX2RlbGV0ZV8lcyIgJSAoCisg ICAgICAgICAgICBzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBzZWxmLnN1YnNjcmlw dGlvbl9uYW1lXzEgPSAidGVzdF9zdWJzY3JpcHRpb25fZGVsZXRlXyVzIiAlICgKKyAgICAgICAg ICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX2lk cyA9IFsKKyAgICAgICAgICAgIHN1YnNjcmlwdGlvbl91dGlscy5jcmVhdGVfc3Vic2NyaXB0aW9u KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1lKSwKKyAgICAgICAg ICAgIHN1YnNjcmlwdGlvbl91dGlscy5jcmVhdGVfc3Vic2NyaXB0aW9uKHNlbGYuc2VydmVyLCBz ZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1lXzEpLAorICAgICAgICBdCisKKyAgICBkZWYg ZGVsZXRlX211bHRpcGxlX3N1YnNjcmlwdGlvbihzZWxmLCBkYXRhKToKKyAgICAgICAgcmV0dXJu IHNlbGYudGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS8iLmZvcm1h dChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1 ZSwKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgIGNvbnRl bnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICApCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToK KyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBzdWJzY3JpcHRpb24uIiIiCisg ICAgICAgIHN1YnNjcmlwdGlvbl9yZXNwb25zZSA9IHN1YnNjcmlwdGlvbl91dGlscy52ZXJpZnlf c3Vic2NyaXB0aW9uKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICBzZWxm LmRiX25hbWUsCisgICAgICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1lKQorICAgICAgICBp ZiBub3Qgc3Vic2NyaXB0aW9uX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJDb3VsZCBub3QgZmluZCB0aGUgc3Vic2NyaXB0aW9uIHRvIGRlbGV0ZS4iKQorCisgICAgICAg IHN1YnNjcmlwdGlvbl9yZXNwb25zZSA9IHN1YnNjcmlwdGlvbl91dGlscy52ZXJpZnlfc3Vic2Ny aXB0aW9uKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICBzZWxmLmRiX25h bWUsCisgICAgICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1lXzEpCisgICAgICAgIGlmIG5v dCBzdWJzY3JpcHRpb25fcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNv dWxkIG5vdCBmaW5kIHRoZSBzdWJzY3JpcHRpb24gdG8gZGVsZXRlLiIpCisKKyAgICAgICAgZGF0 YSA9IHsnaWRzJzogc2VsZi5zdWJzY3JpcHRpb25faWRzfQorICAgICAgICBpZiBzZWxmLmlzX3Bv c2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZGVsZXRlX211bHRpcGxl X3N1YnNjcmlwdGlvbihkYXRhKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0 YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfZGF0YVsi c3RhdHVzX2NvZGUiXSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIyBEaXNj b25uZWN0IHRoZSBkYXRhYmFzZQorCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3Rf ZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2Ny aXB0aW9ucy90ZXN0cy90ZXN0X3N1YnNjcmlwdGlvbl9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy90 ZXN0X3N1YnNjcmlwdGlvbl9nZXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwLi5iNjA3YzMzOTkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy90ZXN0X3N1 YnNjcmlwdGlvbl9nZXQucHkKQEAgLTAsMCArMSw5OSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMK KyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMg LSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMg cmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKworaW1wb3J0IHV1aWQKK2Zyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgcGF0Y2gKKworZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFz LnRhYmxlcy50ZXN0cyBcCisgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscworZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRl c3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBh cyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQg QmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGlj dAorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFz IHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHN1YnNjcmlwdGlvbl91dGlscworCisKK2Ns YXNzIFB1YmxpY2F0aW9uR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIlRo aXMgY2xhc3Mgd2lsbCBmZXRjaCB0aGUgc3Vic2NyaXB0aW9uIHVuZGVyIHRhYmxlIG5vZGUuIiIi CisgICAgc2NlbmFyaW9zID0gdXRpbHMuZ2VuZXJhdGVfc2NlbmFyaW9zKCdnZXRfc3Vic2NyaXB0 aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0 aW9uX3V0aWxzLnRlc3RfY2FzZXMpCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNl bGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0K KyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KKyAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAg c2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIHNlbGYuc2VydmVyX3Zl cnNpb24gPSBzY2hlbWFfaW5mb1sic2VydmVyX3ZlcnNpb24iXQorICAgICAgICBpZiBzZWxmLnNl cnZlcl92ZXJzaW9uIDwgOTk5OTk6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KAorICAgICAg ICAgICAgICAgICJMb2dpY2FsIHJlcGxpY2F0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgIgorICAgICAg ICAgICAgICAgICJmb3Igc2VydmVyIHZlcnNpb24gbGVzcyB0aGFuIDEwIgorCisgICAgICAgICAg ICApCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2Vs ZiwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBpZiBu b3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0 aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byAiCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgImRlbGV0ZSBzdWJzY3JpcHRpb24uIikKKyAgICAgICAgc2VsZi5zY2hlbWFf aWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9 IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNj aGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2No ZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlICIKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAic3Vic2NyaXB0aW9uLiIpCisgICAgICAgIHNlbGYu dGFibGVfbmFtZSA9ICJ0YWJsZV9jb2x1bW5fJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0p CisgICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYu c2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKKyAgICAgICAgc2Vs Zi5zdWJzY3JpcHRpb25fbmFtZSA9ICJ0ZXN0X3N1YnNjcmlwdGlvbl9kZWxldGVfJXMiICUgKAor ICAgICAgICAgICAgc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgc2VsZi5zdWJzY3Jp cHRpb25faWQgPSBzdWJzY3JpcHRpb25fdXRpbHMuY3JlYXRlX3N1YnNjcmlwdGlvbigKKyAgICAg ICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICBzZWxmLnN1YnNj cmlwdGlvbl9uYW1lKQorCisgICAgZGVmIGdldF9zdWJzY3JpcHRpb24oc2VsZik6CisgICAgICAg IHJldHVybiBzZWxmLnRlc3Rlci5nZXQoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGls cy5TRVJWRVJfR1JPVVApICsgJy8nICsgc3RyKAorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy X2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKyBzdHIoc2Vs Zi5zdWJzY3JpcHRpb25faWQpLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24n KQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2ls bCBmZXRjaCB0aGUgc3Vic2NyaXB0aW9uLiIiIgorCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRp dmVfdGVzdDoKKyAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgImRhdGFiYXNlX25vZGVzIik6 CisgICAgICAgICAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25faWQgPSAnJworICAgICAgICAgICAg ICAgIHJlc3BvbnNlID0gc2VsZi5nZXRfc3Vic2NyaXB0aW9uKCkKKyAgICAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmdldF9zdWJzY3JpcHRpb24oKQorICAg ICAgICBlbHNlOgorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAiZGF0YWJhc2Vfbm9kZXMi KToKKyAgICAgICAgICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9pZCA9ICcnCisgICAgICAgICAg ICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPWV2YWwoc2VsZi5tb2NrX2RhdGFbInJl dHVybl92YWx1ZSJdKSk6CisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5nZXRf c3Vic2NyaXB0aW9uKCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgd2l0aCBw YXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuX3ZhbHVlPWV2YWwoc2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1ZSJd KSk6CisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5nZXRfc3Vic2NyaXB0aW9u KCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLAorICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfZGF0YVsic3RhdHVzX2NvZGUiXSkK KworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRh YmFzZQorICAgICAgICBzdWJzY3JpcHRpb25fdXRpbHMuZGVsZXRlX3N1YnNjcmlwdGlvbihzZWxm LnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1lKQorICAgICAgICBkYXRhYmFzZV91 dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lk KQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvdGVzdF9zdWJzY3JpcHRpb25fcHV0LnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNj cmlwdGlvbnMvdGVzdHMvdGVzdF9zdWJzY3JpcHRpb25fcHV0LnB5Cm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMC4uMmQ0NzliMWEzCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlv bnMvdGVzdHMvdGVzdF9zdWJzY3JpcHRpb25fcHV0LnB5CkBAIC0wLDAgKzEsMTEyIEBACisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENv cHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMg VGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisj CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQganNvbgoraW1wb3J0IHV1aWQKK2Zyb20gdW5p dHRlc3QubW9jayBpbXBvcnQgcGF0Y2gKKworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCisgICAgaW1wb3J0 IHV0aWxzIGFzIHRhYmxlc191dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMg c2NoZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zy b20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVn cmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90 ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxz IGFzIHN1YnNjcmlwdGlvbl91dGlscworCisKK2NsYXNzIFB1YmxpY2F0aW9uVXBkYXRlVGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIlRoaXMgY2xhc3Mgd2lsbCB1cGRhdGUgdGhl IHN1YnNjcmlwdGlvbi4iIiIKKyAgICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2VuYXJp b3MoJ3VwZGF0ZV9zdWJzY3JpcHRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdWJzY3JpcHRpb25fdXRpbHMudGVzdF9jYXNlcykKKworICAgIGRlZiBzZXRV cChzZWxmKToKKyAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJh c2UiXVstMV1bImRiX25hbWUiXQorICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2Rp Y3RbInNjaGVtYSJdWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJz ZXJ2ZXJfaWQiXQorICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAg ICAgICAgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfdmVyc2lvbiJd CisgICAgICAgIGlmIHNlbGYuc2VydmVyX3ZlcnNpb24gPCA5OTk5OToKKyAgICAgICAgICAgIHNl bGYuc2tpcFRlc3QoCisgICAgICAgICAgICAgICAgIkxvZ2ljYWwgcmVwbGljYXRpb24gaXMgbm90 IHN1cHBvcnRlZCAiCisgICAgICAgICAgICAgICAgImZvciBzZXJ2ZXIgdmVyc2lvbiBsZXNzIHRo YW4gMTAiCisKKyAgICAgICAgICAgICkKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMu Y29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYu ZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBjb25u ZWN0IHRvIGRhdGFiYXNlIHRvIGRlbGV0ZSBzdWJzY3JpcHRpb24uIikKKyAgICAgICAgc2VsZi5z Y2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICAgICAgc2VsZi5zY2hlbWFf bmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAgIHNjaGVtYV9yZXNwb25z ZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRl ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3Vic2NyaXB0aW9uLiIpCisgICAgICAg IHNlbGYudGFibGVfbmFtZSA9ICJ0YWJsZV9jb2x1bW5fJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0pCisgICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxl KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKKyAgICAg ICAgc2VsZi5zdWJzY3JpcHRpb25fbmFtZSA9ICJ0ZXN0X3N1YnNjcmlwdGlvbl91cGRhdGVfJXMi ICUgKAorICAgICAgICAgICAgc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgc2VsZi5z dWJzY3JpcHRpb25faWQgPSBcCisgICAgICAgICAgICBzdWJzY3JpcHRpb25fdXRpbHMuY3JlYXRl X3N1YnNjcmlwdGlvbihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25fbmFt ZSkKKworICAgIGRlZiB1cGRhdGVfc3Vic2NyaXB0aW9uKHNlbGYsIGRhdGEpOgorICAgICAgICBy ZXR1cm4gc2VsZi50ZXN0ZXIucHV0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMu U0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsg Jy8nICsgc3RyKAorICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpICsKKyAgICAgICAgICAgICcv JyArIHN0cihzZWxmLnN1YnNjcmlwdGlvbl9pZCksCisgICAgICAgICAgICBkYXRhPWpzb24uZHVt cHMoZGF0YSksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisKKyAgICBkZWYg cnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0aGUg c3Vic2NyaXB0aW9uLiIiIgorICAgICAgICBzdWJzY3JpcHRpb25fbmFtZSA9IFwKKyAgICAgICAg ICAgIHN1YnNjcmlwdGlvbl91dGlscy52ZXJpZnlfc3Vic2NyaXB0aW9uKHNlbGYuc2VydmVyLCBz ZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1lKQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYs ICJ1cGRhdGVfbmFtZSIpOgorICAgICAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25fbmFtZSA9ICJ0 ZXN0X3N1YnNjcmlwdGlvbl91cGRhdGVfMl8lcyIgJSAoCisgICAgICAgICAgICAgICAgc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgICAgIHNlbGYudGVzdF9kYXRhWyduYW1lJ10gPSBz ZWxmLnN1YnNjcmlwdGlvbl9uYW1lCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnRl c3RfZGF0YVsnbmFtZSddID0gc2VsZi5zdWJzY3JpcHRpb25fbmFtZQorICAgICAgICBzZWxmLnRl c3RfZGF0YVsnaWQnXSA9IHNlbGYuc3Vic2NyaXB0aW9uX2lkCisKKyAgICAgICAgaWYgbm90IHN1 YnNjcmlwdGlvbl9uYW1lOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg ZmluZCB0aGUgc3Vic2NyaXB0aW9uIHRvIHVwZGF0ZS4iKQorCisgICAgICAgIGlmIHNlbGYuaXNf cG9zaXRpdmVfdGVzdDoKKyAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgIndyb25nX3N1YnNj cmlwdGlvbl9pZCIpOgorICAgICAgICAgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX2lkID0gOTk5 OQorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAicGxpZF9ub25lIik6CisgICAgICAgICAg ICAgICAgc2VsZi5zdWJzY3JpcHRpb25faWQgPSAnJworICAgICAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLnVwZGF0ZV9zdWJzY3JpcHRpb24oc2VsZi50ZXN0X2RhdGEpCisgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICB3aXRoIHBhdGNoKHNlbGYubW9ja19kYXRhWyJmdW5jdGlvbl9uYW1lIl0sCisg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZT1ldmFsKHNlbGYubW9ja19kYXRhWyJy ZXR1cm5fdmFsdWUiXSkpOgorICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgIndyb25n X3N1YnNjcmlwdGlvbl9pZCIpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnN1YnNjcmlwdGlv bl9pZCA9IDk5OTkKKyAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudXBkYXRlX3N1YnNj cmlwdGlvbihzZWxmLnRlc3RfZGF0YSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3Bv bnNlLnN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRf ZGF0YVsic3RhdHVzX2NvZGUiXSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKworICAgICAg ICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIHN1YnNjcmlwdGlvbl91dGlscy5k ZWxldGVfc3Vic2NyaXB0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX25h bWUpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2Vs Zi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy90ZXN0 X3N1YnNjcmlwdGlvbl9zcWwucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy90ZXN0X3N1YnNjcmlwdGlvbl9z cWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi43OTdkZjMzMjMKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy90ZXN0X3N1YnNjcmlwdGlvbl9zcWwucHkK QEAgLTAsMCArMSw4OCBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9z dGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1p biBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IHV1aWQK K2Zyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgcGF0Y2gKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAorICAg IGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAorICAgIHV0 aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0 aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitm cm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lvbi5w eXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9y dCB1dGlscyBhcyBzdWJzY3JpcHRpb25fdXRpbHMKKworCitjbGFzcyBQdWJsaWNhdGlvbkdldFRl c3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiJUaGlzIGNsYXNzIHdpbGwgZmV0Y2gg dGhlIHN1YnNjcmlwdGlvbiB1bmRlciB0YWJsZSBub2RlLiIiIgorICAgIHNjZW5hcmlvcyA9IHV0 aWxzLmdlbmVyYXRlX3NjZW5hcmlvcygnc3FsX3N1YnNjcmlwdGlvbicsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbl91dGlscy50ZXN0X2Nhc2Vz KQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRf bm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCisgICAgICAgIHNjaGVtYV9pbmZv ID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lk ID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCisgICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFf aW5mb1siZGJfaWQiXQorICAgICAgICBzZWxmLnNlcnZlcl92ZXJzaW9uID0gc2NoZW1hX2luZm9b InNlcnZlcl92ZXJzaW9uIl0KKyAgICAgICAgaWYgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA8IDk5OTk5 OgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgKKyAgICAgICAgICAgICAgICAiTG9naWNhbCBy ZXBsaWNhdGlvbiBpcyBub3Qgc3VwcG9ydGVkICIKKyAgICAgICAgICAgICAgICAiZm9yIHNlcnZl ciB2ZXJzaW9uIGxlc3MgdGhhbiAxMCIKKworICAgICAgICAgICAgKQorICAgICAgICBkYl9jb24g PSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9V UCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJj b25uZWN0ZWQiXToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAg ICAiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gZGVsZXRlIHN1YnNjcmlwdGlvbi4i KQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAg ICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAg ICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2Vy dmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9y ZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhl IHNjaGVtYSB0byBkZWxldGUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJzY3Jp cHRpb24uIikKKyAgICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRhYmxlX2NvbHVtbl8lcyIgJSAo c3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191 dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50 YWJsZV9uYW1lKQorICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1lID0gInRlc3Rfc3Vic2Ny aXB0aW9uX2RlbGV0ZV8lcyIgJSAoCisgICAgICAgICAgICBzdHIodXVpZC51dWlkNCgpKVsxOjhd KQorICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9pZCA9IFwKKyAgICAgICAgICAgIHN1YnNjcmlw dGlvbl91dGlscy5jcmVhdGVfc3Vic2NyaXB0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnN1YnNjcmlwdGlvbl9uYW1lKQorCisgICAgZGVmIGdldF9zcWwoc2VsZik6CisgICAgICAgIHJl dHVybiBzZWxmLnRlc3Rlci5nZXQoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5T RVJWRVJfR1JPVVApICsgJy8nICsgc3RyKAorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lk KSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKyBzdHIoc2VsZi5z dWJzY3JpcHRpb25faWQpLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQor CisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBm ZXRjaCB0aGUgc3Vic2NyaXB0aW9uIHVuZGVyIHRhYmxlIG5vZGUuIiIiCisKKyAgICAgICAgaWYg c2VsZi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmdldF9z cWwoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0 YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9 ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0dXJuX3ZhbHVlIl0pKToKKyAgICAgICAgICAgICAgICBy ZXNwb25zZSA9IHNlbGYuZ2V0X3NxbCgpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNw b25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVk X2RhdGFbInN0YXR1c19jb2RlIl0pCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAg IHN1YnNjcmlwdGlvbl91dGlscy5kZWxldGVfc3Vic2NyaXB0aW9uKHNlbGYuc2VydmVyLCBzZWxm LmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc3Vic2NyaXB0aW9uX25hbWUpCisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJh c2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxm LnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3V0aWxz LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3N1YnNjcmlwdGlvbnMvdGVzdHMvdXRpbHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwLi4zODVkN2M3M2UKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy91 dGlscy5weQpAQCAtMCwwICsxLDE1NyBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1p biA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBU aGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQg dW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworCitp bXBvcnQgc3lzCitpbXBvcnQgb3MKK2ltcG9ydCBqc29uCitpbXBvcnQgdHJhY2ViYWNrCisKK2Zy b20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGls cworCitDVVJSRU5UX1BBVEggPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5yZWFscGF0aChfX2Zp bGVfXykpCit3aXRoIG9wZW4oQ1VSUkVOVF9QQVRIICsgIi9zdWJzY3JpcHRpb25fdGVzdF9kYXRh Lmpzb24iKSBhcyBkYXRhX2ZpbGU6CisgICAgdGVzdF9jYXNlcyA9IGpzb24ubG9hZChkYXRhX2Zp bGUpCisKKworZGVmIGdldF90YWJsZXMoc2VsZik6CisgICAgdGFibGVzID0gc2VsZi50ZXN0ZXIu Z2V0KAorICAgICAgICAnL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL2dldF90YWJsZXMvJyArIHN0cigK KyAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKyBzdHIoCisgICAgICAgICAg ICBzZWxmLnNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycs CisgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKyAgICByZXR1cm4ganNvbi5kdW1w cyhbdGFibGVzLmpzb25bJ2RhdGEnXVsxXVsndmFsdWUnXV0pCisKKworZGVmIGNyZWF0ZV9zdWJz Y3JpcHRpb25fYXBpKHNlbGYpOgorICAgIHJldHVybiBzZWxmLnRlc3Rlci5wb3N0KAorICAgICAg ICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgc3Ry KHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cigKKyAgICAgICAgICAgIHNlbGYuZGJfaWQpICsg Jy8nLAorICAgICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi50ZXN0X2RhdGEpLAorICAgICAgICBj b250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKworZGVmIGNyZWF0ZV9zdWJzY3JpcHRpb24oc2Vy dmVyLCBkYl9uYW1lLCBzdWJzY3JpcHRpb25fbmFtZSk6CisgICAgIiIiCisgICAgVGhpcyBmdW5j dGlvbiBjcmVhdGVzIGEgc3Vic2NyaXB0aW9uLgorICAgIDpwYXJhbSBzZXJ2ZXI6IHNlcnZlciBk ZXRhaWxzCisgICAgOnR5cGUgc2VydmVyOiBkaWN0CisgICAgOnBhcmFtIGRiX25hbWU6IGRhdGFi YXNlIG5hbWUKKyAgICA6dHlwZSBkYl9uYW1lOiBzdHIKKyAgICA6cGFyYW0gc3Vic2NyaXB0aW9u X25hbWU6IHN1YnNjcmlwdGlvbiBuYW1lCisgICAgOnR5cGUgc3Vic2NyaXB0aW9uX25hbWU6IHN0 cgorICAgIDpyZXR1cm4gc3Vic2NyaXB0aW9uX2lkOiBzdWJzY3JpcHRpb24gaWQKKyAgICA6cnR5 cGU6IGludAorICAgICIiIgorICAgIHRyeToKKyAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdl dF9kYl9jb25uZWN0aW9uKGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXJ2ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2hvc3QnXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsncG9ydCddLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydzc2xt b2RlJ10pCisgICAgICAgIG9sZF9pc29sYXRpb25fbGV2ZWwgPSBjb25uZWN0aW9uLmlzb2xhdGlv bl9sZXZlbAorICAgICAgICBjb25uZWN0aW9uLnNldF9pc29sYXRpb25fbGV2ZWwoMCkKKyAgICAg ICAgcGdfY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAgICAgICBxdWVyeSA9ICIiIkNS RUFURSBTVUJTQ1JJUFRJT04gIiVzIiAiIiIgXAorICAgICAgICAgICAgICAgICIiIkNPTk5FQ1RJ T04gJ2hvc3Q9MTkyLjE2OC4xLjUwIHBvcnQ9NTQzMiB1c2VyPWZvbyAiIiIgXAorICAgICAgICAg ICAgICAgICIiImRibmFtZT1mb29kYicgIiIiIFwKKyAgICAgICAgICAgICAgICAiIiJQVUJMSUNB VElPTiBpbnNlcnRfb25seSBXSVRIIChjcmVhdGVfc2xvdCA9IGZhbHNlLCAiIiIgXAorICAgICAg ICAgICAgICAgICIiImVuYWJsZWQgPSBmYWxzZSwgc2xvdF9uYW1lPU5PTkUsIGNvbm5lY3Q9ZmFs c2UpOyIiIiAlICgKKyAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uX25hbWUpCisgICAg ICAgIHBnX2N1cnNvci5leGVjdXRlKHF1ZXJ5KQorICAgICAgICBjb25uZWN0aW9uLnNldF9pc29s YXRpb25fbGV2ZWwob2xkX2lzb2xhdGlvbl9sZXZlbCkKKyAgICAgICAgY29ubmVjdGlvbi5jb21t aXQoKQorICAgICAgICAjIEdldCByb2xlIG9pZCBvZiBuZXdseSBhZGRlZCBzdWJzY3JpcHRpb24K KyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoInNlbGVjdCBvaWQgZnJvbSBwZ19zdWJzY3JpcHRp b24gc3ViIHdoZXJlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInN1Yi5zdWJuYW1lPScl cyciICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uX25hbWUpCisgICAg ICAgIHN1YnNjcmlwdGlvbiA9IHBnX2N1cnNvci5mZXRjaG9uZSgpCisgICAgICAgIHN1YnNjcmlw dGlvbl9pZCA9ICcnCisgICAgICAgIGlmIHN1YnNjcmlwdGlvbjoKKyAgICAgICAgICAgIHN1YnNj cmlwdGlvbl9pZCA9IHN1YnNjcmlwdGlvblswXQorICAgICAgICBjb25uZWN0aW9uLmNsb3NlKCkK KyAgICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbl9pZAorICAgIGV4Y2VwdCBFeGNlcHRpb246Cisg ICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICByYWlz ZQorCisKK2RlZiB2ZXJpZnlfc3Vic2NyaXB0aW9uKHNlcnZlciwgZGJfbmFtZSwgc3Vic2NyaXB0 aW9uX25hbWUpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gdmVyaWZpZXMgc3Vic2NyaXB0 aW9uIGV4aXN0IGluIGRhdGFiYXNlIG9yIG5vdC4KKyAgICA6cGFyYW0gc2VydmVyOiBzZXJ2ZXIg ZGV0YWlscworICAgIDp0eXBlIHNlcnZlcjogZGljdAorICAgIDpwYXJhbSBkYl9uYW1lOiBkYXRh YmFzZSBuYW1lCisgICAgOnR5cGUgZGJfbmFtZTogc3RyCisgICAgOnBhcmFtIHN1YnNjcmlwdGlv bl9uYW1lOiBzdWJzY3JpcHRpb24gbmFtZQorICAgIDp0eXBlIHN1YnNjcmlwdGlvbl9uYW1lOiBz dHIKKyAgICA6cmV0dXJuIHN1YnNjcmlwdGlvbjogc3Vic2NyaXB0aW9uIHJlY29yZCBmcm9tIGRh dGFiYXNlCisgICAgOnJ0eXBlOiB0dXBsZQorICAgICIiIgorICAgIHRyeToKKyAgICAgICAgY29u bmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKGRiX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3VzZXJuYW1lJ10sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3 b3JkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2 ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlcnZlclsncG9ydCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyWydzc2xtb2RlJ10pCisgICAgICAgIHBnX2N1cnNvciA9IGNvbm5lY3Rpb24u Y3Vyc29yKCkKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoInNlbGVjdCAqIGZyb20gcGdfc3Vi c2NyaXB0aW9uIHN1YiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aGVyZSBzdWIuc3Vi bmFtZT0nJXMnIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9uYW1l KQorICAgICAgICBzdWJzY3JpcHRpb24gPSBwZ19jdXJzb3IuZmV0Y2hvbmUoKQorICAgICAgICBj b25uZWN0aW9uLmNsb3NlKCkKKyAgICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbgorICAgIGV4Y2Vw dCBFeGNlcHRpb246CisgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zeXMuc3RkZXJy KQorICAgICAgICByYWlzZQorCisKK2RlZiBkZWxldGVfc3Vic2NyaXB0aW9uKHNlcnZlciwgZGJf bmFtZSwgc3Vic2NyaXB0aW9uX25hbWUpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gdXNl IHRvIGRlbGV0ZSB0aGUgZXhpc3Rpbmcgc3Vic2NyaXB0aW9uCisKKyAgICA6cGFyYW0gZGJfbmFt ZTogIGRiX25hbWUKKyAgICA6dHlwZSBkYl9uYW1lOiBkYl9uYW1lIG9iamVjdAorICAgIDpwYXJh bSBzZXJ2ZXI6IHNlcnZlcgorICAgIDp0eXBlIHNlcnZlcjogc2VydmVyIG9iamVjdAorICAgIDpw YXJhbSBzdWJzY3JpcHRpb25fbmFtZTogc3Vic2NyaXB0aW9uIG5hbWUKKyAgICA6dHlwZSBzdWJz Y3JpcHRpb25fbmFtZTogc3RyCisgICAgOnJldHVybjogTm9uZQorICAgICIiIgorCisgICAgdHJ5 OgorICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oZGJfbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNl cm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl cnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VydmVyWydwb3J0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3NzbG1vZGUnXSkKKyAgICAgICAgcGdfY3Vyc29y ID0gY29ubmVjdGlvbi5jdXJzb3IoKQorCisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKCJzZWxl Y3QgKiBmcm9tIHBnX3N1YnNjcmlwdGlvbiBzdWIgd2hlcmUgIgorICAgICAgICAgICAgICAgICAg ICAgICAgICAic3ViLnN1Ym5hbWU9JyVzJyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICBz dWJzY3JpcHRpb25fbmFtZSkKKyAgICAgICAgc3Vic2NyaXB0aW9uX2NvdW50ID0gcGdfY3Vyc29y LmZldGNob25lKCkKKyAgICAgICAgaWYgc3Vic2NyaXB0aW9uX2NvdW50OgorICAgICAgICAgICAg b2xkX2lzb2xhdGlvbl9sZXZlbCA9IGNvbm5lY3Rpb24uaXNvbGF0aW9uX2xldmVsCisgICAgICAg ICAgICBjb25uZWN0aW9uLnNldF9pc29sYXRpb25fbGV2ZWwoMCkKKyAgICAgICAgICAgIHBnX2N1 cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAgICAgIHF1ZXJ5ID0gIkRST1Agc3Vi c2NyaXB0aW9uICVzIiAlIFwKKyAgICAgICAgICAgICAgICAgICAgKHN1YnNjcmlwdGlvbl9uYW1l KQorICAgICAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUocXVlcnkpCisgICAgICAgICAgICBjb25u ZWN0aW9uLnNldF9pc29sYXRpb25fbGV2ZWwob2xkX2lzb2xhdGlvbl9sZXZlbCkKKyAgICAgICAg ICAgIGNvbm5lY3Rpb24uY29tbWl0KCkKKyAgICAgICAgY29ubmVjdGlvbi5jbG9zZSgpCisgICAg ZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPXN5cy5z dGRlcnIpCisgICAgICAgIHJhaXNlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMv YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvbW9kZWxfdmFsaWRhdGlvbi5qcyBiL3dlYi9w Z2FkbWluL3N0YXRpYy9qcy9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9tb2RlbF92YWxp ZGF0aW9uLmpzCmluZGV4IDUxYjExMDg0Ny4uM2ZmMjUwYmY3IDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9zdGF0aWMvanMvYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvbW9kZWxfdmFsaWRh dGlvbi5qcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvbW9kZWxfdmFsaWRhdGlvbi5qcwpAQCAtMTksNyArMTksOCBAQCBleHBvcnQgY2xh c3MgTW9kZWxWYWxpZGF0aW9uIHsKICAgfQogCiAgIHZhbGlkYXRlKCkgewotICAgIGNvbnN0IHNl cnZpY2VJZCA9IHRoaXMubW9kZWwuZ2V0KCdzZXJ2aWNlJyk7CisgICAgY29uc3Qgc2VydmljZUlk ID0gdGhpcy5tb2RlbC5nZXQoJ3NlcnZpY2UnKSwKKyAgICAgIHB1YiA9IHRoaXMubW9kZWwuZ2V0 KCdwdWInKTsKIAogICAgIGlmICghdGhpcy5tb2RlbC5pc05ldygpICYmICdpZCcgaW4gdGhpcy5t b2RlbC5zZXNzQXR0cnMpIHsKICAgICAgIHRoaXMuZXJyWydpZCddID0gZ2V0dGV4dCgnVGhlIElE IGNhbm5vdCBiZSBjaGFuZ2VkLicpOwpAQCAtMzgsOCArMzksMTQgQEAgZXhwb3J0IGNsYXNzIE1v ZGVsVmFsaWRhdGlvbiB7CiAgICAgICB0aGlzLmNoZWNrRm9yRW1wdHkoJ2RiJywgZ2V0dGV4dCgn TWFpbnRlbmFuY2UgZGF0YWJhc2UgbXVzdCBiZSBzcGVjaWZpZWQuJykpOwogICAgICAgdGhpcy5j aGVja0ZvckVtcHR5KCd1c2VybmFtZScsIGdldHRleHQoJ1VzZXJuYW1lIG11c3QgYmUgc3BlY2lm aWVkLicpKTsKICAgICAgIHRoaXMuY2hlY2tGb3JFbXB0eSgncG9ydCcsIGdldHRleHQoJ1BvcnQg bXVzdCBiZSBzcGVjaWZpZWQuJykpOworICAgICAgaWYoIV8uaXNVbmRlZmluZWQocHViKSAmJiBw dWIubGVuZ3RoID09IDApeworICAgICAgICB0aGlzLmNoZWNrRm9yRW1wdHkoJ3B1YicsIGdldHRl eHQoJ1B1YmxpY2F0aW9uIG11c3QgYmUgc3BlY2lmaWVkLicpKTsKKyAgICAgIH0KICAgICB9IGVs c2UgewogICAgICAgdGhpcy5jaGVja0ZvckVtcHR5KCdkYicsIGdldHRleHQoJ01haW50ZW5hbmNl IGRhdGFiYXNlIG11c3QgYmUgc3BlY2lmaWVkLicpKTsKKyAgICAgIGlmKCFfLmlzVW5kZWZpbmVk KHB1YikgJiYgcHViLmxlbmd0aCA9PSAwKXsKKyAgICAgICAgdGhpcy5jaGVja0ZvckVtcHR5KCdw dWInLCBnZXR0ZXh0KCdQdWJsaWNhdGlvbiBtdXN0IGJlIHNwZWNpZmllZC4nKSk7CisgICAgICB9 CiAgICAgICB0aGlzLmNsZWFySG9zdEFkZHJlc3NBbmREYkVycm9ycygpOwogICAgIH0KIApkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMvdGVtcGxhdGVzL3NlYXJj aF9vYmplY3RzL3NxbC9wZy8xMF9wbHVzL3NlYXJjaC5zcWwgYi93ZWIvcGdhZG1pbi90b29scy9z ZWFyY2hfb2JqZWN0cy90ZW1wbGF0ZXMvc2VhcmNoX29iamVjdHMvc3FsL3BnLzEwX3BsdXMvc2Vh cmNoLnNxbAppbmRleCBhYzIxNWVlZmQuLjM4MjhkOTA2OCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vdG9vbHMvc2VhcmNoX29iamVjdHMvdGVtcGxhdGVzL3NlYXJjaF9vYmplY3RzL3NxbC9wZy8x MF9wbHVzL3NlYXJjaC5zcWwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMv dGVtcGxhdGVzL3NlYXJjaF9vYmplY3RzL3NxbC9wZy8xMF9wbHVzL3NlYXJjaC5zcWwKQEAgLTMy MCw2ICszMjAsMjQgQEAgRlJPTSAoCiB7JSBpZiBhbGxfb2JqICV9CiAgICAgVU5JT04KIHslIGVu ZGlmICV9CisKK3slIGlmIGFsbF9vYmogb3Igb2JqX3R5cGUgaW4gWydwdWJsaWNhdGlvbiddICV9 CisgICAgU0VMRUNUICdwdWJsaWNhdGlvbic6OnRleHQgQVMgb2JqX3R5cGUsIHB1Ym5hbWUgQVMg b2JqX25hbWUsICc6cHVibGljYXRpb24uJ3x8cHViLm9pZHx8JzovJyB8fCBwdWJuYW1lIEFTIG9i al9wYXRoLCAnJzo6dGV4dCBBUyBzY2hlbWFfbmFtZSwKKyAgICB7eyBzaG93X25vZGVfcHJlZnNb J3B1YmxpY2F0aW9uJ10gfX0gQVMgc2hvd19ub2RlLCBOVUxMIEFTIG90aGVyX2luZm8KKyAgICBG Uk9NIHBnX3B1YmxpY2F0aW9uIHB1YgoreyUgZW5kaWYgJX0KK3slIGlmIGFsbF9vYmogJX0KKyAg ICBVTklPTgoreyUgZW5kaWYgJX0KKworeyUgaWYgYWxsX29iaiBvciBvYmpfdHlwZSBpbiBbJ3N1 YnNjcmlwdGlvbiddICV9CisgICAgU0VMRUNUICdzdWJzY3JpcHRpb24nOjp0ZXh0IEFTIG9ial90 eXBlLCBzdWJuYW1lIEFTIG9ial9uYW1lLCAnOnN1YnNjcmlwdGlvbi4nfHxwdWIub2lkfHwnOi8n IHx8IHN1Ym5hbWUgQVMgb2JqX3BhdGgsICcnOjp0ZXh0IEFTIHNjaGVtYV9uYW1lLAorICAgIHt7 IHNob3dfbm9kZV9wcmVmc1snc3Vic2NyaXB0aW9uJ10gfX0gQVMgc2hvd19ub2RlLCBOVUxMIEFT IG90aGVyX2luZm8KKyAgICBGUk9NIHBnX3N1YnNjcmlwdGlvbiBwdWIKK3slIGVuZGlmICV9Cit7 JSBpZiBhbGxfb2JqICV9CisgICAgVU5JT04KK3slIGVuZGlmICV9CiB7JSBpZiBhbGxfb2JqIG9y IG9ial90eXBlIGluIFsnbGFuZ3VhZ2UnXSAlfQogICAgIFNFTEVDVCAnbGFuZ3VhZ2UnOjp0ZXh0 IEFTIG9ial90eXBlLCBsYW5uYW1lIEFTIG9ial9uYW1lLCAnOmxhbmd1YWdlLid8fGxhbi5vaWR8 fCc6LycgfHwgbGFubmFtZSBBUyBvYmpfcGF0aCwgJyc6OnRleHQgQVMgc2NoZW1hX25hbWUsCiAg ICAge3sgc2hvd19ub2RlX3ByZWZzWydsYW5ndWFnZSddIH19IEFTIHNob3dfbm9kZSwgTlVMTCBB UyBvdGhlcl9pbmZvCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zZWFyY2hfb2JqZWN0 cy90ZW1wbGF0ZXMvc2VhcmNoX29iamVjdHMvc3FsL3BnLzExX3BsdXMvc2VhcmNoLnNxbCBiL3dl Yi9wZ2FkbWluL3Rvb2xzL3NlYXJjaF9vYmplY3RzL3RlbXBsYXRlcy9zZWFyY2hfb2JqZWN0cy9z cWwvcGcvMTFfcGx1cy9zZWFyY2guc3FsCmluZGV4IDRlMDdmZjA3OS4uZTg2MzFmMTM2IDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9zZWFyY2hfb2JqZWN0cy90ZW1wbGF0ZXMvc2VhcmNo X29iamVjdHMvc3FsL3BnLzExX3BsdXMvc2VhcmNoLnNxbAorKysgYi93ZWIvcGdhZG1pbi90b29s cy9zZWFyY2hfb2JqZWN0cy90ZW1wbGF0ZXMvc2VhcmNoX29iamVjdHMvc3FsL3BnLzExX3BsdXMv c2VhcmNoLnNxbApAQCAtMzM3LDYgKzMzNywyNCBAQCBGUk9NICgKIHslIGlmIGFsbF9vYmogJX0K ICAgICBVTklPTgogeyUgZW5kaWYgJX0KKworeyUgaWYgYWxsX29iaiBvciBvYmpfdHlwZSBpbiBb J3B1YmxpY2F0aW9uJ10gJX0KKyAgICBTRUxFQ1QgJ3B1YmxpY2F0aW9uJzo6dGV4dCBBUyBvYmpf dHlwZSwgcHVibmFtZSBBUyBvYmpfbmFtZSwgJzpwdWJsaWNhdGlvbi4nfHxwdWIub2lkfHwnOi8n IHx8IHB1Ym5hbWUgQVMgb2JqX3BhdGgsICcnOjp0ZXh0IEFTIHNjaGVtYV9uYW1lLAorICAgIHt7 IHNob3dfbm9kZV9wcmVmc1sncHVibGljYXRpb24nXSB9fSBBUyBzaG93X25vZGUsIE5VTEwgQVMg b3RoZXJfaW5mbworICAgIEZST00gcGdfcHVibGljYXRpb24gcHViCit7JSBlbmRpZiAlfQoreyUg aWYgYWxsX29iaiAlfQorICAgIFVOSU9OCit7JSBlbmRpZiAlfQorCit7JSBpZiBhbGxfb2JqIG9y IG9ial90eXBlIGluIFsnc3Vic2NyaXB0aW9uJ10gJX0KKyAgICBTRUxFQ1QgJ3N1YnNjcmlwdGlv bic6OnRleHQgQVMgb2JqX3R5cGUsIHN1Ym5hbWUgQVMgb2JqX25hbWUsICc6c3Vic2NyaXB0aW9u Lid8fHB1Yi5vaWR8fCc6LycgfHwgc3VibmFtZSBBUyBvYmpfcGF0aCwgJyc6OnRleHQgQVMgc2No ZW1hX25hbWUsCisgICAge3sgc2hvd19ub2RlX3ByZWZzWydzdWJzY3JpcHRpb24nXSB9fSBBUyBz aG93X25vZGUsIE5VTEwgQVMgb3RoZXJfaW5mbworICAgIEZST00gcGdfc3Vic2NyaXB0aW9uIHB1 YgoreyUgZW5kaWYgJX0KK3slIGlmIGFsbF9vYmogJX0KKyAgICBVTklPTgoreyUgZW5kaWYgJX0K IHslIGlmIGFsbF9vYmogb3Igb2JqX3R5cGUgaW4gWydsYW5ndWFnZSddICV9CiAgICAgU0VMRUNU ICdsYW5ndWFnZSc6OnRleHQgQVMgb2JqX3R5cGUsIGxhbm5hbWUgQVMgb2JqX25hbWUsICc6bGFu Z3VhZ2UuJ3x8bGFuLm9pZHx8JzovJyB8fCBsYW5uYW1lIEFTIG9ial9wYXRoLCAnJzo6dGV4dCBB UyBzY2hlbWFfbmFtZSwKICAgICB7eyBzaG93X25vZGVfcHJlZnNbJ2xhbmd1YWdlJ10gfX0gQVMg c2hvd19ub2RlLCBOVUxMIEFTIG90aGVyX2luZm8KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rv b2xzL3NlYXJjaF9vYmplY3RzL3RlbXBsYXRlcy9zZWFyY2hfb2JqZWN0cy9zcWwvcHBhcy8xMF9w bHVzL3NlYXJjaC5zcWwgYi93ZWIvcGdhZG1pbi90b29scy9zZWFyY2hfb2JqZWN0cy90ZW1wbGF0 ZXMvc2VhcmNoX29iamVjdHMvc3FsL3BwYXMvMTBfcGx1cy9zZWFyY2guc3FsCmluZGV4IGE0MWEz NzVlYi4uNGVkNzE1NDYzIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9zZWFyY2hfb2Jq ZWN0cy90ZW1wbGF0ZXMvc2VhcmNoX29iamVjdHMvc3FsL3BwYXMvMTBfcGx1cy9zZWFyY2guc3Fs CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NlYXJjaF9vYmplY3RzL3RlbXBsYXRlcy9zZWFyY2hf b2JqZWN0cy9zcWwvcHBhcy8xMF9wbHVzL3NlYXJjaC5zcWwKQEAgLTM2MSw2ICszNjEsMjUgQEAg RlJPTSAoCiB7JSBpZiBhbGxfb2JqICV9CiAgICAgVU5JT04KIHslIGVuZGlmICV9CisKK3slIGlm IGFsbF9vYmogb3Igb2JqX3R5cGUgaW4gWydwdWJsaWNhdGlvbiddICV9CisgICAgU0VMRUNUICdw dWJsaWNhdGlvbic6OnRleHQgQVMgb2JqX3R5cGUsIHB1Ym5hbWUgQVMgb2JqX25hbWUsICc6cHVi bGljYXRpb24uJ3x8cHViLm9pZHx8JzovJyB8fCBwdWJuYW1lIEFTIG9ial9wYXRoLCAnJzo6dGV4 dCBBUyBzY2hlbWFfbmFtZSwKKyAgICB7eyBzaG93X25vZGVfcHJlZnNbJ3B1YmxpY2F0aW9uJ10g fX0gQVMgc2hvd19ub2RlLCBOVUxMIEFTIG90aGVyX2luZm8KKyAgICBGUk9NIHBnX3B1YmxpY2F0 aW9uIHB1YgoreyUgZW5kaWYgJX0KK3slIGlmIGFsbF9vYmogJX0KKyAgICBVTklPTgoreyUgZW5k aWYgJX0KKworeyUgaWYgYWxsX29iaiBvciBvYmpfdHlwZSBpbiBbJ3N1YnNjcmlwdGlvbiddICV9 CisgICAgU0VMRUNUICdzdWJzY3JpcHRpb24nOjp0ZXh0IEFTIG9ial90eXBlLCBzdWJuYW1lIEFT IG9ial9uYW1lLCAnOnN1YnNjcmlwdGlvbi4nfHxwdWIub2lkfHwnOi8nIHx8IHN1Ym5hbWUgQVMg b2JqX3BhdGgsICcnOjp0ZXh0IEFTIHNjaGVtYV9uYW1lLAorICAgIHt7IHNob3dfbm9kZV9wcmVm c1snc3Vic2NyaXB0aW9uJ10gfX0gQVMgc2hvd19ub2RlLCBOVUxMIEFTIG90aGVyX2luZm8KKyAg ICBGUk9NIHBnX3N1YnNjcmlwdGlvbiBwdWIKK3slIGVuZGlmICV9Cit7JSBpZiBhbGxfb2JqICV9 CisgICAgVU5JT04KK3slIGVuZGlmICV9CisKIHslIGlmIGFsbF9vYmogb3Igb2JqX3R5cGUgaW4g WydsYW5ndWFnZSddICV9CiAgICAgU0VMRUNUICdsYW5ndWFnZSc6OnRleHQgQVMgb2JqX3R5cGUs IGxhbm5hbWUgQVMgb2JqX25hbWUsICc6bGFuZ3VhZ2UuJ3x8bGFuLm9pZHx8JzovJyB8fCBsYW5u YW1lIEFTIG9ial9wYXRoLCAnJzo6dGV4dCBBUyBzY2hlbWFfbmFtZSwKICAgICB7eyBzaG93X25v ZGVfcHJlZnNbJ2xhbmd1YWdlJ10gfX0gQVMgc2hvd19ub2RlLCBOVUxMIEFTIG90aGVyX2luZm8K ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NlYXJjaF9vYmplY3RzL3RlbXBsYXRlcy9z ZWFyY2hfb2JqZWN0cy9zcWwvcHBhcy8xMl9wbHVzL3NlYXJjaC5zcWwgYi93ZWIvcGdhZG1pbi90 b29scy9zZWFyY2hfb2JqZWN0cy90ZW1wbGF0ZXMvc2VhcmNoX29iamVjdHMvc3FsL3BwYXMvMTJf cGx1cy9zZWFyY2guc3FsCmluZGV4IDc5NmZjMzBiOC4uMzYzMzk3NGVjIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi90b29scy9zZWFyY2hfb2JqZWN0cy90ZW1wbGF0ZXMvc2VhcmNoX29iamVjdHMv c3FsL3BwYXMvMTJfcGx1cy9zZWFyY2guc3FsCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NlYXJj aF9vYmplY3RzL3RlbXBsYXRlcy9zZWFyY2hfb2JqZWN0cy9zcWwvcHBhcy8xMl9wbHVzL3NlYXJj aC5zcWwKQEAgLTM2OCw2ICszNjgsMjUgQEAgRlJPTSAoCiB7JSBpZiBhbGxfb2JqICV9CiAgICAg VU5JT04KIHslIGVuZGlmICV9CisKK3slIGlmIGFsbF9vYmogb3Igb2JqX3R5cGUgaW4gWydwdWJs aWNhdGlvbiddICV9CisgICAgU0VMRUNUICdwdWJsaWNhdGlvbic6OnRleHQgQVMgb2JqX3R5cGUs IHB1Ym5hbWUgQVMgb2JqX25hbWUsICc6cHVibGljYXRpb24uJ3x8cHViLm9pZHx8JzovJyB8fCBw dWJuYW1lIEFTIG9ial9wYXRoLCAnJzo6dGV4dCBBUyBzY2hlbWFfbmFtZSwKKyAgICB7eyBzaG93 X25vZGVfcHJlZnNbJ3B1YmxpY2F0aW9uJ10gfX0gQVMgc2hvd19ub2RlLCBOVUxMIEFTIG90aGVy X2luZm8KKyAgICBGUk9NIHBnX3B1YmxpY2F0aW9uIHB1YgoreyUgZW5kaWYgJX0KK3slIGlmIGFs bF9vYmogJX0KKyAgICBVTklPTgoreyUgZW5kaWYgJX0KKworeyUgaWYgYWxsX29iaiBvciBvYmpf dHlwZSBpbiBbJ3N1YnNjcmlwdGlvbiddICV9CisgICAgU0VMRUNUICdzdWJzY3JpcHRpb24nOjp0 ZXh0IEFTIG9ial90eXBlLCBzdWJuYW1lIEFTIG9ial9uYW1lLCAnOnN1YnNjcmlwdGlvbi4nfHxw dWIub2lkfHwnOi8nIHx8IHN1Ym5hbWUgQVMgb2JqX3BhdGgsICcnOjp0ZXh0IEFTIHNjaGVtYV9u YW1lLAorICAgIHt7IHNob3dfbm9kZV9wcmVmc1snc3Vic2NyaXB0aW9uJ10gfX0gQVMgc2hvd19u b2RlLCBOVUxMIEFTIG90aGVyX2luZm8KKyAgICBGUk9NIHBnX3N1YnNjcmlwdGlvbiBwdWIKK3sl IGVuZGlmICV9Cit7JSBpZiBhbGxfb2JqICV9CisgICAgVU5JT04KK3slIGVuZGlmICV9CisKIHsl IGlmIGFsbF9vYmogb3Igb2JqX3R5cGUgaW4gWydsYW5ndWFnZSddICV9CiAgICAgU0VMRUNUICds YW5ndWFnZSc6OnRleHQgQVMgb2JqX3R5cGUsIGxhbm5hbWUgQVMgb2JqX25hbWUsICc6bGFuZ3Vh Z2UuJ3x8bGFuLm9pZHx8JzovJyB8fCBsYW5uYW1lIEFTIG9ial9wYXRoLCAnJzo6dGV4dCBBUyBz Y2hlbWFfbmFtZSwKICAgICB7eyBzaG93X25vZGVfcHJlZnNbJ2xhbmd1YWdlJ10gfX0gQVMgc2hv d19ub2RlLCBOVUxMIEFTIG90aGVyX2luZm8KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xz L3NlYXJjaF9vYmplY3RzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvc2VhcmNoX29iamVj dHMvdXRpbHMucHkKaW5kZXggY2U1ZWNlMjhkLi5hN2Q1NTY4NTMgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL3Rvb2xzL3NlYXJjaF9vYmplY3RzL3V0aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rv b2xzL3NlYXJjaF9vYmplY3RzL3V0aWxzLnB5CkBAIC00Myw3ICs0Myw4IEBAIGNsYXNzIFNlYXJj aE9iamVjdHNIZWxwZXI6CiAgICAgICAgICAgICAndHJpZ2dlcl9mdW5jdGlvbicsICdmdHNfdGVt cGxhdGUnLCAnY29sbGF0aW9uJywgJ3ZpZXcnLCAnbXZpZXcnLAogICAgICAgICAgICAgJ2Z0c19j b25maWd1cmF0aW9uJywgJ2V4dGVuc2lvbicsICdsYW5ndWFnZScsCiAgICAgICAgICAgICAnZXZl bnRfdHJpZ2dlcicsICdmb3JlaWduX3NlcnZlcicsICd1c2VyX21hcHBpbmcnLAotICAgICAgICAg ICAgJ2ZvcmVpZ25fZGF0YV93cmFwcGVyJywgJ3Jvd19zZWN1cml0eV9wb2xpY3knCisgICAgICAg ICAgICAnZm9yZWlnbl9kYXRhX3dyYXBwZXInLCAncm93X3NlY3VyaXR5X3BvbGljeScsCisgICAg ICAgICAgICAncHVibGljYXRpb24nLCAnc3Vic2NyaXB0aW9uJwogICAgICAgICBdIGlmIG5vZGVf dHlwZXMgaXMgTm9uZSBlbHNlIG5vZGVfdHlwZXMKIAogICAgIEBwcm9wZXJ0eQo= --0000000000002f8d1805b8bfdff0--