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 1mkNGY-000634-JG for pgadmin-hackers@arkaria.postgresql.org; Tue, 09 Nov 2021 09:18:07 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mkNGX-0003Ht-41 for pgadmin-hackers@arkaria.postgresql.org; Tue, 09 Nov 2021 09:18:05 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mkNGV-0003Hk-Vu for pgadmin-hackers@lists.postgresql.org; Tue, 09 Nov 2021 09:18:04 +0000 Received: from mail-vk1-xa32.google.com ([2607:f8b0:4864:20::a32]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1mkNGS-00008c-O4 for pgadmin-hackers@postgresql.org; Tue, 09 Nov 2021 09:18:02 +0000 Received: by mail-vk1-xa32.google.com with SMTP id bc10so9659978vkb.1 for ; Tue, 09 Nov 2021 01:18:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; h=mime-version:from:date:message-id:subject:to; bh=lWoz6JFWzi2G/DYDyem+9b1M3OZm4032RZKiLUZ4UKM=; b=ea0SmVjNGFKL2y5pc6b0kEhjbu1iAApNFltUaRse8nNsZqW6cJcbz/XTQuHRwCpxz3 HhY3I0uSyGjztJCLnlRFmuSLJTcGC6FCdD2gzY0XV0Au41kWABOlUM/Z9kV4xE3RqRjD He2xmxUOz6vUGF1BVetSKc8dDC3SS15Yk2navzR7Tim+iCZ2KyyV2k0GIA4Y2NVxC7nC nQ1SMxEs3BQV+XFeKvLlpxVsGZ0cJd9VVjIRfzA4Ro1Mm0+i9lUk3BxnFHNABnBN7Siq 0yotUdLSdfSxyv8wsGjN5JdiwNrGHbTuFLedxDTvzxI0uc24Gsm5/Eu2JX0ZTQM8eWTT byGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=lWoz6JFWzi2G/DYDyem+9b1M3OZm4032RZKiLUZ4UKM=; b=PYwGWJG96M5F0zv6+mDQBFrKYfPWQeNPhCtrifoyJVnvR5wBxLHuCxd4XzC8JLIgq5 zOTvgEjgAfqqo6Fyi3lMN2UmrFBbVqvc1cWaAnB95YpNlKROl1mXUQGM6+pZFSmUjlEL kCpqdXn/l83m1VKhG/Vc/rJy17hTBvaqv1m/2JXx5VdikjpCZtPPwufjVxLhfEWWoRed CDOa/yDmV3/BsnJk/r9mImyYc/zfX9VKnt39jq9xNkPVHzYQK54ve1SW1zjyjbbVc6Dj TnMhSj4xAeZDs9s/nrMhBYAanewt7jFVheNK41wYEM16TkgbSDrQeVHkN41rEzwZmPCM OrxQ== X-Gm-Message-State: AOAM532Nwis6URRjIEDk9j/FZ3D6qOkgL84Ie+WkCQcDwGFoSyqpLkBN LQHfsld+1To7TdyqbED5CluL7FYDTFPXyfE1ESeoacFwGhDYIPNK3pNweuhOMQX8GvtQnkVPOcc VIqqJj3Jsm0JLOc7njOItxOvkEg8wJT/0imhT/vojslcM3q7/kN9W3jtOipvNdm/yplu5EIs/ap TOo7mCFL/rl7oNtSOxPQ88PVWEYIpM8KalTkbs5uCTP2jhDEshzhgSrVPS3d7UsxA= X-Google-Smtp-Source: ABdhPJzl1C7KyJVUKMWWiLyCxMlx7BLrgZMbPHldaKzei5hr0VElDCg/PsFc4N6B9yfxrYtupxJQIV2d4wds2R+NB8E= X-Received: by 2002:a05:6122:78c:: with SMTP id k12mr8464070vkr.22.1636449479521; Tue, 09 Nov 2021 01:17:59 -0800 (PST) MIME-Version: 1.0 From: Yogesh Mahajan Date: Tue, 9 Nov 2021 14:47:23 +0530 Message-ID: Subject: Feature Test Fix - React porting To: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000ebe6ad05d0579554" 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: Archived-At: Precedence: bulk --000000000000ebe6ad05d0579554 Content-Type: multipart/alternative; boundary="000000000000ebe6ac05d0579552" --000000000000ebe6ac05d0579552 Content-Type: text/plain; charset="UTF-8" Hi, Please find the attached patch which fixes feature tests broken due to react porting changes. Thanks, Yogesh Mahajan EnterpriseDB --000000000000ebe6ac05d0579552 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Please= find the attached patch which fixes feature tests broken due to react port= ing changes.

Thanks,
Yogesh Mahajan
Ente= rpriseDB
--000000000000ebe6ac05d0579552-- --000000000000ebe6ad05d0579554 Content-Type: application/octet-stream; name="Feature_Test_Fix_React_Porting_v1.patch" Content-Disposition: attachment; filename="Feature_Test_Fix_React_Porting_v1.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kvrp4wsp0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvYnJvd3Nlcl90b29sX2Jhcl90 ZXN0LnB5IGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9icm93c2VyX3Rvb2xfYmFyX3Rlc3Qu cHkKaW5kZXggYTQ1NDRkYWYxLi44OGFkN2I4ODkgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Zl YXR1cmVfdGVzdHMvYnJvd3Nlcl90b29sX2Jhcl90ZXN0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Zl YXR1cmVfdGVzdHMvYnJvd3Nlcl90b29sX2Jhcl90ZXN0LnB5CkBAIC00Nyw3ICs0Nyw3IEBAIGNs YXNzIEJyb3dzZXJUb29sQmFyRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAg ICAgICAgZmlsZT1zeXMuc3RkZXJyLCBlbmQ9IiIpCiAgICAgICAgIHNlbGYudGVzdF92aWV3X2Rh dGFfdG9vbF9idXR0b24oKQogICAgICAgICBwcmludCgiT0suIiwgZmlsZT1zeXMuc3RkZXJyKQot ICAgICAgICAjCisKICAgICAgICAgIyBDaGVjayBmb3IgZmlsdGVyZWQgcm93cyBidXR0b24KICAg ICAgICAgcHJpbnQoIlxuRmlsdGVyZWQgUm93cyBUb29sQmFyIEJ1dHRvbiAiLAogICAgICAgICAg ICAgICBmaWxlPXN5cy5zdGRlcnIsIGVuZD0iIikKQEAgLTYwLDI4ICs2MCwyNCBAQCBjbGFzcyBC cm93c2VyVG9vbEJhckZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdF90YWJsZV9uYW1lKQogCiAgICAgZGVmIHRlc3Rf cXVlcnlfdG9vbF9idXR0b24oc2VsZik6Ci0gICAgICAgIHNlbGYucGFnZS5leHBhbmRfZGF0YWJh c2Vfbm9kZSgKLSAgICAgICAgICAgIHNlbGYuc2VydmVyWyduYW1lJ10sCi0gICAgICAgICAgICBz ZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwgc2VsZi50ZXN0X2RiKQorICAgICAgICBzZWxmLnBh Z2UuZXhwYW5kX2RhdGFiYXNlX25vZGUoIlNlcnZlcnMiLCBzZWxmLnNlcnZlclsnbmFtZSddLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bh c3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRl c3RfZGIpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLnBhZ2UucmV0cnlfY2xpY2soCiAg ICAgICAgICAgICAoQnkuQ1NTX1NFTEVDVE9SLAogICAgICAgICAgICAgIEJyb3dzZXJUb29sQmFy TG9jYXRvcnMub3Blbl9xdWVyeV90b29sX2J1dHRvbl9jc3MpLAogICAgICAgICAgICAgKEJ5LkNT U19TRUxFQ1RPUiwgQnJvd3NlclRvb2xCYXJMb2NhdG9ycy5xdWVyeV90b29sX3BhbmVsX2Nzcykp LAogICAgICAgICAgICAgJ1F1ZXJ5IHRvb2wgZGlkIG5vdCBvcGVuIG9uIGNsaWNraW5nIFF1ZXJ5 IFRvb2wgYnV0dG9uLicpCisgICAgICAgIHNlbGYucGFnZS5jbG9zZV9xdWVyeV90b29sKHByb21w dD1GYWxzZSkKIAogICAgIGRlZiB0ZXN0X3ZpZXdfZGF0YV90b29sX2J1dHRvbihzZWxmKToKLSAg ICAgICAgc2VsZi5wYWdlLmNsaWNrX2FfdHJlZV9ub2RlKAotICAgICAgICAgICAgc2VsZi50ZXN0 X2RiLAotICAgICAgICAgICAgVHJlZUFyZWFMb2NhdG9ycy5zdWJfbm9kZXNfb2ZfZGF0YWJhc2Vz X25vZGUoc2VsZi5zZXJ2ZXJbJ25hbWUnXSkpCi0gICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Bl bl9zY2hlbWFfbm9kZSgKLSAgICAgICAgICAgIHNlbGYuc2VydmVyWyduYW1lJ10sIHNlbGYuc2Vy dmVyWydkYl9wYXNzd29yZCddLAotICAgICAgICAgICAgc2VsZi50ZXN0X2RiLCAncHVibGljJykK LSAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RhYmxlc19ub2RlKAotICAgICAgICAgICAg c2VsZi5zZXJ2ZXJbJ25hbWUnXSwgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCi0gICAgICAg ICAgICBzZWxmLnRlc3RfZGIsICdwdWJsaWMnKQotICAgICAgICBzZWxmLnBhZ2UuY2xpY2tfYV90 cmVlX25vZGUoCi0gICAgICAgICAgICBzZWxmLnRlc3RfdGFibGVfbmFtZSwKLSAgICAgICAgICAg IFRyZWVBcmVhTG9jYXRvcnMuc3ViX25vZGVzX29mX3RhYmxlc19ub2RlKQorICAgICAgICBzZWxm LnBhZ2UuZXhwYW5kX3RhYmxlc19ub2RlKCJTZXJ2ZXJzIiwgc2VsZi5zZXJ2ZXJbJ25hbWUnXSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFz c3dvcmQnXSwgc2VsZi50ZXN0X2RiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJwdWJsaWMiKQorCisgICAgICAgIHRhYmxlX25vZGUgPSBzZWxmLnBhZ2UuY2hlY2tfaWZf ZWxlbWVudF9leGlzdHNfd2l0aF9zY3JvbGwoCisgICAgICAgICAgICBUcmVlQXJlYUxvY2F0b3Jz LnRhYmxlX25vZGUoc2VsZi50ZXN0X3RhYmxlX25hbWUpKQorICAgICAgICB0YWJsZV9ub2RlLmNs aWNrKCkKIAogICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5wYWdlLnJldHJ5X2NsaWNrKAog ICAgICAgICAgICAgKEJ5LkNTU19TRUxFQ1RPUiwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Zl YXR1cmVfdGVzdHMvY29weV9zZWxlY3RlZF9xdWVyeV9yZXN1bHRzX2ZlYXR1cmVfdGVzdC5weSBi L3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvY29weV9zZWxlY3RlZF9xdWVyeV9yZXN1bHRzX2Zl YXR1cmVfdGVzdC5weQppbmRleCA4ZTJjYWE1ZGQuLjYxOWI5YWYzYSAxMDA2NDQKLS0tIGEvd2Vi L3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9jb3B5X3NlbGVjdGVkX3F1ZXJ5X3Jlc3VsdHNfZmVhdHVy ZV90ZXN0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvY29weV9zZWxlY3RlZF9x dWVyeV9yZXN1bHRzX2ZlYXR1cmVfdGVzdC5weQpAQCAtOCw2ICs4LDcgQEAKICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCiAKIGltcG9ydCByYW5kb20KK2ltcG9ydCB0aW1lCiAKIGZyb20gc2VsZW5pdW0ud2Vi ZHJpdmVyIGltcG9ydCBBY3Rpb25DaGFpbnMKIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1v bi5rZXlzIGltcG9ydCBLZXlzCkBAIC0zNyw5ICszOCw5IEBAIGNsYXNzIENvcHlTZWxlY3RlZFF1 ZXJ5UmVzdWx0c0ZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgICAgICBzZWxm LnNlcnZlciwgc2VsZi50ZXN0X2RiLCBzZWxmLnRlc3RfdGFibGVfbmFtZSkKIAogICAgIGRlZiBy dW5UZXN0KHNlbGYpOgotICAgICAgICBzZWxmLnBhZ2UuZXhwYW5kX2RhdGFiYXNlX25vZGUoCi0g ICAgICAgICAgICBzZWxmLnNlcnZlclsnbmFtZSddLAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXJb J2RiX3Bhc3N3b3JkJ10sIHNlbGYudGVzdF9kYikKKyAgICAgICAgc2VsZi5wYWdlLmV4cGFuZF9k YXRhYmFzZV9ub2RlKCJTZXJ2ZXJzIiwgc2VsZi5zZXJ2ZXJbJ25hbWUnXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0X2RiKQogICAg ICAgICBzZWxmLnBhZ2Uub3Blbl9xdWVyeV90b29sKCkKIAogICAgICAgICBzZWxmLnBhZ2UuZmls bF9jb2RlbWlycm9yX2FyZWFfd2l0aCgKQEAgLTYwLDcgKzYxLDcgQEAgY2xhc3MgQ29weVNlbGVj dGVkUXVlcnlSZXN1bHRzRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKIAogICAgIGRlZiBw YXN0ZV92YWx1ZXNfdG9fc2NyYXRjaF9wYWQoc2VsZik6CiAgICAgICAgIHNlbGYucGFnZS5kcml2 ZXIuc3dpdGNoX3RvLmRlZmF1bHRfY29udGVudCgpCi0gICAgICAgIHNlbGYucGFnZS5kcml2ZXIu c3dpdGNoX3RvX2ZyYW1lKAorICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLnN3aXRjaF90by5mcmFt ZSgKICAgICAgICAgICAgIHNlbGYucGFnZS5kcml2ZXIuZmluZF9lbGVtZW50X2J5X3RhZ19uYW1l KCJpZnJhbWUiKSkKICAgICAgICAgc2NyYXRjaF9wYWRfZWxlID0gc2VsZi5wYWdlLmZpbmRfYnlf Y3NzX3NlbGVjdG9yKAogICAgICAgICAgICAgUXVlcnlUb29sTG9jYXRvcnMuc2NyYXRjaF9wYWRf Y3NzKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9maWxlX21hbmFnZXJf dGVzdC5weSBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvZmlsZV9tYW5hZ2VyX3Rlc3QucHkK aW5kZXggYWM5ZjI1YzlmLi41ODU2MTQ0OWIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2ZlYXR1 cmVfdGVzdHMvZmlsZV9tYW5hZ2VyX3Rlc3QucHkKKysrIGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90 ZXN0cy9maWxlX21hbmFnZXJfdGVzdC5weQpAQCAtNjcsOSArNjcsOSBAQCBjbGFzcyBDaGVja0Zp bGVNYW5hZ2VyRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgcHJpbnQoIk9L LiIsIGZpbGU9c3lzLnN0ZGVycikKIAogICAgIGRlZiBfbmF2aWdhdGVfdG9fcXVlcnlfdG9vbChz ZWxmKToKLSAgICAgICAgc2VsZi5wYWdlLmV4cGFuZF9kYXRhYmFzZV9ub2RlKAotICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJbJ25hbWUnXSwKLSAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNz d29yZCddLCBzZWxmLnRlc3RfZGIpCisgICAgICAgIHNlbGYucGFnZS5leHBhbmRfZGF0YWJhc2Vf bm9kZSgiU2VydmVyIiwgc2VsZi5zZXJ2ZXJbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0X2RiKQogICAgICAgICBzZWxm LnBhZ2Uub3Blbl9xdWVyeV90b29sKCkKIAogICAgIGRlZiBfY3JlYXRlX25ld19maWxlKHNlbGYp OgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9rZXlib2FyZF9zaG9ydGN1 dF90ZXN0LnB5IGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9rZXlib2FyZF9zaG9ydGN1dF90 ZXN0LnB5CmluZGV4IDA2OTY1ZDdhZi4uZGU5OTgxOGExIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9mZWF0dXJlX3Rlc3RzL2tleWJvYXJkX3Nob3J0Y3V0X3Rlc3QucHkKKysrIGIvd2ViL3BnYWRt aW4vZmVhdHVyZV90ZXN0cy9rZXlib2FyZF9zaG9ydGN1dF90ZXN0LnB5CkBAIC0xMzMsNyArMTMz LDcgQEAgY2xhc3MgS2V5Ym9hcmRTaG9ydGN1dEZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6 CiAgICAgICAgICAgICAgICAgImFuZCBjb250YWlucyguLCciICsgbG9jYXRvciArICInKV0iCiAg ICAgICAgICAgICApCiAKLSAgICAgICAgICAgIGZpZWxkID0gZmlsZV9tZW51LmZpbmRfZWxlbWVu dF9ieV9uYW1lKCdrZXknKQorICAgICAgICAgICAgZmllbGQgPSBmaWxlX21lbnUuZmluZF9lbGVt ZW50KEJ5Lk5BTUUsICdrZXknKQogICAgICAgICAgICAgZmllbGQuY2xpY2soKQogICAgICAgICAg ICAgZmllbGQuc2VuZF9rZXlzKGtleSkKIApAQCAtMTQxLDUgKzE0MSw1IEBAIGNsYXNzIEtleWJv YXJkU2hvcnRjdXRGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICBzZWxmLnBh Z2UuY2xpY2tfbW9kYWwoJ1NhdmUnKQogCiAgICAgICAgIHNlbGYucGFnZS53YWl0X2Zvcl9lbGVt ZW50X3RvX2Rpc2FwcGVhcigKLSAgICAgICAgICAgIGxhbWJkYSBkcml2ZXI6IGRyaXZlci5maW5k X2VsZW1lbnRfYnlfY3NzX3NlbGVjdG9yKCIuYWpzLW1vZGFsIikKKyAgICAgICAgICAgIGxhbWJk YSBkcml2ZXI6IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuQ1NTX1NFTEVDVE9SLCAiLmFqcy1tb2Rh bCIpCiAgICAgICAgICkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcGdf ZGF0YXR5cGVfdmFsaWRhdGlvbl90ZXN0LnB5IGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9w Z19kYXRhdHlwZV92YWxpZGF0aW9uX3Rlc3QucHkKaW5kZXggZGEwZThiNjgzLi5jYmM0M2ExZTAg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcGdfZGF0YXR5cGVfdmFsaWRh dGlvbl90ZXN0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcGdfZGF0YXR5cGVf dmFsaWRhdGlvbl90ZXN0LnB5CkBAIC0xNTQsNyArMTU0LDkgQEAgY2xhc3MgUEdEYXRheXBlRmVh dHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICBkZWYgcnVuVGVzdChzZWxmKToKICAgICAg ICAgc2VsZi5wYWdlLndhaXRfZm9yX3NwaW5uZXJfdG9fZGlzYXBwZWFyKCkKICAgICAgICAgc2Vs Zi5wYWdlLmFkZF9zZXJ2ZXIoc2VsZi5zZXJ2ZXIpCi0gICAgICAgIHNlbGYuX3NjaGVtYV9ub2Rl X2V4cGFuZGFibGUoKQorICAgICAgICBzZWxmLnBhZ2UuZXhwYW5kX2RhdGFiYXNlX25vZGUoIlNl cnZlciIsIHNlbGYuc2VydmVyWyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdF9kYikKIAogICAgICAgICAjIENoZWNrIGRh dGEgdHlwZXMKICAgICAgICAgc2VsZi5fY2hlY2tfZGF0YXR5cGUoKQpAQCAtMTYzLDE3ICsxNjUs MTUgQEAgY2xhc3MgUEdEYXRheXBlRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICBk ZWYgYWZ0ZXIoc2VsZik6CiAgICAgICAgIHNlbGYucGFnZS5yZW1vdmVfc2VydmVyKHNlbGYuc2Vy dmVyKQogCisgICAgIyBUT0RPIC0gVG8gYmUgcmVtb3ZlCiAgICAgZGVmIF9zY2hlbWFfbm9kZV9l eHBhbmRhYmxlKHNlbGYpOgotICAgICAgICBzZWxmLnBhZ2UuZXhwYW5kX2RhdGFiYXNlX25vZGUo Ci0gICAgICAgICAgICBzZWxmLnNlcnZlclsnbmFtZSddLAotICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJbJ2RiX3Bhc3N3b3JkJ10sIHNlbGYudGVzdF9kYikKKyAgICAgICAgc2VsZi5wYWdlLmV4cGFu ZF9kYXRhYmFzZV9ub2RlKCJTZXJ2ZXIiLCBzZWxmLnNlcnZlclsnbmFtZSddLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3RfZGIpCiAK ICAgICBkZWYgX2NoZWNrX2RhdGF0eXBlKHNlbGYpOgogICAgICAgICAjIFNsaWNrIGdyaWQgZG9l cyBub3QgcmVuZGVyIGFsbCB0aGUgY29sdW1uIGlmIHZpZXdwb3J0IGlzIG5vdCBlbm91Z2gKICAg ICAgICAgIyB3aWRlLiBTbyBleGVjdXRlIHRlc3QgYXMgYmF0Y2ggb2YgcXVlcmllcy4KLSAgICAg ICAgc2VsZi5wYWdlLmNsaWNrX2FfdHJlZV9ub2RlKAotICAgICAgICAgICAgc2VsZi50ZXN0X2Ri LAotICAgICAgICAgICAgVHJlZUFyZWFMb2NhdG9ycy5zdWJfbm9kZXNfb2ZfZGF0YWJhc2VzX25v ZGUoc2VsZi5zZXJ2ZXJbJ25hbWUnXSkpCiAgICAgICAgIHNlbGYucGFnZS5vcGVuX3F1ZXJ5X3Rv b2woKQogICAgICAgICBzZWxmLl9jcmVhdGVfZW51bV90eXBlKCkKICAgICAgICAgZm9yIGJhdGNo IGluIGNvbmZpZ19kYXRhOgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9w Z191dGlsaXRpZXNfYmFja3VwX3Jlc3RvcmVfdGVzdC5weSBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVf dGVzdHMvcGdfdXRpbGl0aWVzX2JhY2t1cF9yZXN0b3JlX3Rlc3QucHkKaW5kZXggNzhjMmQ4NWI1 Li45YTg2NTBiYjIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcGdfdXRp bGl0aWVzX2JhY2t1cF9yZXN0b3JlX3Rlc3QucHkKKysrIGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90 ZXN0cy9wZ191dGlsaXRpZXNfYmFja3VwX3Jlc3RvcmVfdGVzdC5weQpAQCAtNjcsOSArNjcsOSBA QCBjbGFzcyBQR1V0aWxpdGllc0JhY2t1cEZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAg ICAgICAgIHNlbGYud2FpdCA9IFdlYkRyaXZlcldhaXQoc2VsZi5wYWdlLmRyaXZlciwgMjApCiAK ICAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgc2VsZi5wYWdlLmV4cGFuZF9kYXRhYmFz ZV9ub2RlKAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ25hbWUnXSwKLSAgICAgICAgICAgIHNl bGYuc2VydmVyWydkYl9wYXNzd29yZCddLCBzZWxmLmRhdGFiYXNlX25hbWUpCisgICAgICAgIHNl bGYucGFnZS5leHBhbmRfZGF0YWJhc2Vfbm9kZSgiU2VydmVyIiwgc2VsZi5zZXJ2ZXJbJ25hbWUn XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydk Yl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5kYXRhYmFzZV9uYW1lKQogCiAgICAgICAgICMgQmFja3VwCiAgICAgICAgIHNlbGYuaW5pdGlh dGVfYmFja3VwKCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcGdfdXRp bGl0aWVzX21haW50ZW5hbmNlX3Rlc3QucHkgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3Bn X3V0aWxpdGllc19tYWludGVuYW5jZV90ZXN0LnB5CmluZGV4IGY5NTk0YTQ3ZC4uMzQ0ZTZiMmM0 IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3BnX3V0aWxpdGllc19tYWlu dGVuYW5jZV90ZXN0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcGdfdXRpbGl0 aWVzX21haW50ZW5hbmNlX3Rlc3QucHkKQEAgLTkxLDI5ICs5MSwyNSBAQCBjbGFzcyBQR1V0aWxp dGllc01haW50ZW5hbmNlRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgc2Vs Zi52ZXJpZnlfY29tbWFuZCgpCiAKICAgICBkZWYgX29wZW5fbWFpbnRlbmFuY2VfZGlhbG9ndWUo c2VsZik6Ci0gICAgICAgIHNlbGYucGFnZS5leHBhbmRfZGF0YWJhc2Vfbm9kZSgKLSAgICAgICAg ICAgIHNlbGYuc2VydmVyWyduYW1lJ10sCi0gICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFz c3dvcmQnXSwgc2VsZi5kYXRhYmFzZV9uYW1lKQogICAgICAgICBpZiBzZWxmLnRlc3RfbGV2ZWwg PT0gJ3RhYmxlJzoKLSAgICAgICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Blbl9zY2hlbWFfbm9k ZShzZWxmLnNlcnZlclsnbmFtZSddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2VfbmFtZSwgJ3B1Ymxp YycpCi0gICAgICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fdGFibGVzX25vZGUoc2VsZi5z ZXJ2ZXJbJ25hbWUnXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlX25hbWUsICdwdWJsaWMnKQotICAg ICAgICAgICAgcmV0cnkgPSA1CisgICAgICAgICAgICBzZWxmLnBhZ2UuZXhwYW5kX3RhYmxlc19u b2RlKCJTZXJ2ZXIiLCBzZWxmLnNlcnZlclsnbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZV9uYW1lLCAncHVi bGljJykKKworICAgICAgICAgICAgdGFibGVfbm9kZSA9IHNlbGYucGFnZS5jaGVja19pZl9lbGVt ZW50X2V4aXN0c193aXRoX3Njcm9sbCgKKyAgICAgICAgICAgICAgICBUcmVlQXJlYUxvY2F0b3Jz LnRhYmxlX25vZGUoc2VsZi50YWJsZV9uYW1lKSkKKwogICAgICAgICAgICAgc3RhdHVzID0gRmFs c2UKLSAgICAgICAgICAgIHdoaWxlIHJldHJ5ID4gMDoKLSAgICAgICAgICAgICAgICBzdGF0dXMg PSBzZWxmLnBhZ2UuY2xpY2tfYV90cmVlX25vZGUoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYu dGFibGVfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgVHJlZUFyZWFMb2NhdG9ycy5zdWJfbm9k ZXNfb2ZfdGFibGVzX25vZGUpCi0gICAgICAgICAgICAgICAgaWYgc3RhdHVzOgotICAgICAgICAg ICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg ICAgIHJldHJ5IC09IDEKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzdGF0dXMsICJUYWJs ZSBuYW1lIHt9IGlzIG5vdCBzZWxlY3RlZCIuZm9ybWF0KAotICAgICAgICAgICAgICAgIHNlbGYu dGFibGVfbmFtZSkpCisgICAgICAgICAgICBpZiB0YWJsZV9ub2RlOgorICAgICAgICAgICAgICAg IHN0YXR1cyA9IFRydWUKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzdGF0dXMsICJUYWJs ZSBuYW1lIHt9IGlzIG5vdCB2aXNpYmxlL3NlbGVjdGVkIi4KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmb3JtYXQoc2VsZi50YWJsZV9uYW1lKSkKKyAgICAgICAgICAgIHRhYmxlX25vZGUu Y2xpY2soKQogCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnBhZ2UuZXhwYW5kX2Rh dGFiYXNlX25vZGUoIlNlcnZlciIsIHNlbGYuc2VydmVyWyduYW1lJ10sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFz ZV9uYW1lKQogICAgICAgICBzZWxmLnBhZ2UucmV0cnlfY2xpY2soCiAgICAgICAgICAgICAoQnku TElOS19URVhULAogICAgICAgICAgICAgIE5hdk1lbnVMb2NhdG9ycy50b29sc19tZW51X2xpbmtf dGV4dCksCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3F1ZXJ5X3Rvb2xf YXV0b19jb21wbGV0ZV90ZXN0cy5weSBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcXVlcnlf dG9vbF9hdXRvX2NvbXBsZXRlX3Rlc3RzLnB5CmluZGV4IGQzODRlYmZjMC4uOWUzNTRmZTM0IDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3F1ZXJ5X3Rvb2xfYXV0b19jb21w bGV0ZV90ZXN0cy5weQorKysgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3F1ZXJ5X3Rvb2xf YXV0b19jb21wbGV0ZV90ZXN0cy5weQpAQCAtMTIsNiArMTIsNyBAQCBpbXBvcnQgcmFuZG9tCiAK IGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyIGltcG9ydCBBY3Rpb25DaGFpbnMKIGZyb20gc2VsZW5p dW0ud2ViZHJpdmVyLmNvbW1vbi5rZXlzIGltcG9ydCBLZXlzCitmcm9tIHNlbGVuaXVtLndlYmRy aXZlci5jb21tb24uYnkgaW1wb3J0IEJ5CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRp bHMgaW1wb3J0IHRlc3RfdXRpbHMKIGZyb20gcmVncmVzc2lvbi5mZWF0dXJlX3V0aWxzLmJhc2Vf ZmVhdHVyZV90ZXN0IGltcG9ydCBCYXNlRmVhdHVyZVRlc3QKIGZyb20gcmVncmVzc2lvbi5mZWF0 dXJlX3V0aWxzLmxvY2F0b3JzIGltcG9ydCBRdWVyeVRvb2xMb2NhdG9ycwpAQCAtNTUsOSArNTYs OSBAQCBjbGFzcyBRdWVyeVRvb2xBdXRvQ29tcGxldGVGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRl c3QpOgogICAgICAgICB0ZXN0X3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgc2VsZi50 ZXN0X2RiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlY29uZF90YWJs ZV9uYW1lKQogCi0gICAgICAgIHNlbGYucGFnZS5leHBhbmRfZGF0YWJhc2Vfbm9kZSgKLSAgICAg ICAgICAgIHNlbGYuc2VydmVyWyduYW1lJ10sCi0gICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJf cGFzc3dvcmQnXSwgc2VsZi50ZXN0X2RiKQorICAgICAgICBzZWxmLnBhZ2UuZXhwYW5kX2RhdGFi YXNlX25vZGUoIlNlcnZlciIsIHNlbGYuc2VydmVyWyduYW1lJ10sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdF9kYikKIAogICAgICAg ICBzZWxmLnBhZ2Uub3Blbl9xdWVyeV90b29sKCkKICAgICAgICAgc2VsZi5wYWdlLndhaXRfZm9y X3NwaW5uZXJfdG9fZGlzYXBwZWFyKCkKQEAgLTE3MSw3ICsxNzIsNyBAQCBjbGFzcyBRdWVyeVRv b2xBdXRvQ29tcGxldGVGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICAgICAg ICAgIEtleXMuQ09OVFJPTCkuc2VuZF9rZXlzKEtleXMuU1BBQ0UpLmtleV91cCgKICAgICAgICAg ICAgICAgICBLZXlzLkNPTlRST0wpLnBlcmZvcm0oKQogICAgICAgICAgICAgaWYgc2VsZi5wYWdl LmNoZWNrX2lmX2VsZW1lbnRfZXhpc3RfYnlfeHBhdGgoCi0gICAgICAgICAgICAgICAgICAgIFF1 ZXJ5VG9vbExvY2F0b3JzLmNvZGVfbWlycm9yX2hpbnRfYm94X3hwYXRoLCAyMCk6CisgICAgICAg ICAgICAgICAgICAgIFF1ZXJ5VG9vbExvY2F0b3JzLmNvZGVfbWlycm9yX2hpbnRfYm94X3hwYXRo LCAxNSk6CiAgICAgICAgICAgICAgICAgaGludF9kaXNwbGF5ZWQgPSBUcnVlCiAgICAgICAgICAg ICAgICAgYnJlYWsKICAgICAgICAgICAgIGVsc2U6CkBAIC0xODQsOCArMTg1LDggQEAgY2xhc3Mg UXVlcnlUb29sQXV0b0NvbXBsZXRlRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAg ICAgZWxzZToKICAgICAgICAgICAgICMgaWYgbm8gSW50ZWxsaVNlbnNlIGlzIHByZXNlbnQgaXQg bWVhbnMgdGhlcmUgaXMgb25seSBvbmUgb3B0aW9uCiAgICAgICAgICAgICAjICBzbyBjaGVjayBp ZiByZXF1aXJlZCBzdHJpbmcgaXMgcHJlc2VudCBpbiBjb2RlTWlycm9yCi0gICAgICAgICAgICBj b2RlX21pcnJvciA9IHNlbGYuZHJpdmVyLmZpbmRfZWxlbWVudHNfYnlfeHBhdGgoCi0gICAgICAg ICAgICAgICAgUXVlcnlUb29sTG9jYXRvcnMuY29kZV9taXJyb3JfZGF0YV94cGF0aCkKKyAgICAg ICAgICAgIGNvZGVfbWlycm9yID0gc2VsZi5kcml2ZXIuZmluZF9lbGVtZW50cygKKyAgICAgICAg ICAgICAgICBCeS5YUEFUSCwgUXVlcnlUb29sTG9jYXRvcnMuY29kZV9taXJyb3JfZGF0YV94cGF0 aCkKICAgICAgICAgICAgIGZvciBkYXRhIGluIGNvZGVfbWlycm9yOgogICAgICAgICAgICAgICAg IGNvZGVfbWlycm9yX3RleHQgPSBkYXRhLnRleHQKICAgICAgICAgICAgICAgICBwcmludCgiU2lu Z2xlIGVudHJ5Li4uLi4uLi4uLiIpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rl c3RzL3F1ZXJ5X3Rvb2xfam91cm5leV90ZXN0LnB5IGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0 cy9xdWVyeV90b29sX2pvdXJuZXlfdGVzdC5weQppbmRleCA0ZWM2MzYzMDIuLmMwZTdmNDQyYyAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9xdWVyeV90b29sX2pvdXJuZXlf dGVzdC5weQorKysgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3F1ZXJ5X3Rvb2xfam91cm5l eV90ZXN0LnB5CkBAIC0xMiw2ICsxMiw3IEBAIGltcG9ydCByYW5kb20KIAogZnJvbSBzZWxlbml1 bS53ZWJkcml2ZXIgaW1wb3J0IEFjdGlvbkNoYWlucwogZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIu Y29tbW9uLmtleXMgaW1wb3J0IEtleXMKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5i eSBpbXBvcnQgQnkKIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQudWkgaW1wb3J0IFdl YkRyaXZlcldhaXQKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVz dF91dGlscwogZnJvbSByZWdyZXNzaW9uLmZlYXR1cmVfdXRpbHMuYmFzZV9mZWF0dXJlX3Rlc3Qg aW1wb3J0IEJhc2VGZWF0dXJlVGVzdApAQCAtOTQsNyArOTUsNyBAQCBjbGFzcyBRdWVyeVRvb2xK b3VybmV5VGVzdChCYXNlRmVhdHVyZVRlc3QpOgogCiAgICAgZGVmIF90ZXN0X2NvcGllc19yb3dz KHNlbGYpOgogICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLnN3aXRjaF90by5kZWZhdWx0X2NvbnRl bnQoKQotICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLnN3aXRjaF90b19mcmFtZSgKKyAgICAgICAg c2VsZi5wYWdlLmRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoCiAgICAgICAgICAgICBzZWxmLnBhZ2Uu ZHJpdmVyLmZpbmRfZWxlbWVudF9ieV90YWdfbmFtZSgiaWZyYW1lIikpCiAKICAgICAgICAgc2Vs ZWN0X3JvdyA9IHNlbGYucGFnZS5maW5kX2J5X3hwYXRoKApAQCAtMTA2LDcgKzEwNyw3IEBAIGNs YXNzIFF1ZXJ5VG9vbEpvdXJuZXlUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgIGNvcHlf cm93LmNsaWNrKCkKIAogICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLnN3aXRjaF90by5kZWZhdWx0 X2NvbnRlbnQoKQotICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLnN3aXRjaF90b19mcmFtZSgKKyAg ICAgICAgc2VsZi5wYWdlLmRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoCiAgICAgICAgICAgICBzZWxm LnBhZ2UuZHJpdmVyLmZpbmRfZWxlbWVudF9ieV90YWdfbmFtZSgiaWZyYW1lIikpCiAKICAgICAg ICAgc2NyYXRjaF9wYWRfZWxlID0gc2VsZi5wYWdlLmZpbmRfYnlfY3NzX3NlbGVjdG9yKApAQCAt MTIxLDcgKzEyMiw3IEBAIGNsYXNzIFF1ZXJ5VG9vbEpvdXJuZXlUZXN0KEJhc2VGZWF0dXJlVGVz dCk6CiAKICAgICBkZWYgX3Rlc3RfY29waWVzX2NvbHVtbnMoc2VsZik6CiAgICAgICAgIHNlbGYu cGFnZS5kcml2ZXIuc3dpdGNoX3RvLmRlZmF1bHRfY29udGVudCgpCi0gICAgICAgIHNlbGYucGFn ZS5kcml2ZXIuc3dpdGNoX3RvX2ZyYW1lKAorICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLnN3aXRj aF90by5mcmFtZSgKICAgICAgICAgICAgIHNlbGYucGFnZS5kcml2ZXIuZmluZF9lbGVtZW50X2J5 X3RhZ19uYW1lKCJpZnJhbWUiKSkKIAogICAgICAgICBjb2x1bW5faGVhZGVyID0gc2VsZi5wYWdl LmZpbmRfYnlfY3NzX3NlbGVjdG9yKApAQCAtMTMzLDcgKzEzNCw3IEBAIGNsYXNzIFF1ZXJ5VG9v bEpvdXJuZXlUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgIGNvcHlfYnRuLmNsaWNrKCkK IAogICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLnN3aXRjaF90by5kZWZhdWx0X2NvbnRlbnQoKQot ICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLnN3aXRjaF90b19mcmFtZSgKKyAgICAgICAgc2VsZi5w YWdlLmRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoCiAgICAgICAgICAgICBzZWxmLnBhZ2UuZHJpdmVy LmZpbmRfZWxlbWVudF9ieV90YWdfbmFtZSgiaWZyYW1lIikpCiAKICAgICAgICAgc2NyYXRjaF9w YWRfZWxlID0gc2VsZi5wYWdlLmZpbmRfYnlfY3NzX3NlbGVjdG9yKApAQCAtMTY5LDEzICsxNzAs MTMgQEAgY2xhc3MgUXVlcnlUb29sSm91cm5leVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAg ICAgICAgIGZhaWxlZF9oaXN0b3J5X2RldGFpbF9wYW5lLnRleHQKICAgICAgICAgKQogICAgICAg ICBzZWxmLnBhZ2Uud2FpdF9mb3JfZWxlbWVudHMoCi0gICAgICAgICAgICBsYW1iZGEgZHJpdmVy OiBkcml2ZXIuZmluZF9lbGVtZW50c19ieV9jc3Nfc2VsZWN0b3IoCi0gICAgICAgICAgICAgICAg UXVlcnlUb29sTG9jYXRvcnMucXVlcnlfaGlzdG9yeV9lbnRyaWVzKSkKKyAgICAgICAgICAgIGxh bWJkYSBkcml2ZXI6IGRyaXZlci5maW5kX2VsZW1lbnRzKAorICAgICAgICAgICAgICAgIEJ5LkNT U19TRUxFQ1RPUiwgUXVlcnlUb29sTG9jYXRvcnMucXVlcnlfaGlzdG9yeV9lbnRyaWVzKSkKIAog ICAgICAgICAjIGdldCB0aGUgcXVlcnkgaGlzdG9yeSByb3dzIGFuZCBjbGljayB0aGUgcHJldmlv dXMgcXVlcnkgcm93IHdoaWNoCiAgICAgICAgICMgd2FzIGV4ZWN1dGVkIGFuZCB2ZXJpZnkgaXQK LSAgICAgICAgaGlzdG9yeV9yb3dzID0gc2VsZi5kcml2ZXIuZmluZF9lbGVtZW50c19ieV9jc3Nf c2VsZWN0b3IoCi0gICAgICAgICAgICBRdWVyeVRvb2xMb2NhdG9ycy5xdWVyeV9oaXN0b3J5X2Vu dHJpZXMpCisgICAgICAgIGhpc3Rvcnlfcm93cyA9IHNlbGYuZHJpdmVyLmZpbmRfZWxlbWVudHMo CisgICAgICAgICAgICBCeS5DU1NfU0VMRUNUT1IsIFF1ZXJ5VG9vbExvY2F0b3JzLnF1ZXJ5X2hp c3RvcnlfZW50cmllcykKICAgICAgICAgaGlzdG9yeV9yb3dzWzFdLmNsaWNrKCkKIAogICAgICAg ICBzZWxlY3RlZF9oaXN0b3J5X2VudHJ5ID0gc2VsZi5wYWdlLmZpbmRfYnlfY3NzX3NlbGVjdG9y KApAQCAtMjA5LDggKzIxMCw4IEBAIGNsYXNzIFF1ZXJ5VG9vbEpvdXJuZXlUZXN0KEJhc2VGZWF0 dXJlVGVzdCk6CiAgICAgICAgIHNlbGYucGFnZS5jbGlja190YWIoc2VsZi5xdWVyeV9oaXN0b3J5 X3RhYl9uYW1lKQogCiAgICAgICAgIHF1ZXJ5X2xpc3QgPSBzZWxmLnBhZ2Uud2FpdF9mb3JfZWxl bWVudHMoCi0gICAgICAgICAgICBsYW1iZGEgZHJpdmVyOiBkcml2ZXIuZmluZF9lbGVtZW50c19i eV9jc3Nfc2VsZWN0b3IoCi0gICAgICAgICAgICAgICAgUXVlcnlUb29sTG9jYXRvcnMucXVlcnlf aGlzdG9yeV9lbnRyaWVzKSkKKyAgICAgICAgICAgIGxhbWJkYSBkcml2ZXI6IGRyaXZlci5maW5k X2VsZW1lbnRzKAorICAgICAgICAgICAgICAgIEJ5LkNTU19TRUxFQ1RPUiwgUXVlcnlUb29sTG9j YXRvcnMucXVlcnlfaGlzdG9yeV9lbnRyaWVzKSkKIAogICAgICAgICBzZWxmLmFzc2VydFRydWUo MTcsIGxlbihxdWVyeV9saXN0KSkKIApAQCAtNDIwLDkgKzQyMSw5IEBAIGNsYXNzIFF1ZXJ5VG9v bEpvdXJuZXlUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgIHNlbGYucGFnZS5jbGlja19t b2RhbCgnWWVzJykKIAogICAgIGRlZiBfbmF2aWdhdGVfdG9fcXVlcnlfdG9vbChzZWxmKToKLSAg ICAgICAgc2VsZi5wYWdlLmV4cGFuZF9kYXRhYmFzZV9ub2RlKAotICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJbJ25hbWUnXSwKLSAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLCBz ZWxmLnRlc3RfZGIpCisgICAgICAgIHNlbGYucGFnZS5leHBhbmRfZGF0YWJhc2Vfbm9kZSgiU2Vy dmVyIiwgc2VsZi5zZXJ2ZXJbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0X2RiKQogICAgICAgICBzZWxmLnBhZ2Uub3Bl bl9xdWVyeV90b29sKCkKICAgICAgICAgc2VsZi5wYWdlLndhaXRfZm9yX3NwaW5uZXJfdG9fZGlz YXBwZWFyKCkKIApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9xdWVyeV90 b29sX3Rlc3RzLnB5IGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9xdWVyeV90b29sX3Rlc3Rz LnB5CmluZGV4IDhjZGIxNjRkNC4uMWRlMjY4NmRlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9m ZWF0dXJlX3Rlc3RzL3F1ZXJ5X3Rvb2xfdGVzdHMucHkKKysrIGIvd2ViL3BnYWRtaW4vZmVhdHVy ZV90ZXN0cy9xdWVyeV90b29sX3Rlc3RzLnB5CkBAIC0zNiw5ICszNiw5IEBAIGNsYXNzIFF1ZXJ5 VG9vbEZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgZGVmIGJlZm9yZShzZWxmKToK ICAgICAgICAgc2VsZi5wYWdlLndhaXRfZm9yX3NwaW5uZXJfdG9fZGlzYXBwZWFyKCkKICAgICAg ICAgc2VsZi5wYWdlLmFkZF9zZXJ2ZXIoc2VsZi5zZXJ2ZXIpCi0gICAgICAgIHNlbGYucGFnZS5l eHBhbmRfZGF0YWJhc2Vfbm9kZSgKLSAgICAgICAgICAgIHNlbGYuc2VydmVyWyduYW1lJ10sCi0g ICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwgc2VsZi50ZXN0X2RiKQorICAg ICAgICBzZWxmLnBhZ2UuZXhwYW5kX2RhdGFiYXNlX25vZGUoIlNlcnZlciIsIHNlbGYuc2VydmVy WyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNl cnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYudGVzdF9kYikKICAgICAgICAgc2VsZi5wYWdlLm9wZW5fcXVlcnlfdG9vbCgpCiAg ICAgICAgIHNlbGYucGFnZS53YWl0X2Zvcl9zcGlubmVyX3RvX2Rpc2FwcGVhcigpCiAgICAgICAg IHNlbGYuX3Jlc2V0X29wdGlvbnMoKQpAQCAtMTI4LDcgKzEyOCw3IEBAIGNsYXNzIFF1ZXJ5VG9v bEZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgICAgICAgICAgICAgUXVlcnlU b29sTG9jYXRvcnMuYnRuX2V4cGxhaW5fYnVmZmVycywKICAgICAgICAgICAgICAgICAgICBRdWVy eVRvb2xMb2NhdG9ycy5idG5fZXhwbGFpbl90aW1pbmcpOgogICAgICAgICAgICAgYnRuID0gc2Vs Zi5wYWdlLmZpbmRfYnlfY3NzX3NlbGVjdG9yKG9wKQotICAgICAgICAgICAgY2hlY2sgPSBidG4u ZmluZF9lbGVtZW50X2J5X3RhZ19uYW1lKCdpJykKKyAgICAgICAgICAgIGNoZWNrID0gYnRuLmZp bmRfZWxlbWVudChCeS5UQUdfTkFNRSwgJ2knKQogICAgICAgICAgICAgaWYgJ3Zpc2liaWxpdHkt aGlkZGVuJyBub3QgaW4gY2hlY2suZ2V0X2F0dHJpYnV0ZSgnY2xhc3MnKToKICAgICAgICAgICAg ICAgICBidG4uY2xpY2soKQogCkBAIC0yODYsMTAgKzI4NiwxMCBAQCBTRUxFQ1QgZ2VuZXJhdGVf c2VyaWVzKDEsIDEwMDApIGFzIGlkIG9yZGVyIGJ5IGlkIGRlc2MiIiIKICAgICAgICAgKQogCiAg ICAgICAgICMgU2VhcmNoIGZvciAnT3V0cHV0JyB3b3JkIGluIHJlc3VsdCAodmVyYm9zZSBvcHRp b24pCi0gICAgICAgIGNhbnZhcy5maW5kX2VsZW1lbnRfYnlfeHBhdGgoIi8vKltjb250YWlucyhz dHJpbmcoKSwgJ091dHB1dCcpXSIpCisgICAgICAgIGNhbnZhcy5maW5kX2VsZW1lbnQoQnkuWFBB VEgsICIvLypbY29udGFpbnMoc3RyaW5nKCksICdPdXRwdXQnKV0iKQogCiAgICAgICAgICMgU2Vh cmNoIGZvciAnVG90YWwgQ29zdCcgd29yZCBpbiByZXN1bHQgKGNvc3Qgb3B0aW9uKQotICAgICAg ICBjYW52YXMuZmluZF9lbGVtZW50X2J5X3hwYXRoKCIvLypbY29udGFpbnMoc3RyaW5nKCksJ1Rv dGFsIENvc3QnKV0iKQorICAgICAgICBjYW52YXMuZmluZF9lbGVtZW50KEJ5LlhQQVRILCAiLy8q W2NvbnRhaW5zKHN0cmluZygpLCdUb3RhbCBDb3N0JyldIikKIAogICAgIGRlZiBfcXVlcnlfdG9v bF9leHBsYWluX2FuYWx5emVfd2l0aF9idWZmZXJzX2FuZF90aW1pbmcoc2VsZik6CiAgICAgICAg IHF1ZXJ5ID0gIiIiLS0gRXhwbGFpbiBhbmFseXplIHF1ZXJ5IHdpdGggYnVmZmVycyBhbmQgdGlt aW5nCkBAIC0zODIsOCArMzgyLDggQEAgU0VMRUNUIHJlbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBn X2NsYXNzCiAgICAgICAgIGNhbnZhcyA9IHNlbGYud2FpdC51bnRpbChFQy5wcmVzZW5jZV9vZl9l bGVtZW50X2xvY2F0ZWQoCiAgICAgICAgICAgICAoQnkuQ1NTX1NFTEVDVE9SLCBRdWVyeVRvb2xM b2NhdG9ycy5xdWVyeV9vdXRwdXRfY2FudmFzX2NzcykpKQogCi0gICAgICAgIGVsID0gY2FudmFz LmZpbmRfZWxlbWVudHNfYnlfeHBhdGgoCi0gICAgICAgICAgICBRdWVyeVRvb2xMb2NhdG9ycy5v dXRwdXRfY29sdW1uX2RhdGFfeHBhdGguZm9ybWF0KHRhYmxlX25hbWUpKQorICAgICAgICBlbCA9 IGNhbnZhcy5maW5kX2VsZW1lbnRzKEJ5LlhQQVRILCBRdWVyeVRvb2xMb2NhdG9ycy4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfY29sdW1uX2RhdGFfeHBhdGguZm9y bWF0KHRhYmxlX25hbWUpKQogCiAgICAgICAgIGFzc2VydCBsZW4oZWwpID09IDAsICJUYWJsZSAn e30nIGNyZWF0ZWQgd2l0aCBhdXRvIGNvbW1pdCBkaXNhYmxlZCAiIFwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgImFuZCB3aXRob3V0IGFueSBleHBsaWNpdCBjb21taXQuIi5mb3JtYXQo CkBAIC02OTksNyArNjk5LDcgQEAgU0VMRUNUIDEsIHBnX3NsZWVwKDMwMCkiIiIKICAgICAgICAg ICAgICAgICAgICBRdWVyeVRvb2xMb2NhdG9ycy5idG5fZXhwbGFpbl9idWZmZXJzLAogICAgICAg ICAgICAgICAgICAgIFF1ZXJ5VG9vbExvY2F0b3JzLmJ0bl9leHBsYWluX3RpbWluZyk6CiAgICAg ICAgICAgICBidG4gPSBzZWxmLnBhZ2UuZmluZF9ieV9jc3Nfc2VsZWN0b3Iob3ApCi0gICAgICAg ICAgICBjaGVjayA9IGJ0bi5maW5kX2VsZW1lbnRfYnlfdGFnX25hbWUoJ2knKQorICAgICAgICAg ICAgY2hlY2sgPSBidG4uZmluZF9lbGVtZW50KEJ5LlRBR19OQU1FLCAnaScpCiAgICAgICAgICAg ICBpZiAndmlzaWJpbGl0eS1oaWRkZW4nIG5vdCBpbiBjaGVjay5nZXRfYXR0cmlidXRlKCdjbGFz cycpOgogICAgICAgICAgICAgICAgIGJ0bi5jbGljaygpCiAgICAgICAgICMgY2xpY2sgY29zdCBi dXR0b24KQEAgLTcyMCw3ICs3MjAsNyBAQCBTRUxFQ1QgMSwgcGdfc2xlZXAoMzAwKSIiIgogICAg ICAgICAgICAgKEJ5LkNTU19TRUxFQ1RPUiwgUXVlcnlUb29sTG9jYXRvcnMucXVlcnlfb3V0cHV0 X2NhbnZhc19jc3MpKQogICAgICAgICApCiAgICAgICAgICMgU2VhcmNoIGZvciAnT3V0cHV0JyB3 b3JkIGluIHJlc3VsdCAodmVyYm9zZSBvcHRpb24pCi0gICAgICAgIGNhbnZhcy5maW5kX2VsZW1l bnRfYnlfeHBhdGgoIi8vKltjb250YWlucyhzdHJpbmcoKSwgJ0pJVCcpXSIpCisgICAgICAgIGNh bnZhcy5maW5kX2VsZW1lbnQoQnkuWFBBVEgsICIvLypbY29udGFpbnMoc3RyaW5nKCksICdKSVQn KV0iKQogCiAgICAgICAgIHNlbGYucGFnZS5jbGVhcl9xdWVyeV90b29sKCkKIApAQCAtNzMyLDcg KzczMiw3IEBAIGNsYXNzIFdhaXRGb3JBbnlFbGVtZW50V2l0aFRleHQob2JqZWN0KToKIAogICAg IGRlZiBfX2NhbGxfXyhzZWxmLCBkcml2ZXIpOgogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBl bGVtZW50cyA9IEVDLl9maW5kX2VsZW1lbnRzKGRyaXZlciwgc2VsZi5sb2NhdG9yKQorICAgICAg ICAgICAgZWxlbWVudHMgPSBkcml2ZXIuZmluZF9lbGVtZW50cygqc2VsZi5sb2NhdG9yKQogICAg ICAgICAgICAgZm9yIGVsZW0gaW4gZWxlbWVudHM6CiAgICAgICAgICAgICAgICAgaWYgc2VsZi50 ZXh0IGluIGVsZW0udGV4dDoKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvdGFibGVfZGRsX2ZlYXR1cmVfdGVzdC5w eSBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvdGFibGVfZGRsX2ZlYXR1cmVfdGVzdC5weQpp bmRleCBkMTkxMDE5Y2EuLmJkZGFiNGRmOCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vZmVhdHVy ZV90ZXN0cy90YWJsZV9kZGxfZmVhdHVyZV90ZXN0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2ZlYXR1 cmVfdGVzdHMvdGFibGVfZGRsX2ZlYXR1cmVfdGVzdC5weQpAQCAtMzEsMTYgKzMxLDEzIEBAIGNs YXNzIFRhYmxlRGRsRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgc2VsZi50 ZXN0X3RhYmxlX25hbWUgPSAidGVzdF90YWJsZSIgKyBzdHIocmFuZG9tLnJhbmRpbnQoMTAwMCwg MzAwMCkpCiAgICAgICAgIHRlc3RfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxm LnRlc3RfZGIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdF90YWJs ZV9uYW1lKQorICAgICAgICBzZWxmLnBhZ2UuZXhwYW5kX3RhYmxlc19ub2RlKCJTZXJ2ZXIiLCBz ZWxmLnNlcnZlclsnbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLCBzZWxmLnRlc3RfZGIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ3B1YmxpYycpCisgICAgICAgIHRhYmxlX25vZGUgPSBz ZWxmLnBhZ2UuY2hlY2tfaWZfZWxlbWVudF9leGlzdHNfd2l0aF9zY3JvbGwoCisgICAgICAgICAg ICBUcmVlQXJlYUxvY2F0b3JzLnRhYmxlX25vZGUoc2VsZi50ZXN0X3RhYmxlX25hbWUpKQorICAg ICAgICB0YWJsZV9ub2RlLmNsaWNrKCkKIAotICAgICAgICBzZWxmLnBhZ2UuZXhwYW5kX2RhdGFi YXNlX25vZGUoCi0gICAgICAgICAgICBzZWxmLnNlcnZlclsnbmFtZSddLAotICAgICAgICAgICAg c2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sIHNlbGYudGVzdF9kYikKLSAgICAgICAgc2VsZi5w YWdlLnRvZ2dsZV9vcGVuX3RhYmxlc19ub2RlKAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ25h bWUnXSwgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCi0gICAgICAgICAgICBzZWxmLnRlc3Rf ZGIsICdwdWJsaWMnKQotICAgICAgICBzZWxmLnBhZ2UuY2xpY2tfYV90cmVlX25vZGUoCi0gICAg ICAgICAgICBzZWxmLnRlc3RfdGFibGVfbmFtZSwKLSAgICAgICAgICAgIFRyZWVBcmVhTG9jYXRv cnMuc3ViX25vZGVzX29mX3RhYmxlc19ub2RlKQogICAgICAgICBzZWxmLnBhZ2UuY2xpY2tfdGFi KCJTUUwiKQogCiAgICAgICAgICMgV2FpdCB0aWxsIGRhdGEgaXMgZGlzcGxheWVkIGluIFNRTCBU YWIKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvdGVzdF9jb3B5X3NxbF90 b19xdWVyeV90b29sLnB5IGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy90ZXN0X2NvcHlfc3Fs X3RvX3F1ZXJ5X3Rvb2wucHkKaW5kZXggYTA4NTMyZmE3Li5mNGI2ZGVkN2YgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvdGVzdF9jb3B5X3NxbF90b19xdWVyeV90b29sLnB5 CisrKyBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvdGVzdF9jb3B5X3NxbF90b19xdWVyeV90 b29sLnB5CkBAIC03Myw3ICs3Myw3IEBAIGNsYXNzIENvcHlTUUxGZWF0dXJlVGVzdChCYXNlRmVh dHVyZVRlc3QpOgogICAgICAgICB0aW1lLnNsZWVwKDUpCiAKICAgICAgICAgc2VsZi5kcml2ZXIu c3dpdGNoX3RvLmRlZmF1bHRfY29udGVudCgpCi0gICAgICAgIHNlbGYuZHJpdmVyLnN3aXRjaF90 b19mcmFtZSgKKyAgICAgICAgc2VsZi5kcml2ZXIuc3dpdGNoX3RvLmZyYW1lKAogICAgICAgICAg ICAgc2VsZi5kcml2ZXIuZmluZF9lbGVtZW50X2J5X3RhZ19uYW1lKCJpZnJhbWUiKSkKIAogICAg ICAgICBjb2RlX21pcnJvciA9IHNlbGYuZHJpdmVyLmZpbmRfZWxlbWVudHNfYnlfeHBhdGgoCkBA IC04OSwxNiArODksMTIgQEAgY2xhc3MgQ29weVNRTEZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVz dCk6CiAgICAgICAgIHNlbGYudGVzdF90YWJsZV9uYW1lID0gInRlc3RfdGFibGUiICsgc3RyKHJh bmRvbS5yYW5kaW50KDEwMDAsIDMwMDApKQogICAgICAgICB0ZXN0X3V0aWxzLmNyZWF0ZV90YWJs ZShzZWxmLnNlcnZlciwgc2VsZi50ZXN0X2RiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnRlc3RfdGFibGVfbmFtZSkKLQotICAgICAgICBzZWxmLnBhZ2UuZXhwYW5kX2Rh dGFiYXNlX25vZGUoCi0gICAgICAgICAgICBzZWxmLnNlcnZlclsnbmFtZSddLAotICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sIHNlbGYudGVzdF9kYikKLSAgICAgICAgc2Vs Zi5wYWdlLnRvZ2dsZV9vcGVuX3RhYmxlc19ub2RlKAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXJb J25hbWUnXSwgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCi0gICAgICAgICAgICBzZWxmLnRl c3RfZGIsICdwdWJsaWMnKQotICAgICAgICBzZWxmLnBhZ2UuY2xpY2tfYV90cmVlX25vZGUoCi0g ICAgICAgICAgICBzZWxmLnRlc3RfdGFibGVfbmFtZSwKLSAgICAgICAgICAgIFRyZWVBcmVhTG9j YXRvcnMuc3ViX25vZGVzX29mX3RhYmxlc19ub2RlKQorICAgICAgICBzZWxmLnBhZ2UuZXhwYW5k X3RhYmxlc19ub2RlKCJTZXJ2ZXIiLCBzZWxmLnNlcnZlclsnbmFtZSddLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLCBzZWxm LnRlc3RfZGIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3B1YmxpYycp CisgICAgICAgIHRhYmxlX25vZGUgPSBzZWxmLnBhZ2UuY2hlY2tfaWZfZWxlbWVudF9leGlzdHNf d2l0aF9zY3JvbGwoCisgICAgICAgICAgICBUcmVlQXJlYUxvY2F0b3JzLnRhYmxlX25vZGUoc2Vs Zi50ZXN0X3RhYmxlX25hbWUpKQorICAgICAgICB0YWJsZV9ub2RlLmNsaWNrKCkKIAogICAgIGRl ZiBfdXBkYXRlX3ByZWZlcmVuY2VzX3NldHRpbmcoc2VsZik6CiAgICAgICAgIGZpbGVfbWVudSA9 IHNlbGYucGFnZS5maW5kX2J5X2Nzc19zZWxlY3RvcigKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2ZlYXR1cmVfdGVzdHMvdmlld19kYXRhX2RtbF9xdWVyaWVzLnB5IGIvd2ViL3BnYWRtaW4vZmVh dHVyZV90ZXN0cy92aWV3X2RhdGFfZG1sX3F1ZXJpZXMucHkKaW5kZXggOTNlMjBjMTMwLi4yNGYw NDcxOWUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvdmlld19kYXRhX2Rt bF9xdWVyaWVzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvdmlld19kYXRhX2Rt bF9xdWVyaWVzLnB5CkBAIC0xMjEsMTMgKzEyMSw5IEBAIENSRUFURSBUQUJMRSBwdWJsaWMubm9u aW50cGtleQogICAgIGRlZiBydW5UZXN0KHNlbGYpOgogICAgICAgICBzZWxmLnBhZ2Uud2FpdF9m b3Jfc3Bpbm5lcl90b19kaXNhcHBlYXIoKQogICAgICAgICBzZWxmLnBhZ2UuYWRkX3NlcnZlcihz ZWxmLnNlcnZlcikKLQotICAgICAgICBzZWxmLnBhZ2UuZXhwYW5kX2RhdGFiYXNlX25vZGUoCi0g ICAgICAgICAgICBzZWxmLnNlcnZlclsnbmFtZSddLAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXJb J2RiX3Bhc3N3b3JkJ10sIHNlbGYudGVzdF9kYikKLSAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9v cGVuX3RhYmxlc19ub2RlKHNlbGYuc2VydmVyWyduYW1lJ10sCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdF9kYiwgJ3B1Ymxp YycpCisgICAgICAgIHNlbGYucGFnZS5leHBhbmRfdGFibGVzX25vZGUoIlNlcnZlciIsIHNlbGYu c2VydmVyWyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sIHNlbGYudGVzdF9kYiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAncHVibGljJykKIAogICAgICAgICBzZWxmLl9sb2FkX2NvbmZp Z19kYXRhKCd0YWJsZV9pbnNlcnRfdXBkYXRlX2Nhc2VzJykKICAgICAgICAgZGF0YV9sb2NhbCA9 IGNvbmZpZ19kYXRhCkBAIC0xNjksMTIgKzE2NSwxNyBAQCBDUkVBVEUgVEFCTEUgcHVibGljLm5v bmludHBrZXkKICAgICAgICAgY29uZmlnX2RhdGEgPSBjb25maWdfZGF0YV9qc29uW2NvbmZpZ19r ZXldCiAKICAgICBkZWYgX3BlcmZvcm1fdGVzdF9mb3JfdGFibGUoc2VsZiwgdGFibGVfbmFtZSwg Y29uZmlnX2RhdGFfbG9jYWwpOgotICAgICAgICBzZWxmLnBhZ2UuY2xpY2tfYV90cmVlX25vZGUo Ci0gICAgICAgICAgICB0YWJsZV9uYW1lLAotICAgICAgICAgICAgVHJlZUFyZWFMb2NhdG9ycy5z dWJfbm9kZXNfb2ZfdGFibGVzX25vZGUpCisgICAgICAgICMgc2VsZi5wYWdlLmNsaWNrX2FfdHJl ZV9ub2RlKAorICAgICAgICAjICAgICB0YWJsZV9uYW1lLAorICAgICAgICAjICAgICBUcmVlQXJl YUxvY2F0b3JzLnN1Yl9ub2Rlc19vZl90YWJsZXNfbm9kZSkKKyAgICAgICAgdGFibGVfbm9kZSA9 IHNlbGYucGFnZS5jaGVja19pZl9lbGVtZW50X2V4aXN0c193aXRoX3Njcm9sbCgKKyAgICAgICAg ICAgIFRyZWVBcmVhTG9jYXRvcnMudGFibGVfbm9kZSh0YWJsZV9uYW1lKSkKKyAgICAgICAgdGFi bGVfbm9kZS5jbGljaygpCisKICAgICAgICAgIyBPcGVuIE9iamVjdCAtPiBWaWV3L0VkaXQgZGF0 YQogICAgICAgICBzZWxmLl92aWV3X2RhdGFfZ3JpZCh0YWJsZV9uYW1lKQogCisgICAgICAgIHRp bWUuc2xlZXAoMykKICAgICAgICAgc2VsZi5wYWdlLndhaXRfZm9yX3F1ZXJ5X3Rvb2xfbG9hZGlu Z19pbmRpY2F0b3JfdG9fZGlzYXBwZWFyKCkKICAgICAgICAgIyBSdW4gdGVzdCB0byBpbnNlcnQg YSBuZXcgcm93IGluIHRhYmxlIHdpdGggZGVmYXVsdCB2YWx1ZXMKICAgICAgICAgc2VsZi5fYWRk X3Jvdyhjb25maWdfZGF0YV9sb2NhbCkKQEAgLTIzNyw3ICsyMzgsNyBAQCBDUkVBVEUgVEFCTEUg cHVibGljLm5vbmludHBrZXkKIAogICAgICAgICBpZiBjZWxsX3R5cGUgaW4gWydpbnQnLCAnaW50 W10nXToKICAgICAgICAgICAgIGlmIHZhbHVlID09ICdjbGVhcic6Ci0gICAgICAgICAgICAgICAg Y2VsbF9lbC5maW5kX2VsZW1lbnRfYnlfY3NzX3NlbGVjdG9yKCdpbnB1dCcpLmNsZWFyKCkKKyAg ICAgICAgICAgICAgICBjZWxsX2VsLmZpbmRfZWxlbWVudChCeS5DU1NfU0VMRUNUT1IsICdpbnB1 dCcpLmNsZWFyKCkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgQWN0aW9uQ2hh aW5zKHNlbGYuZHJpdmVyKS5zZW5kX2tleXModmFsdWUpLiBcCiAgICAgICAgICAgICAgICAgICAg IHNlbmRfa2V5cyhLZXlzLkVOVEVSKS5wZXJmb3JtKCkKQEAgLTI3MywxMyArMjc0LDEzIEBAIENS RUFURSBUQUJMRSBwdWJsaWMubm9uaW50cGtleQogICAgICAgICBlbHNlOgogICAgICAgICAgICAg IyBCb29sZWFuIGVkaXRvciB0ZXN0IGZvciB0byBUcnVlIGNsaWNrCiAgICAgICAgICAgICBpZiBk YXRhWzFdID09ICd0cnVlJzoKLSAgICAgICAgICAgICAgICBjaGVja2JveF9lbCA9IGNlbGxfZWwu ZmluZF9lbGVtZW50X2J5X3hwYXRoKAotICAgICAgICAgICAgICAgICAgICAiLi8vKltjb250YWlu cyhAY2xhc3MsICdtdWx0aS1jaGVja2JveCcpXSIpCisgICAgICAgICAgICAgICAgY2hlY2tib3hf ZWwgPSBjZWxsX2VsLmZpbmRfZWxlbWVudCgKKyAgICAgICAgICAgICAgICAgICAgQnkuWFBBVEgs ICIuLy8qW2NvbnRhaW5zKEBjbGFzcywgJ211bHRpLWNoZWNrYm94JyldIikKICAgICAgICAgICAg ICAgICBjaGVja2JveF9lbC5jbGljaygpCiAgICAgICAgICAgICAjIEJvb2xlYW4gZWRpdG9yIHRl c3QgZm9yIHRvIEZhbHNlIGNsaWNrCiAgICAgICAgICAgICBlbGlmIGRhdGFbMV0gPT0gJ2ZhbHNl JzoKLSAgICAgICAgICAgICAgICBjaGVja2JveF9lbCA9IGNlbGxfZWwuZmluZF9lbGVtZW50X2J5 X3hwYXRoKAotICAgICAgICAgICAgICAgICAgICAiLi8vKltjb250YWlucyhAY2xhc3MsICdtdWx0 aS1jaGVja2JveCcpXSIpCisgICAgICAgICAgICAgICAgY2hlY2tib3hfZWwgPSBjZWxsX2VsLmZp bmRfZWxlbWVudCgKKyAgICAgICAgICAgICAgICAgICAgQnkuWFBBVEgsICIuLy8qW2NvbnRhaW5z KEBjbGFzcywgJ211bHRpLWNoZWNrYm94JyldIikKICAgICAgICAgICAgICAgICAjIFNldHMgdHJ1 ZQogICAgICAgICAgICAgICAgIGNoZWNrYm94X2VsLmNsaWNrKCkKICAgICAgICAgICAgICAgICAj IFNldHMgZmFsc2UKQEAgLTMwNyw3ICszMDgsNyBAQCBDUkVBVEUgVEFCTEUgcHVibGljLm5vbmlu dHBrZXkKICAgICAgICAgICAgICksIENoZWNrRm9yVmlld0RhdGFUZXN0LlRJTUVPVVRfU1RSSU5H CiAgICAgICAgICkKICAgICAgICAgc2VsZi5wYWdlLmRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoCi0g ICAgICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLmZpbmRfZWxlbWVudF9ieV90YWdfbmFtZSgnaWZy YW1lJykKKyAgICAgICAgICAgIHNlbGYucGFnZS5kcml2ZXIuZmluZF9lbGVtZW50KEJ5LlRBR19O QU1FLCAnaWZyYW1lJykKICAgICAgICAgKQogCiAgICAgZGVmIF9jb3B5X3Bhc3RlX3JvdyhzZWxm LCBjb25maWdfZGF0YV9sKToKQEAgLTM4MCw3ICszODEsNyBAQCBDUkVBVEUgVEFCTEUgcHVibGlj Lm5vbmludHBrZXkKICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgIHJl c3VsdF9yb3cgPSBzZWxmLnBhZ2UuZmluZF9ieV94cGF0aCh4cGF0aCkKICAgICAgICAgICAgICAg ICAgICAgZWxlbWVudCA9IFwKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF9yb3cuZmlu ZF9lbGVtZW50X2J5X2NsYXNzX25hbWUoInIiICsgc3RyKGlkeCkpCisgICAgICAgICAgICAgICAg ICAgICAgICByZXN1bHRfcm93LmZpbmRfZWxlbWVudChCeS5DTEFTU19OQU1FLCAiciIgKyBzdHIo aWR4KSkKICAgICAgICAgICAgICAgICAgICAgc2VsZi5wYWdlLmRyaXZlci5leGVjdXRlX3Njcmlw dCgKICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbF9vbl9hcmdfZm9yX2pzLCBlbGVtZW50 KQogICAgICAgICAgICAgICAgICAgICBicmVhawpAQCAtMzk4LDYgKzM5OSw2IEBAIENSRUFURSBU QUJMRSBwdWJsaWMubm9uaW50cGtleQogICAgICAgICBsaXN0X2l0ZW0uc29ydChyZXZlcnNlPVRy dWUpCiAgICAgICAgIGZvciBpZHggaW4gbGlzdF9pdGVtOgogICAgICAgICAgICAgdGltZS5zbGVl cCgwLjQpCi0gICAgICAgICAgICBlbGVtZW50ID0gcmVzdWx0X3Jvdy5maW5kX2VsZW1lbnRfYnlf Y2xhc3NfbmFtZSgiciIgKyBzdHIoaWR4KSkKKyAgICAgICAgICAgIGVsZW1lbnQgPSByZXN1bHRf cm93LmZpbmRfZWxlbWVudChCeS5DTEFTU19OQU1FLCAiciIgKyBzdHIoaWR4KSkKICAgICAgICAg ICAgIHNlbGYucGFnZS5kcml2ZXIuZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICAgICAgc2Ny b2xsX29uX2FyZ19mb3JfanMsIGVsZW1lbnQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9mZWF0 dXJlX3Rlc3RzL3hzc19jaGVja3NfcGFuZWxzX2FuZF9xdWVyeV90b29sX3Rlc3QucHkgYi93ZWIv cGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3NfcGFuZWxzX2FuZF9xdWVyeV90b29sX3Rl c3QucHkKaW5kZXggOTM5NzFlYjg2Li41Y2RhODhiZTcgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWlu L2ZlYXR1cmVfdGVzdHMveHNzX2NoZWNrc19wYW5lbHNfYW5kX3F1ZXJ5X3Rvb2xfdGVzdC5weQor KysgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3NfcGFuZWxzX2FuZF9xdWVy eV90b29sX3Rlc3QucHkKQEAgLTksMTIgKzksMTQgQEAKIAogaW1wb3J0IHN5cwogaW1wb3J0IHJh bmRvbQoraW1wb3J0IHRpbWUKIAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGlt cG9ydCB0ZXN0X3V0aWxzCiBmcm9tIHJlZ3Jlc3Npb24uZmVhdHVyZV91dGlscy5iYXNlX2ZlYXR1 cmVfdGVzdCBpbXBvcnQgQmFzZUZlYXR1cmVUZXN0CiBmcm9tIHNlbGVuaXVtLndlYmRyaXZlciBp bXBvcnQgQWN0aW9uQ2hhaW5zCiBmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9y dCBTdGFsZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRpb24sIFwKICAgICBXZWJEcml2ZXJFeGNlcHRp b24KK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5ieSBpbXBvcnQgQnkKIGZyb20gcmVn cmVzc2lvbi5mZWF0dXJlX3V0aWxzLmxvY2F0b3JzIGltcG9ydCBRdWVyeVRvb2xMb2NhdG9ycwog ZnJvbSByZWdyZXNzaW9uLmZlYXR1cmVfdXRpbHMudHJlZV9hcmVhX2xvY2F0b3JzIGltcG9ydCBU cmVlQXJlYUxvY2F0b3JzCiAKQEAgLTc0LDcgKzc2LDYgQEAgY2xhc3MgQ2hlY2tGb3JYc3NGZWF0 dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICB3aGlsZSByZXRyeSA+IDA6CiAgICAg ICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc2VsZi5wYWdlLnJlZnJlc2hfcGFnZSgpCi0g ICAgICAgICAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3NlcnZlcnNfZ3JvdXAoKQogICAg ICAgICAgICAgICAgIHNlbGYuX3RhYmxlc19ub2RlX2V4cGFuZGFibGUoKQogICAgICAgICAgICAg ICAgIHNlbGYuX2NoZWNrX3hzc19pbl9kZXBlbmRlbnRzX3RhYigpCiAgICAgICAgICAgICAgICAg cmV0cnkgPSAwCkBAIC0xMDYsMTUgKzEwNywxMyBAQCBjbGFzcyBDaGVja0Zvclhzc0ZlYXR1cmVU ZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi50ZXN0 X2RiLCBzZWxmLnRlc3RfdGFibGVfbmFtZSkKIAogICAgIGRlZiBfdGFibGVzX25vZGVfZXhwYW5k YWJsZShzZWxmKToKLSAgICAgICAgc2VsZi5wYWdlLmV4cGFuZF9kYXRhYmFzZV9ub2RlKAotICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJbJ25hbWUnXSwKLSAgICAgICAgICAgIHNlbGYuc2VydmVyWydk Yl9wYXNzd29yZCddLCBzZWxmLnRlc3RfZGIpCi0gICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Bl bl90YWJsZXNfbm9kZShzZWxmLnNlcnZlclsnbmFtZSddLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3RfZGIsICdwdWJsaWMn KQotICAgICAgICBzZWxmLnBhZ2UuY2xpY2tfYV90cmVlX25vZGUoCi0gICAgICAgICAgICBzZWxm LnRlc3RfdGFibGVfbmFtZSwKLSAgICAgICAgICAgIFRyZWVBcmVhTG9jYXRvcnMuc3ViX25vZGVz X29mX3RhYmxlc19ub2RlKQorICAgICAgICBzZWxmLnBhZ2UuZXhwYW5kX3RhYmxlc19ub2RlKCJT ZXJ2ZXIiLCBzZWxmLnNlcnZlclsnbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLCBzZWxmLnRlc3RfZGIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3B1YmxpYycpCisKKyAgICAgICAgdGFi bGVfbm9kZSA9IHNlbGYucGFnZS5jaGVja19pZl9lbGVtZW50X2V4aXN0c193aXRoX3Njcm9sbCgK KyAgICAgICAgICAgIFRyZWVBcmVhTG9jYXRvcnMudGFibGVfbm9kZShzZWxmLnRlc3RfdGFibGVf bmFtZSkpCisgICAgICAgIHRhYmxlX25vZGUuY2xpY2soKQogCiAgICAgZGVmIF9jaGVja194c3Nf aW5fYnJvd3Nlcl90cmVlKHNlbGYpOgogICAgICAgICBwcmludCgKQEAgLTEzOCw2ICsxMzcsMTIg QEAgY2xhc3MgQ2hlY2tGb3JYc3NGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAg ICAgICAgZmlsZT1zeXMuc3RkZXJyLCBlbmQ9IiIKICAgICAgICAgKQogICAgICAgICBzZWxmLnBh Z2UuY2xpY2tfdGFiKCJTUUwiKQorCisgICAgICAgICMgV2FpdCB0aWxsIGRhdGEgaXMgZGlzcGxh eWVkIGluIFNRTCBUYWIKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYucGFnZS5jaGVja19p Zl9lbGVtZW50X2V4aXN0X2J5X3hwYXRoKAorICAgICAgICAgICAgIi8vKltjb250YWlucyhAY2xh c3MsJ0NvZGVNaXJyb3ItbGluZXMnKSBhbmQgIgorICAgICAgICAgICAgImNvbnRhaW5zKC4sJ0NS RUFURSBUQUJMRScpXSIsIDEwKSwgIk5vIGRhdGEgZGlzcGxheWVkIGluIFNRTCB0YWIiKQorCiAg ICAgICAgICMgRmV0Y2ggdGhlIGlubmVyIGh0bWwgJiBjaGVjayBmb3IgZXNjYXBlZCBjaGFyYWN0 ZXJzCiAgICAgICAgIHNvdXJjZV9jb2RlID0gc2VsZi5wYWdlLmZpbmRfYnlfeHBhdGgoCiAgICAg ICAgICAgICAiLy8qW2NvbnRhaW5zKEBjbGFzcywnQ29kZU1pcnJvci1saW5lcycpIGFuZCAiCkBA IC0xOTcsNyArMjAyLDcgQEAgY2xhc3MgQ2hlY2tGb3JYc3NGZWF0dXJlVGVzdChCYXNlRmVhdHVy ZVRlc3QpOgogICAgICAgICAgICAgImNvbnRhaW5zKEBzdHlsZSwgJ3RvcDowcHgnKV0iCiAgICAg ICAgICkKIAotICAgICAgICBjZWxscyA9IHJlc3VsdF9yb3cuZmluZF9lbGVtZW50c19ieV90YWdf bmFtZSgnZGl2JykKKyAgICAgICAgY2VsbHMgPSByZXN1bHRfcm93LmZpbmRfZWxlbWVudHMoQnku VEFHX05BTUUsICdkaXYnKQogCiAgICAgICAgICMgcmVtb3ZlIGZpcnN0IGVsZW1lbnQgYXMgaXQg aXMgcm93IG51bWJlci4KICAgICAgICAgc291cmNlX2NvZGUgPSBjZWxsc1sxXS5nZXRfYXR0cmli dXRlKCdpbm5lckhUTUwnKQpAQCAtMjM5LDggKzI0NCw4IEBAIGNsYXNzIENoZWNrRm9yWHNzRmVh dHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgd2hpbGUgcmV0cnkgPiAwOgogICAg ICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGhpc3RvcnlfZWxlID0gc2VsZi5kcml2ZXIg XAotICAgICAgICAgICAgICAgICAgICAuZmluZF9lbGVtZW50X2J5X2Nzc19zZWxlY3RvcigKLSAg ICAgICAgICAgICAgICAgICAgICAgICIucXVlcnktZGV0YWlsIC5jb250ZW50LXZhbHVlIikKKyAg ICAgICAgICAgICAgICAgICAgLmZpbmRfZWxlbWVudChCeS5DU1NfU0VMRUNUT1IsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi5xdWVyeS1kZXRhaWwgLmNvbnRlbnQtdmFsdWUi KQogICAgICAgICAgICAgICAgIHNvdXJjZV9jb2RlID0gaGlzdG9yeV9lbGUuZ2V0X2F0dHJpYnV0 ZSgnaW5uZXJIVE1MJykKICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgZXhjZXB0 IFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbjoKQEAgLTI3OSw3ICsyODQsNyBAQCBjbGFz cyBDaGVja0Zvclhzc0ZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgICkKIAog ICAgICAgICBzZWxmLnBhZ2UuZmluZF9ieV9jc3Nfc2VsZWN0b3IoIi5zbGljay1oZWFkZXItY29s dW1uIikKLSAgICAgICAgY2VsbHMgPSBzZWxmLmRyaXZlci5cCisgICAgICAgIGNlbGxzID0gc2Vs Zi5kcml2ZXIuIFwKICAgICAgICAgICAgIGZpbmRfZWxlbWVudHNfYnlfY3NzX3NlbGVjdG9yKCIu c2xpY2staGVhZGVyLWNvbHVtbiIpCiAKICAgICAgICAgIyByZW1vdmUgZmlyc3QgZWxlbWVudCBh cyBpdCBpcyByb3cgbnVtYmVyLgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0 cy94c3NfY2hlY2tzX3BnYWRtaW5fZGVidWdnZXJfdGVzdC5weSBiL3dlYi9wZ2FkbWluL2ZlYXR1 cmVfdGVzdHMveHNzX2NoZWNrc19wZ2FkbWluX2RlYnVnZ2VyX3Rlc3QucHkKaW5kZXggNzlhYzc4 NWJlLi5jMDRmMWFkMGYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMveHNz X2NoZWNrc19wZ2FkbWluX2RlYnVnZ2VyX3Rlc3QucHkKKysrIGIvd2ViL3BnYWRtaW4vZmVhdHVy ZV90ZXN0cy94c3NfY2hlY2tzX3BnYWRtaW5fZGVidWdnZXJfdGVzdC5weQpAQCAtNTgsMTYgKzU4 LDEyIEBAIGNsYXNzIENoZWNrRGVidWdnZXJGb3JYc3NGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRl c3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mdW5jdGlv bl9uYW1lKQogCiAgICAgZGVmIF9mdW5jdGlvbl9ub2RlX2V4cGFuZGFibGUoc2VsZik6Ci0gICAg ICAgIHNlbGYucGFnZS5leHBhbmRfZGF0YWJhc2Vfbm9kZSgKLSAgICAgICAgICAgIHNlbGYuc2Vy dmVyWyduYW1lJ10sCi0gICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwgc2Vs Zi50ZXN0X2RiKQotICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fc2NoZW1hX25vZGUoc2Vs Zi5zZXJ2ZXJbJ25hbWUnXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0X2RiLCAncHVibGljJykKLSAgICAgICAgc2VsZi5w YWdlLnRvZ2dsZV9vcGVuX2Z1bmN0aW9uX25vZGUoKQotICAgICAgICBzZWxmLnBhZ2UuY2xpY2tf YV90cmVlX25vZGUoCi0gICAgICAgICAgICBzZWxmLmZ1bmN0aW9uX25hbWUgKyAiKCkiLAotICAg ICAgICAgICAgVHJlZUFyZWFMb2NhdG9ycy5zdWJfbm9kZXNfb2ZfZnVuY3Rpb25zX25vZGUpCisg ICAgICAgIHNlbGYucGFnZS5leHBhbmRfc2NoZW1hX2NoaWxkX25vZGUoIlNlcnZlciIsIHNlbGYu c2VydmVyWyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0X2RiLCAncHVibGljJywgIkZ1bmN0aW9ucyIpCisg ICAgICAgIGZ1bmN0aW9uX25vZGUgPSBzZWxmLnBhZ2UuY2hlY2tfaWZfZWxlbWVudF9leGlzdHNf d2l0aF9zY3JvbGwoCisgICAgICAgICAgICBUcmVlQXJlYUxvY2F0b3JzLmZ1bmN0aW9uX25vZGUo c2VsZi5mdW5jdGlvbl9uYW1lICsgIigpIikpCisgICAgICAgIGZ1bmN0aW9uX25vZGUuY2xpY2so KQogCiAgICAgZGVmIF9kZWJ1Z19mdW5jdGlvbihzZWxmKToKICAgICAgICAgc2VsZi5wYWdlLmRy aXZlci5maW5kX2VsZW1lbnRfYnlfbGlua190ZXh0KCJPYmplY3QiKS5jbGljaygpCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3Nfcm9sZXNfY29udHJvbF90 ZXN0LnB5IGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy94c3NfY2hlY2tzX3JvbGVzX2NvbnRy b2xfdGVzdC5weQppbmRleCA0YWVlY2I0ZTAuLmQ1MTYzMjM4NiAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vZmVhdHVyZV90ZXN0cy94c3NfY2hlY2tzX3JvbGVzX2NvbnRyb2xfdGVzdC5weQorKysg Yi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3Nfcm9sZXNfY29udHJvbF90ZXN0 LnB5CkBAIC00Miw2ICs0Miw4IEBAIGNsYXNzIENoZWNrUm9sZU1lbWJlcnNoaXBDb250cm9sRmVh dHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnJvbGUpCiAgICAgICAgIHRlc3RfdXRpbHMuY3JlYXRlX3JvbGUoc2VsZi5zZXJ2ZXIs ICJwb3N0Z3JlcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxoMT50ZXN0PC9o MT4iKQorICAgICAgICB0ZXN0X3V0aWxzLmdyYW50X3JvbGUoc2VsZi5zZXJ2ZXIsICJwb3N0Z3Jl cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJvbGUsICI8aDE+dGVzdDwv aDE+IikKICAgICAgICAgc2VsZi53YWl0ID0gV2ViRHJpdmVyV2FpdChzZWxmLnBhZ2UuZHJpdmVy LCAyMCkKIAogICAgIGRlZiBydW5UZXN0KHNlbGYpOgpAQCAtNTgsMTEgKzYwLDEzIEBAIGNsYXNz IENoZWNrUm9sZU1lbWJlcnNoaXBDb250cm9sRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxoMT50ZXN0PC9oMT4iKQogCiAgICAgZGVm IF9yb2xlX25vZGVfZXhwYW5kYWJsZShzZWxmLCByb2xlKToKLSAgICAgICAgc2VsZi5wYWdlLmV4 cGFuZF9zZXJ2ZXJfbm9kZSgKLSAgICAgICAgICAgIHNlbGYuc2VydmVyWyduYW1lJ10sIHNlbGYu c2VydmVyWydkYl9wYXNzd29yZCddKQotICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fdHJl ZV9pdGVtKCdMb2dpbi9Hcm91cCBSb2xlcycpCi0gICAgICAgIHNlbGYucGFnZS5jbGlja19hX3Ry ZWVfbm9kZSgKLSAgICAgICAgICAgIHJvbGUsIFRyZWVBcmVhTG9jYXRvcnMuc3ViX25vZGVzX29m X2xvZ2luX2dyb3VwX25vZGUpCisgICAgICAgIHNlbGYucGFnZS5leHBhbmRfc2VydmVyX2NoaWxk X25vZGUoIlNlcnZlciIsIHNlbGYuc2VydmVyWyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0xvZ2luL0dyb3VwIFJvbGVz JykKKworICAgICAgICByb2xlX25vZGUgPSBzZWxmLnBhZ2UuY2hlY2tfaWZfZWxlbWVudF9leGlz dHNfd2l0aF9zY3JvbGwoCisgICAgICAgICAgICBUcmVlQXJlYUxvY2F0b3JzLnJvbGVfbm9kZShy b2xlKSkKKyAgICAgICAgcm9sZV9ub2RlLmNsaWNrKCkKIAogICAgIGRlZiBfY2hlY2tfcm9sZV9t ZW1iZXJzaGlwX2NvbnRyb2woc2VsZik6CiAgICAgICAgIHNlbGYucGFnZS5kcml2ZXIuZmluZF9l bGVtZW50X2J5X2xpbmtfdGV4dCgKQEAgLTcwLDI0ICs3NCwyMiBAQCBjbGFzcyBDaGVja1JvbGVN ZW1iZXJzaGlwQ29udHJvbEZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgIHBy b3BlcnR5X29iamVjdCA9IHNlbGYud2FpdC51bnRpbChFQy52aXNpYmlsaXR5X29mX2VsZW1lbnRf bG9jYXRlZCgKICAgICAgICAgICAgIChCeS5DU1NfU0VMRUNUT1IsIE5hdk1lbnVMb2NhdG9ycy5w cm9wZXJ0aWVzX29ial9jc3MpKSkKICAgICAgICAgcHJvcGVydHlfb2JqZWN0LmNsaWNrKCkKLSAg ICAgICAgV2ViRHJpdmVyV2FpdChzZWxmLnBhZ2UuZHJpdmVyLCA0KS51bnRpbCgKKyAgICAgICAg bWVtYmVyc2hpcF90YWIgPSBXZWJEcml2ZXJXYWl0KHNlbGYucGFnZS5kcml2ZXIsIDQpLnVudGls KAogICAgICAgICAgICAgRUMucHJlc2VuY2Vfb2ZfZWxlbWVudF9sb2NhdGVkKCgKLSAgICAgICAg ICAgICAgICBCeS5YUEFUSCwgIi8vYVtub3JtYWxpemUtc3BhY2UodGV4dCgpKT0nTWVtYmVyc2hp cCddIikpKQotICAgICAgICBzZWxmLmNsaWNrX21lbWJlcnNoaXBfdGFiKCkKKyAgICAgICAgICAg ICAgICBCeS5YUEFUSCwgIi8vc3Bhbltub3JtYWxpemUtc3BhY2UodGV4dCgpKT0nTWVtYmVyc2hp cCddIikpKQorICAgICAgICBtZW1iZXJzaGlwX3RhYi5jbGljaygpCisKICAgICAgICAgIyBGZXRj aCB0aGUgc291cmNlIGNvZGUgZm9yIG91ciBjdXN0b20gY29udHJvbAogICAgICAgICBzb3VyY2Vf Y29kZSA9IHNlbGYucGFnZS5maW5kX2J5X3hwYXRoKAotICAgICAgICAgICAgIi8vZGl2W2NvbnRh aW5zKEBjbGFzcywncm9sbWVtYmVyc2hpcCcpXSIKLSAgICAgICAgKS5nZXRfYXR0cmlidXRlKCdp bm5lckhUTUwnKQorICAgICAgICAgICAgIi8vc3Bhbltjb250YWlucyhAY2xhc3MsJ2ljb24tJyld L2ZvbGxvd2luZy1zaWJsaW5nOjpzcGFuIgorICAgICAgICApLnRleHQKIAogICAgICAgICBzZWxm Ll9jaGVja19lc2NhcGVkX2NoYXJhY3RlcnMoCiAgICAgICAgICAgICBzb3VyY2VfY29kZSwKICAg ICAgICAgICAgICcmbHQ7aDEmZ3Q7dGVzdCZsdDsvaDEmZ3Q7JywKICAgICAgICAgICAgICdSb2xl IE1lbWJlcnNoaXAgQ29udHJvbCcKICAgICAgICAgKQotICAgICAgICBzZWxmLnBhZ2UuZmluZF9i eV94cGF0aCgKLSAgICAgICAgICAgICIvL2J1dHRvbltjb250YWlucyhAdHlwZSwgJ2NhbmNlbCcp IGFuZCAiCi0gICAgICAgICAgICAiY29udGFpbnMoLiwnQ2FuY2VsJyldIgotICAgICAgICApLmNs aWNrKCkKKyAgICAgICAgc2VsZi5wYWdlLmZpbmRfYnlfeHBhdGgoIi8vYnV0dG9uL3NwYW5bdGV4 dCgpPSdDbG9zZSddIikuY2xpY2soKQogCiAgICAgZGVmIF9jaGVja19lc2NhcGVkX2NoYXJhY3Rl cnMoc2VsZiwgc291cmNlX2NvZGUsIHN0cmluZ190b19maW5kLCBzb3VyY2UpOgogICAgICAgICAj IEZvciBYU1Mgd2UgbmVlZCB0byBzZWFyY2ggYWdhaW5zdCBlbGVtZW50J3MgaHRtbCBjb2RlCmRp ZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3V0aWxzL2xvY2F0b3JzLnB5IGIvd2Vi L3JlZ3Jlc3Npb24vZmVhdHVyZV91dGlscy9sb2NhdG9ycy5weQppbmRleCA0YzU3ZjM0NGIuLjNj NzI4Y2E5YyAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV91dGlscy9sb2NhdG9y cy5weQorKysgYi93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3V0aWxzL2xvY2F0b3JzLnB5CkBAIC0y NDksOCArMjQ5LDggQEAgY2xhc3MgQ29ubmVjdFRvU2VydmVyRGl2OgogICAgIHBhc3N3b3JkX2Zp ZWxkID0gIi8vaW5wdXRbQGlkPSdwYXNzd29yZCddIgogCiAgICAgb2tfYnV0dG9uID0gXAotICAg ICAgICAiLy9kaXYgW0BjbGFzcz0nYWxlcnRpZnkgIGFqcy1tb2RlbGVzcyBhanMtbW92YWJsZSBh anMtem9vbSddIiBcCi0gICAgICAgICIvL2J1dHRvblt0ZXh0KCk9J09LJ10iCisgICAgICAgICIv L2J1dHRvbltAY2xhc3M9J2Fqcy1idXR0b24gYnRuIGJ0bi1wcmltYXJ5IGZhIGZhLWNoZWNrICIg XAorICAgICAgICAicGctYWxlcnRpZnktYnV0dG9uJ10iCiAKICAgICBlcnJvcl9tZXNzYWdlID0g XAogICAgICAgICAiLy9mb3JtW0BpZD0nZnJtUGFzc3dvcmQnXS9kaXYvZGl2Ly9kaXZbQGNsYXNz PSdhbGVydC10ZXh0J10iCkBAIC0yNTgsMyArMjU4LDEyIEBAIGNsYXNzIENvbm5lY3RUb1NlcnZl ckRpdjoKICAgICBjYW5jZWxfYnV0dG9uID0gXAogICAgICAgICAiLy9kaXYgW0BjbGFzcz0nYWxl cnRpZnkgIGFqcy1tb2RlbGVzcyBhanMtbW92YWJsZSBhanMtem9vbSddIiBcCiAgICAgICAgICIv L2J1dHRvblt0ZXh0KCk9J0NhbmNlbCddIgorCisKK2NsYXNzIFByb3BlcnR5RGlhbG9ndWVMb2Nh dG9yczoKKyAgICAjIFRoaXMgd2lsbCBjb250YWluIHhwYXRocyBmb3IgZWxlbWVudHMgaW4gcHJv cGVydGllcyBkaWFsb2d1ZQorICAgIHNlcnZlcl9kaWFsb2d1ZV90aXRsZSA9ICIvL2Rpdlt0ZXh0 KCk9J0NyZWF0ZSAtIFNlcnZlciddIgorCisgICAgc2VydmVyX2Nvbm5lY3Rpb25fdGFiID0gIi8v YnV0dG9uL3NwYW5bdGV4dCgpPSdDb25uZWN0aW9uJ10iCisKKyAgICBzZXJ2ZXJfdGFiX3NhdmUg PSAiLy9idXR0b24vc3Bhblt0ZXh0KCk9J1NhdmUnXSIKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNz aW9uL2ZlYXR1cmVfdXRpbHMvcGdhZG1pbl9wYWdlLnB5IGIvd2ViL3JlZ3Jlc3Npb24vZmVhdHVy ZV91dGlscy9wZ2FkbWluX3BhZ2UucHkKaW5kZXggYzQ0ZjYyMzU4Li5lNjQ4YmM2MjUgMTAwNjQ0 Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdXRpbHMvcGdhZG1pbl9wYWdlLnB5CisrKyBi L3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdXRpbHMvcGdhZG1pbl9wYWdlLnB5CkBAIC0yMCw3ICsy MCw3IEBAIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQgaW1wb3J0IGV4cGVjdGVkX2Nv bmRpdGlvbnMgYXMgRUMKIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQudWkgaW1wb3J0 IFdlYkRyaXZlcldhaXQKIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5ieSBpbXBvcnQg QnkKIGZyb20gcmVncmVzc2lvbi5mZWF0dXJlX3V0aWxzLmxvY2F0b3JzIGltcG9ydCBRdWVyeVRv b2xMb2NhdG9ycywgXAotICAgIE5hdk1lbnVMb2NhdG9ycywgQ29ubmVjdFRvU2VydmVyRGl2Cisg ICAgTmF2TWVudUxvY2F0b3JzLCBDb25uZWN0VG9TZXJ2ZXJEaXYsIFByb3BlcnR5RGlhbG9ndWVM b2NhdG9ycwogZnJvbSByZWdyZXNzaW9uLmZlYXR1cmVfdXRpbHMudHJlZV9hcmVhX2xvY2F0b3Jz IGltcG9ydCBUcmVlQXJlYUxvY2F0b3JzCiAKIApAQCAtMzcsNiArMzcsNyBAQCBjbGFzcyBQZ2Fk bWluUGFnZToKICAgICAgICAgc2VsZi50aW1lb3V0ID0gMzAKICAgICAgICAgc2VsZi5hcHBfc3Rh cnRfdGltZW91dCA9IDkwCiAKKyAgICAjIHBnQWRtaW4gcmVsYXRlZCBtZXRob2RzCiAgICAgZGVm IGxvZ2luX3RvX2FwcChzZWxmLCB1c2VyX2RldGFpbCk6CiAgICAgICAgIGlmIG5vdCAoc2VsZi5j aGVja19pZl9lbGVtZW50X2V4aXN0X2J5X3hwYXRoKAogICAgICAgICAgICAgICAgICcvL2FbQGlk PSJuYXZiYXItdXNlciJdJywgMSkpOgpAQCAtOTAsNjAgKzkxLDYxIEBAIGNsYXNzIFBnYWRtaW5Q YWdlOgogICAgICAgICBzZWxmLmNsaWNrX2VsZW1lbnQobW9kYWxfYnV0dG9uKQogCiAgICAgZGVm IGFkZF9zZXJ2ZXIoc2VsZiwgc2VydmVyX2NvbmZpZyk6Ci0gICAgICAgIHNlbGYuZmluZF9ieV94 cGF0aCgKLSAgICAgICAgICAgICIvLypbQGNsYXNzPSdhY2lUcmVlVGV4dCcgYW5kIGNvbnRhaW5z KC4sJ1NlcnZlcnMnKV0iKS5jbGljaygpCi0KLSAgICAgICAgaWYgc2VsZi5kcml2ZXIubmFtZSA9 PSAnZmlyZWZveCc6Ci0gICAgICAgICAgICBBY3Rpb25DaGFpbnMoc2VsZi5kcml2ZXIpLmNvbnRl eHRfY2xpY2soc2VsZi5maW5kX2J5X3hwYXRoKAotICAgICAgICAgICAgICAgICIvLypbQGNsYXNz PSdhY2lUcmVlVGV4dCcgYW5kIGNvbnRhaW5zKC4sJ1NlcnZlcnMnKV0iKSlcCi0gICAgICAgICAg ICAgICAgLnBlcmZvcm0oKQotICAgICAgICAgICAgQWN0aW9uQ2hhaW5zKHNlbGYuZHJpdmVyKS5t b3ZlX3RvX2VsZW1lbnQoCi0gICAgICAgICAgICAgICAgc2VsZi5maW5kX2J5X3hwYXRoKCIvL2xp L3NwYW5bdGV4dCgpPSdDcmVhdGUnXSIpKS5wZXJmb3JtKCkKLSAgICAgICAgICAgIHNlbGYuZmlu ZF9ieV94cGF0aCgiLy9saS9zcGFuW3RleHQoKT0nU2VydmVyLi4uJ10iKS5jbGljaygpCi0gICAg ICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLmRyaXZlci5maW5kX2VsZW1lbnRfYnlfbGlua190 ZXh0KCJPYmplY3QiKS5jbGljaygpCi0gICAgICAgICAgICBBY3Rpb25DaGFpbnMoc2VsZi5kcml2 ZXIpLm1vdmVfdG9fZWxlbWVudCgKLSAgICAgICAgICAgICAgICBzZWxmLmRyaXZlci5maW5kX2Vs ZW1lbnRfYnlfbGlua190ZXh0KCJDcmVhdGUiKSkucGVyZm9ybSgpCi0gICAgICAgICAgICBzZWxm LmZpbmRfYnlfcGFydGlhbF9saW5rX3RleHQoIlNlcnZlci4uLiIpLmNsaWNrKCkKKyAgICAgICAg c2VydmVyX2dyb3VwX25vZGUgPSBcCisgICAgICAgICAgICBzZWxmLmZpbmRfYnlfeHBhdGgoVHJl ZUFyZWFMb2NhdG9ycy5zZXJ2ZXJfZ3JvdXBfbm9kZSgiU2VydmVycyIpKQorICAgICAgICBBY3Rp b25DaGFpbnMoc2VsZi5kcml2ZXIpLmNvbnRleHRfY2xpY2soc2VydmVyX2dyb3VwX25vZGUpLnBl cmZvcm0oKQorICAgICAgICBBY3Rpb25DaGFpbnMoc2VsZi5kcml2ZXIpLm1vdmVfdG9fZWxlbWVu dChzZWxmLmZpbmRfYnlfeHBhdGgoCisgICAgICAgICAgICBUcmVlQXJlYUxvY2F0b3JzLmNvbnRl eHRfbWVudV9lbGVtZW50KCdDcmVhdGUnKSkpLnBlcmZvcm0oKQorICAgICAgICBBY3Rpb25DaGFp bnMoc2VsZi5kcml2ZXIpLm1vdmVfdG9fZWxlbWVudChzZWxmLmZpbmRfYnlfeHBhdGgoCisgICAg ICAgICAgICBUcmVlQXJlYUxvY2F0b3JzLmNvbnRleHRfbWVudV9lbGVtZW50KCdTZXJ2ZXIuLi4n KSkpIFwKKyAgICAgICAgICAgIC5jbGljaygpLnBlcmZvcm0oKQogCiAgICAgICAgIFdlYkRyaXZl cldhaXQoc2VsZi5kcml2ZXIsIDUpLnVudGlsKEVDLnZpc2liaWxpdHlfb2ZfZWxlbWVudF9sb2Nh dGVkKAotICAgICAgICAgICAgKEJ5LlhQQVRILCAiLy9kaXZbdGV4dCgpPSdDcmVhdGUgLSBTZXJ2 ZXInXSIpKSkKKyAgICAgICAgICAgIChCeS5YUEFUSCwgUHJvcGVydHlEaWFsb2d1ZUxvY2F0b3Jz LnNlcnZlcl9kaWFsb2d1ZV90aXRsZSkpKQogCiAgICAgICAgICMgQWZ0ZXIgc2VydmVyIGRpYWxv Z3VlIG9wZW5zCi0gICAgICAgIHNlbGYuZmlsbF9pbnB1dF9ieV9maWVsZF9uYW1lKCJuYW1lIiwg c2VydmVyX2NvbmZpZ1snbmFtZSddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsb29zZV9mb2N1cz1UcnVlKQotICAgICAgICBzZWxmLmZpbmRfYnlfcGFydGlhbF9saW5r X3RleHQoIkNvbm5lY3Rpb24iKS5jbGljaygpCi0gICAgICAgIHNlbGYuZmlsbF9pbnB1dF9ieV9m aWVsZF9uYW1lKCJob3N0Iiwgc2VydmVyX2NvbmZpZ1snaG9zdCddKQotICAgICAgICBzZWxmLmZp bGxfaW5wdXRfYnlfZmllbGRfbmFtZSgicG9ydCIsIHNlcnZlcl9jb25maWdbJ3BvcnQnXSkKLSAg ICAgICAgc2VsZi5maWxsX2lucHV0X2J5X2ZpZWxkX25hbWUoInVzZXJuYW1lIiwgc2VydmVyX2Nv bmZpZ1sndXNlcm5hbWUnXSkKLSAgICAgICAgc2VsZi5maWxsX2lucHV0X2J5X2ZpZWxkX25hbWUo InBhc3N3b3JkIiwgc2VydmVyX2NvbmZpZ1snZGJfcGFzc3dvcmQnXSkKLSAgICAgICAgV2ViRHJp dmVyV2FpdChzZWxmLmRyaXZlciwgMTApLnVudGlsKEVDLmVsZW1lbnRfdG9fYmVfY2xpY2thYmxl KAotICAgICAgICAgICAgKEJ5LkNTU19TRUxFQ1RPUiwgImJ1dHRvblt0eXBlPSdzYXZlJ10uYnRu LmJ0bi1wcmltYXJ5IikpKQotICAgICAgICBzZWxmLmZpbmRfYnlfY3NzX3NlbGVjdG9yKCJidXR0 b25bdHlwZT0nc2F2ZSddLmJ0bi5idG4tcHJpbWFyeSIpLlwKLSAgICAgICAgICAgIGNsaWNrKCkK LQotICAgICAgICBzZXJ2ZXJfdHJlZV94cGF0aCA9IFwKLSAgICAgICAgICAgICIvLypbQGlkPSd0 cmVlJ10vLypbLj0nIiArIHNlcnZlcl9jb25maWdbJ25hbWUnXSArICInXSIKKyAgICAgICAgc2Vs Zi5maWxsX2lucHV0X2J5X2ZpZWxkX25hbWUoCisgICAgICAgICAgICAibmFtZSIsIHNlcnZlcl9j b25maWdbJ25hbWUnXSwgaW5wdXRfa2V5cz1UcnVlKQorICAgICAgICBzZWxmLmZpbmRfYnlfeHBh dGgoCisgICAgICAgICAgICBQcm9wZXJ0eURpYWxvZ3VlTG9jYXRvcnMuc2VydmVyX2Nvbm5lY3Rp b25fdGFiKS5jbGljaygpCisgICAgICAgIHNlbGYuZmlsbF9pbnB1dF9ieV9maWVsZF9uYW1lKAor ICAgICAgICAgICAgImhvc3QiLCBzZXJ2ZXJfY29uZmlnWydob3N0J10sIGlucHV0X2tleXM9VHJ1 ZSkKKyAgICAgICAgc2VsZi5maWxsX2lucHV0X2J5X2ZpZWxkX25hbWUoCisgICAgICAgICAgICAi cG9ydCIsIHNlcnZlcl9jb25maWdbJ3BvcnQnXSwgaW5wdXRfa2V5cz1UcnVlKQorICAgICAgICBz ZWxmLmZpbGxfaW5wdXRfYnlfZmllbGRfbmFtZSgKKyAgICAgICAgICAgICJ1c2VybmFtZSIsIHNl cnZlcl9jb25maWdbJ3VzZXJuYW1lJ10sIGlucHV0X2tleXM9VHJ1ZSkKKyAgICAgICAgc2VsZi5m aWxsX2lucHV0X2J5X2ZpZWxkX25hbWUoCisgICAgICAgICAgICAicGFzc3dvcmQiLCBzZXJ2ZXJf Y29uZmlnWydkYl9wYXNzd29yZCddLCBpbnB1dF9rZXlzPVRydWUpCisKKyAgICAgICAgc2F2ZV9i dG4gPSBXZWJEcml2ZXJXYWl0KHNlbGYuZHJpdmVyLCA1KS51bnRpbCgKKyAgICAgICAgICAgIEVD LmVsZW1lbnRfdG9fYmVfY2xpY2thYmxlKAorICAgICAgICAgICAgICAgIChCeS5YUEFUSCwgUHJv cGVydHlEaWFsb2d1ZUxvY2F0b3JzLnNlcnZlcl90YWJfc2F2ZSkpKQorICAgICAgICBzYXZlX2J0 bi5jbGljaygpCisKKyAgICAgICAgc2VydmVyX3RyZWVfeHBhdGggPSBUcmVlQXJlYUxvY2F0b3Jz LnNlcnZlcl9ub2RlKHNlcnZlcl9jb25maWdbJ25hbWUnXSkKICAgICAgICAgdHJ5OgogICAgICAg ICAgICAgV2ViRHJpdmVyV2FpdChzZWxmLmRyaXZlciwgMTApLnVudGlsKAogICAgICAgICAgICAg ICAgIEVDLnZpc2liaWxpdHlfb2ZfZWxlbWVudF9sb2NhdGVkKAogICAgICAgICAgICAgICAgICAg ICAoQnkuWFBBVEgsIHNlcnZlcl90cmVlX3hwYXRoKSkpCiAgICAgICAgIGV4Y2VwdCBUaW1lb3V0 RXhjZXB0aW9uOgotICAgICAgICAgICAgc2VsZi50b2dnbGVfb3Blbl9zZXJ2ZXJzX2dyb3VwKCkK KyAgICAgICAgICAgIHNlbGYuZXhwYW5kX3NlcnZlcl9ncm91cF9ub2RlKCJTZXJ2ZXIiKQogICAg ICAgICAgICAgV2ViRHJpdmVyV2FpdChzZWxmLmRyaXZlciwgMTApLnVudGlsKAogICAgICAgICAg ICAgICAgIEVDLnZpc2liaWxpdHlfb2ZfZWxlbWVudF9sb2NhdGVkKAogICAgICAgICAgICAgICAg ICAgICAoQnkuWFBBVEgsIHNlcnZlcl90cmVlX3hwYXRoKSkpCiAKICAgICBkZWYgb3Blbl9xdWVy eV90b29sKHNlbGYpOgotICAgICAgICBzZWxmLmRyaXZlci5maW5kX2VsZW1lbnRfYnlfbGlua190 ZXh0KCJUb29scyIpLmNsaWNrKCkKLSAgICAgICAgdG9vbHNfbWVudSA9IHNlbGYuZHJpdmVyLmZp bmRfZWxlbWVudF9ieV9pZCgnbW51X3Rvb2xzJykKKyAgICAgICAgc2VsZi5kcml2ZXIuZmluZF9l bGVtZW50KEJ5LkxJTktfVEVYVCwgIlRvb2xzIikuY2xpY2soKQorICAgICAgICB0b29sc19tZW51 ID0gc2VsZi5kcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAnbW51X3Rvb2xzJykKIAotICAgICAg ICBxdWVyeV90b29sID0gdG9vbHNfbWVudS5maW5kX2VsZW1lbnRfYnlfaWQoJ3F1ZXJ5X3Rvb2wn KQorICAgICAgICBxdWVyeV90b29sID0gdG9vbHNfbWVudS5maW5kX2VsZW1lbnQoQnkuSUQsICdx dWVyeV90b29sJykKIAogICAgICAgICBzZWxmLmVuYWJsZV9tZW51X2l0ZW0ocXVlcnlfdG9vbCwg MTApCiAKICAgICAgICAgc2VsZi5maW5kX2J5X3BhcnRpYWxfbGlua190ZXh0KCJRdWVyeSBUb29s IikuY2xpY2soKQogCisgICAgICAgIHNlbGYud2FpdF9mb3JfZWxlbWVudF90b19iZV92aXNpYmxl KAorICAgICAgICAgICAgc2VsZi5kcml2ZXIsICIvL2RpdltAaWQ9J2J0bi1jb25uLXN0YXR1cydd IiwgNSkKKwogICAgIGRlZiBvcGVuX3ZpZXdfZGF0YShzZWxmLCB0YWJsZV9uYW1lKToKICAgICAg ICAgc2VsZi5kcml2ZXIuZmluZF9lbGVtZW50X2J5X2xpbmtfdGV4dCgiT2JqZWN0IikuY2xpY2so KQogICAgICAgICBBY3Rpb25DaGFpbnMoCkBAIC0yNTksNiArMjYxLDcgQEAgY2xhc3MgUGdhZG1p blBhZ2U6CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgICAg ICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAgICAgcmV0cnkgLT0gMQorCiAgICAgICAgIGlm IG9wdGlvbiA9PSAnYXV0b19jb21taXQnOgogICAgICAgICAgICAgdXBkYXRlX2V4ZWN1dGVfb3B0 aW9uX3NldHRpbmcoCiAgICAgICAgICAgICAgICAgUXVlcnlUb29sTG9jYXRvcnMuYnRuX2F1dG9f Y29tbWl0X2NoZWNrX3N0YXR1cywKQEAgLTMwMywyOSArMzA2LDMzIEBAIGNsYXNzIFBnYWRtaW5Q YWdlOgogICAgICAgICAgICAgICAgIFF1ZXJ5VG9vbExvY2F0b3JzLmJ0bl9hdXRvX3JvbGxiYWNr KQogCiAgICAgZGVmIGNsb3NlX2RhdGFfZ3JpZChzZWxmKToKLSAgICAgICAgc2VsZi5kcml2ZXIu c3dpdGNoX3RvX2RlZmF1bHRfY29udGVudCgpCisgICAgICAgIHNlbGYuZHJpdmVyLnN3aXRjaF90 by5kZWZhdWx0X2NvbnRlbnQoKQogICAgICAgICB4cGF0aCA9ICIvLypbQGlkPSdkb2NrZXJDb250 YWluZXInXS9kaXYvZGl2WzNdL2Rpdi9kaXZbMl0vZGl2WzFdIgogICAgICAgICBzZWxmLmNsaWNr X2VsZW1lbnQoc2VsZi5maW5kX2J5X3hwYXRoKHhwYXRoKSkKIAogICAgIGRlZiByZW1vdmVfc2Vy dmVyKHNlbGYsIHNlcnZlcl9jb25maWcpOgogICAgICAgICBzZWxmLmRyaXZlci5zd2l0Y2hfdG8u ZGVmYXVsdF9jb250ZW50KCkKLSAgICAgICAgc2VydmVyX3RvX3JlbW92ZSA9IHNlbGYuZmluZF9i eV94cGF0aCgKLSAgICAgICAgICAgICIvLypbQGlkPSd0cmVlJ10vLypbLj0nIiArIHNlcnZlcl9j b25maWdbJ25hbWUnXSArCi0gICAgICAgICAgICAiJyBhbmQgQGNsYXNzPSdhY2lUcmVlSXRlbSdd IikKLSAgICAgICAgc2VsZi5kcml2ZXIuZXhlY3V0ZV9zY3JpcHQoCi0gICAgICAgICAgICBzZWxm LmpzX2V4ZWN1dG9yX3Njcm9sbGludG92aWV3X2FyZywgc2VydmVyX3RvX3JlbW92ZSkKLSAgICAg ICAgc2VsZi5jbGlja19lbGVtZW50KHNlcnZlcl90b19yZW1vdmUpCi0gICAgICAgIG9iamVjdF9t ZW51X2l0ZW0gPSBzZWxmLmZpbmRfYnlfcGFydGlhbF9saW5rX3RleHQoIk9iamVjdCIpCi0gICAg ICAgIHNlbGYuY2xpY2tfZWxlbWVudChvYmplY3RfbWVudV9pdGVtKQotICAgICAgICBkZWxldGVf bWVudV9pdGVtID0gc2VsZi5maW5kX2J5X3BhcnRpYWxfbGlua190ZXh0KCJSZW1vdmUgU2VydmVy IikKLSAgICAgICAgc2VsZi5jbGlja19lbGVtZW50KGRlbGV0ZV9tZW51X2l0ZW0pCi0gICAgICAg IHNlbGYuY2xpY2tfbW9kYWwoJ1llcycpCi0gICAgICAgIHRpbWUuc2xlZXAoMSkKKyAgICAgICAg c2VydmVyX3RvX3JlbW92ZSA9IHNlbGYuY2hlY2tfaWZfZWxlbWVudF9leGlzdHNfd2l0aF9zY3Jv bGwoCisgICAgICAgICAgICBUcmVlQXJlYUxvY2F0b3JzLnNlcnZlcl9ub2RlKHNlcnZlcl9jb25m aWdbJ25hbWUnXSkpCisgICAgICAgIGlmIHNlcnZlcl90b19yZW1vdmU6CisgICAgICAgICAgICBz ZWxmLmRyaXZlci5leGVjdXRlX3NjcmlwdCgKKyAgICAgICAgICAgICAgICBzZWxmLmpzX2V4ZWN1 dG9yX3Njcm9sbGludG92aWV3X2FyZywgc2VydmVyX3RvX3JlbW92ZSkKKyAgICAgICAgICAgIHNl bGYuY2xpY2tfZWxlbWVudChzZXJ2ZXJfdG9fcmVtb3ZlKQorICAgICAgICAgICAgb2JqZWN0X21l bnVfaXRlbSA9IHNlbGYuZmluZF9ieV9wYXJ0aWFsX2xpbmtfdGV4dCgiT2JqZWN0IikKKyAgICAg ICAgICAgIHNlbGYuY2xpY2tfZWxlbWVudChvYmplY3RfbWVudV9pdGVtKQorICAgICAgICAgICAg ZGVsZXRlX21lbnVfaXRlbSA9IHNlbGYuZmluZF9ieV9wYXJ0aWFsX2xpbmtfdGV4dCgiUmVtb3Zl IFNlcnZlciIpCisgICAgICAgICAgICBzZWxmLmNsaWNrX2VsZW1lbnQoZGVsZXRlX21lbnVfaXRl bSkKKyAgICAgICAgICAgIHNlbGYuY2xpY2tfbW9kYWwoJ1llcycpCisgICAgICAgICAgICB0aW1l LnNsZWVwKDEpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmludCgiJXMgU2VydmVyIGlz IG5vdCByZW1vdmVkIiwgc2VydmVyX2NvbmZpZ1snbmFtZSddLAorICAgICAgICAgICAgICAgICAg ZmlsZT1zeXMuc3RkZXJyKQogCisgICAgIyBUT0RPIC0gTm90IHVzZWQgdG8gYmUgZGVsZXRlZAog ICAgIGRlZiBzZWxlY3RfdHJlZV9pdGVtKHNlbGYsIHRyZWVfaXRlbV90ZXh0KToKICAgICAgICAg aXRlbSA9IHNlbGYuZmluZF9ieV94cGF0aCgKLSAgICAgICAgICAgICIvLypbQGlkPSd0cmVlJ10v LypbY29udGFpbnModGV4dCgpLCAnIiArIHRyZWVfaXRlbV90ZXh0ICsgIicpXSIKLSAgICAgICAg ICAgICIvcGFyZW50OjpzcGFuW0BjbGFzcz0nYWNpVHJlZUl0ZW0nXSIpCisgICAgICAgICAgICAi Ly8qW0BpZD0ndHJlZSddLy8qW2NvbnRhaW5zKHRleHQoKSwgJyIgKyB0cmVlX2l0ZW1fdGV4dCAr CisgICAgICAgICAgICAiJyldL3BhcmVudDo6c3BhbltAY2xhc3M9J2FjaVRyZWVJdGVtJ10iKQog ICAgICAgICBzZWxmLmRyaXZlci5leGVjdXRlX3NjcmlwdChzZWxmLmpzX2V4ZWN1dG9yX3Njcm9s bGludG92aWV3X2FyZywgaXRlbSkKICAgICAgICAgIyB1bmV4cGVjdGVkIGV4Y2VwdGlvbiBsaWtl IGVsZW1lbnQgb3ZlcmxhcHBpbmcsIGNsaWNrIGF0dGVtcHRzIG1vcmUKICAgICAgICAgIyB0aGFu IG9uZSB0aW1lCkBAIC0zNDAsNiArMzQ3LDcgQEAgY2xhc3MgUGdhZG1pblBhZ2U6CiAgICAgICAg ICAgICAgICAgaWYgYXR0ZW1wdHMgPT0gMDoKICAgICAgICAgICAgICAgICAgICAgcmFpc2UgZQog CisgICAgIyBUT0RPIC0gTm90IHVzZWQgdG8gYmUgZGVsZXRlZAogICAgIGRlZiBjbGlja19hX3Ry ZWVfbm9kZShzZWxmLCBlbGVtZW50X25hbWUsIGxpc3Rfb2ZfZWxlbWVudCk6CiAgICAgICAgICIi Ikl0IHdpbGwgY2xpY2sgYSB0cmVlIG5vZGUgZWcuIHNlcnZlciwgc2NoZW1hLCB0YWJsZSBuYW1l IGV0YwogICAgICAgICB3aWxsIHRha2Ugc2VydmVyIG5hbWUgYW5kIGxpc3Qgb2YgZWxlbWVudCB3 aGVyZSB0aGlzIG5vZGUgbGllcyIiIgpAQCAtMzY4LDMzMyArMzc2LDQyMyBAQCBjbGFzcyBQZ2Fk bWluUGFnZToKICAgICAgICAgICAgICAgICAgICJjbGlja19hX3RyZWVfbm9kZSBzZWVtcyBlbXB0 eSIpCiAgICAgICAgIHJldHVybiBvcGVyYXRpb25fc3RhdHVzCiAKLSAgICBkZWYgdG9nZ2xlX29w ZW5fc2VydmVyc19ncm91cChzZWxmKToKLSAgICAgICAgIiIiVGhpcyB3aWxsIG9wZW4gU2VydmVy cyBncm91cCB0byBkaXNwbGF5IHVuZGVybHlpbmcgbm9kZXMiIiIKLSAgICAgICAgaXNfZXhwYW5k ZWQgPSBGYWxzZQorICAgIGRlZiBjbGlja190b19leHBhbmRfdHJlZV9ub2RlKHNlbGYsIHRyZWVf bm9kZV93ZWJfZWxlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVl X25vZGVfZXhwX2NoZWNrX3hwYXRoKToKKyAgICAgICAgIiIiCisgICAgICAgIE1ldGhvZCBjbGlj a3MgcGFzc2VkIHdlYmVsZW1lbnQgdG8gZXhwYW5kIHNwZWNpZmllZCB0cmVlIG5vZGUKKyAgICAg ICAgOnBhcmFtIHRyZWVfbm9kZV93ZWJfZWxlbWVudDoKKyAgICAgICAgOnBhcmFtIHRyZWVfbm9k ZV9leHBfY2hlY2tfeHBhdGg6CisgICAgICAgIDpyZXR1cm46IFRydWUgaXMgdHJlZV9ub2RlX2V4 cF9jaGVja194cGF0aCBwcmVzZW50IGluIERPTSBlbHNlIGZhbHNlCisgICAgICAgICIiIgorICAg ICAgICB3ZWJkcml2ZXIuQWN0aW9uQ2hhaW5zKHNlbGYuZHJpdmVyKS5kb3VibGVfY2xpY2soCisg ICAgICAgICAgICB0cmVlX25vZGVfd2ViX2VsZW1lbnQpLnBlcmZvcm0oKQorICAgICAgICBpZiBz ZWxmLmNoZWNrX2lmX2VsZW1lbnRfZXhpc3RfYnlfeHBhdGgodHJlZV9ub2RlX2V4cF9jaGVja194 cGF0aCk6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAg ICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgZXhwYW5kX3NlcnZlcl9ncm91cF9ub2RlKHNlbGYs IHNlcnZlcl9ncm91cF9uYW1lKToKKyAgICAgICAgIiIiCisgICAgICAgIEV4cGFuZHMgc3BlY2lm aWVkIHNlcnZlciBncm91cAorICAgICAgICA6cGFyYW0gc2VydmVyX2dyb3VwX25hbWU6CisgICAg ICAgIDpyZXR1cm46IFRydWUgaXMgc2VydmVyIGdyb3VwIGlzIGV4cGFuZGVkIGVsc2UgZmFsc2UK KyAgICAgICAgIiIiCisgICAgICAgIHNlcnZlcl9ncm91cF9leHBhbmRlZCA9IEZhbHNlCiAgICAg ICAgIHNlbGYud2FpdF9mb3Jfc3Bpbm5lcl90b19kaXNhcHBlYXIoKQotICAgICAgICBpZiBzZWxm LmNoZWNrX2lmX2VsZW1lbnRfZXhpc3RfYnlfeHBhdGgoCi0gICAgICAgICAgICAgICAgVHJlZUFy ZWFMb2NhdG9ycy5zZXJ2ZXJfZ3JvdXBfbm9kZSk6Ci0gICAgICAgICAgICBpZiBzZWxmLmdldF9l eHBhbnNpb25fc3RhdHVzX29mX25vZGUoCi0gICAgICAgICAgICAgICAgICAgIFRyZWVBcmVhTG9j YXRvcnMuc2VydmVyX2dyb3VwX25vZGVfZXhwX3N0YXR1cyk6Ci0gICAgICAgICAgICAgICAgaXNf ZXhwYW5kZWQgPSBUcnVlCisgICAgICAgIHNlcnZlcl9ncm91cF9ub2RlX3hwYXRoID0gXAorICAg ICAgICAgICAgVHJlZUFyZWFMb2NhdG9ycy5zZXJ2ZXJfZ3JvdXBfbm9kZShzZXJ2ZXJfZ3JvdXBf bmFtZSkKKyAgICAgICAgc2VydmVyX2dyb3VwX25vZGVfZXhwX3N0YXR1c194cGF0aCA9IFwKKyAg ICAgICAgICAgIFRyZWVBcmVhTG9jYXRvcnMuc2VydmVyX2dyb3VwX25vZGVfZXhwX3N0YXR1cyhz ZXJ2ZXJfZ3JvdXBfbmFtZSkKKyAgICAgICAgc2VydmVyX2dyb3VwX25vZGUgPSBzZWxmLmNoZWNr X2lmX2VsZW1lbnRfZXhpc3RzX3dpdGhfc2Nyb2xsKAorICAgICAgICAgICAgc2VydmVyX2dyb3Vw X25vZGVfeHBhdGgpCisKKyAgICAgICAgaWYgc2VydmVyX2dyb3VwX25vZGU6CisgICAgICAgICAg ICBpZiBzZWxmLmNoZWNrX2lmX2VsZW1lbnRfZXhpc3RfYnlfeHBhdGgoCisgICAgICAgICAgICAg ICAgICAgIHNlcnZlcl9ncm91cF9ub2RlX2V4cF9zdGF0dXNfeHBhdGgsIDEpOgorICAgICAgICAg ICAgICAgIHNlcnZlcl9ncm91cF9leHBhbmRlZCA9IFRydWUKICAgICAgICAgICAgIGVsc2U6Ci0g ICAgICAgICAgICAgICAgd2ViZHJpdmVyLkFjdGlvbkNoYWlucyhzZWxmLmRyaXZlcikuZG91Ymxl X2NsaWNrKAotICAgICAgICAgICAgICAgICAgICBzZWxmLmZpbmRfYnlfeHBhdGgoCi0gICAgICAg ICAgICAgICAgICAgICAgICBUcmVlQXJlYUxvY2F0b3JzLgotICAgICAgICAgICAgICAgICAgICAg ICAgc2VydmVyX2dyb3VwX25vZGUpKS5wZXJmb3JtKCkKLSAgICAgICAgICAgICAgICBpZiBzZWxm LmNoZWNrX2lmX2VsZW1lbnRfZXhpc3RfYnlfeHBhdGgoCi0gICAgICAgICAgICAgICAgICAgICAg ICBUcmVlQXJlYUxvY2F0b3JzLnNlcnZlcl9ncm91cF9zdWJfbm9kZXMpOgotICAgICAgICAgICAg ICAgICAgICBpc19leHBhbmRlZCA9IFRydWUKKyAgICAgICAgICAgICAgICBzZXJ2ZXJfZ3JvdXBf ZXhwYW5kZWQgPSBzZWxmLmNsaWNrX3RvX2V4cGFuZF90cmVlX25vZGUoCisgICAgICAgICAgICAg ICAgICAgIHNlcnZlcl9ncm91cF9ub2RlLCBzZXJ2ZXJfZ3JvdXBfbm9kZV9leHBfc3RhdHVzX3hw YXRoKQorICAgICAgICAgICAgICAgIGlmIHNlcnZlcl9ncm91cF9leHBhbmRlZDoKKyAgICAgICAg ICAgICAgICAgICAgc2VydmVyX2dyb3VwX2V4cGFuZGVkID0gVHJ1ZQogICAgICAgICAgICAgICAg IGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KAotICAgICAgICAgICAgICAgICAgICAg ICAgIih0b2dnbGVfb3Blbl9zZXJ2ZXJzX2dyb3VwKVRoZSBTZXJ2ZXIgR3JvdXAgIgotICAgICAg ICAgICAgICAgICAgICAgICAgIm5vZGUgaXMgY2xpY2tlZCB0byBleHBhbmQgYnV0IGl0IGlzIG5v dCBleHBhbmRlZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICBmaWxlPXN5cy5zdGRlcnIpCisg ICAgICAgICAgICAgICAgICAgIHByaW50KCIoZXhwYW5kX3NlcnZlcl9ncm91cF9ub2RlKVRoZSBT ZXJ2ZXIgR3JvdXAgbm9kZSBpcyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJjbGlja2Vk IHRvIGV4cGFuZCBidXQgaXQgaXMgbm90IGV4cGFuZGVkIiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgZmlsZT1zeXMuc3RkZXJyKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgcHJpbnQo IlRoZSBTZXJ2ZXIgR3JvdXAgbm9kZSBpcyBub3QgdmlzaWJsZSIsCisgICAgICAgICAgICBwcmlu dCgiKGV4cGFuZF9zZXJ2ZXJfZ3JvdXBfbm9kZSlUaGUgU2VydmVyIEdyb3VwIG5vZGUgbm90IGZv dW5kIiwKICAgICAgICAgICAgICAgICAgIGZpbGU9c3lzLnN0ZGVycikKLSAgICAgICAgcmV0dXJu IGlzX2V4cGFuZGVkCisgICAgICAgIHJldHVybiBzZXJ2ZXJfZ3JvdXBfZXhwYW5kZWQKIAotICAg IGRlZiBleHBhbmRfc2VydmVyX25vZGUoc2VsZiwgc2VydmVyX25hbWUsIHNlcnZlcl9wYXNzd29y ZCk6Ci0gICAgICAgICIiIndpbGwgZXhwYW5kIGEgcGFydGljdWxhciBzZXJ2ZXIgbm9kZSIiIgot ICAgICAgICBzZXJ2ZXJfbm9kZV9leHBhbnNpb25fc3RhdHVzID0gRmFsc2UKLSAgICAgICAgaWYg c2VsZi50b2dnbGVfb3Blbl9zZXJ2ZXJzX2dyb3VwKCk6Ci0gICAgICAgICAgICBpZiBzZWxmLndh aXRfZm9yX2VsZW1lbnRzX3RvX2FwcGVhcigKLSAgICAgICAgICAgICAgICBzZWxmLmRyaXZlciwK LSAgICAgICAgICAgICAgICAgICAgVHJlZUFyZWFMb2NhdG9ycy5zZXJ2ZXJfZ3JvdXBfc3ViX25v ZGVzKToKLSAgICAgICAgICAgICAgICBzdWJub2Rlc19vZl9zZXJ2ZXJzID0gc2VsZi5maW5kX2J5 X3hwYXRoX2xpc3QoCi0gICAgICAgICAgICAgICAgICAgIFRyZWVBcmVhTG9jYXRvcnMuc2VydmVy X2dyb3VwX3N1Yl9ub2RlcykKLSAgICAgICAgICAgICAgICBzdWJub2Rlc19vZl9zZXJ2ZXJzX2V4 cGFuc2lvbl9zdGF0dXMgPSBcCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuZmluZF9ieV94cGF0 aF9saXN0KAotICAgICAgICAgICAgICAgICAgICAgICAgVHJlZUFyZWFMb2NhdG9ycy4KLSAgICAg ICAgICAgICAgICAgICAgICAgIHNlcnZlcl9ncm91cF9zdWJfbm9kZXNfZXhwX3N0YXR1cykKLSAg ICAgICAgICAgICAgICBpbmRleF9vZl9zZXJ2ZXJfbm9kZSA9IHNlbGYuZ2V0X2luZGV4X29mX2Vs ZW1lbnQoCi0gICAgICAgICAgICAgICAgICAgIHN1Ym5vZGVzX29mX3NlcnZlcnMsIHNlcnZlcl9u YW1lKQotCi0gICAgICAgICAgICAgICAgc2VydmVyX25vZGVfZXhwYW5zaW9uX3N0YXR1cyA9IHNl bGYuY2xpY2tfZXhwYW5kX3NlcnZlcl9ub2RlKAotICAgICAgICAgICAgICAgICAgICBzdWJub2Rl c19vZl9zZXJ2ZXJzX2V4cGFuc2lvbl9zdGF0dXMsCi0gICAgICAgICAgICAgICAgICAgIGluZGV4 X29mX3NlcnZlcl9ub2RlLAotICAgICAgICAgICAgICAgICAgICBzdWJub2Rlc19vZl9zZXJ2ZXJz LAotICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAg c2VydmVyX3Bhc3N3b3JkKQorICAgIGRlZiBleHBhbmRfc2VydmVyX25vZGUoc2VsZiwgc2VydmVy X2dyb3VwX25hbWUsIHNlcnZlcl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vy dmVyX3Bhc3N3b3JkKToKKyAgICAgICAgIiIiCisgICAgICAgIE1ldGhvZCBleHBhbmRzIHNwZWNp ZmllZCBzZXJ2ZXIgbm9kZQorICAgICAgICA6cGFyYW0gc2VydmVyX2dyb3VwX25hbWU6IGNvbnRh aW5pbmcgc2VydmVyCisgICAgICAgIDpwYXJhbSBzZXJ2ZXJfbmFtZToKKyAgICAgICAgOnBhcmFt IHNlcnZlcl9wYXNzd29yZDoKKyAgICAgICAgOnJldHVybjogdHJ1ZSBpZiBzZXJ2ZXIgbm9kZSBp cyBleHBuYWRlZCBlbHNlIGZhbHNlCisgICAgICAgICIiIgorICAgICAgICBzZXJ2ZXJfZXhwYW5k ZWQgPSBGYWxzZQorICAgICAgICBzZXJ2ZXJfbm9kZV94cGF0aCA9IFRyZWVBcmVhTG9jYXRvcnMu c2VydmVyX25vZGUoc2VydmVyX25hbWUpCisgICAgICAgIHNlcnZlcl9ub2RlX2V4cF9zdGF0dXNf eHBhdGggPSBcCisgICAgICAgICAgICBUcmVlQXJlYUxvY2F0b3JzLnNlcnZlcl9ub2RlX2V4cF9z dGF0dXMoc2VydmVyX25hbWUpCisgICAgICAgIGlmIHNlbGYuZXhwYW5kX3NlcnZlcl9ncm91cF9u b2RlKHNlcnZlcl9ncm91cF9uYW1lKToKKyAgICAgICAgICAgIHNlcnZlcl9ub2RlID0gXAorICAg ICAgICAgICAgICAgIHNlbGYuY2hlY2tfaWZfZWxlbWVudF9leGlzdHNfd2l0aF9zY3JvbGwoc2Vy dmVyX25vZGVfeHBhdGgpCisgICAgICAgICAgICBpZiBzZXJ2ZXJfbm9kZToKKyAgICAgICAgICAg ICAgICBzZWxmLmRyaXZlci5leGVjdXRlX3NjcmlwdCgKKyAgICAgICAgICAgICAgICAgICAgc2Vs Zi5qc19leGVjdXRvcl9zY3JvbGxpbnRvdmlld19hcmcsIHNlcnZlcl9ub2RlKQorICAgICAgICAg ICAgICAgIGlmIHNlbGYuY2hlY2tfaWZfZWxlbWVudF9leGlzdF9ieV94cGF0aCgKKyAgICAgICAg ICAgICAgICAgICAgICAgIHNlcnZlcl9ub2RlX2V4cF9zdGF0dXNfeHBhdGgsIDEpOgorICAgICAg ICAgICAgICAgICAgICBzZXJ2ZXJfZXhwYW5kZWQgPSBUcnVlCisgICAgICAgICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICAgICAgICAgc2VydmVyX2V4cGFuZGVkID0gc2VsZi5jbGlja19leHBh bmRfc2VydmVyX25vZGUoCisgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfbmFtZSwgc2Vy dmVyX3Bhc3N3b3JkLCBzZXJ2ZXJfbm9kZSkKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHNl cnZlcl9leHBhbmRlZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCIoZXhwYW5kX3Nl cnZlcl9ub2RlKVRoZSBTZXJ2ZXIgbm9kZSBpcyBub3QgIgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImV4cG5hZGVkIiwgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICAgICBwcmludCgiKGV4cGFuZF9zZXJ2ZXJfbm9kZSlUaGUgU2VydmVyIG5v ZGUgbm90IGZvdW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICBmaWxlPXN5cy5zdGRlcnIpCiAg ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwcmludCgKLSAgICAgICAgICAgICAgICAiKGV4cGFu ZF9zZXJ2ZXJfbm9kZSkgVGhlIFNlcnZlcnMgbm9kZSBpcyIKLSAgICAgICAgICAgICAgICAiIG5v dCBleHBhbmRlZCIsCi0gICAgICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyKQotICAgICAgICBy ZXR1cm4gc2VydmVyX25vZGVfZXhwYW5zaW9uX3N0YXR1cworICAgICAgICAgICAgcHJpbnQoIlRo ZSBzZXJ2ZXIgZ3JvdXAgbm9kZSBpcyBub3QgZXhwYW5kZWQiLCBmaWxlPXN5cy5zdGRlcnIpCisg ICAgICAgIHJldHVybiBzZXJ2ZXJfZXhwYW5kZWQKIAotICAgIGRlZiBjbGlja19leHBhbmRfc2Vy dmVyX25vZGUoc2VsZiwgc3Vibm9kZXNfb2Zfc2VydmVyc19leHBhbnNpb25fc3RhdHVzLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhfb2Zfc2VydmVyX25vZGUsIHN1Ym5v ZGVzX29mX3NlcnZlcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJf bmFtZSwgc2VydmVyX3Bhc3N3b3JkKToKKyAgICBkZWYgY2xpY2tfZXhwYW5kX3NlcnZlcl9ub2Rl KHNlbGYsIHNlcnZlcl9uYW1lLCBzZXJ2ZXJfcGFzc3dvcmQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXJ2ZXJfbm9kZSk6CiAgICAgICAgICIiIgogICAgICAgICBNZXRob2Qg YWN0dWFsbHkgY2xpY2tzIG9uIHNlcnZlciBub2RlIHRvIGV4cGFuZAotICAgICAgICA6cGFyYW0g c3Vibm9kZXNfb2Zfc2VydmVyc19leHBhbnNpb25fc3RhdHVzOgotICAgICAgICA6cGFyYW0gaW5k ZXhfb2Zfc2VydmVyX25vZGU6Ci0gICAgICAgIDpwYXJhbSBzdWJub2Rlc19vZl9zZXJ2ZXJzOgog ICAgICAgICA6cGFyYW0gc2VydmVyX25hbWU6CiAgICAgICAgIDpwYXJhbSBzZXJ2ZXJfcGFzc3dv cmQ6CisgICAgICAgIDpwYXJhbSBzZXJ2ZXJfbm9kZToKICAgICAgICAgOnJldHVybjogVHJ1ZSBp cyBjbGljayBhY3Rpb24gaXMgc3VjY2Vzc2Z1bCAmIHNlcnZlciBub2RlIGV4cGFuZGVkCiAgICAg ICAgICIiIgogICAgICAgICBzZXJ2ZXJfbm9kZV9leHBhbnNpb25fc3RhdHVzID0gRmFsc2UKLSAg ICAgICAgaWYgbm90IHNlbGYuY2hlY2tfc2VydmVyX2lzX2Nvbm5lY3RlZCgKLSAgICAgICAgICAg ICAgICBpbmRleF9vZl9zZXJ2ZXJfbm9kZSk6Ci0gICAgICAgICAgICBpZiBzZWxmLmNsaWNrX2Fu ZF9jb25uZWN0X3NlcnZlcigKLSAgICAgICAgICAgICAgICBzdWJub2Rlc19vZl9zZXJ2ZXJzW2lu ZGV4X29mX3NlcnZlcl9ub2RlXSwKLSAgICAgICAgICAgICAgICAgICAgc2VydmVyX3Bhc3N3b3Jk KToKKyAgICAgICAgaWYgc2VsZi5jaGVja19zZXJ2ZXJfaXNfY29ubmVjdGVkKHNlcnZlcl9uYW1l KToKKyAgICAgICAgICAgIGlmIHNlbGYuY2hlY2tfaWZfZWxlbWVudF9leGlzdF9ieV94cGF0aCgK KyAgICAgICAgICAgICAgICAgICAgVHJlZUFyZWFMb2NhdG9ycy5zZXJ2ZXJfbm9kZV9leHBfc3Rh dHVzKHNlcnZlcl9uYW1lKSwgMSk6CiAgICAgICAgICAgICAgICAgc2VydmVyX25vZGVfZXhwYW5z aW9uX3N0YXR1cyA9IFRydWUKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcHJp bnQoCi0gICAgICAgICAgICAgICAgICAgICIoZXhwYW5kX3NlcnZlcl9ub2RlKVRoZSBzZXJ2ZXIg bm9kZSBpcyAiCi0gICAgICAgICAgICAgICAgICAgICJub3QgZXhwYW5kZWQiLAotICAgICAgICAg ICAgICAgICAgICBmaWxlPXN5cy5zdGRlcnIpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBp ZiBub3Qgc2VsZi5nZXRfZXhwYW5zaW9uX3N0YXR1c19vZl9ub2RlX2VsZW1lbnQoCi0gICAgICAg ICAgICAgICAgc3Vibm9kZXNfb2Zfc2VydmVyc19leHBhbnNpb25fc3RhdHVzWwotICAgICAgICAg ICAgICAgICAgICBpbmRleF9vZl9zZXJ2ZXJfbm9kZV0pOgorICAgICAgICAgICAgICAgICMgaWYg c2VydmVyIGlzIGNvbm5lY3RlZCBidXQgbm90IGV4cGFuZGVkCiAgICAgICAgICAgICAgICAgd2Vi ZHJpdmVyLkFjdGlvbkNoYWlucyhzZWxmLmRyaXZlcikuZG91YmxlX2NsaWNrKAotICAgICAgICAg ICAgICAgICAgICBzdWJub2Rlc19vZl9zZXJ2ZXJzWwotICAgICAgICAgICAgICAgICAgICAgICAg aW5kZXhfb2Zfc2VydmVyX25vZGVdKS5wZXJmb3JtKCkKLSAgICAgICAgICAgICAgICBpZiBzZWxm LndhaXRfZm9yX2VsZW1lbnRzX3RvX2FwcGVhcigKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5k cml2ZXIsIFRyZWVBcmVhTG9jYXRvcnMuCi0gICAgICAgICAgICAgICAgICAgICAgICBzdWJfbm9k ZXNfb2ZfYV9zZXJ2ZXJfbm9kZShzZXJ2ZXJfbmFtZSksCi0gICAgICAgICAgICAgICAgICAgICAg ICAzMCk6CisgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9ub2RlKS5wZXJmb3JtKCkKKyAgICAg ICAgICAgICAgICBpZiBzZWxmLmNoZWNrX2lmX2VsZW1lbnRfZXhpc3RfYnlfeHBhdGgoCisgICAg ICAgICAgICAgICAgICAgICAgICBUcmVlQXJlYUxvY2F0b3JzLnNlcnZlcl9ub2RlX2V4cF9zdGF0 dXMoc2VydmVyX25hbWUpKToKICAgICAgICAgICAgICAgICAgICAgc2VydmVyX25vZGVfZXhwYW5z aW9uX3N0YXR1cyA9IFRydWUKLSAgICAgICAgICAgIGVsc2U6CisgICAgICAgIGVsc2U6CisgICAg ICAgICAgICBpZiBzZWxmLmNsaWNrX2FuZF9jb25uZWN0X3NlcnZlcihzZXJ2ZXJfbmFtZSwgc2Vy dmVyX3Bhc3N3b3JkKToKICAgICAgICAgICAgICAgICBzZXJ2ZXJfbm9kZV9leHBhbnNpb25fc3Rh dHVzID0gVHJ1ZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwcmludCgiKGV4 cGFuZF9zZXJ2ZXJfbm9kZSlUaGUgc2VydmVyIG5vZGUgaXMgbm90IGV4cGFuZGVkIiwKKyAgICAg ICAgICAgICAgICAgICAgICBmaWxlPXN5cy5zdGRlcnIpCiAgICAgICAgIHJldHVybiBzZXJ2ZXJf bm9kZV9leHBhbnNpb25fc3RhdHVzCiAKLSAgICBkZWYgZXhwYW5kX2RhdGFiYXNlc19ub2RlKHNl bGYsIHNlcnZlcl9uYW1lLCBzZXJ2ZXJfcGFzc3dvcmQpOgotICAgICAgICAiIiJ3aWxsIGV4cGFu ZCBkYXRhYmFzZXMgbm9kZSB1bmRlciBzZXJ2ZXIgbm9kZSIiIgotICAgICAgICBkYXRhYmFzZXNf bm9kZV9leHBhbmRlZCA9IEZhbHNlCi0gICAgICAgIGlmIHNlbGYuZXhwYW5kX3NlcnZlcl9ub2Rl KHNlcnZlcl9uYW1lLCBzZXJ2ZXJfcGFzc3dvcmQpOgotICAgICAgICAgICAgaWYgc2VsZi53YWl0 X2Zvcl9lbGVtZW50c190b19hcHBlYXIoCi0gICAgICAgICAgICAgICAgc2VsZi5kcml2ZXIsCi0g ICAgICAgICAgICAgICAgICAgIFRyZWVBcmVhTG9jYXRvcnMuc3ViX25vZGVzX29mX2Ffc2VydmVy X25vZGUoc2VydmVyX25hbWUpKToKLSAgICAgICAgICAgICAgICBzdWJub2Rlc19vZl9zZXJ2ZXJf bm9kZSA9IHNlbGYuZmluZF9ieV94cGF0aF9saXN0KAotICAgICAgICAgICAgICAgICAgICBUcmVl QXJlYUxvY2F0b3JzLnN1Yl9ub2Rlc19vZl9hX3NlcnZlcl9ub2RlKHNlcnZlcl9uYW1lKSkKLSAg ICAgICAgICAgICAgICBzdWJub2RlX29mX3NlcnZlcl9ub2RlX2V4cF9zdGF0dXMgPSBzZWxmLmZp bmRfYnlfeHBhdGhfbGlzdCgKLSAgICAgICAgICAgICAgICAgICAgVHJlZUFyZWFMb2NhdG9ycy5z dWJfbm9kZXNfb2ZfYV9zZXJ2ZXJfbm9kZV9leHBfc3RhdHVzKAotICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyX25hbWUpKQotICAgICAgICAgICAgICAgIGluZGV4X29mX2RhdGFiYXNlc19u b2RlID0gc2VsZi5nZXRfaW5kZXhfb2ZfZWxlbWVudCgKLSAgICAgICAgICAgICAgICAgICAgc3Vi bm9kZXNfb2Zfc2VydmVyX25vZGUsCi0gICAgICAgICAgICAgICAgICAgICJEYXRhYmFzZXMiKQot ICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMikKLSAgICAgICAgICAgICAgICBleHBhbnNpb25f c3RhdHVzID0gc2VsZi5nZXRfZXhwYW5zaW9uX3N0YXR1c19vZl9ub2RlX2VsZW1lbnQoCi0gICAg ICAgICAgICAgICAgICAgIHN1Ym5vZGVfb2Zfc2VydmVyX25vZGVfZXhwX3N0YXR1c1tpbmRleF9v Zl9kYXRhYmFzZXNfbm9kZV0pCi0gICAgICAgICAgICAgICAgaWYgbm90IGV4cGFuc2lvbl9zdGF0 dXM6Ci0gICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlc19ub2RlX2V4cGFuZGVkID0gXAotICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5jbGlja190b19leHBhbmRfZGF0YWJhc2VzX25vZGUo Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vibm9kZXNfb2Zfc2VydmVyX25vZGUsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhfb2ZfZGF0YWJhc2VzX25vZGUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX25hbWUpCi0gICAgICAgICAgICAgICAgZWxz ZToKLSAgICAgICAgICAgICAgICAgICAgZGF0YWJhc2VzX25vZGVfZXhwYW5kZWQgPSBUcnVlCi0g ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwcmludCgiVGhlIHNlcnZlci9wcmV2aW91cyBub2Rl cyBub3QgZXhwYW5kZWQiLAorICAgIGRlZiBjaGVja19zZXJ2ZXJfaXNfY29ubmVjdGVkKHNlbGYs IHNlcnZlcl9uYW1lKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgd2lsbCBjaGVjayBjb25u ZWN0ZWQgc3RhdHVzIG9mIGEgc2VydmVyIgorICAgICAgICA6cGFyYW0gc2VydmVyX25hbWU6Cisg ICAgICAgIDpyZXR1cm46IHRydWUgaWYgc2VydmVyIGlzIGNvbm5lY3RlZAorICAgICAgICAiIiIK KyAgICAgICAgc2VydmVyX2Nvbm5lY3RlZCA9IEZhbHNlCisgICAgICAgIHRyeToKKyAgICAgICAg ICAgIHNlcnZlcl9jb25uZWN0aW9uX3N0YXR1c19lbGVtZW50ID0gc2VsZi5maW5kX2J5X3hwYXRo KAorICAgICAgICAgICAgICAgIFRyZWVBcmVhTG9jYXRvcnMuc2VydmVyX2Nvbm5lY3Rpb25fc3Rh dHVzX2VsZW1lbnQoc2VydmVyX25hbWUpKQorICAgICAgICAgICAgc2VydmVyX2NsYXNzID0gc2Vy dmVyX2Nvbm5lY3Rpb25fc3RhdHVzX2VsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgKKyAgICAgICAgICAg ICAgICAnY2xhc3MnKQorICAgICAgICAgICAgaWYgc2VydmVyX2NsYXNzID09ICdpY29uLXBnJyBv ciBzZXJ2ZXJfY2xhc3MgPT0gJ2ljb24tcHBhcyc6CisgICAgICAgICAgICAgICAgc2VydmVyX2Nv bm5lY3RlZCA9IFRydWUKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAg ICAgcHJpbnQoIlRoZXJlIGlzIHNvbWUgZXhjZXB0aW9uIHRocm93biBpbiB0aGUgZnVuY3Rpb24g IgorICAgICAgICAgICAgICAgICAgImNoZWNrX3NlcnZlcl9pc19jb25uZWN0ZWQgYW5kIGlzOiAi ICsgc3RyKGUpLAogICAgICAgICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyKQotICAgICAgICBy ZXR1cm4gZGF0YWJhc2VzX25vZGVfZXhwYW5kZWQKKyAgICAgICAgcmV0dXJuIHNlcnZlcl9jb25u ZWN0ZWQKIAotICAgIGRlZiBjbGlja190b19leHBhbmRfZGF0YWJhc2VzX25vZGUoc2VsZiwgc3Vi bm9kZXNfb2Zfc2VydmVyX25vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbmRleF9vZl9kYXRhYmFzZXNfbm9kZSwgc2VydmVyX25hbWUpOgorICAgIGRlZiBjbGlj a19hbmRfY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VydmVyX25hbWUsIHBhc3N3b3JkKToKICAgICAg ICAgIiIiCi0gICAgICAgIE1ldGhvZCBjbGlja3Mgb24gZGF0YWJhc2VzIG5vZGUgb2Ygc3BlY2lm aWVkIHNlcnZlciB0byBleHBhbmQKLSAgICAgICAgOnBhcmFtIHN1Ym5vZGVzX29mX3NlcnZlcl9u b2RlOgotICAgICAgICA6cGFyYW0gaW5kZXhfb2ZfZGF0YWJhc2VzX25vZGU6CisgICAgICAgIE1l dGhvZCB3aWxsIGNvbm5lY3QgdG8gc2VydmVyIHdpdGggcGFzc3dvcmQKICAgICAgICAgOnBhcmFt IHNlcnZlcl9uYW1lOgotICAgICAgICA6cmV0dXJuOiBUcnVlIGlmIGRhdGFiYXNlIG5vZGUgY2xp Y2sgaXMgc3VjY2Vzc2Z1bCAmIGV4cGFuZGVkCisgICAgICAgIDpwYXJhbSBwYXNzd29yZDoKKyAg ICAgICAgOnJldHVybjoKICAgICAgICAgIiIiCi0gICAgICAgIHJldHJ5ID0gNQotICAgICAgICBk YXRhYmFzZXNfbm9kZV9leHBhbmRlZCA9IEZhbHNlCi0gICAgICAgIHdoaWxlIHJldHJ5ID4gMDoK LSAgICAgICAgICAgIHdlYmRyaXZlci5BY3Rpb25DaGFpbnMoc2VsZi5kcml2ZXIpLmRvdWJsZV9j bGljaygKLSAgICAgICAgICAgICAgICBzdWJub2Rlc19vZl9zZXJ2ZXJfbm9kZVsKLSAgICAgICAg ICAgICAgICAgICAgaW5kZXhfb2ZfZGF0YWJhc2VzX25vZGVdLmZpbmRfZWxlbWVudF9ieV94cGF0 aCgKLSAgICAgICAgICAgICAgICAgICAgIi4vLypbQGNsYXNzPSdhY2lUcmVlSXRlbSddIikKLSAg ICAgICAgICAgICkucGVyZm9ybSgpCi0gICAgICAgICAgICBpZiBzZWxmLndhaXRfZm9yX2VsZW1l bnRzX3RvX2FwcGVhcigKLSAgICAgICAgICAgICAgICBzZWxmLmRyaXZlciwgVHJlZUFyZWFMb2Nh dG9ycy4KLSAgICAgICAgICAgICAgICAgICAgc3ViX25vZGVzX29mX2RhdGFiYXNlc19ub2RlKHNl cnZlcl9uYW1lKSwgMyk6Ci0gICAgICAgICAgICAgICAgZGF0YWJhc2VzX25vZGVfZXhwYW5kZWQg PSBUcnVlCi0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg ICAgICAgICAgcmV0cnkgLT0gMQotICAgICAgICByZXR1cm4gZGF0YWJhc2VzX25vZGVfZXhwYW5k ZWQKKyAgICAgICAgc2VydmVyX2Nvbm5lY3Rpb25fc3RhdHVzID0gRmFsc2UKKyAgICAgICAgdHJ5 OgorICAgICAgICAgICAgc2VydmVyX25vZGVfZWxlID0gc2VsZi5maW5kX2J5X3hwYXRoKAorICAg ICAgICAgICAgICAgIFRyZWVBcmVhTG9jYXRvcnMuc2VydmVyX25vZGUoc2VydmVyX25hbWUpKQor ICAgICAgICAgICAgd2ViZHJpdmVyLkFjdGlvbkNoYWlucyhzZWxmLmRyaXZlcikuIFwKKyAgICAg ICAgICAgICAgICBkb3VibGVfY2xpY2soc2VydmVyX25vZGVfZWxlKS5wZXJmb3JtKCkKKyAgICAg ICAgICAgIGlmIHNlbGYuY2hlY2tfaWZfZWxlbWVudF9leGlzdF9ieV94cGF0aCgKKyAgICAgICAg ICAgICAgICAgICAgQ29ubmVjdFRvU2VydmVyRGl2Lm9rX2J1dHRvbik6CisgICAgICAgICAgICAg ICAgZmllbGQgPSBzZWxmLmZpbmRfYnlfeHBhdGgoCisgICAgICAgICAgICAgICAgICAgIENvbm5l Y3RUb1NlcnZlckRpdi5wYXNzd29yZF9maWVsZCkKKyAgICAgICAgICAgICAgICBzZWxmLmZpbGxf aW5wdXQoZmllbGQsIHBhc3N3b3JkKQorICAgICAgICAgICAgICAgIHNlbGYuZmluZF9ieV94cGF0 aChDb25uZWN0VG9TZXJ2ZXJEaXYub2tfYnV0dG9uKS5jbGljaygpCisgICAgICAgICAgICAgICAg c2VsZi53YWl0X2Zvcl9lbGVtZW50X3RvX2Rpc2FwcGVhcigKKyAgICAgICAgICAgICAgICAgICAg bGFtYmRhIGRyaXZlcjogZHJpdmVyLmZpbmRfZWxlbWVudF9ieV94cGF0aCgKKyAgICAgICAgICAg ICAgICAgICAgICAgIENvbm5lY3RUb1NlcnZlckRpdi5va19idXR0b24pKQorICAgICAgICAgICAg ICAgIGlmIHNlbGYuY2hlY2tfaWZfZWxlbWVudF9leGlzdF9ieV94cGF0aCgKKyAgICAgICAgICAg ICAgICAgICAgICAgIENvbm5lY3RUb1NlcnZlckRpdi5lcnJvcl9tZXNzYWdlLCAyKToKKyAgICAg ICAgICAgICAgICAgICAgcHJpbnQoCisgICAgICAgICAgICAgICAgICAgICAgICAiV2hpbGUgZW50 ZXJpbmcgcGFzc3dvcmQgaW4gY2xpY2tfYW5kX2Nvbm5lY3Rfc2VydmVyICIKKyAgICAgICAgICAg ICAgICAgICAgICAgICJmdW5jdGlvbiwgZXJyb3IgaXMgb2NjdXJyZWQgOiAiICsgc3RyKAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmluZF9ieV94cGF0aCgKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ29ubmVjdFRvU2VydmVyRGl2LmVycm9yX21lc3NhZ2UpLnRl eHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9jb25uZWN0aW9uX3N0YXR1 cyA9IFRydWUKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcHJp bnQoCisgICAgICAgICAgICAgICAgIlRoZXJlIGlzIHNvbWUgZXhjZXB0aW9uIHRocm93biBjbGlj a19hbmRfY29ubmVjdF9zZXJ2ZXIgIgorICAgICAgICAgICAgICAgICJhbmQgaXM6ICIgKyBzdHIo CisgICAgICAgICAgICAgICAgICAgIGUpLCBmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgIHJldHVy biBzZXJ2ZXJfY29ubmVjdGlvbl9zdGF0dXMKIAotICAgIGRlZiBjbGlja190b19leHBhbmRfZGF0 YWJhc2Vfbm9kZShzZWxmLCBzdWJfbm9kZXNfb2ZfZGF0YWJhc2VzX25vZGUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4X29mX3JlcXVpcmVkX2RiX25vZGUsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfb2ZfZGF0YWJhc2UpOgor ICAgIGRlZiBleHBhbmRfZGF0YWJhc2VzX25vZGUoc2VsZiwgc2VydmVyX2dyb3VwX25hbWUsIHNl cnZlcl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX3Bhc3N3b3Jk KToKKyAgICAgICAgIiIiCisgICAgICAgIE1ldGhvZCBleHBhbmRzIERhdGFiYXNlcyBub2RlIG9m IHNwZWNmaWVkIHNlcnZlcgorICAgICAgICA6cGFyYW0gc2VydmVyX2dyb3VwX25hbWU6CisgICAg ICAgIDpwYXJhbSBzZXJ2ZXJfbmFtZToKKyAgICAgICAgOnBhcmFtIHNlcnZlcl9wYXNzd29yZDoK KyAgICAgICAgOnJldHVybjoKICAgICAgICAgIiIiCi0gICAgICAgIE1ldGhvZCBjbGlja3Mgb24g c3BlY2lmaWVkIGRhdGFiYXNlIG5hbWUgZnJvbSBleHBhbmRlZCBkYXRhYmFzZXMgbm9kZQotICAg ICAgICBvZiBzZXJ2ZXIuCi0gICAgICAgIDpwYXJhbSBzdWJfbm9kZXNfb2ZfZGF0YWJhc2VzX25v ZGU6Ci0gICAgICAgIDpwYXJhbSBpbmRleF9vZl9yZXF1aXJlZF9kYl9ub2RlOgotICAgICAgICA6 cGFyYW0gbmFtZV9vZl9kYXRhYmFzZToKLSAgICAgICAgOnJldHVybjogVHJ1ZSBpZiBwYXJ0aWN1 bGFyIGRhdGFiYXNlIGNsaWNrIGlzIHN1Y2Nlc3NmdWwgJiBleHBhbmRlZAorICAgICAgICByZXR1 cm4gc2VsZi5leHBhbmRfc2VydmVyX2NoaWxkX25vZGUoc2VydmVyX2dyb3VwX25hbWUsIHNlcnZl cl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vy dmVyX3Bhc3N3b3JkLCAiRGF0YWJhc2VzIikKKworICAgIGRlZiBleHBhbmRfc2VydmVyX2NoaWxk X25vZGUoc2VsZiwgc2VydmVyX2dyb3VwX25hbWUsIHNlcnZlcl9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VydmVyX3Bhc3N3b3JkLCBzZXJ2ZXJfY2hpbGRfbm9kZV9u YW1lKToKICAgICAgICAgIiIiCi0gICAgICAgIHJldHJ5ID0gNQotICAgICAgICBkYl9ub2RlX2V4 cGFuZGVkX3N0YXR1cyA9IEZhbHNlCi0gICAgICAgIHNlbGYuZHJpdmVyLmV4ZWN1dGVfc2NyaXB0 KHNlbGYuanNfZXhlY3V0b3Jfc2Nyb2xsaW50b3ZpZXdfYXJnLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdWJfbm9kZXNfb2ZfZGF0YWJhc2VzX25vZGVbCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleF9vZl9yZXF1aXJlZF9kYl9ub2RlXSkK LSAgICAgICAgd2hpbGUgcmV0cnkgPiAwOgotICAgICAgICAgICAgd2ViZHJpdmVyLkFjdGlvbkNo YWlucyhzZWxmLmRyaXZlcikuZG91YmxlX2NsaWNrKAotICAgICAgICAgICAgICAgIHN1Yl9ub2Rl c19vZl9kYXRhYmFzZXNfbm9kZVsKLSAgICAgICAgICAgICAgICAgICAgaW5kZXhfb2ZfcmVxdWly ZWRfZGJfbm9kZV0pLnBlcmZvcm0oKQorICAgICAgICBNZXRob2QgZXhwYW5kcyBzcGVjaWZpZWQg c2VydmVyIG5vZGUncyBjaGlsZAorICAgICAgICA6cGFyYW0gc2VydmVyX2dyb3VwX25hbWU6Cisg ICAgICAgIDpwYXJhbSBzZXJ2ZXJfbmFtZToKKyAgICAgICAgOnBhcmFtIHNlcnZlcl9wYXNzd29y ZDoKKyAgICAgICAgOnBhcmFtIHNlcnZlcl9jaGlsZF9ub2RlX25hbWU6IHRvIGJlIGV4cGFuZGVk CisgICAgICAgIDpyZXR1cm46IHRydWUgaXMgY2hpbGQgbm9kZSBpcyBleHBhbmRlZCBlbHNlIGZh bHNlCisgICAgICAgICIiIgorICAgICAgICBzZXJ2ZXJfY2hpbGRfZXhwYW5kZWQgPSBGYWxzZQor ICAgICAgICBzZXJ2ZXJfY2hpbGRfbm9kZV94cGF0aCA9IFRyZWVBcmVhTG9jYXRvcnMuIFwKKyAg ICAgICAgICAgIHNlcnZlcl9jaGlsZF9ub2RlKHNlcnZlcl9uYW1lLCBzZXJ2ZXJfY2hpbGRfbm9k ZV9uYW1lKQorICAgICAgICBzZXJ2ZXJfY2hpbGRfbm9kZV9leHBfc3RhdHVzX3hwYXRoID0gVHJl ZUFyZWFMb2NhdG9ycy4gXAorICAgICAgICAgICAgc2VydmVyX2NoaWxkX25vZGVfZXhwX3N0YXR1 cyhzZXJ2ZXJfbmFtZSwgc2VydmVyX2NoaWxkX25vZGVfbmFtZSkKKworICAgICAgICBpZiBzZWxm LmV4cGFuZF9zZXJ2ZXJfbm9kZShzZXJ2ZXJfZ3JvdXBfbmFtZSwgc2VydmVyX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9wYXNzd29yZCk6CiAgICAgICAg ICAgICBpZiBzZWxmLmNoZWNrX2lmX2VsZW1lbnRfZXhpc3RfYnlfeHBhdGgoCi0gICAgICAgICAg ICAgICAgIi8vZGl2W0BjbGFzcz0nYWpzLWhlYWRlcidhbmQgdGV4dCgpPSdJTlRFUk5BTCBTRVJW RVIgIgotICAgICAgICAgICAgICAgICAgICAiRVJST1InXSIsIDEpOgotICAgICAgICAgICAgICAg IHRyeToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5jbGlja19tb2RhbCgnT0snKQotICAgICAg ICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICAgICAgICAgIHBhc3MKLSAg ICAgICAgICAgICAgICByZXRyeSAtPSAxCisgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9jaGls ZF9ub2RlX2V4cF9zdGF0dXNfeHBhdGgsIDEpOgorICAgICAgICAgICAgICAgIHNlcnZlcl9jaGls ZF9leHBhbmRlZCA9IFRydWUKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgYnJl YWsKLSAgICAgICAgaWYgc2VsZi53YWl0X2Zvcl9lbGVtZW50c190b19hcHBlYXIoCi0gICAgICAg ICAgICBzZWxmLmRyaXZlciwgVHJlZUFyZWFMb2NhdG9ycy4KLSAgICAgICAgICAgICAgICBzdWJf bm9kZXNfb2ZfZGF0YWJhc2Vfbm9kZSgKLSAgICAgICAgICAgICAgICBuYW1lX29mX2RhdGFiYXNl KSk6Ci0gICAgICAgICAgICBkYl9ub2RlX2V4cGFuZGVkX3N0YXR1cyA9IFRydWUKLSAgICAgICAg cmV0dXJuIGRiX25vZGVfZXhwYW5kZWRfc3RhdHVzCi0KLSAgICBkZWYgZXhwYW5kX2RhdGFiYXNl X25vZGUoc2VsZiwgc2VydmVyX25hbWUsIHNlcnZlcl9wYXNzd29yZCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbmFtZV9vZl9kYXRhYmFzZSk6Ci0gICAgICAgICIiIndpbGwgZXhwYW5k IGRhdGFiYXNlIG5vZGUgdW5kZXIgZGF0YWJhc2VzIG5vZGUiIiIKLSAgICAgICAgZGJfbm9kZV9l eHBhbmRlZF9zdGF0dXMgPSBGYWxzZQotICAgICAgICBpZiBzZWxmLmV4cGFuZF9kYXRhYmFzZXNf bm9kZShzZXJ2ZXJfbmFtZSwgc2VydmVyX3Bhc3N3b3JkKToKLSAgICAgICAgICAgIHN1Yl9ub2Rl c19vZl9kYXRhYmFzZXNfbm9kZSA9IHNlbGYuZmluZF9ieV94cGF0aF9saXN0KAotICAgICAgICAg ICAgICAgIFRyZWVBcmVhTG9jYXRvcnMuc3ViX25vZGVzX29mX2RhdGFiYXNlc19ub2RlKHNlcnZl cl9uYW1lKSkKLSAgICAgICAgICAgIGluZGV4X29mX3JlcXVpcmVkX2RiX25vZGUgPSBzZWxmLmdl dF9pbmRleF9vZl9lbGVtZW50KAotICAgICAgICAgICAgICAgIHN1Yl9ub2Rlc19vZl9kYXRhYmFz ZXNfbm9kZSwKLSAgICAgICAgICAgICAgICBuYW1lX29mX2RhdGFiYXNlKQotICAgICAgICAgICAg ZXhwYW5zaW9uX3N0YXR1cyA9IHNlbGYuZ2V0X2V4cGFuc2lvbl9zdGF0dXNfb2Zfbm9kZV9lbGVt ZW50KAotICAgICAgICAgICAgICAgIHNlbGYuZmluZF9ieV94cGF0aF9saXN0KAotICAgICAgICAg ICAgICAgICAgICBUcmVlQXJlYUxvY2F0b3JzLgotICAgICAgICAgICAgICAgICAgICBzdWJfbm9k ZXNfb2ZfZGF0YWJhc2VzX25vZGVfZXhwX3N0YXR1cygKLSAgICAgICAgICAgICAgICAgICAgICAg IHNlcnZlcl9uYW1lKSlbCi0gICAgICAgICAgICAgICAgICAgIGluZGV4X29mX3JlcXVpcmVkX2Ri X25vZGVdKQotICAgICAgICAgICAgaWYgbm90IGV4cGFuc2lvbl9zdGF0dXM6Ci0gICAgICAgICAg ICAgICAgZGJfbm9kZV9leHBhbmRlZF9zdGF0dXMgPSBzZWxmLmNsaWNrX3RvX2V4cGFuZF9kYXRh YmFzZV9ub2RlKAotICAgICAgICAgICAgICAgICAgICBzdWJfbm9kZXNfb2ZfZGF0YWJhc2VzX25v ZGUsIGluZGV4X29mX3JlcXVpcmVkX2RiX25vZGUsCi0gICAgICAgICAgICAgICAgICAgIG5hbWVf b2ZfZGF0YWJhc2UpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGRiX25vZGVf ZXhwYW5kZWRfc3RhdHVzID0gVHJ1ZQorICAgICAgICAgICAgICAgIGNoaWxkX25vZGVfZWxlID0g c2VsZi5jaGVja19pZl9lbGVtZW50X2V4aXN0c193aXRoX3Njcm9sbCgKKyAgICAgICAgICAgICAg ICAgICAgc2VydmVyX2NoaWxkX25vZGVfeHBhdGgpCisgICAgICAgICAgICAgICAgc2VydmVyX2No aWxkX2V4cGFuZGVkID0gc2VsZi5jbGlja190b19leHBhbmRfdHJlZV9ub2RlKAorICAgICAgICAg ICAgICAgICAgICBjaGlsZF9ub2RlX2VsZSwgc2VydmVyX2NoaWxkX25vZGVfZXhwX3N0YXR1c194 cGF0aCkKKyAgICAgICAgICAgICAgICBpZiBub3Qgc2VydmVyX2NoaWxkX2V4cGFuZGVkOgorICAg ICAgICAgICAgICAgICAgICBwcmludCgiQ2hpbGQgbm90IGlzIG5vdCBleHBhbmRlZCBhZnRlciBj bGlja25nICIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU9c3lzLnN0ZGVycikKICAg ICAgICAgZWxzZToKLSAgICAgICAgICAgIHByaW50KCJUaGUgZGF0YWJhc2VzL3ByZXZpb3VzIG5v ZGVzIG5vdCBleHBhbmRlZCIsCi0gICAgICAgICAgICAgICAgICBmaWxlPXN5cy5zdGRlcnIpCi0g ICAgICAgIHJldHVybiBkYl9ub2RlX2V4cGFuZGVkX3N0YXR1cwotCi0gICAgZGVmIHRvZ2dsZV9v cGVuX3NjaGVtYXNfbm9kZShzZWxmLCBzZXJ2ZXJfbmFtZSwgc2VydmVyX3Bhc3N3b3JkLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9vZl9kYXRhYmFzZSk6Ci0gICAgICAg ICIiIndpbGwgZXhwYW5kIHNjaGVtYXMgbm9kZSB1bmRlciBhIGRiIG5vZGUiIiIKLSAgICAgICAg ZXhwYW5zaW9uX3N0YXR1cyA9IEZhbHNlCi0gICAgICAgIGlmIHNlbGYuZXhwYW5kX2RhdGFiYXNl X25vZGUoc2VydmVyX25hbWUsIHNlcnZlcl9wYXNzd29yZCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBuYW1lX29mX2RhdGFiYXNlKToKLSAgICAgICAgICAgIHN1Yl9ub2Rl c19kYl9ub2RlID0gc2VsZi5maW5kX2J5X3hwYXRoX2xpc3QoCi0gICAgICAgICAgICAgICAgVHJl ZUFyZWFMb2NhdG9ycy5zdWJfbm9kZXNfb2ZfZGF0YWJhc2Vfbm9kZSgKLSAgICAgICAgICAgICAg ICAgICAgbmFtZV9vZl9kYXRhYmFzZSkpCi0gICAgICAgICAgICBpbmRleF9vZl9zY2hlbWFzX25v ZGUgPSBzZWxmLmdldF9pbmRleF9vZl9lbGVtZW50KAotICAgICAgICAgICAgICAgIHN1Yl9ub2Rl c19kYl9ub2RlLCAiU2NoZW1hcyIpCi0gICAgICAgICAgICBleHBhbnNpb25fc3RhdHVzID0gc2Vs Zi5nZXRfZXhwYW5zaW9uX3N0YXR1c19vZl9ub2RlX2VsZW1lbnQoCi0gICAgICAgICAgICAgICAg c2VsZi5maW5kX2J5X3hwYXRoX2xpc3QoCi0gICAgICAgICAgICAgICAgICAgIFRyZWVBcmVhTG9j YXRvcnMuc3ViX25vZGVzX29mX2RhdGFiYXNlX25vZGVfZXhwX3N0YXR1cygKLSAgICAgICAgICAg ICAgICAgICAgICAgIG5hbWVfb2ZfZGF0YWJhc2UpKVsKLSAgICAgICAgICAgICAgICAgICAgaW5k ZXhfb2Zfc2NoZW1hc19ub2RlXSkKLSAgICAgICAgICAgIGlmIG5vdCBleHBhbnNpb25fc3RhdHVz OgorICAgICAgICAgICAgcHJpbnQoIlRoZSBzZXJ2ZXIvcHJldmlvdXMgbm9kZXMgbm90IGV4cGFu ZGVkIiwgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICByZXR1cm4gc2VydmVyX2NoaWxkX2V4cGFu ZGVkCisKKyAgICBkZWYgZXhwYW5kX2RhdGFiYXNlX25vZGUoc2VsZiwgc2VydmVyX2dyb3VwX25h bWUsIHNlcnZlcl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfcGFz c3dvcmQsIGRhdGFiYXNlX25hbWUpOgorICAgICAgICAiIiIKKyAgICAgICAgd2lsbCBleHBhbmQg ZGF0YWJhc2Ugbm9kZSB1bmRlciBkYXRhYmFzZXMgbm9kZSIKKyAgICAgICAgOnBhcmFtIHNlcnZl cl9ncm91cF9uYW1lOgorICAgICAgICA6cGFyYW0gc2VydmVyX25hbWU6CisgICAgICAgIDpwYXJh bSBzZXJ2ZXJfcGFzc3dvcmQ6CisgICAgICAgIDpwYXJhbSBkYXRhYmFzZV9uYW1lOgorICAgICAg ICA6cmV0dXJuOgorICAgICAgICAiIiIKKyAgICAgICAgZGF0YWJhc2VfZXhwYW5kZWQgPSBGYWxz ZQorICAgICAgICBkYXRhYmFzZV9ub2RlX3hwYXRoID0gVHJlZUFyZWFMb2NhdG9ycy5kYXRhYmFz ZV9ub2RlKGRhdGFiYXNlX25hbWUpCisgICAgICAgIGRhdGFiYXNlX25vZGVfZXhwX3hwYXRoID0g XAorICAgICAgICAgICAgVHJlZUFyZWFMb2NhdG9ycy5kYXRhYmFzZV9ub2RlX2V4cF9zdGF0dXMo ZGF0YWJhc2VfbmFtZSkKKworICAgICAgICBpZiBzZWxmLmV4cGFuZF9kYXRhYmFzZXNfbm9kZSgK KyAgICAgICAgICAgICAgICBzZXJ2ZXJfZ3JvdXBfbmFtZSwgc2VydmVyX25hbWUsIHNlcnZlcl9w YXNzd29yZCk6CisgICAgICAgICAgICBkYXRhYmFzZV9ub2RlID0gXAorICAgICAgICAgICAgICAg IHNlbGYuY2hlY2tfaWZfZWxlbWVudF9leGlzdHNfd2l0aF9zY3JvbGwoZGF0YWJhc2Vfbm9kZV94 cGF0aCkKKyAgICAgICAgICAgIGlmIGRhdGFiYXNlX25vZGU6CiAgICAgICAgICAgICAgICAgc2Vs Zi5kcml2ZXIuZXhlY3V0ZV9zY3JpcHQoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuanNfZXhl Y3V0b3Jfc2Nyb2xsaW50b3ZpZXdfYXJnLAotICAgICAgICAgICAgICAgICAgICBzdWJfbm9kZXNf ZGJfbm9kZVtpbmRleF9vZl9zY2hlbWFzX25vZGVdKQotICAgICAgICAgICAgICAgIHdlYmRyaXZl ci5BY3Rpb25DaGFpbnMoc2VsZi5kcml2ZXIpLmRvdWJsZV9jbGljaygKLSAgICAgICAgICAgICAg ICAgICAgc3ViX25vZGVzX2RiX25vZGVbaW5kZXhfb2Zfc2NoZW1hc19ub2RlXSkucGVyZm9ybSgp Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi53YWl0X2Zvcl9lbGVtZW50c190b19hcHBlYXIoCi0g ICAgICAgICAgICAgICAgICAgIHNlbGYuZHJpdmVyLCBUcmVlQXJlYUxvY2F0b3JzLgotICAgICAg ICAgICAgICAgICAgICAgICAgc3ViX25vZGVzX29mX3NjaGVtYXNfbm9kZShuYW1lX29mX2RhdGFi YXNlKSk6Ci0gICAgICAgICAgICAgICAgICAgIGV4cGFuc2lvbl9zdGF0dXMgPSBUcnVlCisgICAg ICAgICAgICAgICAgICAgIHNlbGYuanNfZXhlY3V0b3Jfc2Nyb2xsaW50b3ZpZXdfYXJnLCBkYXRh YmFzZV9ub2RlKQorICAgICAgICAgICAgICAgIGlmIHNlbGYuY2hlY2tfaWZfZWxlbWVudF9leGlz dF9ieV94cGF0aCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlX25vZGVfZXhwX3hw YXRoLCAxKToKKyAgICAgICAgICAgICAgICAgICAgZGF0YWJhc2VfZXhwYW5kZWQgPSBUcnVlCisg ICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZGF0YWJhc2VfZXhwYW5k ZWQgPSBzZWxmLmNsaWNrX3RvX2V4cGFuZF90cmVlX25vZGUoCisgICAgICAgICAgICAgICAgICAg ICAgICBkYXRhYmFzZV9ub2RlLCBkYXRhYmFzZV9ub2RlX2V4cF94cGF0aCkKICAgICAgICAgICAg IGVsc2U6Ci0gICAgICAgICAgICAgICAgZXhwYW5zaW9uX3N0YXR1cyA9IFRydWUKKyAgICAgICAg ICAgICAgICBwcmludCgiRGF0YWJhc2Ugbm9kZSBub3QgZm91bmQgLSAiLCBmaWxlPXN5cy5zdGRl cnIpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwcmludCgKLSAgICAgICAgICAgICAgICAi KGV4cGFuZF9zY2hlbWFzX25vZGUpIGRhdGFiYXNlL3ByZXZpb3VzIG5vZGVzICIKLSAgICAgICAg ICAgICAgICAiYXJlIG5vdCBleHBhbmRlZCIsCi0gICAgICAgICAgICAgICAgZmlsZT1zeXMuc3Rk ZXJyKQotICAgICAgICByZXR1cm4gZXhwYW5zaW9uX3N0YXR1cwotCi0gICAgZGVmIHRvZ2dsZV9v cGVuX3NjaGVtYV9ub2RlKAotICAgICAgICBzZWxmLCBzZXJ2ZXJfbmFtZSwgc2VydmVyX3Bhc3N3 b3JkLAotICAgICAgICAgICAgbmFtZV9vZl9kYXRhYmFzZSwgbmFtZV9vZl9zY2hlbWFfbm9kZSk6 Ci0gICAgICAgICIiIndpbGwgZXhwYW5kIHNjaGVtYSBub2RlIHVuZGVyIHNjaGVtYXMgbm9kZSIi IgotICAgICAgICBleHBhbnNpb25fc3RhdHVzID0gRmFsc2UKLSAgICAgICAgaWYgc2VsZi50b2dn bGVfb3Blbl9zY2hlbWFzX25vZGUoCi0gICAgICAgICAgICAgICAgc2VydmVyX25hbWUsIHNlcnZl cl9wYXNzd29yZCwgbmFtZV9vZl9kYXRhYmFzZSk6Ci0gICAgICAgICAgICBzdWJfbm9kZXNfc2No ZW1hc19ub2RlID0gc2VsZi5maW5kX2J5X3hwYXRoX2xpc3QoCi0gICAgICAgICAgICAgICAgVHJl ZUFyZWFMb2NhdG9ycy5zdWJfbm9kZXNfb2Zfc2NoZW1hc19ub2RlKAotICAgICAgICAgICAgICAg ICAgICBuYW1lX29mX2RhdGFiYXNlKSkKLSAgICAgICAgICAgIGluZGV4X29mX3NjaGVtYV9ub2Rl ID0gc2VsZi5nZXRfaW5kZXhfb2ZfZWxlbWVudCgKLSAgICAgICAgICAgICAgICBzdWJfbm9kZXNf c2NoZW1hc19ub2RlLAotICAgICAgICAgICAgICAgIG5hbWVfb2Zfc2NoZW1hX25vZGUpCi0gICAg ICAgICAgICBleHBhbnNpb25fc3RhdHVzID0gc2VsZi5nZXRfZXhwYW5zaW9uX3N0YXR1c19vZl9u b2RlX2VsZW1lbnQoCi0gICAgICAgICAgICAgICAgc2VsZi5maW5kX2J5X3hwYXRoX2xpc3QoCi0g ICAgICAgICAgICAgICAgICAgIFRyZWVBcmVhTG9jYXRvcnMuc3ViX25vZGVzX29mX3NjaGVtYXNf bm9kZV9leHBfc3RhdHVzKAotICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9vZl9kYXRhYmFz ZSkpWwotICAgICAgICAgICAgICAgICAgICBpbmRleF9vZl9zY2hlbWFfbm9kZV0pCi0gICAgICAg ICAgICBpZiBub3QgZXhwYW5zaW9uX3N0YXR1czoKKyAgICAgICAgICAgIHByaW50KCJUaGUgZGF0 YWJhc2VzL3ByZXZpb3VzIG5vZGVzIG5vdCBleHBhbmRlZCIsIGZpbGU9c3lzLnN0ZGVycikKKyAg ICAgICAgcmV0dXJuIGRhdGFiYXNlX2V4cGFuZGVkCisKKyAgICAjIFRPRE8gLSBXZSBtaWdodCBu ZWVkIHRoaXMgbWV0aG9kCisgICAgIyBkZWYgY2xpY2tfdG9fZXhwYW5kX2RhdGFiYXNlX25vZGUo c2VsZiwgZGF0YWJhc2VfbmFtZSwgZGF0YWJhc2Vfbm9kZSk6CisgICAgIyAgICAgIiIiCisgICAg IyAgICAgTWV0aG9kIGNsaWNrcyBvbiBzcGVjaWZpZWQgZGF0YWJhc2UgbmFtZSBmcm9tIGV4cGFu ZGVkIGRhdGFiYXNlcyBub2RlCisgICAgIyAgICAgb2Ygc2VydmVyLgorICAgICMgICAgIDpwYXJh bSBzdWJfbm9kZXNfb2ZfZGF0YWJhc2VzX25vZGU6CisgICAgIyAgICAgOnBhcmFtIGluZGV4X29m X3JlcXVpcmVkX2RiX25vZGU6CisgICAgIyAgICAgOnBhcmFtIG5hbWVfb2ZfZGF0YWJhc2U6Cisg ICAgIyAgICAgOnJldHVybjogVHJ1ZSBpZiBwYXJ0aWN1bGFyIGRhdGFiYXNlIGNsaWNrIGlzIHN1 Y2Nlc3NmdWwgJiBleHBhbmRlZAorICAgICMgICAgICIiIgorICAgICMgICAgIGRhdGFiYXNlX2V4 cGFuZGVkID0gRmFsc2UKKyAgICAjICAgICBpZiBzZWxmLmNoZWNrX2lmX2VsZW1lbnRfZXhpc3Rf YnlfeHBhdGgoCisgICAgIyAgICAgVHJlZUFyZWFMb2NhdG9ycy5kYXRhYmFzZV9ub2RlX2V4cF9z dGF0dXMoZGF0YWJhc2VfbmFtZSksIDIpOgorICAgICMgICAgICAgICBkYXRhYmFzZV9leHBhbmRl ZCA9IFRydWUKKyAgICAjICAgICBlbHNlOgorICAgICMgICAgICAgICAjIFRPRE8gLSBUaGlzIGlz IGJ1ZyA2OTYyCisgICAgIyAgICAgICAgIHdlYmRyaXZlci5BY3Rpb25DaGFpbnMoc2VsZi5kcml2 ZXIpLmNsaWNrKGRhdGFiYXNlX25vZGUpLnBlcmZvcm0oKQorICAgICMgICAgICAgICBpZiBzZWxm LmNoZWNrX2lmX2VsZW1lbnRfZXhpc3RfYnlfeHBhdGgoCisgICAgIyAgICAgICAgIFRyZWVBcmVh TG9jYXRvcnMuZGF0YWJhc2Vfbm9kZV9leHBfc3RhdHVzKGRhdGFiYXNlX25hbWUpKToKKyAgICAj ICAgICAgICAgICAgIGRhdGFiYXNlX2V4cGFuZGVkID0gVHJ1ZQorICAgICMgICAgIHByaW50KCJj bGlja190b19leHBhbmRfZGF0YWJhc2Vfbm9kZT4gZGJfbm9kZV9leHBhbmRlZF9zdGF0dXMgLSAi LAorICAgICMgICAgIGRhdGFiYXNlX2V4cGFuZGVkKQorICAgICMgICAgIHJldHVybiBkYXRhYmFz ZV9leHBhbmRlZAorICAgICMKKworICAgIGRlZiBleHBhbmRfZGF0YWJhc2VfY2hpbGRfbm9kZShz ZWxmLCBzZXJ2ZXJfZ3JvdXBfbmFtZSwgc2VydmVyX25hbWUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlcnZlcl9wYXNzd29yZCwgZGF0YWJhc2VfbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWJhc2VfY2hpbGRfbm9kZV9uYW1lKToKKyAg ICAgICAgIiIiCisgICAgICAgIE1ldGhvZCBleHBhbmRzIHNwZWNpZmllZCBkYXRhYmFzZSdzIGNo aWxkCisgICAgICAgIDpwYXJhbSBzZXJ2ZXJfZ3JvdXBfbmFtZToKKyAgICAgICAgOnBhcmFtIHNl cnZlcl9uYW1lOgorICAgICAgICA6cGFyYW0gc2VydmVyX3Bhc3N3b3JkOgorICAgICAgICA6cGFy YW0gZGF0YWJhc2VfbmFtZToKKyAgICAgICAgOnBhcmFtIGRhdGFiYXNlX2NoaWxkX25vZGVfbmFt ZToKKyAgICAgICAgOnJldHVybjoKKyAgICAgICAgIiIiCisgICAgICAgIGRhdGFiYXNlX2NoaWxk X2V4cGFuZGVkID0gRmFsc2UKKyAgICAgICAgZGF0YWJhc2VfY2hpbGRfbm9kZV94cGF0aCA9IFwK KyAgICAgICAgICAgIFRyZWVBcmVhTG9jYXRvcnMuZGF0YWJhc2VfY2hpbGRfbm9kZSgKKyAgICAg ICAgICAgICAgICBkYXRhYmFzZV9uYW1lLCBkYXRhYmFzZV9jaGlsZF9ub2RlX25hbWUpCisgICAg ICAgIGRhdGFiYXNlX2NoaWxkX25vZGVfZXhwX3N0YXR1c194cGF0aCA9IFwKKyAgICAgICAgICAg IFRyZWVBcmVhTG9jYXRvcnMuZGF0YWJhc2VfY2hpbGRfbm9kZV9leHBfc3RhdHVzKAorICAgICAg ICAgICAgICAgIGRhdGFiYXNlX25hbWUsIGRhdGFiYXNlX2NoaWxkX25vZGVfbmFtZSkKKworICAg ICAgICBpZiBzZWxmLmV4cGFuZF9kYXRhYmFzZV9ub2RlKHNlcnZlcl9ncm91cF9uYW1lLCBzZXJ2 ZXJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfcGFz c3dvcmQsIGRhdGFiYXNlX25hbWUpOgorICAgICAgICAgICAgY2hpbGRfbm9kZV9lbGUgPSBzZWxm LmNoZWNrX2lmX2VsZW1lbnRfZXhpc3RzX3dpdGhfc2Nyb2xsKAorICAgICAgICAgICAgICAgIGRh dGFiYXNlX2NoaWxkX25vZGVfeHBhdGgpCisgICAgICAgICAgICBpZiBjaGlsZF9ub2RlX2VsZToK KyAgICAgICAgICAgICAgICBpZiBzZWxmLmNoZWNrX2lmX2VsZW1lbnRfZXhpc3RfYnlfeHBhdGgo CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhYmFzZV9jaGlsZF9ub2RlX2V4cF9zdGF0dXNf eHBhdGgsIDEpOgorICAgICAgICAgICAgICAgICAgICBkYXRhYmFzZV9jaGlsZF9leHBhbmRlZCA9 IFRydWUKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBkYXRhYmFz ZV9jaGlsZF9leHBhbmRlZCA9IHNlbGYuY2xpY2tfdG9fZXhwYW5kX3RyZWVfbm9kZSgKKyAgICAg ICAgICAgICAgICAgICAgICAgIGNoaWxkX25vZGVfZWxlLCBkYXRhYmFzZV9jaGlsZF9ub2RlX2V4 cF9zdGF0dXNfeHBhdGgpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHByaW50 KCJOb2RlIG5vdCBmb3VuZCAtICIsIGRhdGFiYXNlX2NoaWxkX25vZGVfbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICBmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg ICBwcmludCgiVGhlIGRhdGFiYXNlL3ByZXZpb3VzIG5vZGVzIG5vdCBleHBhbmRlZCIsIGZpbGU9 c3lzLnN0ZGVycikKKyAgICAgICAgcmV0dXJuIGRhdGFiYXNlX2NoaWxkX2V4cGFuZGVkCisKKyAg ICBkZWYgZXhwYW5kX3NjaGVtYXNfbm9kZShzZWxmLCBzZXJ2ZXJfZ3JvdXBfbmFtZSwgc2VydmVy X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX3Bhc3N3b3JkLCBkYXRh YmFzZV9uYW1lKToKKyAgICAgICAgIiIiCisgICAgICAgIE1ldGhvZCBleHBhbmRzIFNjaGVtYXMg bm9kZSB1bmRlciBzcGVjaWZpZWQgc2VydmVyICYgZGF0YWJhc2UKKyAgICAgICAgOnBhcmFtIHNl cnZlcl9ncm91cF9uYW1lOgorICAgICAgICA6cGFyYW0gc2VydmVyX25hbWU6CisgICAgICAgIDpw YXJhbSBzZXJ2ZXJfcGFzc3dvcmQ6CisgICAgICAgIDpwYXJhbSBkYXRhYmFzZV9uYW1lOgorICAg ICAgICA6cmV0dXJuOgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuZXhwYW5kX2Rh dGFiYXNlX2NoaWxkX25vZGUoc2VydmVyX2dyb3VwX25hbWUsIHNlcnZlcl9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfcGFzc3dvcmQs IGRhdGFiYXNlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJTY2hlbWFzIikKKworICAgIGRlZiBleHBhbmRfc2NoZW1hX25vZGUoc2VsZiwgc2Vy dmVyX2dyb3VwX25hbWUsIHNlcnZlcl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VydmVyX3Bhc3N3b3JkLCBkYXRhYmFzZV9uYW1lLCBzY2hlbWFfbmFtZSk6CisgICAgICAgICIi IgorICAgICAgICBNZXRob2QgZXhwYW5kcyBzY2hlbWEgbm9kZQorICAgICAgICA6cGFyYW0gc2Vy dmVyX2dyb3VwX25hbWU6CisgICAgICAgIDpwYXJhbSBzZXJ2ZXJfbmFtZToKKyAgICAgICAgOnBh cmFtIHNlcnZlcl9wYXNzd29yZDoKKyAgICAgICAgOnBhcmFtIGRhdGFiYXNlX25hbWU6CisgICAg ICAgIDpwYXJhbSBzY2hlbWFfbmFtZToKKyAgICAgICAgOnJldHVybjoKKyAgICAgICAgIiIiCisg ICAgICAgIHNjaGVtYV9leHBhbmRlZCA9IEZhbHNlCisgICAgICAgIHNjaGVtYV9ub2RlX3hwYXRo ID0gVHJlZUFyZWFMb2NhdG9ycy5zY2hlbWFfbm9kZShzY2hlbWFfbmFtZSkKKyAgICAgICAgc2No ZW1hX25vZGVfZXhwX3hwYXRoID0gVHJlZUFyZWFMb2NhdG9ycy5zY2hlbWFfbm9kZV9leHBfc3Rh dHVzKAorICAgICAgICAgICAgc2NoZW1hX25hbWUpCisKKyAgICAgICAgaWYgc2VsZi5leHBhbmRf c2NoZW1hc19ub2RlKHNlcnZlcl9ncm91cF9uYW1lLCBzZXJ2ZXJfbmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9wYXNzd29yZCwgZGF0YWJhc2VfbmFtZSk6 CisgICAgICAgICAgICBzY2hlbWFfbm9kZSA9IHNlbGYuY2hlY2tfaWZfZWxlbWVudF9leGlzdHNf d2l0aF9zY3JvbGwoCisgICAgICAgICAgICAgICAgc2NoZW1hX25vZGVfeHBhdGgpCisgICAgICAg ICAgICBpZiBzY2hlbWFfbm9kZToKICAgICAgICAgICAgICAgICBzZWxmLmRyaXZlci5leGVjdXRl X3NjcmlwdCgKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5qc19leGVjdXRvcl9zY3JvbGxpbnRv dmlld19hcmcsCi0gICAgICAgICAgICAgICAgICAgIHN1Yl9ub2Rlc19zY2hlbWFzX25vZGVbaW5k ZXhfb2Zfc2NoZW1hX25vZGVdKQotICAgICAgICAgICAgICAgIHdlYmRyaXZlci5BY3Rpb25DaGFp bnMoc2VsZi5kcml2ZXIpLmRvdWJsZV9jbGljaygKLSAgICAgICAgICAgICAgICAgICAgc3ViX25v ZGVzX3NjaGVtYXNfbm9kZVtpbmRleF9vZl9zY2hlbWFfbm9kZV0pLnBlcmZvcm0oKQotICAgICAg ICAgICAgICAgIGlmIHNlbGYud2FpdF9mb3JfZWxlbWVudHNfdG9fYXBwZWFyKAotICAgICAgICAg ICAgICAgICAgICBzZWxmLmRyaXZlciwgVHJlZUFyZWFMb2NhdG9ycy4KLSAgICAgICAgICAgICAg ICAgICAgICAgIHN1Yl9ub2Rlc19vZl9zY2hlbWFfbm9kZShuYW1lX29mX2RhdGFiYXNlKSk6Ci0g ICAgICAgICAgICAgICAgICAgIGV4cGFuc2lvbl9zdGF0dXMgPSBUcnVlCisgICAgICAgICAgICAg ICAgICAgIHNlbGYuanNfZXhlY3V0b3Jfc2Nyb2xsaW50b3ZpZXdfYXJnLCBzY2hlbWFfbm9kZSkK KyAgICAgICAgICAgICAgICBpZiBzZWxmLmNoZWNrX2lmX2VsZW1lbnRfZXhpc3RfYnlfeHBhdGgo CisgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbm9kZV9leHBfeHBhdGgsIDEpOgorICAg ICAgICAgICAgICAgICAgICBzY2hlbWFfZXhwYW5kZWQgPSBUcnVlCisgICAgICAgICAgICAgICAg ZWxzZToKKyAgICAgICAgICAgICAgICAgICAgc2NoZW1hX2V4cGFuZGVkID0gc2VsZi5jbGlja190 b19leHBhbmRfdHJlZV9ub2RlKAorICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25vZGUs IHNjaGVtYV9ub2RlX2V4cF94cGF0aCkKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg ICAgZXhwYW5zaW9uX3N0YXR1cyA9IFRydWUKKyAgICAgICAgICAgICAgICBwcmludCgiU2NoZW1h IG5vZGUgbm90IGZvdW5kIC0gIiwgZmlsZT1zeXMuc3RkZXJyKQogICAgICAgICBlbHNlOgotICAg ICAgICAgICAgcHJpbnQoCi0gICAgICAgICAgICAgICAgIihleHBhbmRfc2NoZW1hX25vZGUpIHNj aGVtYS9wcmV2aW91cyBub2RlcyBhcmUiCi0gICAgICAgICAgICAgICAgIiBub3QgZXhwYW5kZWQi LAotICAgICAgICAgICAgICAgIGZpbGU9c3lzLnN0ZGVycikKLSAgICAgICAgcmV0dXJuIGV4cGFu c2lvbl9zdGF0dXMKLQotICAgIGRlZiB0b2dnbGVfb3Blbl90YWJsZXNfbm9kZSgKLSAgICAgICAg c2VsZiwgc2VydmVyX25hbWUsIHNlcnZlcl9wYXNzd29yZCwKLSAgICAgICAgICAgIG5hbWVfb2Zf ZGF0YWJhc2UsIG5hbWVfb2Zfc2NoZW1hX25vZGUpOgotICAgICAgICAiIiJ3aWxsIGV4cGFuZCB0 YWJsZXMgbm9kZSB1bmRlciBzY2hlbWEgbm9kZSIiIgotICAgICAgICBub2RlX2V4cGFuZGVkX3N1 Y2Nlc3NmdWxseSA9IEZhbHNlCi0gICAgICAgIGlmIHNlbGYudG9nZ2xlX29wZW5fc2NoZW1hX25v ZGUoCi0gICAgICAgICAgICBzZXJ2ZXJfbmFtZSwgc2VydmVyX3Bhc3N3b3JkLCBuYW1lX29mX2Rh dGFiYXNlLAotICAgICAgICAgICAgICAgIG5hbWVfb2Zfc2NoZW1hX25vZGUpOgotICAgICAgICAg ICAgc3ViX25vZGVzX29mX3NjaGVtYV9ub2RlID0gc2VsZi5maW5kX2J5X3hwYXRoX2xpc3QoCi0g ICAgICAgICAgICAgICAgVHJlZUFyZWFMb2NhdG9ycy5zdWJfbm9kZXNfb2Zfc2NoZW1hX25vZGUo Ci0gICAgICAgICAgICAgICAgICAgIG5hbWVfb2ZfZGF0YWJhc2UpKQotICAgICAgICAgICAgc3Vi X25vZGVzX29mX3NjaGVtYV9ub2RlX2V4cF9zdGF0dXMgPSBzZWxmLmZpbmRfYnlfeHBhdGhfbGlz dCgKLSAgICAgICAgICAgICAgICBUcmVlQXJlYUxvY2F0b3JzLnN1Yl9ub2Rlc19vZl9zY2hlbWFf bm9kZV9leHBfc3RhdHVzKAotICAgICAgICAgICAgICAgICAgICBuYW1lX29mX2RhdGFiYXNlKSkK LSAgICAgICAgICAgIGluZGV4X29mX3RhYmxlc19ub2RlID0gc2VsZi5nZXRfaW5kZXhfb2ZfZWxl bWVudCgKLSAgICAgICAgICAgICAgICBzdWJfbm9kZXNfb2Zfc2NoZW1hX25vZGUsICJUYWJsZXMi KQotICAgICAgICAgICAgZXhwYW5zaW9uX3N0YXR1cyA9IHNlbGYuZ2V0X2V4cGFuc2lvbl9zdGF0 dXNfb2Zfbm9kZV9lbGVtZW50KAotICAgICAgICAgICAgICAgIHN1Yl9ub2Rlc19vZl9zY2hlbWFf bm9kZV9leHBfc3RhdHVzW2luZGV4X29mX3RhYmxlc19ub2RlXSkKLSAgICAgICAgICAgIGlmIG5v dCBleHBhbnNpb25fc3RhdHVzOgotICAgICAgICAgICAgICAgIHNlbGYuZHJpdmVyLmV4ZWN1dGVf c2NyaXB0KHNlbGYuanNfZXhlY3V0b3Jfc2Nyb2xsaW50b3ZpZXdfYXJnLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl9ub2Rlc19vZl9zY2hlbWFfbm9kZVsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhfb2Zf dGFibGVzX25vZGVdKQotICAgICAgICAgICAgICAgIHdlYmRyaXZlci5BY3Rpb25DaGFpbnMoc2Vs Zi5kcml2ZXIpLmRvdWJsZV9jbGljaygKLSAgICAgICAgICAgICAgICAgICAgc3ViX25vZGVzX29m X3NjaGVtYV9ub2RlWwotICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhfb2ZfdGFibGVzX25v ZGVdKS5wZXJmb3JtKCkKLSAgICAgICAgICAgICAgICBpZiBzZWxmLndhaXRfZm9yX2VsZW1lbnRz X3RvX2FwcGVhcigKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5kcml2ZXIsIFRyZWVBcmVhTG9j YXRvcnMuCi0gICAgICAgICAgICAgICAgICAgICAgICBzdWJfbm9kZXNfb2ZfdGFibGVzX25vZGUp OgotICAgICAgICAgICAgICAgICAgICBub2RlX2V4cGFuZGVkX3N1Y2Nlc3NmdWxseSA9IFRydWUK KyAgICAgICAgICAgIHByaW50KCJUaGUgc2NoZW1hcy9wcmV2aW91cyBub2RlcyBub3QgZXhwYW5k ZWQiLCBmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgIHJldHVybiBzY2hlbWFfZXhwYW5kZWQKKwor ICAgIGRlZiBleHBhbmRfdGFibGVzX25vZGUoc2VsZiwgc2VydmVyX2dyb3VwLCBzZXJ2ZXJfbmFt ZSwgc2VydmVyX3Bhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWJhc2Vf bmFtZSwgc2NoZW1hX25hbWUpOgorICAgICAgICAiIiIKKyAgICAgICAgTWV0aG9kIGV4cGFuZHMg dGFibGVzIG5vZGVzIHVuZGVyIHNjaGVtYQorICAgICAgICA6cGFyYW0gc2VydmVyX2dyb3VwOgor ICAgICAgICA6cGFyYW0gc2VydmVyX25hbWU6CisgICAgICAgIDpwYXJhbSBzZXJ2ZXJfcGFzc3dv cmQ6CisgICAgICAgIDpwYXJhbSBkYXRhYmFzZV9uYW1lOgorICAgICAgICA6cGFyYW0gc2NoZW1h X25hbWU6CisgICAgICAgIDpyZXR1cm46CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2Vs Zi5leHBhbmRfc2NoZW1hX2NoaWxkX25vZGUoc2VydmVyX2dyb3VwLCBzZXJ2ZXJfbmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9wYXNzd29y ZCwgZGF0YWJhc2VfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNjaGVtYV9uYW1lLCAiVGFibGVzIikKKworICAgIGRlZiBleHBhbmRfc2NoZW1hX2No aWxkX25vZGUoc2VsZiwgc2VydmVyX2dyb3VwX25hbWUsIHNlcnZlcl9uYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX3Bhc3N3b3JkLCBkYXRhYmFzZV9uYW1lLCBz Y2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9jaGls ZF9ub2RlX25hbWUpOgorICAgICAgICAiIiIKKyAgICAgICAgRXhwYW5kcyBzcGVjaWZpZWQgY2hp bGQgbm9kZSBvZiBzY2hlbWEKKyAgICAgICAgOnBhcmFtIHNlcnZlcl9ncm91cF9uYW1lOgorICAg ICAgICA6cGFyYW0gc2VydmVyX25hbWU6CisgICAgICAgIDpwYXJhbSBzZXJ2ZXJfcGFzc3dvcmQ6 CisgICAgICAgIDpwYXJhbSBkYXRhYmFzZV9uYW1lOgorICAgICAgICA6cGFyYW0gc2NoZW1hX25h bWU6CisgICAgICAgIDpwYXJhbSBzY2hlbWFfY2hpbGRfbm9kZV9uYW1lOgorICAgICAgICA6cmV0 dXJuOgorICAgICAgICAiIiIKKyAgICAgICAgc2NoZW1hX2NoaWxkX2V4cGFuZGVkID0gRmFsc2UK KyAgICAgICAgc2NoZW1hX2NoaWxkX25vZGVfeHBhdGggPSBUcmVlQXJlYUxvY2F0b3JzLiBcCisg ICAgICAgICAgICBzY2hlbWFfY2hpbGRfbm9kZShzY2hlbWFfbmFtZSwgc2NoZW1hX2NoaWxkX25v ZGVfbmFtZSkKKyAgICAgICAgc2NoZW1hX2NoaWxkX25vZGVfZXhwX3N0YXR1c19jaGVja194cGF0 aCA9IFRyZWVBcmVhTG9jYXRvcnMuIFwKKyAgICAgICAgICAgIHNjaGVtYV9jaGlsZF9ub2RlX2V4 cF9zdGF0dXMoc2NoZW1hX25hbWUsIHNjaGVtYV9jaGlsZF9ub2RlX25hbWUpCisKKyAgICAgICAg aWYgc2VsZi5leHBhbmRfc2NoZW1hX25vZGUoc2VydmVyX2dyb3VwX25hbWUsIHNlcnZlcl9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfcGFzc3dvcmQsIGRh dGFiYXNlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9u YW1lKToKKyAgICAgICAgICAgIGNoaWxkX25vZGVfZWxlID0gc2VsZi5jaGVja19pZl9lbGVtZW50 X2V4aXN0c193aXRoX3Njcm9sbCgKKyAgICAgICAgICAgICAgICBzY2hlbWFfY2hpbGRfbm9kZV94 cGF0aCkKKyAgICAgICAgICAgIGlmIGNoaWxkX25vZGVfZWxlOgorICAgICAgICAgICAgICAgIGlm IHNlbGYuY2hlY2tfaWZfZWxlbWVudF9leGlzdF9ieV94cGF0aCgKKyAgICAgICAgICAgICAgICAg ICAgICAgIHNjaGVtYV9jaGlsZF9ub2RlX2V4cF9zdGF0dXNfY2hlY2tfeHBhdGgsIDEpOgorICAg ICAgICAgICAgICAgICAgICBzY2hlbWFfY2hpbGRfZXhwYW5kZWQgPSBUcnVlCisgICAgICAgICAg ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgc2NoZW1hX2NoaWxkX2V4cGFuZGVkID0g c2VsZi5jbGlja190b19leHBhbmRfdHJlZV9ub2RlKAorICAgICAgICAgICAgICAgICAgICAgICAg Y2hpbGRfbm9kZV9lbGUsCisgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfY2hpbGRfbm9k ZV9leHBfc3RhdHVzX2NoZWNrX3hwYXRoKQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg ICAgICBub2RlX2V4cGFuZGVkX3N1Y2Nlc3NmdWxseSA9IFRydWUKKyAgICAgICAgICAgICAgICBw cmludCgiJXMgbm9kZSBub3QgZm91bmQgLSAiLCBzY2hlbWFfY2hpbGRfbm9kZV9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgIGZpbGU9c3lzLnN0ZGVycikKICAgICAgICAgZWxzZToKLSAgICAg ICAgICAgIHByaW50KAotICAgICAgICAgICAgICAgICIoZXhwYW5kX3RhYmxlc19ub2RlKSBzY2hl bWEvcHJldmlvdXMgbm9kZXMgIgotICAgICAgICAgICAgICAgICJhcmUgbm90IGV4cGFuZGVkIiwK LSAgICAgICAgICAgICAgICBmaWxlPXN5cy5zdGRlcnIpCi0gICAgICAgIHJldHVybiBub2RlX2V4 cGFuZGVkX3N1Y2Nlc3NmdWxseQorICAgICAgICAgICAgcHJpbnQoIlRoZSBzY2hlbWEvcHJldmlv dXMgbm9kZXMgbm90IGV4cGFuZGVkIiwgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICByZXR1cm4g c2NoZW1hX2NoaWxkX2V4cGFuZGVkCiAKKyAgICAjIFRPRE8gTm90IHVzZWQgYW55IHdoZXJlIHRv IGJlIHJlbW92ZWQKICAgICBkZWYgdG9nZ2xlX29wZW5fZnVuY3Rpb25fbm9kZShzZWxmKToKICAg ICAgICAgIiIiVGhlIGZ1bmN0aW9uIHdpbGwgYmUgdXNlZCBmb3Igb3BlbmluZyBGdW5jdGlvbnMg bm9kZSBvbmx5IiIiCiAgICAgICAgIG5vZGVfZXhwYW5kZWQgPSBGYWxzZQpAQCAtNzQ5LDc2ICs4 NDcsNyBAQCBjbGFzcyBQZ2FkbWluUGFnZToKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAg ICAgICAgbm9kZV9leHBhbmRlZCA9IFRydWUKIAotICAgIGRlZiBjaGVja19zZXJ2ZXJfaXNfY29u bmVjdGVkKHNlbGYsIGluZGV4X29mX3NlcnZlcik6Ci0gICAgICAgICIiIlRoaXMgd2lsbCBjaGVj ayBjb25uZWN0ZWQgc3RhdHVzIG9mIGEgc2VydmVyLCBhcyBjb25uZWN0aW9uCi0gICAgICAgIHN0 YXR1cyBpcyBjb250YWluZWQgZWl0aGVyIGluIHNwYW4gb3IgZGl2IGVsZW1lbnQgc28gY2hlY2tp bmcgaXQiIiIKLSAgICAgICAgc2VydmVyX2Nvbm5lY3RlZCA9IEZhbHNlCi0gICAgICAgIHRyeToK LSAgICAgICAgICAgIGNvbm5lY3Rpb25fc3RhdHVzX2VsZW1lbnRzID0gc2VsZi5maW5kX2J5X3hw YXRoX2xpc3QoCi0gICAgICAgICAgICAgICAgVHJlZUFyZWFMb2NhdG9ycy5zZXJ2ZXJfZ3JvdXBf c3ViX25vZGVzX2Nvbm5lY3RlZF9zdGF0dXMpCi0gICAgICAgICAgICBzcGFuX2VsZW1lbnRzID0g Y29ubmVjdGlvbl9zdGF0dXNfZWxlbWVudHNbCi0gICAgICAgICAgICAgICAgaW5kZXhfb2Zfc2Vy dmVyXS5maW5kX2VsZW1lbnRzX2J5X3RhZ19uYW1lKCJzcGFuIikKLSAgICAgICAgICAgIGRpdl9l bGVtZW50cyA9IGNvbm5lY3Rpb25fc3RhdHVzX2VsZW1lbnRzWwotICAgICAgICAgICAgICAgIGlu ZGV4X29mX3NlcnZlcl0uZmluZF9lbGVtZW50c19ieV90YWdfbmFtZSgiZGl2IikKLQotICAgICAg ICAgICAgc3Bhbl92YWx1ZV9vZl9jbGFzc19hdHQgPSAiIgotICAgICAgICAgICAgZGl2X3ZhbHVl X29mX2NsYXNzX2F0dCA9ICIiCi0KLSAgICAgICAgICAgIGlmIGxlbihzcGFuX2VsZW1lbnRzKSA+ IDA6Ci0gICAgICAgICAgICAgICAgc3Bhbl92YWx1ZV9vZl9jbGFzc19hdHQgPSBcCi0gICAgICAg ICAgICAgICAgICAgIHNwYW5fZWxlbWVudHNbMF0uZ2V0X2F0dHJpYnV0ZSgnY2xhc3MnKQotICAg ICAgICAgICAgaWYgbGVuKGRpdl9lbGVtZW50cykgPiAwOgotICAgICAgICAgICAgICAgIGRpdl92 YWx1ZV9vZl9jbGFzc19hdHQgPSBcCi0gICAgICAgICAgICAgICAgICAgIGRpdl9lbGVtZW50c1sw XS5nZXRfYXR0cmlidXRlKCdjbGFzcycpCi0gICAgICAgICAgICBpZiAoKCJhY2lUcmVlSWNvbiBp Y29uLXBnIiBpbiBzcGFuX3ZhbHVlX29mX2NsYXNzX2F0dCBvcgotICAgICAgICAgICAgICAgICAi YWNpVHJlZUljb24gaWNvbi1wZyIgaW4gZGl2X3ZhbHVlX29mX2NsYXNzX2F0dCBvcgotICAgICAg ICAgICAgICAgICAiYWNpVHJlZUljb24gaWNvbi1wcGFzIiBpbgotICAgICAgICAgICAgICAgICBz cGFuX3ZhbHVlX29mX2NsYXNzX2F0dCBvcgotICAgICAgICAgICAgICAgICAiYWNpVHJlZUljb24g aWNvbi1wcGFzIiBpbiBkaXZfdmFsdWVfb2ZfY2xhc3NfYXR0KSBhbmQKLSAgICAgICAgICAgICAg ICAgICAgKCJhY2lUcmVlSWNvbiBpY29uLXNlcnZlci1ub3QtY29ubmVjdGVkIiBub3QgaW4KLSAg ICAgICAgICAgICAgICAgICAgICAgIHNwYW5fdmFsdWVfb2ZfY2xhc3NfYXR0IG9yCi0gICAgICAg ICAgICAgICAgICAgICAgICAiYWNpVHJlZUljb24gaWNvbi1zZXJ2ZXItbm90LWNvbm5lY3RlZCIg bm90IGluCi0gICAgICAgICAgICAgICAgICAgICAgICBkaXZfdmFsdWVfb2ZfY2xhc3NfYXR0KSk6 Ci0gICAgICAgICAgICAgICAgc2VydmVyX2Nvbm5lY3RlZCA9IFRydWUKLSAgICAgICAgZXhjZXB0 IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgcHJpbnQoIlRoZXJlIGlzIHNvbWUgZXhjZXB0 aW9uIHRocm93biBpbiB0aGUgZnVuY3Rpb24gIgotICAgICAgICAgICAgICAgICAgImNoZWNrX3Nl cnZlcl9pc19jb25uZWN0ZWQgYW5kIGlzOiAiICsgc3RyKGUpLAotICAgICAgICAgICAgICAgICAg ZmlsZT1zeXMuc3RkZXJyKQotICAgICAgICByZXR1cm4gc2VydmVyX2Nvbm5lY3RlZAotCi0gICAg ZGVmIGNsaWNrX2FuZF9jb25uZWN0X3NlcnZlcihzZWxmLCBzZXJ2ZXJfZWxlbWVudCwgcGFzc3dv cmQpOgotICAgICAgICAiIiJ3aWxsIGNvbm5lY3QgYSBzZXJ2ZXIgbm9kZSwgd2lsbCBwcm92aWRl IHRoZSBwYXNzd29yZCBpbiB0aGUKLSAgICAgICAgcmVzcGVjdGl2ZSB3aW5kb3ciIiIKLSAgICAg ICAgc2VydmVyX2Nvbm5lY3Rpb25fc3RhdHVzID0gRmFsc2UKLSAgICAgICAgdHJ5OgotICAgICAg ICAgICAgd2ViZHJpdmVyLkFjdGlvbkNoYWlucyhzZWxmLmRyaXZlcikuZG91YmxlX2NsaWNrKAot ICAgICAgICAgICAgICAgIHNlcnZlcl9lbGVtZW50KS5wZXJmb3JtKCkKLSAgICAgICAgICAgIGlm IHNlbGYuY2hlY2tfaWZfZWxlbWVudF9leGlzdF9ieV94cGF0aCgKLSAgICAgICAgICAgICAgICAg ICAgQ29ubmVjdFRvU2VydmVyRGl2Lm9rX2J1dHRvbik6Ci0gICAgICAgICAgICAgICAgZmllbGQg PSBzZWxmLmZpbmRfYnlfeHBhdGgoCi0gICAgICAgICAgICAgICAgICAgIENvbm5lY3RUb1NlcnZl ckRpdi5wYXNzd29yZF9maWVsZCkKLSAgICAgICAgICAgICAgICBzZWxmLmZpbGxfaW5wdXQoZmll bGQsIHBhc3N3b3JkKQotICAgICAgICAgICAgICAgIHNlbGYuZmluZF9ieV94cGF0aChDb25uZWN0 VG9TZXJ2ZXJEaXYub2tfYnV0dG9uKS5jbGljaygpCi0gICAgICAgICAgICAgICAgc2VsZi53YWl0 X2Zvcl9lbGVtZW50X3RvX2Rpc2FwcGVhcigKLSAgICAgICAgICAgICAgICAgICAgbGFtYmRhIGRy aXZlcjogZHJpdmVyLmZpbmRfZWxlbWVudF9ieV94cGF0aCgKLSAgICAgICAgICAgICAgICAgICAg ICAgIENvbm5lY3RUb1NlcnZlckRpdi5va19idXR0b24pKQotICAgICAgICAgICAgICAgIGlmIHNl bGYuY2hlY2tfaWZfZWxlbWVudF9leGlzdF9ieV94cGF0aCgKLSAgICAgICAgICAgICAgICAgICAg ICAgIENvbm5lY3RUb1NlcnZlckRpdi5lcnJvcl9tZXNzYWdlLCAyKToKLSAgICAgICAgICAgICAg ICAgICAgcHJpbnQoCi0gICAgICAgICAgICAgICAgICAgICAgICAiV2hpbGUgZW50ZXJpbmcgcGFz c3dvcmQgaW4gY2xpY2tfYW5kX2Nvbm5lY3Rfc2VydmVyICIKLSAgICAgICAgICAgICAgICAgICAg ICAgICJmdW5jdGlvbiwgZXJyb3IgaXMgb2NjdXJyZWQgOiAiICsgc3RyKAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZmluZF9ieV94cGF0aCgKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ29ubmVjdFRvU2VydmVyRGl2LmVycm9yX21lc3NhZ2UpLnRleHQpLAotICAg ICAgICAgICAgICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyKQotICAgICAgICAgICAgICAgIGVs c2U6Ci0gICAgICAgICAgICAgICAgICAgIHNlcnZlcl9jb25uZWN0aW9uX3N0YXR1cyA9IFRydWUK LSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgcHJpbnQoCi0gICAg ICAgICAgICAgICAgIlRoZXJlIGlzIHNvbWUgZXhjZXB0aW9uIHRocm93biBjbGlja19hbmRfY29u bmVjdF9zZXJ2ZXIgIgotICAgICAgICAgICAgICAgICJhbmQgaXM6ICIgKyBzdHIoCi0gICAgICAg ICAgICAgICAgICAgIGUpLCBmaWxlPXN5cy5zdGRlcnIpCi0gICAgICAgIHJldHVybiBzZXJ2ZXJf Y29ubmVjdGlvbl9zdGF0dXMKLQorICAgICMgVE9ETyBOb3QgdXNlZCBhbnkgd2hlcmUgdG8gYmUg cmVtb3ZlZAogICAgIGRlZiBnZXRfZXhwYW5zaW9uX3N0YXR1c19vZl9ub2RlKHNlbGYsIHhwYXRo X25vZGUpOgogICAgICAgICAiIiJnZXQgdGhlIGV4cGFuc2lvbiBzdGF0dXMgZm9yIGEgbm9kZSB0 aHJvdWdoIHhwYXRoIiIiCiAgICAgICAgIG5vZGVfaXNfZXhwYW5kZWQgPSBGYWxzZQpAQCAtODI3 LDYgKzg1Niw3IEBAIGNsYXNzIFBnYWRtaW5QYWdlOgogICAgICAgICAgICAgbm9kZV9pc19leHBh bmRlZCA9IFRydWUKICAgICAgICAgcmV0dXJuIG5vZGVfaXNfZXhwYW5kZWQKIAorICAgICMgVE9E TyBOb3QgdXNlZCBhbnkgd2hlcmUgdG8gYmUgcmVtb3ZlZAogICAgIGRlZiBnZXRfZXhwYW5zaW9u X3N0YXR1c19vZl9ub2RlX2VsZW1lbnQoc2VsZiwgZWxlbWVudCk6CiAgICAgICAgICIiImdldCB0 aGUgZXhwYW5zaW9uIHN0YXR1cyBmb3IgYW4gZWxlbWVudCIiIgogICAgICAgICBub2RlX2lzX2V4 cGFuZGVkID0gRmFsc2UKQEAgLTg0MCw2ICs4NzAsNyBAQCBjbGFzcyBQZ2FkbWluUGFnZToKICAg ICAgICAgICAgICAgICAgICAgZSksIGZpbGU9c3lzLnN0ZGVycikKICAgICAgICAgcmV0dXJuIG5v ZGVfaXNfZXhwYW5kZWQKIAorICAgICMgVE9ETyBOb3QgdXNlZCBhbnkgd2hlcmUgdG8gYmUgcmVt b3ZlZAogICAgIGRlZiB0b2dnbGVfb3Blbl90cmVlX2l0ZW0oc2VsZiwgdHJlZV9pdGVtX3RleHQp OgogICAgICAgICAjICdzbGVlcCcgaGVyZSBoZWxwcyBpbiBjYXNlcyB3aGVyZSB1bmRlcmx5aW5n IG5vZGVzIGFyZSBhdXRvIG9wZW5lZC4KICAgICAgICAgIyBPdGhlcndpc2UsIGVuY291bnRlcmVk IHNpdHVhdGlvbnMgd2hlcmUgRmFsc2UgdmFsdWUgaXMgcmV0dXJuZWQKQEAgLTg2OCw2ICs4OTks NyBAQCBjbGFzcyBQZ2FkbWluUGFnZToKICAgICAgICAgICAgIGV4Y2VwdCBUaW1lb3V0RXhjZXB0 aW9uOgogICAgICAgICAgICAgICAgIHJldHJ5IC09IDEKIAorICAgICMgVE9ETyBOb3QgdXNlZCBh bnkgd2hlcmUgdG8gYmUgcmVtb3ZlZAogICAgIGRlZiB0b2dnbGVfb3Blbl9zZXJ2ZXIoc2VsZiwg dHJlZV9pdGVtX3RleHQpOgogICAgICAgICBkZWYgY2hlY2tfZm9yX3Bhc3N3b3JkX2RpYWxvZ19v cl90cmVlX29wZW4oZHJpdmVyKToKICAgICAgICAgICAgIHRyeToKQEAgLTg5NiwxNyArOTI4LDE3 IEBAIGNsYXNzIFBnYWRtaW5QYWdlOgogCiAgICAgZGVmIGZpbmRfYnlfeHBhdGgoc2VsZiwgeHBh dGgpOgogICAgICAgICByZXR1cm4gc2VsZi53YWl0X2Zvcl9lbGVtZW50KAotICAgICAgICAgICAg bGFtYmRhIGRyaXZlcjogZHJpdmVyLmZpbmRfZWxlbWVudF9ieV94cGF0aCh4cGF0aCkKKyAgICAg ICAgICAgIGxhbWJkYSBkcml2ZXI6IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuWFBBVEgsIHhwYXRo KQogICAgICAgICApCiAKICAgICBkZWYgZmluZF9ieV9pZChzZWxmLCBlbGVtZW50X2lkKToKICAg ICAgICAgcmV0dXJuIHNlbGYud2FpdF9mb3JfZWxlbWVudCgKLSAgICAgICAgICAgIGxhbWJkYSBk cml2ZXI6IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoZWxlbWVudF9pZCkKKyAgICAgICAgICAg IGxhbWJkYSBkcml2ZXI6IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsIGVsZW1lbnRfaWQpCiAg ICAgICAgICkKIAogICAgIGRlZiBmaW5kX2J5X2Nzc19zZWxlY3RvcihzZWxmLCBjc3Nfc2VsZWN0 b3IpOgogICAgICAgICByZXR1cm4gc2VsZi53YWl0X2Zvcl9lbGVtZW50KAotICAgICAgICAgICAg bGFtYmRhIGRyaXZlcjogZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9jc3Nfc2VsZWN0b3IoY3NzX3Nl bGVjdG9yKQorICAgICAgICAgICAgbGFtYmRhIGRyaXZlcjogZHJpdmVyLmZpbmRfZWxlbWVudChC eS5DU1NfU0VMRUNUT1IsIGNzc19zZWxlY3RvcikKICAgICAgICAgKQogCiAgICAgZGVmIGZpbmRf YnlfcGFydGlhbF9saW5rX3RleHQoc2VsZiwgbGlua190ZXh0KToKQEAgLTEwMDUsNyArMTAzNyw3 IEBAIGNsYXNzIFBnYWRtaW5QYWdlOgogICAgICAgICBkZWYgZmluZF9jb2RlbWlycm9yKGRyaXZl cik6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgZHJpdmVyLnN3aXRjaF90by5k ZWZhdWx0X2NvbnRlbnQoKQotICAgICAgICAgICAgICAgIGRyaXZlci5zd2l0Y2hfdG9fZnJhbWUo CisgICAgICAgICAgICAgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZSgKICAgICAgICAgICAgICAg ICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV90YWdfbmFtZSgiaWZyYW1lIikpCiAgICAgICAg ICAgICAgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfY3NzX3NlbGVjdG9yKAog ICAgICAgICAgICAgICAgICAgICAiI291dHB1dC1wYW5lbCAuQ29kZU1pcnJvciIpCkBAIC0xMDEz LDYgKzEwNDUsNyBAQCBjbGFzcyBQZ2FkbWluUGFnZToKICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIGVsZW1lbnQKICAgICAgICAgICAgIGV4Y2VwdCAoTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiwg V2ViRHJpdmVyRXhjZXB0aW9uKToKICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKwogICAg ICAgICB0aW1lLnNsZWVwKDEpCiAgICAgICAgIHNlbGYud2FpdF9mb3JfcXVlcnlfdG9vbF9sb2Fk aW5nX2luZGljYXRvcl90b19kaXNhcHBlYXIoMTIpCiAKQEAgLTExMzMsNyArMTE2Niw3IEBAIGNs YXNzIFBnYWRtaW5QYWdlOgogICAgIGRlZiB3YWl0X2Zvcl9zcGlubmVyX3RvX2Rpc2FwcGVhcihz ZWxmKToKICAgICAgICAgZGVmIHNwaW5uZXJfaGFzX2Rpc2FwcGVhcmVkKGRyaXZlcik6CiAgICAg ICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgi cGctc3Bpbm5lciIpCisgICAgICAgICAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwg InBnLXNwaW5uZXIiKQogICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICAgICAg ZXhjZXB0IE5vU3VjaEVsZW1lbnRFeGNlcHRpb246CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRy dWUKQEAgLTExNDUsOSArMTE3OCw5IEBAIGNsYXNzIFBnYWRtaW5QYWdlOgogICAgICAgICAgICAg dHJ5OgogICAgICAgICAgICAgICAgICMgUmVmZXIgdGhlIHN0YXR1cyBtZXNzYWdlIGFzIHNwaW5u ZXIgYXBwZWFycyBvbmx5IG9uIHRoZQogICAgICAgICAgICAgICAgICMgdGhlIGRhdGEgb3V0cHV0 IHBhbmVsCi0gICAgICAgICAgICAgICAgc3Bpbm5lciA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlf Y3NzX3NlbGVjdG9yKAotICAgICAgICAgICAgICAgICAgICAiLnNxbC1lZGl0b3IgLnNxbC1lZGl0 b3ItYnVzeS10ZXh0LXN0YXR1cyIKLSAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAg c3Bpbm5lciA9IGRyaXZlci5maW5kX2VsZW1lbnQoCisgICAgICAgICAgICAgICAgICAgIEJ5LkNT U19TRUxFQ1RPUiwKKyAgICAgICAgICAgICAgICAgICAgIi5zcWwtZWRpdG9yIC5zcWwtZWRpdG9y LWJ1c3ktdGV4dC1zdGF0dXMiKQogICAgICAgICAgICAgICAgIHJldHVybiAiZC1ub25lIiBpbiBz cGlubmVyLmdldF9hdHRyaWJ1dGUoImNsYXNzIikKICAgICAgICAgICAgIGV4Y2VwdCBOb1N1Y2hF bGVtZW50RXhjZXB0aW9uOgogICAgICAgICAgICAgICAgICMgd2FpdCBmb3IgbG9hZGluZyBpbmRp Y2F0b3IgZGlzYXBwZWFyIGFuaW1hdGlvbiB0byBjb21wbGV0ZS4KQEAgLTExOTUsOCArMTIyOCw4 IEBAIGNsYXNzIFBnYWRtaW5QYWdlOgogICAgICAgICBkZWYgZWxlbWVudF9pZl9pdF9leGlzdHMo ZHJpdmVyKToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZmlu ZF9tZXRob2Rfd2l0aF9hcmdzKGRyaXZlcikKLSAgICAgICAgICAgICAgICBpZiBsZW4oZWxlbWVu dCkgPiAwIGFuZCBlbGVtZW50WzBdLmlzX2Rpc3BsYXllZCgpIGFuZCBlbGVtZW50WwotICAgICAg ICAgICAgICAgICAgICAgICAgMF0uaXNfZW5hYmxlZCgpOgorICAgICAgICAgICAgICAgIGlmIGxl bihlbGVtZW50KSA+IDAgYW5kIGVsZW1lbnRbMF0uaXNfZGlzcGxheWVkKCkgYW5kIFwKKyAgICAg ICAgICAgICAgICAgICAgICAgIGVsZW1lbnRbMF0uaXNfZW5hYmxlZCgpOgogICAgICAgICAgICAg ICAgICAgICByZXR1cm4gZWxlbWVudAogICAgICAgICAgICAgZXhjZXB0IE5vU3VjaEVsZW1lbnRF eGNlcHRpb246CiAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCkBAIC0xMjA5LDE4ICsxMjQy LDY2IEBAIGNsYXNzIFBnYWRtaW5QYWdlOgogICAgICAgICBlbGVtZW50c19sb2NhdGVkX3N0YXR1 cyA9IEZhbHNlCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGlmIFdlYkRyaXZlcldhaXQoZHJp dmVyLCB0aW1lX3ZhbHVlKS51bnRpbCgKLSAgICAgICAgICAgICAgICAgICAgRUMudmlzaWJpbGl0 eV9vZl9hbnlfZWxlbWVudHNfbG9jYXRlZCgoCi0gICAgICAgICAgICAgICAgICAgICAgICBCeS5Y UEFUSCwgbG9jYXRvcikpKToKKyAgICAgICAgICAgICAgICBFQy52aXNpYmlsaXR5X29mX2FueV9l bGVtZW50c19sb2NhdGVkKCgKKyAgICAgICAgICAgICAgICAgICAgQnkuWFBBVEgsIGxvY2F0b3Ip KSk6CiAgICAgICAgICAgICAgICAgZWxlbWVudHNfbG9jYXRlZF9zdGF0dXMgPSBUcnVlCiAgICAg ICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIHJldHVybiBl bGVtZW50c19sb2NhdGVkX3N0YXR1cwogCisgICAgZGVmIGNoZWNrX2lmX2VsZW1lbnRfZXhpc3Rz X3dpdGhfc2Nyb2xsKHNlbGYsIHhwYXRoKToKKyAgICAgICAgZl9zY3JvbGwsIHJfc2Nyb2xsID0g MTExLCAxMTEKKyAgICAgICAgd2hpbGUgZl9zY3JvbGwgPiAwIG9yIHJfc2Nyb2xsID4gMDoKKyAg ICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBlbGUgPSBXZWJEcml2ZXJXYWl0KHNlbGYu ZHJpdmVyLCAxLCAwLjAxKS51bnRpbCgKKyAgICAgICAgICAgICAgICAgICAgbGFtYmRhIGQ6IGQu ZmluZF9lbGVtZW50KEJ5LlhQQVRILCB4cGF0aCkpCisgICAgICAgICAgICAgICAgZl9zY3JvbGws IHJfc2Nyb2xsID0gMCwgMAorICAgICAgICAgICAgICAgIHJldHVybiBlbGUKKyAgICAgICAgICAg IGV4Y2VwdCAoVGltZW91dEV4Y2VwdGlvbiwgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbikgYXMgZToK KyAgICAgICAgICAgICAgICB0cmVlX2hlaWdodCA9IGludCgoc2VsZi5kcml2ZXIuZmluZF9lbGVt ZW50KAorICAgICAgICAgICAgICAgICAgICBCeS5YUEFUSCwgIi8vZGl2W0BjbGFzcz0nZmlsZS10 cmVlJ10vZGl2WzFdL2Rpdi9kaXYiKS4KKyAgICAgICAgICAgICAgICAgICAgdmFsdWVfb2ZfY3Nz X3Byb3BlcnR5KCdoZWlnaHQnKSkuc3BsaXQoInB4IilbMF0pCisKKyAgICAgICAgICAgICAgICBp ZiBmX3Njcm9sbCA9PSAxMTEgYW5kIHJfc2Nyb2xsID09IDExMToKKyAgICAgICAgICAgICAgICAg ICAgd2luZG93X3NpemUgPSBpbnQoc2VsZi5kcml2ZXIuZ2V0X3dpbmRvd19zaXplKClbImhlaWdo dCJdKQorICAgICAgICAgICAgICAgICAgICBmX3Njcm9sbCA9IHJfc2Nyb2xsID0gKHRyZWVfaGVp Z2h0IC8gd2luZG93X3NpemUgKyAxKQorCisgICAgICAgICAgICAgICAgaWYgZl9zY3JvbGwgPiAw OgorICAgICAgICAgICAgICAgICAgICBib3R0b21fZWxlID0gc2VsZi5kcml2ZXIuZmluZF9lbGVt ZW50KAorICAgICAgICAgICAgICAgICAgICAgICAgQnkuWFBBVEgsCisgICAgICAgICAgICAgICAg ICAgICAgICAiLy9kaXZbQGlkPSd0cmVlJ10vZGl2L2Rpdi9kaXYvZGl2L2RpdltsYXN0KCldIikK KyAgICAgICAgICAgICAgICAgICAgYm90dG9tX2VsZV9sb2NhdGlvbiA9IGludCgKKyAgICAgICAg ICAgICAgICAgICAgICAgIGJvdHRvbV9lbGUudmFsdWVfb2ZfY3NzX3Byb3BlcnR5KCd0b3AnKS5z cGxpdCgicHgiKVswXSkKKworICAgICAgICAgICAgICAgICAgICBpZiB0cmVlX2hlaWdodCAtIGJv dHRvbV9lbGVfbG9jYXRpb24gPCAyNToKKyAgICAgICAgICAgICAgICAgICAgICAgIGZfc2Nyb2xs ID0gMAorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kcml2ZXIuZXhlY3V0ZV9zY3JpcHQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5qc19leGVjdXRvcl9zY3JvbGxpbnRvdmlld19hcmcsIGJvdHRvbV9lbGUpCisgICAgICAg ICAgICAgICAgICAgICAgICBmX3Njcm9sbCAtPSAxCisgICAgICAgICAgICAgICAgZWxpZiByX3Nj cm9sbCA+IDA6CisgICAgICAgICAgICAgICAgICAgIHRvcF9lbCA9IHNlbGYuZHJpdmVyLmZpbmRf ZWxlbWVudCgKKyAgICAgICAgICAgICAgICAgICAgICAgIEJ5LlhQQVRILAorICAgICAgICAgICAg ICAgICAgICAgICAgIi8vZGl2W0BpZD0ndHJlZSddL2Rpdi9kaXYvZGl2L2Rpdi9kaXZbMV0iKQor ICAgICAgICAgICAgICAgICAgICB0b3BfZWxfbG9jYXRpb24gPSBpbnQoCisgICAgICAgICAgICAg ICAgICAgICAgICB0b3BfZWwudmFsdWVfb2ZfY3NzX3Byb3BlcnR5KCd0b3AnKS5zcGxpdCgicHgi KVswXSkKKworICAgICAgICAgICAgICAgICAgICBpZiAodHJlZV9oZWlnaHQgLSB0b3BfZWxfbG9j YXRpb24pID09IHRyZWVfaGVpZ2h0OgorICAgICAgICAgICAgICAgICAgICAgICAgcl9zY3JvbGwg PSAwCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICB3 ZWJkcml2ZXIuQWN0aW9uQ2hhaW5zKHNlbGYuZHJpdmVyKS5tb3ZlX3RvX2VsZW1lbnQoCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdG9wX2VsKS5wZXJmb3JtKCkKKyAgICAgICAgICAgICAg ICAgICAgICAgIHJfc2Nyb2xsIC09IDEKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByaW50 KCJjaGVja19pZl9lbGVtZW50X2V4aXN0c193aXRoX3Njcm9sbCA+IEVsZW1lbnQgTk9UIGZvdW5k IikKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCiAgICAgZGVmIGZpbmRfYnlfeHBhdGhfbGlz dChzZWxmLCB4cGF0aCk6CiAgICAgICAgICIiIlRoaXMgd2lsbCBmaW5kIG91dCBsaXN0IG9mIGVs ZW1lbnRzIHRocm91Z2ggYSBzaW5nbGUgeHBhdGgiIiIKICAgICAgICAgcmV0dXJuIHNlbGYud2Fp dF9mb3JfZWxlbWVudHMoCi0gICAgICAgICAgICBsYW1iZGEgZHJpdmVyOiBkcml2ZXIuZmluZF9l bGVtZW50c19ieV94cGF0aCh4cGF0aCkpCisgICAgICAgICAgICBsYW1iZGEgZHJpdmVyOiBkcml2 ZXIuZmluZF9lbGVtZW50cyhCeS5YUEFUSCwgeHBhdGgpKQogCisgICAgIyBUT0RPIE5vdCB1c2Vk IGFueSB3aGVyZSB0byBiZSByZW1vdmVkCiAgICAgZGVmIGdldF9pbmRleF9vZl9lbGVtZW50KHNl bGYsIGVsZW1lbnRfbGlzdCwgdGFyZ2V0X3N0cmluZyk6CiAgICAgICAgICIiIml0IHdpbGwgcmV0 dXJuIGluZGV4IG9mIGFuIGVsZW1lbnQgZnJvbSBwcm92aWRlZCBlbGVtZW50IGxpc3QiIiIKICAg ICAgICAgaW5kZXhfb2ZfcmVxdWlyZWRfc2VydmVyID0gLTEKZGlmZiAtLWdpdCBhL3dlYi9yZWdy ZXNzaW9uL2ZlYXR1cmVfdXRpbHMvdHJlZV9hcmVhX2xvY2F0b3JzLnB5IGIvd2ViL3JlZ3Jlc3Np b24vZmVhdHVyZV91dGlscy90cmVlX2FyZWFfbG9jYXRvcnMucHkKaW5kZXggZDY5NjhlNzdiLi5m MGU4ZjBiMzkgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdXRpbHMvdHJlZV9h cmVhX2xvY2F0b3JzLnB5CisrKyBiL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdXRpbHMvdHJlZV9h cmVhX2xvY2F0b3JzLnB5CkBAIC0xMSwxMjYgKzExLDI2MCBAQCBjbGFzcyBUcmVlQXJlYUxvY2F0 b3JzKCk6CiAgICAgIiIiVGhpcyB3aWxsIGNvbnRhaW5zIGVsZW1lbnQgbG9jYXRvcnMgZm9yIHRy ZWUgYXJlYSwgd2lsbCBhbHNvIGNvbnRhaW4KICAgICBwYXJhbWV0cml6ZWQgeHBhdGggd2hlcmUg YXBwbGljYWJsZSIiIgogCi0gICAgc2VydmVyX2dyb3VwX25vZGUgPSBcCi0gICAgICAgICIvL2Rp dltAaWQ9J3RyZWUnXS8vc3BhbltAY2xhc3M9J2FjaVRyZWVJdGVtJ10iIFwKLSAgICAgICAgIi9z cGFuWyhAY2xhc3M9J2FjaVRyZWVUZXh0JykgYW5kIHN0YXJ0cy13aXRoKHRleHQoKSwnU2VydmVy cyAnKSBvciAiIFwKLSAgICAgICAgInN0YXJ0cy13aXRoKHRleHQoKSwgJ1NlcnZlcnMnKV0iCisg ICAgIyBTZXJ2ZXIgR3JvdXAgTm9kZQorICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgc2VydmVy X2dyb3VwX25vZGUoc2VydmVyX2dyb3VwX25hbWUpOgorICAgICAgICByZXR1cm4gIi8vc3Bhbltz dGFydHMtd2l0aCh0ZXh0KCksJyVzJyldIiAlIHNlcnZlcl9ncm91cF9uYW1lCiAKLSAgICBzZXJ2 ZXJfZ3JvdXBfbm9kZV9leHBfc3RhdHVzID0gIi8vZGl2W2RpdltzcGFuW3NwYW5bIiBcCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIoQGNsYXNzPSdhY2lUcmVlVGV4dCcpIGFu ZCAiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIih0ZXh0KCk9J1NlcnZl cnMgJyBvciAiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRleHQoKT0n U2VydmVycycpXV1dXSIKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHNlcnZlcl9ncm91cF9u b2RlX2V4cF9zdGF0dXMoc2VydmVyX2dyb3VwX25hbWUpOgorICAgICAgICByZXR1cm4gIi8vaVtA Y2xhc3M9J2RpcmVjdG9yeS10b2dnbGUgb3BlbiddL2ZvbGxvd2luZy1zaWJsaW5nOjoiIFwKKyAg ICAgICAgICAgICAgICJzcGFuLy9zcGFuW3N0YXJ0cy13aXRoKHRleHQoKSwnJXMnKV0iICUgc2Vy dmVyX2dyb3VwX25hbWUKIAotICAgIHNlcnZlcl9ncm91cF9zdWJfbm9kZXMgPSBcCi0gICAgICAg ICIvL2RpdltkaXZbc3BhbltzcGFuW2NvbnRhaW5zKHRleHQoKSwnU2VydmVycycpXV1dXS8iIFwK LSAgICAgICAgImZvbGxvd2luZy1zaWJsaW5nOjp1bC9saS9kaXYvZGl2L2Rpdi9zcGFuWzJdLyIg XAotICAgICAgICAic3BhbltAY2xhc3M9J2FjaVRyZWVUZXh0J10iCisgICAgIyBTZXJ2ZXIgTm9k ZQorICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgc2VydmVyX25vZGUoc2VydmVyX25hbWUpOgor ICAgICAgICByZXR1cm4gIi8vZGl2W0BpZD0ndHJlZSddLy9zcGFuW3N0YXJ0cy13aXRoKHRleHQo KSwnJXMnKV0iIFwKKyAgICAgICAgICAgICAgICUgc2VydmVyX25hbWUKIAotICAgIHNlcnZlcl9n cm91cF9zdWJfbm9kZXNfZXhwX3N0YXR1cyA9IFwKLSAgICAgICAgIi8vZGl2W2RpdltzcGFuW3Nw YW5bY29udGFpbnModGV4dCgpLCdTZXJ2ZXJzJyldXV1dIiBcCi0gICAgICAgICIvZm9sbG93aW5n LXNpYmxpbmc6OnVsL2xpL2RpdiIKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHNlcnZlcl9u b2RlX2V4cF9zdGF0dXMoc2VydmVyX25hbWUpOgorICAgICAgICByZXR1cm4gIi8vaVtAY2xhc3M9 J2RpcmVjdG9yeS10b2dnbGUgb3BlbiddL2ZvbGxvd2luZy1zaWJsaW5nOjoiIFwKKyAgICAgICAg ICAgICAgICJzcGFuLy9zcGFuW3N0YXJ0cy13aXRoKHRleHQoKSwnJXMnKV0iICUgc2VydmVyX25h bWUKIAotICAgIHNlcnZlcl9ncm91cF9zdWJfbm9kZXNfY29ubmVjdGVkX3N0YXR1cyA9IFwKLSAg ICAgICAgIi8vZGl2W2RpdltzcGFuW3NwYW5bY29udGFpbnModGV4dCgpLCAnU2VydmVycycpXV1d XS8iIFwKLSAgICAgICAgImZvbGxvd2luZy1zaWJsaW5nOjp1bC9saS9kaXYvZGl2L2Rpdi9zcGFu WzJdIgorICAgICMgU2VydmVyIENvbm5lY3Rpb24KKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVm IHNlcnZlcl9jb25uZWN0aW9uX3N0YXR1c19lbGVtZW50KHNlcnZlcl9uYW1lKToKKyAgICAgICAg cmV0dXJuICIvL2RpdltAaWQ9J3RyZWUnXS8vc3BhbltzdGFydHMtd2l0aCh0ZXh0KCksJyVzJyld LyIgXAorICAgICAgICAgICAgICAgInByZWNlZGluZy1zaWJsaW5nOjppIiAlIHNlcnZlcl9uYW1l CiAKLSAgICBzcGVjaWZpZWRfdHJlZV9ub2RlID0gXAotICAgICAgICAiLy9kaXZbQGlkPSd0cmVl J10vL3NwYW5bQGNsYXNzPSdhY2lUcmVlSXRlbSddLyIgXAotICAgICAgICAic3BhblsoQGNsYXNz PSdhY2lUcmVlVGV4dCcpIGFuZCB0ZXh0KCk9J3t9J10iCisgICAgIyBEYXRhYmFzZXMgTm9kZQor ICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgZGF0YWJhc2VzX25vZGUoc2VydmVyX25hbWUpOgor ICAgICAgICByZXR1cm4gIi8vZGl2W2RpdltzcGFuW3NwYW5bc3RhcnRzLXdpdGgodGV4dCgpLCcl cycpXV1dXS8iIFwKKyAgICAgICAgICAgICAgICJmb2xsb3dpbmctc2libGluZzo6ZGl2Ly9zcGFu W3RleHQoKT0nRGF0YWJhc2VzJ10iICUgc2VydmVyX25hbWUKIAotICAgIHNwZWNpZmllZF90cmVl X25vZGVfZXhwX3N0YXR1cyA9IFwKLSAgICAgICAgIi8vZGl2W0BpZD0ndHJlZSddLy9zcGFuW0Bj bGFzcz0nYWNpVHJlZUl0ZW0nXS8iIFwKLSAgICAgICAgInNwYW5bKEBjbGFzcz0nYWNpVHJlZVRl eHQnKSBhbmQgdGV4dCgpPSd7fSddIiBcCi0gICAgICAgICIvL2FuY2VzdG9yOjoqW0BjbGFzcz0n YWNpVHJlZUxpbmUnXSIKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGRhdGFiYXNlc19ub2Rl X2V4cF9zdGF0dXMoc2VydmVyX25hbWUpOgorICAgICAgICByZXR1cm4gIi8vZGl2W2RpdltzcGFu W3NwYW5bc3RhcnRzLXdpdGgodGV4dCgpLCclcycpXV1dXS8iIFwKKyAgICAgICAgICAgICAgICJm b2xsb3dpbmctc2libGluZzo6ZGl2Ly9zcGFuW3NwYW5bdGV4dCgpPSdEYXRhYmFzZXMnXV0vIiBc CisgICAgICAgICAgICAgICAicHJlY2VkaW5nLXNpYmxpbmc6OmlbQGNsYXNzPSdkaXJlY3Rvcnkt dG9nZ2xlIG9wZW4nXSIgXAorICAgICAgICAgICAgICAgJSBzZXJ2ZXJfbmFtZQogCi0gICAgc3Vi X25vZGVzX29mX3RhYmxlc19ub2RlID0gXAotICAgICAgICAiLy9kaXZbZGl2W2RpdltkaXZbZGl2 W2RpdltkaXZbZGl2W3NwYW5bc3BhblsiIFwKLSAgICAgICAgImNvbnRhaW5zKHRleHQoKSwnVGFi bGVzJyldXV1dXV1dXV1dLyIgXAotICAgICAgICAiZm9sbG93aW5nLXNpYmxpbmc6OnVsL2xpL2Rp di8vZGl2L3NwYW5bMl0vc3BhblsyXSIKKyAgICAjIERhdGFiYXNlIE5vZGUKKyAgICBAc3RhdGlj bWV0aG9kCisgICAgZGVmIGRhdGFiYXNlX25vZGUoZGF0YWJhc2VfbmFtZSk6CisgICAgICAgIHJl dHVybiAiLy9kaXZbQGRhdGEtZGVwdGg9JzQnXS9zcGFuL3NwYW5bdGV4dCgpPSclcyddIiAlIGRh dGFiYXNlX25hbWUKIAotICAgIHN1Yl9ub2Rlc19vZl9mdW5jdGlvbnNfbm9kZSA9IFwKLSAgICAg ICAgIi8vZGl2W2RpdltkaXZbZGl2W2RpdltkaXZbZGl2W2RpdltzcGFuW3NwYW5bIiBcCi0gICAg ICAgICJjb250YWlucyh0ZXh0KCksJ0Z1bmN0aW9ucycpXV1dXV1dXV1dXS8iIFwKLSAgICAgICAg ImZvbGxvd2luZy1zaWJsaW5nOjp1bC9saS9kaXYvL2Rpdi9zcGFuWzJdL3NwYW5bMl0iCisgICAg QHN0YXRpY21ldGhvZAorICAgIGRlZiBkYXRhYmFzZV9ub2RlX2V4cF9zdGF0dXMoZGF0YWJhc2Vf bmFtZSk6CisgICAgICAgIHJldHVybiAiLy9pW0BjbGFzcz0nZGlyZWN0b3J5LXRvZ2dsZSBvcGVu J10vZm9sbG93aW5nLXNpYmxpbmc6OiIgXAorICAgICAgICAgICAgICAgInNwYW4vL3NwYW5bdGV4 dCgpPSclcyddIiAlIGRhdGFiYXNlX25hbWUKIAotICAgIHN1Yl9ub2Rlc19vZl9sb2dpbl9ncm91 cF9ub2RlID0gXAotICAgICAgICAiLy9kaXZbZGl2W2RpdltzcGFuW3NwYW5bY29udGFpbnModGV4 dCgpLCdMb2dpbi9Hcm91cCBSb2xlcycpXV1dXV0iIFwKLSAgICAgICAgIi9mb2xsb3dpbmc6OnVs L2xpL2RpdltAY2xhc3M9J2FjaVRyZWVMaW5lJ10iCisgICAgIyBTY2hlbWFzIE5vZGUKKyAgICBA c3RhdGljbWV0aG9kCisgICAgZGVmIHNjaGVtYXNfbm9kZShkYXRhYmFzZV9uYW1lKToKKyAgICAg ICAgcmV0dXJuICIvL2RpdltkaXZbc3BhbltzcGFuW3N0YXJ0cy13aXRoKHRleHQoKSwnJXMnKV1d XV0vIiBcCisgICAgICAgICAgICAgICAiZm9sbG93aW5nLXNpYmxpbmc6OmRpdi8vc3Bhblt0ZXh0 KCk9J1NjaGVtYXMnXSIgJSBkYXRhYmFzZV9uYW1lCiAKICAgICBAc3RhdGljbWV0aG9kCi0gICAg ZGVmIHN1Yl9ub2Rlc19vZl9hX3NlcnZlcl9ub2RlKHNlcnZlcl9uYW1lKToKLSAgICAgICAgeHBh dGggPSAiLy9kaXZbZGl2W2RpdltzcGFuW3NwYW5bY29udGFpbnModGV4dCgpLCclcycpXV1dXV0v IiBcCi0gICAgICAgICAgICAgICAgImZvbGxvd2luZy1zaWJsaW5nOjp1bC9saS9kaXZbQGNsYXNz PSdhY2lUcmVlTGluZSddIiAlIFwKLSAgICAgICAgICAgICAgICBzZXJ2ZXJfbmFtZQotICAgICAg ICByZXR1cm4geHBhdGgKKyAgICBkZWYgc2NoZW1hc19ub2RlX2V4cF9zdGF0dXMoZGF0YWJhc2Vf bmFtZSk6CisgICAgICAgIHJldHVybiAiLy9kaXZbZGl2W3NwYW5bc3BhbltzdGFydHMtd2l0aCh0 ZXh0KCksJyVzJyldXV1dLyIgXAorICAgICAgICAgICAgICAgImZvbGxvd2luZy1zaWJsaW5nOjpk aXYvL3NwYW5bc3Bhblt0ZXh0KCk9J1NjaGVtYXMnXV0vIiBcCisgICAgICAgICAgICAgICAicHJl Y2VkaW5nLXNpYmxpbmc6OmlbQGNsYXNzPSdkaXJlY3RvcnktdG9nZ2xlIG9wZW4nXSIgXAorICAg ICAgICAgICAgICAgJSBkYXRhYmFzZV9uYW1lCiAKKyAgICAjIFNjaGVtYSBOb2RlCiAgICAgQHN0 YXRpY21ldGhvZAotICAgIGRlZiBzdWJfbm9kZXNfb2ZfYV9zZXJ2ZXJfbm9kZV9leHBfc3RhdHVz KHNlcnZlcl9uYW1lKToKLSAgICAgICAgeHBhdGggPSAiLy9kaXZbZGl2W2RpdltzcGFuW3NwYW5b Y29udGFpbnModGV4dCgpLCclcycpXV1dXV0vIiBcCi0gICAgICAgICAgICAgICAgImZvbGxvd2lu Zy1zaWJsaW5nOjp1bC9saS9kaXYiICUgc2VydmVyX25hbWUKLSAgICAgICAgcmV0dXJuIHhwYXRo CisgICAgZGVmIHNjaGVtYV9ub2RlKHNjaGVtYV9uYW1lKToKKyAgICAgICAgcmV0dXJuICIvL2Rp dltAaWQ9J3RyZWUnXS8vc3Bhblt0ZXh0KCk9JyVzJ10iICUgc2NoZW1hX25hbWUKIAogICAgIEBz dGF0aWNtZXRob2QKLSAgICBkZWYgZGF0YWJhc2VzX25vZGVfb2ZfYV9zZXJ2ZXJfbm9kZShzZXJ2 ZXJfbmFtZSk6Ci0gICAgICAgIHhwYXRoID0gIi8vZGl2W2RpdltkaXZbc3BhbltzcGFuW2NvbnRh aW5zKHRleHQoKSwnJXMnKV1dXV1dLyIgXAotICAgICAgICAgICAgICAgICJmb2xsb3dpbmctc2li bGluZzo6dWwvbGkvZGl2L2Rpdi9kaXYvZGl2L3NwYW5bMl0vc3BhblsyICIgXAotICAgICAgICAg ICAgICAgICJhbmQgdGV4dCgpPSdEYXRhYmFzZXMgJ10iICUgc2VydmVyX25hbWUKLSAgICAgICAg cmV0dXJuIHhwYXRoCisgICAgZGVmIHNjaGVtYV9ub2RlX2V4cF9zdGF0dXMoc2NoZW1hX25hbWUp OgorICAgICAgICByZXR1cm4gIi8vaVtAY2xhc3M9J2RpcmVjdG9yeS10b2dnbGUgb3BlbiddLyIg XAorICAgICAgICAgICAgICAgImZvbGxvd2luZy1zaWJsaW5nOjpzcGFuLy9zcGFuW3RleHQoKT0n JXMnXSIgJSBzY2hlbWFfbmFtZQogCisgICAgIyBUYWJsZXMgTm9kZQogICAgIEBzdGF0aWNtZXRo b2QKLSAgICBkZWYgc3ViX25vZGVzX29mX2RhdGFiYXNlc19ub2RlKHNlcnZlcl9uYW1lKToKLSAg ICAgICAgeHBhdGggPSAiLy9kaXZbZGl2W2RpdltzcGFuW3NwYW5bY29udGFpbnModGV4dCgpLCcl cycpXV1dXV0vIiBcCi0gICAgICAgICAgICAgICAgImZvbGxvd2luZy1zaWJsaW5nOjp1bC9saVsx XS9kaXYvZm9sbG93aW5nLXNpYmxpbmc6OnVsL2xpLyIgXAotICAgICAgICAgICAgICAgICJkaXYv ZGl2L2Rpdi9kaXYvZGl2L3NwYW5bMl0vc3BhbltAY2xhc3M9J2FjaVRyZWVUZXh0J10iICUgXAot ICAgICAgICAgICAgICAgIHNlcnZlcl9uYW1lCi0gICAgICAgIHJldHVybiB4cGF0aAorICAgIGRl ZiB0YWJsZXNfbm9kZShzY2hlbWFfbmFtZSk6CisgICAgICAgIHJldHVybiAiLy9kaXZbZGl2W3Nw YW5bc3BhbltzdGFydHMtd2l0aCh0ZXh0KCksJyVzJyldXV1dLyIgXAorICAgICAgICAgICAgICAg ImZvbGxvd2luZy1zaWJsaW5nOjpkaXYvL3NwYW5bdGV4dCgpPSdUYWJsZXMnXSIgJSBzY2hlbWFf bmFtZQogCiAgICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBzdWJfbm9kZXNfb2ZfZGF0YWJhc2Vz X25vZGVfZXhwX3N0YXR1cyhzZXJ2ZXJfbmFtZSk6Ci0gICAgICAgIHhwYXRoID0gIi8vZGl2W2Rp dltkaXZbc3BhbltzcGFuW2NvbnRhaW5zKHRleHQoKSwgJyVzJyldXV1dXS8iIFwKLSAgICAgICAg ICAgICAgICAiZm9sbG93aW5nLXNpYmxpbmc6OnVsL2xpWzFdL2Rpdi9mb2xsb3dpbmctc2libGlu Zzo6dWwvbGkvIiBcCi0gICAgICAgICAgICAgICAgImRpdiIgJSBzZXJ2ZXJfbmFtZQotICAgICAg ICByZXR1cm4geHBhdGgKKyAgICBkZWYgdGFibGVzX25vZGVfZXhwX3N0YXR1cyhzY2hlbWFfbmFt ZSk6CisgICAgICAgIHJldHVybiAiLy9kaXZbZGl2W3NwYW5bc3BhbltzdGFydHMtd2l0aCh0ZXh0 KCksJyVzJyldXV1dLyIgXAorICAgICAgICAgICAgICAgImZvbGxvd2luZy1zaWJsaW5nOjpkaXYv L3NwYW5bc3Bhblt0ZXh0KCk9J1RhYmxlcyddXS8iIFwKKyAgICAgICAgICAgICAgICJwcmVjZWRp bmctc2libGluZzo6aVtAY2xhc3M9J2RpcmVjdG9yeS10b2dnbGUgb3BlbiddIlwKKyAgICAgICAg ICAgICAgICUgc2NoZW1hX25hbWUKIAorICAgICMgU2NoZW1hIGNoaWxkCiAgICAgQHN0YXRpY21l dGhvZAotICAgIGRlZiBzdWJfbm9kZXNfb2ZfZGF0YWJhc2Vfbm9kZShkYXRhYmFzZV9uYW1lKToK LSAgICAgICAgeHBhdGggPSAiLy9kaXZbZGl2W2RpdltkaXZbZGl2W3NwYW5bc3Bhbltjb250YWlu cyh0ZXh0KCksIiBcCi0gICAgICAgICAgICAgICAgIiclcycpXV1dXV1dXS9mb2xsb3dpbmctc2li bGluZzo6dWwvbGkvZGl2L2Rpdi9kaXYvZGl2L2Rpdi8iIFwKLSAgICAgICAgICAgICAgICAiZGl2 L3NwYW5bMl0vc3BhblsyXSIgJSBkYXRhYmFzZV9uYW1lCi0gICAgICAgIHJldHVybiB4cGF0aAor ICAgIGRlZiBzY2hlbWFfY2hpbGRfbm9kZV9leHBfc3RhdHVzKHNjaGVtYV9uYW1lLCBjaGlsZF9u b2RlX25hbWUpOgorICAgICAgICByZXR1cm4gIi8vZGl2W2RpdltzcGFuW3NwYW5bc3RhcnRzLXdp dGgodGV4dCgpLCclcycpXV1dXS8iIFwKKyAgICAgICAgICAgICAgICJmb2xsb3dpbmctc2libGlu Zzo6ZGl2Ly9zcGFuW3NwYW5bdGV4dCgpPSclcyddXS8iIFwKKyAgICAgICAgICAgICAgICJwcmVj ZWRpbmctc2libGluZzo6aVtAY2xhc3M9J2RpcmVjdG9yeS10b2dnbGUgb3BlbiddIiBcCisgICAg ICAgICAgICAgICAlIChzY2hlbWFfbmFtZSwgY2hpbGRfbm9kZV9uYW1lKQogCiAgICAgQHN0YXRp Y21ldGhvZAotICAgIGRlZiBzdWJfbm9kZXNfb2ZfZGF0YWJhc2Vfbm9kZV9leHBfc3RhdHVzKGRh dGFiYXNlX25hbWUpOgotICAgICAgICB4cGF0aCA9ICIvL2RpdltkaXZbZGl2W2RpdltkaXZbc3Bh bltzcGFuW2NvbnRhaW5zKHRleHQoKSwgIiBcCi0gICAgICAgICAgICAgICAgIiclcycpXV1dXV1d XS9mb2xsb3dpbmctc2libGluZzo6dWwvbGkvZGl2IiAlIGRhdGFiYXNlX25hbWUKLSAgICAgICAg cmV0dXJuIHhwYXRoCisgICAgZGVmIHNjaGVtYV9jaGlsZF9ub2RlKHNjaGVtYV9uYW1lLCBjaGls ZF9ub2RlX25hbWUpOgorICAgICAgICByZXR1cm4gIi8vZGl2W2RpdltzcGFuW3NwYW5bc3RhcnRz LXdpdGgodGV4dCgpLCclcycpXV1dXS8iIFwKKyAgICAgICAgICAgICAgICJmb2xsb3dpbmctc2li bGluZzo6ZGl2Ly9zcGFuW3RleHQoKT0nJXMnXSIgXAorICAgICAgICAgICAgICAgJSAoc2NoZW1h X25hbWUsIGNoaWxkX25vZGVfbmFtZSkKIAorICAgICMgRGF0YWJhc2UgY2hpbGQKICAgICBAc3Rh dGljbWV0aG9kCi0gICAgZGVmIHN1Yl9ub2Rlc19vZl9zY2hlbWFzX25vZGUoZGF0YWJhc2VfbmFt ZSk6Ci0gICAgICAgIHhwYXRoID0gIi8vZGl2W2RpdltkaXZbZGl2W2RpdltzcGFuW3NwYW5bdGV4 dCgpPSclcyddXV1dXV1dLyIgXAotICAgICAgICAgICAgICAgICJmb2xsb3dpbmctc2libGluZzo6 dWwvbGlbIiBcCi0gICAgICAgICAgICAgICAgIkByb2xlPSdwcmVzZW50YXRpb24nXS91bC9saS9k aXYvL2Rpdi9zcGFuL3NwYW5bIiBcCi0gICAgICAgICAgICAgICAgIkBjbGFzcz0nYWNpVHJlZVRl eHQnXSIgJSBkYXRhYmFzZV9uYW1lCi0gICAgICAgIHJldHVybiB4cGF0aAorICAgIGRlZiBkYXRh YmFzZV9jaGlsZF9ub2RlX2V4cF9zdGF0dXMoZGF0YWJhc2VfbmFtZSwgY2hpbGRfbm9kZV9uYW1l KToKKyAgICAgICAgcmV0dXJuICIvL2RpdltkaXZbc3BhbltzcGFuW3N0YXJ0cy13aXRoKHRleHQo KSwnJXMnKV1dXV0vIiBcCisgICAgICAgICAgICAgICAiZm9sbG93aW5nLXNpYmxpbmc6OmRpdi8v c3BhbltzcGFuW3RleHQoKT0nJXMnXV0vIiBcCisgICAgICAgICAgICAgICAicHJlY2VkaW5nLXNp Ymxpbmc6OmlbQGNsYXNzPSdkaXJlY3RvcnktdG9nZ2xlIG9wZW4nXSJcCisgICAgICAgICAgICAg ICAlIChkYXRhYmFzZV9uYW1lLCBjaGlsZF9ub2RlX25hbWUpCiAKICAgICBAc3RhdGljbWV0aG9k Ci0gICAgZGVmIHN1Yl9ub2Rlc19vZl9zY2hlbWFzX25vZGVfZXhwX3N0YXR1cyhkYXRhYmFzZV9u YW1lKToKLSAgICAgICAgeHBhdGggPSAiLy9kaXZbZGl2W2RpdltkaXZbZGl2W3NwYW5bc3Bhblt0 ZXh0KCk9JyVzJ11dXV1dXV0vIiBcCi0gICAgICAgICAgICAgICAgImZvbGxvd2luZy1zaWJsaW5n Ojp1bC9saVtAcm9sZT0ncHJlc2VudGF0aW9uJ10vdWwvbGkvZGl2IiBcCi0gICAgICAgICAgICAg ICAgJSBkYXRhYmFzZV9uYW1lCi0gICAgICAgIHJldHVybiB4cGF0aAorICAgIGRlZiBkYXRhYmFz ZV9jaGlsZF9ub2RlKGRhdGFiYXNlX25hbWUsIGNoaWxkX25vZGVfbmFtZSk6CisgICAgICAgIHJl dHVybiAiLy9kaXZbZGl2W3NwYW5bc3BhbltzdGFydHMtd2l0aCh0ZXh0KCksJyVzJyldXV1dLyIg XAorICAgICAgICAgICAgICAgImZvbGxvd2luZy1zaWJsaW5nOjpkaXYvL3NwYW5bdGV4dCgpPScl cyddIiBcCisgICAgICAgICAgICAgICAlIChkYXRhYmFzZV9uYW1lLCBjaGlsZF9ub2RlX25hbWUp CiAKKyAgICAjIFNlcnZlciBjaGlsZAogICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgc3ViX25v ZGVzX29mX3NjaGVtYV9ub2RlKGRhdGFiYXNlX25hbWUpOgotICAgICAgICB4cGF0aCA9ICIvL2Rp dltkaXZbZGl2W2RpdltkaXZbc3BhbltzcGFuW3RleHQoKT0nJXMnXV1dXV1dXS8iIFwKLSAgICAg ICAgICAgICAgICAiZm9sbG93aW5nLXNpYmxpbmc6OnVsL2xpWyIgXAotICAgICAgICAgICAgICAg ICJAcm9sZT0ncHJlc2VudGF0aW9uJ10vdWwvbGkvdWwvbGkvZGl2Ly9kaXYvc3BhblsyXS9zcGFu WzJdIiBcCi0gICAgICAgICAgICAgICAgJSBkYXRhYmFzZV9uYW1lCi0gICAgICAgIHJldHVybiB4 cGF0aAorICAgIGRlZiBzZXJ2ZXJfY2hpbGRfbm9kZV9leHBfc3RhdHVzKHNlcnZlcl9uYW1lLCBj aGlsZF9ub2RlX25hbWUpOgorICAgICAgICByZXR1cm4gIi8vZGl2W2RpdltzcGFuW3NwYW5bc3Rh cnRzLXdpdGgodGV4dCgpLCclcycpXV1dXS8iIFwKKyAgICAgICAgICAgICAgICJmb2xsb3dpbmct c2libGluZzo6ZGl2Ly9zcGFuW3NwYW5bdGV4dCgpPSclcyddXS8iIFwKKyAgICAgICAgICAgICAg ICJwcmVjZWRpbmctc2libGluZzo6aVtAY2xhc3M9J2RpcmVjdG9yeS10b2dnbGUgb3BlbiddIlwK KyAgICAgICAgICAgICAgICUgKHNlcnZlcl9uYW1lLCBjaGlsZF9ub2RlX25hbWUpCiAKICAgICBA c3RhdGljbWV0aG9kCi0gICAgZGVmIHN1Yl9ub2Rlc19vZl9zY2hlbWFfbm9kZV9leHBfc3RhdHVz KGRhdGFiYXNlX25hbWUpOgotICAgICAgICB4cGF0aCA9ICIvL2RpdltkaXZbZGl2W2RpdltkaXZb c3BhbltzcGFuW3RleHQoKT0nJXMnXV1dXV1dXS8iIFwKLSAgICAgICAgICAgICAgICAiZm9sbG93 aW5nLXNpYmxpbmc6OnVsL2xpW0Byb2xlPSdwcmVzZW50YXRpb24nXSIgXAotICAgICAgICAgICAg ICAgICIvdWwvbGkvdWwvbGkvZGl2IiAlIGRhdGFiYXNlX25hbWUKLSAgICAgICAgcmV0dXJuIHhw YXRoCisgICAgZGVmIHNlcnZlcl9jaGlsZF9ub2RlKHNlcnZlcl9uYW1lLCBjaGlsZF9ub2RlX25h bWUpOgorICAgICAgICByZXR1cm4gIi8vZGl2W2RpdltzcGFuW3NwYW5bc3RhcnRzLXdpdGgodGV4 dCgpLCclcycpXV1dXS8iIFwKKyAgICAgICAgICAgICAgICJmb2xsb3dpbmctc2libGluZzo6ZGl2 Ly9zcGFuW3RleHQoKT0nJXMnXSIgXAorICAgICAgICAgICAgICAgJSAoc2VydmVyX25hbWUsIGNo aWxkX25vZGVfbmFtZSkKKworICAgICMgVGFibGUgTm9kZQorICAgIEBzdGF0aWNtZXRob2QKKyAg ICBkZWYgdGFibGVfbm9kZSh0YWJsZV9uYW1lKToKKyAgICAgICAgcmV0dXJuICIvL2RpdltAZGF0 YS1kZXB0aD0nOCddL3NwYW4vc3Bhblt0ZXh0KCk9JyVzJ10iICUgdGFibGVfbmFtZQorCisgICAg IyBGdW5jdGlvbiBOb2RlCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBmdW5jdGlvbl9ub2Rl KHRhYmxlX25hbWUpOgorICAgICAgICByZXR1cm4gIi8vZGl2W0BkYXRhLWRlcHRoPSc4J10vc3Bh bi9zcGFuW3RleHQoKT0nJXMnXSIgJSB0YWJsZV9uYW1lCisKKyAgICAjIFJvbGUgTm9kZQorICAg IEBzdGF0aWNtZXRob2QKKyAgICBkZWYgcm9sZV9ub2RlKHJvbGVfbmFtZSk6CisgICAgICAgIHJl dHVybiAiLy9kaXZbQGRhdGEtZGVwdGg9JzQnXS9zcGFuL3NwYW5bdGV4dCgpPSclcyddIiAlIHJv bGVfbmFtZQorCisgICAgIyBDb250ZXh0IGVsZW1lbnQgb3B0aW9uCisgICAgQHN0YXRpY21ldGhv ZAorICAgIGRlZiBjb250ZXh0X21lbnVfZWxlbWVudChzY2hlbWFfbmFtZSk6CisgICAgICAgIHJl dHVybiAiLy9saS9zcGFuW3RleHQoKT0nJXMnXSIgJSBzY2hlbWFfbmFtZQorCisgICAgIyBPbGQg eHBhdGhzCisgICAgIyBzZXJ2ZXJfZ3JvdXBfc3ViX25vZGVzX2V4cF9zdGF0dXMgPSBcCisgICAg IyAgICAgIi8vZGl2W2RpdltzcGFuW3NwYW5bY29udGFpbnModGV4dCgpLCdTZXJ2ZXJzJyldXV1d IiBcCisgICAgIyAgICAgIi9mb2xsb3dpbmctc2libGluZzo6dWwvbGkvZGl2IgorICAgICMKKyAg ICAjIHNlcnZlcl9ncm91cF9zdWJfbm9kZXNfY29ubmVjdGVkX3N0YXR1cyA9IFwKKyAgICAjICAg ICAiLy9kaXZbZGl2W3NwYW5bc3Bhbltjb250YWlucyh0ZXh0KCksICdTZXJ2ZXJzJyldXV1dLyIg XAorICAgICMgICAgICJmb2xsb3dpbmctc2libGluZzo6dWwvbGkvZGl2L2Rpdi9kaXYvc3Bhblsy XSIKKyAgICAjCisgICAgIyBzcGVjaWZpZWRfdHJlZV9ub2RlID0gXAorICAgICMgICAgICIvL2Rp dltAaWQ9J3RyZWUnXS8vc3BhbltAY2xhc3M9J2FjaVRyZWVJdGVtJ10vIiBcCisgICAgIyAgICAg InNwYW5bKEBjbGFzcz0nYWNpVHJlZVRleHQnKSBhbmQgdGV4dCgpPSd7fSddIgorICAgICMKKyAg ICAjIHNwZWNpZmllZF90cmVlX25vZGVfZXhwX3N0YXR1cyA9IFwKKyAgICAjICAgICAiLy9kaXZb QGlkPSd0cmVlJ10vL3NwYW5bQGNsYXNzPSdhY2lUcmVlSXRlbSddLyIgXAorICAgICMgICAgICJz cGFuWyhAY2xhc3M9J2FjaVRyZWVUZXh0JykgYW5kIHRleHQoKT0ne30nXSIgXAorICAgICMgICAg ICIvL2FuY2VzdG9yOjoqW0BjbGFzcz0nYWNpVHJlZUxpbmUnXSIKKyAgICAjCisgICAgIyBzdWJf bm9kZXNfb2ZfdGFibGVzX25vZGUgPSBcCisgICAgIyAgICAgIi8vZGl2W2RpdltkaXZbZGl2W2Rp dltkaXZbZGl2W2RpdltzcGFuW3NwYW5bIiBcCisgICAgIyAgICAgImNvbnRhaW5zKHRleHQoKSwn VGFibGVzJyldXV1dXV1dXV1dLyIgXAorICAgICMgICAgICJmb2xsb3dpbmctc2libGluZzo6dWwv bGkvZGl2Ly9kaXYvc3BhblsyXS9zcGFuWzJdIgorICAgICMKKyAgICAjIHN1Yl9ub2Rlc19vZl9m dW5jdGlvbnNfbm9kZSA9IFwKKyAgICAjICAgICAiLy9kaXZbZGl2W2RpdltkaXZbZGl2W2Rpdltk aXZbZGl2W3NwYW5bc3BhblsiIFwKKyAgICAjICAgICAiY29udGFpbnModGV4dCgpLCdGdW5jdGlv bnMnKV1dXV1dXV1dXV0vIiBcCisgICAgIyAgICAgImZvbGxvd2luZy1zaWJsaW5nOjp1bC9saS9k aXYvL2Rpdi9zcGFuWzJdL3NwYW5bMl0iCisgICAgIworICAgICMgc3ViX25vZGVzX29mX2xvZ2lu X2dyb3VwX25vZGUgPSBcCisgICAgIyAgICAgIi8vZGl2W2RpdltkaXZbc3BhbltzcGFuW2NvbnRh aW5zKHRleHQoKSwnTG9naW4vR3JvdXAgUm9sZXMnKV1dXV1dIiBcCisgICAgIyAgICAgIi9mb2xs b3dpbmc6OnVsL2xpL2RpdltAY2xhc3M9J2FjaVRyZWVMaW5lJ10iCisgICAgIworICAgICMgQHN0 YXRpY21ldGhvZAorICAgICMgZGVmIHN1Yl9ub2Rlc19vZl9hX3NlcnZlcl9ub2RlKHNlcnZlcl9u YW1lKToKKyAgICAjICAgICB4cGF0aCA9ICIvL2RpdltkaXZbZGl2W3NwYW5bc3Bhbltjb250YWlu cyh0ZXh0KCksJyVzJyldXV1dXS8iIFwKKyAgICAjICAgICAgICAgICAgICJmb2xsb3dpbmctc2li bGluZzo6dWwvbGkvZGl2W0BjbGFzcz0nYWNpVHJlZUxpbmUnXSIgJSBcCisgICAgIyAgICAgICAg ICAgICBzZXJ2ZXJfbmFtZQorICAgICMgICAgIHJldHVybiB4cGF0aAorICAgICMKKyAgICAjIEBz dGF0aWNtZXRob2QKKyAgICAjIGRlZiBzdWJfbm9kZXNfb2ZfYV9zZXJ2ZXJfbm9kZV9leHBfc3Rh dHVzKHNlcnZlcl9uYW1lKToKKyAgICAjICAgICB4cGF0aCA9ICIvL2RpdltkaXZbZGl2W3NwYW5b c3Bhbltjb250YWlucyh0ZXh0KCksJyVzJyldXV1dXS8iIFwKKyAgICAjICAgICAgICAgICAgICJm b2xsb3dpbmctc2libGluZzo6dWwvbGkvZGl2IiAlIHNlcnZlcl9uYW1lCisgICAgIyAgICAgcmV0 dXJuIHhwYXRoCisgICAgIworICAgICMgQHN0YXRpY21ldGhvZAorICAgICMgZGVmIGRhdGFiYXNl c19ub2RlX29mX2Ffc2VydmVyX25vZGUoc2VydmVyX25hbWUpOgorICAgICMgICAgIHhwYXRoID0g Ii8vZGl2W2RpdltkaXZbc3BhbltzcGFuW2NvbnRhaW5zKHRleHQoKSwnJXMnKV1dXV1dLyIgXAor ICAgICMgICAgICAgICAgICAgImZvbGxvd2luZy1zaWJsaW5nOjp1bC9saS9kaXYvZGl2L2Rpdi9k aXYvc3BhblsyXS9zcGFuWzIgIiBcCisgICAgIyAgICAgICAgICAgICAiYW5kIHRleHQoKT0nRGF0 YWJhc2VzICddIiAlIHNlcnZlcl9uYW1lCisgICAgIyAgICAgcmV0dXJuIHhwYXRoCisgICAgIwor ICAgICMgQHN0YXRpY21ldGhvZAorICAgICMgZGVmIHN1Yl9ub2Rlc19vZl9kYXRhYmFzZXNfbm9k ZShzZXJ2ZXJfbmFtZSk6CisgICAgIyAgICAgeHBhdGggPSAiLy9kaXZbZGl2W2RpdltzcGFuW3Nw YW5bY29udGFpbnModGV4dCgpLCclcycpXV1dXV0vIiBcCisgICAgIyAgICAgICAgICAgICAiZm9s bG93aW5nLXNpYmxpbmc6OnVsL2xpWzFdL2Rpdi9mb2xsb3dpbmctc2libGluZzo6dWwvbGkvIiBc CisgICAgIyAgICAgICAgICAgICAiZGl2L2Rpdi9kaXYvZGl2L2Rpdi9zcGFuWzJdL3NwYW5bQGNs YXNzPSdhY2lUcmVlVGV4dCddIiAlIFwKKyAgICAjICAgICAgICAgICAgIHNlcnZlcl9uYW1lCisg ICAgIyAgICAgcmV0dXJuIHhwYXRoCisgICAgIworICAgICMgQHN0YXRpY21ldGhvZAorICAgICMg ZGVmIHN1Yl9ub2Rlc19vZl9kYXRhYmFzZXNfbm9kZV9leHBfc3RhdHVzKHNlcnZlcl9uYW1lKToK KyAgICAjICAgICB4cGF0aCA9ICIvL2RpdltkaXZbZGl2W3NwYW5bc3Bhbltjb250YWlucyh0ZXh0 KCksICclcycpXV1dXV0vIiBcCisgICAgIyAgICAgICAgICAgICAiZm9sbG93aW5nLXNpYmxpbmc6 OnVsL2xpWzFdL2Rpdi9mb2xsb3dpbmctc2libGluZzo6dWwvbGkvIiBcCisgICAgIyAgICAgICAg ICAgICAiZGl2IiAlIHNlcnZlcl9uYW1lCisgICAgIyAgICAgcmV0dXJuIHhwYXRoCisgICAgIwor ICAgICMgQHN0YXRpY21ldGhvZAorICAgICMgZGVmIHN1Yl9ub2Rlc19vZl9kYXRhYmFzZV9ub2Rl KGRhdGFiYXNlX25hbWUpOgorICAgICMgICAgIHhwYXRoID0gIi8vZGl2W2RpdltkaXZbZGl2W2Rp dltzcGFuW3NwYW5bY29udGFpbnModGV4dCgpLCIgXAorICAgICMgICAgICAgICAgICAgIiclcycp XV1dXV1dXS9mb2xsb3dpbmctc2libGluZzo6IiBcCisgICAgIyAgICAgICAgICAgICAidWwvbGkv ZGl2L2Rpdi9kaXYvZGl2L2Rpdi9kaXYvc3BhblsyXS9zcGFuWzJdIlwKKyAgICAjICAgICAgICAg ICAgICUgZGF0YWJhc2VfbmFtZQorICAgICMgICAgIHJldHVybiB4cGF0aAorICAgICMKKyAgICAj IEBzdGF0aWNtZXRob2QKKyAgICAjIGRlZiBzdWJfbm9kZXNfb2ZfZGF0YWJhc2Vfbm9kZV9leHBf c3RhdHVzKGRhdGFiYXNlX25hbWUpOgorICAgICMgICAgIHhwYXRoID0gIi8vZGl2W2RpdltkaXZb ZGl2W2RpdltzcGFuW3NwYW5bY29udGFpbnModGV4dCgpLCAiIFwKKyAgICAjICAgICAgICAgICAg ICInJXMnKV1dXV1dXV0vZm9sbG93aW5nLXNpYmxpbmc6OnVsL2xpL2RpdiIgJSBkYXRhYmFzZV9u YW1lCisgICAgIyAgICAgcmV0dXJuIHhwYXRoCisgICAgIworICAgICMgQHN0YXRpY21ldGhvZAor ICAgICMgZGVmIHN1Yl9ub2Rlc19vZl9zY2hlbWFzX25vZGUoZGF0YWJhc2VfbmFtZSk6CisgICAg IyAgICAgeHBhdGggPSAiLy9kaXZbZGl2W2RpdltkaXZbZGl2W3NwYW5bc3Bhblt0ZXh0KCk9JyVz J11dXV1dXV0vIiBcCisgICAgIyAgICAgICAgICAgICAiZm9sbG93aW5nLXNpYmxpbmc6OnVsL2xp WyIgXAorICAgICMgICAgICAgICAgICAgIkByb2xlPSdwcmVzZW50YXRpb24nXS91bC9saS9kaXYv L2Rpdi9zcGFuL3NwYW5bIiBcCisgICAgIyAgICAgICAgICAgICAiQGNsYXNzPSdhY2lUcmVlVGV4 dCddIiAlIGRhdGFiYXNlX25hbWUKKyAgICAjICAgICByZXR1cm4geHBhdGgKKyAgICAjCisgICAg IyBAc3RhdGljbWV0aG9kCisgICAgIyBkZWYgc3ViX25vZGVzX29mX3NjaGVtYXNfbm9kZV9leHBf c3RhdHVzKGRhdGFiYXNlX25hbWUpOgorICAgICMgICAgIHhwYXRoID0gIi8vZGl2W2RpdltkaXZb ZGl2W2RpdltzcGFuW3NwYW5bdGV4dCgpPSclcyddXV1dXV1dLyIgXAorICAgICMgICAgICAgICAg ICAgImZvbGxvd2luZy1zaWJsaW5nOjp1bC9saVtAcm9sZT0ncHJlc2VudGF0aW9uJ10vdWwvbGkv ZGl2IiBcCisgICAgIyAgICAgICAgICAgICAlIGRhdGFiYXNlX25hbWUKKyAgICAjICAgICByZXR1 cm4geHBhdGgKKyAgICAjCisgICAgIyBAc3RhdGljbWV0aG9kCisgICAgIyBkZWYgc3ViX25vZGVz X29mX3NjaGVtYV9ub2RlKGRhdGFiYXNlX25hbWUpOgorICAgICMgICAgIHhwYXRoID0gIi8vZGl2 W2RpdltkaXZbZGl2W2RpdltzcGFuW3NwYW5bdGV4dCgpPSclcyddXV1dXV1dLyIgXAorICAgICMg ICAgICAgICAgICAgImZvbGxvd2luZy1zaWJsaW5nOjp1bC9saVtAcm9sZT0ncHJlc2VudGF0aW9u J10iIFwKKyAgICAjICAgICAgICAgICAgICIvdWwvbGkvdWwvbGkvZGl2Ly9kaXYvc3BhblsyXS9z cGFuWzJdIiAlIGRhdGFiYXNlX25hbWUKKyAgICAjICAgICByZXR1cm4geHBhdGgKKyAgICAjCisg ICAgIyBAc3RhdGljbWV0aG9kCisgICAgIyBkZWYgc3ViX25vZGVzX29mX3NjaGVtYV9ub2RlX2V4 cF9zdGF0dXMoZGF0YWJhc2VfbmFtZSk6CisgICAgIyAgICAgeHBhdGggPSAiLy9kaXZbZGl2W2Rp dltkaXZbZGl2W3NwYW5bc3Bhblt0ZXh0KCk9JyVzJ11dXV1dXV0vIiBcCisgICAgIyAgICAgICAg ICAgICAiZm9sbG93aW5nLXNpYmxpbmc6OnVsL2xpW0Byb2xlPSdwcmVzZW50YXRpb24nXSIgXAor ICAgICMgICAgICAgICAgICAgIi91bC9saS91bC9saS9kaXYiICUgZGF0YWJhc2VfbmFtZQorICAg ICMgICAgIHJldHVybiB4cGF0aApkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vcHl0aG9uX3Rl c3RfdXRpbHMvdGVzdF91dGlscy5weSBiL3dlYi9yZWdyZXNzaW9uL3B5dGhvbl90ZXN0X3V0aWxz L3Rlc3RfdXRpbHMucHkKaW5kZXggODU5NjMyOTZmLi4xMDM5N2UxMjIgMTAwNjQ0Ci0tLSBhL3dl Yi9yZWdyZXNzaW9uL3B5dGhvbl90ZXN0X3V0aWxzL3Rlc3RfdXRpbHMucHkKKysrIGIvd2ViL3Jl Z3Jlc3Npb24vcHl0aG9uX3Rlc3RfdXRpbHMvdGVzdF91dGlscy5weQpAQCAtNDIyLDYgKzQyMiwz MiBAQCBkZWYgZG9lc19mdW5jdGlvbl9leGlzdChzZXJ2ZXIsIGRiX25hbWUsIGZ1bl9uYW1lKToK ICAgICByZXR1cm4gc3RyKHJlc3VsdFswXVswXSkKIAogCitkZWYgZ3JhbnRfcm9sZShzZXJ2ZXIs IGRiX25hbWUsIHJvbGVfbmFtZT0idGVzdF9yb2xlIiwKKyAgICAgICAgICAgICAgIGdyYW50X3Jv bGU9IjxoMT50ZXN0PC9oMT4iKToKKyAgICB0cnk6CisgICAgICAgIGNvbm5lY3Rpb24gPSBnZXRf ZGJfY29ubmVjdGlvbigKKyAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICBzZXJ2ZXJb J3VzZXJuYW1lJ10sCisgICAgICAgICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAg ICAgICBzZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAgIHNlcnZlclsncG9ydCddLAorICAgICAg ICAgICAgc2VydmVyWydzc2xtb2RlJ10KKyAgICAgICAgKQorICAgICAgICBvbGRfaXNvbGF0aW9u X2xldmVsID0gY29ubmVjdGlvbi5pc29sYXRpb25fbGV2ZWwKKyAgICAgICAgY29ubmVjdGlvbi5z ZXRfaXNvbGF0aW9uX2xldmVsKDApCisgICAgICAgIHBnX2N1cnNvciA9IGNvbm5lY3Rpb24uY3Vy c29yKCkKKyAgICAgICAgc3FsX3F1ZXJ5ID0gJycnR1JBTlQgIiVzIiBUTyAlczsnJycgJSAoZ3Jh bnRfcm9sZSwgcm9sZV9uYW1lKQorCisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKAorICAgICAg ICAgICAgc3FsX3F1ZXJ5CisgICAgICAgICkKKyAgICAgICAgY29ubmVjdGlvbi5zZXRfaXNvbGF0 aW9uX2xldmVsKG9sZF9pc29sYXRpb25fbGV2ZWwpCisgICAgICAgIGNvbm5lY3Rpb24uY29tbWl0 KCkKKworICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMo ZmlsZT1zeXMuc3RkZXJyKQorCisKIGRlZiBjcmVhdGVfcm9sZShzZXJ2ZXIsIGRiX25hbWUsIHJv bGVfbmFtZT0idGVzdF9yb2xlIik6CiAgICAgdHJ5OgogICAgICAgICBjb25uZWN0aW9uID0gZ2V0 X2RiX2Nvbm5lY3Rpb24oCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9yZXF1aXJlbWVudHMu dHh0IGIvd2ViL3JlZ3Jlc3Npb24vcmVxdWlyZW1lbnRzLnR4dAppbmRleCA0YTE0ODAyYzEuLjBh NWJhMGYzNiAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vcmVxdWlyZW1lbnRzLnR4dAorKysg Yi93ZWIvcmVncmVzc2lvbi9yZXF1aXJlbWVudHMudHh0CkBAIC0yNSw1ICsyNSw1IEBAIHB5dGhv bi1taW1lcGFyc2U9PTEuNi4wCiB0ZXN0c2NlbmFyaW9zPT0wLjUuMAogdGVzdHRvb2xzPT0yLjMu MAogdHJhY2ViYWNrMj09MS40LjAKLXNlbGVuaXVtPT0zLjE0LjAKK3NlbGVuaXVtPT00LjAuMAog Y292ZXJhZ2U9PTUuMC4xCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9ydW50ZXN0cy5weSBi L3dlYi9yZWdyZXNzaW9uL3J1bnRlc3RzLnB5CmluZGV4IDc1MDNmN2M2My4uN2JjMmNhNGQ1IDEw MDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9ydW50ZXN0cy5weQorKysgYi93ZWIvcmVncmVzc2lv bi9ydW50ZXN0cy5weQpAQCAtMjk1LDkgKzI5NSw5IEBAIGRlZiBzZXR1cF93ZWJkcml2ZXJfc3Bl Y2lmaWNhdGlvbihhcmd1bWVudHMpOgogICAgICAgICAgICAgb3B0aW9ucy5hZGRfYXJndW1lbnQo Ii0taGVhZGxlc3MiKQogICAgICAgICBvcHRpb25zLmFkZF9hcmd1bWVudCgiLS1uby1zYW5kYm94 IikKICAgICAgICAgb3B0aW9ucy5hZGRfYXJndW1lbnQoIi0tZGlzYWJsZS1zZXR1aWQtc2FuZGJv eCIpCi0gICAgICAgIG9wdGlvbnMuYWRkX2FyZ3VtZW50KCItLXdpbmRvdy1zaXplPTEyODAsMTAy NCIpCisgICAgICAgIG9wdGlvbnMuYWRkX2FyZ3VtZW50KCItLXdpbmRvdy1zaXplPTE3OTAsMTA4 MCIpCiAgICAgICAgIG9wdGlvbnMuYWRkX2FyZ3VtZW50KCItLWRpc2FibGUtaW5mb2JhcnMiKQot ICAgICAgICBvcHRpb25zLmFkZF9leHBlcmltZW50YWxfb3B0aW9uKCd3M2MnLCBGYWxzZSkKKyAg ICAgICAgIyBvcHRpb25zLmFkZF9leHBlcmltZW50YWxfb3B0aW9uKCd3M2MnLCBGYWxzZSkKICAg ICAgICAgZHJpdmVyX2xvY2FsID0gd2ViZHJpdmVyLkNocm9tZShjaHJvbWVfb3B0aW9ucz1vcHRp b25zKQogCiAgICAgIyBtYXhpbWl6ZSBicm93c2VyIHdpbmRvdwo= --000000000000ebe6ad05d0579554--