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 1kUu1V-0006FX-RF for pgadmin-hackers@arkaria.postgresql.org; Tue, 20 Oct 2020 15:58:06 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kUu0y-0003Vj-3m for pgadmin-hackers@arkaria.postgresql.org; Tue, 20 Oct 2020 15:57:32 +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 1kUu0x-0003Tn-Kt for pgadmin-hackers@lists.postgresql.org; Tue, 20 Oct 2020 15:57:31 +0000 Received: from mail-qk1-x733.google.com ([2607:f8b0:4864:20::733]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kUu0p-0002n2-As for pgadmin-hackers@postgresql.org; Tue, 20 Oct 2020 15:57:30 +0000 Received: by mail-qk1-x733.google.com with SMTP id r7so2002793qkf.3 for ; Tue, 20 Oct 2020 08:57:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=uc8Sgmln4Ddwl10i6WFQaSxkV0OBDPs/XkZ4HroGpnA=; b=gWVNKWgKdt9D4W4S85UJmwvF4HFKkOMrgZRbiWYnjzPDWy0NG91a/oYma4bn/Ni10i 41zPg3sV355i46nnw3/nzE2j9chLs2MpM6ExRyinKefrxHf/tPSb4f6YJGgXchHi0y1h oSGtovdq0be032yZ5V6NYzoAgWCYRwCMFppuo1A4fFBTKQCRe5P5nlHAGkcVdKEg1dIA tWT9yMFJxP77fywA41MFIIsRIJZPpO+eRs+l+Wa+Jj50Jde0CVzc91Yc9zUhSDK1UKZK OXbfRRgRrVwoRX9u26kPgxHh4pmoTczGIKRc8LCV4AKt4Pt36+nTHLwZTMju0oYetcwO E9hw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=uc8Sgmln4Ddwl10i6WFQaSxkV0OBDPs/XkZ4HroGpnA=; b=nS5rZOcYN5Fa5D+/dSC91jAs0TYPgBJITCiNR6B9qzGSkSmh+WwQ56C/fDUDzd+/RT R8KggZu4Ko8GNqDLs33H0cwTlODsXvYgFkoCs+79lhBgzqyxoCvbaXQTRswYOExmJa+d YYMcvXxZ/mw9RokiWqVHxcOqQx01b1xKrqWAdxphlsRhnV4mGJ7siE+Cq0JQm8QvN3Pz DC5fctzLblK4bh2wLH5ceGmWamYQOAJZIGwBGxstRVWKUAv7LZkhr8tZiaiYfML9OqkN sa+bdXuT2jdQUUgAAz32Eh1DzHUAgRzmzgir/SMXt88Y9k9xJobzo6eevkbOwtGc9/xS 9g0Q== X-Gm-Message-State: AOAM532d7nV7hTMMYmnR6bvO+ApVZUZAFyaa/yrB2519LWQMOqVTxXYf /dOfLqq9MV4jpAOCljnVTJ3RMXRCySE/cxewdN/j1tDrmvfNf7U1Jrttv6mqvx4LM0jmOgYIlCP JkuI9wpR5FSfMKcP2km+AcDu67ijlLbtETE2XIsEO/tNkCKSIQF1I6JhB9Ar2taSe4bgBGNuLtU tw0UMgqxF9zXPDNyoXvu8lkHyZED03Xy5YdmieIsrT9DCreT4VZsoqSbAO5kdXtUvwJQ== X-Google-Smtp-Source: ABdhPJwPOzQmXOn1qAv5xBh7zZKAmIM/glgnQ3xwVLO2l8NP5hl70mTwcwGeX8zuQ+UMG1ZCSHv/FZ3keRB6ZaqVxGI= X-Received: by 2002:a05:620a:4095:: with SMTP id f21mr3198684qko.405.1603209440696; Tue, 20 Oct 2020 08:57:20 -0700 (PDT) MIME-Version: 1.0 From: Rahul Shirsat Date: Tue, 20 Oct 2020 21:26:44 +0530 Message-ID: Subject: [pgAdmin][RM3318] Download Backup Files To: pgadmin-hackers Content-Type: multipart/mixed; boundary="00000000000036dfa605b21c49cc" 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 --00000000000036dfa605b21c49cc Content-Type: multipart/alternative; boundary="00000000000036dfa405b21c49ca" --00000000000036dfa405b21c49ca Content-Type: text/plain; charset="UTF-8" Hi Hackers, Please find the below patch which allows users to download the backup and export files generated on shared drive. -- *Rahul Shirsat* Software Engineer | EnterpriseDB Corporation. --00000000000036dfa405b21c49ca Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

Please find the below patch= =C2=A0which allows users to download the backup and export files generated = on shared drive.

--
<= div dir=3D"ltr">
Rahul Shirsat
Software Engineer=C2=A0|=C2=A0EnterpriseDB=C2= =A0Corporation.
--00000000000036dfa405b21c49ca-- --00000000000036dfa605b21c49cc Content-Type: application/octet-stream; name="RM3318.patch" Content-Disposition: attachment; filename="RM3318.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kgi5gys20 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2MvYmdwcm9jZXNzL3Byb2Nlc3Nlcy5weSBiL3dl Yi9wZ2FkbWluL21pc2MvYmdwcm9jZXNzL3Byb2Nlc3Nlcy5weQppbmRleCBjYmNhNjViZDcuLjdj ZjhiYmU1MiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vbWlzYy9iZ3Byb2Nlc3MvcHJvY2Vzc2Vz LnB5CisrKyBiL3dlYi9wZ2FkbWluL21pc2MvYmdwcm9jZXNzL3Byb2Nlc3Nlcy5weQpAQCAtNTks NiArNTksMTAgQEAgY2xhc3MgSVByb2Nlc3NEZXNjKG9iamVjdCwgbWV0YWNsYXNzPUFCQ01ldGEp OgogICAgIGRlZiBkZXRhaWxzKHNlbGYsIGNtZCwgYXJncyk6CiAgICAgICAgIHBhc3MKIAorICAg IEBwcm9wZXJ0eQorICAgIGRlZiBjdXJyZW50X3N0b3JhZ2VfZGlyKHNlbGYpOgorICAgICAgICBy ZXR1cm4gTm9uZQorCiAKIGNsYXNzIEJhdGNoUHJvY2VzcyhvYmplY3QpOgogICAgIGRlZiBfX2lu aXRfXyhzZWxmLCAqKmt3YXJncyk6CkBAIC01NDMsNiArNTQ3LDcgQEAgY2xhc3MgQmF0Y2hQcm9j ZXNzKG9iamVjdCk6CiAgICAgICAgIGRlc2MgPSBsb2FkcyhwLmRlc2MpCiAgICAgICAgIGRldGFp bHMgPSBkZXNjCiAgICAgICAgIHR5cGVfZGVzYyA9ICcnCisgICAgICAgIGN1cnJlbnRfc3RvcmFn ZV9kaXIgPSBOb25lCiAKICAgICAgICAgaWYgaXNpbnN0YW5jZShkZXNjLCBJUHJvY2Vzc0Rlc2Mp OgogICAgICAgICAgICAgYXJncyA9IFtdCkBAIC01NTUsOSArNTYwLDEwIEBAIGNsYXNzIEJhdGNo UHJvY2VzcyhvYmplY3QpOgogICAgICAgICAgICAgICAgIGFyZ3MgPSBhcmdzICsgYXJnCiAgICAg ICAgICAgICBkZXRhaWxzID0gZGVzYy5kZXRhaWxzKHAuY29tbWFuZCwgYXJncykKICAgICAgICAg ICAgIHR5cGVfZGVzYyA9IGRlc2MudHlwZV9kZXNjCisgICAgICAgICAgICBjdXJyZW50X3N0b3Jh Z2VfZGlyID0gZGVzYy5jdXJyZW50X3N0b3JhZ2VfZGlyCiAgICAgICAgICAgICBkZXNjID0gZGVz Yy5tZXNzYWdlCiAKLSAgICAgICAgcmV0dXJuIGRlc2MsIGRldGFpbHMsIHR5cGVfZGVzYworICAg ICAgICByZXR1cm4gZGVzYywgZGV0YWlscywgdHlwZV9kZXNjLCBjdXJyZW50X3N0b3JhZ2VfZGly CiAKICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVmIGxpc3QoKToKQEAgLTU4NCw3ICs1OTAsOCBA QCBjbGFzcyBCYXRjaFByb2Nlc3Mob2JqZWN0KToKIAogICAgICAgICAgICAgZXhlY3V0aW9uX3Rp bWUgPSBCYXRjaFByb2Nlc3MudG90YWxfc2Vjb25kcyhldGltZSAtIHN0aW1lKQogCi0gICAgICAg ICAgICBkZXNjLCBkZXRhaWxzLCB0eXBlX2Rlc2MgPSBCYXRjaFByb2Nlc3MuX2NoZWNrX3Byb2Nl c3NfZGVzYyhwKQorICAgICAgICAgICAgZGVzYywgZGV0YWlscywgdHlwZV9kZXNjLCBjdXJyZW50 X3N0b3JhZ2VfZGlyID0gQmF0Y2hQcm9jZXNzLlwKKyAgICAgICAgICAgICAgICBfY2hlY2tfcHJv Y2Vzc19kZXNjKHApCiAKICAgICAgICAgICAgIHJlcy5hcHBlbmQoewogICAgICAgICAgICAgICAg ICdpZCc6IHAucGlkLApAQCAtNTk2LDcgKzYwMyw4IEBAIGNsYXNzIEJhdGNoUHJvY2VzcyhvYmpl Y3QpOgogICAgICAgICAgICAgICAgICdleGl0X2NvZGUnOiBwLmV4aXRfY29kZSwKICAgICAgICAg ICAgICAgICAnYWNrbm93bGVkZ2UnOiBwLmFja25vd2xlZGdlLAogICAgICAgICAgICAgICAgICdl eGVjdXRpb25fdGltZSc6IGV4ZWN1dGlvbl90aW1lLAotICAgICAgICAgICAgICAgICdwcm9jZXNz X3N0YXRlJzogcC5wcm9jZXNzX3N0YXRlCisgICAgICAgICAgICAgICAgJ3Byb2Nlc3Nfc3RhdGUn OiBwLnByb2Nlc3Nfc3RhdGUsCisgICAgICAgICAgICAgICAgJ2N1cnJlbnRfc3RvcmFnZV9kaXIn OiBjdXJyZW50X3N0b3JhZ2VfZGlyLAogICAgICAgICAgICAgfSkKIAogICAgICAgICBpZiBjaGFu Z2VkOgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9iZ3Byb2Nlc3Mvc3RhdGljL2Nzcy9i Z3Byb2Nlc3MuY3NzIGIvd2ViL3BnYWRtaW4vbWlzYy9iZ3Byb2Nlc3Mvc3RhdGljL2Nzcy9iZ3By b2Nlc3MuY3NzCmluZGV4IGM1ZjQzMWEzNS4uNGUzY2MwNDEyIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9taXNjL2JncHJvY2Vzcy9zdGF0aWMvY3NzL2JncHJvY2Vzcy5jc3MKKysrIGIvd2ViL3Bn YWRtaW4vbWlzYy9iZ3Byb2Nlc3Mvc3RhdGljL2Nzcy9iZ3Byb2Nlc3MuY3NzCkBAIC01NywzICs1 Nyw3IEBAIG9sLnBnLWJnLXByb2Nlc3MtbG9ncyB7CiAucGctYmctYmdwcm9jZXNzOmhvdmVyIC5i Zy1jbG9zZSB7CiAgIG9wYWNpdHk6IDAuOTU7CiB9CisKKy5pY29uLXN0b3JhZ2UtbWFuYWdlcjpi ZWZvcmUgeworICBmb250LWljb246IHVybCgnLi4vaW1nL3N0b3JhZ2VfbWFuYWdlci5zdmcnKTsK K30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2MvYmdwcm9jZXNzL3N0YXRpYy9pbWcvc3Rv cmFnZV9tYW5hZ2VyLnN2ZyBiL3dlYi9wZ2FkbWluL21pc2MvYmdwcm9jZXNzL3N0YXRpYy9pbWcv c3RvcmFnZV9tYW5hZ2VyLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAu LjhlZjk4MzU3NgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL21pc2MvYmdwcm9jZXNz L3N0YXRpYy9pbWcvc3RvcmFnZV9tYW5hZ2VyLnN2ZwpAQCAtMCwwICsxLDEzIEBACis8P3htbCB2 ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBHZW5lcmF0b3I6IEFkb2JlIEls bHVzdHJhdG9yIDI0LjMuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAg QnVpbGQgMCkgIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0 cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8x OTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKKwkgdmlld0JveD0iMCAwIDE2IDE2IiBzdHlsZT0i ZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNiAxNjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgor PGc+CisJPHBhdGggZD0iTTQuMyw1LjNoOC44VjRjMC0wLjctMC42LTEuMy0xLjMtMS4zSDcuNUw1 LjgsMUgxLjVDMC44LDEsMC4yLDEuNiwwLjIsMi4zdjcuNEwyLDYuNUMyLjYsNS44LDMuNCw1LjMs NC4zLDUuM3oiLz4KKwk8cGF0aCBkPSJNNy41LDguOWMwLTEuMiwwLjctMi4zLDEuNi0yLjhINC4z QzMuNyw2LjEsMy4xLDYuNCwyLjgsN2wtMS45LDMuM2MtMC4yLDAuNCwwLjEsMSwwLjYsMWg3Qzcu OCwxMC43LDcuNSw5LjgsNy41LDguOXoiLz4KKwk8cGF0aCBkPSJNMTUsNi4xaC0yLjZjMSwwLjYs MS42LDEuNiwxLjYsMi44YzAsMC4zLTAuMSwwLjYtMC4xLDAuOUwxNS41LDdDMTUuOCw2LjcsMTUu NSw2LjEsMTUsNi4xeiIvPgorCTxjaXJjbGUgY3g9IjEwLjgiIGN5PSI4LjkiIHI9IjIuOCIvPgor PC9nPgorPHBhdGggZD0iTTE0LDExLjhsLTEuMi0wLjNjLTEuMywwLjktMi45LDAuOC0zLjgsMGwt MS4yLDAuM0M3LDEyLDYuNSwxMi43LDYuNSwxMy41djAuN2MwLDAuNCwwLjMsMC45LDAuOSwwLjlo Mi4zbDEuMS0yLjRsMS4zLDIuNAorCWgyLjRjMC40LDAsMC45LTAuMywwLjktMC45di0wLjhDMTUu MiwxMi42LDE0LjgsMTEuOSwxNCwxMS44eiIvPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9taXNjL2JncHJvY2Vzcy9zdGF0aWMvanMvYmdwcm9jZXNzLmpzIGIvd2ViL3BnYWRtaW4v bWlzYy9iZ3Byb2Nlc3Mvc3RhdGljL2pzL2JncHJvY2Vzcy5qcwppbmRleCBkMTdkNjNjMmUuLjI4 NTYwN2ZjMiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vbWlzYy9iZ3Byb2Nlc3Mvc3RhdGljL2pz L2JncHJvY2Vzcy5qcworKysgYi93ZWIvcGdhZG1pbi9taXNjL2JncHJvY2Vzcy9zdGF0aWMvanMv Ymdwcm9jZXNzLmpzCkBAIC0yMCw2ICsyMCw4IEBAIGRlZmluZSgnbWlzYy5iZ3Byb2Nlc3MnLCBb CiAgICAgcmV0dXJuIHBnQnJvd3Nlci5CYWNrZ3JvdW5kUHJvY2Vzc09ic29ydmVyOwogICB9CiAK KyAgdmFyIGlzU2VydmVyTW9kZSA9IChmdW5jdGlvbigpIHsgcmV0dXJuIHBnQWRtaW4uc2VydmVy X21vZGUgPT0gJ1RydWUnOyB9KSgpOworCiAgIHZhciB3Y0RvY2tlciA9IHdpbmRvdy53Y0RvY2tl cjsKIAogICB2YXIgQkdQcm9jZXNzID0gZnVuY3Rpb24oaW5mbywgbm90aWZ5KSB7CkBAIC02MSw2 ICs2Myw3IEBAIGRlZmluZSgnbWlzYy5iZ3Byb2Nlc3MnLCBbCiAgICAgICAgICAgY3Vycl9zdGF0 dXM6IG51bGwsCiAgICAgICAgICAgc3RhdGU6IDAsIC8vIDA6IE5PVCBTdGFydGVkLCAxOiBTdGFy dGVkLCAyOiBGaW5pc2hlZCwgMzogVGVybWluYXRlZAogICAgICAgICAgIGNvbXBsZXRlZDogZmFs c2UsCisgICAgICAgICAgY3VycmVudF9zdG9yYWdlX2RpcjogbnVsbCwKIAogICAgICAgICAgIGlk OiBpbmZvWydpZCddLAogICAgICAgICAgIHR5cGVfZGVzYzogbnVsbCwKQEAgLTE2MSw2ICsxNjQs OSBAQCBkZWZpbmUoJ21pc2MuYmdwcm9jZXNzJywgWwogICAgICAgICBpZiAoJ3Byb2Nlc3Nfc3Rh dGUnIGluIGRhdGEpCiAgICAgICAgICAgc2VsZi5zdGF0ZSA9IGRhdGEucHJvY2Vzc19zdGF0ZTsK IAorICAgICAgICBpZiAoJ2N1cnJlbnRfc3RvcmFnZV9kaXInIGluIGRhdGEpCisgICAgICAgICAg c2VsZi5jdXJyZW50X3N0b3JhZ2VfZGlyID0gZGF0YS5jdXJyZW50X3N0b3JhZ2VfZGlyOworCiAg ICAgICAgIGlmICgnb3V0JyBpbiBkYXRhKSB7CiAgICAgICAgICAgc2VsZi5vdXQgPSBkYXRhLm91 dCAmJiBkYXRhLm91dC5wb3M7CiAKQEAgLTMyNSw4ICszMzEsOCBAQCBkZWZpbmUoJ21pc2MuYmdw cm9jZXNzJywgWwogICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICA8 ZGl2IGNsYXNzPSJwZy1iZy1ldGltZSBteS1hdXRvIG1yLTIiPjwvZGl2PgogICAgICAgICAgICAg ICAgICAgPGRpdiBjbGFzcz0ibWwtYXV0byI+Ci0gICAgICAgICAgICAgICAgICAgIDxidXR0b24g Y2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IHBnLWJnLW1vcmUtZGV0YWlscyI+PHNwYW4gY2xhc3M9 ImZhIGZhLWluZm8tY2lyY2xlIiByb2xlPSJpbWciPjwvc3Bhbj4mbmJzcDtgICsgZ2V0dGV4dCgn TW9yZSBkZXRhaWxzLi4uJykgKyBgPC9idXR0b24+Ci0gICAgICAgICAgICAgICAgICAgIDxidXR0 b24gY2xhc3M9ImJ0biBidG4tZGFuZ2VyIGJnLXByb2Nlc3Mtc3RvcCIgZGlzYWJsZWQ+PHNwYW4g Y2xhc3M9ImZhIGZhLXRpbWVzLWNpcmNsZSIgcm9sZT0iaW1nIj48L3NwYW4+Jm5ic3A7YCArIGdl dHRleHQoJ1N0b3AgUHJvY2VzcycpICsgYDwvYnV0dG9uPgorICAgICAgICAgICAgICAgICAgICA8 YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBwZy1iZy1tb3JlLWRldGFpbHMiIHRpdGxl PSJNb3JlIERldGFpbHMiPjxzcGFuIGNsYXNzPSJmYSBmYS1pbmZvLWNpcmNsZSIgcm9sZT0iaW1n Ij48L3NwYW4+Jm5ic3A7YCArIGdldHRleHQoJ01vcmUgZGV0YWlscy4uLicpICsgYDwvYnV0dG9u PgorICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRhbmdlciBiZy1w cm9jZXNzLXN0b3AiIGRpc2FibGVkPjxzcGFuIGNsYXNzPSJmYSBmYS10aW1lcy1jaXJjbGUiIHJv bGU9ImltZyIgdGl0bGU9IlN0b3AgdGhlIG9wZXJhdGlvbiI+PC9zcGFuPiZuYnNwO2AgKyBnZXR0 ZXh0KCdTdG9wIFByb2Nlc3MnKSArIGA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgIDwvZGl2 PgogICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBn LWJnLXN0YXR1cyBweS0xIj4KQEAgLTM4Nyw2ICszOTMsNyBAQCBkZWZpbmUoJ21pc2MuYmdwcm9j ZXNzJywgWwogICAgICAgICAgIHZhciAkc3RhdHVzX2JhciA9ICQoc2VsZi5jb250YWluZXIuZmlu ZCgnLnBnLWJnLXN0YXR1cycpKTsKICAgICAgICAgICAkc3RhdHVzX2Jhci5odG1sKHNlbGYuY3Vy cl9zdGF0dXMpOwogICAgICAgICAgIHZhciAkYnRuX3N0b3BfcHJvY2VzcyA9ICQoc2VsZi5jb250 YWluZXIuZmluZCgnLmJnLXByb2Nlc3Mtc3RvcCcpKTsKKwogICAgICAgICAgIC8vIEVuYWJsZSBT dG9wIFByb2Nlc3MgYnV0dG9uIG9ubHkgd2hlbiBwcm9jZXNzIGlzIHJ1bm5pbmcKICAgICAgICAg ICBpZiAocGFyc2VJbnQoc2VsZi5zdGF0ZSkgPT09IDEpIHsKICAgICAgICAgICAgICRidG5fc3Rv cF9wcm9jZXNzLmF0dHIoJ2Rpc2FibGVkJywgZmFsc2UpOwpAQCAtNDE1LDcgKzQyMiwyNyBAQCBk ZWZpbmUoJ21pc2MuYmdwcm9jZXNzJywgWwogICAgICAgICAgICRsb2dzID0gY29udGFpbmVyLmZp bmQoJy5iZy1wcm9jZXNzLXdhdGNoZXInKSwKICAgICAgICAgICAkaGVhZGVyID0gY29udGFpbmVy LmZpbmQoJy5iZy1wcm9jZXNzLWRldGFpbHMnKSwKICAgICAgICAgICAkZm9vdGVyID0gY29udGFp bmVyLmZpbmQoJy5iZy1wcm9jZXNzLWZvb3RlcicpLAotICAgICAgICAgICRidG5fc3RvcF9wcm9j ZXNzID0gY29udGFpbmVyLmZpbmQoJy5iZy1wcm9jZXNzLXN0b3AnKTsKKyAgICAgICAgICAkYnRu X3N0b3BfcHJvY2VzcyA9IGNvbnRhaW5lci5maW5kKCcuYmctcHJvY2Vzcy1zdG9wJyksCisgICAg ICAgICAgJGJ0bl9zdG9yYWdlX21hbmFnZXIgPSBjb250YWluZXIuZmluZCgnLmJnLXByb2Nlc3Mt c3RvcmFnZS1tYW5hZ2VyJyk7CisKKyAgICAgICAgaWYoc2VsZi5jdXJyZW50X3N0b3JhZ2VfZGly ICYmIGlzU2VydmVyTW9kZSkgeyAvL2ZvciBiYWNrdXAgJiBleHBvcnRzIHdpdGggc2VydmVyIG1v ZGUsIG9wZXJhdGUgb3ZlciBzdG9yYWdlIG1hbmFnZXIKKworICAgICAgICAgIGlmKCRidG5fc3Rv cmFnZV9tYW5hZ2VyLmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICB2YXIgc3RyX3N0b3JhZ2Vf bWFuYWdlcl9idG4gPSAnPGJ1dHRvbiBpZD0iYmctcHJvY2Vzcy1zdG9yYWdlLW1hbmFnZXIiIGNs YXNzPSJidG4gYnRuLXNlY29uZGFyeSBiZy1wcm9jZXNzLXN0b3JhZ2UtbWFuYWdlciIgdGl0bGU9 IkNsaWNrIHRvIG9wZW4gZmlsZSBsb2NhdGlvbiIgYXJpYS1sYWJlbD0iU3RvcmFnZSBNYW5hZ2Vy IiB0YWJpbmRleD0iMCIgZGlzYWJsZWQ+PHNwYW4gY2xhc3M9InBnLWZvbnQtaWNvbiBpY29uLXN0 b3JhZ2UtbWFuYWdlciIgcm9sZT0iaW1nIj48L3NwYW4+PC9idXR0b24+Jm5ic3A7JzsKKyAgICAg ICAgICAgIGNvbnRhaW5lci5maW5kKCcuYmctcHJvY2Vzcy1kZXRhaWxzIC5iZy1idG4tc2VjdGlv bicpLnByZXBlbmQoc3RyX3N0b3JhZ2VfbWFuYWdlcl9idG4pOworICAgICAgICAgICAgJGJ0bl9z dG9yYWdlX21hbmFnZXIgPSBjb250YWluZXIuZmluZCgnLmJnLXByb2Nlc3Mtc3RvcmFnZS1tYW5h Z2VyJyk7CisgICAgICAgICAgfQorCisgICAgICAgICAgLy8gRGlzYWJsZSBzdG9yYWdlIG1hbmFn ZXIgYnV0dG9uIG9ubHkgd2hlbiBwcm9jZXNzIGlzIHJ1bm5pbmcKKyAgICAgICAgICBpZiAocGFy c2VJbnQoc2VsZi5zdGF0ZSkgPT09IDEpIHsKKyAgICAgICAgICAgICRidG5fc3RvcmFnZV9tYW5h Z2VyLmF0dHIoJ2Rpc2FibGVkJywgdHJ1ZSk7CisgICAgICAgICAgfQorICAgICAgICAgIGVsc2Ug eworICAgICAgICAgICAgJGJ0bl9zdG9yYWdlX21hbmFnZXIuYXR0cignZGlzYWJsZWQnLCBmYWxz ZSk7CisgICAgICAgICAgfQorICAgICAgICAgIC8vIE9uIENsaWNrIGV2ZW50IGZvciBzdG9yYWdl IG1hbmFnZXIgYnV0dG9uLgorICAgICAgICAgICRidG5fc3RvcmFnZV9tYW5hZ2VyLm9mZignY2xp Y2snKS5vbignY2xpY2snLCBzZWxmLnN0b3JhZ2VfbWFuYWdlci5iaW5kKHRoaXMpKTsKKyAgICAg ICAgfQogCiAgICAgICAgIC8vIEVuYWJsZSBTdG9wIFByb2Nlc3MgYnV0dG9uIG9ubHkgd2hlbiBw cm9jZXNzIGlzIHJ1bm5pbmcKICAgICAgICAgaWYgKHBhcnNlSW50KHNlbGYuc3RhdGUpID09PSAx KSB7CkBAIC01MjYsNiArNTUzLDE1IEBAIGRlZmluZSgnbWlzYy5iZ3Byb2Nlc3MnLCBbCiAgICAg ICAgICAgfSk7CiAgICAgICB9LAogCisgICAgICBzdG9yYWdlX21hbmFnZXI6IGZ1bmN0aW9uKCkg eworCisgICAgICAgIHZhciBzZWxmID0gdGhpczsKKyAgICAgICAgaWYoc2VsZi5jdXJyZW50X3N0 b3JhZ2VfZGlyKSB7CisgICAgICAgICAgcGdCcm93c2VyLkV2ZW50cy50cmlnZ2VyKAorICAgICAg ICAgICAgJ3BnYWRtaW46dG9vbHM6c3RvcmFnZV9tYW5hZ2VyJywgc2VsZi5jdXJyZW50X3N0b3Jh Z2VfZGlyCisgICAgICAgICAgKTsKKyAgICAgICAgfQorICAgICAgfSwKICAgICB9KTsKIAogICBf LmV4dGVuZCgKQEAgLTYzNCw3ICs2NzAsNyBAQCBkZWZpbmUoJ21pc2MuYmdwcm9jZXNzJywgWwog ICAgICAgICAgICAgICAgICAgJzxzcGFuPicgKyBnZXR0ZXh0KCdTdGFydCB0aW1lJykgKyAnOiA8 c3BhbiBjbGFzcz0iYmdwcm9jZXNzLXN0YXJ0LXRpbWUiPjwvc3Bhbj4nICsKICAgICAgICAgICAg ICAgICAgICc8L3NwYW4+JysKICAgICAgICAgICAgICAgICAnPC9kaXY+JyArCi0gICAgICAgICAg ICAgICAgJzxkaXYgY2xhc3M9Im1sLWF1dG8iPicgKworICAgICAgICAgICAgICAgICc8ZGl2IGNs YXNzPSJtbC1hdXRvIGJnLWJ0bi1zZWN0aW9uIj4nICsKICAgICAgICAgICAgICAgICAgICc8YnV0 dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGFuZ2VyIGJnLXByb2Nlc3Mtc3RvcCIg ZGlzYWJsZWQ+PHNwYW4gY2xhc3M9ImZhIGZhLXRpbWVzLWNpcmNsZSIgcm9sZT0iaW1nIj48L3Nw YW4+Jm5ic3A7JyArIGdldHRleHQoJ1N0b3AgUHJvY2VzcycpICsgJzwvYnV0dG9uPicgKwogICAg ICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgJzwvZGl2PicgKwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvX19pbml0X18ucHkgYi93ZWIvcGdh ZG1pbi9taXNjL2ZpbGVfbWFuYWdlci9fX2luaXRfXy5weQppbmRleCA2M2UyZGQ3YTMuLjRhYjU4 ZmI5MSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvX19pbml0X18u cHkKKysrIGIvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvX19pbml0X18ucHkKQEAgLTIz LDcgKzIzLDcgQEAgZnJvbSB3ZXJremV1Zy5leGNlcHRpb25zIGltcG9ydCBJbnRlcm5hbFNlcnZl ckVycm9yCiAKIGltcG9ydCBzaW1wbGVqc29uIGFzIGpzb24KIGZyb20gZmxhc2sgaW1wb3J0IHJl bmRlcl90ZW1wbGF0ZSwgUmVzcG9uc2UsIHNlc3Npb24sIHJlcXVlc3QgYXMgcmVxLCBcCi0gICAg dXJsX2ZvciwgY3VycmVudF9hcHAKKyAgICB1cmxfZm9yLCBjdXJyZW50X2FwcCwgc2VuZF9mcm9t X2RpcmVjdG9yeQogZnJvbSBmbGFza19iYWJlbGV4IGltcG9ydCBnZXR0ZXh0CiBmcm9tIGZsYXNr X3NlY3VyaXR5IGltcG9ydCBsb2dpbl9yZXF1aXJlZAogZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9y dCBQZ0FkbWluTW9kdWxlCkBAIC0xMjE0LDExICsxMjE0LDE2IEBAIGNsYXNzIEZpbGVtYW5hZ2Vy KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgJ2F0dGFjaG1lbnQ7IGZpbGVuYW1lPScgKyBuYW1l CiAgICAgICAgICAgICByZXR1cm4gcmVzcAogCi0gICAgICAgIG5hbWUgPSBwYXRoLnNwbGl0KCcv JylbLTFdCi0gICAgICAgIGNvbnRlbnQgPSBvcGVuKG9yaWdfcGF0aCwgJ3JiJykKLSAgICAgICAg cmVzcCA9IFJlc3BvbnNlKGNvbnRlbnQpCi0gICAgICAgIHJlc3AuaGVhZGVyc1snQ29udGVudC1E aXNwb3NpdGlvbiddID0gJ2F0dGFjaG1lbnQ7IGZpbGVuYW1lPScgKyBuYW1lCi0gICAgICAgIHJl dHVybiByZXNwCisgICAgICAgIG5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKHBhdGgpCisgICAgICAg IGlmIG9yaWdfcGF0aCBhbmQgbGVuKG9yaWdfcGF0aCkgPiAwOgorICAgICAgICAgICAgZGlyX3Bh dGggPSBvcy5wYXRoLmRpcm5hbWUob3JpZ19wYXRoKQorICAgICAgICBlbHNlOgorICAgICAgICAg ICAgZGlyX3BhdGggPSBvcy5wYXRoLmRpcm5hbWUocGF0aCkKKworICAgICAgICByZXNwb25zZSA9 IHNlbmRfZnJvbV9kaXJlY3RvcnkoZGlyX3BhdGgsIG5hbWUsIGFzX2F0dGFjaG1lbnQ9VHJ1ZSkK KyAgICAgICAgcmVzcG9uc2UuaGVhZGVyc1siZmlsZW5hbWUiXSA9IG5hbWUKKworICAgICAgICBy ZXR1cm4gcmVzcG9uc2UKIAogICAgIGRlZiBwZXJtaXNzaW9uKHNlbGYsIHBhdGg9Tm9uZSwgcmVx PU5vbmUpOgogICAgICAgICB0aGVfZGlyID0gc2VsZi5kaXIgaWYgc2VsZi5kaXIgaXMgbm90IE5v bmUgZWxzZSAnJwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvc3Rh dGljL2pzL2ZpbGVfbWFuYWdlci5qcyBiL3dlYi9wZ2FkbWluL21pc2MvZmlsZV9tYW5hZ2VyL3N0 YXRpYy9qcy9maWxlX21hbmFnZXIuanMKaW5kZXggMWRhODY4ODk2Li5jMmJkODdjOWYgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL21pc2MvZmlsZV9tYW5hZ2VyL3N0YXRpYy9qcy9maWxlX21hbmFn ZXIuanMKKysrIGIvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvc3RhdGljL2pzL2ZpbGVf bWFuYWdlci5qcwpAQCAtOSw2ICs5LDcgQEAKIAogaW1wb3J0ICcuL3NlbGVjdF9kaWFsb2d1ZSc7 CiBpbXBvcnQgJy4vY3JlYXRlX2RpYWxvZ3VlJzsKK2ltcG9ydCAnLi9zdG9yYWdlX2RpYWxvZ3Vl JzsKIAogZGVmaW5lKCdtaXNjLmZpbGVfbWFuYWdlcicsIFsKICAgJ3NvdXJjZXMvZ2V0dGV4dCcs ICdzb3VyY2VzL3VybF9mb3InLCAnanF1ZXJ5JywgJ3VuZGVyc2NvcmUnLApAQCAtNDEsNyArNDIs MTAgQEAgZGVmaW5lKCdtaXNjLmZpbGVfbWFuYWdlcicsIFsKICAgICAgIGxldCBkaWFsb2dIZWln aHQgPSBwZ0FkbWluLkJyb3dzZXIuc3RkSC5jYWxjKHBnQWRtaW4uQnJvd3Nlci5zdGRILmxnKTsK ICAgICAgIGlmIChwYXJhbXMuZGlhbG9nX3R5cGUgPT0gJ2NyZWF0ZV9maWxlJykgewogICAgICAg ICBBbGVydGlmeS5jcmVhdGVNb2RlRGxnKHBhcmFtcykucmVzaXplVG8oZGlhbG9nV2lkdGgsIGRp YWxvZ0hlaWdodCk7Ci0gICAgICB9IGVsc2UgeworICAgICAgfSBlbHNlIGlmKHBhcmFtcy5kaWFs b2dfdHlwZSA9PSAnc3RvcmFnZV9kaWFsb2cnKSB7CisgICAgICAgIEFsZXJ0aWZ5LmZpbGVTdG9y YWdlRGxnKHBhcmFtcykucmVzaXplVG8oZGlhbG9nV2lkdGgsIGRpYWxvZ0hlaWdodCk7CisgICAg ICB9CisgICAgICBlbHNlIHsKICAgICAgICAgQWxlcnRpZnkuZmlsZVNlbGVjdGlvbkRsZyhwYXJh bXMpLnJlc2l6ZVRvKGRpYWxvZ1dpZHRoLCBkaWFsb2dIZWlnaHQpOwogICAgICAgfQogICAgIH0s CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL2ZpbGVfbWFuYWdlci9zdGF0aWMvanMvc2Vs ZWN0X2RpYWxvZ3VlLmpzIGIvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvc3RhdGljL2pz L3NlbGVjdF9kaWFsb2d1ZS5qcwppbmRleCA3YjY1MTU1OTMuLmY0NGY0YWM0MCAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvc3RhdGljL2pzL3NlbGVjdF9kaWFsb2d1 ZS5qcworKysgYi93ZWIvcGdhZG1pbi9taXNjL2ZpbGVfbWFuYWdlci9zdGF0aWMvanMvc2VsZWN0 X2RpYWxvZ3VlLmpzCkBAIC03Nyw3ICs3Nyw4IEBAIG1vZHVsZS5leHBvcnRzID0gIEFsZXJ0aWZ5 LmRpYWxvZygnZmlsZVNlbGVjdGlvbkRsZycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICQoJChz ZWxmLmVsZW1lbnRzLmZvb3RlcikuZmluZCgnLmZpbGVfbWFuYWdlcl9vaycpKS50cmlnZ2VyKCdj bGljaycpOwogICAgICAgICB9KTsKICAgICAgIH0sIDIwMCk7Ci0gICAgICBzZWxmLl9faW50ZXJu YWwuYnV0dG9uc1sxXS5lbGVtZW50LmRpc2FibGVkID0gdHJ1ZTsKKyAgICAgIGlmKHNlbGYuX19p bnRlcm5hbC5idXR0b25zWzFdKQorICAgICAgICBzZWxmLl9faW50ZXJuYWwuYnV0dG9uc1sxXS5l bGVtZW50LmRpc2FibGVkID0gdHJ1ZTsKICAgICB9LAogICAgIHNldHVwOiBmdW5jdGlvbigpIHsK ICAgICAgIHJldHVybiB7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL2ZpbGVfbWFuYWdl ci9zdGF0aWMvanMvc3RvcmFnZV9kaWFsb2d1ZS5qcyBiL3dlYi9wZ2FkbWluL21pc2MvZmlsZV9t YW5hZ2VyL3N0YXRpYy9qcy9zdG9yYWdlX2RpYWxvZ3VlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMC4uZTY0NDQ1NTExCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vbWlzYy9maWxlX21hbmFnZXIvc3RhdGljL2pzL3N0b3JhZ2VfZGlhbG9ndWUuanMKQEAgLTAs MCArMSw0NSBAQAorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLworLy8KKy8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKy8v CisvLyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBU ZWFtCisvLyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExp Y2VuY2UKKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLworCitpbXBvcnQgZ2V0dGV4dCBmcm9tICdzb3VyY2VzL2dldHRleHQn OworaW1wb3J0IEFsZXJ0aWZ5IGZyb20gJ3BnYWRtaW4uYWxlcnRpZnlqcyc7CisKKy8vIERlY2xh cmUgdGhlIFN0b3JhZ2UgZGlhbG9nCittb2R1bGUuZXhwb3J0cyA9ICBBbGVydGlmeS5kaWFsb2co J2ZpbGVTdG9yYWdlRGxnJywgZnVuY3Rpb24oKSB7CisgIC8vIERpYWxvZyBwcm9wZXJ0eQorICBy ZXR1cm4geworICAgIHNldHRpbmdVcGRhdGVkOiBmdW5jdGlvbihrZXksIG9sZFZhbHVlLCBuZXdW YWx1ZSkgeworICAgICAgaWYoa2V5ID09ICdtZXNzYWdlJykgeworICAgICAgICB0aGlzLnNldE1l c3NhZ2UobmV3VmFsdWUpOworICAgICAgfQorICAgIH0sCisgICAgc2V0dXA6IGZ1bmN0aW9uKCkg eworICAgICAgcmV0dXJuIHsKKyAgICAgICAgYnV0dG9uczogW3sKKyAgICAgICAgICB0ZXh0OiBn ZXR0ZXh0KCdDYW5jZWwnKSwKKyAgICAgICAgICBrZXk6IDI3LAorICAgICAgICAgIGNsYXNzTmFt ZTogJ2J0biBidG4tc2Vjb25kYXJ5IGZhIGZhLXRpbWVzIHBnLWFsZXJ0aWZ5LWJ1dHRvbicsCisg ICAgICAgIH1dLAorICAgICAgICBvcHRpb25zOiB7CisgICAgICAgICAgY2xvc2FibGVCeURpbW1l cjogZmFsc2UsCisgICAgICAgICAgbWF4aW1pemFibGU6IGZhbHNlLAorICAgICAgICAgIGNsb3Nh YmxlOiBmYWxzZSwKKyAgICAgICAgICBtb3ZhYmxlOiB0cnVlLAorICAgICAgICAgIHBhZGRpbmc6 ICExLAorICAgICAgICAgIG92ZXJmbG93OiAhMSwKKyAgICAgICAgICBtb2RlbDogMCwKKyAgICAg ICAgICByZXNpemFibGU6IHRydWUsCisgICAgICAgICAgcGlubmFibGU6IGZhbHNlLAorICAgICAg ICAgIG1vZGFsOiBmYWxzZSwKKyAgICAgICAgICBhdXRvUmVzZXQ6IGZhbHNlLAorICAgICAgICB9 LAorICAgICAgfTsKKyAgICB9LAorICB9OworfSwgdHJ1ZSwgJ2ZpbGVTZWxlY3Rpb25EbGcnKTsK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2MvZmlsZV9tYW5hZ2VyL3N0YXRpYy9qcy91dGls aXR5LmpzIGIvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvc3RhdGljL2pzL3V0aWxpdHku anMKaW5kZXggMzQ5NGIxMjdjLi4zY2Q1ZDU2NWUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL21p c2MvZmlsZV9tYW5hZ2VyL3N0YXRpYy9qcy91dGlsaXR5LmpzCisrKyBiL3dlYi9wZ2FkbWluL21p c2MvZmlsZV9tYW5hZ2VyL3N0YXRpYy9qcy91dGlsaXR5LmpzCkBAIC0yMyw2ICsyMyw4IEBAIGRl ZmluZShbCiAgICdzb3VyY2VzL2NzcmYnLCAndGFibGVzb3J0ZXInLCAndGFibGVzb3J0ZXItbWV0 cmljJywKIF0sIGZ1bmN0aW9uKCQsIF8sIEFsZXJ0aWZ5LCBnZXR0ZXh0LCB1cmxfZm9yLCBEcm9w em9uZSwgcGdBZG1pbiwgY3NyZikgewogCisgIHBnQWRtaW4uQnJvd3NlciA9IHBnQWRtaW4uQnJv d3NlciB8fCB7fTsKKwogICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIERlZmluZSBmdW5jdGlvbnMgdXNlZCBmb3IgdmFyaW91 cyBvcGVyYXRpb25zCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSovCkBAIC0xNzksMTQgKzE4MSwxNyBAQCBkZWZpbmUoWwogICAgICAg JCgnLmZpbGVfbWFuYWdlcicpLmZpbmQoJ2J1dHRvbi5kb3dubG9hZCcpLmhpZGUoKTsKICAgICB9 IGVsc2UgewogICAgICAgJCgnLmZpbGVfbWFuYWdlcicpLmZpbmQoJ2J1dHRvbi5kb3dubG9hZCcp Lm9mZigpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgcGF0aDsKKyAgICAg ICAgdmFyIHBhdGgsCisgICAgICAgICAgcGFyYW1zID0ge307CisKKyAgICAgICAgcGFyYW1zW3Bn QWRtaW4uY3NyZl90b2tlbl9oZWFkZXJdID0gcGdBZG1pbi5jc3JmX3Rva2VuOworCiAgICAgICAg IGlmICgkKCcuZmlsZWluZm8nKS5kYXRhKCd2aWV3JykgPT0gJ2dyaWQnKSB7CiAgICAgICAgICAg cGF0aCA9ICQoJy5maWxlaW5mbyBsaS5zZWxlY3RlZCcpLmZpbmQoJy5jbGlwIHNwYW4nKS5hdHRy KCdkYXRhLWFsdCcpOwotICAgICAgICAgIHdpbmRvdy5vcGVuKHBnQWRtaW4uRmlsZVV0aWxzLmZp bGVDb25uZWN0b3IgKyAnP189JyArIERhdGUubm93KCkgKyAnbW9kZT1kb3dubG9hZCZwYXRoPScg KyBwYXRoLCAnX2JsYW5rJyk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgcGF0aCA9ICQo Jy5maWxlaW5mbycpLmZpbmQoJ3RhYmxlI2NvbnRlbnRzIHRib2R5IHRyLnNlbGVjdGVkIHRkOmZp cnN0LWNoaWxkJykuYXR0cigndGl0bGUnKTsKLSAgICAgICAgICB3aW5kb3cub3BlbihwZ0FkbWlu LkZpbGVVdGlscy5maWxlQ29ubmVjdG9yICsgJz9fPScgKyBEYXRlLm5vdygpICsgJ21vZGU9ZG93 bmxvYWQmcGF0aD0nICsgcGF0aCwgJ19ibGFuaycpOwogICAgICAgICB9CisgICAgICAgIGRvd25s b2FkX2ZpbGUocGF0aCk7CiAgICAgICB9KTsKICAgICB9CiAgIH07CkBAIC0xMTY4LDYgKzExNzMs NjAgQEAgZGVmaW5lKFsKICAgICAgIGlzX3Byb3RlY3RlZCA9PSB1bmRlZmluZWQ7CiAgIH07CiAK KyAgLy8gRG93bmxvYWQgc2VsZWN0ZWQgZmlsZQorICB2YXIgZG93bmxvYWRfZmlsZSA9IGZ1bmN0 aW9uIChwYXRoKSB7CisKKyAgICB2YXIgZGF0YSA9IHsgJ3BhdGgnOiBwYXRoLCAnbW9kZSc6ICdk b3dubG9hZCcgfSwKKyAgICAgIHBhcmFtcyA9IHt9OworCisgICAgcGFyYW1zW3BnQWRtaW4uY3Ny Zl90b2tlbl9oZWFkZXJdID0gcGdBZG1pbi5jc3JmX3Rva2VuOworCisgICAgJC5hamF4KHsKKyAg ICAgIHR5cGU6ICdQT1NUJywKKyAgICAgIHVybDogcGdBZG1pbi5GaWxlVXRpbHMuZmlsZUNvbm5l Y3RvciwKKyAgICAgIGNvbnRlbnRUeXBlOiBmYWxzZSwKKyAgICAgIGhlYWRlcnM6IHBhcmFtcywK KyAgICAgIHhockZpZWxkczogeworICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJywKKyAgICAg IH0sCisgICAgICBjYWNoZTogZmFsc2UsCisgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShkYXRh KSwKKyAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChibG9iLCBzdGF0dXMsIHhocikgeworICAgICAg ICAvLyBjaGVjayBmb3IgYSBmaWxlbmFtZQorICAgICAgICB2YXIgZmlsZW5hbWUgPSB4aHIuZ2V0 UmVzcG9uc2VIZWFkZXIoJ2ZpbGVuYW1lJyk7CisKKyAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cu bmF2aWdhdG9yLm1zU2F2ZUJsb2IgIT09ICd1bmRlZmluZWQnKSB7CisgICAgICAgICAgLy8gSUUg d29ya2Fyb3VuZCBmb3IgIkhUTUw3MDA3OiBPbmUgb3IgbW9yZSBibG9iIFVSTHMgd2VyZSByZXZv a2VkIGJ5IGNsb3NpbmcgdGhlIGJsb2IgZm9yIHdoaWNoIHRoZXkgd2VyZSBjcmVhdGVkLiBUaGVz ZSBVUkxzIHdpbGwgbm8gbG9uZ2VyIHJlc29sdmUgYXMgdGhlIGRhdGEgYmFja2luZyB0aGUgVVJM IGhhcyBiZWVuIGZyZWVkLiIKKyAgICAgICAgICB3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZUJsb2Io YmxvYiwgZmlsZW5hbWUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHZhciBVUkwgPSB3 aW5kb3cuVVJMIHx8IHdpbmRvdy53ZWJraXRVUkw7CisgICAgICAgICAgdmFyIGRvd25sb2FkVXJs ID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTsKKworICAgICAgICAgIGlmIChmaWxlbmFtZSkg eworICAgICAgICAgICAgLy8gdXNlIEhUTUw1IGFbZG93bmxvYWRdIGF0dHJpYnV0ZSB0byBzcGVj aWZ5IGZpbGVuYW1lCisgICAgICAgICAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo J2EnKTsKKyAgICAgICAgICAgIC8vIHNhZmFyaSBkb2Vzbid0IHN1cHBvcnQgdGhpcyB5ZXQKKyAg ICAgICAgICAgIGlmICh0eXBlb2YgYS5kb3dubG9hZCA9PT0gJ3VuZGVmaW5lZCcpIHsKKyAgICAg ICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBkb3dubG9hZFVybDsKKyAgICAgICAgICAg IH0gZWxzZSB7CisgICAgICAgICAgICAgIGEuaHJlZiA9IGRvd25sb2FkVXJsOworICAgICAgICAg ICAgICBhLmRvd25sb2FkID0gZmlsZW5hbWU7CisgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHku YXBwZW5kQ2hpbGQoYSk7CisgICAgICAgICAgICAgIGEuY2xpY2soKTsKKyAgICAgICAgICAgIH0K KyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBk b3dubG9hZFVybDsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u ICgpIHsgVVJMLnJldm9rZU9iamVjdFVSTChkb3dubG9hZFVybCk7IH0sIDEwMCk7IC8vIGNsZWFu dXAKKyAgICAgICAgfQorICAgICAgfSwKKyAgICAgIGVycm9yOiBmdW5jdGlvbiAoZXJyb3IpIHsK KyAgICAgICAgQWxlcnRpZnkuZXJyb3IoZXJyb3IpOworICAgICAgfSwKKyAgICB9KTsKKyAgfTsK KwogICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogICAgIEluaXRpYWxpemF0aW9uIC0gRW50cnkgcG9pbnQKICAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2JhY2t1cC9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL3Rv b2xzL2JhY2t1cC9fX2luaXRfXy5weQppbmRleCBkYTM4OGFkMjYuLmM2YThlYzMzNiAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvYmFja3VwL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2Fk bWluL3Rvb2xzL2JhY2t1cC9fX2luaXRfXy5weQpAQCAtMTQxLDYgKzE0MSwxMSBAQCBjbGFzcyBC YWNrdXBNZXNzYWdlKElQcm9jZXNzRGVzYyk6CiAgICAgICAgICAgICAjIEl0IHNob3VsZCBuZXZl ciByZWFjaCBoZXJlLgogICAgICAgICAgICAgcmV0dXJuIF8oIlVua25vd24gQmFja3VwIikKIAor ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjdXJyZW50X3N0b3JhZ2VfZGlyKHNlbGYpOgorICAgICAg ICByZXR1cm4gc2VsZi5iZmlsZSBpZiBvcy5wYXRoLmlzZGlyKHNlbGYuYmZpbGUpIFwKKyAgICAg ICAgICAgIGVsc2Ugb3MucGF0aC5kaXJuYW1lKHNlbGYuYmZpbGUpCisKICAgICBAcHJvcGVydHkK ICAgICBkZWYgbWVzc2FnZShzZWxmKToKICAgICAgICAgbmFtZSwgaG9zdCwgcG9ydCA9IHNlbGYu Z2V0X3NlcnZlcl9kZXRhaWxzKCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2JhY2t1 cC90ZXN0cy90ZXN0X2JhY2t1cF9tZXNzYWdlLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvYmFja3Vw L3Rlc3RzL3Rlc3RfYmFja3VwX21lc3NhZ2UucHkKaW5kZXggNGUwOGRmZjE0Li4xZDIzZmY2Zjgg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL2JhY2t1cC90ZXN0cy90ZXN0X2JhY2t1cF9t ZXNzYWdlLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2JhY2t1cC90ZXN0cy90ZXN0X2JhY2t1 cF9tZXNzYWdlLnB5CkBAIC0xNCw2ICsxNCwxMCBAQCBmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0 IHBhdGNoCiAKIGNsYXNzIEJhY2t1cE1lc3NhZ2VUZXN0KEJhc2VUZXN0R2VuZXJhdG9yKToKICAg ICAiIiJUZXN0IHRoZSBCYWNrdXBNZXNzYWdlIGNsYXNzIiIiCisKKyAgICBleHBlY3RlZF9zdG9y YWdlX2RpciA9ICcvdGVzdF9wYXRoJworICAgIHBnX2R1bXAgPSAiL3BnX2R1bXAiCisKICAgICBz Y2VuYXJpb3MgPSBbCiAgICAgICAgICgnV2hlbiBCYWNrdXAgc2VydmVyJywKICAgICAgICAgIGRp Y3QoCkBAIC0yNCw3ICsyOCw3IEBAIGNsYXNzIEJhY2t1cE1lc3NhZ2VUZXN0KEJhc2VUZXN0R2Vu ZXJhdG9yKToKICAgICAgICAgICAgICAgICAgcG9ydD01NDQ0LAogICAgICAgICAgICAgICAgICBo b3N0PSdsb2NhbGhvc3QnLAogICAgICAgICAgICAgICAgICBkYXRhYmFzZT0ncG9zdGdyZXMnLAot ICAgICAgICAgICAgICAgICBiZmlsZT0ndGVzdF9yZXN0b3JlJywKKyAgICAgICAgICAgICAgICAg YmZpbGU9Jy90ZXN0X3BhdGgvdGVzdF9yZXN0b3JlLnNxbCcsCiAgICAgICAgICAgICAgICAgIGFy Z3M9WwogICAgICAgICAgICAgICAgICAgICAgJy0tZmlsZScsCiAgICAgICAgICAgICAgICAgICAg ICAiYmFja3VwX2ZpbGUiLApAQCAtMzgsMTQgKzQyLDE1IEBAIGNsYXNzIEJhY2t1cE1lc3NhZ2VU ZXN0KEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAgICAgICctLWRhdGFiYXNl JywKICAgICAgICAgICAgICAgICAgICAgICJwb3N0Z3JlcyIKICAgICAgICAgICAgICAgICAgXSwK LSAgICAgICAgICAgICAgICAgY21kPSIvdGVzdF9wYXRoL3BnX2R1bXAiCisgICAgICAgICAgICAg ICAgIGNtZD1leHBlY3RlZF9zdG9yYWdlX2RpciArIHBnX2R1bXAKICAgICAgICAgICAgICApLAog ICAgICAgICAgICAgIGV4cGVjdGVkX21zZz0iQmFja2luZyB1cCB0aGUgc2VydmVyIgogICAgICAg ICAgICAgICAgICAgICAgICAgICAiICd0ZXN0X2JhY2t1cF9zZXJ2ZXIgKGxvY2FsaG9zdDo1NDQ0 KSciLAogICAgICAgICAgICAgIGV4cGVjdGVkX2RldGFpbHNfY21kPScvdGVzdF9wYXRoL3BnX2R1 bXAgLS1maWxlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnImJhY2t1cF9m aWxlIiAtLWhvc3QgImxvY2FsaG9zdCIgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICctLXBvcnQgIjU0NDQiIC0tdXNlcm5hbWUgInBvc3RncmVzIiAnCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJy0tbm8tcGFzc3dvcmQgLS1kYXRhYmFzZSAicG9zdGdyZXMi JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLW5vLXBhc3N3b3JkIC0tZGF0 YWJhc2UgInBvc3RncmVzIicsCisgICAgICAgICAgICAgZXhwZWN0ZWRfc3RvcmFnZV9kaXI9ZXhw ZWN0ZWRfc3RvcmFnZV9kaXIKIAogICAgICAgICAgKSksCiAgICAgICAgICgnV2hlbiBCYWNrdXAg Z2xvYmFsJywKQEAgLTU3LDcgKzYyLDcgQEAgY2xhc3MgQmFja3VwTWVzc2FnZVRlc3QoQmFzZVRl c3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICAgICBwb3J0PTU0NDQsCiAgICAgICAgICAgICAg ICAgIGhvc3Q9J2xvY2FsaG9zdCcsCiAgICAgICAgICAgICAgICAgIGRhdGFiYXNlPSdwb3N0Z3Jl cycsCi0gICAgICAgICAgICAgICAgIGJmaWxlPSd0ZXN0X2JhY2t1cCcsCisgICAgICAgICAgICAg ICAgIGJmaWxlPScvdGVzdF9wYXRoL3Rlc3RfYmFja3VwJywKICAgICAgICAgICAgICAgICAgYXJn cz1bCiAgICAgICAgICAgICAgICAgICAgICAnLS1maWxlJywKICAgICAgICAgICAgICAgICAgICAg ICdiYWNrdXBfZmlsZScsCkBAIC03MSwxNCArNzYsMTUgQEAgY2xhc3MgQmFja3VwTWVzc2FnZVRl c3QoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICAgICAgICAgJy0tZGF0YWJhc2Un LAogICAgICAgICAgICAgICAgICAgICAgJ3Bvc3RncmVzJwogICAgICAgICAgICAgICAgICBdLAot ICAgICAgICAgICAgICAgICBjbWQ9Ii90ZXN0X3BhdGgvcGdfZHVtcCIKKyAgICAgICAgICAgICAg ICAgY21kPWV4cGVjdGVkX3N0b3JhZ2VfZGlyICsgcGdfZHVtcAogICAgICAgICAgICAgICksCiAg ICAgICAgICAgICAgZXhwZWN0ZWRfbXNnPSJCYWNraW5nIHVwIHRoZSBnbG9iYWwgb2JqZWN0cyBv biB0aGUgc2VydmVyICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIid0ZXN0X2JhY2t1cF9z ZXJ2ZXIgKGxvY2FsaG9zdDo1NDQ0KSciLAogICAgICAgICAgICAgIGV4cGVjdGVkX2RldGFpbHNf Y21kPScvdGVzdF9wYXRoL3BnX2R1bXAgLS1maWxlICJiYWNrdXBfZmlsZSIgJwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICctLWhvc3QgImxvY2FsaG9zdCInCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJyAtLXBvcnQgIjU0NDQiIC0tdXNlcm5hbWUgInBvc3Rn cmVzIiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tbm8tcGFzc3dvcmQg LS1kYXRhYmFzZSAicG9zdGdyZXMiJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICctLW5vLXBhc3N3b3JkIC0tZGF0YWJhc2UgInBvc3RncmVzIicsCisgICAgICAgICAgICAgZXhw ZWN0ZWRfc3RvcmFnZV9kaXI9ZXhwZWN0ZWRfc3RvcmFnZV9kaXIKIAogICAgICAgICAgKSksCiAg ICAgICAgICgnV2hlbiBiYWNrdXAgb2JqZWN0JywKQEAgLTkwLDcgKzk2LDcgQEAgY2xhc3MgQmFj a3VwTWVzc2FnZVRlc3QoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICAgICBwb3J0 PTU0NDQsCiAgICAgICAgICAgICAgICAgIGhvc3Q9J2xvY2FsaG9zdCcsCiAgICAgICAgICAgICAg ICAgIGRhdGFiYXNlPSdwb3N0Z3JlcycsCi0gICAgICAgICAgICAgICAgIGJmaWxlPSd0ZXN0X2Jh Y2t1cCcsCisgICAgICAgICAgICAgICAgIGJmaWxlPScvdGVzdF9wYXRoL3Rlc3RfYmFja3VwJywK ICAgICAgICAgICAgICAgICAgYXJncz1bCiAgICAgICAgICAgICAgICAgICAgICAnLS1maWxlJywK ICAgICAgICAgICAgICAgICAgICAgICdiYWNrdXBfZmlsZScsCkBAIC0xMDQsNyArMTEwLDcgQEAg Y2xhc3MgQmFja3VwTWVzc2FnZVRlc3QoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAg ICAgICAgICAgJy0tZGF0YWJhc2UnLAogICAgICAgICAgICAgICAgICAgICAgJ3Bvc3RncmVzJwog ICAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICBjbWQ9Ii90ZXN0X3BhdGgvcGdf ZHVtcCIKKyAgICAgICAgICAgICAgICAgY21kPWV4cGVjdGVkX3N0b3JhZ2VfZGlyICsgcGdfZHVt cAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgZXhwZWN0ZWRfbXNnPSJCYWNraW5nIHVw IGFuIG9iamVjdCBvbiB0aGUgc2VydmVyICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIid0 ZXN0X2JhY2t1cF9zZXJ2ZXIgKGxvY2FsaG9zdDo1NDQ0KSciCkBAIC0xMTIsMTMgKzExOCwxNSBA QCBjbGFzcyBCYWNrdXBNZXNzYWdlVGVzdChCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAg ICAgZXhwZWN0ZWRfZGV0YWlsc19jbWQ9Jy90ZXN0X3BhdGgvcGdfZHVtcCAtLWZpbGUgImJhY2t1 cF9maWxlIiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0taG9zdCAibG9j YWxob3N0IiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tcG9ydCAiNTQ0 NCIgLS11c2VybmFtZSAicG9zdGdyZXMiICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnLS1uby1wYXNzd29yZCAtLWRhdGFiYXNlICJwb3N0Z3JlcyInCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJy0tbm8tcGFzc3dvcmQgLS1kYXRhYmFzZSAicG9zdGdyZXMi JywKKyAgICAgICAgICAgICBleHBlY3RlZF9zdG9yYWdlX2Rpcj1leHBlY3RlZF9zdG9yYWdlX2Rp cgogCiAgICAgICAgICApKQogICAgIF0KIAorICAgIEBwYXRjaCgncGdhZG1pbi51dGlscy5nZXRf c3RvcmFnZV9kaXJlY3RvcnknKQogICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5iYWNrdXAuQmFj a3VwTWVzc2FnZS5nZXRfc2VydmVyX2RldGFpbHMnKQotICAgIGRlZiBydW5UZXN0KHNlbGYsIGdl dF9zZXJ2ZXJfZGV0YWlsc19tb2NrKToKKyAgICBkZWYgcnVuVGVzdChzZWxmLCBnZXRfc2VydmVy X2RldGFpbHNfbW9jaywgZ2V0X3N0b3JhZ2VfZGlyZWN0b3J5X21vY2spOgogICAgICAgICBnZXRf c2VydmVyX2RldGFpbHNfbW9jay5yZXR1cm5fdmFsdWUgPSBcCiAgICAgICAgICAgICBzZWxmLmNs YXNzX3BhcmFtc1snbmFtZSddLFwKICAgICAgICAgICAgIHNlbGYuY2xhc3NfcGFyYW1zWydob3N0 J10sXApAQCAtMTMyLDEwICsxNDAsMTYgQEAgY2xhc3MgQmFja3VwTWVzc2FnZVRlc3QoQmFzZVRl c3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgKip7J2RhdGFiYXNlJzogc2VsZi5jbGFzc19wYXJh bXNbJ2RhdGFiYXNlJ119CiAgICAgICAgICkKIAorICAgICAgICBnZXRfc3RvcmFnZV9kaXJlY3Rv cnlfbW9jay5yZXR1cm5fdmFsdWUgPSAnLycKKwogICAgICAgICAjIENoZWNrIHRoZSBleHBlY3Rl ZCBtZXNzYWdlIHJldHVybmVkCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYmFja3VwX29iai5t ZXNzYWdlLCBzZWxmLmV4cGVjdGVkX21zZykKIAogICAgICAgICAjIENoZWNrIHRoZSBjb21tYW5k CiAgICAgICAgIG9ial9kZXRhaWxzID0gYmFja3VwX29iai5kZXRhaWxzKHNlbGYuY2xhc3NfcGFy YW1zWydjbWQnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5jbGFzc19wYXJhbXNbJ2FyZ3MnXSkKKworICAgICAgICBzdG9yYWdlX2RpciA9IGJhY2t1cF9v YmouY3VycmVudF9zdG9yYWdlX2RpcgorCiAgICAgICAgIHNlbGYuYXNzZXJ0SW4oc2VsZi5leHBl Y3RlZF9kZXRhaWxzX2NtZCwgb2JqX2RldGFpbHMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo c2VsZi5leHBlY3RlZF9zdG9yYWdlX2Rpciwgc3RvcmFnZV9kaXIpCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi90b29scy9pbXBvcnRfZXhwb3J0L19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vdG9v bHMvaW1wb3J0X2V4cG9ydC9fX2luaXRfXy5weQppbmRleCA3Y2E3NTQ3ZTguLjdlNTRhYTljMiAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvaW1wb3J0X2V4cG9ydC9fX2luaXRfXy5weQor KysgYi93ZWIvcGdhZG1pbi90b29scy9pbXBvcnRfZXhwb3J0L19faW5pdF9fLnB5CkBAIC0yMyw2 ICsyMyw3IEBAIGZyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9u c2UsIGJhZF9yZXF1ZXN0CiBmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKIGZy b20gcGdhZG1pbi5tb2RlbCBpbXBvcnQgU2VydmVyCiBmcm9tIHBnYWRtaW4udXRpbHMuY29uc3Rh bnRzIGltcG9ydCBNSU1FVFlQRV9BUFBfSlMKK2ltcG9ydCBjb25maWcKIAogTU9EVUxFX05BTUUg PSAnaW1wb3J0X2V4cG9ydCcKIApAQCAtNzEsMTYgKzcyLDE3IEBAIGNsYXNzIElFTWVzc2FnZShJ UHJvY2Vzc0Rlc2MpOgogCiAgICAgRGVmaW5lcyB0aGUgbWVzc2FnZSBzaG93biBmb3IgdGhlIGlt cG9ydC9leHBvcnQgb3BlcmF0aW9uLgogICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs IF9zaWQsIF9zY2hlbWEsIF90YmwsIF9kYXRhYmFzZSwgX3N0b3JhZ2UsICpfYXJncyk6Ci0gICAg ICAgIHNlbGYuc2lkID0gX3NpZAotICAgICAgICBzZWxmLnNjaGVtYSA9IF9zY2hlbWEKLSAgICAg ICAgc2VsZi50YWJsZSA9IF90YmwKLSAgICAgICAgc2VsZi5kYXRhYmFzZSA9IF9kYXRhYmFzZQor ICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqX2FyZ3MsICoqaW9fcGFyYW1zKToKKyAgICAgICAgc2Vs Zi5zaWQgPSBpb19wYXJhbXNbJ3NpZCddCisgICAgICAgIHNlbGYuc2NoZW1hID0gaW9fcGFyYW1z WydzY2hlbWEnXQorICAgICAgICBzZWxmLnRhYmxlID0gaW9fcGFyYW1zWyd0YWJsZSddCisgICAg ICAgIHNlbGYuZGF0YWJhc2UgPSBpb19wYXJhbXNbJ2RhdGFiYXNlJ10KICAgICAgICAgc2VsZi5f Y21kID0gJycKKyAgICAgICAgc2VsZi5pc19pbXBvcnQgPSBpb19wYXJhbXNbJ2lzX2ltcG9ydCdd CisgICAgICAgIHNlbGYuYmZpbGUgPSBpb19wYXJhbXNbJ2ZpbGVuYW1lJ10KIAotICAgICAgICBp ZiBfc3RvcmFnZToKLSAgICAgICAgICAgIF9zdG9yYWdlID0gX3N0b3JhZ2UucmVwbGFjZSgnXFwn LCAnLycpCisgICAgICAgIGlmIGlvX3BhcmFtc1snc3RvcmFnZSddOgorICAgICAgICAgICAgaW9f cGFyYW1zWydzdG9yYWdlJ10gPSBpb19wYXJhbXNbJ3N0b3JhZ2UnXS5yZXBsYWNlKCdcXCcsICcv JykKIAogICAgICAgICBkZWYgY21kX2FyZyh4KToKICAgICAgICAgICAgIGlmIHg6CkBAIC05OSwx OSArMTAxLDI1IEBAIGNsYXNzIElFTWVzc2FnZShJUHJvY2Vzc0Rlc2MpOgogICAgICAgICAgICAg ICAgIHNlbGYuX2NtZCArPSAnICcgKyBhcmcKICAgICAgICAgICAgIGVsaWYgcmVwbGFjZV9uZXh0 OgogICAgICAgICAgICAgICAgIGFyZyA9IGNtZF9hcmcoYXJnKQotICAgICAgICAgICAgICAgIGlm IF9zdG9yYWdlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICBhcmcgPSBhcmcucmVw bGFjZShfc3RvcmFnZSwgJzxTVE9SQUdFX0RJUj4nKQorICAgICAgICAgICAgICAgIGlmIGlvX3Bh cmFtc1snc3RvcmFnZSddIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBhcmcgPSBh cmcucmVwbGFjZShpb19wYXJhbXNbJ3N0b3JhZ2UnXSwgJzxTVE9SQUdFX0RJUj4nKQogICAgICAg ICAgICAgICAgIHNlbGYuX2NtZCArPSAnICInICsgYXJnICsgJyInCiAgICAgICAgICAgICBlbHNl OgogICAgICAgICAgICAgICAgIHNlbGYuX2NtZCArPSBjbWRfYXJnKGFyZykKIAotICAgIEBwcm9w ZXJ0eQotICAgIGRlZiBtZXNzYWdlKHNlbGYpOgorICAgIGRlZiBnZXRfc2VydmVyX2RldGFpbHMo c2VsZik6CiAgICAgICAgICMgRmV0Y2ggdGhlIHNlcnZlciBkZXRhaWxzIGxpa2UgaG9zdG5hbWUs IHBvcnQsIHJvbGVzIGV0YwogICAgICAgICBzID0gU2VydmVyLnF1ZXJ5LmZpbHRlcl9ieSgKICAg ICAgICAgICAgIGlkPXNlbGYuc2lkLCB1c2VyX2lkPWN1cnJlbnRfdXNlci5pZAogICAgICAgICAp LmZpcnN0KCkKIAorICAgICAgICByZXR1cm4gcy5uYW1lLCBzLmhvc3QsIHMucG9ydAorCisgICAg QHByb3BlcnR5CisgICAgZGVmIG1lc3NhZ2Uoc2VsZik6CisgICAgICAgICMgRmV0Y2ggdGhlIHNl cnZlciBkZXRhaWxzIGxpa2UgaG9zdG5hbWUsIHBvcnQsIHJvbGVzIGV0YworICAgICAgICBuYW1l LCBob3N0LCBwb3J0ID0gc2VsZi5nZXRfc2VydmVyX2RldGFpbHMoKQorCiAgICAgICAgIHJldHVy biBfKAogICAgICAgICAgICAgIkNvcHlpbmcgdGFibGUgZGF0YSAnezB9LnsxfScgb24gZGF0YWJh c2UgJ3syfScgIgogICAgICAgICAgICAgImFuZCBzZXJ2ZXIgKHszfTp7NH0pIgpAQCAtMTE5LDE5 ICsxMjcsMzkgQEAgY2xhc3MgSUVNZXNzYWdlKElQcm9jZXNzRGVzYyk6CiAgICAgICAgICAgICBo dG1sLnNhZmVfc3RyKHNlbGYuc2NoZW1hKSwKICAgICAgICAgICAgIGh0bWwuc2FmZV9zdHIoc2Vs Zi50YWJsZSksCiAgICAgICAgICAgICBodG1sLnNhZmVfc3RyKHNlbGYuZGF0YWJhc2UpLAotICAg ICAgICAgICAgaHRtbC5zYWZlX3N0cihzLmhvc3QpLAotICAgICAgICAgICAgaHRtbC5zYWZlX3N0 cihzLnBvcnQpCisgICAgICAgICAgICBodG1sLnNhZmVfc3RyKGhvc3QpLAorICAgICAgICAgICAg aHRtbC5zYWZlX3N0cihwb3J0KQogICAgICAgICApCiAKICAgICBAcHJvcGVydHkKICAgICBkZWYg dHlwZV9kZXNjKHNlbGYpOgotICAgICAgICByZXR1cm4gXygiQ29weWluZyB0YWJsZSBkYXRhIikK KyAgICAgICAgX3R5cGVfZGVzYyA9IF8oIkltcG9ydCAtICIpIGlmIHNlbGYuaXNfaW1wb3J0IGVs c2UgXygiRXhwb3J0IC0gIikKKyAgICAgICAgcmV0dXJuIF90eXBlX2Rlc2MgKyBfKCJDb3B5aW5n IHRhYmxlIGRhdGEiKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGN1cnJlbnRfc3RvcmFnZV9k aXIoc2VsZik6CisKKyAgICAgICAgaWYgY29uZmlnLlNFUlZFUl9NT0RFOgorICAgICAgICAgICAg cGF0aCA9IG9zLnBhdGgucmVhbHBhdGgoc2VsZi5iZmlsZSkKKyAgICAgICAgICAgIGlmIGdldF9z dG9yYWdlX2RpcmVjdG9yeSgpIDwgcGF0aDoKKyAgICAgICAgICAgICAgICBzdG9yYWdlX2RpcmVj dG9yeSA9IG9zLnBhdGguYmFzZW5hbWUoZ2V0X3N0b3JhZ2VfZGlyZWN0b3J5KCkpCisgICAgICAg ICAgICAgICAgc3RhcnQgPSBwYXRoLmluZGV4KHN0b3JhZ2VfZGlyZWN0b3J5KQorICAgICAgICAg ICAgICAgIGVuZCA9IHN0YXJ0ICsgKGxlbihzdG9yYWdlX2RpcmVjdG9yeSkpCisKKyAgICAgICAg ICAgICAgICBsYXN0X2RpciA9IG9zLnBhdGguZGlybmFtZShwYXRoW2VuZDpdKQorICAgICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICAgICBsYXN0X2RpciA9ICdcXCcKKworICAgICAgICBlbHNl OgorICAgICAgICAgICAgbGFzdF9kaXIgPSBvcy5wYXRoLmRpcm5hbWUoc2VsZi5iZmlsZSkgXAor ICAgICAgICAgICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKHNlbGYuYmZpbGUpIFwKKyAgICAgICAg ICAgICAgICBlbHNlIHNlbGYuYmZpbGUKKworICAgICAgICByZXR1cm4gTm9uZSBpZiBzZWxmLmlz X2ltcG9ydCBlbHNlIGxhc3RfZGlyCiAKICAgICBkZWYgZGV0YWlscyhzZWxmLCBjbWQsIGFyZ3Mp OgogICAgICAgICAjIEZldGNoIHRoZSBzZXJ2ZXIgZGV0YWlscyBsaWtlIGhvc3RuYW1lLCBwb3J0 LCByb2xlcyBldGMKLSAgICAgICAgcyA9IFNlcnZlci5xdWVyeS5maWx0ZXJfYnkoCi0gICAgICAg ICAgICBpZD1zZWxmLnNpZCwgdXNlcl9pZD1jdXJyZW50X3VzZXIuaWQKLSAgICAgICAgKS5maXJz dCgpCisgICAgICAgIG5hbWUsIGhvc3QsIHBvcnQgPSBzZWxmLmdldF9zZXJ2ZXJfZGV0YWlscygp CiAKICAgICAgICAgcmVzID0gJzxkaXY+JwogICAgICAgICByZXMgKz0gXygKQEAgLTE0Miw5ICsx NzAsOSBAQCBjbGFzcyBJRU1lc3NhZ2UoSVByb2Nlc3NEZXNjKToKICAgICAgICAgICAgIGh0bWwu c2FmZV9zdHIoc2VsZi50YWJsZSksCiAgICAgICAgICAgICBodG1sLnNhZmVfc3RyKHNlbGYuZGF0 YWJhc2UpLAogICAgICAgICAgICAgInswfSAoezF9OnsyfSkiLmZvcm1hdCgKLSAgICAgICAgICAg ICAgICBodG1sLnNhZmVfc3RyKHMubmFtZSksCi0gICAgICAgICAgICAgICAgaHRtbC5zYWZlX3N0 cihzLmhvc3QpLAotICAgICAgICAgICAgICAgIGh0bWwuc2FmZV9zdHIocy5wb3J0KQorICAgICAg ICAgICAgICAgIGh0bWwuc2FmZV9zdHIobmFtZSksCisgICAgICAgICAgICAgICAgaHRtbC5zYWZl X3N0cihob3N0KSwKKyAgICAgICAgICAgICAgICBodG1sLnNhZmVfc3RyKHBvcnQpCiAgICAgICAg ICAgICApCiAgICAgICAgICkKIApAQCAtMzA0LDggKzMzMiw3IEBAIGRlZiBjcmVhdGVfaW1wb3J0 X2V4cG9ydF9qb2Ioc2lkKToKIAogICAgICAgICBpZiBub3QgX2ZpbGU6CiAgICAgICAgICAgICBy ZXR1cm4gYmFkX3JlcXVlc3QoZXJyb3Jtc2c9XygnUGxlYXNlIHNwZWNpZnkgYSB2YWxpZCBmaWxl JykpCi0KLSAgICAgICAgaWYgSVNfV0lOOgorICAgICAgICBlbGlmIElTX1dJTjoKICAgICAgICAg ICAgIF9maWxlID0gX2ZpbGUucmVwbGFjZSgnXFwnLCAnLycpCiAKICAgICAgICAgZGF0YVsnZmls ZW5hbWUnXSA9IF9maWxlCkBAIC0zMjgsMTQgKzM1NSwyMiBAQCBkZWYgY3JlYXRlX2ltcG9ydF9l eHBvcnRfam9iKHNpZCk6CiAgICAgYXJncyA9IFsnLS1jb21tYW5kJywgcXVlcnldCiAKICAgICB0 cnk6CisKKyAgICAgICAgaW9fcGFyYW1zID0geworICAgICAgICAgICAgJ3NpZCc6IHNpZCwKKyAg ICAgICAgICAgICdzY2hlbWEnOiBkYXRhWydzY2hlbWEnXSwKKyAgICAgICAgICAgICd0YWJsZSc6 IGRhdGFbJ3RhYmxlJ10sCisgICAgICAgICAgICAnZGF0YWJhc2UnOiBkYXRhWydkYXRhYmFzZSdd LAorICAgICAgICAgICAgJ2lzX2ltcG9ydCc6IGRhdGFbJ2lzX2ltcG9ydCddLAorICAgICAgICAg ICAgJ2ZpbGVuYW1lJzogZGF0YVsnZmlsZW5hbWUnXSwKKyAgICAgICAgICAgICdzdG9yYWdlJzog c3RvcmFnZV9kaXIsCisgICAgICAgICAgICAndXRpbGl0eSc6IHV0aWxpdHkKKyAgICAgICAgfQor CiAgICAgICAgIHAgPSBCYXRjaFByb2Nlc3MoCiAgICAgICAgICAgICBkZXNjPUlFTWVzc2FnZSgK LSAgICAgICAgICAgICAgICBzaWQsCi0gICAgICAgICAgICAgICAgZGF0YVsnc2NoZW1hJ10sCi0g ICAgICAgICAgICAgICAgZGF0YVsndGFibGUnXSwKLSAgICAgICAgICAgICAgICBkYXRhWydkYXRh YmFzZSddLAotICAgICAgICAgICAgICAgIHN0b3JhZ2VfZGlyLAotICAgICAgICAgICAgICAgIHV0 aWxpdHksICphcmdzCisgICAgICAgICAgICAgICAgKmFyZ3MsCisgICAgICAgICAgICAgICAgKipp b19wYXJhbXMKICAgICAgICAgICAgICksCiAgICAgICAgICAgICBjbWQ9dXRpbGl0eSwgYXJncz1h cmdzCiAgICAgICAgICkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2ltcG9ydF9leHBv cnQvdGVzdHMvdGVzdF9iYXRjaF9wcm9jZXNzLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvaW1wb3J0 X2V4cG9ydC90ZXN0cy90ZXN0X2JhdGNoX3Byb2Nlc3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwLi5lOTNhYzAwN2EKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi90b29scy9pbXBvcnRfZXhwb3J0L3Rlc3RzL3Rlc3RfYmF0Y2hfcHJvY2Vzcy5weQpAQCAtMCww ICsxLDIzOCBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNR TCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZl bG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3Rn cmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSBwZ2FkbWluLm1pc2Mu Ymdwcm9jZXNzLnByb2Nlc3NlcyBpbXBvcnQgQmF0Y2hQcm9jZXNzLCBJUHJvY2Vzc0Rlc2MsIFwK KyAgICBjdXJyZW50X2FwcAorZnJvbSBwZ2FkbWluLnRvb2xzLmltcG9ydF9leHBvcnQgaW1wb3J0 IElFTWVzc2FnZQorZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVy YXRvcgorZnJvbSBwaWNrbGUgaW1wb3J0IGR1bXBzLCBsb2FkcworZnJvbSB1bml0dGVzdC5tb2Nr IGltcG9ydCBwYXRjaCwgTWFnaWNNb2NrCisKKworY2xhc3MgQmF0Y2hQcm9jZXNzVGVzdChCYXNl VGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGVzdCB0aGUgQmF0Y2hQcm9jZXNzIGNsYXNzIiIiCisg ICAgc2NlbmFyaW9zID0gWworICAgICAgICAoJ1doZW4gZXhwb3J0IGZpbGUgd2l0aCBkZWZhdWx0 IG9wdGlvbnMnLAorICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICBjbGFzc19wYXJhbXM9ZGlj dCgKKyAgICAgICAgICAgICAgICAgc2lkPTEsCisgICAgICAgICAgICAgICAgIG5hbWU9J3Rlc3Rf ZXhwb3J0X3NlcnZlcicsCisgICAgICAgICAgICAgICAgIHBvcnQ9NTQ0NCwKKyAgICAgICAgICAg ICAgICAgaG9zdD0nbG9jYWxob3N0JywKKyAgICAgICAgICAgICAgICAgZGF0YWJhc2U9J3Bvc3Rn cmVzJywKKyAgICAgICAgICAgICAgICAgYmZpbGU9J3Rlc3RfZXhwb3J0JywKKyAgICAgICAgICAg ICAgICAgdXNlcm5hbWU9J3Bvc3RncmVzJywKKyAgICAgICAgICAgICAgICAgYXJncz1bCisgICAg ICAgICAgICAgICAgICAgICAnIC0tY29tbWFuZCcsCisgICAgICAgICAgICAgICAgICAgICAnXFxj b3B5IHswfS57MX0gICh7Mn0sezN9KSAgVE8gXCd7NH1cJyAgIENTViAgICcKKyAgICAgICAgICAg ICAgICAgICAgICdRVU9URSB7NX0gRVNDQVBFIFwnXCdcJ1wnOycKKyAgICAgICAgICAgICAgICAg XSwKKyAgICAgICAgICAgICAgICAgY21kPSdpbXBvcnRfZXhwb3J0JworICAgICAgICAgICAgICks CisgICAgICAgICAgICAgcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAgIGZpbGVuYW1lPSd0 ZXN0X2V4cG9ydF9maWxlLmNzdicsCisgICAgICAgICAgICAgICAgIGZvcm1hdD0nY3N2JywKKyAg ICAgICAgICAgICAgICAgaXNfaW1wb3J0PUZhbHNlLAorICAgICAgICAgICAgICAgICBkZWxpbWl0 ZXI9IiIsCisgICAgICAgICAgICAgICAgIHF1b3RlPSJcIiIsCisgICAgICAgICAgICAgICAgIGVz Y2FwZT0iJyIsCisgICAgICAgICAgICAgICAgIGRhdGFiYXNlPSdwb3N0Z3JlcycsCisgICAgICAg ICAgICAgICAgIGNvbHVtbnM9Wyd0ZXN0X2NvbF8xJywgJ3Rlc3RfY29sXzInXSwKKyAgICAgICAg ICAgICAgICAgaWNvbHVtbnM9W10sCisgICAgICAgICAgICAgICAgIHNjaGVtYT0iZXhwb3J0X3Rl c3Rfc2NoZW1hIiwKKyAgICAgICAgICAgICAgICAgdGFibGU9ImV4cG9ydF90ZXN0X3RhYmxlIiwK KyAgICAgICAgICAgICAgICAgc3RvcmFnZT0nLycKKyAgICAgICAgICAgICApLAorICAgICAgICAg ICAgIHVybD0nL2ltcG9ydF9leHBvcnQvam9iL3swfScsCisgICAgICAgICAgICAgZXhwZWN0ZWRf Y21kX29wdHM9WyctLWNvbW1hbmQnLCAnY29weScsICdUTycsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdleHBvcnRfdGVzdF9zY2hlbWEnLCAnZXhwb3J0X3Rlc3RfdGFibGUnXSwK KyAgICAgICAgICAgICBub3RfZXhwZWN0ZWRfY21kX29wdHM9W10sCisgICAgICAgICAgICAgZXhw ZWN0ZWRfZXhpdF9jb2RlPVswLCBOb25lXQorICAgICAgICAgKSksCisgICAgICAgICgnV2hlbiBp bXBvcnQgZmlsZSB3aXRoIGRlZmF1bHQgb3B0aW9ucycsCisgICAgICAgICBkaWN0KAorICAgICAg ICAgICAgIGNsYXNzX3BhcmFtcz1kaWN0KAorICAgICAgICAgICAgICAgICBzaWQ9MSwKKyAgICAg ICAgICAgICAgICAgbmFtZT0ndGVzdF9pbXBvcnRfc2VydmVyJywKKyAgICAgICAgICAgICAgICAg cG9ydD01NDQ0LAorICAgICAgICAgICAgICAgICBob3N0PSdsb2NhbGhvc3QnLAorICAgICAgICAg ICAgICAgICBkYXRhYmFzZT0ncG9zdGdyZXMnLAorICAgICAgICAgICAgICAgICBiZmlsZT0ndGVz dF9leHBvcnQnLAorICAgICAgICAgICAgICAgICB1c2VybmFtZT0ncG9zdGdyZXMnLAorICAgICAg ICAgICAgICAgICBhcmdzPVsKKyAgICAgICAgICAgICAgICAgICAgICcgLS1jb21tYW5kJywKKyAg ICAgICAgICAgICAgICAgICAgICdcXGNvcHkgezB9LnsxfSAgKHsyfSx7M30pICBGUk9NIFwnezR9 XCcgICBDU1YgICAnCisgICAgICAgICAgICAgICAgICAgICAnUVVPVEUgezV9IEVTQ0FQRSBcJ1wn XCdcJzsnCisgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgIGNtZD0naW1wb3J0 X2V4cG9ydCcKKyAgICAgICAgICAgICApLAorICAgICAgICAgICAgIHBhcmFtcz1kaWN0KAorICAg ICAgICAgICAgICAgICBmaWxlbmFtZT0ndGVzdF9pbXBvcnRfZmlsZS5jc3YnLAorICAgICAgICAg ICAgICAgICBmb3JtYXQ9J2NzdicsCisgICAgICAgICAgICAgICAgIGlzX2ltcG9ydD1UcnVlLAor ICAgICAgICAgICAgICAgICBkZWxpbWl0ZXI9IiIsCisgICAgICAgICAgICAgICAgIHF1b3RlPSJc IiIsCisgICAgICAgICAgICAgICAgIGVzY2FwZT0iJyIsCisgICAgICAgICAgICAgICAgIGRhdGFi YXNlPSdwb3N0Z3JlcycsCisgICAgICAgICAgICAgICAgIGNvbHVtbnM9Wyd0ZXN0X2NvbF8xJywg J3Rlc3RfY29sXzInXSwKKyAgICAgICAgICAgICAgICAgaWNvbHVtbnM9W10sCisgICAgICAgICAg ICAgICAgIHNjaGVtYT0iaW1wb3J0X3Rlc3Rfc2NoZW1hIiwKKyAgICAgICAgICAgICAgICAgdGFi bGU9ImltcG9ydF90ZXN0X3RhYmxlIiwKKyAgICAgICAgICAgICAgICAgc3RvcmFnZT0nLycKKyAg ICAgICAgICAgICApLAorICAgICAgICAgICAgIHVybD0nL2ltcG9ydF9leHBvcnQvam9iL3swfScs CisgICAgICAgICAgICAgZXhwZWN0ZWRfY21kX29wdHM9WyctLWNvbW1hbmQnLCAnY29weScsICdG Uk9NJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ltcG9ydF90ZXN0X3NjaGVt YScsICdpbXBvcnRfdGVzdF90YWJsZSddLAorICAgICAgICAgICAgIG5vdF9leHBlY3RlZF9jbWRf b3B0cz1bXSwKKyAgICAgICAgICAgICBleHBlY3RlZF9leGl0X2NvZGU9WzAsIE5vbmVdCisgICAg ICAgICApKQorICAgIF0KKworICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5pbXBvcnRfZXhwb3J0 LklFTWVzc2FnZS5nZXRfc2VydmVyX2RldGFpbHMnKQorICAgIEBwYXRjaCgncGdhZG1pbi5taXNj LmJncHJvY2Vzcy5wcm9jZXNzZXMuUG9wZW4nKQorICAgIEBwYXRjaCgncGdhZG1pbi5taXNjLmJn cHJvY2Vzcy5wcm9jZXNzZXMuZGInKQorICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5pbXBvcnRf ZXhwb3J0LmN1cnJlbnRfdXNlcicpCisgICAgQHBhdGNoKCdwZ2FkbWluLm1pc2MuYmdwcm9jZXNz LnByb2Nlc3Nlcy5jdXJyZW50X3VzZXInKQorICAgIGRlZiBydW5UZXN0KHNlbGYsIGN1cnJlbnRf dXNlcl9tb2NrLCBjdXJyZW50X3VzZXIsIGRiX21vY2ssCisgICAgICAgICAgICAgICAgcG9wZW5f bW9jaywgZ2V0X3NlcnZlcl9kZXRhaWxzX21vY2spOgorICAgICAgICB3aXRoIHNlbGYuYXBwLmFw cF9jb250ZXh0KCk6CisgICAgICAgICAgICBjdXJyZW50X3VzZXIuaWQgPSAxCisgICAgICAgICAg ICBjdXJyZW50X3VzZXJfbW9jay5pZCA9IDEKKyAgICAgICAgICAgIGN1cnJlbnRfYXBwLlBHQURN SU5fUlVOVElNRSA9IEZhbHNlCisKKyAgICAgICAgICAgIGRlZiBkYl9zZXNzaW9uX2FkZF9tb2Nr KGopOgorICAgICAgICAgICAgICAgIGNtZF9vYmogPSBsb2FkcyhqLmRlc2MpCisgICAgICAgICAg ICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoY21kX29iaiwgSVByb2Nlc3NEZXNjKSkK KworICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY21kX29iai5iZmlsZSwgc2VsZi5w YXJhbXNbJ2ZpbGVuYW1lJ10pCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbWRf b2JqLmRhdGFiYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jbGFz c19wYXJhbXNbJ2RhdGFiYXNlJ10pCisKKyAgICAgICAgICAgICAgICBjb21tYW5kID0gJyAiJyAr IHNlbGYuY2xhc3NfcGFyYW1zWydhcmdzJ11bMF0gKyAnIicgKyBcCisgICAgICAgICAgICAgICAg ICAgICAgICAgICcgIicgKyAnXFwnICsgc2VsZi5jbGFzc19wYXJhbXNbJ2FyZ3MnXVsxXS5mb3Jt YXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBhcmFtc1snc2NoZW1hJ10s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBhcmFtc1sndGFibGUnXSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGFyYW1zWydjb2x1bW5zJ11bMF0sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBhcmFtc1snY29sdW1ucyddWzFdLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wYXJhbXNbJ2ZpbGVuYW1lJ10sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXFwnICsgc2VsZi5wYXJhbXNbJ3F1b3RlJ10K KyAgICAgICAgICAgICAgICApICsgJyInCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh bChjbWRfb2JqLl9jbWQsIGNvbW1hbmQpCisKKyAgICAgICAgICAgIGRiX21vY2suc2Vzc2lvbi5h ZGQuc2lkZV9lZmZlY3QgPSBkYl9zZXNzaW9uX2FkZF9tb2NrCisgICAgICAgICAgICBkYl9tb2Nr LnNlc3Npb24uY29tbWl0ID0gTWFnaWNNb2NrKHJldHVybl92YWx1ZT1UcnVlKQorCisgICAgICAg ICAgICBnZXRfc2VydmVyX2RldGFpbHNfbW9jay5yZXR1cm5fdmFsdWUgPSBcCisgICAgICAgICAg ICAgICAgc2VsZi5jbGFzc19wYXJhbXNbJ25hbWUnXSwgXAorICAgICAgICAgICAgICAgIHNlbGYu Y2xhc3NfcGFyYW1zWydob3N0J10sIFwKKyAgICAgICAgICAgICAgICBzZWxmLmNsYXNzX3BhcmFt c1sncG9ydCddCisKKyAgICAgICAgICAgIGFyZ3MgPSBzZWxmLmNsYXNzX3BhcmFtc1snYXJncydd WzFdLmZvcm1hdCgKKyAgICAgICAgICAgICAgICBzZWxmLnBhcmFtc1snc2NoZW1hJ10sCisgICAg ICAgICAgICAgICAgc2VsZi5wYXJhbXNbJ3RhYmxlJ10sCisgICAgICAgICAgICAgICAgc2VsZi5w YXJhbXNbJ2NvbHVtbnMnXVswXSwKKyAgICAgICAgICAgICAgICBzZWxmLnBhcmFtc1snY29sdW1u cyddWzFdLAorICAgICAgICAgICAgICAgIHNlbGYucGFyYW1zWydmaWxlbmFtZSddLAorICAgICAg ICAgICAgICAgIHNlbGYucGFyYW1zWydxdW90ZSddCisgICAgICAgICAgICApCisKKyAgICAgICAg ICAgIGltcG9ydF9leHBvcnRfb2JqID0gSUVNZXNzYWdlKAorICAgICAgICAgICAgICAgICpbc2Vs Zi5jbGFzc19wYXJhbXNbJ2FyZ3MnXVswXSwgYXJnc10sCisgICAgICAgICAgICAgICAgKip7Cisg ICAgICAgICAgICAgICAgICAgICdzaWQnOiBzZWxmLmNsYXNzX3BhcmFtc1snc2lkJ10sCisgICAg ICAgICAgICAgICAgICAgICdzY2hlbWEnOiBzZWxmLnBhcmFtc1snc2NoZW1hJ10sCisgICAgICAg ICAgICAgICAgICAgICd0YWJsZSc6IHNlbGYucGFyYW1zWyd0YWJsZSddLAorICAgICAgICAgICAg ICAgICAgICAnaXNfaW1wb3J0Jzogc2VsZi5wYXJhbXNbJ2lzX2ltcG9ydCddLAorICAgICAgICAg ICAgICAgICAgICAnZGF0YWJhc2UnOiBzZWxmLnBhcmFtc1snZGF0YWJhc2UnXSwKKyAgICAgICAg ICAgICAgICAgICAgJ2ZpbGVuYW1lJzogc2VsZi5wYXJhbXNbJ2ZpbGVuYW1lJ10sCisgICAgICAg ICAgICAgICAgICAgICdzdG9yYWdlJzogc2VsZi5wYXJhbXNbJ3N0b3JhZ2UnXSwKKyAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICApCisKKyAgICAgICAgICAgIHAgPSBCYXRjaFByb2Nlc3Mo CisgICAgICAgICAgICAgICAgZGVzYz1pbXBvcnRfZXhwb3J0X29iaiwKKyAgICAgICAgICAgICAg ICBjbWQ9c2VsZi5jbGFzc19wYXJhbXNbJ2NtZCddLAorICAgICAgICAgICAgICAgIGFyZ3M9YXJn cworICAgICAgICAgICAgKQorCisgICAgICAgICAgICAjIENoZWNrIHRoYXQgX2NyZWF0ZV9wcm9j ZXNzIGhhcyBiZWVuIGNhbGxlZAorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGRiX21vY2su c2Vzc2lvbi5hZGQuY2FsbGVkKQorCisgICAgICAgICAgICAjIENoZWNrIHN0YXJ0IG1ldGhvZAor ICAgICAgICAgICAgc2VsZi5fY2hlY2tfc3RhcnQocG9wZW5fbW9jaywgcCwgaW1wb3J0X2V4cG9y dF9vYmopCisKKyAgICAgICAgICAgICMgQ2hlY2sgbGlzdCBtZXRob2QKKyAgICAgICAgICAgIHNl bGYuX2NoZWNrX2xpc3QocCwgaW1wb3J0X2V4cG9ydF9vYmopCisKKyAgICBAcGF0Y2goJ3BnYWRt aW4ubWlzYy5iZ3Byb2Nlc3MucHJvY2Vzc2VzLlByb2Nlc3MnKQorICAgIGRlZiBfY2hlY2tfc3Rh cnQoc2VsZiwgcG9wZW5fbW9jaywgcCwgaW1wb3J0X2V4cG9ydF9vYmosIHByb2Nlc3NfbW9jayk6 CisgICAgICAgIGNsYXNzIFRlc3RNb2NrUHJvY2VzcygpOgorICAgICAgICAgICAgZGVmIF9faW5p dF9fKHNlbGYsIGRlc2MsIGFyZ3MsIGNtZCk6CisgICAgICAgICAgICAgICAgc2VsZi5waWQgPSAx CisgICAgICAgICAgICAgICAgc2VsZi5leGl0X2NvZGUgPSAxCisgICAgICAgICAgICAgICAgc2Vs Zi5zdGFydF90aW1lID0gJzIwMTgtMDQtMTcgMDY6MTg6NTYuMzE1NDQ1ICswMDAwJworICAgICAg ICAgICAgICAgIHNlbGYuZW5kX3RpbWUgPSBOb25lCisgICAgICAgICAgICAgICAgc2VsZi5kZXNj ID0gZHVtcHMoZGVzYykKKyAgICAgICAgICAgICAgICBzZWxmLmFyZ3VtZW50cyA9ICIgIi5qb2lu KGFyZ3MpCisgICAgICAgICAgICAgICAgc2VsZi5jb21tYW5kID0gY21kCisgICAgICAgICAgICAg ICAgc2VsZi5hY2tub3dsZWRnZSA9IE5vbmUKKyAgICAgICAgICAgICAgICBzZWxmLnByb2Nlc3Nf c3RhdGUgPSAwCisKKyAgICAgICAgbW9ja19yZXN1bHQgPSBwcm9jZXNzX21vY2sucXVlcnkuZmls dGVyX2J5LnJldHVybl92YWx1ZQorICAgICAgICBtb2NrX3Jlc3VsdC5maXJzdC5yZXR1cm5fdmFs dWUgPSBUZXN0TW9ja1Byb2Nlc3MoCisgICAgICAgICAgICBpbXBvcnRfZXhwb3J0X29iaiwgc2Vs Zi5jbGFzc19wYXJhbXNbJ2FyZ3MnXSwKKyAgICAgICAgICAgIHNlbGYuY2xhc3NfcGFyYW1zWydj bWQnXSkKKworICAgICAgICBjbWRfdGVzdCA9IHNlbGYuY2xhc3NfcGFyYW1zWydjbWQnXQorICAg ICAgICBhc3NlcnRfdHJ1ZSA9IHNlbGYuYXNzZXJ0VHJ1ZQorCisgICAgICAgIGNsYXNzIFBvcGVu TW9ja1NpZGVFZmZlY3QoKToKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjbWQsICoq a3dhcmdzKToKKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjbWRfdGVzdCBpbiBjbWQpCisg ICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoJ2VudicgaW4ga3dhcmdzKQorCisgICAgICAgICAg ICAjIE5lZWQgbm90IHRvIGNhbGwgdGhlIGFjdHVhbCBwb2xsLCBzbyBwYXNzaW5nLgorICAgICAg ICAgICAgZGVmIHBvbGwoc2VsZik6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgIHBv cGVuX21vY2suc2lkZV9lZmZlY3QgPSBQb3Blbk1vY2tTaWRlRWZmZWN0CisgICAgICAgIHAuc3Rh cnQoKQorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3Blbl9tb2NrLmNhbGxlZCkKKworICAg IEBwYXRjaCgncGdhZG1pbi50b29scy5pbXBvcnRfZXhwb3J0LmdldF9zdG9yYWdlX2RpcmVjdG9y eScpCisgICAgQHBhdGNoKCdwZ2FkbWluLm1pc2MuYmdwcm9jZXNzLnByb2Nlc3Nlcy5Qcm9jZXNz JykKKyAgICBAcGF0Y2goJ3BnYWRtaW4ubWlzYy5iZ3Byb2Nlc3MucHJvY2Vzc2VzLkJhdGNoUHJv Y2Vzcy4nCisgICAgICAgICAgICd1cGRhdGVfcHJvY2Vzc19pbmZvJykKKyAgICBkZWYgX2NoZWNr X2xpc3Qoc2VsZiwgcCwgaW1wb3J0X2V4cG9ydF9vYmosIHVwZGF0ZV9wcm9jZXNzX2luZm9fbW9j aywKKyAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc19tb2NrLCBnZXRfc3RvcmFnZV9kaXJlY3Rv cnlfbW9jayk6CisgICAgICAgIGNsYXNzIFRlc3RNb2NrUHJvY2VzcygpOgorICAgICAgICAgICAg ZGVmIF9faW5pdF9fKHNlbGYsIGRlc2MsIGFyZ3MsIGNtZCk6CisgICAgICAgICAgICAgICAgc2Vs Zi5waWQgPSAxCisgICAgICAgICAgICAgICAgc2VsZi5leGl0X2NvZGUgPSAxCisgICAgICAgICAg ICAgICAgc2VsZi5zdGFydF90aW1lID0gJzIwMTgtMDQtMTcgMDY6MTg6NTYuMzE1NDQ1ICswMDAw JworICAgICAgICAgICAgICAgIHNlbGYuZW5kX3RpbWUgPSBOb25lCisgICAgICAgICAgICAgICAg c2VsZi5kZXNjID0gZHVtcHMoZGVzYykKKyAgICAgICAgICAgICAgICBzZWxmLmFyZ3VtZW50cyA9 ICIgIi5qb2luKGFyZ3MpCisgICAgICAgICAgICAgICAgc2VsZi5jb21tYW5kID0gY21kCisgICAg ICAgICAgICAgICAgc2VsZi5hY2tub3dsZWRnZSA9IE5vbmUKKyAgICAgICAgICAgICAgICBzZWxm LnByb2Nlc3Nfc3RhdGUgPSAwCisKKyAgICAgICAgcHJvY2Vzc19tb2NrLnF1ZXJ5LmZpbHRlcl9i eS5yZXR1cm5fdmFsdWUgPSBbCisgICAgICAgICAgICBUZXN0TW9ja1Byb2Nlc3MoaW1wb3J0X2V4 cG9ydF9vYmosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jbGFzc19wYXJhbXNb J2FyZ3MnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNsYXNzX3BhcmFtc1sn Y21kJ10pXQorCisgICAgICAgIHVwZGF0ZV9wcm9jZXNzX2luZm9fbW9jay5yZXR1cm5fdmFsdWUg PSBbVHJ1ZSwgVHJ1ZV0KKyAgICAgICAgZ2V0X3N0b3JhZ2VfZGlyZWN0b3J5X21vY2sucmV0dXJu X3ZhbHVlID0gJy8vJworCisgICAgICAgIHJldF92YWx1ZSA9IHAubGlzdCgpCisgICAgICAgIHNl bGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJldF92YWx1ZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1 ZSgnZGV0YWlscycgaW4gcmV0X3ZhbHVlWzBdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2Rl c2MnIGluIHJldF92YWx1ZVswXSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2ltcG9y dF9leHBvcnQvdGVzdHMvdGVzdF9jcmVhdGVfZXhwb3J0X2pvYi5weSBiL3dlYi9wZ2FkbWluL3Rv b2xzL2ltcG9ydF9leHBvcnQvdGVzdHMvdGVzdF9jcmVhdGVfZXhwb3J0X2pvYi5weQpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmI3ODQ5Y2UxNgotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2ltcG9ydF9leHBvcnQvdGVzdHMvdGVzdF9jcmVhdGVfZXhw b3J0X2pvYi5weQpAQCAtMCwwICsxLDE0OSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdB ZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIw LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFz ZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwor aW1wb3J0IG9zCisKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5l cmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAoraW1wb3J0IHBn YWRtaW4udG9vbHMuaW1wb3J0X2V4cG9ydC50ZXN0cy50ZXN0X2ltcG9ydF9leHBvcnRfdXRpbHMg XAorICAgIGFzIGltcG9ydF9leHBvcnRfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscyBpbXBvcnQg ZG9lc191dGlsaXR5X2V4aXN0CisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91 dGlscworCisKK2NsYXNzIEV4cG9ydEpvYlRlc3QoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIi IkV4cG9ydCBhcGkgdGVzdCBjYXNlcyIiIgorCisgICAgaW1wb3J0X2V4cG9ydF91cmwgPSAnL2lt cG9ydF9leHBvcnQvam9iL3swfScKKworICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgKCdXaGVu IGV4cG9ydGluZyBhIHRhYmxlIHdpdGggdGhlIGRlZmF1bHQgb3B0aW9ucycsCisgICAgICAgICBk aWN0KAorICAgICAgICAgICAgIHBhcmFtcz1kaWN0KAorICAgICAgICAgICAgICAgICBmaWxlbmFt ZT0ndGVzdF9pbXBvcnRfZXhwb3J0JywKKyAgICAgICAgICAgICAgICAgZm9ybWF0PSdjc3YnLAor ICAgICAgICAgICAgICAgICBpc19pbXBvcnQ9RmFsc2UsCisgICAgICAgICAgICAgICAgIGRlbGlt aXRlcj0iIiwKKyAgICAgICAgICAgICAgICAgcXVvdGU9IlwiIiwKKyAgICAgICAgICAgICAgICAg ZXNjYXBlPSInIiwKKyAgICAgICAgICAgICAgICAgZGF0YWJhc2U9JycsCisgICAgICAgICAgICAg ICAgIGNvbHVtbnM9W10sCisgICAgICAgICAgICAgICAgIGljb2x1bW5zPVtdLAorICAgICAgICAg ICAgICAgICBzY2hlbWE9IiIsCisgICAgICAgICAgICAgICAgIHRhYmxlPSIiCisgICAgICAgICAg ICAgKSwKKyAgICAgICAgICAgICB1cmw9aW1wb3J0X2V4cG9ydF91cmwsCisgICAgICAgICAgICAg ZXhwZWN0ZWRfcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2NtZF9vcHRz PVsnLS1jb21tYW5kJywgJ2NvcHknLCAnVE8nXSwKKyAgICAgICAgICAgICAgICAgbm90X2V4cGVj dGVkX2NtZF9vcHRzPVtdLAorICAgICAgICAgICAgICAgICBleHBlY3RlZF9leGl0X2NvZGU9WzAs IE5vbmVdCisgICAgICAgICAgICAgKQorICAgICAgICAgKSksCisgICAgICAgICgnV2hlbiBleHBv cnRpbmcgYSB0YWJsZSB3aXRoIGJpbmFyeSwgZW5jb2RpbmcsIGRlbGltaXRlciwgcXVvdGUnLAor ICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICBwYXJhbXM9ZGljdCgKKyAgICAgICAgICAgICAg ICAgZmlsZW5hbWU9J3Rlc3RfaW1wb3J0X2V4cG9ydF9iaW4nLAorICAgICAgICAgICAgICAgICBm b3JtYXQ9J2JpbmFyeScsCisgICAgICAgICAgICAgICAgIGlzX2ltcG9ydD1GYWxzZSwKKyAgICAg ICAgICAgICAgICAgZW5jb2Rpbmc9IkxBVElOMSIsCisgICAgICAgICAgICAgICAgIGRlbGltaXRl cj0ifCIsCisgICAgICAgICAgICAgICAgIHF1b3RlPSInIiwKKyAgICAgICAgICAgICAgICAgZXNj YXBlPSInIiwKKyAgICAgICAgICAgICAgICAgZGF0YWJhc2U9JycsCisgICAgICAgICAgICAgICAg IGNvbHVtbnM9W10sCisgICAgICAgICAgICAgICAgIGljb2x1bW5zPVtdLAorICAgICAgICAgICAg ICAgICBzY2hlbWE9IiIsCisgICAgICAgICAgICAgICAgIHRhYmxlPSIiCisgICAgICAgICAgICAg KSwKKyAgICAgICAgICAgICB1cmw9aW1wb3J0X2V4cG9ydF91cmwsCisgICAgICAgICAgICAgZXhw ZWN0ZWRfcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2NtZF9vcHRzPVsn LS1jb21tYW5kJywgJ2NvcHknLCAnVE8nXSwKKyAgICAgICAgICAgICAgICAgbm90X2V4cGVjdGVk X2NtZF9vcHRzPVtdLAorICAgICAgICAgICAgICAgICBleHBlY3RlZF9leGl0X2NvZGU9WzAsIE5v bmVdCisgICAgICAgICAgICAgKQorICAgICAgICAgKSksCisgICAgICAgICgnV2hlbiBleHBvcnRp bmcgYSB0YWJsZSB3aXRoIHRleHQsIGVuY29kaW5nLCBkZWxpbWl0ZXIsIHF1b3RlJywKKyAgICAg ICAgIGRpY3QoCisgICAgICAgICAgICAgcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAgIGZp bGVuYW1lPSd0ZXN0X2ltcG9ydF9leHBvcnRfdGV4dCcsCisgICAgICAgICAgICAgICAgIGZvcm1h dD0ndGV4dCcsCisgICAgICAgICAgICAgICAgIGlzX2ltcG9ydD1GYWxzZSwKKyAgICAgICAgICAg ICAgICAgZW5jb2Rpbmc9IklTT184ODU5XzUiLAorICAgICAgICAgICAgICAgICBkZWxpbWl0ZXI9 Ilt0YWJdIiwKKyAgICAgICAgICAgICAgICAgcXVvdGU9IlwiIiwKKyAgICAgICAgICAgICAgICAg ZXNjYXBlPSInIiwKKyAgICAgICAgICAgICAgICAgZGF0YWJhc2U9JycsCisgICAgICAgICAgICAg ICAgIGNvbHVtbnM9W10sCisgICAgICAgICAgICAgICAgIGljb2x1bW5zPVtdLAorICAgICAgICAg ICAgICAgICBzY2hlbWE9IiIsCisgICAgICAgICAgICAgICAgIHRhYmxlPSIiCisgICAgICAgICAg ICAgKSwKKyAgICAgICAgICAgICB1cmw9aW1wb3J0X2V4cG9ydF91cmwsCisgICAgICAgICAgICAg ZXhwZWN0ZWRfcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2NtZF9vcHRz PVsnLS1jb21tYW5kJywgJ2NvcHknLCAnVE8nXSwKKyAgICAgICAgICAgICAgICAgbm90X2V4cGVj dGVkX2NtZF9vcHRzPVtdLAorICAgICAgICAgICAgICAgICBleHBlY3RlZF9leGl0X2NvZGU9WzAs IE5vbmVdCisgICAgICAgICAgICAgKQorICAgICAgICAgKSkKKyAgICBdCisKKyAgICBkZWYgc2V0 VXAoc2VsZik6CisKKyAgICAgICAgaW1wb3J0X2V4cG9ydF91dGlscy5zZXR1cF9leHBvcnRfZGF0 YShzZWxmKQorCisgICAgICAgIHNlbGYucGFyYW1zWydkYXRhYmFzZSddID0gc2VsZi5kYl9uYW1l CisgICAgICAgIHNlbGYucGFyYW1zWydzY2hlbWEnXSA9IHNlbGYuc2NoZW1hX25hbWUKKyAgICAg ICAgc2VsZi5wYXJhbXNbJ3RhYmxlJ10gPSBzZWxmLnRhYmxlX25hbWUKKyAgICAgICAgc2VsZi5w YXJhbXNbJ2NvbHVtbnMnXSA9IFtzZWxmLmNvbHVtbl9uYW1lLCBzZWxmLmNvbHVtbl9uYW1lXzFd CisKKyAgICAgICAgaWYgJ2RlZmF1bHRfYmluYXJ5X3BhdGhzJyBub3QgaW4gc2VsZi5zZXJ2ZXIg b3IgXAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RlZmF1bHRfYmluYXJ5X3BhdGhzJ10gaXMg Tm9uZSBvciBcCisgICAgICAgICAgICBzZWxmLnNlcnZlclsndHlwZSddIG5vdCBpbiBzZWxmLnNl cnZlclsnZGVmYXVsdF9iaW5hcnlfcGF0aHMnXSBvclwKKyAgICAgICAgICAgICAgICBzZWxmLnNl cnZlclsnZGVmYXVsdF9iaW5hcnlfcGF0aHMnXVtzZWxmLnNlcnZlclsndHlwZSddXSA9PSAnJzoK KyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoCisgICAgICAgICAgICAgICAgImRlZmF1bHRfYmlu YXJ5X3BhdGhzIGlzIG5vdCBzZXQgZm9yIHRoZSBzZXJ2ZXIgezB9Ii5mb3JtYXQoCisgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2VydmVyWyduYW1lJ10KKyAgICAgICAgICAgICAgICApCisgICAg ICAgICAgICApCisKKyAgICAgICAgYmluX3AgPSBzZWxmLnNlcnZlclsnZGVmYXVsdF9iaW5hcnlf cGF0aHMnXVtzZWxmLnNlcnZlclsndHlwZSddXQorCisgICAgICAgIGJpbmFyeV9wYXRoID0gb3Mu cGF0aC5qb2luKGJpbl9wLCAncHNxbCcpCisKKyAgICAgICAgaWYgb3MubmFtZSA9PSAnbnQnOgor ICAgICAgICAgICAgYmluYXJ5X3BhdGggPSBiaW5hcnlfcGF0aCArICcuZXhlJworCisgICAgICAg IHJldF92YWwgPSBkb2VzX3V0aWxpdHlfZXhpc3QoYmluYXJ5X3BhdGgpCisgICAgICAgIGlmIHJl dF92YWwgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KHJldF92YWwpCisK KyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBwYXJlbnRf bm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCisgICAgICAgIHVybCA9IHNlbGYu dXJsLmZvcm1hdChzZWxmLnNlcnZlcl9pZCkKKworICAgICAgICAjIENyZWF0ZSB0aGUgaW1wb3J0 L2V4cG9ydCBqb2IKKyAgICAgICAgam9iX2lkID0gaW1wb3J0X2V4cG9ydF91dGlscy5jcmVhdGVf aW1wb3J0X2V4cG9ydF9qb2Ioc2VsZi50ZXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wYXJh bXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwpCisgICAgICAgIGV4cG9ydF9maWxlID0gaW1wb3J0 X2V4cG9ydF91dGlsc1wKKyAgICAgICAgICAgIC5ydW5faW1wb3J0X2V4cG9ydF9qb2Ioc2VsZi50 ZXN0ZXIsIGpvYl9pZCwgc2VsZi5leHBlY3RlZF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKQorCisgICAgICAgIGlmIGV4cG9ydF9maWxlIGlzIG5vdCBOb25lIGFuZCBvcy5wYXRoLmlz ZmlsZShleHBvcnRfZmlsZSk6CisgICAgICAgICAgICBvcy5yZW1vdmUoZXhwb3J0X2ZpbGUpCisK KyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJh c2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxm LnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2lt cG9ydF9leHBvcnQvdGVzdHMvdGVzdF9jcmVhdGVfaW1wb3J0X2pvYi5weSBiL3dlYi9wZ2FkbWlu L3Rvb2xzL2ltcG9ydF9leHBvcnQvdGVzdHMvdGVzdF9jcmVhdGVfaW1wb3J0X2pvYi5weQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmZlMmU5M2QzZAotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2ltcG9ydF9leHBvcnQvdGVzdHMvdGVzdF9jcmVhdGVf aW1wb3J0X2pvYi5weQpAQCAtMCwwICsxLDI0MSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMg cGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAy MDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KworaW1wb3J0IG9zCisKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAoraW1wb3J0 IHBnYWRtaW4udG9vbHMuaW1wb3J0X2V4cG9ydC50ZXN0cy50ZXN0X2ltcG9ydF9leHBvcnRfdXRp bHMgXAorICAgIGFzIGltcG9ydF9leHBvcnRfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscyBpbXBv cnQgZG9lc191dGlsaXR5X2V4aXN0CisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFz ZV91dGlscworZnJvbSBwZ2FkbWluLnRvb2xzLmltcG9ydF9leHBvcnQudGVzdHMgaW1wb3J0IFwK KyAgICB0ZXN0X2ltcG9ydF9leHBvcnRfdXRpbHMgYXMgaW9fdXRpbHMKKworCitjbGFzcyBJbXBv cnRKb2JUZXN0KEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiJJbXBvcnQgYXBpIHRlc3QgY2Fz ZXMiIiIKKworICAgIGltcG9ydF9leHBvcnRfdXJsID0gJy9pbXBvcnRfZXhwb3J0L2pvYi97MH0n CisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICgnV2hlbiBpbXBvcnRpbmcgYSB0YWJsZSB3 aXRoIHRoZSBkZWZhdWx0IG9wdGlvbnMnLAorICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICBw YXJhbXM9ZGljdCgKKyAgICAgICAgICAgICAgICAgZmlsZW5hbWU9J3Rlc3RfaW1wb3J0X2V4cG9y dCcsCisgICAgICAgICAgICAgICAgIGZvcm1hdD0nY3N2JywKKyAgICAgICAgICAgICAgICAgaXNf aW1wb3J0PVRydWUsCisgICAgICAgICAgICAgICAgIGRlbGltaXRlcj0iIiwKKyAgICAgICAgICAg ICAgICAgcXVvdGU9IlwiIiwKKyAgICAgICAgICAgICAgICAgZXNjYXBlPSInIiwKKyAgICAgICAg ICAgICAgICAgZGF0YWJhc2U9JycsCisgICAgICAgICAgICAgICAgIGNvbHVtbnM9W10sCisgICAg ICAgICAgICAgICAgIGljb2x1bW5zPVtdLAorICAgICAgICAgICAgICAgICBzY2hlbWE9IiIsCisg ICAgICAgICAgICAgICAgIHRhYmxlPSIiCisgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICB1 cmw9aW1wb3J0X2V4cG9ydF91cmwsCisgICAgICAgICAgICAgZXhwZWN0ZWRfcGFyYW1zPWRpY3Qo CisgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2NtZF9vcHRzPVsnLS1jb21tYW5kJywgJ2NvcHkn LCAnRlJPTSddLAorICAgICAgICAgICAgICAgICBub3RfZXhwZWN0ZWRfY21kX29wdHM9W10sCisg ICAgICAgICAgICAgICAgIGV4cGVjdGVkX2V4aXRfY29kZT1bMCwgTm9uZV0KKyAgICAgICAgICAg ICApLAorICAgICAgICAgICAgIGV4cG9ydF9vcHRpb25zPWRpY3QoCisgICAgICAgICAgICAgICAg IHBhcmFtcz1kaWN0KAorICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWU9J3Rlc3RfaW1wb3J0 X2V4cG9ydCcsCisgICAgICAgICAgICAgICAgICAgICBmb3JtYXQ9J2NzdicsCisgICAgICAgICAg ICAgICAgICAgICBpc19pbXBvcnQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICBkZWxpbWl0 ZXI9IiIsCisgICAgICAgICAgICAgICAgICAgICBxdW90ZT0iXCIiLAorICAgICAgICAgICAgICAg ICAgICAgZXNjYXBlPSInIiwKKyAgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlPScnLAorICAg ICAgICAgICAgICAgICAgICAgY29sdW1ucz1bXSwKKyAgICAgICAgICAgICAgICAgICAgIGljb2x1 bW5zPVtdLAorICAgICAgICAgICAgICAgICAgICAgc2NoZW1hPSIiLAorICAgICAgICAgICAgICAg ICAgICAgdGFibGU9IiIKKyAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgdXJs PWltcG9ydF9leHBvcnRfdXJsLAorICAgICAgICAgICAgICAgICBleHBlY3RlZF9wYXJhbXM9ZGlj dCgKKyAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2NtZF9vcHRzPVsnLS1jb21tYW5kJywg J2NvcHknLCAnVE8nXSwKKyAgICAgICAgICAgICAgICAgICAgIG5vdF9leHBlY3RlZF9jbWRfb3B0 cz1bXSwKKyAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2V4aXRfY29kZT1bMCwgTm9uZV0K KyAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICkKKyAgICAgICAgICkpLAorICAgICAg ICAoJ1doZW4gaW1wb3J0aW5nIGEgdGFibGUgd2l0aCBiaW5hcnksIGVuY29kaW5nLCBkZWxpbWl0 ZXIsIHF1b3RlJywKKyAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgcGFyYW1zPWRpY3QoCisg ICAgICAgICAgICAgICAgIGZpbGVuYW1lPSd0ZXN0X2ltcG9ydF9leHBvcnRfYmluJywKKyAgICAg ICAgICAgICAgICAgZm9ybWF0PSdiaW5hcnknLAorICAgICAgICAgICAgICAgICBpc19pbXBvcnQ9 VHJ1ZSwKKyAgICAgICAgICAgICAgICAgZGVsaW1pdGVyPSIiLAorICAgICAgICAgICAgICAgICBx dW90ZT0iXCIiLAorICAgICAgICAgICAgICAgICBlc2NhcGU9IiciLAorICAgICAgICAgICAgICAg ICBkYXRhYmFzZT0nJywKKyAgICAgICAgICAgICAgICAgY29sdW1ucz1bXSwKKyAgICAgICAgICAg ICAgICAgaWNvbHVtbnM9W10sCisgICAgICAgICAgICAgICAgIHNjaGVtYT0iIiwKKyAgICAgICAg ICAgICAgICAgdGFibGU9IiIKKyAgICAgICAgICAgICApLAorICAgICAgICAgICAgIHVybD1pbXBv cnRfZXhwb3J0X3VybCwKKyAgICAgICAgICAgICBleHBlY3RlZF9wYXJhbXM9ZGljdCgKKyAgICAg ICAgICAgICAgICAgZXhwZWN0ZWRfY21kX29wdHM9WyctLWNvbW1hbmQnLCAnY29weScsICdGUk9N J10sCisgICAgICAgICAgICAgICAgIG5vdF9leHBlY3RlZF9jbWRfb3B0cz1bXSwKKyAgICAgICAg ICAgICAgICAgZXhwZWN0ZWRfZXhpdF9jb2RlPVswLCBOb25lXQorICAgICAgICAgICAgICksCisg ICAgICAgICAgICAgZXhwb3J0X29wdGlvbnM9ZGljdCgKKyAgICAgICAgICAgICAgICAgcGFyYW1z PWRpY3QoCisgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZT0ndGVzdF9pbXBvcnRfZXhwb3J0 X2JpbicsCisgICAgICAgICAgICAgICAgICAgICBmb3JtYXQ9J2JpbmFyeScsCisgICAgICAgICAg ICAgICAgICAgICBpc19pbXBvcnQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICBlbmNvZGlu Zz0iTEFUSU4xIiwKKyAgICAgICAgICAgICAgICAgICAgIGRlbGltaXRlcj0ifCIsCisgICAgICAg ICAgICAgICAgICAgICBxdW90ZT0iJyIsCisgICAgICAgICAgICAgICAgICAgICBlc2NhcGU9Iici LAorICAgICAgICAgICAgICAgICAgICAgZGF0YWJhc2U9JycsCisgICAgICAgICAgICAgICAgICAg ICBjb2x1bW5zPVtdLAorICAgICAgICAgICAgICAgICAgICAgaWNvbHVtbnM9W10sCisgICAgICAg ICAgICAgICAgICAgICBzY2hlbWE9IiIsCisgICAgICAgICAgICAgICAgICAgICB0YWJsZT0iIgor ICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICB1cmw9aW1wb3J0X2V4cG9ydF91 cmwsCisgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3BhcmFtcz1kaWN0KAorICAgICAgICAgICAg ICAgICAgICAgZXhwZWN0ZWRfY21kX29wdHM9WyctLWNvbW1hbmQnLCAnY29weScsICdUTyddLAor ICAgICAgICAgICAgICAgICAgICAgbm90X2V4cGVjdGVkX2NtZF9vcHRzPVtdLAorICAgICAgICAg ICAgICAgICAgICAgZXhwZWN0ZWRfZXhpdF9jb2RlPVswLCBOb25lXQorICAgICAgICAgICAgICAg ICApCisgICAgICAgICAgICAgKQorICAgICAgICAgKSksCisgICAgICAgICgnV2hlbiBpbXBvcnRp bmcgYSB0YWJsZSB3aXRoIHRleHQsIGVuY29kaW5nLCBkZWxpbWl0ZXIsIHF1b3RlJywKKyAgICAg ICAgIGRpY3QoCisgICAgICAgICAgICAgcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAgIGZp bGVuYW1lPSd0ZXN0X2ltcG9ydF9leHBvcnRfdGV4dCcsCisgICAgICAgICAgICAgICAgIGZvcm1h dD0ndGV4dCcsCisgICAgICAgICAgICAgICAgIGlzX2ltcG9ydD1UcnVlLAorICAgICAgICAgICAg ICAgICBlbmNvZGluZz0iSVNPXzg4NTlfNSIsCisgICAgICAgICAgICAgICAgIGRlbGltaXRlcj0i W3RhYl0iLAorICAgICAgICAgICAgICAgICBxdW90ZT0iXCIiLAorICAgICAgICAgICAgICAgICBl c2NhcGU9IiciLAorICAgICAgICAgICAgICAgICBkYXRhYmFzZT0nJywKKyAgICAgICAgICAgICAg ICAgY29sdW1ucz1bXSwKKyAgICAgICAgICAgICAgICAgaWNvbHVtbnM9W10sCisgICAgICAgICAg ICAgICAgIHNjaGVtYT0iIiwKKyAgICAgICAgICAgICAgICAgdGFibGU9IiIKKyAgICAgICAgICAg ICApLAorICAgICAgICAgICAgIHVybD1pbXBvcnRfZXhwb3J0X3VybCwKKyAgICAgICAgICAgICBl eHBlY3RlZF9wYXJhbXM9ZGljdCgKKyAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfY21kX29wdHM9 WyctLWNvbW1hbmQnLCAnY29weScsICdGUk9NJ10sCisgICAgICAgICAgICAgICAgIG5vdF9leHBl Y3RlZF9jbWRfb3B0cz1bXSwKKyAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZXhpdF9jb2RlPVsw LCBOb25lXQorICAgICAgICAgICAgICksCisgICAgICAgICAgICAgZXhwb3J0X29wdGlvbnM9ZGlj dCgKKyAgICAgICAgICAgICAgICAgcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAgICAgICBm aWxlbmFtZT0ndGVzdF9pbXBvcnRfZXhwb3J0X3RleHQnLAorICAgICAgICAgICAgICAgICAgICAg Zm9ybWF0PSd0ZXh0JywKKyAgICAgICAgICAgICAgICAgICAgIGlzX2ltcG9ydD1GYWxzZSwKKyAg ICAgICAgICAgICAgICAgICAgIGVuY29kaW5nPSJJU09fODg1OV81IiwKKyAgICAgICAgICAgICAg ICAgICAgIGRlbGltaXRlcj0iW3RhYl0iLAorICAgICAgICAgICAgICAgICAgICAgcXVvdGU9Iici LAorICAgICAgICAgICAgICAgICAgICAgZXNjYXBlPSInIiwKKyAgICAgICAgICAgICAgICAgICAg IGRhdGFiYXNlPScnLAorICAgICAgICAgICAgICAgICAgICAgY29sdW1ucz1bXSwKKyAgICAgICAg ICAgICAgICAgICAgIGljb2x1bW5zPVtdLAorICAgICAgICAgICAgICAgICAgICAgc2NoZW1hPSIi LAorICAgICAgICAgICAgICAgICAgICAgdGFibGU9IiIKKyAgICAgICAgICAgICAgICAgKSwKKyAg ICAgICAgICAgICAgICAgdXJsPWltcG9ydF9leHBvcnRfdXJsLAorICAgICAgICAgICAgICAgICBl eHBlY3RlZF9wYXJhbXM9ZGljdCgKKyAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2NtZF9v cHRzPVsnLS1jb21tYW5kJywgJ2NvcHknLCAnVE8nXSwKKyAgICAgICAgICAgICAgICAgICAgIG5v dF9leHBlY3RlZF9jbWRfb3B0cz1bXSwKKyAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2V4 aXRfY29kZT1bMCwgTm9uZV0KKyAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICkKKyAg ICAgICAgICkpCisgICAgXQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorCisgICAgICAgIGltcG9y dF9leHBvcnRfdXRpbHMuc2V0dXBfZXhwb3J0X2RhdGEoc2VsZikKKworICAgICAgICBzZWxmLmV4 cG9ydF9vcHRpb25zWydwYXJhbXMnXVsnZGF0YWJhc2UnXSA9IHNlbGYuZGJfbmFtZQorICAgICAg ICBzZWxmLmV4cG9ydF9vcHRpb25zWydwYXJhbXMnXVsnc2NoZW1hJ10gPSBzZWxmLnNjaGVtYV9u YW1lCisgICAgICAgIHNlbGYuZXhwb3J0X29wdGlvbnNbJ3BhcmFtcyddWyd0YWJsZSddID0gc2Vs Zi50YWJsZV9uYW1lCisgICAgICAgIHNlbGYuZXhwb3J0X29wdGlvbnNbJ3BhcmFtcyddWydjb2x1 bW5zJ10gPSBbc2VsZi5jb2x1bW5fbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNvbHVtbl9uYW1lXzFdCisKKyAgICAgICAgc2Vs Zi5wYXJhbXNbJ2RhdGFiYXNlJ10gPSBzZWxmLmRiX25hbWUKKyAgICAgICAgc2VsZi5wYXJhbXNb J3NjaGVtYSddID0gc2VsZi5zY2hlbWFfbmFtZQorICAgICAgICBzZWxmLnBhcmFtc1sndGFibGUn XSA9IHNlbGYudGFibGVfbmFtZQorICAgICAgICBzZWxmLnBhcmFtc1snY29sdW1ucyddID0gW3Nl bGYuY29sdW1uX25hbWUsIHNlbGYuY29sdW1uX25hbWVfMV0KKworICAgICAgICBpZiAnZGVmYXVs dF9iaW5hcnlfcGF0aHMnIG5vdCBpbiBzZWxmLnNlcnZlciBvciBcCisgICAgICAgICAgICBzZWxm LnNlcnZlclsnZGVmYXVsdF9iaW5hcnlfcGF0aHMnXSBpcyBOb25lIG9yIFwKKyAgICAgICAgICAg IHNlbGYuc2VydmVyWyd0eXBlJ10gbm90IGluIFwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydk ZWZhdWx0X2JpbmFyeV9wYXRocyddIG9yIFwKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsn ZGVmYXVsdF9iaW5hcnlfcGF0aHMnXVtzZWxmLnNlcnZlclsndHlwZSddXSA9PSAnJzoKKworICAg ICAgICAgICAgc2VsZi5za2lwVGVzdCgKKyAgICAgICAgICAgICAgICAiZGVmYXVsdF9iaW5hcnlf cGF0aHMgaXMgbm90IHNldCBmb3IgdGhlIHNlcnZlciB7MH0iLmZvcm1hdCgKKyAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJbJ25hbWUnXQorICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgICkKKworICAgICAgICBiaW5fcCA9IHNlbGYuc2VydmVyWydkZWZhdWx0X2JpbmFyeV9wYXRo cyddW3NlbGYuc2VydmVyWyd0eXBlJ11dCisKKyAgICAgICAgYmluYXJ5X3BhdGggPSBvcy5wYXRo LmpvaW4oYmluX3AsICdwc3FsJykKKworICAgICAgICBpZiBvcy5uYW1lID09ICdudCc6CisgICAg ICAgICAgICBiaW5hcnlfcGF0aCA9IGJpbmFyeV9wYXRoICsgJy5leGUnCisKKyAgICAgICAgcmV0 X3ZhbCA9IGRvZXNfdXRpbGl0eV9leGlzdChiaW5hcnlfcGF0aCkKKyAgICAgICAgaWYgcmV0X3Zh bCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QocmV0X3ZhbCkKKworICAg IGRlZiBjcmVhdGVfZXhwb3J0KHNlbGYpOgorICAgICAgICB1cmwgPSBzZWxmLmV4cG9ydF9vcHRp b25zWyd1cmwnXS5mb3JtYXQoc2VsZi5zZXJ2ZXJfaWQpCisgICAgICAgIGpvYl9pZCA9IGlvX3V0 aWxzLmNyZWF0ZV9pbXBvcnRfZXhwb3J0X2pvYihzZWxmLnRlc3RlciwgdXJsLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHBvcnRfb3B0 aW9uc1sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAncGFyYW1zJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKQorICAgICAgICBzZWxmLmV4cG9ydF9maWxlID0g aW9fdXRpbHMucnVuX2ltcG9ydF9leHBvcnRfam9iKAorICAgICAgICAgICAgc2VsZi50ZXN0ZXIs CisgICAgICAgICAgICBqb2JfaWQsCisgICAgICAgICAgICBzZWxmLmV4cG9ydF9vcHRpb25zWydl eHBlY3RlZF9wYXJhbXMnXSwKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4sCisgICAgICAgICAg ICBzZWxmLmFzc2VydE5vdEluLAorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbAorICAgICAg ICApCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBw YXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCisgICAgICAgIHVybCA9 IHNlbGYudXJsLmZvcm1hdChzZWxmLnNlcnZlcl9pZCkKKworICAgICAgICBzZWxmLmNyZWF0ZV9l eHBvcnQoKQorCisgICAgICAgICMgQ3JlYXRlIHRoZSBpbXBvcnQvZXhwb3J0IGpvYgorICAgICAg ICBqb2JfaWQgPSBpbXBvcnRfZXhwb3J0X3V0aWxzLmNyZWF0ZV9pbXBvcnRfZXhwb3J0X2pvYihz ZWxmLnRlc3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBhcmFtcywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3Nl cnRFcXVhbCkKKyAgICAgICAgaW1wb3J0X2ZpbGUgPSBpbXBvcnRfZXhwb3J0X3V0aWxzXAorICAg ICAgICAgICAgLnJ1bl9pbXBvcnRfZXhwb3J0X2pvYihzZWxmLnRlc3Rlciwgam9iX2lkLCBzZWxm LmV4cGVjdGVkX3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5hc3NlcnRJbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3Nl cnROb3RJbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRF cXVhbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisKKyAgICAgICAgaWYg aW1wb3J0X2ZpbGUgaXMgbm90IE5vbmUgYW5kIG9zLnBhdGguaXNmaWxlKGltcG9ydF9maWxlKToK KyAgICAgICAgICAgIG9zLnJlbW92ZShpbXBvcnRfZmlsZSkKKworICAgIGRlZiB0ZWFyRG93bihz ZWxmKToKKworICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFi YXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYu ZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9pbXBvcnRfZXhwb3J0L3Rlc3Rz L3Rlc3RfaW1wb3J0X2V4cG9ydF9jcmVhdGVfam9iX3VuaXRfdGVzdC5weSBiL3dlYi9wZ2FkbWlu L3Rvb2xzL2ltcG9ydF9leHBvcnQvdGVzdHMvdGVzdF9pbXBvcnRfZXhwb3J0X2NyZWF0ZV9qb2Jf dW5pdF90ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMDIyN2Iz Y2E4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvaW1wb3J0X2V4cG9ydC90 ZXN0cy90ZXN0X2ltcG9ydF9leHBvcnRfY3JlYXRlX2pvYl91bml0X3Rlc3QucHkKQEAgLTAsMCAr MSwzNTMgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwg VG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxv cG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3Jl U1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBzaW1wbGVqc29uIGFz IGpzb24KK2ltcG9ydCBvcworCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zy b20gcGdhZG1pbi51dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscywgZG9l c191dGlsaXR5X2V4aXN0Citmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMK K2Zyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgcGF0Y2gsIE1hZ2ljTW9jaworCisKK2NsYXNzIElF Q3JlYXRlSm9iVGVzdChCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGVzdCB0aGUgSUVDcmVh dGVKb2IgY2xhc3MiIiIKKworICAgIGltcG9ydF9leHBvcnRfdXJsID0gJy9pbXBvcnRfZXhwb3J0 L2pvYi97MH0nCisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICgnV2hlbiBleHBvcnQgZmls ZSB3aXRoIGRlZmF1bHQgb3B0aW9ucycsCisgICAgICAgICBkaWN0KAorICAgICAgICAgICAgIGNs YXNzX3BhcmFtcz1kaWN0KAorICAgICAgICAgICAgICAgICBzaWQ9MSwKKyAgICAgICAgICAgICAg ICAgbmFtZT0ndGVzdF9leHBvcnRfc2VydmVyJywKKyAgICAgICAgICAgICAgICAgcG9ydD01NDQ0 LAorICAgICAgICAgICAgICAgICBob3N0PSdsb2NhbGhvc3QnLAorICAgICAgICAgICAgICAgICBk YXRhYmFzZT0ncG9zdGdyZXMnLAorICAgICAgICAgICAgICAgICBiZmlsZT0ndGVzdF9leHBvcnQn LAorICAgICAgICAgICAgICAgICB1c2VybmFtZT0ncG9zdGdyZXMnCisgICAgICAgICAgICAgKSwK KyAgICAgICAgICAgICBwYXJhbXM9ZGljdCgKKyAgICAgICAgICAgICAgICAgZmlsZW5hbWU9J3Rl c3RfZXhwb3J0X2ZpbGUuY3N2JywKKyAgICAgICAgICAgICAgICAgZm9ybWF0PSdjc3YnLAorICAg ICAgICAgICAgICAgICBpc19pbXBvcnQ9RmFsc2UsCisgICAgICAgICAgICAgICAgIGRlbGltaXRl cj0iIiwKKyAgICAgICAgICAgICAgICAgcXVvdGU9IlwiIiwKKyAgICAgICAgICAgICAgICAgZXNj YXBlPSInIiwKKyAgICAgICAgICAgICAgICAgZGF0YWJhc2U9J3Bvc3RncmVzJywKKyAgICAgICAg ICAgICAgICAgY29sdW1ucz1bJ3Rlc3RfY29sXzEnLCAndGVzdF9jb2xfMiddLAorICAgICAgICAg ICAgICAgICBpY29sdW1ucz1bXSwKKyAgICAgICAgICAgICAgICAgc2NoZW1hPSJleHBvcnRfdGVz dF9zY2hlbWEiLAorICAgICAgICAgICAgICAgICB0YWJsZT0iZXhwb3J0X3Rlc3RfdGFibGUiCisg ICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICB1cmw9aW1wb3J0X2V4cG9ydF91cmwsCisgICAg ICAgICAgICAgZXhwZWN0ZWRfY21kX29wdHM9WyctLWNvbW1hbmQnLCAnY29weScsICdUTycsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdleHBvcnRfdGVzdF9zY2hlbWEnLCAnZXhw b3J0X3Rlc3RfdGFibGUnXSwKKyAgICAgICAgICAgICBub3RfZXhwZWN0ZWRfY21kX29wdHM9W10s CisgICAgICAgICAgICAgZXhwZWN0ZWRfZXhpdF9jb2RlPVswLCBOb25lXQorICAgICAgICAgKSks CisgICAgICAgICgnV2hlbiBleHBvcnQgZmlsZSB3aXRoIGNzdiBmaWxlLCBoZWFkZXIsIGRlbGlt aXRlcj10YWIsICcKKyAgICAgICAgICdlbmNvZGluZz1MQVRJTjEnLAorICAgICAgICAgZGljdCgK KyAgICAgICAgICAgICBjbGFzc19wYXJhbXM9ZGljdCgKKyAgICAgICAgICAgICAgICAgc2lkPTEs CisgICAgICAgICAgICAgICAgIG5hbWU9J3Rlc3RfZXhwb3J0X3NlcnZlcicsCisgICAgICAgICAg ICAgICAgIHBvcnQ9NTQ0NCwKKyAgICAgICAgICAgICAgICAgaG9zdD0nbG9jYWxob3N0JywKKyAg ICAgICAgICAgICAgICAgZGF0YWJhc2U9J3Bvc3RncmVzJywKKyAgICAgICAgICAgICAgICAgYmZp bGU9J3Rlc3RfZXhwb3J0JywKKyAgICAgICAgICAgICAgICAgdXNlcm5hbWU9J3Bvc3RncmVzJwor ICAgICAgICAgICAgICksCisgICAgICAgICAgICAgcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAg ICAgIGZpbGVuYW1lPSd0ZXN0X2V4cG9ydF9maWxlXzAxJywKKyAgICAgICAgICAgICAgICAgZm9y bWF0PSJjc3YiLAorICAgICAgICAgICAgICAgICBlbmNvZGluZz0iTEFUSU4xIiwKKyAgICAgICAg ICAgICAgICAgaGVhZGVyPVRydWUsCisgICAgICAgICAgICAgICAgIGRlbGltaXRlcj0iW3RhYl0i LAorICAgICAgICAgICAgICAgICBxdW90ZT0iJyIsCisgICAgICAgICAgICAgICAgIGVzY2FwZT0i XCIiLAorICAgICAgICAgICAgICAgICBpc19pbXBvcnQ9RmFsc2UsCisgICAgICAgICAgICAgICAg IGRhdGFiYXNlPSdwb3N0Z3JlcycsCisgICAgICAgICAgICAgICAgIGNvbHVtbnM9Wyd0ZXN0X2Nv bF8wMTAnLCAndGVzdF9jb2xfMDExJ10sCisgICAgICAgICAgICAgICAgIGljb2x1bW5zPVtdLAor ICAgICAgICAgICAgICAgICBzY2hlbWE9InRlc3Rfc2NoZW1hXzAxIiwKKyAgICAgICAgICAgICAg ICAgdGFibGU9ImV4cG9ydF90ZXN0X3RhYmxlXzAxIgorICAgICAgICAgICAgICksCisgICAgICAg ICAgICAgdXJsPWltcG9ydF9leHBvcnRfdXJsLAorICAgICAgICAgICAgIGV4cGVjdGVkX2NtZF9v cHRzPVsnLS1jb21tYW5kJywgJ2NvcHknLCAnVE8nLCAndGVzdF9zY2hlbWFfMDEnLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnZXhwb3J0X3Rlc3RfdGFibGVfMDEnLCAnSEVBREVS JywgJ0RFTElNSVRFUicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdMQVRJTjEn XSwKKyAgICAgICAgICAgICBub3RfZXhwZWN0ZWRfY21kX29wdHM9W10sCisgICAgICAgICAgICAg ZXhwZWN0ZWRfZXhpdF9jb2RlPVswLCBOb25lXQorICAgICAgICAgKSksCisgICAgICAgICgnV2hl biBleHBvcnQgZmlsZSB3aXRoIGNzdiBmaWxlLCBoZWFkZXIsIGRlbGltaXRlcj10YWIsICcKKyAg ICAgICAgICdlbmNvZGluZz1MQVRJTjEnLAorICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICBj bGFzc19wYXJhbXM9ZGljdCgKKyAgICAgICAgICAgICAgICAgc2lkPTEsCisgICAgICAgICAgICAg ICAgIG5hbWU9J3Rlc3RfZXhwb3J0X3NlcnZlcicsCisgICAgICAgICAgICAgICAgIHBvcnQ9NTQ0 NCwKKyAgICAgICAgICAgICAgICAgaG9zdD0nbG9jYWxob3N0JywKKyAgICAgICAgICAgICAgICAg ZGF0YWJhc2U9J3Bvc3RncmVzJywKKyAgICAgICAgICAgICAgICAgYmZpbGU9J3Rlc3RfZXhwb3J0 JywKKyAgICAgICAgICAgICAgICAgdXNlcm5hbWU9J3Bvc3RncmVzJworICAgICAgICAgICAgICks CisgICAgICAgICAgICAgcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAgIGZpbGVuYW1lPSd0 ZXN0X2V4cG9ydF9maWxlXzAxJywKKyAgICAgICAgICAgICAgICAgZm9ybWF0PSJjc3YiLAorICAg ICAgICAgICAgICAgICBlbmNvZGluZz0iTEFUSU4xIiwKKyAgICAgICAgICAgICAgICAgaGVhZGVy PVRydWUsCisgICAgICAgICAgICAgICAgIGRlbGltaXRlcj0iW3RhYl0iLAorICAgICAgICAgICAg ICAgICBxdW90ZT0iJyIsCisgICAgICAgICAgICAgICAgIGVzY2FwZT0iXCIiLAorICAgICAgICAg ICAgICAgICBpc19pbXBvcnQ9RmFsc2UsCisgICAgICAgICAgICAgICAgIGRhdGFiYXNlPSdwb3N0 Z3JlcycsCisgICAgICAgICAgICAgICAgIGNvbHVtbnM9Wyd0ZXN0X2NvbF8wMTAnLCAndGVzdF9j b2xfMDExJ10sCisgICAgICAgICAgICAgICAgIGljb2x1bW5zPVtdLAorICAgICAgICAgICAgICAg ICBzY2hlbWE9InRlc3Rfc2NoZW1hXzAxIiwKKyAgICAgICAgICAgICAgICAgdGFibGU9ImV4cG9y dF90ZXN0X3RhYmxlXzAxIgorICAgICAgICAgICAgICksCisgICAgICAgICAgICAgdXJsPWltcG9y dF9leHBvcnRfdXJsLAorICAgICAgICAgICAgIGV4cGVjdGVkX2NtZF9vcHRzPVsnLS1jb21tYW5k JywgJ2NvcHknLCAnVE8nLCAndGVzdF9zY2hlbWFfMDEnLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnZXhwb3J0X3Rlc3RfdGFibGVfMDEnLCAnSEVBREVSJywgJ0RFTElNSVRFUics CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdMQVRJTjEnXSwKKyAgICAgICAgICAg ICBub3RfZXhwZWN0ZWRfY21kX29wdHM9W10sCisgICAgICAgICAgICAgZXhwZWN0ZWRfZXhpdF9j b2RlPVswLCBOb25lXQorICAgICAgICAgKSksCisgICAgICAgICgnV2hlbiBleHBvcnQgZmlsZSB3 aXRoIGJpbmFyeSBmaWxlLCBvaWQsIGVuY29kaW5nPVVURjgnLAorICAgICAgICAgZGljdCgKKyAg ICAgICAgICAgICBjbGFzc19wYXJhbXM9ZGljdCgKKyAgICAgICAgICAgICAgICAgc2lkPTEsCisg ICAgICAgICAgICAgICAgIG5hbWU9J3Rlc3RfZXhwb3J0X3NlcnZlcicsCisgICAgICAgICAgICAg ICAgIHBvcnQ9NTQ0NCwKKyAgICAgICAgICAgICAgICAgaG9zdD0nbG9jYWxob3N0JywKKyAgICAg ICAgICAgICAgICAgZGF0YWJhc2U9J3Bvc3RncmVzJywKKyAgICAgICAgICAgICAgICAgYmZpbGU9 J3Rlc3RfZXhwb3J0JywKKyAgICAgICAgICAgICAgICAgdXNlcm5hbWU9J3Bvc3RncmVzJworICAg ICAgICAgICAgICksCisgICAgICAgICAgICAgcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAg IGZpbGVuYW1lPSd0ZXN0X2V4cG9ydF9maWxlXzAyJywKKyAgICAgICAgICAgICAgICAgZm9ybWF0 PSJiaW5hcnkiLAorICAgICAgICAgICAgICAgICBlbmNvZGluZz0iVVRGOCIsCisgICAgICAgICAg ICAgICAgIG9pZD1UcnVlLAorICAgICAgICAgICAgICAgICBkZWxpbWl0ZXI9IiIsCisgICAgICAg ICAgICAgICAgIHF1b3RlPSJcIiIsCisgICAgICAgICAgICAgICAgIGVzY2FwZT0iJyIsCisgICAg ICAgICAgICAgICAgIGlzX2ltcG9ydD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgZGF0YWJhc2U9 J3Bvc3RncmVzJywKKyAgICAgICAgICAgICAgICAgY29sdW1ucz1bJ3Rlc3RfY29sXzAyMCcsICd0 ZXN0X2NvbF8wMjEnXSwKKyAgICAgICAgICAgICAgICAgaWNvbHVtbnM9W10sCisgICAgICAgICAg ICAgICAgIHNjaGVtYT0idGVzdF9zY2hlbWFfMDIiLAorICAgICAgICAgICAgICAgICB0YWJsZT0i ZXhwb3J0X3Rlc3RfdGFibGVfMDIiCisgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICBzZXJ2 ZXJfbWF4X3ZlcnNpb249MTE5OTk5LAorICAgICAgICAgICAgIHNraXBfbXNnPSJPSURzIG5vdCBz dXBwb3J0ZWQgYnkgRVBBUy9QRyAxMi4wIGFuZCBhYm92ZS4iLAorICAgICAgICAgICAgIHVybD1p bXBvcnRfZXhwb3J0X3VybCwKKyAgICAgICAgICAgICBleHBlY3RlZF9jbWRfb3B0cz1bJy0tY29t bWFuZCcsICdjb3B5JywgJ1RPJywgJ3Rlc3Rfc2NoZW1hXzAyJywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ2V4cG9ydF90ZXN0X3RhYmxlXzAyJywgJ1VURjgnLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnT0lEUyddLAorICAgICAgICAgICAgIG5vdF9leHBlY3Rl ZF9jbWRfb3B0cz1bXSwKKyAgICAgICAgICAgICBleHBlY3RlZF9leGl0X2NvZGU9WzAsIE5vbmVd CisgICAgICAgICApKSwKKyAgICAgICAgKCdXaGVuIGV4cG9ydCBmaWxlIHdpdGggdGV4dCBmaWxl LCBkZWxpbWl0ZXI9fCwgZW5jb2Rpbmc9SVNPXzg4NTlfNicsCisgICAgICAgICBkaWN0KAorICAg ICAgICAgICAgIGNsYXNzX3BhcmFtcz1kaWN0KAorICAgICAgICAgICAgICAgICBzaWQ9MSwKKyAg ICAgICAgICAgICAgICAgbmFtZT0ndGVzdF9leHBvcnRfc2VydmVyJywKKyAgICAgICAgICAgICAg ICAgcG9ydD01NDQ0LAorICAgICAgICAgICAgICAgICBob3N0PSdsb2NhbGhvc3QnLAorICAgICAg ICAgICAgICAgICBkYXRhYmFzZT0ncG9zdGdyZXMnLAorICAgICAgICAgICAgICAgICBiZmlsZT0n dGVzdF9leHBvcnQnLAorICAgICAgICAgICAgICAgICB1c2VybmFtZT0ncG9zdGdyZXMnCisgICAg ICAgICAgICAgKSwKKyAgICAgICAgICAgICBwYXJhbXM9ZGljdCgKKyAgICAgICAgICAgICAgICAg ZmlsZW5hbWU9J3Rlc3RfZXhwb3J0X2ZpbGVfMDMnLAorICAgICAgICAgICAgICAgICBmb3JtYXQ9 InRleHQiLAorICAgICAgICAgICAgICAgICBlbmNvZGluZz0iSVNPXzg4NTlfNiIsCisgICAgICAg ICAgICAgICAgIGRlbGltaXRlcj0ifCIsCisgICAgICAgICAgICAgICAgIHF1b3RlPSJcIiIsCisg ICAgICAgICAgICAgICAgIGVzY2FwZT0iJyIsCisgICAgICAgICAgICAgICAgIGlzX2ltcG9ydD1G YWxzZSwKKyAgICAgICAgICAgICAgICAgZGF0YWJhc2U9J3Bvc3RncmVzJywKKyAgICAgICAgICAg ICAgICAgY29sdW1ucz1bJ3Rlc3RfY29sXzAzMCcsICd0ZXN0X2NvbF8wMzEnXSwKKyAgICAgICAg ICAgICAgICAgaWNvbHVtbnM9W10sCisgICAgICAgICAgICAgICAgIHNjaGVtYT0idGVzdF9zY2hl bWFfMDMiLAorICAgICAgICAgICAgICAgICB0YWJsZT0iZXhwb3J0X3Rlc3RfdGFibGVfMDMiCisg ICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICB1cmw9aW1wb3J0X2V4cG9ydF91cmwsCisgICAg ICAgICAgICAgZXhwZWN0ZWRfY21kX29wdHM9WyctLWNvbW1hbmQnLCAnY29weScsICdUTycsICd0 ZXN0X3NjaGVtYV8wMycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdleHBvcnRf dGVzdF90YWJsZV8wMycsICdERUxJTUlURVInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnSVNPXzg4NTlfNiddLAorICAgICAgICAgICAgIG5vdF9leHBlY3RlZF9jbWRfb3B0cz1b XSwKKyAgICAgICAgICAgICBleHBlY3RlZF9leGl0X2NvZGU9WzAsIE5vbmVdCisgICAgICAgICAp KSwKKyAgICAgICAgKCdXaGVuIGV4cG9ydCBmaWxlIHdpdGggYmluYXJ5IGZpbGUsIGRlbGltaXRl cj10YWIsICcKKyAgICAgICAgICdlbmNvZGluZz1JU09fODg1OV82JywKKyAgICAgICAgIGRpY3Qo CisgICAgICAgICAgICAgY2xhc3NfcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAgIHNpZD0x LAorICAgICAgICAgICAgICAgICBuYW1lPSd0ZXN0X2V4cG9ydF9zZXJ2ZXInLAorICAgICAgICAg ICAgICAgICBwb3J0PTU0NDQsCisgICAgICAgICAgICAgICAgIGhvc3Q9J2xvY2FsaG9zdCcsCisg ICAgICAgICAgICAgICAgIGRhdGFiYXNlPSdwb3N0Z3JlcycsCisgICAgICAgICAgICAgICAgIGJm aWxlPSd0ZXN0X2V4cG9ydCcsCisgICAgICAgICAgICAgICAgIHVzZXJuYW1lPSdwb3N0Z3JlcycK KyAgICAgICAgICAgICApLAorICAgICAgICAgICAgIHBhcmFtcz1kaWN0KAorICAgICAgICAgICAg ICAgICBmaWxlbmFtZT0ndGVzdF9leHBvcnRfZmlsZV8wNCcsCisgICAgICAgICAgICAgICAgIGZv cm1hdD0iYmluYXJ5IiwKKyAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9IklTT184ODU5XzYiLAor ICAgICAgICAgICAgICAgICBxdW90ZT0iXCIiLAorICAgICAgICAgICAgICAgICBlc2NhcGU9Iici LAorICAgICAgICAgICAgICAgICBpc19pbXBvcnQ9RmFsc2UsCisgICAgICAgICAgICAgICAgIGRh dGFiYXNlPSdwb3N0Z3JlcycsCisgICAgICAgICAgICAgICAgIGNvbHVtbnM9Wyd0ZXN0X2NvbF8w NDAnLCAndGVzdF9jb2xfMDQxJ10sCisgICAgICAgICAgICAgICAgIGljb2x1bW5zPVtdLAorICAg ICAgICAgICAgICAgICBzY2hlbWE9InRlc3Rfc2NoZW1hXzA0IiwKKyAgICAgICAgICAgICAgICAg dGFibGU9ImV4cG9ydF90ZXN0X3RhYmxlXzA0IgorICAgICAgICAgICAgICksCisgICAgICAgICAg ICAgdXJsPWltcG9ydF9leHBvcnRfdXJsLAorICAgICAgICAgICAgIGV4cGVjdGVkX2NtZF9vcHRz PVsnLS1jb21tYW5kJywgJ2NvcHknLCAnVE8nLCAndGVzdF9zY2hlbWFfMDQnLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnZXhwb3J0X3Rlc3RfdGFibGVfMDQnLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnSVNPXzg4NTlfNiddLAorICAgICAgICAgICAgIG5vdF9l eHBlY3RlZF9jbWRfb3B0cz1bJ0RFTElNSVRFUiddLAorICAgICAgICAgICAgIGV4cGVjdGVkX2V4 aXRfY29kZT1bMCwgTm9uZV0KKyAgICAgICAgICkpLAorICAgICAgICAoJ1doZW4gaW1wb3J0IGZp bGUgd2l0aCBkZWZhdWx0IG9wdGlvbnMnLAorICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICBj bGFzc19wYXJhbXM9ZGljdCgKKyAgICAgICAgICAgICAgICAgc2lkPTEsCisgICAgICAgICAgICAg ICAgIG5hbWU9J3Rlc3RfZXhwb3J0X3NlcnZlcicsCisgICAgICAgICAgICAgICAgIHBvcnQ9NTQ0 NCwKKyAgICAgICAgICAgICAgICAgaG9zdD0nbG9jYWxob3N0JywKKyAgICAgICAgICAgICAgICAg ZGF0YWJhc2U9J3Bvc3RncmVzJywKKyAgICAgICAgICAgICAgICAgYmZpbGU9J3Rlc3RfZXhwb3J0 JywKKyAgICAgICAgICAgICAgICAgdXNlcm5hbWU9J3Bvc3RncmVzJworICAgICAgICAgICAgICks CisgICAgICAgICAgICAgcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAgIGZpbGVuYW1lPSd0 ZXN0X2ltcG9ydF9maWxlLmNzdicsCisgICAgICAgICAgICAgICAgIGZvcm1hdD0nY3N2JywKKyAg ICAgICAgICAgICAgICAgaXNfaW1wb3J0PVRydWUsCisgICAgICAgICAgICAgICAgIGRlbGltaXRl cj0iIiwKKyAgICAgICAgICAgICAgICAgcXVvdGU9IlwiIiwKKyAgICAgICAgICAgICAgICAgZXNj YXBlPSInIiwKKyAgICAgICAgICAgICAgICAgZGF0YWJhc2U9J3Bvc3RncmVzJywKKyAgICAgICAg ICAgICAgICAgY29sdW1ucz1bJ3Rlc3RfY29sXzEnLCAndGVzdF9jb2xfMiddLAorICAgICAgICAg ICAgICAgICBpY29sdW1ucz1bXSwKKyAgICAgICAgICAgICAgICAgc2NoZW1hPSJpbXBvcnRfdGVz dF9zY2hlbWEiLAorICAgICAgICAgICAgICAgICB0YWJsZT0iaW1wb3J0X3Rlc3RfdGFibGUiCisg ICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICB1cmw9aW1wb3J0X2V4cG9ydF91cmwsCisgICAg ICAgICAgICAgZXhwZWN0ZWRfY21kX29wdHM9WyctLWNvbW1hbmQnLCAnY29weScsICdGUk9NJywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ltcG9ydF90ZXN0X3NjaGVtYScsICdp bXBvcnRfdGVzdF90YWJsZSddLAorICAgICAgICAgICAgIG5vdF9leHBlY3RlZF9jbWRfb3B0cz1b XSwKKyAgICAgICAgICAgICBleHBlY3RlZF9leGl0X2NvZGU9WzAsIE5vbmVdCisgICAgICAgICAp KSwKKyAgICBdCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisKKyAgICAgICAgaWYgJ2RlZmF1bHRf YmluYXJ5X3BhdGhzJyBub3QgaW4gc2VsZi5zZXJ2ZXIgb3IgXAorICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJbJ2RlZmF1bHRfYmluYXJ5X3BhdGhzJ10gaXMgTm9uZSBvciBcCisgICAgICAgICAgICBz ZWxmLnNlcnZlclsndHlwZSddIG5vdCBpbiBzZWxmLnNlcnZlclsnZGVmYXVsdF9iaW5hcnlfcGF0 aHMnXSBvciBcCisgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RlZmF1bHRfYmluYXJ5X3Bh dGhzJ11bc2VsZi5zZXJ2ZXJbJ3R5cGUnXV0gPT0gJyc6CisgICAgICAgICAgICBzZWxmLnNraXBU ZXN0KAorICAgICAgICAgICAgICAgICJkZWZhdWx0X2JpbmFyeV9wYXRocyBpcyBub3Qgc2V0IGZv ciB0aGUgc2VydmVyIHswfSIuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZl clsnbmFtZSddCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorCisgICAgICAgIGJp bl9wID0gc2VsZi5zZXJ2ZXJbJ2RlZmF1bHRfYmluYXJ5X3BhdGhzJ11bc2VsZi5zZXJ2ZXJbJ3R5 cGUnXV0KKworICAgICAgICBiaW5hcnlfcGF0aCA9IG9zLnBhdGguam9pbihiaW5fcCwgJ3BzcWwn KQorCisgICAgICAgIGlmIG9zLm5hbWUgPT0gJ250JzoKKyAgICAgICAgICAgIGJpbmFyeV9wYXRo ID0gYmluYXJ5X3BhdGggKyAnLmV4ZScKKworICAgICAgICByZXRfdmFsID0gZG9lc191dGlsaXR5 X2V4aXN0KGJpbmFyeV9wYXRoKQorICAgICAgICBpZiByZXRfdmFsIGlzIG5vdCBOb25lOgorICAg ICAgICAgICAgc2VsZi5za2lwVGVzdChyZXRfdmFsKQorCisgICAgQHBhdGNoKCdwZ2FkbWluLnRv b2xzLmltcG9ydF9leHBvcnQuU2VydmVyJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuaW1w b3J0X2V4cG9ydC5JRU1lc3NhZ2UnKQorICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5pbXBvcnRf ZXhwb3J0LmZpbGVuYW1lX3dpdGhfZmlsZV9tYW5hZ2VyX3BhdGgnKQorICAgIEBwYXRjaCgncGdh ZG1pbi50b29scy5pbXBvcnRfZXhwb3J0LkJhdGNoUHJvY2VzcycpCisgICAgQHBhdGNoKCdwZ2Fk bWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5zZXJ2ZXJfbWFuYWdlci5TZXJ2ZXJNYW5hZ2VyLicK KyAgICAgICAgICAgJ2V4cG9ydF9wYXNzd29yZF9lbnYnKQorICAgIGRlZiBydW5UZXN0KHNlbGYs IGV4cG9ydF9wYXNzd29yZF9lbnZfbW9jaywgYmF0Y2hfcHJvY2Vzc19tb2NrLAorICAgICAgICAg ICAgICAgIGZpbGVuYW1lX21vY2ssIGllX21lc3NhZ2VfbW9jaywgc2VydmVyX21vY2spOgorICAg ICAgICBjbGFzcyBUZXN0TW9ja1NlcnZlcigpOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNl bGYsIG5hbWUsIGhvc3QsIHBvcnQsIGlkLCB1c2VybmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICBtYWludGVuYW5jZV9kYik6CisgICAgICAgICAgICAgICAgc2VsZi5uYW1lID0gbmFtZQor ICAgICAgICAgICAgICAgIHNlbGYuaG9zdCA9IGhvc3QKKyAgICAgICAgICAgICAgICBzZWxmLnBv cnQgPSBwb3J0CisgICAgICAgICAgICAgICAgc2VsZi5pZCA9IGlkCisgICAgICAgICAgICAgICAg c2VsZi51c2VybmFtZSA9IHVzZXJuYW1lCisgICAgICAgICAgICAgICAgc2VsZi5tYWludGVuYW5j ZV9kYiA9IG1haW50ZW5hbmNlX2RiCisKKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBwYXJlbnRf bm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCisgICAgICAgIG1vY2tfb2JqID0g VGVzdE1vY2tTZXJ2ZXIoc2VsZi5jbGFzc19wYXJhbXNbJ25hbWUnXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLmNsYXNzX3BhcmFtc1snaG9zdCddLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2xhc3NfcGFyYW1zWydwb3J0J10sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jbGFzc19wYXJhbXNbJ3VzZXJuYW1lJ10sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jbGFzc19wYXJhbXNbJ2RhdGFi YXNlJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgIG1vY2tf cmVzdWx0ID0gc2VydmVyX21vY2sucXVlcnkuZmlsdGVyX2J5LnJldHVybl92YWx1ZQorICAgICAg ICBtb2NrX3Jlc3VsdC5maXJzdC5yZXR1cm5fdmFsdWUgPSBtb2NrX29iagorCisgICAgICAgIGZp bGVuYW1lX21vY2sucmV0dXJuX3ZhbHVlID0gc2VsZi5wYXJhbXNbJ2ZpbGVuYW1lJ10KKworICAg ICAgICBiYXRjaF9wcm9jZXNzX21vY2suc2V0X2Vudl92YXJpYWJsZXMgPSBNYWdpY01vY2soCisg ICAgICAgICAgICByZXR1cm5fdmFsdWU9VHJ1ZQorICAgICAgICApCisgICAgICAgIGJhdGNoX3By b2Nlc3NfbW9jay5zdGFydCA9IE1hZ2ljTW9jaygKKyAgICAgICAgICAgIHJldHVybl92YWx1ZT1U cnVlCisgICAgICAgICkKKworICAgICAgICBleHBvcnRfcGFzc3dvcmRfZW52X21vY2sucmV0dXJu X3ZhbHVlID0gVHJ1ZQorCisgICAgICAgIHNlcnZlcl9yZXNwb25zZSA9IHNlcnZlcl91dGlscy5j b25uZWN0X3NlcnZlcihzZWxmLCBzZWxmLnNlcnZlcl9pZCkKKyAgICAgICAgaWYgc2VydmVyX3Jl c3BvbnNlWyJpbmZvIl0gPT0gIlNlcnZlciBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAgIGRiX293 bmVyID0gc2VydmVyX3Jlc3BvbnNlWydkYXRhJ11bJ3VzZXInXVsnbmFtZSddCisgICAgICAgICAg ICBzZWxmLmRhdGEgPSBkYXRhYmFzZV91dGlscy5nZXRfZGJfZGF0YShkYl9vd25lcikKKworICAg ICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnc2VydmVyX21heF92ZXJzaW9uJykgXAorICAgICAg ICAgICAgICAgIGFuZCBzZXJ2ZXJfcmVzcG9uc2VbImRhdGEiXVsidmVyc2lvbiJdID4gc2VsZi5c CisgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9tYXhfdmVyc2lvbjoKKyAgICAgICAgICAgICAg ICBzZWxmLnNraXBUZXN0KHNlbGYuc2tpcF9tc2cpCisKKyAgICAgICAgdXJsID0gc2VsZi51cmwu Zm9ybWF0KHNlbGYuc2VydmVyX2lkKQorCisgICAgICAgICMgQ3JlYXRlIHRoZSBpbXBvcnQvZXhw b3J0IGpvYgorICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QodXJsLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYucGFyYW1z KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRt bC9qc29uJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwg MjAwKQorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpZV9tZXNzYWdlX21vY2suY2FsbGVkKQor ICAgICAgICBzZWxmLmFzc2VydFRydWUoYmF0Y2hfcHJvY2Vzc19tb2NrLmNhbGxlZCkKKworICAg ICAgICBpZiBzZWxmLmV4cGVjdGVkX2NtZF9vcHRzOgorICAgICAgICAgICAgZm9yIG9wdCBpbiBz ZWxmLmV4cGVjdGVkX2NtZF9vcHRzOgorICAgICAgICAgICAgICAgIGFyZyA9IHJlcHIoYmF0Y2hf cHJvY2Vzc19tb2NrLmNhbGxfYXJnc19saXN0WzBdWzFdWydhcmdzJ10pCisgICAgICAgICAgICAg ICAgc2VsZi5hc3NlcnRJbigKKyAgICAgICAgICAgICAgICAgICAgb3B0LAorICAgICAgICAgICAg ICAgICAgICBhcmcKKyAgICAgICAgICAgICAgICApCisgICAgICAgIGlmIHNlbGYubm90X2V4cGVj dGVkX2NtZF9vcHRzOgorICAgICAgICAgICAgZm9yIG9wdCBpbiBzZWxmLm5vdF9leHBlY3RlZF9j bWRfb3B0czoKKyAgICAgICAgICAgICAgICBhcmcgPSByZXByKGJhdGNoX3Byb2Nlc3NfbW9jay5j YWxsX2FyZ3NfbGlzdFswXVsxXVsnYXJncyddKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0 Tm90SW4oCisgICAgICAgICAgICAgICAgICAgIG9wdCwKKyAgICAgICAgICAgICAgICAgICAgYXJn CisgICAgICAgICAgICAgICAgKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvaW1wb3J0 X2V4cG9ydC90ZXN0cy90ZXN0X2ltcG9ydF9leHBvcnRfbWVzc2FnZS5weSBiL3dlYi9wZ2FkbWlu L3Rvb2xzL2ltcG9ydF9leHBvcnQvdGVzdHMvdGVzdF9pbXBvcnRfZXhwb3J0X21lc3NhZ2UucHkK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi45YjQyZTk2NDEKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9pbXBvcnRfZXhwb3J0L3Rlc3RzL3Rlc3RfaW1w b3J0X2V4cG9ydF9tZXNzYWdlLnB5CkBAIC0wLDAgKzEsMTMwIEBACisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykg MjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2Fy ZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworCitmcm9tIHBnYWRtaW4udG9vbHMuaW1wb3J0X2V4cG9ydCBpbXBvcnQgSUVNZXNz YWdlCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitm cm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCitpbXBvcnQgY29uZmlnCisKKworY2xhc3Mg SUVNZXNzYWdlVGVzdChCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGVzdCB0aGUgSUVNZXNz YWdlIGNsYXNzIiIiCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAoJ1doZW4gRXhwb3J0IHRh YmxlIHdpdGggZGVmYXVsdCBvcHRpb25zJywKKyAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAg Y2xhc3NfcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAgIHNpZD0xLAorICAgICAgICAgICAg ICAgICBzY2hlbWE9J3B1YmxpYycsCisgICAgICAgICAgICAgICAgIG5hbWU9J3Rlc3RfZXhwb3J0 JywKKyAgICAgICAgICAgICAgICAgaXNfaW1wb3J0PUZhbHNlLAorICAgICAgICAgICAgICAgICBw b3J0PTU0NDQsCisgICAgICAgICAgICAgICAgIGhvc3Q9J2xvY2FsaG9zdCcsCisgICAgICAgICAg ICAgICAgIGRhdGFiYXNlPSdwb3N0Z3JlcycsCisgICAgICAgICAgICAgICAgIHNlcnZlcj0ncG9z dGdyZXMgeCcsCisgICAgICAgICAgICAgICAgIGZpbGVuYW1lPScvdGVzdF9leHBvcnRfZmlsZS5j c3YnLAorICAgICAgICAgICAgICAgICBzdG9yYWdlPScvJywKKyAgICAgICAgICAgICAgICAgdGFi bGU9J3Rlc3RfdGFibGUnLAorICAgICAgICAgICAgICAgICBjbWQ9Ii90ZXN0X3BhdGgiLAorICAg ICAgICAgICAgICAgICBhcmdzPVsKKyAgICAgICAgICAgICAgICAgICAgICctLWNvbW1hbmQnLAor ICAgICAgICAgICAgICAgICAgICAgJ1xcY29weSBwdWJsaWMudGVzdF90YWJsZSAgKG1faWQpICBU TyAnCisgICAgICAgICAgICAgICAgICAgICAnXCcvdGVzdF9wYXRoL3RleHRfZXhwb3J0LmNzdlwn ICAgQ1NWICAgJworICAgICAgICAgICAgICAgICAgICAgJ1FVT1RFIFwnIlwnIEVTQ0FQRSBcJ1wn XCdcJzsnCisgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICApLAorICAgICAgICAgICAg IGV4cGVjdGVkX21zZz0iQ29weWluZyB0YWJsZSBkYXRhICd7MH0uezF9JyBvbiAiCisgICAgICAg ICAgICAgICAgICAgICAgICAgICJkYXRhYmFzZSAnezJ9JyBhbmQgc2VydmVyICh7M306ezR9KSIs CisgICAgICAgICAgICAgZXhwZWN0ZWRfc3RvcmFnZV9kaXI9Jy8nCisKKyAgICAgICAgICkpLAor ICAgICAgICAoJ1doZW4gRXhwb3J0IHRhYmxlIHdpdGggZm9sZGVyIHBhdGgnLAorICAgICAgICAg ZGljdCgKKyAgICAgICAgICAgICBjbGFzc19wYXJhbXM9ZGljdCgKKyAgICAgICAgICAgICAgICAg c2lkPTEsCisgICAgICAgICAgICAgICAgIHNjaGVtYT0ncHVibGljJywKKyAgICAgICAgICAgICAg ICAgbmFtZT0ndGVzdF9leHBvcnQnLAorICAgICAgICAgICAgICAgICBpc19pbXBvcnQ9RmFsc2Us CisgICAgICAgICAgICAgICAgIHBvcnQ9NTQ0NCwKKyAgICAgICAgICAgICAgICAgaG9zdD0nbG9j YWxob3N0JywKKyAgICAgICAgICAgICAgICAgZGF0YWJhc2U9J3Bvc3RncmVzJywKKyAgICAgICAg ICAgICAgICAgc2VydmVyPSdwb3N0Z3JlcyB4JywKKyAgICAgICAgICAgICAgICAgZmlsZW5hbWU9 Jy90ZXN0X3BhdGgvdGVzdF9leHBvcnRfZmlsZS5jc3YnLAorICAgICAgICAgICAgICAgICBzdG9y YWdlPScvJywKKyAgICAgICAgICAgICAgICAgdGFibGU9J3Rlc3RfdGFibGUnLAorICAgICAgICAg ICAgICAgICBjbWQ9Ii90ZXN0X3BhdGgiLAorICAgICAgICAgICAgICAgICBhcmdzPVsKKyAgICAg ICAgICAgICAgICAgICAgICctLWNvbW1hbmQnLAorICAgICAgICAgICAgICAgICAgICAgJ1xcY29w eSBwdWJsaWMudGVzdF90YWJsZSAgKG1faWQpICBUTyAnCisgICAgICAgICAgICAgICAgICAgICAn XCcvdGVzdF9wYXRoL3RleHRfZXhwb3J0LmNzdlwnICAgQ1NWICAgJworICAgICAgICAgICAgICAg ICAgICAgJ1FVT1RFIFwnIlwnIEVTQ0FQRSBcJ1wnXCdcJzsnCisgICAgICAgICAgICAgICAgIF0K KyAgICAgICAgICAgICApLAorICAgICAgICAgICAgIGV4cGVjdGVkX21zZz0iQ29weWluZyB0YWJs ZSBkYXRhICd7MH0uezF9JyBvbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXRhYmFz ZSAnezJ9JyBhbmQgc2VydmVyICh7M306ezR9KSIsCisgICAgICAgICAgICAgZXhwZWN0ZWRfc3Rv cmFnZV9kaXI9Jy90ZXN0X3BhdGgnCisKKyAgICAgICAgICkpLAorICAgIF0KKworICAgIEBwYXRj aCgncGdhZG1pbi50b29scy5pbXBvcnRfZXhwb3J0LmdldF9zdG9yYWdlX2RpcmVjdG9yeScpCisg ICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLmltcG9ydF9leHBvcnQuSUVNZXNzYWdlLmdldF9zZXJ2 ZXJfZGV0YWlscycpCisgICAgQHBhdGNoKCdvcy5wYXRoLnJlYWxwYXRoJykKKyAgICBkZWYgcnVu VGVzdChzZWxmLCByZWFscGF0aF9tb2NrLCBnZXRfc2VydmVyX2RldGFpbHNfbW9jaywKKyAgICAg ICAgICAgICAgICBnZXRfc3RvcmFnZV9kaXJlY3RvcnlfbW9jayk6CisKKyAgICAgICAgbmFtZSA9 IHNlbGYuY2xhc3NfcGFyYW1zWyduYW1lJ10KKyAgICAgICAgaG9zdCA9IHNlbGYuY2xhc3NfcGFy YW1zWydob3N0J10KKyAgICAgICAgcG9ydCA9IHNlbGYuY2xhc3NfcGFyYW1zWydwb3J0J10KKwor ICAgICAgICBnZXRfc2VydmVyX2RldGFpbHNfbW9jay5yZXR1cm5fdmFsdWUgPSBuYW1lLCBob3N0 LCBwb3J0CisKKyAgICAgICAgZ2V0X3N0b3JhZ2VfZGlyZWN0b3J5X21vY2sucmV0dXJuX3ZhbHVl ID0gJy8vJworICAgICAgICByZWFscGF0aF9tb2NrLnJldHVybl92YWx1ZSA9IHNlbGYuY2xhc3Nf cGFyYW1zWydmaWxlbmFtZSddCisKKyAgICAgICAgaW1wb3J0X2V4cG9ydF9vYmogPSBJRU1lc3Nh Z2UoCisgICAgICAgICAgICAqc2VsZi5jbGFzc19wYXJhbXNbJ2FyZ3MnXSwKKyAgICAgICAgICAg ICoqeworICAgICAgICAgICAgICAgICdzaWQnOiBzZWxmLmNsYXNzX3BhcmFtc1snc2lkJ10sCisg ICAgICAgICAgICAgICAgJ3NjaGVtYSc6IHNlbGYuY2xhc3NfcGFyYW1zWydzY2hlbWEnXSwKKyAg ICAgICAgICAgICAgICAndGFibGUnOiBzZWxmLmNsYXNzX3BhcmFtc1sndGFibGUnXSwKKyAgICAg ICAgICAgICAgICAnaXNfaW1wb3J0Jzogc2VsZi5jbGFzc19wYXJhbXNbJ2lzX2ltcG9ydCddLAor ICAgICAgICAgICAgICAgICdkYXRhYmFzZSc6IHNlbGYuY2xhc3NfcGFyYW1zWydkYXRhYmFzZSdd LAorICAgICAgICAgICAgICAgICdmaWxlbmFtZSc6IHNlbGYuY2xhc3NfcGFyYW1zWydmaWxlbmFt ZSddLAorICAgICAgICAgICAgICAgICdzdG9yYWdlJzogc2VsZi5jbGFzc19wYXJhbXNbJ3N0b3Jh Z2UnXSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgKQorCisgICAgICAgIGV4cGVjdGVkX21zZyA9 IHNlbGYuZXhwZWN0ZWRfbXNnLmZvcm1hdCgKKyAgICAgICAgICAgIHNlbGYuY2xhc3NfcGFyYW1z WydzY2hlbWEnXSwKKyAgICAgICAgICAgIHNlbGYuY2xhc3NfcGFyYW1zWyd0YWJsZSddLAorICAg ICAgICAgICAgc2VsZi5jbGFzc19wYXJhbXNbJ2RhdGFiYXNlJ10sCisgICAgICAgICAgICBzZWxm LmNsYXNzX3BhcmFtc1snaG9zdCddLAorICAgICAgICAgICAgc2VsZi5jbGFzc19wYXJhbXNbJ3Bv cnQnXQorICAgICAgICApCisKKyAgICAgICAgIyBDaGVjayB0aGUgZXhwZWN0ZWQgbWVzc2FnZSBy ZXR1cm5lZAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGltcG9ydF9leHBvcnRfb2JqLm1lc3Nh Z2UsIGV4cGVjdGVkX21zZykKKworICAgICAgICAjIENoZWNrIHRoZSBjb21tYW5kCisgICAgICAg IG9ial9kZXRhaWxzID0gaW1wb3J0X2V4cG9ydF9vYmouZGV0YWlscyhzZWxmLmNsYXNzX3BhcmFt c1snY21kJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmNsYXNzX3BhcmFtc1snYXJncyddKQorCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oc2Vs Zi5jbGFzc19wYXJhbXNbJ3NjaGVtYSddLCBvYmpfZGV0YWlscykKKyAgICAgICAgc2VsZi5hc3Nl cnRJbihzZWxmLmNsYXNzX3BhcmFtc1sndGFibGUnXSwgb2JqX2RldGFpbHMpCisgICAgICAgIHNl bGYuYXNzZXJ0SW4oc2VsZi5jbGFzc19wYXJhbXNbJ2RhdGFiYXNlJ10sIG9ial9kZXRhaWxzKQor ICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYuY2xhc3NfcGFyYW1zWydob3N0J10sIG9ial9kZXRh aWxzKQorICAgICAgICBzZWxmLmFzc2VydEluKHN0cihzZWxmLmNsYXNzX3BhcmFtc1sncG9ydCdd KSwgb2JqX2RldGFpbHMpCisKKyAgICAgICAgaWYgY29uZmlnLlNFUlZFUl9NT0RFIGlzIEZhbHNl OgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgKKyAgICAgICAgICAgICAgICAiU2tpcHBpbmcg dGVzdHMgZm9yIFN0b3JhZ2UgbWFuYWdlciBpbiBEZXNrdG9wIG1vZGUuIgorICAgICAgICAgICAg KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc3RvcmFnZV9kaXIgPSBpbXBvcnRfZXhwb3J0 X29iai5jdXJyZW50X3N0b3JhZ2VfZGlyCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNl bGYuZXhwZWN0ZWRfc3RvcmFnZV9kaXIsIHN0b3JhZ2VfZGlyKQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vdG9vbHMvaW1wb3J0X2V4cG9ydC90ZXN0cy90ZXN0X2ltcG9ydF9leHBvcnRfdXRpbHMu cHkgYi93ZWIvcGdhZG1pbi90b29scy9pbXBvcnRfZXhwb3J0L3Rlc3RzL3Rlc3RfaW1wb3J0X2V4 cG9ydF91dGlscy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmU2OWM5 NTI2YQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2ltcG9ydF9leHBvcnQv dGVzdHMvdGVzdF9pbXBvcnRfZXhwb3J0X3V0aWxzLnB5CkBAIC0wLDAgKzEsMTk0IEBACisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENv cHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMg VGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisj CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgdGltZQoraW1wb3J0IHJhbmRvbQoraW1wb3J0 IHNpbXBsZWpzb24gYXMganNvbgoraW1wb3J0IHV1aWQKK2ltcG9ydCByZQorCitmcm9tIHJlZ3Jl c3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKKworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCisgICAg aW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVy X2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRp bHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRp bHMKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBh cyB1dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy5zY2hlbWFzLlwKKyAgICB0YWJsZXMuY29sdW1ucy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMg Y29sdW1uc191dGlscworCisKK2RlZiBjcmVhdGVfaW1wb3J0X2V4cG9ydF9qb2IodGVzdGVyLCB1 cmwsIHBhcmFtcywgYXNzZXJ0X2VxdWFsKToKKyAgICAjIENyZWF0ZSB0aGUgaW1wb3J0L2V4cG9y dCBqb2IKKyAgICByZXNwb25zZSA9IHRlc3Rlci5wb3N0KHVybCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhwYXJhbXMpLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAgIGFzc2VydF9lcXVhbChyZXNwb25z ZS5zdGF0dXNfY29kZSwgMjAwKQorICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRzKHJlc3Bv bnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQorICAgIGpvYl9pZCA9IHJlc3BvbnNlX2RhdGFbJ2Rh dGEnXVsnam9iX2lkJ10KKyAgICByZXR1cm4gam9iX2lkCisKKworZGVmIHJ1bl9pbXBvcnRfZXhw b3J0X2pvYih0ZXN0ZXIsIGpvYl9pZCwgZXhwZWN0ZWRfcGFyYW1zLCBhc3NlcnRfaW4sCisgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9ub3RfaW4sIGFzc2VydF9lcXVhbCk6CisgICAg Y250ID0gMAorICAgIHRoZV9wcm9jZXNzID0gTm9uZQorICAgIHdoaWxlIFRydWU6CisgICAgICAg IGlmIGNudCA+PSA1OgorICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgIyBDaGVjayB0aGUgcHJv Y2VzcyBsaXN0CisgICAgICAgIHJlc3BvbnNlMSA9IHRlc3Rlci5nZXQoJy9taXNjL2JncHJvY2Vz cy8/Xz17MH0nLmZvcm1hdCgKKyAgICAgICAgICAgIHJhbmRvbS5yYW5kaW50KDEsIDk5OTk5OTkp KSkKKyAgICAgICAgYXNzZXJ0X2VxdWFsKHJlc3BvbnNlMS5zdGF0dXNfY29kZSwgMjAwKQorICAg ICAgICBwcm9jZXNzX2xpc3QgPSBqc29uLmxvYWRzKHJlc3BvbnNlMS5kYXRhLmRlY29kZSgndXRm LTgnKSkKKworICAgICAgICB0cnk6CisgICAgICAgICAgICB0aGVfcHJvY2VzcyA9IG5leHQoCisg ICAgICAgICAgICAgICAgcCBmb3IgcCBpbiBwcm9jZXNzX2xpc3QgaWYgcFsnaWQnXSA9PSBqb2Jf aWQpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICB0aGVfcHJvY2VzcyA9 IE5vbmUKKworICAgICAgICBpZiB0aGVfcHJvY2VzcyBhbmQgJ2V4ZWN1dGlvbl90aW1lJyBpbiB0 aGVfcHJvY2VzczoKKyAgICAgICAgICAgIGJyZWFrCisgICAgICAgIHRpbWUuc2xlZXAoMC41KQor ICAgICAgICBjbnQgKz0gMQorCisgICAgYXNzZXJ0X2VxdWFsKCdleGVjdXRpb25fdGltZScgaW4g dGhlX3Byb2Nlc3MsIFRydWUpCisgICAgYXNzZXJ0X2VxdWFsKCdzdGltZScgaW4gdGhlX3Byb2Nl c3MsIFRydWUpCisgICAgYXNzZXJ0X2VxdWFsKCdleGl0X2NvZGUnIGluIHRoZV9wcm9jZXNzLCBU cnVlKQorICAgIGFzc2VydF9lcXVhbCh0aGVfcHJvY2Vzc1snZXhpdF9jb2RlJ10gaW4gZXhwZWN0 ZWRfcGFyYW1zWworICAgICAgICAnZXhwZWN0ZWRfZXhpdF9jb2RlJworICAgIF0sIFRydWUpCisK KyAgICBpb19maWxlID0gTm9uZQorICAgIGlmICdkZXRhaWxzJyBpbiB0aGVfcHJvY2VzczoKKyAg ICAgICAgaW9fZGV0ID0gdGhlX3Byb2Nlc3NbJ2RldGFpbHMnXQorCisgICAgICAgIHRlbXBfaW9f ZGV0ID0gaW9fZGV0LnVwcGVyKCkKKworICAgICAgICBpZiB0ZW1wX2lvX2RldC5maW5kKCcgVE8g JykgPiAwOgorICAgICAgICAgICAgaW9fZmlsZSA9IHRlbXBfaW9fZGV0W3RlbXBfaW9fZGV0LmZp bmQoJyBUTyAnKSArIDM6XS5zcGxpdCgnICcpWzFdCisgICAgICAgIGVsc2U6CisgICAgICAgICAg ICBmcm9tX2ZpbmQgPSB0ZW1wX2lvX2RldC5maW5kKCcgRlJPTSAnKSArIDUKKyAgICAgICAgICAg IGlvX2ZpbGUgPSB0ZW1wX2lvX2RldFtmcm9tX2ZpbmQ6XS5zcGxpdCgnICcpWzFdCisKKyAgICBp ZiBleHBlY3RlZF9wYXJhbXNbJ2V4cGVjdGVkX2NtZF9vcHRzJ106CisgICAgICAgIGZvciBvcHQg aW4gZXhwZWN0ZWRfcGFyYW1zWydleHBlY3RlZF9jbWRfb3B0cyddOgorICAgICAgICAgICAgYXNz ZXJ0X2luKG9wdCwgdGhlX3Byb2Nlc3NbJ2RldGFpbHMnXSkKKyAgICBpZiBleHBlY3RlZF9wYXJh bXNbJ25vdF9leHBlY3RlZF9jbWRfb3B0cyddOgorICAgICAgICBmb3Igb3B0IGluIGV4cGVjdGVk X3BhcmFtc1snbm90X2V4cGVjdGVkX2NtZF9vcHRzJ106CisgICAgICAgICAgICBhc3NlcnRfbm90 X2luKG9wdCwgdGhlX3Byb2Nlc3NbJ2RldGFpbHMnXSkKKworICAgICMgQ2hlY2sgdGhlIHByb2Nl c3MgZGV0YWlscworICAgIHBfZGV0YWlscyA9IHRlc3Rlci5nZXQoJy9taXNjL2JncHJvY2Vzcy97 MH0/Xz17MX0nLmZvcm1hdCgKKyAgICAgICAgam9iX2lkLCByYW5kb20ucmFuZGludCgxLCA5OTk5 OTk5KSkKKyAgICApCisgICAgYXNzZXJ0X2VxdWFsKHBfZGV0YWlscy5zdGF0dXNfY29kZSwgMjAw KQorCisgICAgcF9kZXRhaWxzID0gdGVzdGVyLmdldCgnL21pc2MvYmdwcm9jZXNzL3swfS97MX0v ezJ9Lz9fPXszfScuZm9ybWF0KAorICAgICAgICBqb2JfaWQsIDAsIDAsIHJhbmRvbS5yYW5kaW50 KDEsIDk5OTk5OTkpKQorICAgICkKKyAgICBhc3NlcnRfZXF1YWwocF9kZXRhaWxzLnN0YXR1c19j b2RlLCAyMDApCisgICAgcF9kZXRhaWxzX2RhdGEgPSBqc29uLmxvYWRzKHBfZGV0YWlscy5kYXRh LmRlY29kZSgndXRmLTgnKSkKKworICAgIGNudCA9IDAKKyAgICAjIFJldHJpZXZlIHRoZSBpbyBq b2IgcHJvY2VzcyBsb2dzCisgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgb3V0LCBlcnIsIHN0YXR1 cyA9IGdldF9wYXJhbXMocF9kZXRhaWxzX2RhdGEpCisgICAgICAgIGlmIHN0YXR1cyBvciBjbnQg Pj0gNToKKyAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgcF9kZXRhaWxzID0gdGVzdGVyLmdl dCgKKyAgICAgICAgICAgICcvbWlzYy9iZ3Byb2Nlc3MvezB9L3sxfS97Mn0vP189ezN9Jy5mb3Jt YXQoCisgICAgICAgICAgICAgICAgam9iX2lkLCBvdXQsIGVyciwgcmFuZG9tLnJhbmRpbnQoMSwg OTk5OTk5OSkpCisgICAgICAgICkKKyAgICAgICAgYXNzZXJ0X2VxdWFsKHBfZGV0YWlscy5zdGF0 dXNfY29kZSwgMjAwKQorICAgICAgICBwX2RldGFpbHNfZGF0YSA9IGpzb24ubG9hZHMocF9kZXRh aWxzLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQorCisgICAgICAgIGNudCArPSAxCisgICAgICAgIHRp bWUuc2xlZXAoMSkKKworICAgICMgQ2hlY2sgdGhlIGpvYiBpcyBjb21wbGV0ZS4KKyAgICBpb19h Y2sgPSB0ZXN0ZXIucHV0KCcvbWlzYy9iZ3Byb2Nlc3MvezB9Jy5mb3JtYXQoam9iX2lkKSkKKyAg ICBhc3NlcnRfZXF1YWwoaW9fYWNrLnN0YXR1c19jb2RlLCAyMDApCisgICAgaW9fYWNrX3JlcyA9 IGpzb24ubG9hZHMoaW9fYWNrLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQorCisgICAgYXNzZXJ0X2Vx dWFsKGlvX2Fja19yZXNbJ3N1Y2Nlc3MnXSwgMSkKKworICAgIHJldHVybiBpb19maWxlCisKKwor ZGVmIGdldF9wYXJhbXMoZGF0YSk6CisgICAgb3V0ID0gMAorICAgIG91dF9kb25lID0gRmFsc2UK KyAgICBlcnIgPSAwCisgICAgZXJyX2RvbmUgPSBGYWxzZQorICAgIGlmICdvdXQnIGluIGRhdGE6 CisgICAgICAgIG91dCA9IGRhdGFbJ291dCddIGFuZCBkYXRhWydvdXQnXVsncG9zJ10KKworICAg ICAgICBpZiAnZG9uZScgaW4gZGF0YVsnb3V0J106CisgICAgICAgICAgICBvdXRfZG9uZSA9IGRh dGFbJ291dCddWydkb25lJ10KKworICAgIGlmICdlcnInIGluIGRhdGE6CisgICAgICAgIGVyciA9 IGRhdGFbJ2VyciddIGFuZCBkYXRhWydlcnInXVsncG9zJ10KKworICAgICAgICBpZiAnZG9uZScg aW4gZGF0YVsnZXJyJ106CisgICAgICAgICAgICBlcnJfZG9uZSA9IGRhdGFbJ2VyciddWydkb25l J10KKworICAgIHJldHVybiBvdXQsIGVyciwgKG91dF9kb25lIGFuZCBlcnJfZG9uZSkKKworCitk ZWYgc2V0dXBfZXhwb3J0X2RhdGEoc29iamVjdCk6CisgICAgIyBDcmVhdGUgZGIgY29ubmVjdGlv bgorICAgIHNvYmplY3QuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFd WyJkYl9uYW1lIl0KKworICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1h Il1bLTFdCisgICAgc29iamVjdC5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0K KyAgICBzb2JqZWN0LmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAgICBkYl9jb24gPSBk YXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNvYmplY3QsIHV0aWxzLlNFUlZFUl9HUk9V UCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvYmplY3Qu c2VydmVyX2lkLCBzb2JqZWN0LmRiX2lkKQorICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29u bmVjdGVkIl06CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8g ZGF0YWJhc2UgdG8gYWRkIGEgdGFibGUuIikKKworICAgICMgQ3JlYXRlIHNjaGVtYQorICAgIHNv YmplY3Quc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCisgICAgc29iamVjdC5z Y2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgc2NoZW1hX3Jlc3Bv bnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNvYmplY3Quc2VydmVyLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2JqZWN0LmRiX25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNv YmplY3Quc2NoZW1hX25hbWUpCisKKyAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgorICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIGEgdGFi bGUuIikKKworICAgICMgQ3JlYXRlIHRhYmxlCisgICAgc29iamVjdC50YWJsZV9uYW1lID0gInRh YmxlX3RvX2V4cG9ydF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICBzb2JqZWN0 LnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzb2JqZWN0LnNlcnZlciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2JqZWN0LmRi X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c29iamVjdC5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzb2JqZWN0LnRhYmxlX25hbWUpCisKKyAgICAjIENyZWF0ZSBjb2x1bW4K KyAgICBzb2JqZWN0LmNvbHVtbl9uYW1lID0gImNvbHVtbl90b19leHBvcnRfJXMiICUgKHN0cih1 dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgc29iamVjdC5jb2x1bW5faWQgPSBjb2x1bW5zX3V0aWxz LmNyZWF0ZV9jb2x1bW4oc29iamVjdC5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc29iamVjdC5kYl9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvYmplY3Quc2NoZW1hX25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c29iamVjdC50YWJsZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNvYmplY3QuY29sdW1uX25hbWUpCisKKyAgICAjIENyZWF0ZSBjb2x1 bW4KKyAgICBzb2JqZWN0LmNvbHVtbl9uYW1lXzEgPSAiY29sdW1uX3RvX2V4cG9ydF8lcyIgJSAo c3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICBzb2JqZWN0LmNvbHVtbl9pZF8xID0gY29sdW1u c191dGlscy5jcmVhdGVfY29sdW1uKHNvYmplY3Quc2VydmVyLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29iamVjdC5kYl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29iamVj dC5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNvYmplY3QudGFibGVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvYmplY3QuY29sdW1uX25hbWVfMSkKKwor ICAgIHJldHVybiBOb25lCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zdG9yYWdlX21h bmFnZXIvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi90b29scy9zdG9yYWdlX21hbmFnZXIvX19p bml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4xMTg1Mzc1ZGUK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9zdG9yYWdlX21hbmFnZXIvX19p bml0X18ucHkKQEAgLTAsMCArMSw3NSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1p biA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBU aGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQg dW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIiIi QSBibHVlcHJpbnQgbW9kdWxlIGltcGxlbWVudGluZyB0aGUgc3RvcmFnZSBtYW5hZ2VyIGZ1bmN0 aW9uYWxpdHkiIiIKKworaW1wb3J0IHNpbXBsZWpzb24gYXMganNvbgoraW1wb3J0IG9zCisKK2Zy b20gZmxhc2sgaW1wb3J0IHVybF9mb3IsIFJlc3BvbnNlLCByZW5kZXJfdGVtcGxhdGUsIHJlcXVl c3QsIGN1cnJlbnRfYXBwCitmcm9tIGZsYXNrX2JhYmVsZXggaW1wb3J0IGdldHRleHQgYXMgXwor ZnJvbSBmbGFza19zZWN1cml0eSBpbXBvcnQgbG9naW5fcmVxdWlyZWQsIGN1cnJlbnRfdXNlcgor ZnJvbSBwZ2FkbWluLm1pc2MuYmdwcm9jZXNzLnByb2Nlc3NlcyBpbXBvcnQgQmF0Y2hQcm9jZXNz LCBJUHJvY2Vzc0Rlc2MKK2Zyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgUGdBZG1pbk1vZHVsZSwg Z2V0X3N0b3JhZ2VfZGlyZWN0b3J5LCBodG1sLCBcCisgICAgZnNfc2hvcnRfcGF0aCwgZG9jdW1l bnRfZGlyLCBJU19XSU4sIGRvZXNfdXRpbGl0eV9leGlzdAorZnJvbSBwZ2FkbWluLnV0aWxzLmFq YXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgYmFkX3JlcXVlc3QKKworZnJvbSBjb25maWcg aW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCitmcm9tIHBnYWRtaW4ubW9kZWwgaW1wb3J0IFNlcnZl cgorZnJvbSBwZ2FkbWluLnV0aWxzLmNvbnN0YW50cyBpbXBvcnQgTUlNRVRZUEVfQVBQX0pTCisK K01PRFVMRV9OQU1FID0gJ3N0b3JhZ2VfbWFuYWdlcicKKworCitjbGFzcyBTdG9yYWdlTWFuYWdl ck1vZHVsZShQZ0FkbWluTW9kdWxlKToKKyAgICAiIiIKKyAgICBjbGFzcyBTdG9yYWdlTWFuYWdl ck1vZHVsZShQZ0FkbWluTW9kdWxlKQorCisgICAgICAgIEEgbW9kdWxlIGNsYXNzIGZvciBtYW5p cHVsYXRpbmcgZmlsZSBvcGVyYXRpb24gd2hpY2ggaXMgZGVyaXZlZCBmcm9tCisgICAgICAgIFBn QWRtaW5Nb2R1bGUuCisgICAgIiIiCisKKyAgICBMQUJFTCA9IF8oJ1N0b3JhZ2UgTWFuYWdlcicp CisKKyAgICBkZWYgZ2V0X293bl9qYXZhc2NyaXB0cyhzZWxmKToKKyAgICAgICAgIiIiIgorICAg ICAgICBSZXR1cm5zOgorICAgICAgICAgICAgbGlzdDoganMgZmlsZXMgdXNlZCBieSB0aGlzIG1v ZHVsZQorICAgICAgICAiIiIKKyAgICAgICAgc2NyaXB0cyA9IGxpc3QoKQorICAgICAgICBmb3Ig bmFtZSwgc2NyaXB0IGluIFsKKyAgICAgICAgICAgIFsncGdhZG1pbi50b29scy5zdG9yYWdlX21h bmFnZXInLCAnanMvc3RvcmFnZV9tYW5hZ2VyJ10KKyAgICAgICAgXToKKyAgICAgICAgICAgIHNj cmlwdHMuYXBwZW5kKHsKKyAgICAgICAgICAgICAgICAnbmFtZSc6IG5hbWUsCisgICAgICAgICAg ICAgICAgJ3BhdGgnOiB1cmxfZm9yKCdzdG9yYWdlX21hbmFnZXIuaW5kZXgnKSArIHNjcmlwdCwK KyAgICAgICAgICAgICAgICAnd2hlbic6IE5vbmUKKyAgICAgICAgICAgIH0pCisKKyAgICAgICAg cmV0dXJuIHNjcmlwdHMKKworCitibHVlcHJpbnQgPSBTdG9yYWdlTWFuYWdlck1vZHVsZShNT0RV TEVfTkFNRSwgX19uYW1lX18pCisKKworQGJsdWVwcmludC5yb3V0ZSgiLyIpCitAbG9naW5fcmVx dWlyZWQKK2RlZiBpbmRleCgpOgorICAgIHJldHVybiBiYWRfcmVxdWVzdChlcnJvcm1zZz1fKCJU aGlzIFVSTCBjYW5ub3QgYmUgY2FsbGVkIGRpcmVjdGx5LiIpKQorCisKK0BibHVlcHJpbnQucm91 dGUoIi9qcy9zdG9yYWdlX21hbmFnZXIuanMiKQorQGxvZ2luX3JlcXVpcmVkCitkZWYgc2NyaXB0 KCk6CisgICAgIiIicmVuZGVyIHRoZSBpbXBvcnQvZXhwb3J0IGphdmFzY3JpcHQgZmlsZSIiIgor ICAgIHJldHVybiBSZXNwb25zZSgKKyAgICAgICAgcmVzcG9uc2U9cmVuZGVyX3RlbXBsYXRlKCJz dG9yYWdlX21hbmFnZXIvanMvc3RvcmFnZV9tYW5hZ2VyLmpzIiwgXz1fKSwKKyAgICAgICAgc3Rh dHVzPTIwMCwKKyAgICAgICAgbWltZXR5cGU9TUlNRVRZUEVfQVBQX0pTCisgICAgKQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3RvcmFnZV9tYW5hZ2VyL3N0YXRpYy9qcy9zdG9yYWdl X21hbmFnZXIuanMgYi93ZWIvcGdhZG1pbi90b29scy9zdG9yYWdlX21hbmFnZXIvc3RhdGljL2pz L3N0b3JhZ2VfbWFuYWdlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAu LmM1MjAxOTA2NwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3N0b3JhZ2Vf bWFuYWdlci9zdGF0aWMvanMvc3RvcmFnZV9tYW5hZ2VyLmpzCkBAIC0wLDAgKzEsOTMgQEAKKy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8KKy8vCisvLyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisvLworLy8gQ29weXJpZ2h0 IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorLy8gVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisvLworLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8KK2ltcG9ydCB7IHNldF9sYXN0X3RyYXZlcnNlZF9kaXIsIGdldFRyYW5zSWQgfSBmcm9tICcu Li8uLi8uLi8uLi9taXNjL2ZpbGVfbWFuYWdlci9zdGF0aWMvanMvaGVscGVycyc7CisKK2RlZmlu ZShbCisgICdzb3VyY2VzL2dldHRleHQnLCAnc291cmNlcy91cmxfZm9yJywgJ2pxdWVyeScsICd1 bmRlcnNjb3JlJywgJ3BnYWRtaW4uYWxlcnRpZnlqcycsCisgICdzb3VyY2VzL3BnYWRtaW4nLCAn cGdhZG1pbi5icm93c2VyJywgJ3NvdXJjZXMvY3NyZicsICdwZ2FkbWluLmZpbGVfbWFuYWdlcics CitdLCBmdW5jdGlvbiAoCisgIGdldHRleHQsIHVybF9mb3IsICQsIF8sIGFsZXJ0aWZ5LCBwZ0Fk bWluLCBwZ0Jyb3dzZXIsIGNzcmZUb2tlbgorKSB7CisKKyAgcGdBZG1pbiA9IHBnQWRtaW4gfHwg d2luZG93LnBnQWRtaW4gfHwge307CisgIHZhciBpc1NlcnZlck1vZGUgPSAoZnVuY3Rpb24oKSB7 IHJldHVybiBwZ0FkbWluLnNlcnZlcl9tb2RlID09ICdUcnVlJzsgfSkoKTsKKworICB2YXIgcGdU b29scyA9IHBnQWRtaW4uVG9vbHMgPSBwZ0FkbWluLlRvb2xzIHx8IHt9OworCisgIGlmKCFpc1Nl cnZlck1vZGUpIHsKKyAgICByZXR1cm47CisgIH0KKworICAvLyBSZXR1cm4gYmFjaywgdGhpcyBo YXMgYmVlbiBjYWxsZWQgbW9yZSB0aGFuIG9uY2UKKyAgaWYgKHBnQWRtaW4uVG9vbHMuc3RvcmFn ZV9tYW5hZ2VyKQorICAgIHJldHVybiBwZ0FkbWluLlRvb2xzLnN0b3JhZ2VfbWFuYWdlcjsKKwor ICBwZ1Rvb2xzLnN0b3JhZ2VfbWFuYWdlciA9IHsKKyAgICBpbml0OiBmdW5jdGlvbiAoKSB7Cisg ICAgICAvLyBXZSBkbyBub3Qgd2FudCB0byBpbml0aWFsaXplIHRoZSBtb2R1bGUgbXVsdGlwbGUg dGltZXMuCisgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkKKyAgICAgICAgcmV0dXJuOworCisg ICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAgIGNzcmZUb2tlbi5zZXRQR0NTUkZU b2tlbihwZ0FkbWluLmNzcmZfdG9rZW5faGVhZGVyLCBwZ0FkbWluLmNzcmZfdG9rZW4pOworCisg ICAgICB2YXIgc3RvcmFnZV9tYW5hZ2VyID0gdGhpcy5jYWxsYmFja19zdG9yYWdlX21hbmFnZXIu YmluZCh0aGlzKTsKKworICAgICAgcGdCcm93c2VyLkV2ZW50cy5vbigKKyAgICAgICAgJ3BnYWRt aW46dG9vbHM6c3RvcmFnZV9tYW5hZ2VyJywgc3RvcmFnZV9tYW5hZ2VyCisgICAgICApOworCisg ICAgICAvLyBEZWZpbmUgdGhlIG5vZGVzIG9uIHdoaWNoIHRoZSBtZW51cyB0byBiZSBhcHBlYXIK KyAgICAgIHZhciBtZW51cyA9IFt7CisgICAgICAgIG5hbWU6ICdzdG9yYWdlX21hbmFnZXInLAor ICAgICAgICBtb2R1bGU6IHRoaXMsCisgICAgICAgIGFwcGxpZXM6IFsndG9vbHMnXSwKKyAgICAg ICAgY2FsbGJhY2s6ICdjYWxsYmFja19zdG9yYWdlX21hbmFnZXInLAorICAgICAgICBwcmlvcml0 eTogMiwKKyAgICAgICAgbGFiZWw6IGdldHRleHQoJ1N0b3JhZ2UgTWFuYWdlcicpLAorICAgICAg ICBlbmFibGU6IHRydWUsCisgICAgICB9XTsKKworICAgICAgcGdCcm93c2VyLmFkZF9tZW51cyht ZW51cyk7CisgICAgfSwKKworICAgIC8qCisgICAgICBPcGVuIHRoZSBkaWFsb2cgZm9yIHRoZSBz dG9yYWdlIGZ1bmN0aW9uYWxpdHkKKyAgICAqLworICAgIGNhbGxiYWNrX3N0b3JhZ2VfbWFuYWdl cjogZnVuY3Rpb24gKHBhdGgpIHsKKworICAgICAgdmFyIHBhcmFtcyA9IHsKKyAgICAgICAgc3Vw cG9ydGVkX3R5cGVzOiBbJ3NxbCcsICdjc3YnLCAnKiddLAorICAgICAgICBkaWFsb2dfdHlwZTog J3N0b3JhZ2VfZGlhbG9nJywKKyAgICAgICAgZGlhbG9nX3RpdGxlOiAnU3RvcmFnZSBNYW5hZ2Vy JywKKyAgICAgICAgYnRuX3ByaW1hcnk6IHVuZGVmaW5lZCwKKyAgICAgIH07CisKKyAgICAgIGlm ICghXy5pc1VuZGVmaW5lZChwYXRoKSAmJiAhXy5pc051bGwocGF0aCkgJiYgIV8uaXNFbXB0eShw YXRoKSkgeworCisgICAgICAgIHZhciB0cmFuc0lkID0gZ2V0VHJhbnNJZChKU09OLnN0cmluZ2lm eShwYXJhbXMpKTsKKyAgICAgICAgdmFyIHRfcmVzOworICAgICAgICBpZiAodHJhbnNJZC5yZWFk eVN0YXRlID09IDQpIHsKKyAgICAgICAgICB0X3JlcyA9IEpTT04ucGFyc2UodHJhbnNJZC5yZXNw b25zZVRleHQpOworICAgICAgICB9CisgICAgICAgIHZhciB0cmFuc19pZCA9IF8uaXNVbmRlZmlu ZWQodF9yZXMpID8gMCA6IHRfcmVzLmRhdGEuZmlsZVRyYW5zSWQ7CisKKyAgICAgICAgc2V0X2xh c3RfdHJhdmVyc2VkX2Rpcih7J3BhdGgnOiBwYXRofSwgdHJhbnNfaWQpOworICAgICAgICBwZ0Fk bWluLkZpbGVNYW5hZ2VyLmluaXQoKTsKKyAgICAgICAgcGdBZG1pbi5GaWxlTWFuYWdlci5zaG93 X2RpYWxvZyhwYXJhbXMpOworICAgICAgfQorICAgICAgZWxzZSB7CisgICAgICAgIHBnQWRtaW4u RmlsZU1hbmFnZXIuaW5pdCgpOworICAgICAgICBwZ0FkbWluLkZpbGVNYW5hZ2VyLnNob3dfZGlh bG9nKHBhcmFtcyk7CisgICAgICB9CisgICAgfSwKKyAgfTsKKworICByZXR1cm4gcGdBZG1pbi5U b29scy5zdG9yYWdlX21hbmFnZXI7Cit9KTsKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL2ph dmFzY3JpcHQvZmlsZV9tYW5hZ2VyL2ZpbGVfbWFuYWdlcl9zcGVjcy5qcyBiL3dlYi9yZWdyZXNz aW9uL2phdmFzY3JpcHQvZmlsZV9tYW5hZ2VyL2ZpbGVfbWFuYWdlcl9zcGVjcy5qcwppbmRleCAw NDg1ZWUyY2IuLjgzY2IwZjM5NyAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlw dC9maWxlX21hbmFnZXIvZmlsZV9tYW5hZ2VyX3NwZWNzLmpzCisrKyBiL3dlYi9yZWdyZXNzaW9u L2phdmFzY3JpcHQvZmlsZV9tYW5hZ2VyL2ZpbGVfbWFuYWdlcl9zcGVjcy5qcwpAQCAtMTAwLDQg KzEwMCwyMiBAQCBkZXNjcmliZSgnZmlsZVNlbGVjdERpYWxvZycsIGZ1bmN0aW9uICgpIHsKICAg ICAgIGV4cGVjdChBbGVydGlmeS5jcmVhdGVNb2RlRGxnKS50b0hhdmVCZWVuQ2FsbGVkKCk7CiAg ICAgfSk7CiAgIH0pOworCisgIGRlc2NyaWJlKCdXaGVuIGRpYWxvZyBpcyBjYWxsZWQgZm9yIHN0 b3JhZ2UgZmlsZScsICgpID0+IHsKKyAgICBpdCgnU3RvcmFnZSBmaWxlIGRpYWxvZycsIGZ1bmN0 aW9uKCkgeworICAgICAgcGFyYW1zID0geworICAgICAgICAnZGlhbG9nX3RpdGxlJzogJ1N0b3Jh Z2UgTWFuYWdlcicsCisgICAgICAgICdkaWFsb2dfdHlwZSc6ICdzdG9yYWdlX2RpYWxvZycsCisg ICAgICB9OworCisgICAgICBzcHlPbihBbGVydGlmeSwgJ2ZpbGVTdG9yYWdlRGxnJykuYW5kLmNh bGxGYWtlKGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLnJlc2l6ZVRvID0gZnVuY3Rpb24oKSB7 fTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICB9KTsKKworICAgICAgcGdBZG1pbi5GaWxl TWFuYWdlci5zaG93X2RpYWxvZyhwYXJhbXMpOworCisgICAgICBleHBlY3QoQWxlcnRpZnkuZmls ZVN0b3JhZ2VEbGcpLnRvSGF2ZUJlZW5DYWxsZWQoKTsKKyAgICB9KTsKKyAgfSk7CiB9KTsKZGlm ZiAtLWdpdCBhL3dlYi93ZWJwYWNrLmNvbmZpZy5qcyBiL3dlYi93ZWJwYWNrLmNvbmZpZy5qcwpp bmRleCBhNTA1ODg1NTYuLmM5ZGRmODBjMiAxMDA2NDQKLS0tIGEvd2ViL3dlYnBhY2suY29uZmln LmpzCisrKyBiL3dlYi93ZWJwYWNrLmNvbmZpZy5qcwpAQCAtNTAwLDYgKzUwMCw3IEBAIG1vZHVs ZS5leHBvcnRzID0gW3sKICAgICAgICAgJyxwZ2FkbWluLnRvb2xzLmRlYnVnZ2VyLmRpcmVjdCcg KwogICAgICAgICAnLHBnYWRtaW4ubm9kZS5wZ2Ffam9iJyArCiAgICAgICAgICcscGdhZG1pbi50 b29scy5zY2hlbWFfZGlmZicgKworICAgICAgICAnLHBnYWRtaW4udG9vbHMuc3RvcmFnZV9tYW5h Z2VyJyArCiAgICAgICAgICcscGdhZG1pbi50b29scy5zZWFyY2hfb2JqZWN0cycsCiAgICAgICB9 LAogICAgIH0sIHsKZGlmZiAtLWdpdCBhL3dlYi93ZWJwYWNrLnNoaW0uanMgYi93ZWIvd2VicGFj ay5zaGltLmpzCmluZGV4IGRhMTliNjg5Ny4uMTU1ZmI5ZWFmIDEwMDY0NAotLS0gYS93ZWIvd2Vi cGFjay5zaGltLmpzCisrKyBiL3dlYi93ZWJwYWNrLnNoaW0uanMKQEAgLTI3NCw2ICsyNzQsNyBA QCB2YXIgd2VicGFja1NoaW1Db25maWcgPSB7CiAgICAgJ3BnYWRtaW4udG9vbHMuc2NoZW1hX2Rp ZmYnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL3N0 YXRpYy9qcy9zY2hlbWFfZGlmZicpLAogICAgICdwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmX3Vp JzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi9zdGF0 aWMvanMvc2NoZW1hX2RpZmZfdWknKSwKICAgICAncGdhZG1pbi50b29scy5zZWFyY2hfb2JqZWN0 cyc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMv c3RhdGljL2pzL3NlYXJjaF9vYmplY3RzJyksCisgICAgJ3BnYWRtaW4udG9vbHMuc3RvcmFnZV9t YW5hZ2VyJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi90b29scy9zdG9yYWdlX21h bmFnZXIvc3RhdGljL2pzL3N0b3JhZ2VfbWFuYWdlcicpLAogICAgICdwZ2FkbWluLnNlYXJjaF9v YmplY3RzJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi90b29scy9zZWFyY2hfb2Jq ZWN0cy9zdGF0aWMvanMnKSwKICAgICAncGdhZG1pbi50b29scy51c2VyX21hbmFnZW1lbnQnOiBw YXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL3Rvb2xzL3VzZXJfbWFuYWdlbWVudC9zdGF0 aWMvanMvdXNlcl9tYW5hZ2VtZW50JyksCiAgICAgJ3BnYWRtaW4udXNlcl9tYW5hZ2VtZW50LmN1 cnJlbnRfdXNlcic6ICcvdXNlcl9tYW5hZ2VtZW50L2N1cnJlbnRfdXNlcicsCg== --00000000000036dfa605b21c49cc--