Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1behkq-0004Yo-RW for pgadmin-hackers@arkaria.postgresql.org; Tue, 30 Aug 2016 12:03:01 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1behkp-0004fH-Jv for pgadmin-hackers@arkaria.postgresql.org; Tue, 30 Aug 2016 12:02:59 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1behkl-0004f8-Ot for pgadmin-hackers@postgresql.org; Tue, 30 Aug 2016 12:02:56 +0000 Received: from mail-qk0-x22a.google.com ([2607:f8b0:400d:c09::22a]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1behki-0002Wc-52 for pgadmin-hackers@postgresql.org; Tue, 30 Aug 2016 12:02:54 +0000 Received: by mail-qk0-x22a.google.com with SMTP id v123so15499762qkh.2 for ; Tue, 30 Aug 2016 05:02:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to:cc; bh=OBBXqRtjf2dFzJu+591Rx5pmxTn1yOv8U3WpnN+J+to=; b=EIJdhzvDFaib/mj6TbVnNggiAZLEmvRmUq08vEh0HnX81PIK8CcG9CDToSsP55zIvY 38eckgu/g7c3ke++REXydKQnkqml8KMlQIDGmFLCM0N3B7c+XwJmgNS4OIbh5VogoKhS CJWAc3qkFV8qxefN+nc6N714AqSl1LHM4VKHdgMv2PmE7KFu/Ui3pSag1Q7VclXRvozQ 6QtU8QedNopWIIiZGeUTSbxqQzikRY/whqTKf8FtwmOKmsgCReDgKjHdzNqiZzka04aX 9ZSf3FS8KeHYl0Df1qv7cxflTOj6xEMv6aheK6lSGtyOICWDBRWa0Y21oOWdjQhwwSD/ VE1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=OBBXqRtjf2dFzJu+591Rx5pmxTn1yOv8U3WpnN+J+to=; b=RjOsKHsbZIIJjIP9sYzyhMoKw9SUvQORti3n90OBdqgVhjvCqvH89ao5obcUkclF2Z W1ddc97WCVLYgWteFIyEag21qlh4w18V8OhosODVKkeCQqYCmvCOkWWNMU+Tw/sMJ/2p IUdeUSoXN6Dy9Dx9GhbbY9l3/D74hOrriwqIrMYQ061ZE7XiidqbOZ01cejTyGpuZHKY 1D9zFrvWmDMLrz3gSjMc4+scC3lyn4xk6bQbT1c9pcT45QpUL/7lvVeGvDO7EurKzAbf aQHG7blpbMoHaJmsKm9HMG7maXU+gmELI+EtFO59gFmpAIH1m60rPDRVSkzqOOe9Wn/C UitQ== X-Gm-Message-State: AE9vXwMh7xFivmA+e9SSNeu6pqDyYx1u2p67Nne/Wkmc2Jyk+f9/P7DUXJtXcgatPHsm6jbnyWsRfBSc4+TjDbFw X-Received: by 10.233.222.133 with SMTP id s127mr3736401qkf.166.1472558571311; Tue, 30 Aug 2016 05:02:51 -0700 (PDT) MIME-Version: 1.0 Received: by 10.200.41.90 with HTTP; Tue, 30 Aug 2016 05:02:50 -0700 (PDT) From: Navnath Gadakh Date: Tue, 30 Aug 2016 17:32:50 +0530 Message-ID: Subject: pgAdmin IV : Unittest modular patch (Domains and Tables nodes) To: Dave Page Cc: pgadmin-hackers , Kanchan Mohitey Content-Type: multipart/mixed; boundary=94eb2c0438f88e0af7053b48c204 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --94eb2c0438f88e0af7053b48c204 Content-Type: multipart/alternative; boundary=94eb2c0438f88e0af3053b48c202 --94eb2c0438f88e0af3053b48c202 Content-Type: text/plain; charset=UTF-8 Hi Dave, Please find the patch API unit test cases for Domain & Tables Nodes. This patch also includes code to drop the all objects(like database, roles, tablespace & server) created during the test suite run. *To run the test suite for domain node:* python regression/runtests.py --pkg browser.server_groups.servers.databases.schemas.domains *To run the test suite for tables node:* python regression/runtests.py --pkg browser.server_groups.servers.databases.schemas.tables *To run the test suite for all nodes *(Comment the all test code in 'synonyms' node i.e. Code under 'tests' directory as its partially completed): python regression/runtests.py -- Thanks, Navnath Gadakh Software Engineer EnterpriseDB Corporation Mobile: +91 9975389878 --94eb2c0438f88e0af3053b48c202 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave,
=C2=A0 =C2=A0 =C2=A0 =C2=A0Please find the pa= tch API=C2=A0unit test cases for Domain & Tables Nodes.

<= /div>
This patch also includes code to drop the all objects(like databa= se, roles, tablespace=C2=A0& server) created during the test suite run.=

To run the test suite=C2=A0for domain node:
=C2=A0python regression/run= tests.py --pkg browser.server_groups.servers.databases.schemas.domains

To run the test suite=C2=A0for tables node:<= br>
=C2=A0=C2=A0python=C2=A0regression/runtests.py=C2=A0--pkg=C2=A0brow= ser.server_groups.servers.databases.schemas.tables

To run the test suite for all nodes=C2=A0= (Comment the=C2=A0all test code in 'synonyms' node i.e. Code under = 'tests' directory as its partially completed):
=C2=A0=C2=A0python=C2=A0reg= ression/runtests.py


--
<= div class=3D"gmail_signature" data-smartmail=3D"gmail_signature">
=
Thanks,
Navnath= =C2=A0Gadakh
Software Engineer
EnterpriseDB Corporation
<= /font>
Mobile: +91 9975389878=C2=A0

<= /font>

=
--94eb2c0438f88e0af3053b48c202-- --94eb2c0438f88e0af7053b48c204 Content-Type: application/octet-stream; name="domain_tables_apis.patch" Content-Disposition: attachment; filename="domain_tables_apis.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ishf4f7h0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlbnNpb25zL3Rlc3RzL3Rlc3RfZXh0 ZW5zaW9uX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlbnNpb25zL3Rlc3RzL3Rlc3Rf ZXh0ZW5zaW9uX3B1dC5weQppbmRleCA3YTExZWQ1Li41ZDYxNWQwIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9ucy90ZXN0cy90ZXN0X2V4dGVuc2lv bl9wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVuc2lvbnMvdGVzdHMvdGVzdF9l eHRlbnNpb25fcHV0LnB5CkBAIC02Myw3ICs2Myw2IEBAIGNsYXNzIEV4dGVu c2lvbnNQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAg IHNlcnZlcl9pZHMgPSBhbGxfaWRbInNpZCJdCiAgICAgICAgIGRiX2lkc19k aWN0ID0gYWxsX2lkWyJkaWQiXVswXQogICAgICAgICBleHRlbnNpb25faWRz X2RpY3QgPSBhbGxfaWRbImVpZCJdWzBdCi0gICAgICAgIHNjaGVtYV9pbmZv X2RpY3QgPSBhbGxfaWRbInNjaWQiXVswXQogCiAgICAgICAgIGZvciBzZXJ2 ZXJfaWQgaW4gc2VydmVyX2lkczoKICAgICAgICAgICAgIGRiX2lkID0gZGJf aWRzX2RpY3RbaW50KHNlcnZlcl9pZCldCkBAIC03NSwyMiArNzQsMjAgQEAg Y2xhc3MgRXh0ZW5zaW9uc1B1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGV4dGVuc2lvbl9pZCkKIAogICAgICAgICAgICAg aWYgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgPT0gMjAwOgotICAgICAgICAgICAg ICAgIHNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9fZGljdFtpbnQoc2VydmVy X2lkKV1bMV0KLQotICAgICAgICAgICAgICAgIGRhdGEgPSBcCi0gICAgICAg ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBkYXRhID0gewogICAg ICAgICAgICAgICAgICAgICAgICAgImlkIjogZXh0ZW5zaW9uX2lkLAotICAg ICAgICAgICAgICAgICAgICAgICAgInNjaGVtYSI6IHNjaGVtYV9uYW1lCisg ICAgICAgICAgICAgICAgICAgICAgICAic2NoZW1hIjogInB1YmxpYyIKICAg ICAgICAgICAgICAgICAgICAgfQotCiAgICAgICAgICAgICAgICAgcHV0X3Jl c3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KAogICAgICAgICAgICAgICAgICAg ICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsK ICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBz dHIoZGJfaWQpICsKICAgICAgICAgICAgICAgICAgICAgJy8nICsgc3RyKGV4 dGVuc2lvbl9pZCksCiAgICAgICAgICAgICAgICAgICAgIGRhdGE9anNvbi5k dW1wcyhkYXRhKSwKICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGly ZWN0cz1UcnVlKQotCiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh bHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiRXJy b3IgaW4gdmVyaWZ5aW5nIGV4dGVuc2lvbiB3aXRoIGlkOiAlcyIgJQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25faWQpCiAK ICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgdGVhckRvd25DbGFzcyhjbHMp OgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZXN0cy9f X2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVzdHMvX19p bml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NTZjYzdmMgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Rv bWFpbnMvdGVzdHMvX19pbml0X18ucHkKQEAgLTAsMCArMSw4IEBACisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIw MTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0 d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNl CisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZXN0cy90ZXN0X2RvbWFpbl9h ZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3Rlc3RzL3Rlc3RfZG9t YWluX2FkZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li4wNjFjNjQ1Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZG9tYWlucy90ZXN0cy90ZXN0X2RvbWFpbl9hZGQucHkKQEAgLTAsMCArMSw2 OSBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAt IDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNl bmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHJlZ3Jl c3Npb24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gcGdhZG1p bi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy50ZXN0cyBp bXBvcnQgdXRpbHMgYXMgc2VydmVyX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGlt cG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu c2NoZW1hcy50ZXN0cyBpbXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91 dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBkb21haW5fdXRpbHMKKwor CitjbGFzcyBEb21haW5BZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6 CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3IGRvbWFpbiB1bmRl ciBzY2hlbWEgbm9kZS4gIiIiCisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAg ICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGRvbWFpbiBub2RlLgor ICAgICAgICAoJ0ZldGNoIGRvbWFpbiBOb2RlIFVSTCcsIGRpY3QodXJsPScv YnJvd3Nlci9kb21haW4vb2JqLycpKQorICAgIF0KKworICAgIEBjbGFzc21l dGhvZAorICAgIGRlZiBzZXRVcENsYXNzKGNscyk6CisgICAgICAgICIiIgor ICAgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm0gdGhlIHRocmVlIHRhc2tz CisgICAgICAgICAxLiBBZGQgdGhlIHRlc3Qgc2VydmVyCisgICAgICAgICAy LiBDb25uZWN0IHRvIHNlcnZlcgorICAgICAgICAgMy4gQWRkIHRoZSBkYXRh YmFzZXMKKyAgICAgICAgIDQuIEFkZCB0aGUgc2NoZW1hcworCisgICAgICAg IDpyZXR1cm46IE5vbmUKKyAgICAgICAgIiIiCisKKyAgICAgICAgIyBGaXJz dGx5LCBhZGQgdGhlIHNlcnZlcgorICAgICAgICBzZXJ2ZXJfdXRpbHMuYWRk X3NlcnZlcihjbHMudGVzdGVyKQorICAgICAgICAjIENvbm5lY3QgdG8gc2Vy dmVyCisgICAgICAgIGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSwgY2xz LnNlcnZlcl9ncm91cCwgY2xzLnNlcnZlcl9pZHMgPSBcCisgICAgICAgICAg ICBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoY2xzLnRlc3RlcikKKyAg ICAgICAgaWYgbGVuKGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSkgPT0g MDoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gU2VydmVyKHMp IGNvbm5lY3RlZCB0byBhZGQgdGhlIGRhdGFiYXNlISEhIikKKyAgICAgICAg IyBBZGQgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuYWRkX2Rh dGFiYXNlKGNscy50ZXN0ZXIsIGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25z ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5z ZXJ2ZXJfaWRzKQorICAgICAgICAjIEFkZCBzY2hlbWFzCisgICAgICAgIHNj aGVtYV91dGlscy5hZGRfc2NoZW1hcyhjbHMudGVzdGVyKQorCisgICAgZGVm IHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdp bGwgYWRkIGRvbWFpbiB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCisKKyAgICAg ICAgZG9tYWluX3V0aWxzLmFkZF9kb21haW4oc2VsZi50ZXN0ZXIsIHNlbGYu c2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UpCisKKyAgICBAY2xhc3NtZXRob2QK KyAgICBkZWYgdGVhckRvd25DbGFzcyhjbHMpOgorICAgICAgICAiIiIKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSBhZGRlZCBkYXRhYmFz ZSwgc2VydmVyIGFuZCB0aGUKKyAgICAgICAgJ3BhcmVudF9pZC5wa2wnIGZp bGUgd2hpY2ggaXMgY3JlYXRlZCBpbiBzZXR1cCgpIGZ1bmN0aW9uLgorCisg ICAgICAgIDpyZXR1cm46IE5vbmUKKyAgICAgICAgIiIiCisKKyAgICAgICAg ZGF0YWJhc2VfdXRpbHMuZGVsZXRlX2RhdGFiYXNlKGNscy50ZXN0ZXIpCisg ICAgICAgIHNlcnZlcl91dGlscy5kZWxldGVfc2VydmVyKGNscy50ZXN0ZXIp CisgICAgICAgIHV0aWxzLmRlbGV0ZV9wYXJlbnRfaWRfZmlsZSgpCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3Rlc3RzL3Rlc3RfZG9t YWluX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVzdHMv dGVzdF9kb21haW5fZGVsZXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmRhMDE1MDAKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9kb21haW5zL3Rlc3RzL3Rlc3RfZG9tYWluX2RlbGV0ZS5w eQpAQCAtMCwwICsxLDEzMCBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHly aWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50 IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUg UG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworCitpbXBvcnQganNvbgorCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRl c3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBp bXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMg c2VydmVyX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBc CisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBp bXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSAuIGlt cG9ydCB1dGlscyBhcyBkb21haW5fdXRpbHMKKworCitjbGFzcyBEb21haW5E ZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiIFRo aXMgY2xhc3Mgd2lsbCBkZWxldGUgbmV3IGRvbWFpbiB1bmRlciBzY2hlbWEg bm9kZS4gIiIiCisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0 Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGRvbWFpbiBub2RlLgorICAgICAgICAo J0ZldGNoIGRvbWFpbiBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9k b21haW4vZGVsZXRlLycpKQorICAgIF0KKworICAgIEBjbGFzc21ldGhvZAor ICAgIGRlZiBzZXRVcENsYXNzKGNscyk6CisgICAgICAgICIiIgorICAgICAg ICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm0gdGhlIHRocmVlIHRhc2tzCisgICAg ICAgICAxLiBBZGQgdGhlIHRlc3Qgc2VydmVyCisgICAgICAgICAyLiBDb25u ZWN0IHRvIHNlcnZlcgorICAgICAgICAgMy4gQWRkIHRoZSBkYXRhYmFzZXMK KyAgICAgICAgIDQuIEFkZCB0aGUgc2NoZW1hcworICAgICAgICAgNS4gQWRk IHRoZSBkb21haW4KKworICAgICAgICA6cmV0dXJuOiBOb25lCisgICAgICAg ICIiIgorCisgICAgICAgICMgRmlyc3RseSwgYWRkIHRoZSBzZXJ2ZXIKKyAg ICAgICAgc2VydmVyX3V0aWxzLmFkZF9zZXJ2ZXIoY2xzLnRlc3RlcikKKyAg ICAgICAgIyBDb25uZWN0IHRvIHNlcnZlcgorICAgICAgICBjbHMuc2VydmVy X2Nvbm5lY3RfcmVzcG9uc2UsIGNscy5zZXJ2ZXJfZ3JvdXAsIGNscy5zZXJ2 ZXJfaWRzID0gXAorICAgICAgICAgICAgc2VydmVyX3V0aWxzLmNvbm5lY3Rf c2VydmVyKGNscy50ZXN0ZXIpCisgICAgICAgIGlmIGxlbihjbHMuc2VydmVy X2Nvbm5lY3RfcmVzcG9uc2UpID09IDA6CisgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIk5vIFNlcnZlcihzKSBjb25uZWN0ZWQgdG8gYWRkIHRoZSBk YXRhYmFzZSEhISIpCisgICAgICAgICMgQWRkIGRhdGFiYXNlCisgICAgICAg IGRhdGFiYXNlX3V0aWxzLmFkZF9kYXRhYmFzZShjbHMudGVzdGVyLCBjbHMu c2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjbHMuc2VydmVyX2lkcykKKyAgICAgICAgIyBB ZGQgc2NoZW1hcworICAgICAgICBzY2hlbWFfdXRpbHMuYWRkX3NjaGVtYXMo Y2xzLnRlc3RlcikKKyAgICAgICAgIyBBZGQgdGhlIGRvbWFpbgorICAgICAg ICBkb21haW5fdXRpbHMuYWRkX2RvbWFpbihjbHMudGVzdGVyLCBjbHMuc2Vy dmVyX2Nvbm5lY3RfcmVzcG9uc2UpCisKKyAgICBkZWYgcnVuVGVzdChzZWxm KToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgZG9t YWluIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKworICAgICAgICBhbGxfaWQg PSB1dGlscy5nZXRfaWRzKCkKKyAgICAgICAgc2VydmVyX2lkc19kaWN0ID0g YWxsX2lkWyJzaWQiXQorICAgICAgICBkYl9pZHNfZGljdCA9IGFsbF9pZFsi ZGlkIl1bMF0KKyAgICAgICAgc2NoZW1hX2lkc19kaWN0ID0gYWxsX2lkWyJz Y2lkIl1bMF0KKyAgICAgICAgZG9tYWluX2lkc19kaWN0ID0gYWxsX2lkWyJk b2lkIl1bMF0KKworICAgICAgICBmb3Igc2VydmVyX2lkIGluIHNlcnZlcl9p ZHNfZGljdDoKKyAgICAgICAgICAgICMgVmVyaWZ5IHNlcnZlcgorICAgICAg ICAgICAgc2VydmVyX3Jlc3BvbnNlID0gc2VydmVyX3V0aWxzLnZlcmlmeV9z ZXJ2ZXIoCisgICAgICAgICAgICAgICAgc2VsZi50ZXN0ZXIsIHN0cih1dGls cy5TRVJWRVJfR1JPVVApLCBzZXJ2ZXJfaWQpCisgICAgICAgICAgICBpZiBz ZXJ2ZXJfcmVzcG9uc2VbJ2RhdGEnXVsiY29ubmVjdGVkIl06CisgICAgICAg ICAgICAgICAgZGJfaWQgPSBkYl9pZHNfZGljdFtpbnQoc2VydmVyX2lkKV0K KyAgICAgICAgICAgICAgICAjIFZlcmlmeSBkYXRhYmFzZQorICAgICAgICAg ICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLnZlcmlmeV9kYXRhYmFz ZShzZWxmLnRlc3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQ LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lkKQorICAgICAgICAgICAg ICAgIGlmIGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAgICAg ICAgICAgICAgICAgc2NoZW1hX2lkID0gc2NoZW1hX2lkc19kaWN0W2ludChz ZXJ2ZXJfaWQpXVswXQorICAgICAgICAgICAgICAgICAgICAjIFZlcmlmeSBz Y2hlbWEKKyAgICAgICAgICAgICAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0g c2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYudGVzdGVyLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfaWQp CisgICAgICAgICAgICAgICAgICAgIGlmIHNjaGVtYV9yZXNwb25zZS5zdGF0 dXNfY29kZSA9PSAyMDA6CisgICAgICAgICAgICAgICAgICAgICAgICBkb21h aW5faWQgPSBkb21haW5faWRzX2RpY3RbaW50KHNlcnZlcl9pZCldCisgICAg ICAgICAgICAgICAgICAgICAgICAjIENhbGwgR0VUIEFQSSB0byB2ZXJpZnkg dGhlIGRvbWFpbgorICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Ug PSBkb21haW5fdXRpbHMudmVyaWZ5X2RvbWFpbihzZWxmLnRlc3RlciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2NoZW1hX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW5faWQp CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJlc3BvbnNlLnN0YXR1 c19jb2RlID09IDIwMDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBk ZWxldGVfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxz LlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHIoc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cihkYl9pZCkgKyAnLycgKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2NoZW1hX2lkKSAr ICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihk b21haW5faWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm b2xsb3dfcmVkaXJlY3RzPVRydWUpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGVsX3Jlc3BfZGF0YSA9IGpzb24ubG9hZHMoCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZV9yZXNwb25zZS5kYXRhLmRl Y29kZSgndXRmLTgnKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmFzc2VydFRydWUoZGVsX3Jlc3BfZGF0YVsnc3VjY2VzcyddLCAxKQor ICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJFcnJvciBpbiB2ZXJpZnlpbmcgZG9tYWlu IHdpdGggaWQ6ICVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRvbWFpbl9pZCkKKworICAgICAgICAgICAgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJFcnJv ciBpbiB2ZXJpZnlpbmcgc2NoZW1hIHdpdGggaWQ6ICVzIgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgc3RyKHNjaGVtYV9p ZCkpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJFcnJvciBpbiB2ZXJpZnlpbmcgZGF0YWJh c2Ugd2l0aCBpZDogJXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAlIGRiX2lkKQorCisgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiRXJyb3IgaW4gY29ubmVjdGlu ZyBzZXJ2ZXIgd2l0aCBpZDogJXMiCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICUgc2VydmVyX2lkKQorCisgICAgQGNsYXNzbWV0aG9kCisg ICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKKyAgICAgICAgIiIiCisgICAg ICAgIFRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgYWRkZWQgZGF0YWJhc2Us IHNlcnZlciBhbmQgdGhlCisgICAgICAgICdwYXJlbnRfaWQucGtsJyBmaWxl IHdoaWNoIGlzIGNyZWF0ZWQgaW4gc2V0dXAoKSBmdW5jdGlvbi4KKworICAg ICAgICA6cmV0dXJuOiBOb25lCisgICAgICAgICIiIgorCisgICAgICAgIGRh dGFiYXNlX3V0aWxzLmRlbGV0ZV9kYXRhYmFzZShjbHMudGVzdGVyKQorICAg ICAgICBzZXJ2ZXJfdXRpbHMuZGVsZXRlX3NlcnZlcihjbHMudGVzdGVyKQor ICAgICAgICB1dGlscy5kZWxldGVfcGFyZW50X2lkX2ZpbGUoKQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZXN0cy90ZXN0X2RvbWFp bl9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3Rlc3RzL3Rlc3Rf ZG9tYWluX2dldC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi4zNmI1YWUwCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZG9tYWlucy90ZXN0cy90ZXN0X2RvbWFpbl9nZXQucHkKQEAgLTAsMCAr MSwxMTMgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1p biA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIw MTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRo aXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwg TGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSBy ZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIHBn YWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMudGVz dHMgaW1wb3J0IHV0aWxzIGFzIHNlcnZlcl91dGlscworZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0 cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh c2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBzY2hl bWFfdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZG9tYWluX3V0aWxz CisKKworY2xhc3MgRG9tYWluR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0 b3IpOgorICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggbmV3IGNvbGxh dGlvbiB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCisKKyAgICBzY2VuYXJpb3Mg PSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGRvbWFp biBub2RlLgorICAgICAgICAoJ0ZldGNoIGRvbWFpbiBOb2RlIFVSTCcsIGRp Y3QodXJsPScvYnJvd3Nlci9kb21haW4vb2JqLycpKQorICAgIF0KKworICAg IEBjbGFzc21ldGhvZAorICAgIGRlZiBzZXRVcENsYXNzKGNscyk6CisgICAg ICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm0gdGhlIHRo cmVlIHRhc2tzCisgICAgICAgICAxLiBBZGQgdGhlIHRlc3Qgc2VydmVyCisg ICAgICAgICAyLiBDb25uZWN0IHRvIHNlcnZlcgorICAgICAgICAgMy4gQWRk IHRoZSBkYXRhYmFzZXMKKyAgICAgICAgIDQuIEFkZCB0aGUgc2NoZW1hcwor ICAgICAgICAgNS4gQWRkIHRoZSBkb21haW4KKworICAgICAgICA6cmV0dXJu OiBOb25lCisgICAgICAgICIiIgorCisgICAgICAgICMgRmlyc3RseSwgYWRk IHRoZSBzZXJ2ZXIKKyAgICAgICAgc2VydmVyX3V0aWxzLmFkZF9zZXJ2ZXIo Y2xzLnRlc3RlcikKKyAgICAgICAgIyBDb25uZWN0IHRvIHNlcnZlcgorICAg ICAgICBjbHMuc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UsIGNscy5zZXJ2ZXJf Z3JvdXAsIGNscy5zZXJ2ZXJfaWRzID0gXAorICAgICAgICAgICAgc2VydmVy X3V0aWxzLmNvbm5lY3Rfc2VydmVyKGNscy50ZXN0ZXIpCisgICAgICAgIGlm IGxlbihjbHMuc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UpID09IDA6CisgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIFNlcnZlcihzKSBjb25uZWN0 ZWQgdG8gYWRkIHRoZSBkYXRhYmFzZSEhISIpCisgICAgICAgICMgQWRkIGRh dGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmFkZF9kYXRhYmFzZShj bHMudGVzdGVyLCBjbHMuc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHMuc2VydmVyX2lk cykKKyAgICAgICAgIyBBZGQgc2NoZW1hcworICAgICAgICBzY2hlbWFfdXRp bHMuYWRkX3NjaGVtYXMoY2xzLnRlc3RlcikKKyAgICAgICAgIyBBZGQgdGhl IGRvbWFpbgorICAgICAgICBkb21haW5fdXRpbHMuYWRkX2RvbWFpbihjbHMu dGVzdGVyLCBjbHMuc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UpCisKKyAgICBk ZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24g d2lsbCBhZGQgZG9tYWluIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKworICAg ICAgICBhbGxfaWQgPSB1dGlscy5nZXRfaWRzKCkKKyAgICAgICAgc2VydmVy X2lkc19kaWN0ID0gYWxsX2lkWyJzaWQiXQorICAgICAgICBkYl9pZHNfZGlj dCA9IGFsbF9pZFsiZGlkIl1bMF0KKyAgICAgICAgc2NoZW1hX2lkc19kaWN0 ID0gYWxsX2lkWyJzY2lkIl1bMF0KKyAgICAgICAgZG9tYWluX2lkc19kaWN0 ID0gYWxsX2lkWyJkb2lkIl1bMF0KKworICAgICAgICBmb3Igc2VydmVyX2lk IGluIHNlcnZlcl9pZHNfZGljdDoKKyAgICAgICAgICAgICMgVmVyaWZ5IHNl cnZlcgorICAgICAgICAgICAgc2VydmVyX3Jlc3BvbnNlID0gc2VydmVyX3V0 aWxzLnZlcmlmeV9zZXJ2ZXIoCisgICAgICAgICAgICAgICAgc2VsZi50ZXN0 ZXIsIHN0cih1dGlscy5TRVJWRVJfR1JPVVApLCBzZXJ2ZXJfaWQpCisgICAg ICAgICAgICBpZiBzZXJ2ZXJfcmVzcG9uc2VbJ2RhdGEnXVsiY29ubmVjdGVk Il06CisgICAgICAgICAgICAgICAgZGJfaWQgPSBkYl9pZHNfZGljdFtpbnQo c2VydmVyX2lkKV0KKyAgICAgICAgICAgICAgICAjIFZlcmlmeSBkYXRhYmFz ZQorICAgICAgICAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLnZl cmlmeV9kYXRhYmFzZShzZWxmLnRlc3RlciwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMu U0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lkKQor ICAgICAgICAgICAgICAgIGlmIGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQi XToKKyAgICAgICAgICAgICAgICAgICAgc2NoZW1hX2lkID0gc2NoZW1hX2lk c19kaWN0W2ludChzZXJ2ZXJfaWQpXVswXQorICAgICAgICAgICAgICAgICAg ICAjIFZlcmlmeSBzY2hlbWEKKyAgICAgICAgICAgICAgICAgICAgc2NoZW1h X3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYu dGVzdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGJfaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzY2hlbWFfaWQpCisgICAgICAgICAgICAgICAgICAgIGlmIHNjaGVtYV9y ZXNwb25zZS5zdGF0dXNfY29kZSA9PSAyMDA6CisgICAgICAgICAgICAgICAg ICAgICAgICBkb21haW5faWQgPSBkb21haW5faWRzX2RpY3RbaW50KHNlcnZl cl9pZCldCisgICAgICAgICAgICAgICAgICAgICAgICAjIENhbGwgR0VUIEFQ SSB0byB2ZXJpZnkgdGhlIGRvbWFpbgorICAgICAgICAgICAgICAgICAgICAg ICAgcmVzcG9uc2UgPSBkb21haW5fdXRpbHMudmVyaWZ5X2RvbWFpbihzZWxm LnRlc3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2NoZW1hX2lkLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkb21haW5faWQpCisKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAg ICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkVycm9yIGluIHZlcmlmeWluZyBzY2hlbWEg d2l0aCBpZDogJXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJSBzdHIoc2NoZW1hX2lkKSkKKyAgICAgICAgICAgICAgICBl bHNlOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkVy cm9yIGluIHZlcmlmeWluZyBkYXRhYmFzZSB3aXRoIGlkOiAlcyIKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgZGJfaWQpCisKKyAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0 aW9uKCJFcnJvciBpbiBjb25uZWN0aW5nIHNlcnZlciB3aXRoIGlkOiAlcyIK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBzZXJ2ZXJfaWQp CisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgdGVhckRvd25DbGFzcyhj bHMpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBkZWxl dGVzIHRoZSBhZGRlZCBkYXRhYmFzZSwgc2VydmVyIGFuZCB0aGUKKyAgICAg ICAgJ3BhcmVudF9pZC5wa2wnIGZpbGUgd2hpY2ggaXMgY3JlYXRlZCBpbiBz ZXR1cCgpIGZ1bmN0aW9uLgorCisgICAgICAgIDpyZXR1cm46IE5vbmUKKyAg ICAgICAgIiIiCisKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGVsZXRlX2Rh dGFiYXNlKGNscy50ZXN0ZXIpCisgICAgICAgIHNlcnZlcl91dGlscy5kZWxl dGVfc2VydmVyKGNscy50ZXN0ZXIpCisgICAgICAgIHV0aWxzLmRlbGV0ZV9w YXJlbnRfaWRfZmlsZSgpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9k b21haW5zL3Rlc3RzL3Rlc3RfZG9tYWluX3B1dC5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2RvbWFpbnMvdGVzdHMvdGVzdF9kb21haW5fcHV0LnB5Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhMWNjYzkKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3Rlc3RzL3Rlc3Rf ZG9tYWluX3B1dC5weQpAQCAtMCwwICsxLDEzNiBAQAorIyAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xz CisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWlu IERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNl ZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworCitpbXBvcnQganNvbgorCitmcm9tIHJlZ3Jlc3Np b24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVn cmVzc2lvbi50ZXN0X3NldHVwIGltcG9ydCBhZHZhbmNlZF9jb25maWdfZGF0 YQorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LnRlc3RzIGltcG9ydCB1dGlscyBhcyBzZXJ2ZXJfdXRpbHMKK2Zyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu dGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscwor ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMg c2NoZW1hX3V0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGRvbWFpbl91 dGlscworCisKK2NsYXNzIERvbWFpblB1dFRlc3RDYXNlKEJhc2VUZXN0R2Vu ZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGZldGNoIG5ldyBj b2xsYXRpb24gdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorCisgICAgc2NlbmFy aW9zID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBk b21haW4gbm9kZS4KKyAgICAgICAgKCdGZXRjaCBkb21haW4gTm9kZSBVUkwn LCBkaWN0KHVybD0nL2Jyb3dzZXIvZG9tYWluL29iai8nKSkKKyAgICBdCisK KyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgor ICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtIHRo ZSB0aHJlZSB0YXNrcworICAgICAgICAgMS4gQWRkIHRoZSB0ZXN0IHNlcnZl cgorICAgICAgICAgMi4gQ29ubmVjdCB0byBzZXJ2ZXIKKyAgICAgICAgIDMu IEFkZCB0aGUgZGF0YWJhc2VzCisgICAgICAgICA0LiBBZGQgdGhlIHNjaGVt YXMKKyAgICAgICAgIDUuIEFkZCB0aGUgZG9tYWluCisKKyAgICAgICAgOnJl dHVybjogTm9uZQorICAgICAgICAiIiIKKworICAgICAgICAjIEZpcnN0bHks IGFkZCB0aGUgc2VydmVyCisgICAgICAgIHNlcnZlcl91dGlscy5hZGRfc2Vy dmVyKGNscy50ZXN0ZXIpCisgICAgICAgICMgQ29ubmVjdCB0byBzZXJ2ZXIK KyAgICAgICAgY2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLCBjbHMuc2Vy dmVyX2dyb3VwLCBjbHMuc2VydmVyX2lkcyA9IFwKKyAgICAgICAgICAgIHNl cnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihjbHMudGVzdGVyKQorICAgICAg ICBpZiBsZW4oY2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlKSA9PSAwOgor ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyBTZXJ2ZXIocykgY29u bmVjdGVkIHRvIGFkZCB0aGUgZGF0YWJhc2UhISEiKQorICAgICAgICAjIEFk ZCBkYXRhYmFzZQorICAgICAgICBkYXRhYmFzZV91dGlscy5hZGRfZGF0YWJh c2UoY2xzLnRlc3RlciwgY2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNlcnZl cl9pZHMpCisgICAgICAgICMgQWRkIHNjaGVtYXMKKyAgICAgICAgc2NoZW1h X3V0aWxzLmFkZF9zY2hlbWFzKGNscy50ZXN0ZXIpCisgICAgICAgICMgQWRk IHRoZSBkb21haW4KKyAgICAgICAgZG9tYWluX3V0aWxzLmFkZF9kb21haW4o Y2xzLnRlc3RlciwgY2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlKQorCisg ICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0 aW9uIHdpbGwgdXBkYXRlIGRvbWFpbiB1bmRlciBzY2hlbWEgbm9kZS4gIiIi CisKKyAgICAgICAgYWxsX2lkID0gdXRpbHMuZ2V0X2lkcygpCisgICAgICAg IHNlcnZlcl9pZHNfZGljdCA9IGFsbF9pZFsic2lkIl0KKyAgICAgICAgZGJf aWRzX2RpY3QgPSBhbGxfaWRbImRpZCJdWzBdCisgICAgICAgIHNjaGVtYV9p ZHNfZGljdCA9IGFsbF9pZFsic2NpZCJdWzBdCisgICAgICAgIGRvbWFpbl9p ZHNfZGljdCA9IGFsbF9pZFsiZG9pZCJdWzBdCisKKyAgICAgICAgZm9yIHNl cnZlcl9pZCBpbiBzZXJ2ZXJfaWRzX2RpY3Q6CisgICAgICAgICAgICAjIFZl cmlmeSBzZXJ2ZXIKKyAgICAgICAgICAgIHNlcnZlcl9yZXNwb25zZSA9IHNl cnZlcl91dGlscy52ZXJpZnlfc2VydmVyKAorICAgICAgICAgICAgICAgIHNl bGYudGVzdGVyLCBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSwgc2VydmVyX2lk KQorICAgICAgICAgICAgaWYgc2VydmVyX3Jlc3BvbnNlWydkYXRhJ11bImNv bm5lY3RlZCJdOgorICAgICAgICAgICAgICAgIGRiX2lkID0gZGJfaWRzX2Rp Y3RbaW50KHNlcnZlcl9pZCldCisgICAgICAgICAgICAgICAgIyBWZXJpZnkg ZGF0YWJhc2UKKyAgICAgICAgICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91 dGlscy52ZXJpZnlfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLCBk Yl9pZCkKKyAgICAgICAgICAgICAgICBpZiBkYl9jb25bJ2RhdGEnXVsiY29u bmVjdGVkIl06CisgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9pZCA9IHNj aGVtYV9pZHNfZGljdFtpbnQoc2VydmVyX2lkKV1bMF0KKyAgICAgICAgICAg ICAgICAgICAgIyBWZXJpZnkgc2NoZW1hCisgICAgICAgICAgICAgICAgICAg IHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1h cyhzZWxmLnRlc3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9p ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRiX2lkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2NoZW1hX2lkKQorICAgICAgICAgICAgICAgICAgICBpZiBz Y2hlbWFfcmVzcG9uc2Uuc3RhdHVzX2NvZGUgPT0gMjAwOgorICAgICAgICAg ICAgICAgICAgICAgICAgZG9tYWluX2lkID0gZG9tYWluX2lkc19kaWN0W2lu dChzZXJ2ZXJfaWQpXQorICAgICAgICAgICAgICAgICAgICAgICAgIyBDYWxs IEdFVCBBUEkgdG8gdmVyaWZ5IHRoZSBkb21haW4KKyAgICAgICAgICAgICAg ICAgICAgICAgIHJlc3BvbnNlID0gZG9tYWluX3V0aWxzLnZlcmlmeV9kb21h aW4oc2VsZi50ZXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwg ZGJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9pZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZG9tYWluX2lkKQorCisgICAgICAgICAgICAgICAgICAgICAg ICBpZiByZXNwb25zZS5zdGF0dXNfY29kZSA9PSAyMDA6CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGF0YSA9IHsiZGVzY3JpcHRpb24iOiBhZHZh bmNlZF9jb25maWdfZGF0YVsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ2RvbWFpbl91cGRhdGVfZGF0YSddWydjb21tZW50J10sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaWQiOiBkb21haW5f aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRfcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5wdXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycg KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VydmVy X2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cihkYl9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHIoc2NoZW1hX2lkKSArICcvJyArCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cihkb21haW5faWQpLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRp cmVjdHM9VHJ1ZSkKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuYXNzZXJ0RXF1YWxzKHB1dF9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAw KQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJFcnJvciBpbiB2ZXJpZnlpbmcgZG9t YWluIHdpdGggaWQ6ICVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRvbWFpbl9pZCkKKworICAgICAgICAgICAgICAgICAgICBlbHNl OgorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJF cnJvciBpbiB2ZXJpZnlpbmcgc2NoZW1hIHdpdGggaWQ6ICVzIgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgc3RyKHNjaGVt YV9pZCkpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJFcnJvciBpbiB2ZXJpZnlpbmcgZGF0 YWJhc2Ugd2l0aCBpZDogJXMiCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAlIGRiX2lkKQorCisgICAgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiRXJyb3IgaW4gY29ubmVj dGluZyBzZXJ2ZXIgd2l0aCBpZDogJXMiCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICUgc2VydmVyX2lkKQorCisgICAgQGNsYXNzbWV0aG9k CisgICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKKyAgICAgICAgIiIiCisg ICAgICAgIFRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgYWRkZWQgZGF0YWJh c2UsIHNlcnZlciBhbmQgdGhlCisgICAgICAgICdwYXJlbnRfaWQucGtsJyBm aWxlIHdoaWNoIGlzIGNyZWF0ZWQgaW4gc2V0dXAoKSBmdW5jdGlvbi4KKwor ICAgICAgICA6cmV0dXJuOiBOb25lCisgICAgICAgICIiIgorCisgICAgICAg IGRhdGFiYXNlX3V0aWxzLmRlbGV0ZV9kYXRhYmFzZShjbHMudGVzdGVyKQor ICAgICAgICBzZXJ2ZXJfdXRpbHMuZGVsZXRlX3NlcnZlcihjbHMudGVzdGVy KQorICAgICAgICB1dGlscy5kZWxldGVfcGFyZW50X2lkX2ZpbGUoKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZXN0cy91dGlscy5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVzdHMvdXRpbHMucHkKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWJhYjQ2NAotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVzdHMv dXRpbHMucHkKQEAgLTAsMCArMSwxNzMgQEAKKyMgIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMKKyMgI3BnQWRtaW4gNCAtIFBvc3RncmVTUUwg VG9vbHMKKyMKKyMgI0NvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBw Z0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgI1RoaXMgc29mdHdhcmUgaXMg cmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQganNvbgor aW1wb3J0IG9zCitpbXBvcnQgcGlja2xlCitpbXBvcnQgdXVpZAorCitmcm9t IHJlZ3Jlc3Npb24udGVzdF9zZXR1cCBpbXBvcnQgcGlja2xlX3BhdGgsIGFk dmFuY2VkX2NvbmZpZ19kYXRhCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCBcCisg ICAgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50 ZXN0cyBpbXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscworZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLnRlc3Rz IGltcG9ydCB1dGlscyBhcyBzZXJ2ZXJfdXRpbHMKK2Zyb20gcmVncmVzc2lv biBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworCitET01BSU5fVVJMID0g Jy9icm93c2VyL2RvbWFpbi9vYmovJworCisKK2RlZiBnZXRfZG9tYWluX2Nv bmZpZ19kYXRhKHNlcnZlcl9jb25uZWN0X2RhdGEsIHNjaGVtYV9uYW1lKToK KyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGNvbmZp ZyBkYXRhIGZvciBkb21haW4gbm9kZQorICAgIDpwYXJhbSBzZXJ2ZXJfY29u bmVjdF9kYXRhOiBzZXJ2ZXIgY29ubmVjdCByZXNwb25zZQorICAgIDp0eXBl IHNlcnZlcl9jb25uZWN0X2RhdGE6IGRpY3QKKyAgICA6cGFyYW0gc2NoZW1h X25hbWU6IHNjaGVtYSBuYW1lIHVuZGVyIHdoaWNoIGRvbWFpbiB3aWxsIGNy ZWF0ZQorICAgIDp0eXBlIHNjaGVtYV9uYW1lOiBzdHIKKyAgICA6cmV0dXJu IGRhdGE6IGNvbmZpZyBkYXRhCisgICAgOnJ0eXBlOiBkaWN0CisgICAgIiIi CisgICAgYWR2X2NvbmZpZ19kYXRhID0gTm9uZQorICAgIGRhdGEgPSBOb25l CisgICAgZGJfdXNlciA9IHNlcnZlcl9jb25uZWN0X2RhdGFbJ2RhdGEnXVsn dXNlciddWyduYW1lJ10KKworICAgICMgR2V0IHRoZSBjb25maWcgZGF0YSBv ZiBhcHByb3ByaWF0ZSBkYiB1c2VyCisgICAgZm9yIGNvbmZpZ190ZXN0X2Rh dGEgaW4gYWR2YW5jZWRfY29uZmlnX2RhdGFbJ2RvbWFpbl9kYXRhJ106Cisg ICAgICAgIGlmIGRiX3VzZXIgPT0gY29uZmlnX3Rlc3RfZGF0YVsnb3duZXIn XToKKyAgICAgICAgICAgIGFkdl9jb25maWdfZGF0YSA9IGNvbmZpZ190ZXN0 X2RhdGEKKworICAgIGlmIGFkdl9jb25maWdfZGF0YSBpcyBub3QgTm9uZToK KyAgICAgICAgZGF0YSA9IHsKKyAgICAgICAgICAgICJiYXNlbnNwIjogc2No ZW1hX25hbWUsCisgICAgICAgICAgICAiYmFzZXR5cGUiOiBhZHZfY29uZmln X2RhdGFbJ2Jhc2V0eXBlJ10sCisgICAgICAgICAgICAiY29sbG5hbWUiOiBh ZHZfY29uZmlnX2RhdGFbJ2NvbGxhdGlvbiddLAorICAgICAgICAgICAgImNv bnN0cmFpbnRzIjogYWR2X2NvbmZpZ19kYXRhWydjb25zdHJhaW50cyddLAor ICAgICAgICAgICAgImlzX3RsZW5ndGgiOiBhZHZfY29uZmlnX2RhdGFbJ2xl bmdodCddLAorICAgICAgICAgICAgIm1heF92YWwiOiBhZHZfY29uZmlnX2Rh dGFbJ21heF92YWx1ZSddLAorICAgICAgICAgICAgIm1pbl92YWwiOiBhZHZf Y29uZmlnX2RhdGFbJ21pbl92YWx1ZSddLAorICAgICAgICAgICAgIm5hbWUi OiAidGVzdF97fSIuZm9ybWF0KHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pLAor ICAgICAgICAgICAgIm93bmVyIjogYWR2X2NvbmZpZ19kYXRhWydvd25lcidd LAorICAgICAgICAgICAgInNlY2xhYmVscyI6IGFkdl9jb25maWdfZGF0YVsn c2VjdXJpdHknXSwKKyAgICAgICAgICAgICJ0eXBkZWZhdWx0IjogYWR2X2Nv bmZpZ19kYXRhWydkZWZhbHRfdHlwZSddLAorICAgICAgICAgICAgInR5cGxl biI6IGFkdl9jb25maWdfZGF0YVsndHlwZV9sZW4nXQorICAgICAgICB9Cisg ICAgcmV0dXJuIGRhdGEKKworCitkZWYgd3JpdGVfZG9tYWluX2lkKHJlc3Bv bnNlX2RhdGEsIHNlcnZlcl9pZCk6CisgICAgIiIiCisgICAgVGhpcyBmdW5j dGlvbiB3cml0ZXMgdGhlIHNlcnZlciBhbmQgY29sbGF0aW9uIGlkCisKKyAg ICA6cGFyYW0gcmVzcG9uc2VfZGF0YTogZG9tYWluIHJlc3BvbnNlIGRhdGEK KyAgICA6dHlwZSByZXNwb25zZV9kYXRhOiBkaWN0CisgICAgOnBhcmFtIHNl cnZlcl9pZDogc2VydmVyIGlkCisgICAgOnR5cGUgc2VydmVyX2lkOiBpbnQK KyAgICA6cmV0dXJuOiBOb25lCisgICAgIiIiCisgICAgZG9tYWluX2lkID0g cmVzcG9uc2VfZGF0YVsnbm9kZSddWydfaWQnXQorICAgIHBpY2tsZV9pZF9k aWN0ID0gdXRpbHMuZ2V0X3BpY2tsZV9pZF9kaWN0KCkKKyAgICBpZiBvcy5w YXRoLmlzZmlsZShwaWNrbGVfcGF0aCk6CisgICAgICAgIGV4aXN0aW5nX3Nl cnZlcl9pZCA9IG9wZW4ocGlja2xlX3BhdGgsICdyYicpCisgICAgICAgIHRv bF9zZXJ2ZXJfaWQgPSBwaWNrbGUubG9hZChleGlzdGluZ19zZXJ2ZXJfaWQp CisgICAgICAgIHBpY2tsZV9pZF9kaWN0ID0gdG9sX3NlcnZlcl9pZAorICAg IGlmICdkb2lkJyBpbiBwaWNrbGVfaWRfZGljdDoKKyAgICAgICAgaWYgcGlj a2xlX2lkX2RpY3RbJ2RvaWQnXToKKyAgICAgICAgICAgICMgQWRkIHRoZSBk Yl9pZCBhcyB2YWx1ZSBpbiBkaWN0CisgICAgICAgICAgICBwaWNrbGVfaWRf ZGljdFsiZG9pZCJdWzBdLnVwZGF0ZSgKKyAgICAgICAgICAgICAgICB7aW50 KHNlcnZlcl9pZCk6IGRvbWFpbl9pZH0pCisgICAgICAgIGVsc2U6CisgICAg ICAgICAgICAjIENyZWF0ZSBuZXcgZGljdCB3aXRoIHNlcnZlcl9pZCBhbmQg ZGJfaWQKKyAgICAgICAgICAgIHBpY2tsZV9pZF9kaWN0WyJkb2lkIl0uYXBw ZW5kKAorICAgICAgICAgICAgICAgIHtpbnQoc2VydmVyX2lkKTogZG9tYWlu X2lkfSkKKyAgICBkYl9vdXRwdXQgPSBvcGVuKHBpY2tsZV9wYXRoLCAnd2In KQorICAgIHBpY2tsZS5kdW1wKHBpY2tsZV9pZF9kaWN0LCBkYl9vdXRwdXQp CisgICAgZGJfb3V0cHV0LmNsb3NlKCkKKworCitkZWYgdmVyaWZ5X2RvbWFp bih0ZXN0ZXIsIHNlcnZlcl9pZCwgZGJfaWQsIHNjaGVtYV9pZCwgZG9tYWlu X2lkKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHZlcmlmaWVzIHRo ZSBleGlzdGluZyBkb21haW4gdXNpbmcgR0VUIG1ldGhvZAorICAgIDpwYXJh bSB0ZXN0ZXI6IHRlc3QgY2xpZW50CisgICAgOnR5cGUgdGVzdGVyOiBmbGFz ayB0ZXN0IGNsaWVudAorICAgIDpwYXJhbSBzZXJ2ZXJfaWQ6IHNlcnZlciBp ZAorICAgIDp0eXBlIHNlcnZlcl9pZDogaW50CisgICAgOnBhcmFtIGRiX2lk OiBkYXRhYmFzZSBpZAorICAgIDp0eXBlIGRiX2lkOiBpbnQKKyAgICA6cGFy YW0gc2NoZW1hX2lkOiBzY2hlbW5hIGlkCisgICAgOnR5cGUgc2NoZW1hX2lk OiBpbnQKKyAgICA6cGFyYW0gZG9tYWluX2lkOiBkb21haW4gaWQKKyAgICA6 dHlwZSBkb21haW5faWQ6IGludAorICAgIDpyZXR1cm4gZ2V0X3Jlc3BvbnNl OiBIVFRQIEdFVCByZXNwb25zZQorICAgIDpydHlwZTogZGljdAorICAgICIi IgorICAgIGdldF9yZXNwb25zZSA9IHRlc3Rlci5nZXQoRE9NQUlOX1VSTCAr IHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihz ZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihkYl9pZCkgKyAnLycgKwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RyKHNjaGVtYV9pZCkgKyAnLycgKworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKGRvbWFp bl9pZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisgICAg cmV0dXJuIGdldF9yZXNwb25zZQorCisKK2RlZiBhZGRfZG9tYWluKHRlc3Rl ciwgc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UpOgorICAgICIiIgorICAgIFRo aXMgZnVuY3Rpb24gaXMgdXNlZCB0byBhZGQgdGhlIGRvbWFpbiB0byBleGlz dGluZyBzY2hlbWEKKyAgICA6cGFyYW0gdGVzdGVyOiB0ZXN0IGNsaWVudAor ICAgIDp0eXBlIHRlc3RlcjogZmxhc2sgdGVzdCBjbGllbnQgb2JqZWN0Cisg ICAgOnBhcmFtIHNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlOiBzZXJ2ZXIgY29u bmVjdCBHRVQgcmVzcG9uc2UKKyAgICA6dHlwZSBzZXJ2ZXJfY29ubmVjdF9y ZXNwb25zZTogZGljdAorICAgIDpyZXR1cm46IE5vbmUKKyAgICAiIiIKKyAg ICBhbGxfaWQgPSB1dGlscy5nZXRfaWRzKCkKKyAgICBzZXJ2ZXJfaWRzX2Rp Y3QgPSBhbGxfaWRbInNpZCJdCisgICAgZGJfaWRzX2RpY3QgPSBhbGxfaWRb ImRpZCJdWzBdCisgICAgc2NoZW1hX2lkc19kaWN0ID0gYWxsX2lkWyJzY2lk Il1bMF0KKworICAgIGZvciBzZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSwgc2Vy dmVyX2lkIGluIHppcChzZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VydmVyX2lkc19kaWN0KToKKyAgICAgICAgIyBWZXJpZnkgc2VydmVyCisg ICAgICAgIHNlcnZlcl9yZXNwb25zZSA9IHNlcnZlcl91dGlscy52ZXJpZnlf c2VydmVyKHRlc3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHV0aWxzLlNFUlZFUl9HUk9V UCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlcnZlcl9pZCkKKyAgICAgICAgaWYgc2VydmVyX3Jl c3BvbnNlWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgZGJf aWQgPSBkYl9pZHNfZGljdFtpbnQoc2VydmVyX2lkKV0KKyAgICAgICAgICAg ICMgVmVyaWZ5IGRhdGFiYXNlCisgICAgICAgICAgICBkYl9jb24gPSBkYXRh YmFzZV91dGlscy52ZXJpZnlfZGF0YWJhc2UodGVzdGVyLCB1dGlscy5TRVJW RVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCkKKyAgICAgICAg ICAgIGlmIGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAgICAg ICAgICAgICBzY2hlbWFfaWQgPSBzY2hlbWFfaWRzX2RpY3RbaW50KHNlcnZl cl9pZCldWzBdCisgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUgPSBzY2hl bWFfaWRzX2RpY3RbaW50KHNlcnZlcl9pZCldWzFdCisgICAgICAgICAgICAg ICAgIyBWZXJpZnkgc2NoZW1hCisgICAgICAgICAgICAgICAgc2NoZW1hX3Jl c3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHRlc3RlciwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2NoZW1hX2lkKQorICAgICAgICAgICAgICAgIGlmIHNjaGVt YV9yZXNwb25zZS5zdGF0dXNfY29kZSA9PSAyMDA6CisgICAgICAgICAgICAg ICAgICAgIGRhdGEgPSBnZXRfZG9tYWluX2NvbmZpZ19kYXRhKHNlcnZlcl9j b25uZWN0X3Jlc3BvbnNlLCBzY2hlbWFfbmFtZSkKKyAgICAgICAgICAgICAg ICAgICAgIyBDYWxsIFBPU1QgQVBJIHRvIGFkZCBkb21haW4KKyAgICAgICAg ICAgICAgICAgICAgcmVzcG9uc2UgPSB0ZXN0ZXIucG9zdCgKKyAgICAgICAg ICAgICAgICAgICAgICAgIERPTUFJTl9VUkwgKyBzdHIodXRpbHMuU0VSVkVS X0dST1VQKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICBzdHIo c2VydmVyX2lkKSArICcvJyArIHN0cihkYl9pZCkgKworICAgICAgICAgICAg ICAgICAgICAgICAgJy8nICsgc3RyKHNjaGVtYV9pZCkgKyAnLycsCisgICAg ICAgICAgICAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCisg ICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNv bicpCisKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHJlc3BvbnNlLnN0 YXR1c19jb2RlID09IDIwMAorICAgICAgICAgICAgICAgICAgICByZXNwb25z ZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRm LTgnKSkKKyAgICAgICAgICAgICAgICAgICAgd3JpdGVfZG9tYWluX2lkKHJl c3BvbnNlX2RhdGEsIHNlcnZlcl9pZCkKKyAgICAgICAgICAgICAgICBlbHNl OgorICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkVycm9y IGluIHZlcmlmeWluZyBzY2hlbWEgd2l0aCBpZDogJXMiCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAlIHN0cihzY2hlbWFfaWQpKQor ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIkVycm9yIGluIHZlcmlmeWluZyBkYXRhYmFzZSB3aXRoIGlkOiAl cyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBkYl9pZCkK KworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJFcnJvciBpbiBjb25uZWN0aW5nIHNlcnZlciB3aXRoIGlkOiAlcyIKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAlIHNlcnZlcl9pZCkKKwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL19faW5pdF9f LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL19faW5pdF9fLnB5 Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2Y2M3ZjIK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVz dHMvX19pbml0X18ucHkKQEAgLTAsMCArMSw4IEBACisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FM IFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBw Z0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyBy ZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVfYWRkLnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVfYWRkLnB5Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmZjI0YzkKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMv dGVzdF90YWJsZV9hZGQucHkKQEAgLTAsMCArMSw3OSBAQAorIyAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRv b2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxl YXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRl c3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBp bXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMg c2VydmVyX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBc CisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBp bXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLnRhYmxlc3BhY2Vz LnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgdGFibGVzcGFjZV91dGls cworZnJvbSAuIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKKworCitj bGFzcyBUYWJsZUFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAg ICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcgY29sbGF0aW9uIHVuZGVy IHNjaGVtYSBub2RlLiAiIiIKKworICAgIHNjZW5hcmlvcyA9IFsKKyAgICAg ICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgdGFibGUgbm9kZS4KKyAg ICAgICAgKCdGZXRjaCB0YWJsZSBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJv d3Nlci90YWJsZS9vYmovJykpCisgICAgXQorCisgICAgQGNsYXNzbWV0aG9k CisgICAgZGVmIHNldFVwQ2xhc3MoY2xzKToKKyAgICAgICAgIiIiCisgICAg ICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybSB0aGUgdGhyZWUgdGFza3MKKyAg ICAgICAgIDEuIEFkZCB0aGUgdGVzdCBzZXJ2ZXIKKyAgICAgICAgIDIuIENv bm5lY3QgdG8gc2VydmVyCisgICAgICAgICAzLiBBZGQgdGhlIGRhdGFiYXNl cworICAgICAgICAgNC4gQWRkIHRoZSBzY2hlbWFzCisKKyAgICAgICAgOnJl dHVybjogTm9uZQorICAgICAgICAiIiIKKworICAgICAgICAjIEZpcnN0bHks IGFkZCB0aGUgc2VydmVyCisgICAgICAgIHNlcnZlcl91dGlscy5hZGRfc2Vy dmVyKGNscy50ZXN0ZXIpCisgICAgICAgICMgQ29ubmVjdCB0byBzZXJ2ZXIK KyAgICAgICAgY2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLCBjbHMuc2Vy dmVyX2dyb3VwLCBjbHMuc2VydmVyX2lkcyA9IFwKKyAgICAgICAgICAgIHNl cnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihjbHMudGVzdGVyKQorICAgICAg ICBpZiBsZW4oY2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlKSA9PSAwOgor ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyBTZXJ2ZXIocykgY29u bmVjdGVkIHRvIGFkZCB0aGUgZGF0YWJhc2UhISEiKQorICAgICAgICAjIEFk ZCB0YWJsZXNwYWNlCisgICAgICAgIHRhYmxlc3BhY2VfdXRpbHMuYWRkX3Rh YmxlX3NwYWNlKGNscy50ZXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25z ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2xzLnNlcnZlcl9ncm91cCwgY2xzLnNlcnZlcl9pZHMpCisKKyAgICAgICAg IyBBZGQgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuYWRkX2Rh dGFiYXNlKGNscy50ZXN0ZXIsIGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25z ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5z ZXJ2ZXJfaWRzKQorICAgICAgICAjIEFkZCBzY2hlbWFzCisgICAgICAgIHNj aGVtYV91dGlscy5hZGRfc2NoZW1hcyhjbHMudGVzdGVyKQorCisgICAgZGVm IHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdp bGwgYWRkIHRhYmxlIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKworICAgICAg ICB0YWJsZXNfdXRpbHMuYWRkX3RhYmxlcyhzZWxmLnRlc3Rlciwgc2VsZi5z ZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSkKKworICAgIEBjbGFzc21ldGhvZAor ICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6CisgICAgICAgICIiIgorICAg ICAgICBUaGlzIGZ1bmN0aW9uIGRlbGV0ZXMgdGhlIGFkZGVkIHRhYmxlcywg c2NoZW1hcywgZGF0YWJhc2UsCisgICAgICAgIHNlcnZlciBhbmQgdGhlICdw YXJlbnRfaWQucGtsJyBmaWxlIHdoaWNoIGlzIGNyZWF0ZWQgaW4gc2V0dXAo KQorICAgICAgICBmdW5jdGlvbi4KKworICAgICAgICA6cmV0dXJuOiBOb25l CisgICAgICAgICIiIgorCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRlbGV0 ZV9kYXRhYmFzZShjbHMudGVzdGVyKQorICAgICAgICB0YWJsZXNwYWNlX3V0 aWxzLmRlbGV0ZV90YWJsZV9zcGFjZShjbHMudGVzdGVyKQorICAgICAgICBz ZXJ2ZXJfdXRpbHMuZGVsZXRlX3NlcnZlcihjbHMudGVzdGVyKQorICAgICAg ICB1dGlscy5kZWxldGVfcGFyZW50X2lkX2ZpbGUoKQorCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZV9kZWxl dGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJs ZV9kZWxldGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMzAwMjgzNgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxlX2RlbGV0ZS5weQpAQCAtMCwwICsx LDgyIEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4g NCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEz IC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlz IHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExp Y2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbXBvcnQganNv bgorCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRp bHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgc2VydmVyX3V0aWxzCitm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2Vf dXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAorICAgIHV0 aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLnRhYmxlc3BhY2VzLnRlc3RzIGltcG9ydCB1 dGlscyBhcyBcCisgICAgdGFibGVzcGFjZV91dGlscworZnJvbSAuIGltcG9y dCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKKworCitjbGFzcyBUYWJsZURlbGV0 ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBj bGFzcyB3aWxsIGRlbGV0ZSBuZXcgdGFibGUgdW5kZXIgc2NoZW1hIG5vZGUu ICIiIgorCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5n IGRlZmF1bHQgVVJMIGZvciB0YWJsZSBub2RlLgorICAgICAgICAoJ0ZldGNo IHRhYmxlIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL3RhYmxlL29i ai8nKSkKKyAgICBdCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgc2V0 VXBDbGFzcyhjbHMpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5j dGlvbiBwZXJmb3JtIHRoZSB0aHJlZSB0YXNrcworICAgICAgICAgMS4gQWRk IHRoZSB0ZXN0IHNlcnZlcgorICAgICAgICAgMi4gQ29ubmVjdCB0byBzZXJ2 ZXIKKyAgICAgICAgIDMuIEFkZCB0aGUgZGF0YWJhc2VzCisgICAgICAgICA0 LiBBZGQgdGhlIHNjaGVtYXMKKyAgICAgICAgIDUuIEFkZCB0aGUgdGFibGVz CisKKyAgICAgICAgOnJldHVybjogTm9uZQorICAgICAgICAiIiIKKworICAg ICAgICAjIEZpcnN0bHksIGFkZCB0aGUgc2VydmVyCisgICAgICAgIHNlcnZl cl91dGlscy5hZGRfc2VydmVyKGNscy50ZXN0ZXIpCisgICAgICAgICMgQ29u bmVjdCB0byBzZXJ2ZXIKKyAgICAgICAgY2xzLnNlcnZlcl9jb25uZWN0X3Jl c3BvbnNlLCBjbHMuc2VydmVyX2dyb3VwLCBjbHMuc2VydmVyX2lkcyA9IFwK KyAgICAgICAgICAgIHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihjbHMu dGVzdGVyKQorICAgICAgICBpZiBsZW4oY2xzLnNlcnZlcl9jb25uZWN0X3Jl c3BvbnNlKSA9PSAwOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJO byBTZXJ2ZXIocykgY29ubmVjdGVkIHRvIGFkZCB0aGUgZGF0YWJhc2UhISEi KQorICAgICAgICAjIEFkZCB0YWJsZXNwYWNlCisgICAgICAgIHRhYmxlc3Bh Y2VfdXRpbHMuYWRkX3RhYmxlX3NwYWNlKGNscy50ZXN0ZXIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5zZXJ2ZXJf Y29ubmVjdF9yZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2xzLnNlcnZlcl9ncm91cCwgY2xzLnNlcnZlcl9p ZHMpCisKKyAgICAgICAgIyBBZGQgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJh c2VfdXRpbHMuYWRkX2RhdGFiYXNlKGNscy50ZXN0ZXIsIGNscy5zZXJ2ZXJf Y29ubmVjdF9yZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNscy5zZXJ2ZXJfaWRzKQorICAgICAgICAjIEFkZCBzY2hl bWFzCisgICAgICAgIHNjaGVtYV91dGlscy5hZGRfc2NoZW1hcyhjbHMudGVz dGVyKQorICAgICAgICAjIEFkZCB0YWJsZXMKKyAgICAgICAgdGFibGVzX3V0 aWxzLmFkZF90YWJsZXMoY2xzLnRlc3RlciwgY2xzLnNlcnZlcl9jb25uZWN0 X3Jlc3BvbnNlKQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAg ICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIGFkZGVkIHRhYmxlIHVu ZGVyIHNjaGVtYSBub2RlLiAiIiIKKworICAgICAgICB0YWJsZXNfdXRpbHMu ZGVsZXRlX3RhYmxlcyhzZWxmLnRlc3RlcikKKworICAgIEBjbGFzc21ldGhv ZAorICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6CisgICAgICAgICIiIgor ICAgICAgICBUaGlzIGZ1bmN0aW9uIGRlbGV0ZXMgdGhlIGFkZGVkIHRhYmxl cywgc2NoZW1hcywgZGF0YWJhc2UsCisgICAgICAgIHNlcnZlciBhbmQgdGhl ICdwYXJlbnRfaWQucGtsJyBmaWxlIHdoaWNoIGlzIGNyZWF0ZWQgaW4gc2V0 dXAoKQorICAgICAgICBmdW5jdGlvbi4KKworICAgICAgICA6cmV0dXJuOiBO b25lCisgICAgICAgICIiIgorCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRl bGV0ZV9kYXRhYmFzZShjbHMudGVzdGVyKQorICAgICAgICB0YWJsZXNwYWNl X3V0aWxzLmRlbGV0ZV90YWJsZV9zcGFjZShjbHMudGVzdGVyKQorICAgICAg ICBzZXJ2ZXJfdXRpbHMuZGVsZXRlX3NlcnZlcihjbHMudGVzdGVyKQorICAg ICAgICB1dGlscy5kZWxldGVfcGFyZW50X2lkX2ZpbGUoKQpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxlX2dldC5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxlX2dldC5weQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ODM3MDFiCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFi bGVfZ2V0LnB5CkBAIC0wLDAgKzEsMTIxIEBACisjICMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMK KyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2 ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVu ZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisKK2ltcG9ydCBqc29uCisKK2Zyb20gcmVncmVzc2lvbiBp bXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSBwZ2FkbWluLnV0aWxz LnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLnRlc3RzIGltcG9ydCB1 dGlscyBhcyBzZXJ2ZXJfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0 aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFz LnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMudGFi bGVzcGFjZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICB0YWJsZXNw YWNlX3V0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGls cworCisKK2NsYXNzIFRhYmxlR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0 b3IpOgorICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRkIG5ldyBjb2xsYXRp b24gdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorCisgICAgc2NlbmFyaW9zID0g WworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciB0YWJsZSBu b2RlLgorICAgICAgICAoJ0ZldGNoIHRhYmxlIE5vZGUgVVJMJywgZGljdCh1 cmw9Jy9icm93c2VyL3RhYmxlL29iai8nKSkKKyAgICBdCisKKyAgICBAY2xh c3NtZXRob2QKKyAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgorICAgICAgICAi IiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtIHRoZSB0aHJlZSB0 YXNrcworICAgICAgICAgMS4gQWRkIHRoZSB0ZXN0IHNlcnZlcgorICAgICAg ICAgMi4gQ29ubmVjdCB0byBzZXJ2ZXIKKyAgICAgICAgIDMuIEFkZCB0aGUg ZGF0YWJhc2VzCisgICAgICAgICA0LiBBZGQgdGhlIHNjaGVtYXMKKyAgICAg ICAgIDUuIEFkZCB0aGUgdGFibGVzCisKKyAgICAgICAgOnJldHVybjogTm9u ZQorICAgICAgICAiIiIKKworICAgICAgICAjIEZpcnN0bHksIGFkZCB0aGUg c2VydmVyCisgICAgICAgIHNlcnZlcl91dGlscy5hZGRfc2VydmVyKGNscy50 ZXN0ZXIpCisgICAgICAgICMgQ29ubmVjdCB0byBzZXJ2ZXIKKyAgICAgICAg Y2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLCBjbHMuc2VydmVyX2dyb3Vw LCBjbHMuc2VydmVyX2lkcyA9IFwKKyAgICAgICAgICAgIHNlcnZlcl91dGls cy5jb25uZWN0X3NlcnZlcihjbHMudGVzdGVyKQorICAgICAgICBpZiBsZW4o Y2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlKSA9PSAwOgorICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJObyBTZXJ2ZXIocykgY29ubmVjdGVkIHRv IGFkZCB0aGUgZGF0YWJhc2UhISEiKQorICAgICAgICAjIEFkZCB0YWJsZXNw YWNlCisgICAgICAgIHRhYmxlc3BhY2VfdXRpbHMuYWRkX3RhYmxlX3NwYWNl KGNscy50ZXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNlcnZl cl9ncm91cCwgY2xzLnNlcnZlcl9pZHMpCisKKyAgICAgICAgIyBBZGQgZGF0 YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuYWRkX2RhdGFiYXNlKGNs cy50ZXN0ZXIsIGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5zZXJ2ZXJfaWRz KQorICAgICAgICAjIEFkZCBzY2hlbWFzCisgICAgICAgIHNjaGVtYV91dGls cy5hZGRfc2NoZW1hcyhjbHMudGVzdGVyKQorICAgICAgICAjIEFkZCB0YWJs ZXMKKyAgICAgICAgdGFibGVzX3V0aWxzLmFkZF90YWJsZXMoY2xzLnRlc3Rl ciwgY2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlKQorCisgICAgZGVmIHJ1 blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwg ZmV0Y2ggYWRkZWQgdGFibGUgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorCisg ICAgICAgIGFsbF9pZCA9IHV0aWxzLmdldF9pZHMoKQorICAgICAgICBzZXJ2 ZXJfaWRzID0gYWxsX2lkWyJzaWQiXQorICAgICAgICBkYl9pZHNfZGljdCA9 IGFsbF9pZFsiZGlkIl1bMF0KKyAgICAgICAgc2NoZW1hX2lkc19kaWN0ID0g YWxsX2lkWyJzY2lkIl1bMF0KKyAgICAgICAgdGFibGVfaWRzX2RpY3QgPSBh bGxfaWRbInRpZCJdWzBdCisKKyAgICAgICAgZm9yIHNlcnZlcl9pZCBpbiBz ZXJ2ZXJfaWRzOgorICAgICAgICAgICAgc2VydmVyX3Jlc3BvbnNlID0gc2Vy dmVyX3V0aWxzLnZlcmlmeV9zZXJ2ZXIoc2VsZi50ZXN0ZXIsIHN0cigKKyAg ICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVApLCBzZXJ2ZXJfaWQp CisgICAgICAgICAgICBpZiBzZXJ2ZXJfcmVzcG9uc2VbJ2RhdGEnXVsnY29u bmVjdGVkJ106CisgICAgICAgICAgICAgICAgZGJfaWQgPSBkYl9pZHNfZGlj dFtpbnQoc2VydmVyX2lkKV0KKyAgICAgICAgICAgICAgICBkYl9jb24gPSBk YXRhYmFzZV91dGlscy52ZXJpZnlfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vy dmVyX2lkLCBkYl9pZCkKKyAgICAgICAgICAgICAgICBpZiBkYl9jb25bJ2Rh dGEnXVsnY29ubmVjdGVkJ106CisgICAgICAgICAgICAgICAgICAgIHNjaGVt YV9pZCA9IHNjaGVtYV9pZHNfZGljdFtpbnQoc2VydmVyX2lkKV1bMF0KKyAg ICAgICAgICAgICAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0 aWxzLnZlcmlmeV9zY2hlbWFzKAorICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi50ZXN0ZXIsIHNlcnZlcl9pZCwgZGJfaWQsIHNjaGVtYV9pZCkKKyAg ICAgICAgICAgICAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0ganNvbi5sb2Fk cygKKyAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9yZXNwb25zZS5k YXRhLmRlY29kZSgndXRmLTgnKSkKKyAgICAgICAgICAgICAgICAgICAgaWYg bGVuKHNjaGVtYV9yZXNwb25zZSkgIT0gMDoKKyAgICAgICAgICAgICAgICAg ICAgICAgIHRhYmxlX2lkID0gdGFibGVfaWRzX2RpY3RbaW50KHNlcnZlcl9p ZCldCisgICAgICAgICAgICAgICAgICAgICAgICBnZXRfcmVzcG9uc2UgPSB0 YWJsZXNfdXRpbHMudmVyaWZ5X3RhYmxlKHNlbGYudGVzdGVyLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRiX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfaWQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRhYmxlX2lkKQorICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZ2V0X3Jlc3BvbnNlLnN0YXR1c19j b2RlLCAyMDApCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAg ICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIkVycm9yIHdoaWxlIHZlcmlmeWluZyBzY2hl bWEgd2l0aCBpZDogJXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg JSBzY2hlbWFfaWQpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAg ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAg ICAgICAgICAgIkVycm9yIHdoaWxlIGNvbm5lY3RpbmcgZGF0YWJhc2Ugd2l0 aCBpZDogJXMiCisgICAgICAgICAgICAgICAgICAgICAgICAlIGRiX2lkKQor ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIkVycm9yIHdoaWxlIGNvbm5lY3Rpbmcgc2VydmVyIHdpdGggaWQ6 ICVzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIHNlcnZl cl9pZCkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiB0ZWFyRG93bkNs YXNzKGNscyk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9u IGRlbGV0ZXMgdGhlIGFkZGVkIHRhYmxlcywgc2NoZW1hcywgZGF0YWJhc2Us CisgICAgICAgIHNlcnZlciBhbmQgdGhlICdwYXJlbnRfaWQucGtsJyBmaWxl IHdoaWNoIGlzIGNyZWF0ZWQgaW4gc2V0dXAoKQorICAgICAgICBmdW5jdGlv bi4KKworICAgICAgICA6cmV0dXJuOiBOb25lCisgICAgICAgICIiIgorCisg ICAgICAgIGRhdGFiYXNlX3V0aWxzLmRlbGV0ZV9kYXRhYmFzZShjbHMudGVz dGVyKQorICAgICAgICB0YWJsZXNwYWNlX3V0aWxzLmRlbGV0ZV90YWJsZV9z cGFjZShjbHMudGVzdGVyKQorICAgICAgICBzZXJ2ZXJfdXRpbHMuZGVsZXRl X3NlcnZlcihjbHMudGVzdGVyKQorICAgICAgICB1dGlscy5kZWxldGVfcGFy ZW50X2lkX2ZpbGUoKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3Rlc3RzL3Rlc3RfdGFibGVfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVfcHV0LnB5Cm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNzM5MWIKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZV9w dXQucHkKQEAgLTAsMCArMSwxNDIgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBD b3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9w bWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIg dGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKworaW1wb3J0IGpzb24KKworZnJvbSByZWdyZXNzaW9uIGltcG9y dCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24u dGVzdF9zZXR1cCBpbXBvcnQgYWR2YW5jZWRfY29uZmlnX2RhdGEKK2Zyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy50ZXN0cyBp bXBvcnQgdXRpbHMgYXMgc2VydmVyX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGlt cG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu c2NoZW1hcy50ZXN0cyBpbXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91 dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLnRhYmxlc3BhY2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAg dGFibGVzcGFjZV91dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyB0YWJs ZXNfdXRpbHMKKworCitjbGFzcyBUYWJsZVVwZGF0ZVRlc3RDYXNlKEJhc2VU ZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCBu ZXcgY29sbGF0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKworICAgIHNj ZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBm b3IgdGFibGUgbm9kZS4KKyAgICAgICAgKCdGZXRjaCB0YWJsZSBOb2RlIFVS TCcsIGRpY3QodXJsPScvYnJvd3Nlci90YWJsZS9vYmovJykpCisgICAgXQor CisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHNldFVwQ2xhc3MoY2xzKToK KyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybSB0 aGUgdGhyZWUgdGFza3MKKyAgICAgICAgIDEuIEFkZCB0aGUgdGVzdCBzZXJ2 ZXIKKyAgICAgICAgIDIuIENvbm5lY3QgdG8gc2VydmVyCisgICAgICAgICAz LiBBZGQgdGhlIGRhdGFiYXNlcworICAgICAgICAgNC4gQWRkIHRoZSBzY2hl bWFzCisgICAgICAgICA1LiBBZGQgdGhlIHRhYmxlcworCisgICAgICAgIDpy ZXR1cm46IE5vbmUKKyAgICAgICAgIiIiCisKKyAgICAgICAgIyBGaXJzdGx5 LCBhZGQgdGhlIHNlcnZlcgorICAgICAgICBzZXJ2ZXJfdXRpbHMuYWRkX3Nl cnZlcihjbHMudGVzdGVyKQorICAgICAgICAjIENvbm5lY3QgdG8gc2VydmVy CisgICAgICAgIGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSwgY2xzLnNl cnZlcl9ncm91cCwgY2xzLnNlcnZlcl9pZHMgPSBcCisgICAgICAgICAgICBz ZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoY2xzLnRlc3RlcikKKyAgICAg ICAgaWYgbGVuKGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSkgPT0gMDoK KyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gU2VydmVyKHMpIGNv bm5lY3RlZCB0byBhZGQgdGhlIGRhdGFiYXNlISEhIikKKyAgICAgICAgIyBB ZGQgdGFibGVzcGFjZQorICAgICAgICB0YWJsZXNwYWNlX3V0aWxzLmFkZF90 YWJsZV9zcGFjZShjbHMudGVzdGVyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjbHMuc2VydmVyX2Nvbm5lY3RfcmVzcG9u c2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNscy5zZXJ2ZXJfZ3JvdXAsIGNscy5zZXJ2ZXJfaWRzKQorCisgICAgICAg ICMgQWRkIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmFkZF9k YXRhYmFzZShjbHMudGVzdGVyLCBjbHMuc2VydmVyX2Nvbm5lY3RfcmVzcG9u c2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHMu c2VydmVyX2lkcykKKyAgICAgICAgIyBBZGQgc2NoZW1hcworICAgICAgICBz Y2hlbWFfdXRpbHMuYWRkX3NjaGVtYXMoY2xzLnRlc3RlcikKKyAgICAgICAg IyBBZGQgdGFibGVzCisgICAgICAgIHRhYmxlc191dGlscy5hZGRfdGFibGVz KGNscy50ZXN0ZXIsIGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSkKKwor ICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5j dGlvbiB3aWxsIGZldGNoIGFkZGVkIHRhYmxlIHVuZGVyIHNjaGVtYSBub2Rl LiAiIiIKKworICAgICAgICBhbGxfaWQgPSB1dGlscy5nZXRfaWRzKCkKKyAg ICAgICAgc2VydmVyX2lkc19kaWN0ID0gYWxsX2lkWyJzaWQiXQorICAgICAg ICBkYl9pZHNfZGljdCA9IGFsbF9pZFsiZGlkIl1bMF0KKyAgICAgICAgc2No ZW1hX2lkc19kaWN0ID0gYWxsX2lkWyJzY2lkIl1bMF0KKyAgICAgICAgdGFi bGVfaWRzX2RpY3QgPSBhbGxfaWRbInRpZCJdWzBdCisKKyAgICAgICAgZm9y IHNlcnZlcl9pZCBpbiBzZXJ2ZXJfaWRzX2RpY3Q6CisgICAgICAgICAgICAj IFZlcmlmeSBzZXJ2ZXIKKyAgICAgICAgICAgIHNlcnZlcl9yZXNwb25zZSA9 IHNlcnZlcl91dGlscy52ZXJpZnlfc2VydmVyKAorICAgICAgICAgICAgICAg IHNlbGYudGVzdGVyLCBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSwgc2VydmVy X2lkKQorICAgICAgICAgICAgaWYgc2VydmVyX3Jlc3BvbnNlWydkYXRhJ11b J2Nvbm5lY3RlZCddOgorICAgICAgICAgICAgICAgIGRiX2lkID0gZGJfaWRz X2RpY3RbaW50KHNlcnZlcl9pZCldCisgICAgICAgICAgICAgICAgIyBWZXJp ZnkgZGF0YWJhc2UKKyAgICAgICAgICAgICAgICBkYl9jb24gPSBkYXRhYmFz ZV91dGlscy52ZXJpZnlfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lk LCBkYl9pZCkKKyAgICAgICAgICAgICAgICBpZiBkYl9jb25bJ2RhdGEnXVsn Y29ubmVjdGVkJ106CisgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9pZCA9 IHNjaGVtYV9pZHNfZGljdFtpbnQoc2VydmVyX2lkKV1bMF0KKyAgICAgICAg ICAgICAgICAgICAgIyBWZXJpZnkgc2NoZW1hCisgICAgICAgICAgICAgICAg ICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2No ZW1hcyhzZWxmLnRlc3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZl cl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2NoZW1hX2lkKQorICAgICAgICAgICAgICAgICAgICBp ZiBzY2hlbWFfcmVzcG9uc2Uuc3RhdHVzX2NvZGUgPT0gMjAwOgorICAgICAg ICAgICAgICAgICAgICAgICAgdGFibGVfaWQgPSB0YWJsZV9pZHNfZGljdFtp bnQoc2VydmVyX2lkKV0KKyAgICAgICAgICAgICAgICAgICAgICAgICMgVmVy aWZ5IHRhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9yZXNw b25zZSA9IHRhYmxlc191dGlscy52ZXJpZnlfdGFibGUoc2VsZi50ZXN0ZXIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRiX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNj aGVtYV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9pZCkKKyAg ICAgICAgICAgICAgICAgICAgICAgIGlmIHRhYmxlX3Jlc3BvbnNlLnN0YXR1 c19jb2RlID09IDIwMDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBk YXRhID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVz Y3JpcHRpb24iOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYWR2YW5jZWRfY29uZmlnX2RhdGFbJ3RhYmxlX3VwZGF0ZV9kYXRhJ11b J2NvbW1lbnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ImlkIjogdGFibGVfaWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRfcmVzcG9uc2Ug PSBzZWxmLnRlc3Rlci5wdXQoCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAn LycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2Vy dmVyX2lkKSArICcvJyArIHN0cihkYl9pZCkgKyAnLycgKworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2NoZW1hX2lkKSArICcvJyAr IHN0cih0YWJsZV9pZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwgZm9sbG93X3JlZGlyZWN0cz1U cnVlKQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3Nl cnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAg ICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiRXJyb3Igd2hpbGUgdmVyaWZ5 aW5nIHRhYmxlIHdpdGggIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiaWQ6ICVzIiAlIHRhYmxlX2lkKQorICAgICAg ICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJFcnJvciB3aGlsZSB2ZXJpZnlpbmcgc2NoZW1hIHdpdGggaWQ6ICVzIgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgc2NoZW1hX2lkKQorICAg ICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICJFcnJvciB3 aGlsZSBjb25uZWN0aW5nIGRhdGFiYXNlIHdpdGggaWQ6ICVzIgorICAgICAg ICAgICAgICAgICAgICAgICAgJSBkYl9pZCkKKyAgICAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJFcnJvciB3aGls ZSBjb25uZWN0aW5nIHNlcnZlciB3aXRoIGlkOiAlcyIKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJSBzZXJ2ZXJfaWQpCisKKyAgICBAY2xh c3NtZXRob2QKKyAgICBkZWYgdGVhckRvd25DbGFzcyhjbHMpOgorICAgICAg ICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSBhZGRl ZCB0YWJsZXMsIHNjaGVtYXMsIGRhdGFiYXNlLAorICAgICAgICBzZXJ2ZXIg YW5kIHRoZSAncGFyZW50X2lkLnBrbCcgZmlsZSB3aGljaCBpcyBjcmVhdGVk IGluIHNldHVwKCkKKyAgICAgICAgZnVuY3Rpb24uCisKKyAgICAgICAgOnJl dHVybjogTm9uZQorICAgICAgICAiIiIKKworICAgICAgICBkYXRhYmFzZV91 dGlscy5kZWxldGVfZGF0YWJhc2UoY2xzLnRlc3RlcikKKyAgICAgICAgdGFi bGVzcGFjZV91dGlscy5kZWxldGVfdGFibGVfc3BhY2UoY2xzLnRlc3RlcikK KyAgICAgICAgc2VydmVyX3V0aWxzLmRlbGV0ZV9zZXJ2ZXIoY2xzLnRlc3Rl cikKKyAgICAgICAgdXRpbHMuZGVsZXRlX3BhcmVudF9pZF9maWxlKCkKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy91dGlscy5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy91dGlscy5weQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDU4YjMxCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3V0 aWxzLnB5CkBAIC0wLDAgKzEsMjA3IEBACisjICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisjCisjICNwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRv b2xzCisjCisjICNDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdB ZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjICNUaGlzIHNvZnR3YXJlIGlzIHJl bGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IGpzb24KK2lt cG9ydCBvcworaW1wb3J0IHBpY2tsZQoraW1wb3J0IHV1aWQKKworZnJvbSBy ZWdyZXNzaW9uLnRlc3Rfc2V0dXAgaW1wb3J0IHBpY2tsZV9wYXRoLCBhZHZh bmNlZF9jb25maWdfZGF0YQorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVy X2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAorICAg IHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVz dHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy50ZXN0cyBp bXBvcnQgdXRpbHMgYXMgc2VydmVyX3V0aWxzCitmcm9tIHJlZ3Jlc3Npb24g aW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKKworVEFCTEVTX1VSTCA9ICcv YnJvd3Nlci90YWJsZS9vYmovJworCisKK2RlZiBnZXRfdGFibGVzX2NvbmZp Z19kYXRhKHNlcnZlcl9jb25uZWN0X2RhdGEsIHNjaGVtYV9uYW1lLCB0YWJs ZXNwYWNlX25hbWUpOgorICAgIGFkdl9jb25maWdfZGF0YSA9IE5vbmUKKyAg ICBkYXRhID0gTm9uZQorICAgIGRiX3VzZXIgPSBzZXJ2ZXJfY29ubmVjdF9k YXRhWydkYXRhJ11bJ3VzZXInXVsnbmFtZSddCisKKyAgICAjIEdldCB0aGUg Y29uZmlnIGRhdGEgb2YgYXBwcm9wcmlhdGUgZGIgdXNlcgorICAgIGZvciBj b25maWdfdGVzdF9kYXRhIGluIGFkdmFuY2VkX2NvbmZpZ19kYXRhWyd0YWJs ZV9jcmVkZW50aWFscyddOgorICAgICAgICBpZiBkYl91c2VyID09IGNvbmZp Z190ZXN0X2RhdGFbJ293bmVyJ106CisgICAgICAgICAgICBhZHZfY29uZmln X2RhdGEgPSBjb25maWdfdGVzdF9kYXRhCisKKyAgICBpZiBhZHZfY29uZmln X2RhdGEgaXMgbm90IE5vbmU6CisgICAgICAgIGRhdGEgPSB7CisgICAgICAg ICAgICAiY2hlY2tfY29uc3RyYWludCI6IGFkdl9jb25maWdfZGF0YVsnY29u c3RyYWludCddLAorICAgICAgICAgICAgImNvbGxfaW5oZXJpdHMiOiBhZHZf Y29uZmlnX2RhdGFbJ2NvbF9pbmhlcml0J10sCisgICAgICAgICAgICAiY29s dW1ucyI6IGFkdl9jb25maWdfZGF0YVsnY29sdW1ucyddLAorICAgICAgICAg ICAgImV4Y2x1ZGVfY29uc3RyYWludCI6IGFkdl9jb25maWdfZGF0YVsnaGFz X2NvbnN0cmFpbnQnXSwKKyAgICAgICAgICAgICJmaWxsZmFjdG9yIjogYWR2 X2NvbmZpZ19kYXRhWydmaWxsZmFjdG9yJ10sCisgICAgICAgICAgICAiZm9y ZWlnbl9rZXkiOiBhZHZfY29uZmlnX2RhdGFbJ2hhc19GSyddLAorICAgICAg ICAgICAgImhhc3RvYXN0dGFibGUiOiBhZHZfY29uZmlnX2RhdGFbJ2hhc190 b2FzdF90YmwnXSwKKyAgICAgICAgICAgICJsaWtlX2NvbnN0cmFpbnRzIjog YWR2X2NvbmZpZ19kYXRhWydsaWtlX2NvbnN0cmFpbnQnXSwKKyAgICAgICAg ICAgICJsaWtlX2RlZmF1bHRfdmFsdWUiOiBhZHZfY29uZmlnX2RhdGFbJ2xp a2VfZGVmYXVsdF92YWx1ZSddLAorICAgICAgICAgICAgImxpa2VfcmVsYXRp b24iOiBhZHZfY29uZmlnX2RhdGFbJ2xpa2VfcmVsYXRpb24nXSwKKyAgICAg ICAgICAgICJuYW1lIjogInRhYmxlX3t9Ii5mb3JtYXQoc3RyKHV1aWQudXVp ZDQoKSlbMTo0XSksCisgICAgICAgICAgICAicHJpbWFyeV9rZXkiOiBhZHZf Y29uZmlnX2RhdGFbJ1BLJ10sCisgICAgICAgICAgICAicmVsYWNsIjogYWR2 X2NvbmZpZ19kYXRhWydhY2wnXSwKKyAgICAgICAgICAgICJyZWxoYXNvaWRz IjogYWR2X2NvbmZpZ19kYXRhWydoYXNfb2lkJ10sCisgICAgICAgICAgICAi cmVsb3duZXIiOiBhZHZfY29uZmlnX2RhdGFbJ293bmVyJ10sCisgICAgICAg ICAgICAic2NoZW1hIjogc2NoZW1hX25hbWUsCisgICAgICAgICAgICAic2Vj bGFiZWxzIjogYWR2X2NvbmZpZ19kYXRhWydzZWNfYWNsJ10sCisgICAgICAg ICAgICAic3BjbmFtZSI6IHRhYmxlc3BhY2VfbmFtZSwKKyAgICAgICAgICAg ICJ1bmlxdWVfY29uc3RyYWludCI6IGFkdl9jb25maWdfZGF0YVsndW5pcXVl X2NvbnN0cmFpbnQnXSwKKyAgICAgICAgICAgICJ2YWN1dW1fdGFibGUiOiBh ZHZfY29uZmlnX2RhdGFbJ3ZhY3V1bV90YmwnXSwKKyAgICAgICAgICAgICJ2 YWN1dW1fdG9hc3QiOiBhZHZfY29uZmlnX2RhdGFbJ3ZhY3V1bV90b2FzdCdd CisgICAgICAgIH0KKyAgICByZXR1cm4gZGF0YQorCisKK2RlZiB3cml0ZV90 YWJsZXNfaWQocmVzcG9uc2VfZGF0YSwgc2VydmVyX2lkKToKKyAgICAiIiIK KyAgICBUaGlzIGZ1bmN0aW9uIHdyaXRlcyB0aGUgc2VydmVyIGFuZCBjb2xs YXRpb24gaWQKKworICAgIDpwYXJhbSByZXNwb25zZV9kYXRhOiB0YWJsZSBy ZXNwb25zZSBkYXRhCisgICAgOnR5cGUgcmVzcG9uc2VfZGF0YTogZGljdAor ICAgIDpwYXJhbSBzZXJ2ZXJfaWQ6IHNlcnZlciBpZAorICAgIDp0eXBlIHNl cnZlcl9pZDogaW50CisgICAgOnJldHVybjogTm9uZQorICAgICIiIgorCisg ICAgdGFibGVfaWQgPSByZXNwb25zZV9kYXRhWydub2RlJ11bJ19pZCddCisg ICAgcGlja2xlX2lkX2RpY3QgPSB1dGlscy5nZXRfcGlja2xlX2lkX2RpY3Qo KQorICAgIGlmIG9zLnBhdGguaXNmaWxlKHBpY2tsZV9wYXRoKToKKyAgICAg ICAgZXhpc3Rpbmdfc2VydmVyX2lkID0gb3BlbihwaWNrbGVfcGF0aCwgJ3Ji JykKKyAgICAgICAgdG9sX3NlcnZlcl9pZCA9IHBpY2tsZS5sb2FkKGV4aXN0 aW5nX3NlcnZlcl9pZCkKKyAgICAgICAgcGlja2xlX2lkX2RpY3QgPSB0b2xf c2VydmVyX2lkCisgICAgaWYgJ3RpZCcgaW4gcGlja2xlX2lkX2RpY3Q6Cisg ICAgICAgIGlmIHBpY2tsZV9pZF9kaWN0Wyd0aWQnXToKKyAgICAgICAgICAg ICMgQWRkIHRoZSBkYl9pZCBhcyB2YWx1ZSBpbiBkaWN0CisgICAgICAgICAg ICBwaWNrbGVfaWRfZGljdFsidGlkIl1bMF0udXBkYXRlKAorICAgICAgICAg ICAgICAgIHtpbnQoc2VydmVyX2lkKTogdGFibGVfaWR9KQorICAgICAgICBl bHNlOgorICAgICAgICAgICAgIyBDcmVhdGUgbmV3IGRpY3Qgd2l0aCBzZXJ2 ZXJfaWQgYW5kIGRiX2lkCisgICAgICAgICAgICBwaWNrbGVfaWRfZGljdFsi dGlkIl0uYXBwZW5kKAorICAgICAgICAgICAgICAgIHtpbnQoc2VydmVyX2lk KTogdGFibGVfaWR9KQorICAgIGRiX291dHB1dCA9IG9wZW4ocGlja2xlX3Bh dGgsICd3YicpCisgICAgcGlja2xlLmR1bXAocGlja2xlX2lkX2RpY3QsIGRi X291dHB1dCkKKyAgICBkYl9vdXRwdXQuY2xvc2UoKQorCisKK2RlZiBhZGRf dGFibGVzKHRlc3Rlciwgc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UpOgorICAg IGFsbF9pZCA9IHV0aWxzLmdldF9pZHMoKQorICAgIHNlcnZlcl9pZHNfZGlj dCA9IGFsbF9pZFsic2lkIl0KKyAgICBkYl9pZHNfZGljdCA9IGFsbF9pZFsi ZGlkIl1bMF0KKyAgICBzY2hlbWFfaWRzX2RpY3QgPSBhbGxfaWRbInNjaWQi XVswXQorICAgIHRhYmxlc3BhY2VfaWRzX2RpY3QgPSBOb25lCisgICAgaWYg InRzaWQiIGluIGFsbF9pZCBhbmQgYWxsX2lkWyJ0c2lkIl06CisgICAgICAg IHRhYmxlc3BhY2VfaWRzX2RpY3QgPSBhbGxfaWRbInRzaWQiXVswXQorCisg ICAgZm9yIHNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLCBzZXJ2ZXJfaWQgaW4g emlwKHNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWRz X2RpY3QpOgorICAgICAgICAjIFZlcmlmeSBzZXJ2ZXIKKyAgICAgICAgc2Vy dmVyX3Jlc3BvbnNlID0gc2VydmVyX3V0aWxzLnZlcmlmeV9zZXJ2ZXIodGVz dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VydmVyX2lkKQorICAgICAgICBpZiBzZXJ2ZXJfcmVzcG9uc2VbJ2Rh dGEnXVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICBkYl9pZCA9IGRiX2lk c19kaWN0W2ludChzZXJ2ZXJfaWQpXQorICAgICAgICAgICAgIyBWZXJpZnkg ZGF0YWJhc2UKKyAgICAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxz LnZlcmlmeV9kYXRhYmFzZSh0ZXN0ZXIsIHV0aWxzLlNFUlZFUl9HUk9VUCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lkKQorICAgICAgICAgICAgaWYgZGJf Y29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgICAgIHNj aGVtYV9pZCA9IHNjaGVtYV9pZHNfZGljdFtpbnQoc2VydmVyX2lkKV1bMF0K KyAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSA9IHNjaGVtYV9pZHNfZGlj dFtpbnQoc2VydmVyX2lkKV1bMV0KKyAgICAgICAgICAgICAgICAjIFZlcmlm eSBzY2hlbWEKKyAgICAgICAgICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBz Y2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXModGVzdGVyLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz Y2hlbWFfaWQpCisgICAgICAgICAgICAgICAgaWYgc2NoZW1hX3Jlc3BvbnNl LnN0YXR1c19jb2RlID09IDIwMDoKKyAgICAgICAgICAgICAgICAgICAgdGFi bGVzcGFjZV9uYW1lID0gdGFibGVzcGFjZV9pZHNfZGljdFtpbnQoc2VydmVy X2lkKV1bMV0KKyAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldF90YWJs ZXNfY29uZmlnX2RhdGEoc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNjaGVtYV9uYW1lLCB0YWJsZXNwYWNlX25hbWUpCisgICAgICAgICAgICAg ICAgICAgICMgQWRkIHRhYmxlCisgICAgICAgICAgICAgICAgICAgIHJlc3Bv bnNlID0gdGVzdGVyLnBvc3QoCisgICAgICAgICAgICAgICAgICAgICAgICBU QUJMRVNfVVJMICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwor ICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycg KyBzdHIoZGJfaWQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICcvJyAr IHN0cihzY2hlbWFfaWQpICsgJy8nLAorICAgICAgICAgICAgICAgICAgICAg ICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgICAgICAg ICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAgICAgICAgICAg ICAgICAgICBhc3NlcnQgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgPT0gMjAwCisg ICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRz KHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQorICAgICAgICAgICAg ICAgICAgICB3cml0ZV90YWJsZXNfaWQocmVzcG9uc2VfZGF0YSwgc2VydmVy X2lkKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigiRXJyb3Igd2hpbGUgdmVyaWZ5aW5nIHNj aGVtYSB3aXRoIGlkOiAlcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICUgc2NoZW1hX2lkKQorICAgICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkVycm9yIHdoaWxlIGNv bm5lY3RpbmcgZGF0YWJhc2Ugd2l0aCBpZDogJXMiCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICUgZGJfaWQpCisgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkVycm9yIHdoaWxlIGNvbm5l Y3Rpbmcgc2VydmVyIHdpdGggaWQ6ICVzIgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICUgc2VydmVyX2lkKQorCisKK2RlZiB2ZXJpZnlfdGFibGUo dGVzdGVyLCBzZXJ2ZXJfaWQsIGRiX2lkLCBzY2hlbWFfaWQsIHRhYmxlX2lk KToKKyAgICBnZXRfcmVzcG9uc2UgPSB0ZXN0ZXIuZ2V0KFRBQkxFU19VUkwg KyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHIoc2VydmVyX2lkKSArICcvJyArCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoZGJfaWQpICsgJy8n ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzY2hlbWFf aWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cih0YWJsZV9pZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b250ZW50X3R5cGU9J2h0bWwvanNvbicpCisgICAgcmV0dXJuIGdldF9yZXNw b25zZQorCisKK2RlZiBkZWxldGVfdGFibGVzKHRlc3Rlcik6CisgICAgYWxs X2lkID0gdXRpbHMuZ2V0X2lkcygpCisgICAgc2VydmVyX2lkc19kaWN0ID0g YWxsX2lkWyJzaWQiXQorICAgIGRiX2lkc19kaWN0ID0gYWxsX2lkWyJkaWQi XVswXQorICAgIHNjaGVtYV9pZHNfZGljdCA9IGFsbF9pZFsic2NpZCJdWzBd CisgICAgdGFibGVfaWRzX2RpY3QgPSBhbGxfaWRbInRpZCJdWzBdCisKKyAg ICBmb3Igc2VydmVyX2lkIGluIHNlcnZlcl9pZHNfZGljdDoKKyAgICAgICAg IyBWZXJpZnkgc2VydmVyCisgICAgICAgIHNlcnZlcl9yZXNwb25zZSA9IHNl cnZlcl91dGlscy52ZXJpZnlfc2VydmVyKHRlc3RlciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry KHV0aWxzLlNFUlZFUl9HUk9VUCksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCkKKyAg ICAgICAgaWYgc2VydmVyX3Jlc3BvbnNlWydkYXRhJ11bJ2Nvbm5lY3RlZCdd OgorICAgICAgICAgICAgZGJfaWQgPSBkYl9pZHNfZGljdFtpbnQoc2VydmVy X2lkKV0KKyAgICAgICAgICAgICMgVmVyaWZ5IGRhdGFiYXNlCisgICAgICAg ICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy52ZXJpZnlfZGF0YWJhc2Uo dGVzdGVyLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lk LCBkYl9pZCkKKyAgICAgICAgICAgIGlmIGRiX2NvblsnZGF0YSddWydjb25u ZWN0ZWQnXToKKyAgICAgICAgICAgICAgICBzY2hlbWFfaWQgPSBzY2hlbWFf aWRzX2RpY3RbaW50KHNlcnZlcl9pZCldWzBdCisgICAgICAgICAgICAgICAg IyBWZXJpZnkgc2NoZW1hCisgICAgICAgICAgICAgICAgc2NoZW1hX3Jlc3Bv bnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHRlc3RlciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2NoZW1hX2lkKQorICAgICAgICAgICAgICAgIGlmIHNjaGVtYV9y ZXNwb25zZS5zdGF0dXNfY29kZSA9PSAyMDA6CisgICAgICAgICAgICAgICAg ICAgIHRhYmxlX2lkID0gdGFibGVfaWRzX2RpY3RbaW50KHNlcnZlcl9pZCld CisgICAgICAgICAgICAgICAgICAgICMgVmVyaWZ5IHRhYmxlCisgICAgICAg ICAgICAgICAgICAgIHRhYmxlX3Jlc3BvbnNlID0gdmVyaWZ5X3RhYmxlKHRl c3Rlciwgc2VydmVyX2lkLCBkYl9pZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX2lkLCB0YWJs ZV9pZCkKKyAgICAgICAgICAgICAgICAgICAgaWYgdGFibGVfcmVzcG9uc2Uu c3RhdHVzX2NvZGUgPT0gMjAwOgorICAgICAgICAgICAgICAgICAgICAgICAg IyBEZWxldGUgdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlbF9y ZXNwb25zZSA9IHRlc3Rlci5kZWxldGUoCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJy9icm93c2VyL3RhYmxlL2RlbGV0ZS8nICsgc3RyKHV0aWxz LlNFUlZFUl9HUk9VUCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICcvJyArIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHIoZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHIoc2NoZW1hX2lkKSArICcvJyArCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHRhYmxlX2lkKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUp CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlbF9yZXNwZGF0YSA9IGpz b24ubG9hZHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsX3Jl c3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQorICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0IGRlbF9yZXNwZGF0YVsnc3VjY2VzcyddID09IDEK KyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAg ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiRXJyb3Igd2hpbGUgdmVyaWZ5aW5n IHRhYmxlIikKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkVycm9yIHdoaWxlIHZlcmlmeWlu ZyBzY2hlbWEgd2l0aCBpZDogJXMiCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAlIHNjaGVtYV9pZCkKKyAgICAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJFcnJvciB3aGls ZSBjb25uZWN0aW5nIGRhdGFiYXNlIHdpdGggaWQ6ICVzIgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAlIGRiX2lkKQorICAgICAgICBlbHNl OgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJFcnJvciB3aGlsZSBj b25uZWN0aW5nIHNlcnZlciB3aXRoIGlkOiAlcyIKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAlIHNlcnZlcl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3Rlc3RzL3Rlc3Rfc2NoZW1hX3B1dC5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3Rlc3RzL3Rlc3Rfc2NoZW1hX3B1dC5weQppbmRleCBkM2Q0YmZk Li45NjdiNjE0IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZXN0cy90 ZXN0X3NjaGVtYV9wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVzdHMv dGVzdF9zY2hlbWFfcHV0LnB5CkBAIC05NCw4ICs5NCw2IEBAIGNsYXNzIFNj aGVtYVB1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAg ICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLCBmb2xsb3dfcmVk aXJlY3RzPVRydWUpCiAKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVx dWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLSAgICAgICAg ICAgICAgICByZXNwb25zZV9kYXRhID0ganNvbi5sb2FkcyhwdXRfcmVzcG9u c2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCi0gICAgICAgICAgICAgICAgc2Vs Zi5hc3NlcnRUcnVlKHJlc3BvbnNlX2RhdGFbJ3N1Y2Nlc3MnXSwgMSkKIAog ICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9hZGQucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvdGVzdHMvdGVzdF9kYl9hZGQucHkKaW5kZXggNDkwZTdkOS4uMzA5 NzJlNSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfYWRkLnB5 CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2FkZC5weQpAQCAtNDEsNyAr NDEsNyBAQCBjbGFzcyBEYXRhYmFzZUFkZFRlc3RDYXNlKEJhc2VUZXN0R2Vu ZXJhdG9yKToKICAgICAgICAgICAgIHNlcnZlcl91dGlscy5jb25uZWN0X3Nl cnZlcihjbHMudGVzdGVyKQogCiAgICAgICAgIGlmIGxlbihjbHMuc2VydmVy X2Nvbm5lY3RfcmVzcG9uc2UpID09IDA6Ci0gICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIk5vIFNlcnZlcihzKSBjb25uZWN0ZWQgdG8gYWRkIHRoZSBk YXRhYmFzZSEhISIpCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5v IFNlcnZlcihzKSBjb25uZWN0ZWQgdG8gYWRkIHRoZSBkYXRhYmFzZS4iKQog CiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAgICAgICAgICIiIiBUaGlzIGZ1 bmN0aW9uIHdpbGwgYWRkIGRhdGFiYXNlIHVuZGVyIDFzdCBzZXJ2ZXIgb2Yg dHJlZSBub2RlLiAiIiIKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy91dGls cy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy90ZXN0cy91dGlscy5weQppbmRleCAzN2E5NWJhLi5j ODJhZjk5IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdXRpbHMucHkKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3Rlc3RzL3V0aWxzLnB5CkBAIC0xNiw3ICsxNiw2IEBAIGZy b20gcmVncmVzc2lvbi50ZXN0X3NldHVwIGltcG9ydCBwaWNrbGVfcGF0aCwg YWR2YW5jZWRfY29uZmlnX2RhdGEKIGZyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgc2Vy dmVyX3V0aWxzCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMg YXMgdXRpbHMKIAotCiBEQVRBQkFTRV9VUkwgPSAnL2Jyb3dzZXIvZGF0YWJh c2Uvb2JqLycKIERBVEFCQVNFX0NPTk5FQ1RfVVJMID0gJ2Jyb3dzZXIvZGF0 YWJhc2UvY29ubmVjdC8nCiAKQEAgLTEwNCwxMiArMTAzLDE0IEBAIGRlZiBh ZGRfZGF0YWJhc2UodGVzdGVyLCBzZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSwg c2VydmVyX2lkcyk6CiAgICAgICAgIGlmIHNlcnZlcl9jb25uZWN0WydkYXRh J11bJ2Nvbm5lY3RlZCddOgogICAgICAgICAgICAgZGF0YSA9IGdldF9kYl9k YXRhKHNlcnZlcl9jb25uZWN0KQogICAgICAgICAgICAgZGJfcmVzcG9uc2Ug PSB0ZXN0ZXIucG9zdChEQVRBQkFTRV9VUkwgKyBzdHIodXRpbHMuU0VSVkVS X0dST1VQKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIi8iICsgc2VydmVyX2lkICsgIi8iLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1w cyhkYXRhKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvIiArIHNlcnZlcl9pZCAr ICIvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCiAg ICAgICAgICAgICBhc3NlcnQgZGJfcmVzcG9uc2Uuc3RhdHVzX2NvZGUgPT0g MjAwCiAgICAgICAgICAgICByZXNwb25zZV9kYXRhID0ganNvbi5sb2Fkcyhk Yl9yZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKICAgICAgICAgICAg IHdyaXRlX2RiX2lkKHJlc3BvbnNlX2RhdGEpCisgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkVycm9yIGluIGNvbm5lY3Rp bmcgc2VydmVyLi4iKQogCiAKIGRlZiB2ZXJpZnlfZGF0YWJhc2UodGVzdGVy LCBzZXJ2ZXJfZ3JvdXAsIHNlcnZlcl9pZCwgZGJfaWQpOgpAQCAtMTU4LDE5 ICsxNTksMjQgQEAgZGVmIGRlbGV0ZV9kYXRhYmFzZSh0ZXN0ZXIpOgogICAg ICAgICBpZiBhbGxfaWRbJ2RpZCddOgogICAgICAgICAgICAgZGJfaWRzX2Rp Y3QgPSBhbGxfaWRbJ2RpZCddWzBdCiAgICAgZWxzZToKLSAgICAgICAgcmFp c2UgRXhjZXB0aW9uKCJLZXlzIGFyZSBub3QgZm91bmQgaW4gcGlja2xlIGRp Y3Q6IHt9Ii5mb3JtYXQoWyJzaWQiLCAiZGlkIl0pKQorICAgICAgICByYWlz ZSBFeGNlcHRpb24oCisgICAgICAgICAgICAiS2V5cyBhcmUgbm90IGZvdW5k IGluIHBpY2tsZSBkaWN0OiB7fSIuZm9ybWF0KFsic2lkIiwgImRpZCJdKSkK IAogICAgIGlmIHNlcnZlcl9pZHMgYW5kIGRiX2lkc19kaWN0IGlzIG5vdCBO b25lOgogICAgICAgICBmb3Igc2VydmVyX2lkIGluIHNlcnZlcl9pZHM6Ci0g ICAgICAgICAgICBzZXJ2ZXJfcmVzcG9uc2UgPSBzZXJ2ZXJfdXRpbHMudmVy aWZ5X3NlcnZlcih0ZXN0ZXIsIHV0aWxzLlNFUlZFUl9HUk9VUCwgc2VydmVy X2lkKQorICAgICAgICAgICAgc2VydmVyX3Jlc3BvbnNlID0gc2VydmVyX3V0 aWxzLnZlcmlmeV9zZXJ2ZXIodGVzdGVyLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMu U0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkKQogICAgICAg ICAgICAgaWYgc2VydmVyX3Jlc3BvbnNlWyJkYXRhIl1bImNvbm5lY3RlZCJd OgogICAgICAgICAgICAgICAgIGRiX2lkID0gZGJfaWRzX2RpY3RbaW50KHNl cnZlcl9pZCldCi0gICAgICAgICAgICAgICAgcmVzcG9uc2UgPSB0ZXN0ZXIu ZGVsZXRlKERBVEFCQVNFX1VSTCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVAp ICsgJy8nICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQpLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3df cmVkaXJlY3RzPVRydWUpCisKKyAgICAgICAgICAgICAgICByZXNwb25zZSA9 IHRlc3Rlci5kZWxldGUoCisgICAgICAgICAgICAgICAgICAgIERBVEFCQVNF X1VSTCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAg ICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJf aWQpLAorICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRy dWUpCiAgICAgICAgICAgICAgICAgYXNzZXJ0IHJlc3BvbnNlLnN0YXR1c19j b2RlID09IDIwMAogICAgICAgICAgICAgICAgIHJlc3BvbnNlX2RhdGEgPSBq c29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQogICAg ICAgICAgICAgICAgIGFzc2VydCByZXNwb25zZV9kYXRhWydzdWNjZXNzJ10g PT0gMQorCiAgICAgZWxzZToKICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJO byBzZXJ2ZXJzL2RhdGFiYXNlcyBmb3VuZC4iKQotCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJs ZXNwYWNlcy90ZXN0cy90ZXN0X3Ric3BjX2dldC5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rl c3RzL3Rlc3RfdGJzcGNfZ2V0LnB5CmluZGV4IGIyNmQ3MWQuLjNiOGE3MGYg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3Rlc3RfdGJzcGNfZ2V0LnB5 CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3Rlc3RfdGJzcGNfZ2V0LnB5CkBAIC01 NSw3ICs1NSw3IEBAIGNsYXNzIFRhYmxlc3BhY2VHZXRUZXN0Q2FzZShCYXNl VGVzdEdlbmVyYXRvcik6CiAKICAgICAgICAgaWYgdGFibGVzcGFjZV9pZHNf ZGljdDoKICAgICAgICAgICAgIGZvciBzZXJ2ZXJfaWQgaW4gc2VydmVyX2lk czoKLSAgICAgICAgICAgICAgICB0YWJsZXNwYWNlX2lkID0gdGFibGVzcGFj ZV9pZHNfZGljdFtpbnQoc2VydmVyX2lkKV0KKyAgICAgICAgICAgICAgICB0 YWJsZXNwYWNlX2lkID0gdGFibGVzcGFjZV9pZHNfZGljdFtpbnQoc2VydmVy X2lkKV1bMF0KICAgICAgICAgICAgICAgICBzZXJ2ZXJfcmVzcG9uc2UgPSBz ZXJ2ZXJfdXRpbHMudmVyaWZ5X3NlcnZlcihzZWxmLnRlc3RlciwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VydmVyX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdGVz dF90YnNwY19wdXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZXN0cy90ZXN0X3Ric3BjX3B1 dC5weQppbmRleCAyMjI1N2Y5Li5hNzQyZWUyIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNw YWNlcy90ZXN0cy90ZXN0X3Ric3BjX3B1dC5weQorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90 ZXN0cy90ZXN0X3Ric3BjX3B1dC5weQpAQCAtNTgsNyArNTgsNyBAQCBjbGFz cyBUYWJsZVNwYWNlVXBkYXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3Ip OgogCiAgICAgICAgIGlmIHRhYmxlc3BhY2VfaWRzX2RpY3Q6CiAgICAgICAg ICAgICBmb3Igc2VydmVyX2lkIGluIHNlcnZlcl9pZHM6Ci0gICAgICAgICAg ICAgICAgdGFibGVzcGFjZV9pZCA9IHRhYmxlc3BhY2VfaWRzX2RpY3RbaW50 KHNlcnZlcl9pZCldCisgICAgICAgICAgICAgICAgdGFibGVzcGFjZV9pZCA9 IHRhYmxlc3BhY2VfaWRzX2RpY3RbaW50KHNlcnZlcl9pZCldWzBdCiAgICAg ICAgICAgICAgICAgdGFibGVzcGFjZV9yZXNwb25zZSA9IHRhYmxlc3BhY2Vf dXRpbHMudmVyaWZ5X3RhYmxlX3NwYWNlKAogICAgICAgICAgICAgICAgICAg ICBzZWxmLnRlc3RlciwKICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VS VkVSX0dST1VQLCBzZXJ2ZXJfaWQsCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90 ZXN0cy91dGlscy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3V0aWxzLnB5CmluZGV4 IDRmZDIxYmQuLjZjYWM3ZWUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3Rz L3V0aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3V0aWxzLnB5CkBAIC00 Niw3ICs0Niw3IEBAIGRlZiBnZXRfdGFibGVzcGFjZV9kYXRhKHNlcnZlcl9j b25uZWN0KToKIAogICAgIGlmIGFkdl9jb25maWdfZGF0YSBpcyBub3QgTm9u ZToKICAgICAgICAgZGF0YSA9IHsKLSAgICAgICAgICAgICJuYW1lIjogc3Ry KHV1aWQudXVpZDQoKSlbMTo4XSwKKyAgICAgICAgICAgICJuYW1lIjogInRl c3Rfe30iLmZvcm1hdChzdHIodXVpZC51dWlkNCgpKVsxOjhdKSwKICAgICAg ICAgICAgICJzZWNsYWJlbHMiOiBhZHZfY29uZmlnX2RhdGFbInNwY19zZWNs YWJsZSJdLAogICAgICAgICAgICAgInNwY2FjbCI6IGFkdl9jb25maWdfZGF0 YVsic3BjX2FjbCJdLAogICAgICAgICAgICAgInNwY2xvY2F0aW9uIjogYWR2 X2NvbmZpZ19kYXRhWyJzcGNfbG9jYXRpb24iXSwKQEAgLTU2LDEyICs1Niwx NCBAQCBkZWYgZ2V0X3RhYmxlc3BhY2VfZGF0YShzZXJ2ZXJfY29ubmVjdCk6 CiAgICAgcmV0dXJuIGRhdGEKIAogCi1kZWYgd3JpdGVfdGFibGVzcGFjZV9p ZChyZXNwb25zZV9kYXRhKToKK2RlZiB3cml0ZV90YWJsZXNwYWNlX2luZm8o cmVzcG9uc2VfZGF0YSwgdGFibGVzcGFjZV9uYW1lKToKICAgICAiIiIKICAg ICBUaGlzIGZ1bmN0aW9uIHdyaXRlIHRoZSB0YWJsZSBzcGFjZSBpZCB0byBw YXJlbnRfaWQucGtsCiAKICAgICA6cGFyYW0gcmVzcG9uc2VfZGF0YTogY3Jl YXRlIHRhYmxlIHNwYWNlIEFQSSByZXNwb25zZSBkYXRhCiAgICAgOnR5cGUg cmVzcG9uc2VfZGF0YTogZGljdAorICAgIDpwYXJhbSB0YWJsZXNwYWNlX25h bWU6IHRhYmxlc3BhY2UgbmFtZQorICAgIDp0eXBlIHRhYmxlc3BhY2VfbmFt ZTogc3RyCiAgICAgOnJldHVybjogTm9uZQogICAgICIiIgogCkBAIC03Niwx MSArNzgsMTEgQEAgZGVmIHdyaXRlX3RhYmxlc3BhY2VfaWQocmVzcG9uc2Vf ZGF0YSk6CiAgICAgICAgIGlmIHBpY2tsZV9pZF9kaWN0Wyd0c2lkJ106CiAg ICAgICAgICAgICAjIEFkZCB0aGUgZGJfaWQgYXMgdmFsdWUgaW4gZGljdAog ICAgICAgICAgICAgcGlja2xlX2lkX2RpY3RbInRzaWQiXVswXS51cGRhdGUo Ci0gICAgICAgICAgICAgICAge3NlcnZlcl9pZDogdGFibGVfc3BhY2VfaWR9 KQorICAgICAgICAgICAgICAgIHtzZXJ2ZXJfaWQ6IFt0YWJsZV9zcGFjZV9p ZCwgdGFibGVzcGFjZV9uYW1lXX0pCiAgICAgICAgIGVsc2U6CiAgICAgICAg ICAgICAjIENyZWF0ZSBuZXcgZGljdCB3aXRoIHNlcnZlcl9pZCBhbmQgZGJf aWQKICAgICAgICAgICAgIHBpY2tsZV9pZF9kaWN0WyJ0c2lkIl0uYXBwZW5k KAotICAgICAgICAgICAgICAgIHtzZXJ2ZXJfaWQ6IHRhYmxlX3NwYWNlX2lk fSkKKyAgICAgICAgICAgICAgICB7c2VydmVyX2lkOiBbdGFibGVfc3BhY2Vf aWQsIHRhYmxlc3BhY2VfbmFtZV19KQogICAgIGRiX291dHB1dCA9IG9wZW4o cGlja2xlX3BhdGgsICd3YicpCiAgICAgcGlja2xlLmR1bXAocGlja2xlX2lk X2RpY3QsIGRiX291dHB1dCkKICAgICBkYl9vdXRwdXQuY2xvc2UoKQpAQCAt MTI1LDEzICsxMjcsMTkgQEAgZGVmIGFkZF90YWJsZV9zcGFjZSh0ZXN0ZXIs IHNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLCBzZXJ2ZXJfZ3JvdXAsIHNlcnZl cl9pZHMpOgogCiAgICAgICAgIGlmIHNlcnZlcl9jb25uZWN0WydkYXRhJ11b J2Nvbm5lY3RlZCddOgogICAgICAgICAgICAgZGF0YSA9IGdldF90YWJsZXNw YWNlX2RhdGEoc2VydmVyX2Nvbm5lY3QpCisgICAgICAgICAgICB0YWJsZXNw YWNlX25hbWUgPSAnJworICAgICAgICAgICAgaWYgJ25hbWUnIGluIGRhdGE6 CisgICAgICAgICAgICAgICAgdGFibGVzcGFjZV9uYW1lID0gZGF0YVsnbmFt ZSddCiAgICAgICAgICAgICByZXNwb25zZSA9IHRlc3Rlci5wb3N0KFRBQkxF X1NQQUNFX1VSTCArIHN0cihzZXJ2ZXJfZ3JvdXApICsgJy8nCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc2VydmVyX2lkICsgJy8n LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWpz b24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKICAgICAgICAgICAg IGFzc2VydCByZXNwb25zZS5zdGF0dXNfY29kZSA9PSAyMDAKICAgICAgICAg ICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEu ZGVjb2RlKCd1dGYtOCcpKQotICAgICAgICAgICAgd3JpdGVfdGFibGVzcGFj ZV9pZChyZXNwb25zZV9kYXRhKQorICAgICAgICAgICAgd3JpdGVfdGFibGVz cGFjZV9pbmZvKHJlc3BvbnNlX2RhdGEsIHRhYmxlc3BhY2VfbmFtZSkKKyAg ICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiRXJy b3Igd2hpbGUgY29ubmVjdGluZyBzZXJ2ZXIgd2l0aCBpZDogJXMiCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJSBzZXJ2ZXJfaWQpCiAKIAogZGVm IHZlcmlmeV90YWJsZV9zcGFjZSh0ZXN0ZXIsIHNlcnZlcl9ncm91cCwgc2Vy dmVyX2lkLCB0YWJsZXNwYWNlX2lkKToKQEAgLTE3MywxNCArMTgxLDEyIEBA IGRlZiBkZWxldGVfdGFibGVfc3BhY2UodGVzdGVyKToKIAogICAgIGFsbF9p ZCA9IHV0aWxzLmdldF9pZHMoKQogICAgIHNlcnZlcl9pZHMgPSBhbGxfaWRb InNpZCJdCisgICAgdGFibGVzcGFjZV9pZHNfZGljdCA9IE5vbmUKICAgICBp ZiAidHNpZCIgaW4gYWxsX2lkIGFuZCBhbGxfaWRbInRzaWQiXToKICAgICAg ICAgdGFibGVzcGFjZV9pZHNfZGljdCA9IGFsbF9pZFsidHNpZCJdWzBdCi0g ICAgZWxzZToKLSAgICAgICAgdGFibGVzcGFjZV9pZHNfZGljdCA9IE5vbmUK LQogICAgIGlmIHRhYmxlc3BhY2VfaWRzX2RpY3QgaXMgbm90IE5vbmU6CiAg ICAgICAgIGZvciBzZXJ2ZXJfaWQgaW4gc2VydmVyX2lkczoKLSAgICAgICAg ICAgIHRhYmxlc3BhY2VfaWQgPSB0YWJsZXNwYWNlX2lkc19kaWN0W2ludChz ZXJ2ZXJfaWQpXQorICAgICAgICAgICAgdGFibGVzcGFjZV9pZCA9IHRhYmxl c3BhY2VfaWRzX2RpY3RbaW50KHNlcnZlcl9pZCldWzBdCiAgICAgICAgICAg ICByb2xlX3Jlc3BvbnNlID0gdmVyaWZ5X3RhYmxlX3NwYWNlKHRlc3Rlciwg dXRpbHMuU0VSVkVSX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlc3Bh Y2VfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9wdXQucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0 cy90ZXN0X3NlcnZlcl9wdXQucHkKaW5kZXggOWFjNjQ2OC4uZmU5MTI5OSAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfcHV0LnB5CisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rl c3Rfc2VydmVyX3B1dC5weQpAQCAtNjEsOSArNjEsNiBAQCBjbGFzcyBTZXJ2 ZXJVcGRhdGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAg ICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQogICAgICAgICAg ICAgc2VsZi5hc3NlcnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2Rl LCAyMDApCiAKLSAgICAgICAgICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxv YWRzKHB1dF9yZXNwb25zZS5kYXRhLmRlY29kZSgpKQotICAgICAgICAgICAg c2VsZi5hc3NlcnRUcnVlKHJlc3BvbnNlX2RhdGFbJ3N1Y2Nlc3MnXSwgMSkK LQogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNs cyk6CiAgICAgICAgICIiIgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdXRpbHMucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0 cy91dGlscy5weQppbmRleCA2ZTNmMTY2Li42ZGM3YTlmIDEwMDY0NAotLS0g YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90 ZXN0cy91dGlscy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy90ZXN0cy91dGlscy5weQpAQCAtODQsOCArODQs NiBAQCBkZWYgY29ubmVjdF9zZXJ2ZXIodGVzdGVyKToKIAogICAgIDpwYXJh bSB0ZXN0ZXI6dGVzdCBjbGllbnQgb2JqZWN0CiAgICAgOnR5cGUgdGVzdGVy OiBmbGFzayB0ZXN0IG9iamVjdAotICAgIDpwYXJhbSBhZGRfZGJfZmxhZzog ZmxhZyBmb3IgZGIgYWRkIHRlc3QgY2FzZQotICAgIDp0eXBlIGFkZF9kYl9m bGFnOiBib29sCiAgICAgOnJldHVybjogc2VydmVyX2Nvbm5lY3QsIHNlcnZl cl9ncm91cCwgc2VydmVyX2lkCiAgICAgOnJ0eXBlOiBzZXJ2ZXJfY29ubmVj dDpkaWN0LCBzZXJ2ZXJfZ3JvdXA6ZGljdCwgc2VydmVyX2lkOnN0cgogICAg ICIiIgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90 ZXN0X2NoYW5nZV9wYXNzd29yZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv dGVzdHMvdGVzdF9jaGFuZ2VfcGFzc3dvcmQucHkKaW5kZXggNWI3YzkxOC4u MmVkN2JjOCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0 cy90ZXN0X2NoYW5nZV9wYXNzd29yZC5weQorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3Rlc3RzL3Rlc3RfY2hhbmdlX3Bhc3N3b3JkLnB5CkBAIC04OCw2 ICs4OCw3IEBAIGNsYXNzIENoYW5nZVBhc3N3b3JkVGVzdENhc2UoQmFzZVRl c3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICAgIGVtYWlsPXNlbGYudXNl cm5hbWUsIG5ld1Bhc3N3b3JkPXNlbGYucGFzc3dvcmQsCiAgICAgICAgICAg ICAgICAgY29uZmlybVBhc3N3b3JkPXNlbGYucGFzc3dvcmQsIGFjdGl2ZT0x LCByb2xlPSIyIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorICAgICAgICAgICAg YXNzZXJ0IHJlc3BvbnNlLnN0YXR1c19jb2RlID09IDIwMAogICAgICAgICAg ICAgdXNlcl9pZCA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUo J3V0Zi04JykpWydpZCddCiAKICAgICAgICAgICAgICMgTG9nb3V0IHRoZSBB ZG1pbmlzdHJhdG9yIGJlZm9yZSBsb2dpbiBub3JtYWwgdXNlcgpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vdXRpbHMvcm91dGUucHkgYi93ZWIvcGdhZG1p bi91dGlscy9yb3V0ZS5weQppbmRleCAwMjI2ZThkLi4zNWI5ZDk3IDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi91dGlscy9yb3V0ZS5weQorKysgYi93ZWIv cGdhZG1pbi91dGlscy9yb3V0ZS5weQpAQCAtNTYsNyArNTYsOCBAQCBjbGFz cyBUZXN0c0dlbmVyYXRvclJlZ2lzdHJ5KEFCQ01ldGEpOgogICAgICAgICBp ZiBjb25maWcuU0VSVkVSX01PREU6CiAgICAgICAgICAgICBmb3IgbW9kdWxl X25hbWUgaW4gZmluZF9tb2R1bGVzKHBrZywgRmFsc2UsIFRydWUpOgogICAg ICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgbW9kdWxl ID0gaW1wb3J0X21vZHVsZShtb2R1bGVfbmFtZSkKKyAgICAgICAgICAgICAg ICAgICAgaWYgInRlc3RzLiIgaW4gc3RyKG1vZHVsZV9uYW1lKToKKyAgICAg ICAgICAgICAgICAgICAgICAgIG1vZHVsZSA9IGltcG9ydF9tb2R1bGUobW9k dWxlX25hbWUpCiAgICAgICAgICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9y OgogICAgICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgIGVsc2U6CmRp ZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9ydW50ZXN0cy5weSBiL3dlYi9y ZWdyZXNzaW9uL3J1bnRlc3RzLnB5CmluZGV4IGQxMWE3OTQuLjdjMmM4OWEg MTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL3J1bnRlc3RzLnB5CisrKyBi L3dlYi9yZWdyZXNzaW9uL3J1bnRlc3RzLnB5CkBAIC0zMiw3ICszMiw4IEBA IGltcG9ydCBjb25maWcKICMgR2V0IHRoZSBjb25maWcgZGF0YWJhc2Ugc2No ZW1hIHZlcnNpb24uIFdlIHN0b3JlIHRoaXMgaW4gcGdhZG1pbi5tb2RlbAog IyBhcyBpdCB0dXJucyBvdXQgdGhhdCBwdXR0aW5nIGl0IGluIHRoZSBjb25m aWcgZmlsZXMgaXNuJ3QgYSBncmVhdCBpZGVhCiBmcm9tIHBnYWRtaW4ubW9k ZWwgaW1wb3J0IFNDSEVNQV9WRVJTSU9OCi1mcm9tIHRlc3RfdXRpbHMgaW1w b3J0IGxvZ2luX3Rlc3Rlcl9hY2NvdW50LCBsb2dvdXRfdGVzdGVyX2FjY291 bnQKK2Zyb20gdGVzdF91dGlscyBpbXBvcnQgbG9naW5fdGVzdGVyX2FjY291 bnQsIGxvZ291dF90ZXN0ZXJfYWNjb3VudCwgXAorICAgIGRyb3Bfb2JqZWN0 cwogCiBjb25maWcuU0VUVElOR1NfU0NIRU1BX1ZFUlNJT04gPSBTQ0hFTUFf VkVSU0lPTgogCkBAIC0xNDgsNiArMTQ5LDkgQEAgaWYgX19uYW1lX18gPT0g J19fbWFpbl9fJzoKICAgICB0ZXN0cyA9IHVuaXR0ZXN0LlRleHRUZXN0UnVu bmVyKHN0cmVhbT1zeXMuc3RkZXJyLCBkZXNjcmlwdGlvbnM9VHJ1ZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmJvc2l0eT0y KS5ydW4oc3VpdGUpCiAKKyAgICAjIERyb3AgYWxsIG9iamVjdHMgd2hpY2gg YXJlIGNyZWF0ZWQgZm9yIHRlc3RpbmcKKyAgICBkcm9wX29iamVjdHModGVz dF9jbGllbnQpCisKICAgICAjIExvZ291dCB0aGUgdGVzdCBjbGllbnQKICAg ICBsb2dvdXRfdGVzdGVyX2FjY291bnQodGVzdF9jbGllbnQpCiAKZGlmZiAt LWdpdCBhL3dlYi9yZWdyZXNzaW9uL3Rlc3RfYWR2YW5jZWRfY29uZmlnLmpz b24uaW4gYi93ZWIvcmVncmVzc2lvbi90ZXN0X2FkdmFuY2VkX2NvbmZpZy5q c29uLmluCmluZGV4IGIzMzljOTIuLmU3Mzc2MTAgMTAwNjQ0Ci0tLSBhL3dl Yi9yZWdyZXNzaW9uL3Rlc3RfYWR2YW5jZWRfY29uZmlnLmpzb24uaW4KKysr IGIvd2ViL3JlZ3Jlc3Npb24vdGVzdF9hZHZhbmNlZF9jb25maWcuanNvbi5p bgpAQCAtMTQwLDEwICsxNDAsMTAgQEAKICAgICAic3BjX29wdHMiOiBbXSwK ICAgICAic3BjX3VzZXIiOiAicG9zdGdyZXMiCiAgIH1dLAotCi0gICAgInRi c3BjX3VwZGF0ZV9kYXRhIjogeworICAidGJzcGNfdXBkYXRlX2RhdGEiOiB7 CiAgICAgImNvbW1lbnQiOiAiVGhpcyBpcyB0YWJsZXNwYWNlIHVwZGF0ZSBj b21tZW50IgogICB9LAorCiAgICJzY2hlbWFfY3JlZGVudGlhbHMiOlsKICAg ewogICAgICJmdW5jX2FjbCI6IFtdLApAQCAtMjk2LDEzICsyOTYsMTEgQEAK ICAgICAib3duZXIiOiAicG9zdGdyZXMiLAogICAgICJzY2hlbWEiOiAiIgog ICB9XSwKLQotICAgImNvbGxhdGlvbl91cGRhdGVfZGF0YSI6IHsKKyAgImNv bGxhdGlvbl91cGRhdGVfZGF0YSI6IHsKICAgICAiY29tbWVudCI6ICJUaGlz IGlzIGNvbGxhdGlvbiB1cGRhdGUgY29tbWVudCIKICAgfSwKIAotICAiY2Fz dHNfY3JlZGVudGlhbHMiOgotICBbeworICAiY2FzdHNfY3JlZGVudGlhbHMi OiBbewogICAgICJjYXN0X2NvbnRleHQiOiAiSU1QTElDSVQiLAogICAgICJl bmNvZGluZyI6ICJVVEY4IiwKICAgICAibmFtZSI6ICJtb25leS0+YmlnaW50 IiwKQEAgLTMxMCw5ICszMDgsNyBAQAogICAgICJ0YXJnZXRfdHlwZSI6ICJi aWdpbnQiLAogICAgICJvd25lciI6ICJwb3N0Z3JlcyIKICAgfV0sCi0KLSAg ImNhc3RfdXBkYXRlX2RhdGEiOgotICB7CisgICJjYXN0X3VwZGF0ZV9kYXRh IjogewogICAgICJjb21tZW50IjogIlRoaXMgaXMgY2FzdCB1cGRhdGUgY29t bWVudCIKICAgfSwKIApAQCAtMzI0LDEzICszMjAsMTEgQEAKICAgICAidmVy c2lvbiI6ICIxLjAiLAogICAgICJvd25lciI6ICJwb3N0Z3JlcyIKICAgfV0s Ci0KLSAgICJleHRlbnNpb25fdXBkYXRlX2RhdGEiOgotICB7CisgICJleHRl bnNpb25fdXBkYXRlX2RhdGEiOiB7CiAgICAgInNjaGVtYSI6ICJzY2hlbWEi CiAgIH0sCiAKLSAgICAiZmR3X2NyZWRlbnRpYWxzIjpbCisgICJmZHdfY3Jl ZGVudGlhbHMiOlsKICAgewogICAgICJhY2wiOgogICAgIFsKQEAgLTM1Mywx MyArMzQ3LDExIEBACiAgICAgInZhbGlkYXRvciI6ICJwb3N0Z3Jlc19mZHdf dmFsaWRhdG9yIiwKICAgICAibmFtZSI6ICJmZHciCiAgIH1dLAotCi0gICAg ImZkd191cGRhdGVfZGF0YSI6Ci0gIHsKKyAgImZkd191cGRhdGVfZGF0YSI6 IHsKICAgICAiY29tbWVudCI6ICJUaGlzIGlzIEZEVyB1cGRhdGUgY29tbWVu dCIKICAgfSwKIAotICAgImZzcnZfY3JlZGVudGlhbHMiOlsKKyAgImZzcnZf Y3JlZGVudGlhbHMiOlsKICAgewogICAgICJmc3J2X2FjbCI6CiAgICAgWwpA QCAtMzk0LDkgKzM4Niw3IEBACiAgICAgIm93bmVyIjogInBvc3RncmVzIiwK ICAgICAibmFtZSI6ICJmb3JlaWduX3NlcnZlcjEiCiAgIH1dLAotCi0gICJG U1JWX3VwZGF0ZV9kYXRhIjoKLSAgeworICAiRlNSVl91cGRhdGVfZGF0YSI6 IHsKICAgICAiY29tbWVudCI6ICJUaGlzIGlzIGZvcmVpZ24gc2VydmVyIHVw ZGF0ZSBjb21tZW50IgogICB9LAogCkBAIC00MTcsOSArNDA3LDcgQEAKICAg ICAgIH0KICAgICBdCiAgIH1dLAotCi0gICJ1c2VyX21hcHBpbmdfdXBkYXRl X2RhdGEiOgotICB7CisgICJ1c2VyX21hcHBpbmdfdXBkYXRlX2RhdGEiOiB7 CiAgICAgIm9wdGlvbnMiOgogICAgIHsKICAgICAgICJjaGFuZ2VkIjoKQEAg LTQzMSw4ICs0MTksNyBAQAogICAgIH0KICAgfSwKIAotICAgICAiZXZlbnRf dHJpZ2dlcl9jcmVkZW50aWFscyI6Ci0gIFt7CisgICJldmVudF90cmlnZ2Vy X2NyZWRlbnRpYWxzIjogW3sKICAgICAiZW5hYmxlIjogIk8iLAogICAgICJl dmVudF9mdW5jIjogInRlc3Rfc2NoZW1hLnRlc3RfYWJvcnRfYW55X2NvbW1h bmQiLAogICAgICJldmVudF9uYW1lIjogICJERExfQ09NTUFORF9FTkQiLApA QCAtNDQwLDU3ICs0MjcsMTk4IEBACiAgICAgIm5hbWUiOiAidGVzdF9ldmVu dF90cmciLAogICAgICJwcm92aWRlciI6IFtdCiAgIH1dLAotCi0gICAiZXZl bnRfdHJpZ2dlcl91cGRhdGVfZGF0YSI6Ci0gIHsKKyAgImV2ZW50X3RyaWdn ZXJfdXBkYXRlX2RhdGEiOnsKICAgICAiY29tbWVudCI6ICJUaGlzIGlzIGV2 ZW50IHRyaWdnZXIgdXBkYXRlIGNvbW1lbnQiCiAgIH0sCi0gIAotICAgICJz ZXF1ZW5jZV9jcmVkZW50aWFscyI6Ci0gIFt7Ci0gICAgImNhY2hlIjogIjEi LAotICAgICJjeWNsZWQiOiB0cnVlLAotICAgICJpbmNyZW1lbnQiOiAgIjEi LAotICAgICJtYXhfdmFsdWUiOiAiMTAwMDAwIiwKLSAgICAibWluX3ZhbHVl IjogIjEiLAotICAgICJuYW1lIjogInRlc3RfZW1wbm8iLAotICAgICJhY2wi OgorCisgICJzZXF1ZW5jZV9jcmVkZW50aWFscyI6IFt7CisgICJjYWNoZSI6 ICIxIiwKKyAgImN5Y2xlZCI6IHRydWUsCisgICJpbmNyZW1lbnQiOiAgIjEi LAorICAibWF4X3ZhbHVlIjogIjEwMDAwMCIsCisgICJtaW5fdmFsdWUiOiAi MSIsCisgICJuYW1lIjogInRlc3RfZW1wbm8iLAorICAiYWNsIjoKKyAgWwor ICAgIHsKKyAgICAgICJncmFudGVlIjoicG9zdGdyZXMiLAorICAgICAgImdy YW50b3IiOiJwb3N0Z3JlcyIsCisgICAgICAicHJpdmlsZWdlcyI6CisgICAg ICBbCisgICAgICAgIHsKKyAgICAgICAgICAicHJpdmlsZWdlX3R5cGUiOiJy IiwKKyAgICAgICAgICAicHJpdmlsZWdlIjp0cnVlLAorICAgICAgICAgICJ3 aXRoX2dyYW50IjpmYWxzZQorICAgICAgICB9LAorICAgICAgICB7CisgICAg ICAgICAgInByaXZpbGVnZV90eXBlIjoidyIsCisgICAgICAgICAgInByaXZp bGVnZSI6dHJ1ZSwKKyAgICAgICAgICAid2l0aF9ncmFudCI6ZmFsc2UKKyAg ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICJwcml2aWxlZ2VfdHlw ZSI6IlUiLAorICAgICAgICAgICJwcml2aWxlZ2UiOnRydWUsCisgICAgICAg ICAgIndpdGhfZ3JhbnQiOmZhbHNlCisgICAgICAgIH0KKyAgICAgIF0KKyAg ICB9CisgIF0sCisgICJzY2hlbWFfbmFtZSI6ICJ0ZXN0X3NjaGVtYSIsCisg ICJzZWN1cml0eSI6ICBbXSwKKyAgIm93bmVyIjogICJwb3N0Z3JlcyIsCisg ICJzdGFydF92YWwiOiAiMTAwIgorfV0sCisgICJzZXF1bmNlX3VwZGF0ZV9k YXRhIjogeworICAgICJjb21tZW50IjogIlRoaXMgaXMgc2VxdWVuY2UgdXBk YXRlIGNvbW1lbnQiCisgIH0sCisKKyAgImRvbWFpbl9kYXRhIjpbCisgIHsK KyAgICAic2NoZW1hIjogInRlc3Rfc2NoZW1hIiwKKyAgICAiYmFzZXR5cGUi OiAiY2hhcmFjdGVyIiwKKyAgICAiY29sbGF0aW9uIjogInBnX2NhdGFsb2cu XCJQT1NJWFwiIiwKKyAgICAiY29uc3RyYWludHMiOgogICAgIFsKICAgICAg IHsKKyAgICAgICAgImNvbm5hbWUiOiJudW0iLAorICAgICAgICAiY29udmFs aWRhdGVkIjp0cnVlCisgICAgICB9CisgICAgXSwKKyAgICAibGVuZ2h0Ijog dHJ1ZSwKKyAgICAibWF4X3ZhbHVlIjogIDIxNDc0ODM2NDcsCisgICAgIm1p bl92YWx1ZSI6IDEsCisgICAgIm5hbWUiOiAidGVzdF9kb21haW4iLAorICAg ICJvd25lciI6ICJwb3N0Z3JlcyIsCisgICAgInNlY3VyaXR5IjogW10sCisg ICAgImRlZmFsdF90eXBlIjogIjEiLAorICAgICJ0eXBlX2xlbiI6ICIxMCIK KyAgfV0sCisgICJkb21haW5fdXBkYXRlX2RhdGEiOiB7CisgICAgImNvbW1l bnQiOiAiVGhpcyBpcyBkb21haW4gdXBkYXRlIGNvbW1lbnQiCisgIH0sCisK KyAgInRhYmxlX2NyZWRlbnRpYWxzIjpbCisgIHsKKyAgICAiY29uc3RyYWlu dCI6IFtdLAorICAgICJjb2xfaW5oZXJpdCI6ICJbXSIsCisgICAgImNvbHVt bnMiOiBbCisgICAgICB7CisgICAgICAgICJuYW1lIjoiZW1wbm8iLAorICAg ICAgICAiY2x0eXBlIjoibnVtZXJpYyIsCisgICAgICAgICJhdHRhY2wiOltd LAorICAgICAgICAiaXNfcHJpbWFyeV9rZXkiOmZhbHNlLAorICAgICAgICAi YXR0b3B0aW9ucyI6W10sCisgICAgICAgICJzZWNsYWJlbHMiOltdCisgICAg ICB9LAorICAgICAgeworICAgICAgICAibmFtZSI6ImVtcG5hbWUiLAorICAg ICAgICAiY2x0eXBlIjoiY2hhcmFjdGVyW10iLAorICAgICAgICAiYXR0YWNs IjpbXSwKKyAgICAgICAgImlzX3ByaW1hcnlfa2V5IjpmYWxzZSwKKyAgICAg ICAgImF0dG9wdGlvbnMiOltdLAorICAgICAgICAic2VjbGFiZWxzIjpbXQor ICAgICAgfSwKKyAgICAgIHsibmFtZSI6IkRPSiIsCisgICAgICAgICJjbHR5 cGUiOiJkYXRlW10iLAorICAgICAgICAiYXR0YWNsIjpbXSwKKyAgICAgICAg ImlzX3ByaW1hcnlfa2V5IjpmYWxzZSwKKyAgICAgICAgImF0dG9wdGlvbnMi OltdLAorICAgICAgICAic2VjbGFiZWxzIjpbXQorICAgICAgfQorICAgIF0s CisgICAgImhhc19jb25zdHJhaW50IjogW10sCisgICAgImZpbGxmYWN0b3Ii OiAiMTEiLAorICAgICJoYXNfRksiOiBbXSwKKyAgICAiaGFzX3RvYXN0X3Ri bCI6IHRydWUsCisgICAgImxpa2VfY29uc3RyYWludCI6ICB0cnVlLAorICAg ICJsaWtlX2RlZmF1bHRfdmFsdWUiOiB0cnVlLAorICAgICJsaWtlX3JlbGF0 aW9uIjogInBnX2NhdGFsb2cucGdfdGFibGVzIiwKKyAgICAibmFtZSI6ICJl bXAiLAorICAgICJQSyI6IFtdLAorICAgICJhY2wiOiBbCisgICAgICB7CiAg ICAgICAgICJncmFudGVlIjoicG9zdGdyZXMiLAogICAgICAgICAiZ3JhbnRv ciI6InBvc3RncmVzIiwKICAgICAgICAgInByaXZpbGVnZXMiOgogICAgICAg ICBbCiAgICAgICAgICAgewotICAgICAgICAgICAgInByaXZpbGVnZV90eXBl IjoiciIsCisgICAgICAgICAgICAicHJpdmlsZWdlX3R5cGUiOiJhIiwKICAg ICAgICAgICAgICJwcml2aWxlZ2UiOnRydWUsCi0gICAgICAgICAgICAid2l0 aF9ncmFudCI6ZmFsc2UKKyAgICAgICAgICAgICJ3aXRoX2dyYW50Ijp0cnVl CiAgICAgICAgICAgfSwKICAgICAgICAgICB7Ci0gICAgICAgICAgICAicHJp dmlsZWdlX3R5cGUiOiJ3IiwKKyAgICAgICAgICAgICJwcml2aWxlZ2VfdHlw ZSI6InIiLAogICAgICAgICAgICAgInByaXZpbGVnZSI6dHJ1ZSwKICAgICAg ICAgICAgICJ3aXRoX2dyYW50IjpmYWxzZQogICAgICAgICAgIH0sCiAgICAg ICAgICAgewotICAgICAgICAgICAgInByaXZpbGVnZV90eXBlIjoiVSIsCisg ICAgICAgICAgICAicHJpdmlsZWdlX3R5cGUiOiJ3IiwKICAgICAgICAgICAg ICJwcml2aWxlZ2UiOnRydWUsCiAgICAgICAgICAgICAid2l0aF9ncmFudCI6 ZmFsc2UKICAgICAgICAgICB9CiAgICAgICAgIF0KICAgICAgIH0KICAgICBd LAotICAgICJzY2hlbWFfbmFtZSI6ICJ0ZXN0X3NjaGVtYSIsCi0gICAgInNl Y3VyaXR5IjogIFtdLAorICAgICJoYXNfb2lkIjogdHJ1ZSwKICAgICAib3du ZXIiOiAgInBvc3RncmVzIiwKLSAgICAic3RhcnRfdmFsIjogIjEwMCIKKyAg ICAic2NoZW1hIjogInRlc3Rfc2NoZW1hIiwKKyAgICAic2VjX2FjbCI6ICBb XSwKKyAgICAidGJzY3AiOiAicGdfZGVmYXVsdCIsCisgICAgInVuaXF1ZV9j b25zdHJhaW50IjogW10sCisgICAgInZhY3V1bV90YmwiOiBbCisgICAgICB7 CisgICAgICAgICJuYW1lIjoiYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxlX2Zh Y3RvciIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJuYW1lIjoiYXV0 b3ZhY3V1bV9hbmFseXplX3RocmVzaG9sZCIKKyAgICAgIH0sCisgICAgICB7 CisgICAgICAgICJuYW1lIjoiYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZSIK KyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJuYW1lIjoiYXV0b3ZhY3V1 bV92YWN1dW1fY29zdF9kZWxheSIKKyAgICAgIH0sCisgICAgICB7CisgICAg ICAgICJuYW1lIjoiYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9saW1pdCIKKyAg ICAgIH0sCisgICAgICB7CisgICAgICAgICJuYW1lIjoiYXV0b3ZhY3V1bV92 YWN1dW1fc2NhbGVfZmFjdG9yIgorICAgICAgfSwKKyAgICAgIHsKKyAgICAg ICAgIm5hbWUiOiJhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQiCisgICAg ICB9LAorICAgICAgeworICAgICAgICAibmFtZSI6ImF1dG92YWN1dW1fZnJl ZXplX21pbl9hZ2UiCisgICAgICB9LAorICAgICAgeworICAgICAgICAibmFt ZSI6ImF1dG92YWN1dW1fZnJlZXplX3RhYmxlX2FnZSIKKyAgICAgIH0KKyAg ICBdLAorICAgICJ2YWN1dW1fdG9hc3QiOiBbCisgICAgICB7CisgICAgICAg ICJuYW1lIjoiYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZSIKKyAgICAgIH0s CisgICAgICB7CisgICAgICAgICJuYW1lIjoiYXV0b3ZhY3V1bV92YWN1dW1f Y29zdF9kZWxheSIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJuYW1l IjoiYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9saW1pdCIKKyAgICAgIH0sCisg ICAgICB7CisgICAgICAgICJuYW1lIjoiYXV0b3ZhY3V1bV92YWN1dW1fc2Nh bGVfZmFjdG9yIgorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgIm5hbWUi OiJhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQiCisgICAgICB9LAorICAg ICAgeworICAgICAgICAibmFtZSI6ImF1dG92YWN1dW1fZnJlZXplX21pbl9h Z2UiCisgICAgICB9LAorICAgICAgeworICAgICAgICAibmFtZSI6ImF1dG92 YWN1dW1fZnJlZXplX3RhYmxlX2FnZSIKKyAgICAgIH0KKyAgICBdCiAgIH1d LAotCi0gICAgInNlcXVuY2VfdXBkYXRlX2RhdGEiOgotICB7Ci0gICAgImNv bW1lbnQiOiAiVGhpcyBpcyBzZXF1ZW5jZSB1cGRhdGUgY29tbWVudCIKKyAg InRhYmxlX3VwZGF0ZV9kYXRhIjogeworICAgICJjb21tZW50IjogIlRoaXMg aXMgdGFibGUgdXBkYXRlIGNvbW1lbnQiCiAgIH0KLQotCi0gfQotCi0KK30K ZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL3Rlc3RfdXRpbHMucHkgYi93 ZWIvcmVncmVzc2lvbi90ZXN0X3V0aWxzLnB5CmluZGV4IGUwNzhlYWEuLjM1 NWNlYjEgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL3Rlc3RfdXRpbHMu cHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24vdGVzdF91dGlscy5weQpAQCAtOSw2 ICs5LDcgQEAKIAogaW1wb3J0IG9zCiBpbXBvcnQgcGlja2xlCisKIGZyb20g dGVzdF9zZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEsIHBpY2tsZV9wYXRoCiAK IApAQCAtMjcsMTIgKzI4LDE0IEBAIGRlZiBnZXRfcGlja2xlX2lkX2RpY3Qo KToKICAgICAgICAgInRmbmlkIjogW10sICAjIHRyaWdnZXIgZnVuY3Rpb25z CiAgICAgICAgICJjb2lkIjogW10sICAjIGNvbGxhdGlvbgogICAgICAgICAi Y2lkIjogW10sICAjIGNhc3RzCi0gICAgICAgICJldGlkIjogW10sICMgZXZl bnRfdHJpZ2dlcgorICAgICAgICAiZXRpZCI6IFtdLCAgIyBldmVudF90cmln Z2VyCiAgICAgICAgICJlaWQiOiBbXSwgICMgZXh0ZW5zaW9uCiAgICAgICAg ICJmaWQiOiBbXSwgICMgRkRXCiAgICAgICAgICJmc2lkIjogW10sICAjIEZS UwogICAgICAgICAidW1pZCI6IFtdLCAgIyB1c2VyX21hcHBpbmcKLSAgICAg ICAgInNlaWQiOiBbXSAgIyBzZXF1ZW5jZQorICAgICAgICAic2VpZCI6IFtd LCAgIyBzZXF1ZW5jZQorICAgICAgICAiZG9pZCI6IFtdLCAgIyBEb21haW4K KyAgICAgICAgInRpZCI6IFtdICAjIHRhYmxlCiAgICAgfQogICAgIHJldHVy biBwaWNrbGVfaWRfZGljdAogCkBAIC00NywyOCArNTAsMTEgQEAgZGVmIGdl dF9pZHModXJsPXBpY2tsZV9wYXRoKToKICAgICA6cnR5cGU6IGRpY3QKICAg ICAiIiIKIAotICAgIG91dHB1dCA9IG9wZW4odXJsLCAncmInKQotICAgIGlk cyA9IHBpY2tsZS5sb2FkKG91dHB1dCkKLSAgICBvdXRwdXQuY2xvc2UoKQot ICAgIHJldHVybiBpZHMKLQotCi0jIGRlZiB0ZXN0X2dldG5vZGVzKHRlc3Rl cj1Ob25lKToKLSMgICAgICMgQ29ubmVjdCB0byBzZXJ2ZXIgYW5kIGRhdGFi YXNlLgotIwotIyAgICAgaWYgbm90IHRlc3RlcjoKLSMgICAgICAgICByZXR1 cm4gTm9uZQotIwotIyAgICAgYWxsX2lkID0gZ2V0X2lkcygpCi0jCi0jICAg ICBzZXJ2ZXJfaWRzID0gYWxsX2lkWyJzaWQiXQotIyAgICAgZGJfaWRzX2Rp Y3QgPSBhbGxfaWRbImRpZCJdWzBdCi0jCi0jICAgICBkYl9jb24gPSBbXQot IyAgICAgZm9yIHNlcnZlcl9pZCBpbiBzZXJ2ZXJfaWRzOgotIyAgICAgICAg IGRiX2lkID0gZGJfaWRzX2RpY3RbaW50KHNlcnZlcl9pZCldCi0jICAgICAg ICAgZGJfY29uLmFwcGVuZCh2ZXJpZnlfZGF0YWJhc2UodGVzdGVyLCBTRVJW RVJfR1JPVVAsIHNlcnZlcl9pZCwgZGJfaWQpKQotIyAgICAgcmV0dXJuIGRi X2NvbgorICAgIGlmIG9zLnBhdGguaXNmaWxlKHVybCk6CisgICAgICAgIG91 dHB1dCA9IG9wZW4odXJsLCAncmInKQorICAgICAgICBpZHMgPSBwaWNrbGUu bG9hZChvdXRwdXQpCisgICAgICAgIG91dHB1dC5jbG9zZSgpCisgICAgICAg IHJldHVybiBpZHMKIAogCiBkZWYgbG9naW5fdGVzdGVyX2FjY291bnQodGVz dGVyKToKQEAgLTE1Nyw3ICsxNDMsNTYgQEAgZGVmIGRlbGV0ZV9wYXJlbnRf aWRfZmlsZSgpOgogCiAgICAgOnJldHVybjogTm9uZQogICAgICIiIgotCiAg ICAgaWYgb3MucGF0aC5pc2ZpbGUocGlja2xlX3BhdGgpOgogICAgICAgICBv cy5yZW1vdmUocGlja2xlX3BhdGgpCiAKKworZGVmIGRyb3Bfb2JqZWN0cyh0 ZXN0ZXIpOgorICAgIGlmIG9zLnBhdGguaXNmaWxlKHBpY2tsZV9wYXRoKToK KyAgICAgICAgZGJfdXJsID0gJy9icm93c2VyL2RhdGFiYXNlL29iai8nCisg ICAgICAgIHRhYmxlX3NwYWNlX3VybCA9ICcvYnJvd3Nlci90YWJsZXNwYWNl L29iai8nCisgICAgICAgIHJvbGVfdXJsID0gJy9icm93c2VyL3JvbGUvb2Jq LycKKyAgICAgICAgc2VydmVyX3VybCA9ICcvYnJvd3Nlci9zZXJ2ZXIvb2Jq LycKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYWxsX2lkID0gZ2V0X2lk cygpCisgICAgICAgICAgICBzZXJ2ZXJfaWRzID0gYWxsX2lkWydzaWQnXQor ICAgICAgICAgICAgZGJfaWRzID0gYWxsX2lkWydkaWQnXQorICAgICAgICAg ICAgaWYgZGJfaWRzOgorICAgICAgICAgICAgICAgIGRiX2lkcyA9IGFsbF9p ZFsnZGlkJ11bMF0KKyAgICAgICAgICAgIHJvbGVfaWRzID0gYWxsX2lkWyds cmlkJ10KKyAgICAgICAgICAgIGlmIHJvbGVfaWRzOgorICAgICAgICAgICAg ICAgIHJvbGVfaWRzID0gYWxsX2lkWydscmlkJ11bMF0KKyAgICAgICAgICAg IHRhYmxlX3NwYWNlX2lkcyA9IGFsbF9pZFsndHNpZCddCisgICAgICAgICAg ICBpZiB0YWJsZV9zcGFjZV9pZHM6CisgICAgICAgICAgICAgICAgdGFibGVf c3BhY2VfaWRzID0gYWxsX2lkWyd0c2lkJ11bMF0KKyAgICAgICAgICAgIGZv ciBzZXJ2ZXJfaWQgaW4gc2VydmVyX2lkczoKKyAgICAgICAgICAgICAgICBk Yl9pZCA9IGRiX2lkc1tpbnQoc2VydmVyX2lkKV0KKyAgICAgICAgICAgICAg ICB0YWJsZXNwYWNlX2lkID0gTm9uZQorICAgICAgICAgICAgICAgIHJvbGVf aWQgPSBOb25lCisgICAgICAgICAgICAgICAgaWYgdGFibGVfc3BhY2VfaWRz OgorICAgICAgICAgICAgICAgICAgICB0YWJsZXNwYWNlX2lkID0gdGFibGVf c3BhY2VfaWRzW2ludChzZXJ2ZXJfaWQpXVswXQorICAgICAgICAgICAgICAg IGlmIHJvbGVfaWRzOgorICAgICAgICAgICAgICAgICAgICByb2xlX2lkID0g cm9sZV9pZHNbaW50KHNlcnZlcl9pZCldCisgICAgICAgICAgICAgICAgaWYg ZGJfaWQ6CisgICAgICAgICAgICAgICAgICAgICMgRGVsZXRlIGRhdGFiYXNl CisgICAgICAgICAgICAgICAgICAgIHRlc3Rlci5kZWxldGUoZGJfdXJsICsg c3RyKFNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgICAgICAg ICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQpLAorICAg ICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQor ICAgICAgICAgICAgICAgIGlmIHRhYmxlc3BhY2VfaWQ6CisgICAgICAgICAg ICAgICAgICAgICMgRGVsZXRlIHRhYmxlc3BhY2UKKyAgICAgICAgICAgICAg ICAgICAgdGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAg IHRhYmxlX3NwYWNlX3VybCArIHN0cihTRVJWRVJfR1JPVVApICsgJy8nICsK KyAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8n ICsgc3RyKHRhYmxlc3BhY2VfaWQpLAorICAgICAgICAgICAgICAgICAgICAg ICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorICAgICAgICAgICAgICAgIGlm IHJvbGVfaWQ6CisgICAgICAgICAgICAgICAgICAgICMgRGVsZXRlIHJvbGUK KyAgICAgICAgICAgICAgICAgICAgdGVzdGVyLmRlbGV0ZShyb2xlX3VybCAr IHN0cihTRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgICAgICAg ICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHJvbGVfaWQpLAor ICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVl KQorICAgICAgICAgICAgICAgICMgRGVsZXRlIHNlcnZlcgorICAgICAgICAg ICAgICAgIHRlc3Rlci5kZWxldGUoc2VydmVyX3VybCArIHN0cihzZXJ2ZXJf aWQpKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAg cGFzcworICAgICAgICBvcy5yZW1vdmUocGlja2xlX3BhdGgpCisgICAgZWxz ZToKKyAgICAgICAgcGFzcwo= --94eb2c0438f88e0af7053b48c204 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --94eb2c0438f88e0af7053b48c204--