Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fQs9L-0006r6-G6 for pgadmin-hackers@arkaria.postgresql.org; Thu, 07 Jun 2018 10:28:12 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fQs9H-00062v-Gd for pgadmin-hackers@arkaria.postgresql.org; Thu, 07 Jun 2018 10:28:07 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fQs9H-00062j-3l for pgadmin-hackers@lists.postgresql.org; Thu, 07 Jun 2018 10:28:07 +0000 Received: from mail-ot0-x234.google.com ([2607:f8b0:4003:c0f::234]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1fQs94-0003qV-77 for pgadmin-hackers@postgresql.org; Thu, 07 Jun 2018 10:28:06 +0000 Received: by mail-ot0-x234.google.com with SMTP id d19-v6so5349862oti.8 for ; Thu, 07 Jun 2018 03:27:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=g2recvDJO1XBSR8Gly9VLPcHo7r6uc32Yjw7jrjd8/A=; b=lNZy/ngCsG6tlCAnnBHc6eX6OGols9adN6kNPJ9PfXN/RbgGIin/kzK3IsnsiiaHfr kb3WmVHqKHCKh0HESKCoUERpvruu7uJAvDTk59mo1J3Y6HFqJ+mG84sZYTlFQtwoR8My Jwus1fEyZDI0zw7gRn1GJj3781j8jQGDm5GMZHWJQGGztI23dwPJsC643NxDRbfFlgZV 1PfrwNiwTPqCvNOdzpopkVSqdlFVcfdxiBHVqTEhyIXi8pSQw3O+/iKvxvRREHXR725A aQAVu5prdntYvLnX3lOsSgb6oQs9cjbuYQowRwcvgrW8yG1HaHWQk2m/OS8vF2AkvmHf XFjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=g2recvDJO1XBSR8Gly9VLPcHo7r6uc32Yjw7jrjd8/A=; b=UDkFMYZDVMLnoDN7IVs6wsr01xTO8Kywy2r+7U5cQSRZKRKhZx4X559r+YtgN5XsYb X4kPsInUbxr3IT3mP3T+bP6f1S0yo2yz3o4gY13Tsk6t9wAf3q+LudpXUFOowEivSsqI 1oF5doFarh+VHF7OqPvMNyBzo/M2Qo65R7lejb83lHmU9J3U5h1sSCBrjJzeaSOzPZA8 kxh2bRUZGqUsrO34JHDa5o/f7oDE677as3cuo8WRjWyb0mBCxHiRzcC1BFWmTurHT+Tt wZDujZfI7e4rmvR3bgHwTVD8oNj/Y5SnY9grZ+Q/AjQ2jaTnhBsUhI7fIPKnLwNu0s7F m+hw== X-Gm-Message-State: APt69E1oikely0fDN8fevnAKP5vRzWPKx7TJM26y/67TzVu7yVG0Tuht YAQLLtUJAkU0AUcZLq/7i/c0YWptZPvuzsOoZTh9IA== X-Google-Smtp-Source: ADUXVKITiLEeOmjgHS/zVv3F2HlOP/RBX3cxaZv0gnDwkwsl8b7FiL+stXWJO9cPcuyobp6EXdQjtGonS+gVWPn/S4U= X-Received: by 2002:a9d:3227:: with SMTP id t39-v6mr598641otc.104.1528367271437; Thu, 07 Jun 2018 03:27:51 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a4a:4081:0:0:0:0:0 with HTTP; Thu, 7 Jun 2018 03:27:50 -0700 (PDT) In-Reply-To: References: From: Khushboo Vashi Date: Thu, 7 Jun 2018 15:57:50 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch]: RM 3362 - Fix the functions for PG v11, and add support procedure for PG v11 To: pgadmin-hackers Content-Type: multipart/mixed; boundary="0000000000004d1fb7056e0abcf8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --0000000000004d1fb7056e0abcf8 Content-Type: multipart/alternative; boundary="0000000000004d1fb4056e0abcf6" --0000000000004d1fb4056e0abcf6 Content-Type: text/plain; charset="UTF-8" Hi, Please ignore my previous patch, find the attached updated one. Thanks, Khushboo On Wed, Jun 6, 2018 at 12:12 PM, Khushboo Vashi < khushboo.vashi@enterprisedb.com> wrote: > Hi, > > Please find the attached patch to fix #3362 - Fix the functions for PG > v11, and add support procedure for PG v11. > > Thanks, > Khushboo > > --0000000000004d1fb4056e0abcf6 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Please ignore my previous patch, fi= nd the attached updated one.

Thanks,
Khu= shboo

= On Wed, Jun 6, 2018 at 12:12 PM, Khushboo Vashi <khushboo.va= shi@enterprisedb.com> wrote:
Hi,

Please find the attached patch to= fix #3362 -=C2=A0Fix the functions for PG v11, and add support proce= dure for PG v11.

Thanks,
Khushboo


--0000000000004d1fb4056e0abcf6-- --0000000000004d1fb7056e0abcf8 Content-Type: text/x-patch; charset="US-ASCII"; name="RM_3362_ver1.patch" Content-Disposition: attachment; filename="RM_3362_ver1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ji4edow91 ZGlmZiAtLWdpdCBhL2RvY3MvZW5fVVMvcHJvY2VkdXJlX2RpYWxvZy5yc3QgYi9kb2NzL2VuX1VT L3Byb2NlZHVyZV9kaWFsb2cucnN0CmluZGV4IGRhNWYzNGYuLjgyYzIyMjcgMTAwNjQ0Ci0tLSBh L2RvY3MvZW5fVVMvcHJvY2VkdXJlX2RpYWxvZy5yc3QKKysrIGIvZG9jcy9lbl9VUy9wcm9jZWR1 cmVfZGlhbG9nLnJzdApAQCAtNCw3ICs0LDcgQEAKIFRoZSBQcm9jZWR1cmUgRGlhbG9nCiAqKioq KioqKioqKioqKioqKioqKgogCi1Vc2UgdGhlICpQcm9jZWR1cmUqIGRpYWxvZyB0byBjcmVhdGUg YSBwcm9jZWR1cmU7IHByb2NlZHVyZXMgYXJlIHN1cHBvcnRlZCBieSBFREIgUG9zdGdyZXMgQWR2 YW5jZWQgU2VydmVyLiBUaGUgKlByb2NlZHVyZSogZGlhbG9nIGFsbG93cyB5b3UgdG8gaW1wbGVt ZW50IG9wdGlvbnMgb2YgdGhlIENSRUFURSBQUk9DRURVUkUgY29tbWFuZDsgZm9yIG1vcmUgaW5m b3JtYXRpb24gYWJvdXQgdGhlIENSRUFURSBQUk9DRURVUkUgU1FMIGNvbW1hbmQsIHBsZWFzZSBz ZWUgdGhlIERhdGFiYXNlIENvbXBhdGliaWxpdHkgZm9yIE9yYWNsZSBEZXZlbG9wZXIncywgYXZh aWxhYmxlIGF0OgorVXNlIHRoZSAqUHJvY2VkdXJlKiBkaWFsb2cgdG8gY3JlYXRlIGEgcHJvY2Vk dXJlOyBwcm9jZWR1cmVzIGFyZSBzdXBwb3J0ZWQgYnkgUG9zdGdyZVNRTCB2MTEgYW5kIEVEQiBQ b3N0Z3JlcyBBZHZhbmNlZCBTZXJ2ZXIuIFRoZSAqUHJvY2VkdXJlKiBkaWFsb2cgYWxsb3dzIHlv dSB0byBpbXBsZW1lbnQgb3B0aW9ucyBvZiB0aGUgQ1JFQVRFIFBST0NFRFVSRSBjb21tYW5kOyBm b3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgQ1JFQVRFIFBST0NFRFVSRSBTUUwgY29tbWFu ZCwgcGxlYXNlIHNlZSB0aGUgRGF0YWJhc2UgQ29tcGF0aWJpbGl0eSBmb3IgT3JhY2xlIERldmVs b3BlcidzLCBhdmFpbGFibGUgYXQ6CiAKICAgICAgaHR0cDovL3d3dy5lbnRlcnByaXNlZGIuY29t CiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9f X2luaXRfXy5weQppbmRleCBkOGU3YTY4Li43ZmVjYWRlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL19faW5pdF9fLnB5CkBAIC0xNTkyLDEw ICsxNTkyLDExIEBAIGNsYXNzIFByb2NlZHVyZU1vZHVsZShTY2hlbWFDaGlsZE1vZHVsZSk6CiAg ICAgICAgICIiIgogICAgICAgICBzdXBlcihQcm9jZWR1cmVNb2R1bGUsIHNlbGYpLl9faW5pdF9f KCphcmdzLCAqKmt3YXJncykKIAotICAgICAgICBzZWxmLm1pbl92ZXIgPSA5MDEwMAorICAgICAg ICBzZWxmLm1pbl92ZXIgPSAxMTAwMDAKICAgICAgICAgc2VsZi5tYXhfdmVyID0gTm9uZQorICAg ICAgICBzZWxmLm1pbl9wcGFzdmVyID0gOTAxMDAKICAgICAgICAgc2VsZi5taW5fZ3BkYnZlciA9 IDEwMDAwMDAwMDAKLSAgICAgICAgc2VsZi5zZXJ2ZXJfdHlwZSA9IFsncHBhcyddCisgICAgICAg IHNlbGYuc2VydmVyX3R5cGUgPSBbJ3BnJywgJ3BwYXMnXQogCiAgICAgZGVmIGdldF9ub2Rlcyhz ZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKICAgICAgICAgIiIiCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvc3RhdGljL2pzL3Byb2NlZHVyZS5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9zdGF0aWMvanMv cHJvY2VkdXJlLmpzCmluZGV4IDA0MWI1MDkuLjFlMDJjOTkgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy9zdGF0aWMvanMvcHJvY2VkdXJlLmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9zdGF0aWMvanMv cHJvY2VkdXJlLmpzCkBAIC03MSwxMSArNzEsNyBAQCBkZWZpbmUoJ3BnYWRtaW4ubm9kZS5wcm9j ZWR1cmUnLCBbCiAgICAgICAgIGlmICgnY2F0YWxvZycgaW4gbm9kZV9oaWVyYXJjaHkpCiAgICAg ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIC8vIFByb2NlZHVyZXMgc3VwcG9ydGVkIG9u bHkgaW4gUFBBUwotICAgICAgICByZXR1cm4gKAotICAgICAgICAgICdzZXJ2ZXInIGluIG5vZGVf aGllcmFyY2h5ICYmCi0gICAgICAgICAgICBub2RlX2hpZXJhcmNoeVsnc2VydmVyJ10uc2VydmVy X3R5cGUgPT0gJ3BwYXMnCi0gICAgICAgICk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg fSwKICAgICAgIG1vZGVsOiBGdW5jdGlvbi5tb2RlbC5leHRlbmQoewogICAgICAgICBkZWZhdWx0 czogXy5leHRlbmQoe30sCkBAIC0xMDMsMjAgKzk5LDI0IEBAIGRlZmluZSgncGdhZG1pbi5ub2Rl LnByb2NlZHVyZScsIFsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgIH0KICAg ICAgICAgICBzd2l0Y2godGhpcy5uYW1lKXsKLSAgICAgICAgICBjYXNlICdwcm92b2xhdGlsaXR5 JzoKKyAgICAgICAgICBjYXNlICdwcm92b2xhdGlsZSc6CiAgICAgICAgICAgY2FzZSAncHJvaXNz dHJpY3QnOgotICAgICAgICAgIGNhc2UgJ3Byb3NlY2RlZic6CiAgICAgICAgICAgY2FzZSAncHJv Y29zdCc6CiAgICAgICAgICAgY2FzZSAncHJvbGVha3Byb29mJzoKICAgICAgICAgICBjYXNlICd2 YXJpYWJsZXMnOgotICAgICAgICAgICAgcmV0dXJuIHRoaXMubm9kZV9pbmZvLnNlcnZlci52ZXJz aW9uIDwgOTA1MDA7CisgICAgICAgICAgICByZXR1cm4gKHRoaXMubm9kZV9pbmZvLnNlcnZlci52 ZXJzaW9uIDwgOTA1MDAgfHwgdGhpcy5ub2RlX2luZm8uc2VydmVyLnR5cGUgIT0gJ3BwYXMnKTsK KyAgICAgICAgICBjYXNlICdwcm9zZWNkZWYnOgorICAgICAgICAgICAgcmV0dXJuICh0aGlzLm5v ZGVfaW5mby5zZXJ2ZXIudmVyc2lvbiA8IDkwNTAwKTsKICAgICAgICAgICBjYXNlICdwcm9yb3dz JzoKICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSB0aGlzLm5vZGVfaW5mby5zZXJ2ZXI7CiAgICAg ICAgICAgICByZXR1cm4gIShzZXJ2ZXIudmVyc2lvbiA+PSA5MDUwMCAmJiBtLmdldCgncHJvcmV0 c2V0JykgPT0gdHJ1ZSk7CiAgICAgICAgICAgY2FzZSAnZnVuY293bmVyJzoKLSAgICAgICAgICBj YXNlICdsYW5uYW1lJzoKICAgICAgICAgICBjYXNlICdwcm9hcmdzJzoKICAgICAgICAgICAgIHJl dHVybiB0cnVlOworICAgICAgICAgIGNhc2UgJ3Byb3BhcmFsbGVsJzoKKyAgICAgICAgICAgIHJl dHVybiAodGhpcy5ub2RlX2luZm8uc2VydmVyLnZlcnNpb24gPCA5MDYwMCB8fCB0aGlzLm5vZGVf aW5mby5zZXJ2ZXIudHlwZSAhPSAncHBhcycpOworICAgICAgICAgIGNhc2UgJ2xhbm5hbWUnOgor ICAgICAgICAgICAgcmV0dXJuIHRoaXMubm9kZV9pbmZvLnNlcnZlci52ZXJzaW9uIDwgMTEwMDAw OwogICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg ICAgfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwv MTFfcGx1cy9jb2xsX3N0YXRzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzExX3BsdXMvY29sbF9zdGF0cy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uY2M0ZjczNAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvY29sbF9zdGF0cy5zcWwKQEAgLTAsMCArMSwyMCBA QAorU0VMRUNUCisgICAgZnVuY25hbWUgQVMge3sgY29ubnxxdElkZW50KF8oJ05hbWUnKSkgfX0s CisgICAgY2FsbHMgQVMge3sgY29ubnxxdElkZW50KF8oJ051bWJlciBvZiBjYWxscycpKSB9fSwK KyAgICB0b3RhbF90aW1lIEFTIHt7IGNvbm58cXRJZGVudChfKCdUb3RhbCB0aW1lJykpIH19LAor ICAgIHNlbGZfdGltZSBBUyB7eyBjb25ufHF0SWRlbnQoXygnU2VsZiB0aW1lJykpIH19CitGUk9N CisgICAgcGdfc3RhdF91c2VyX2Z1bmN0aW9ucworV0hFUkUKKyAgICBzY2hlbWFuYW1lID0ge3tz Y2hlbWFfbmFtZXxxdExpdGVyYWx9fQorICAgIEFORCBmdW5jaWQgSU4gKAorICAgICAgICBTRUxF Q1QgcC5vaWQKKyAgICAgICAgRlJPTQorICAgICAgICAgICAgcGdfcHJvYyBwCisgICAgICAgIEpP SU4KKyAgICAgICAgICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cC5wcm9yZXR0eXBlCisgICAg ICAgIFdIRVJFCisgICAgICAgICAgICBwLnByb2tpbmQgSU4gKCdmJywgJ3cnKQorICAgICAgICAg ICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKKyAgICAp CitPUkRFUiBCWSBmdW5jbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4wMWNkZjUxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9jcmVhdGUuc3FsCkBAIC0wLDAgKzEs NzAgQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNF Q0xBQkVMICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3Jvcycg YXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUubWFj cm9zJyBhcyBWQVJJQUJMRSAlfQoreyUgc2V0IGlzX2NvbHVtbnMgPSBbXSAlfQoreyUgaWYgZGF0 YSAlfQoreyUgaWYgcXVlcnlfZm9yID09ICdzcWxfcGFuZWwnIGFuZCBmdW5jX2RlZiBpcyBkZWZp bmVkICV9CitDUkVBVEV7JSBpZiBxdWVyeV90eXBlIGlzIGRlZmluZWQgJX17eycgT1IgUkVQTEFD RSd9fXslIGVuZGlmICV9IEZVTkNUSU9OIHt7ZnVuY19kZWZ9fQoreyUgZWxzZSAlfQorQ1JFQVRF eyUgaWYgcXVlcnlfdHlwZSBpcyBkZWZpbmVkICV9e3snIE9SIFJFUExBQ0UnfX17JSBlbmRpZiAl fSBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkg fX0oeyUgaWYgZGF0YS5hcmd1bWVudHMgJX0KK3slIGZvciBwIGluIGRhdGEuYXJndW1lbnRzICV9 eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFt ZSAlfXt7IGNvbm58cXRJZGVudChwLmFyZ25hbWUpIH19IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0 eXBlICV9e3sgY29ubnxxdFR5cGVJZGVudChwLmFyZ3R5cGUpIH19eyUgZW5kaWYgJX17JSBpZiBw LmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBu b3QgbG9vcC5sYXN0ICV9LCB7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0K KykKK3slIGVuZGlmICV9CisgICAgUkVUVVJOU3slIGlmIGRhdGEucHJvcmV0c2V0IGFuZCAoZGF0 YS5wcm9yZXR0eXBlbmFtZS5zdGFydHN3aXRoKCdTRVRPRiAnKSBvciBkYXRhLnByb3JldHR5cGVu YW1lLnN0YXJ0c3dpdGgoJ1RBQkxFJykpICV9IHt7IGRhdGEucHJvcmV0dHlwZW5hbWUgfX0geyUg ZWxpZiBkYXRhLnByb3JldHNldCAlfSBTRVRPRiB7eyBjb25ufHF0VHlwZUlkZW50KGRhdGEucHJv cmV0dHlwZW5hbWUpIH19eyUgZWxzZSAlfSB7eyBjb25ufHF0VHlwZUlkZW50KGRhdGEucHJvcmV0 dHlwZW5hbWUpIH19eyUgZW5kaWYgJX0KKworICAgIExBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxx dExpdGVyYWwgfX0KK3slIGlmIGRhdGEucHJvY29zdCAlfQorCisgICAgQ09TVCB7e2RhdGEucHJv Y29zdH19Cit7JSBlbmRpZiAlfQorICAgIHslIGlmIGRhdGEucHJvdm9sYXRpbGUgJX17JSBpZiBk YXRhLnByb3ZvbGF0aWxlID09ICdpJyAlfUlNTVVUQUJMRXslIGVsaWYgZGF0YS5wcm92b2xhdGls ZSA9PSAncycgJX1TVEFCTEV7JSBlbHNlICV9Vk9MQVRJTEV7JSBlbmRpZiAlfSB7JSBlbmRpZiAl fXslIGlmIGRhdGEucHJvbGVha3Byb29mICV9TEVBS1BST09GIHslIGVuZGlmICV9Cit7JSBpZiBk YXRhLnByb2lzc3RyaWN0ICV9U1RSSUNUIHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb3NlY2Rl ZiAlfVNFQ1VSSVRZIERFRklORVIgeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvaXN3aW5kb3cg JX1XSU5ET1cgeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvcGFyYWxsZWwgYW5kIChkYXRhLnBy b3BhcmFsbGVsID09ICdyJyBvciBkYXRhLnByb3BhcmFsbGVsID09ICdzJykgJX0KK3slIGlmIGRh dGEucHJvcGFyYWxsZWwgPT0gJ3InICV9UEFSQUxMRUwgUkVTVFJJQ1RFRHslIGVsaWYgZGF0YS5w cm9wYXJhbGxlbCA9PSAncycgJX1QQVJBTExFTCBTQUZFeyUgZW5kaWYgJX17JSBlbmRpZiAtJX0K K3slIGlmIGRhdGEucHJvcm93cyBhbmQgKGRhdGEucHJvcm93cyB8IGludCkgPiAwICV9CisKKyAg ICBST1dTIHt7ZGF0YS5wcm9yb3dzfX17JSBlbmRpZiAtJX17JSBpZiBkYXRhLnZhcmlhYmxlcyAl fXslIGZvciB2IGluIGRhdGEudmFyaWFibGVzICV9CisKKyAgICBTRVQge3sgY29ubnxxdElkZW50 KHYubmFtZSkgfX09e3sgdi52YWx1ZXxxdExpdGVyYWwgfX17JSBlbmRmb3IgJX0KK3slIGVuZGlm ICV9CisKK0FTIHslIGlmIGRhdGEubGFubmFtZSA9PSAnYycgJX0KK3t7IGRhdGEucHJvYmlufHF0 TGl0ZXJhbCB9fSwge3sgZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX0KK3slIGVsc2UgJX0KKyRC T0RZJAore3sgZGF0YS5wcm9zcmMgfX0KKyRCT0RZJHslIGVuZGlmIC0lfTsKK3slIGlmIGRhdGEu ZnVuY293bmVyICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25h bWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7e2RhdGEuZnVuY19hcmdzX3dpdGhvdXR9fSkKKyAgICBP V05FUiBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5mdW5jb3duZXIpIH19OworeyUgZW5kaWYgLSV9 Cit7JSBpZiBkYXRhLmFjbCAlfQoreyUgZm9yIHAgaW4gZGF0YS5hY2wgJX0KKwore3sgUFJJVklM RUdFLlNFVChjb25uLCAiRlVOQ1RJT04iLCBwLmdyYW50ZWUsIGRhdGEubmFtZSwgcC53aXRob3V0 X2dyYW50LCBwLndpdGhfZ3JhbnQsIGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLmZ1bmNfYXJnc193 aXRob3V0KX19Cit7JSBlbmRmb3IgJX17JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5yZXZva2VfYWxs ICV9CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAiRlVOQ1RJT04iLCAiUFVCTElDIiwg ZGF0YS5uYW1lLCBkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5mdW5jX2FyZ3Nfd2l0aG91dCl9fQor eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBPTiBGVU5D VElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0oe3tk YXRhLmZ1bmNfYXJnc193aXRob3V0fX0pCisgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExp dGVyYWwgIH19OworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLnNlY2xhYmVscyAlfQoreyUgZm9y IHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmIHIubGFiZWwgYW5kIHIucHJvdmlkZXIgJX0K Kwore3sgU0VDTEFCRUwuU0VUKGNvbm4sICdGVU5DVElPTicsIGRhdGEubmFtZSwgci5wcm92aWRl ciwgci5sYWJlbCwgZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19hcmdzX3dpdGhvdXQpIH19 Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKworeyUgZW5kaWYgJX0K ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzExX3Bs dXMvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzEx X3BsdXMvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDAw NDRjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9w Zy9zcWwvMTFfcGx1cy9kZWxldGUuc3FsCkBAIC0wLDAgKzEsMjEgQEAKK3slIGlmIHNjaWQgYW5k IGZuaWQgJX0KK1NFTEVDVAorICAgIHByLnByb25hbWUgYXMgbmFtZSwgJygnIHx8IENPQUxFU0NF KHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5v aWQpLCAnJykgfHwgJyknIGFzIGZ1bmNfYXJncywKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdf cHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9J TgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKK1dIRVJF CisgICAgcHIucHJva2luZCBJTiAoJ2YnLCAndycpCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7 c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3Ry aWdnZXInKQorICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTsKK3slIGVuZGlmICV9CisKK3slIGlm IG5hbWUgJX0KK0RST1AgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG5zcG5hbWUsIG5hbWUpIH19 e3tmdW5jX2FyZ3N9fXslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERXslIGVuZGlmICV9OworeyUgZW5k aWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3Fs LzExX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvMTFfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uYWIyNWRiZgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCkBA IC0wLDAgKzEsMTUgQEAKK1NFTEVDVAorICAgIHBnX2dldF9mdW5jdGlvbmRlZih7e2ZuaWR9fTo6 b2lkKSBBUyBmdW5jX2RlZiwKKyAgICBDT0FMRVNDRShwZ19jYXRhbG9nLnBnX2dldF9mdW5jdGlv bl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIGFzCisgICAgZnVuY193aXRoX2lkZW50 aXR5X2FyZ3VtZW50cywKKyAgICBuc3BuYW1lLAorICAgIHByLnByb25hbWUgYXMgcHJvbmFtZSwK KyAgICBDT0FMRVNDRShwZ19jYXRhbG9nLnBnX2dldF9mdW5jdGlvbl9hcmd1bWVudHMocHIub2lk KSwgJycpIGFzIGZ1bmNfYXJncworRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ19u YW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHByLnBy b2tpbmQgSU4gKCdmJywgJ3cnKQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lk CisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL2dldF9vaWQuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9nZXRfb2lkLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45M2EyMTA3Ci0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9nZXRfb2lk LnNxbApAQCAtMCwwICsxLDE3IEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnByb25hbWUgfHwg JygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5 X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIG5hbWUsCisgICAgbGFubmFtZSwgcGdf Z2V0X3VzZXJieWlkKHByb293bmVyKSBhcyBmdW5jb3duZXIsIHByLnByb25hbWVzcGFjZSBhcyBu c3AKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9p ZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFu ZworSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UK KyAgICBBTkQgbnNwLm5zcG5hbWU9e3sgbnNwbmFtZXxxdExpdGVyYWwgfX0KK1dIRVJFCisgICAg cHIucHJva2luZCBJTiAoJ2YnLCAndycpCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dl cicsICdldmVudF90cmlnZ2VyJykKKyAgICBBTkQgcHIucHJvbmFtZSA9IHt7IG5hbWV8cXRMaXRl cmFsIH19OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9z cWwvMTFfcGx1cy9ub2RlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcv c3FsLzExX3BsdXMvbm9kZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NWRhZThkMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcGcvc3FsLzExX3BsdXMvbm9kZS5zcWwKQEAgLTAsMCArMSwyMiBAQAorU0VMRUNUCisgICAg cHIub2lkLCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nLnBnX2dldF9m dW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBhcyBuYW1lLAor ICAgIGxhbm5hbWUsIHBnX2dldF91c2VyYnlpZChwcm9vd25lcikgYXMgZnVuY293bmVyLCBkZXNj cmlwdGlvbgorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0 eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1w cm9sYW5nCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5v YmpvaWQ9cHIub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dIRVJF CisgICBwci5wcm9raW5kIElOICgnZicsICd3JykKK3slIGlmIGZuaWQgJX0KKyAgICBBTkQgcHIu b2lkID0ge3sgZm5pZHxxdExpdGVyYWwgfX0KK3slIGVuZGlmICV9Cit7JSBpZiBzY2lkICV9Cisg ICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKK3slIGVuZGlmICV9CisgICAgQU5E IHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKK09SREVSIEJZCisg ICAgcHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzExX3BsdXMvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL3BnL3NxbC8xMV9wbHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjUwYzJjYTAKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAg KzEsMzMgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIueG1pbiwgcHIuKiwgcHIucHJvc3JjIEFT IHByb3NyY19jLAorICAgIHByLnByb25hbWUgQVMgbmFtZSwgcGdfZ2V0X2Z1bmN0aW9uX3Jlc3Vs dChwci5vaWQpIEFTIHByb3JldHR5cGVuYW1lLAorICAgIHR5cG5zLm5zcG5hbWUgQVMgdHlwbnNw LCBsYW5uYW1lLCBwcm9hcmduYW1lcywgb2lkdmVjdG9ydHlwZXMocHJvYXJndHlwZXMpIEFTIHBy b2FyZ3R5cGVuYW1lcywKKyAgICBwZ19nZXRfZXhwcihwcm9hcmdkZWZhdWx0cywgJ3BnX2NhdGFs b2cucGdfY2xhc3MnOjpyZWdjbGFzcykgQVMgcHJvYXJnZGVmYXVsdHZhbHMsCisgICAgcHJvbmFy Z2RlZmF1bHRzLCBwcm9jb25maWcsIHBnX2dldF91c2VyYnlpZChwcm9vd25lcikgQVMgZnVuY293 bmVyLCBkZXNjcmlwdGlvbiwKKyAgICBDQVNFIFdIRU4gcHIucHJva2luZCA9ICd3JyBUSEVOIFRS VUUgRUxTRSBGQUxTRSBFTkQgQVMgcHJvaXN3aW5kb3csCisgICAgKFNFTEVDVAorICAgICAgICBh cnJheV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxhYmVsKQorICAgIEZST00KKyAgICAgICAgcGdf c2VjbGFiZWwgc2wxCisgICAgV0hFUkUKKyAgICAgICAgc2wxLm9iam9pZD1wci5vaWQpIEFTIHNl Y2xhYmVscworRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0 eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgdHlwbnMgT04gdHlwbnMu b2lkPXR5cC50eXBuYW1lc3BhY2UKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9p ZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRl cy5vYmpvaWQ9cHIub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dI RVJFCisgICAgcHIucHJva2luZCBJTiAoJ2YnLCAndycpCit7JSBpZiBmbmlkICV9CisgICAgQU5E IHByLm9pZCA9IHt7Zm5pZH19OjpvaWQKK3slIGVsc2UgJX0KKyAgICBBTkQgcHJvbmFtZXNwYWNl ID0ge3tzY2lkfX06Om9pZAoreyUgZW5kaWYgJX0KKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0 cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQorT1JERVIgQlkKKyAgICBwcm9uYW1lOwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy91cGRh dGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy91 cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyYmQyNGIKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC8x MV9wbHVzL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSwxMTYgQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1 bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkVMICV9Cit7JSBpbXBvcnQgJ21hY3Jv cy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQg J21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAlfXslIGlmIGRh dGEgJX0KK3slIHNldCBuYW1lID0gb19kYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAlfQor eyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBGVU5DVElPTiB7eyBjb25u fHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLm5hbWUpIH19KHt7CitvX2RhdGEu cHJvYXJndHlwZW5hbWVzIH19KQorICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5u YW1lKSB9fTsKK3slIHNldCBuYW1lID0gZGF0YS5uYW1lICV9Cit7JSBlbmRpZiAlfQoreyUgZW5k aWYgLSV9Cit7JSBpZiBkYXRhLmNoYW5nZV9mdW5jICAlfQorCitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oeyUg aWYgZGF0YS5hcmd1bWVudHMgJX0KK3slIGZvciBwIGluIGRhdGEuYXJndW1lbnRzICV9eyUgaWYg cC5hcmdtb2RlICV9e3twLmFyZ21vZGV9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFtZSAlfXt7 IGNvbm58cXRJZGVudChwLmFyZ25hbWUpIH19IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9 e3sgY29ubnxxdFR5cGVJZGVudChwLmFyZ3R5cGUpIH19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2Rl ZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3QgbG9v cC5sYXN0ICV9LHslIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorKQorICAg IFJFVFVSTlMge3sgb19kYXRhLnByb3JldHR5cGVuYW1lIH19Cit7JSBpZiAnbGFubmFtZScgaW4g ZGF0YSAlfQorICAgIExBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxxdExpdGVyYWwgfX0geyUgZWxz ZSAlfQorICAgIExBTkdVQUdFIHt7IG9fZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fQorICAgIHsl IGVuZGlmICV9eyUgaWYgJ3Byb3ZvbGF0aWxlJyBpbiBkYXRhIGFuZCBkYXRhLnByb3ZvbGF0aWxl ICV9e3sgZGF0YS5wcm92b2xhdGlsZSB9fSB7JSBlbGlmICdwcm92b2xhdGlsZScgbm90IGluIGRh dGEgYW5kIG9fZGF0YS5wcm92b2xhdGlsZSAlfXt7IG9fZGF0YS5wcm92b2xhdGlsZSB9fXslIGVu ZGlmICV9Cit7JSBpZiAoJ3Byb2xlYWtwcm9vZicgaW4gZGF0YSBhbmQgZGF0YS5wcm9sZWFrcHJv b2YpIG9yICgncHJvbGVha3Byb29mJyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2xlYWtwcm9v ZikgJX0gTEVBS1BST09GeyUgZWxpZiAncHJvbGVha3Byb29mJyBpbiBkYXRhIGFuZCBub3QgZGF0 YS5wcm9sZWFrcHJvb2YgJX0gTk9UIExFQUtQUk9PRnslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2lz c3RyaWN0JyBpbiBkYXRhIGFuZCBkYXRhLnByb2lzc3RyaWN0KSBvciAoJ3Byb2lzc3RyaWN0JyBu b3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2lzc3RyaWN0KSAlfSBTVFJJQ1R7JSBlbmRpZiAlfQor eyUgaWYgKCdwcm9zZWNkZWYnIGluIGRhdGEgYW5kIGRhdGEucHJvc2VjZGVmKSBvciAoJ3Byb3Nl Y2RlZicgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9zZWNkZWYpICV9IFNFQ1VSSVRZIERFRklO RVJ7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9pc3dpbmRvdycgaW4gZGF0YSBhbmQgZGF0YS5wcm9p c3dpbmRvdykgb3IgKCdwcm9pc3dpbmRvdycgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9pc3dp bmRvdykgJX0gV0lORE9XeyUgZW5kaWYgJX0KKworICAgIHslIGlmICdwcm9wYXJhbGxlbCcgaW4g ZGF0YSBhbmQgZGF0YS5wcm9wYXJhbGxlbCAlfVBBUkFMTEVMIHt7IGRhdGEucHJvcGFyYWxsZWwg fX17JSBlbGlmICdwcm9wYXJhbGxlbCcgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9wYXJhbGxl bCAlfVBBUkFMTEVMIHt7IG9fZGF0YS5wcm9wYXJhbGxlbCB9fXslIGVuZGlmICV9CisKKyAgICB7 JSBpZiBkYXRhLnByb2Nvc3QgJX1DT1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbGlmIG9fZGF0YS5w cm9jb3N0ICV9Q09TVCB7e29fZGF0YS5wcm9jb3N0fX17JSBlbmRpZiAlfXslIGlmIGRhdGEucHJv cm93cyAlfQorCisgICAgUk9XUyB7e2RhdGEucHJvcm93c319eyUgZWxpZiBkYXRhLnByb3Jvd3Mg aXMgbm90IGRlZmluZWQgYW5kIG9fZGF0YS5wcm9yb3dzIGFuZCBvX2RhdGEucHJvcm93cyAhPSAn MCcgJX0gICAgUk9XUyB7e29fZGF0YS5wcm9yb3dzfX0geyVlbmRpZiAtJX17JSBpZiBkYXRhLm1l cmdlZF92YXJpYWJsZXMgJX17JSBmb3IgdiBpbiBkYXRhLm1lcmdlZF92YXJpYWJsZXMgJX0KKwor ICAgIFNFVCB7eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17eyB2LnZhbHVlfHF0TGl0ZXJhbCB9 fXslIGVuZGZvciAtJX0KKyAgICB7JSBlbmRpZiAlfQorCitBUyB7JSBpZiAncHJvYmluJyBpbiBk YXRhIG9yICdwcm9zcmNfYycgaW4gZGF0YSAlfQoreyUgaWYgJ3Byb2JpbicgaW4gZGF0YSAlfXt7 IGRhdGEucHJvYmlufHF0TGl0ZXJhbCB9fXslIGVsc2UgJX17eyBvX2RhdGEucHJvYmlufHF0TGl0 ZXJhbCB9fXslIGVuZGlmICV9LCB7JSBpZiAncHJvc3JjX2MnIGluIGRhdGEgJX17eyBkYXRhLnBy b3NyY19jfHF0TGl0ZXJhbCB9fXslIGVsc2UgJX17eyBvX2RhdGEucHJvc3JjX2N8cXRMaXRlcmFs IH19eyUgZW5kaWYgJX17JSBlbGlmICdwcm9zcmMnIGluIGRhdGEgJX0KKyRCT0RZJHt7IGRhdGEu cHJvc3JjIH19JEJPRFkkeyUgZWxpZiBvX2RhdGEubGFubmFtZSA9PSAnYycgJX0KK3t7IG9fZGF0 YS5wcm9iaW58cXRMaXRlcmFsIH19LCB7eyBvX2RhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19eyUg ZWxzZSAlfQorJEJPRFkke3sgb19kYXRhLnByb3NyYyB9fSRCT0RZJHslIGVuZGlmIC0lfTsKK3sl IGVuZGlmIC0lfQoreyUgaWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxURVIgRlVOQ1RJT04ge3sg Y29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7b19kYXRhLnByb2Fy Z3R5cGVuYW1lcyB9fSkKKyAgICBPV05FUiBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5mdW5jb3du ZXIpIH19OworeyUgZW5kaWYgLSV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNo YW5nZSBwcml2aWxlZGdlcyAjfQoreyUgaWYgZGF0YS5hY2wgJX0KK3slIGlmICdkZWxldGVkJyBp biBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuZGVsZXRlZCAlfQorCit7eyBQ UklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBv X2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUg Zm9yIHByaXYgaW4gZGF0YS5hY2wuY2hhbmdlZCAlfQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwo Y29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEucHJvbmFtZXNwYWNl LCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdG VU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2Lndp dGhfZ3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmFjbCAl fQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuYWRkZWQgJX0KKwore3sgUFJJVklMRUdFLlNFVChj b25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIHByaXYud2l0aG91dF9ncmFudCwg cHJpdi53aXRoX2dyYW50LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5h bWVzKSB9fQoreyUgZW5kZm9yICV9eyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRh dGEuY2hhbmdlX2Z1bmMgPT0gRmFsc2UgJX0KK3slIGlmIGRhdGEudmFyaWFibGVzICV9Cit7JSBp ZiAnZGVsZXRlZCcgaW4gZGF0YS52YXJpYWJsZXMgYW5kIGRhdGEudmFyaWFibGVzLmRlbGV0ZWR8 bGVuZ3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5VTlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1l LCBkYXRhLnZhcmlhYmxlcy5kZWxldGVkLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJv YXJndHlwZW5hbWVzKSB9fQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnbWVyZ2VkX3ZhcmlhYmxlcycg aW4gZGF0YSBhbmQgZGF0YS5tZXJnZWRfdmFyaWFibGVzfGxlbmd0aCA+IDAgJX0KKwore3sgVkFS SUFCTEUuU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcywg b19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGlm IC0lfQoreyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KK3slIHNldCBzZWNsYWJlbHMgPSBkYXRh LnNlY2xhYmVscyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxz LmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQgJX0K Kwore3sgU0VDTEFCRUwuVU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwg b19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFi ZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQor Cit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgci5s YWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3sl IGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFu ZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMu Y2hhbmdlZCAlfQorCit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5w cm92aWRlciwgci5sYWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVu YW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmRlc2NyaXB0 aW9uIGlzIGRlZmluZWQgYW5kIGRhdGEuZGVzY3JpcHRpb24gIT0gb19kYXRhLmRlc2NyaXB0aW9u JX0KKworQ09NTUVOVCBPTiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVz cGFjZSwgbmFtZSkgfX0oe3tvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIElTIHt7IGRh dGEuZGVzY3JpcHRpb258cXRMaXRlcmFsIH19OworeyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEu cHJvbmFtZXNwYWNlICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEu cHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7e29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAg U0VUIFNDSEVNQSB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UpIH19OworeyUgZW5k aWYgLSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9hY2wuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvYWNsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4yZTdhYWU1Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvYWNsLnNxbApAQCAtMCwwICsxLDM1IEBA CitTRUxFQ1QKKyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAnUFVCTElDJykgQVMgZ3JhbnRlZSwK KyAgICBnLnJvbG5hbWUgQVMgZ3JhbnRvciwgYXJyYXlfYWdnKHByaXZpbGVnZV90eXBlKSBBUyBw cml2aWxlZ2VzLAorICAgIGFycmF5X2FnZyhpc19ncmFudGFibGUpIEFTIGdyYW50YWJsZQorRlJP TQorICAgIChTRUxFQ1QKKyAgICAgICAgZC5ncmFudGVlLCBkLmdyYW50b3IsIGQuaXNfZ3JhbnRh YmxlLAorICAgICAgICBDQVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAgICAgV0hFTiAnQ09OTkVD VCcgVEhFTiAnYycKKyAgICAgICAgV0hFTiAnQ1JFQVRFJyBUSEVOICdDJworICAgICAgICBXSEVO ICdERUxFVEUnIFRIRU4gJ2QnCisgICAgICAgIFdIRU4gJ0VYRUNVVEUnIFRIRU4gJ1gnCisgICAg ICAgIFdIRU4gJ0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNFUycgVEhF TiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAgICAgICBXSEVOICdURU1Q T1JBUlknIFRIRU4gJ1QnCisgICAgICAgIFdIRU4gJ1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAg IFdIRU4gJ1RSVU5DQVRFJyBUSEVOICdEJworICAgICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cn CisgICAgICAgIFdIRU4gJ1VTQUdFJyBUSEVOICdVJworICAgICAgICBFTFNFICdVTktOT1dOJwor ICAgICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICBGUk9NCisgICAgICAgIChTRUxFQ1QK KyAgICAgICAgICAgIChkKS5ncmFudGVlIEFTIGdyYW50ZWUsIChkKS5ncmFudG9yIEFTIGdyYW50 b3IsCisgICAgICAgICAgICAoZCkuaXNfZ3JhbnRhYmxlIEFTIGlzX2dyYW50YWJsZSwKKyAgICAg ICAgICAgIChkKS5wcml2aWxlZ2VfdHlwZSBBUyBwcml2aWxlZ2VfdHlwZQorICAgICAgICBGUk9N CisgICAgICAgICAgICAoU0VMRUNUIGFjbGV4cGxvZGUoZGIucHJvYWNsKSBBUyBkIEZST00gcGdf cHJvYyBkYgorICAgICAgICAgICAgV0hFUkUgZGIub2lkID0ge3tmbmlkfX06Ok9JRCkgYQorICAg ICAgICApIGQKKyAgICApIGQKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBnIE9O IChkLmdyYW50b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBn dCBPTiAoZC5ncmFudGVlID0gZ3Qub2lkKQorR1JPVVAgQlkgZy5yb2xuYW1lLCBndC5yb2xuYW1l OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2Rl ZmF1bHQvY29sbF9zdGF0cy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9w Zy9zcWwvZGVmYXVsdC9jb2xsX3N0YXRzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi41OTI0Njc5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvY29sbF9zdGF0cy5zcWwKQEAgLTAsMCArMSwyMCBA QAorU0VMRUNUCisgICAgZnVuY25hbWUgQVMge3sgY29ubnxxdElkZW50KF8oJ05hbWUnKSkgfX0s CisgICAgY2FsbHMgQVMge3sgY29ubnxxdElkZW50KF8oJ051bWJlciBvZiBjYWxscycpKSB9fSwK KyAgICB0b3RhbF90aW1lIEFTIHt7IGNvbm58cXRJZGVudChfKCdUb3RhbCB0aW1lJykpIH19LAor ICAgIHNlbGZfdGltZSBBUyB7eyBjb25ufHF0SWRlbnQoXygnU2VsZiB0aW1lJykpIH19CitGUk9N CisgICAgcGdfc3RhdF91c2VyX2Z1bmN0aW9ucworV0hFUkUKKyAgICBzY2hlbWFuYW1lID0ge3tz Y2hlbWFfbmFtZXxxdExpdGVyYWx9fQorICAgIEFORCBmdW5jaWQgSU4gKAorICAgICAgICBTRUxF Q1QgcC5vaWQKKyAgICAgICAgRlJPTQorICAgICAgICAgICAgcGdfcHJvYyBwCisgICAgICAgIEpP SU4KKyAgICAgICAgICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cC5wcm9yZXR0eXBlCisgICAg ICAgIFdIRVJFCisgICAgICAgICAgICBwLnByb2tpbmQgPSAncCc6OmNoYXIKKyAgICAgICAgICAg IEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgKQor T1JERVIgQlkgZnVuY25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3By b2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5mZmZmMTdkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvY3JlYXRlLnNxbApAQCAtMCwwICsx LDQ2IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBT RUNMQUJFTCAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3Mn IGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ZhcmlhYmxlLm1h Y3JvcycgYXMgVkFSSUFCTEUgJX0KK3slIHNldCBpc19jb2x1bW5zID0gW10gJX0KK3slIGlmIGRh dGEgJX0KK3slIGlmIHF1ZXJ5X2ZvciA9PSAnc3FsX3BhbmVsJyBhbmQgZnVuY19kZWYgaXMgZGVm aW5lZCAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgIFBST0NFRFVSRSB7e2Z1bmNfZGVmfX0KK3slIGVs c2UgJX0KK0NSRUFURSBPUiBSRVBMQUNFIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5w cm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX17JSBpZiBkYXRhLmFyZ3VtZW50cyBpcyBkZWZpbmVk ICV9CisoeyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVudHMgJX17JSBpZiBwLmFyZ21vZGUgJX17e3Au YXJnbW9kZX19IHslIGVuZGlmICV9eyUgaWYgcC5hcmduYW1lICV9e3sgY29ubnxxdElkZW50KHAu YXJnbmFtZSl9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJndHlwZSAlfXt7IGNvbm58cXRUeXBlSWRl bnQocC5hcmd0eXBlKSB9fXslIGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7 e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSwgeyUgZW5k aWYgJX0KK3slIGVuZGZvciAtJX0KK3slIGVuZGlmICV9CispCit7JSBlbmRpZiAlfQorTEFOR1VB R0Uge3sgZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fQoreyUgaWYgZGF0YS5wcm9zZWNkZWYgJX1T RUNVUklUWSBERUZJTkVSIHslIGVuZGlmICV9CisKK0FTIHslIGlmIGRhdGEubGFubmFtZSA9PSAn YycgJX0KK3t7IGRhdGEucHJvYmlufHF0TGl0ZXJhbCB9fSwge3sgZGF0YS5wcm9zcmNfY3xxdExp dGVyYWwgfX0KK3slIGVsc2UgJX0KKyRCT0RZJHt7IGRhdGEucHJvc3JjIH19JEJPRFkkeyUgZW5k aWYgLSV9OworeyUgaWYgZGF0YS5hY2wgYW5kIG5vdCBpc19zcWwgJX0KK3slIGZvciBwIGluIGRh dGEuYWNsICV9CisKK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgIlBST0NFRFVSRSIsIHAuZ3JhbnRl ZSwgZGF0YS5uYW1lLCBwLndpdGhvdXRfZ3JhbnQsIHAud2l0aF9ncmFudCwgZGF0YS5wcm9uYW1l c3BhY2UsIGRhdGEuZnVuY19hcmdzX3dpdGhvdXQpfX0KK3slIGVuZGZvciAlfXslIGVuZGlmICV9 Cit7JSBpZiBkYXRhLnJldm9rZV9hbGwgJX0KKwore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4s ICJQUk9DRURVUkUiLCAiUFVCTElDIiwgZGF0YS5uYW1lLCBkYXRhLnByb25hbWVzcGFjZSwgZGF0 YS5mdW5jX2FyZ3Nfd2l0aG91dCl9fQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZGVzY3JpcHRp b24gJX0KKworQ09NTUVOVCBPTiBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFt ZXNwYWNlLCBkYXRhLm5hbWUpIH19CisgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVy YWwgIH19OworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLnNlY2xhYmVscyAlfQoreyUgZm9yIHIg aW4gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmIHIubGFiZWwgYW5kIHIucHJvdmlkZXIgJX0KKwor e3sgU0VDTEFCRUwuU0VUKGNvbm4sICdQUk9DRURVUkUnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIs IHIubGFiZWwsIGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLmZ1bmNfYXJnc193aXRob3V0KSB9fQor eyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGVuZGlmICV9CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVs dC9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2Rl ZmF1bHQvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNGZj ZGMyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUv cGcvc3FsL2RlZmF1bHQvZGVsZXRlLnNxbApAQCAtMCwwICsxLDIxIEBACit7JSBpZiBzY2lkIGFu ZCBmbmlkICV9CitTRUxFQ1QKKyAgICBwci5wcm9uYW1lIGFzIG5hbWUsICcoJyB8fCBDT0FMRVND RShwZ19jYXRhbG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIu b2lkKSwgJycpIHx8ICcpJyBhcyBmdW5jX2FyZ3MsCisgICAgbnNwbmFtZQorRlJPTQorICAgIHBn X3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pP SU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCitXSEVS RQorICAgIHByLnByb2tpbmQgPSAncCc6OmNoYXIKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tz Y2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJp Z2dlcicpCisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OworeyUgZW5kaWYgJX0KKworeyUgaWYg bmFtZSAlfQorRFJPUCBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KG5zcG5hbWUsIG5hbWUpIH19 OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2Vk dXJlL3BnL3NxbC9kZWZhdWx0L2dldF9kZWZpbml0aW9uLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L2dldF9kZWZpbml0aW9uLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzJlOWQ5Ci0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvZ2V0X2RlZmlu aXRpb24uc3FsCkBAIC0wLDAgKzEsMTUgQEAKK1NFTEVDVAorICAgIHBnX2dldF9mdW5jdGlvbmRl Zih7e2ZuaWR9fTo6b2lkKSBBUyBmdW5jX2RlZiwKKyAgICBDT0FMRVNDRShwZ19jYXRhbG9nLnBn X2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIGFzCisgICAgZnVu Y193aXRoX2lkZW50aXR5X2FyZ3VtZW50cywKKyAgICBuc3BuYW1lLAorICAgIHByLnByb25hbWUg YXMgcHJvbmFtZSwKKyAgICBDT0FMRVNDRShwZ19jYXRhbG9nLnBnX2dldF9mdW5jdGlvbl9hcmd1 bWVudHMocHIub2lkKSwgJycpIGFzIGZ1bmNfYXJncworRlJPTQorICAgIHBnX3Byb2MgcHIKK0pP SU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCitXSEVS RQorICAgIHByLnByb2tpbmQgPSAncCc6OmNoYXIKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tz Y2lkfX06Om9pZAorICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTo6b2lkOwpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvZ2V0X2xhbmd1 YWdlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVs dC9nZXRfbGFuZ3VhZ2VzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m ODFkZGZiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1 cmUvcGcvc3FsL2RlZmF1bHQvZ2V0X2xhbmd1YWdlcy5zcWwKQEAgLTAsMCArMSw0IEBACitTRUxF Q1QKKyAgICBsYW5uYW1lIGFzIGxhYmVsLCBsYW5uYW1lIGFzIHZhbHVlCitGUk9NCisgICAgcGdf bGFuZ3VhZ2U7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9w Zy9zcWwvZGVmYXVsdC9nZXRfb2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2Vk dXJlL3BnL3NxbC9kZWZhdWx0L2dldF9vaWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmJlOThiNTMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9nZXRfb2lkLnNxbApAQCAtMCwwICsxLDE3IEBA CitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2Nh dGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAn JykgfHwgJyknIGFzIG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHByb293bmVy KSBhcyBmdW5jb3duZXIsIHByLnByb25hbWVzcGFjZSBBUyBuc3AKK0ZST00KKyAgICBwZ19wcm9j IHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisg ICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworSk9JTgorICAgIHBnX25hbWVz cGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKKyAgICBBTkQgbnNwLm5zcG5hbWU9 e3sgbnNwbmFtZXxxdExpdGVyYWwgfX0KK1dIRVJFCisgICAgcHIucHJva2luZCA9ICdwJzo6Y2hh cgorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisg ICAgQU5EIHByLnByb25hbWUgPSB7eyBuYW1lfHF0TGl0ZXJhbCB9fTsKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L2dldF9vdXRfdHlw ZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQv Z2V0X291dF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjRh MTE4NwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJl L3BnL3NxbC9kZWZhdWx0L2dldF9vdXRfdHlwZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNU CisgICAgZm9ybWF0X3R5cGUob2lkLCBOVUxMKSBBUyBvdXRfYXJnX3R5cGUKK0ZST00KKyAgICBw Z190eXBlCitXSEVSRQorICAgIG9pZCA9IHt7IG91dF9hcmdfb2lkIH19OjpvaWQ7CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9nZXRf c2NoZW1hLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZh dWx0L2dldF9zY2hlbWEuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEy N2Q0YjkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVy ZS9wZy9zcWwvZGVmYXVsdC9nZXRfc2NoZW1hLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAor ICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UKK1dIRVJFCisgICAgb2lkID0ge3sg c2NpZCB9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1 cmUvcGcvc3FsL2RlZmF1bHQvZ2V0X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv cHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L2dldF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uMmE1NTgyZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L2dldF90eXBlcy5zcWwKQEAgLTAs MCArMSwyMCBAQAorU0VMRUNUCisgICAgKgorRlJPTQorICAgIChTRUxFQ1QKKyAgICAgICAgZm9y bWF0X3R5cGUodC5vaWQsTlVMTCkgQVMgdHlwbmFtZSwKKyAgICAgICAgQ0FTRSBXSEVOIHR5cGVs ZW0gPiAwIFRIRU4gdHlwZWxlbSBFTFNFIHQub2lkIEVORCBhcyBlbGVtb2lkLCB0eXBsZW4sIHR5 cHR5cGUsIHQub2lkLCBuc3BuYW1lLAorICAgICAgICAoU0VMRUNUIENPVU5UKDEpIEZST00gcGdf dHlwZSB0MiBXSEVSRSB0Mi50eXBuYW1lID0gdC50eXBuYW1lKSA+IDEgQVMgaXNkdXAKKyAgICBG Uk9NCisgICAgICAgIHBnX3R5cGUgdAorICAgIEpPSU4KKyAgICAgICAgcGdfbmFtZXNwYWNlIG5z cCBPTiB0eXBuYW1lc3BhY2U9bnNwLm9pZAorICAgIFdIRVJFCisgICAgICAgIChOT1QgKHR5cG5h bWUgPSAndW5rbm93bicgQU5EIG5zcG5hbWUgPSAncGdfY2F0YWxvZycpKQorICAgIEFORAorICAg ICAgICAoCisgICAgICAgICAgICB0eXB0eXBlIElOICgnYicsICdjJywgJ2QnLCAnZScsICdwJywg J3InKQorICAgICAgICAgICAgQU5EIHR5cG5hbWUgTk9UIElOICgnYW55JywgJ3RyaWdnZXInLCAn bGFuZ3VhZ2VfaGFuZGxlcicsICdldmVudF90cmlnZ2VyJykKKyAgICAgICAgKQorICAgICkgQVMg ZHVtbXkKK09SREVSIEJZIG5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnLCBuc3BuYW1lIDw+ICdwdWJs aWMnLCBuc3BuYW1lLCAxOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcGcvc3FsL2RlZmF1bHQvbm9kZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3By b2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9ub2RlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi44OWRjNzY4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvbm9kZS5zcWwKQEAgLTAsMCArMSwyOSBAQAor U0VMRUNUCisgICAgcHIub2lkLAorICAgIENBU0UgV0hFTgorICAgICAgICBwZ19jYXRhbG9nLnBn X2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSA8PiAnJworICAgIFRIRU4K KyAgICAgICAgcHIucHJvbmFtZSB8fCAnKCcgfHwgcGdfY2F0YWxvZy5wZ19nZXRfZnVuY3Rpb25f aWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCkgfHwgJyknCisgICAgRUxTRQorICAgICAgICBwci5w cm9uYW1lCisgICAgRU5EIEFTIG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHBy b293bmVyKSBBUyBmdW5jb3duZXIsIGRlc2NyaXB0aW9uCitGUk9NCisgICAgcGdfcHJvYyBwcgor Sk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBn X2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBn X2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29pZD0n cGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwci5wcm9raW5kID0gJ3AnOjpjaGFyCit7 JSBpZiBmbmlkICV9CisgICAgQU5EIHByLm9pZCA9IHt7IGZuaWR8cXRMaXRlcmFsIH19Cit7JSBl bmRpZiAlfQoreyUgaWYgc2NpZCAlfQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6 b2lkCit7JSBlbmRpZiAlfQorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZl bnRfdHJpZ2dlcicpCitPUkRFUiBCWQorICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9wcm9wZXJ0aWVzLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L3Byb3BlcnRp ZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5YmVhODYKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVm YXVsdC9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDM5IEBACitTRUxFQ1QKKyAgICBwci5vaWQs IHByLnhtaW4sIHByLiosIHByLnByb3NyYyBBUyBwcm9zcmNfYywKKyAgICBwci5wcm9uYW1lIEFT IG5hbWUsIHBnX2dldF9mdW5jdGlvbl9yZXN1bHQocHIub2lkKSBBUyBwcm9yZXR0eXBlbmFtZSwK KyAgICB0eXBucy5uc3BuYW1lIEFTIHR5cG5zcCwgbGFubmFtZSwgcHJvYXJnbmFtZXMsIG9pZHZl Y3RvcnR5cGVzKHByb2FyZ3R5cGVzKSBBUyBwcm9hcmd0eXBlbmFtZXMsCisgICAgcGdfZ2V0X2V4 cHIocHJvYXJnZGVmYXVsdHMsICdwZ19jYXRhbG9nLnBnX2NsYXNzJzo6cmVnY2xhc3MpIEFTIHBy b2FyZ2RlZmF1bHR2YWxzLAorICAgIHByb25hcmdkZWZhdWx0cywgcHJvY29uZmlnLCBwZ19nZXRf dXNlcmJ5aWQocHJvb3duZXIpIEFTIGZ1bmNvd25lciwgZGVzY3JpcHRpb24sCisgICAgKENBU0Ug V0hFTgorICAgICAgICBwZ19jYXRhbG9nLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVu dHMocHIub2lkKSA8PiAnJworICAgIFRIRU4KKyAgICAgICAgcHIucHJvbmFtZSB8fCAnKCcgfHwg cGdfY2F0YWxvZy5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCkgfHwg JyknCisgICAgRUxTRQorICAgICAgICBwci5wcm9uYW1lCisgICAgRU5EKSBBUyBuYW1lX3dpdGhf YXJncywKKyAgICAoU0VMRUNUCisgICAgICAgIGFycmF5X2FnZyhwcm92aWRlciB8fCAnPScgfHwg bGFiZWwpCisgICAgRlJPTQorICAgICAgICBwZ19zZWNsYWJlbCBzbDEKKyAgICBXSEVSRQorICAg ICAgICBzbDEub2Jqb2lkPXByLm9pZCkgQVMgc2VjbGFiZWxzCitGUk9NCisgICAgcGdfcHJvYyBw cgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAg IHBnX25hbWVzcGFjZSB0eXBucyBPTiB0eXBucy5vaWQ9dHlwLnR5cG5hbWVzcGFjZQorSk9JTgor ICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgor ICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFz c29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwci5wcm9raW5kID0gJ3AnCisg ICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKK3slIGlm IGZuaWQgJX0KKyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX06Om9pZAoreyUgZWxzZSAlfQorICAg IEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCit7JSBlbmRpZiAlfQorT1JERVIgQlkK KyAgICBwcm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1 cmUvcGcvc3FsL2RlZmF1bHQvc3RhdHMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcGcvc3FsL2RlZmF1bHQvc3RhdHMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjJlMjc2YjYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9zdGF0cy5zcWwKQEAgLTAsMCArMSw4IEBACitT RUxFQ1QKKyAgICBjYWxscyBBUyB7eyBjb25ufHF0SWRlbnQoXygnTnVtYmVyIG9mIGNhbGxzJykp IH19LAorICAgIHRvdGFsX3RpbWUgQVMge3sgY29ubnxxdElkZW50KF8oJ1RvdGFsIHRpbWUnKSkg fX0sCisgICAgc2VsZl90aW1lIEFTIHt7IGNvbm58cXRJZGVudChfKCdTZWxmIHRpbWUnKSkgfX0K K0ZST00KKyAgICBwZ19zdGF0X3VzZXJfZnVuY3Rpb25zCitXSEVSRQorICAgIGZ1bmNpZCA9IHt7 Zm5pZH19OjpPSUQKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJl L3BnL3NxbC9kZWZhdWx0L3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2Nl ZHVyZS9wZy9zcWwvZGVmYXVsdC91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjM4Y2Q0MTMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC91cGRhdGUuc3FsCkBAIC0wLDAgKzEsOTAgQEAK K3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkVM ICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJ VklMRUdFICV9eyUgaWYgZGF0YSAlfQoreyUgc2V0IG5hbWUgPSBvX2RhdGEubmFtZSAlfQoreyUg aWYgZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FMVEVS IFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLm5h bWUpIH19eyUgaWYgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyAlfSh7eyBvX2RhdGEucHJvYXJndHlw ZW5hbWVzIH19KXslIGVuZGlmICV9CisKKyAgICBSRU5BTUUgVE8ge3sgY29ubnxxdElkZW50KGRh dGEubmFtZSkgfX07Cit7JSBzZXQgbmFtZSA9IGRhdGEubmFtZSAlfQoreyUgZW5kaWYgJX0KKwor eyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmNoYW5nZV9mdW5jICAlfQorQ1JFQVRFIE9SIFJFUExB Q0UgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9 fSh7JSBpZiBkYXRhLmFyZ3VtZW50cyAlfXslIGZvciBwIGluIGRhdGEuYXJndW1lbnRzICV9eyUg aWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFtZSAl fXt7IGNvbm58cXRJZGVudChwLmFyZ25hbWUpIH19IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBl ICV9e3sgY29ubnxxdFR5cGVJZGVudChwLmFyZ3R5cGUpIH19eyUgZW5kaWYgJX17JSBpZiBwLmFy Z2RlZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3Qg bG9vcC5sYXN0ICV9LCB7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQorKQor eyUgaWYgJ2xhbm5hbWUnIGluIGRhdGEgJX0KKyAgICBMQU5HVUFHRSB7eyBkYXRhLmxhbm5hbWV8 cXRMaXRlcmFsIH19IHslIGVsc2UgJX0KKyAgICBMQU5HVUFHRSB7eyBvX2RhdGEubGFubmFtZXxx dExpdGVyYWwgfX0KKyAgICB7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9zZWNkZWYnIGluIGRhdGEg YW5kIGRhdGEucHJvc2VjZGVmKSBvciAoJ3Byb3NlY2RlZicgbm90IGluIGRhdGEgYW5kIG9fZGF0 YS5wcm9zZWNkZWYpICV9U0VDVVJJVFkgREVGSU5FUnslIGVuZGlmICV9CisKK0FTIHslIGlmICdw cm9iaW4nIGluIGRhdGEgb3IgJ3Byb3NyY19jJyBpbiBkYXRhICV9Cit7JSBpZiAncHJvYmluJyBp biBkYXRhICV9e3sgZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19eyUgZWxzZSAlfXt7IG9fZGF0YS5w cm9iaW58cXRMaXRlcmFsIH19eyUgZW5kaWYgJX0sIHslIGlmICdwcm9zcmNfYycgaW4gZGF0YSAl fXt7IGRhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZWxzZSAlfXt7IG9fZGF0YS5wcm9zcmNf Y3xxdExpdGVyYWwgfX17JSBlbmRpZiAlfXslIGVsaWYgJ3Byb3NyYycgaW4gZGF0YSAlfQorJEJP RFkke3sgZGF0YS5wcm9zcmMgfX0kQk9EWSR7JSBlbGlmIG9fZGF0YS5sYW5uYW1lID09ICdjJyAl fQore3sgb19kYXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IG9fZGF0YS5wcm9zcmNfY3xxdExp dGVyYWwgfX17JSBlbHNlICV9CiskQk9EWSR7eyBvX2RhdGEucHJvc3JjIH19JEJPRFkkeyUgZW5k aWYgLSV9OworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmZ1bmNvd25lciAlfQorCitBTFRFUiBQ Uk9DRURVUkUge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19eyUg aWYgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyAlfSh7eyBvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19 KXslIGVuZGlmICV9CisgICAgT1dORVIgVE8ge3sgZGF0YS5mdW5jb3duZXIgfX07Cit7JSBlbmRp ZiAtJX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZpbGVkZ2Vz ICN9Cit7JSBpZiBkYXRhLmFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuYWNsICV9Cit7 JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5kZWxldGVkICV9CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFM TChjb25uLCAnUFJPQ0VEVVJFJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEucHJvbmFtZXNw YWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAt JX0KK3slIGlmICdjaGFuZ2VkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0 YS5hY2wuY2hhbmdlZCAlfQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ1BST0NFRFVS RScsIHByaXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2Fy Z3R5cGVuYW1lcykgfX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgcHJp di5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsCisgcHJpdi53aXRoX2dyYW50LCBv X2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcgaW4gZGF0YS5hY2wgJX0KK3slIGZvciBw cml2IGluIGRhdGEuYWNsLmFkZGVkICV9CisKK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1BST0NF RFVSRScsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhf Z3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7 JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAtJX0KK3slIHNldCBzZWNsYWJlbHMg PSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2Vj bGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0 ZWQgJX0KKwore3sgU0VDTEFCRUwuVU5TRVQoY29ubiwgJ1BST0NFRFVSRScsIG5hbWUsIHIucHJv dmlkZXIsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7 JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5k IHNlY2xhYmVscy5hZGRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRk ZWQgJX0KKwore3sgU0VDTEFCRUwuU0VUKGNvbm4sICdQUk9DRURVUkUnLCBuYW1lLCByLnByb3Zp ZGVyLCByLmxhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVz KSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNs YWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNl Y2xhYmVscy5jaGFuZ2VkICV9CisKK3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnUFJPQ0VEVVJFJywg bmFtZSwgci5wcm92aWRlciwgci5sYWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnBy b2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRh LmRlc2NyaXB0aW9uIGlzIGRlZmluZWQgYW5kIGRhdGEuZGVzY3JpcHRpb24gIT0gb19kYXRhLmRl c2NyaXB0aW9uJX0KKworQ09NTUVOVCBPTiBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KG9fZGF0 YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19CisgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExp dGVyYWwgfX07Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEucHJvbmFtZXNwYWNlICV9CisKK0FM VEVSIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkg fX0KKyAgICBTRVQgU0NIRU1BIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSkgfX07 Cit7JSBlbmRpZiAtJX0KKworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L3ZhcmlhYmxlcy5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC92YXJpYWJsZXMuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMzNjNzEKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC92YXJp YWJsZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgbmFtZSwgdmFydHlwZSwgbWlu X3ZhbCwgbWF4X3ZhbCwgZW51bXZhbHMKK0ZST00KKyAgICBwZ19zZXR0aW5ncworV0hFUkUKKyAg ICBjb250ZXh0IGluICgndXNlcicsICdzdXBlcnVzZXInKTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9jb2xsX3N0YXRz LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFf cGx1cy9jb2xsX3N0YXRzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j ZDhjZWNkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2Vy X2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL2NvbGxfc3RhdHMuc3FsCkBAIC0wLDAgKzEsMjAgQEAK K1NFTEVDVAorICAgIGZ1bmNuYW1lIEFTIHt7IGNvbm58cXRJZGVudChfKCdOYW1lJykpIH19LAor ICAgIGNhbGxzIEFTIHt7IGNvbm58cXRJZGVudChfKCdOdW1iZXIgb2YgY2FsbHMnKSkgfX0sCisg ICAgdG90YWxfdGltZSBBUyB7eyBjb25ufHF0SWRlbnQoXygnVG90YWwgdGltZScpKSB9fSwKKyAg ICBzZWxmX3RpbWUgQVMge3sgY29ubnxxdElkZW50KF8oJ1NlbGYgdGltZScpKSB9fQorRlJPTQor ICAgIHBnX3N0YXRfdXNlcl9mdW5jdGlvbnMKK1dIRVJFCisgICAgc2NoZW1hbmFtZSA9IHt7c2No ZW1hX25hbWV8cXRMaXRlcmFsfX0KKyAgICBBTkQgZnVuY2lkIElOICgKKyAgICAgICAgU0VMRUNU IHAub2lkCisgICAgICAgIEZST00KKyAgICAgICAgICAgIHBnX3Byb2MgcAorICAgICAgICBKT0lO CisgICAgICAgICAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXAucHJvcmV0dHlwZQorICAgICAg ICBXSEVSRQorICAgICAgICAgICAgcC5wcm9raW5kIElOICgnZicsICd3JykKKyAgICAgICAgICAg IEFORCB0eXBuYW1lID0gJ3RyaWdnZXInCisgICAgKQorT1JERVIgQlkgZnVuY25hbWU7CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3RyaWdnZXJfZnVuY3Rpb24vcGcvc3FsLzEx X3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlv bi9wZy9zcWwvMTFfcGx1cy9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjIwNDk5YTkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L3RyaWdnZXJfZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvY3JlYXRlLnNxbApAQCAtMCwwICsxLDU3 IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNM QUJFTCAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3MnIGFz IFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ZhcmlhYmxlLm1hY3Jv cycgYXMgVkFSSUFCTEUgJX0KK3slIHNldCBpc19jb2x1bW5zID0gW10gJX0KK3slIGlmIGRhdGEg JX0KK0NSRUFURSBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRh dGEubmFtZSkgfX0oeyUgaWYgZGF0YS5wcm9hcmduYW1lcyAlfXt7ZGF0YS5wcm9hcmduYW1lc319 eyUgZW5kaWYgJX0pCisgICAgUkVUVVJOU3slIGlmIGRhdGEucHJvcmV0c2V0ICV9IFNFVE9GeyUg ZW5kaWYgJX0ge3sgY29ubnxxdFR5cGVJZGVudChkYXRhLnByb3JldHR5cGVuYW1lKSB9fQorICAg IExBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxxdExpdGVyYWwgfX0KK3slIGlmIGRhdGEucHJvY29z dCAlfQorICAgIENPU1Qge3tkYXRhLnByb2Nvc3R9fQoreyUgZW5kaWYgJX0KKyAgICB7JSBpZiBk YXRhLnByb3ZvbGF0aWxlICV9eyUgaWYgZGF0YS5wcm92b2xhdGlsZSA9PSAnaScgJX1JTU1VVEFC TEV7JSBlbGlmIGRhdGEucHJvdm9sYXRpbGUgPT0gJ3MnICV9U1RBQkxFeyUgZWxzZSAlfVZPTEFU SUxFeyUgZW5kaWYgJX0geyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb2xlYWtwcm9vZiAlfUxFQUtQ Uk9PRiB7JSBlbHNlICV9Tk9UIExFQUtQUk9PRiB7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9p c3N0cmljdCAlfVNUUklDVCB7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9zZWNkZWYgJX1TRUNV UklUWSBERUZJTkVSIHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb2lzd2luZG93ICV9V0lORE9X eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvcm93cyBhbmQgKGRhdGEucHJvcm93cyB8IGludCkg PiAwICV9CisKKyAgICBST1dTIHt7ZGF0YS5wcm9yb3dzfX17JSBlbmRpZiAtJX17JSBpZiBkYXRh LnZhcmlhYmxlcyAlfXslIGZvciB2IGluIGRhdGEudmFyaWFibGVzICV9CisKKyAgICBTRVQge3sg Y29ubnxxdElkZW50KHYubmFtZSkgfX09e3sgdi52YWx1ZXxxdExpdGVyYWwgfX17JSBlbmRmb3Ig JX0KK3slIGVuZGlmICV9CisKK0FTIHslIGlmIGRhdGEubGFubmFtZSA9PSAnYycgJX0KK3t7IGRh dGEucHJvYmlufHF0TGl0ZXJhbCB9fSwge3sgZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX0KK3sl IGVsc2UgJX0KKyRCT0RZJAore3sgZGF0YS5wcm9zcmMgfX0KKyRCT0RZJHslIGVuZGlmIC0lfTsK K3slIGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVu dChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7e2RhdGEuZnVuY19hcmdzfX0pCisg ICAgT1dORVIgVE8ge3sgY29ubnxxdElkZW50KGRhdGEuZnVuY293bmVyKSB9fTsKK3slIGVuZGlm IC0lfQoreyUgaWYgZGF0YS5hY2wgJX0KK3slIGZvciBwIGluIGRhdGEuYWNsICV9CisKK3t7IFBS SVZJTEVHRS5TRVQoY29ubiwgIkZVTkNUSU9OIiwgcC5ncmFudGVlLCBkYXRhLm5hbWUsIHAud2l0 aG91dF9ncmFudCwgcC53aXRoX2dyYW50LCBkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5mdW5jX2Fy Z3MpfX0KK3slIGVuZGZvciAlfXslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnJldm9rZV9hbGwgJX0K Kwore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICJGVU5DVElPTiIsICJQVUJMSUMiLCBkYXRh Lm5hbWUsIGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLmZ1bmNfYXJnc193aXRob3V0KX19Cit7JSBl bmRpZiAlfQoreyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorCitDT01NRU5UIE9OIEZVTkNUSU9O IHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7e2RhdGEu ZnVuY19hcmdzfX0pCisgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWwgIH19Owor eyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLnNlY2xhYmVscyAlfQoreyUgZm9yIHIgaW4gZGF0YS5z ZWNsYWJlbHMgJX0KK3slIGlmIHIubGFiZWwgYW5kIHIucHJvdmlkZXIgJX0KKwore3sgU0VDTEFC RUwuU0VUKGNvbm4sICdGVU5DVElPTicsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5sYWJlbCwg ZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19hcmdzKSB9fQoreyUgZW5kaWYgJX0KK3slIGVu ZGZvciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3RyaWdnZXJfZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvZGVsZXRlLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1 cy9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3ZjkwNmIK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3RyaWdnZXJfZnVuY3Rp b24vcGcvc3FsLzExX3BsdXMvZGVsZXRlLnNxbApAQCAtMCwwICsxLDIxIEBACit7JSBpZiBzY2lk IGFuZCBmbmlkICV9CitTRUxFQ1QKKyAgICBwci5wcm9uYW1lIGFzIG5hbWUsICcoJyB8fCBDT0FM RVNDRShwZ19jYXRhbG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMo cHIub2lkKSwgJycpIHx8ICcpJyBhcyBmdW5jX2FyZ3MsCisgICAgbnNwbmFtZQorRlJPTQorICAg IHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUK K0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCitX SEVSRQorICAgIHByLnByb2tpbmQgSU4gKCdmJywgJ3cnKQorICAgIEFORCBwcm9uYW1lc3BhY2Ug PSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3Ry aWdnZXInKQorICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTsKK3slIGVuZGlmICV9CisKK3slIGlm IG5hbWUgJX0KK0RST1AgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG5zcG5hbWUsIG5hbWUpIH19 e3tmdW5jX2FyZ3N9fXslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERXslIGVuZGlmICV9OworeyUgZW5k aWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlv bi9wZy9zcWwvMTFfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL3RyaWdnZXJfZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiMjVkYmYKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3RyaWdnZXJfZnVuY3Rpb24vcGcvc3FsLzExX3Bs dXMvZ2V0X2RlZmluaXRpb24uc3FsCkBAIC0wLDAgKzEsMTUgQEAKK1NFTEVDVAorICAgIHBnX2dl dF9mdW5jdGlvbmRlZih7e2ZuaWR9fTo6b2lkKSBBUyBmdW5jX2RlZiwKKyAgICBDT0FMRVNDRShw Z19jYXRhbG9nLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycp IGFzCisgICAgZnVuY193aXRoX2lkZW50aXR5X2FyZ3VtZW50cywKKyAgICBuc3BuYW1lLAorICAg IHByLnByb25hbWUgYXMgcHJvbmFtZSwKKyAgICBDT0FMRVNDRShwZ19jYXRhbG9nLnBnX2dldF9m dW5jdGlvbl9hcmd1bWVudHMocHIub2lkKSwgJycpIGFzIGZ1bmNfYXJncworRlJPTQorICAgIHBn X3Byb2MgcHIKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFt ZXNwYWNlCitXSEVSRQorICAgIHByLnByb2tpbmQgSU4gKCdmJywgJ3cnKQorICAgIEFORCBwcm9u YW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OjpvaWQ7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3RyaWdnZXJfZnVuY3Rpb24vcGcv c3FsLzExX3BsdXMvZ2V0X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3RyaWdnZXJf ZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvZ2V0X29pZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uNDEzZGY5MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9nZXRfb2lkLnNxbApAQCAt MCwwICsxLDE4IEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnByb25hbWUgfHwgJygnIHx8IENP QUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50 cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJi eWlkKHByb293bmVyKSBhcyBmdW5jb3duZXIsIHByLnByb25hbWVzcGFjZSBBUyBuc3AKK0ZST00K KyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0 eXBlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworSk9JTgor ICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKKyAgICBBTkQg bnNwLm5zcG5hbWU9e3sgbnNwbmFtZXxxdExpdGVyYWwgfX0KK1dIRVJFCisgICAgcHIucHJva2lu ZCBJTiAoJ2YnLCAndycpCisgICAgQU5EIHR5cG5hbWUgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3Ry aWdnZXInKQorICAgIEFORCBsYW5uYW1lIE5PVCBJTiAoJ2VkYnNwbCcsICdzcWwnLCAnaW50ZXJu YWwnKQorICAgIEFORCBwci5wcm9uYW1lID0ge3sgbmFtZXxxdExpdGVyYWwgfX07CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3RyaWdnZXJfZnVuY3Rpb24vcGcvc3FsLzExX3Bs dXMvbm9kZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3RyaWdnZXJfZnVuY3Rpb24vcGcv c3FsLzExX3BsdXMvbm9kZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NTVkN2M1NAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dl cl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9ub2RlLnNxbApAQCAtMCwwICsxLDIzIEBACitTRUxF Q1QKKyAgICBwci5vaWQsIHByLnByb25hbWUgfHwgJygpJyBhcyBuYW1lLAorICAgIGxhbm5hbWUs IHBnX2dldF91c2VyYnlpZChwcm9vd25lcikgYXMgZnVuY293bmVyLCBkZXNjcmlwdGlvbgorRlJP TQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3Jl dHR5cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitMRUZU IE9VVEVSIEpPSU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cHIub2lk IEFORCBkZXMuY2xhc3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dIRVJFCisgICAgcHIucHJv a2luZCBJTiAoJ2YnLCAndycpCit7JSBpZiBmbmlkICV9CisgICAgQU5EIHByLm9pZCA9IHt7IGZu aWR8cXRMaXRlcmFsIH19Cit7JSBlbmRpZiAlfQoreyUgaWYgc2NpZCAlfQorICAgIEFORCBwcm9u YW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCit7JSBlbmRpZiAlfQorICAgIEFORCB0eXBuYW1lIElO ICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKKyAgICBBTkQgbGFubmFtZSBOT1QgSU4gKCdl ZGJzcGwnLCAnc3FsJywgJ2ludGVybmFsJykKK09SREVSIEJZCisgICAgcHJvbmFtZTsKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFf cGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5j dGlvbi9wZy9zcWwvMTFfcGx1cy9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4wOWQ3ODY2Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL3Byb3BlcnRpZXMuc3FsCkBA IC0wLDAgKzEsMzMgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIueG1pbiwgcHIuKiwgcHIucHJv c3JjIEFTIHByb3NyY19jLAorICAgIHByLnByb25hbWUgQVMgbmFtZSwgcGdfZ2V0X2Z1bmN0aW9u X3Jlc3VsdChwci5vaWQpIEFTIHByb3JldHR5cGVuYW1lLAorICAgIHR5cG5zLm5zcG5hbWUgQVMg dHlwbnNwLCBsYW5uYW1lLCBwcm9hcmduYW1lcywgb2lkdmVjdG9ydHlwZXMocHJvYXJndHlwZXMp IEFTIHByb2FyZ3R5cGVuYW1lcywKKyAgICBwZ19nZXRfZXhwcihwcm9hcmdkZWZhdWx0cywgJ3Bn X2NhdGFsb2cucGdfY2xhc3MnOjpyZWdjbGFzcykgQVMgcHJvYXJnZGVmYXVsdHZhbHMsCisgICAg cHJvbmFyZ2RlZmF1bHRzLCBwcm9jb25maWcsIHBnX2dldF91c2VyYnlpZChwcm9vd25lcikgQVMg ZnVuY293bmVyLCBkZXNjcmlwdGlvbiwKKyAgICAoU0VMRUNUCisgICAgICAgIGFycmF5X2FnZyhw cm92aWRlciB8fCAnPScgfHwgbGFiZWwpCisgICAgRlJPTQorICAgICAgICBwZ19zZWNsYWJlbCBz bDEKKyAgICBXSEVSRQorICAgICAgICBzbDEub2Jqb2lkPXByLm9pZCkgQVMgc2VjbGFiZWxzCitG Uk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJv cmV0dHlwZQorSk9JTgorICAgIHBnX25hbWVzcGFjZSB0eXBucyBPTiB0eXBucy5vaWQ9dHlwLnR5 cG5hbWVzcGFjZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcK K0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1w ci5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBw ci5wcm9raW5kIElOICgnZicsICd3JykKKyAgICBBTkQgdHlwbmFtZSBJTiAoJ3RyaWdnZXInLCAn ZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIGxhbm5hbWUgTk9UIElOICgnZWRic3BsJywgJ3NxbCcs ICdpbnRlcm5hbCcpCit7JSBpZiBmbmlkICV9CisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19Ojpv aWQKK3slIGVsc2UgJX0KKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAoreyUg ZW5kaWYgJX0KK09SREVSIEJZCisgICAgcHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy91cGRhdGUuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL3Vw ZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDEzYmU2MgotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9w Zy9zcWwvMTFfcGx1cy91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMTA5IEBACit7JSBpbXBvcnQgJ21h Y3Jvcy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJFTCAlfQoreyUgaW1wb3J0 ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUg aW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX17 JSBpZiBkYXRhICV9Cit7JSBzZXQgbmFtZSA9IG9fZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5h bWUgJX0KK3slIGlmIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfQorQUxURVIgRlVOQ1RJT04g e3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5uYW1lKSB9fSh7ewor b19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBSRU5BTUUgVE8ge3sgY29ubnxxdElkZW50 KGRhdGEubmFtZSkgfX07Cit7JSBzZXQgbmFtZSA9IGRhdGEubmFtZSAlfQoreyUgZW5kaWYgJX0K K3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5jaGFuZ2VfZnVuYyAgJX0KKworQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUp IH19KCkKKyAgICBSRVRVUk5TIHt7IG9fZGF0YS5wcm9yZXR0eXBlbmFtZSB9fQoreyUgaWYgJ2xh bm5hbWUnIGluIGRhdGEgJX0KKyAgICBMQU5HVUFHRSB7eyBkYXRhLmxhbm5hbWV8cXRMaXRlcmFs IH19IHslIGVsc2UgJX0KKyAgICBMQU5HVUFHRSB7eyBvX2RhdGEubGFubmFtZXxxdExpdGVyYWwg fX0KKyAgICB7JSBlbmRpZiAlfXslIGlmICdwcm92b2xhdGlsZScgaW4gZGF0YSBhbmQgZGF0YS5w cm92b2xhdGlsZSAlfXt7IGRhdGEucHJvdm9sYXRpbGUgfX0geyUgZWxpZiAncHJvdm9sYXRpbGUn IG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvdm9sYXRpbGUgJX17eyBvX2RhdGEucHJvdm9sYXRp bGUgfX17JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9sZWFrcHJvb2YnIGluIGRhdGEgYW5kIGRhdGEu cHJvbGVha3Byb29mKSBvciAoJ3Byb2xlYWtwcm9vZicgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5w cm9sZWFrcHJvb2YpICV9IExFQUtQUk9PRnslIGVsaWYgJ3Byb2xlYWtwcm9vZicgaW4gZGF0YSBh bmQgbm90IGRhdGEucHJvbGVha3Byb29mICV9IE5PVCBMRUFLUFJPT0Z7JSBlbmRpZiAlfQoreyUg aWYgKCdwcm9pc3N0cmljdCcgaW4gZGF0YSBhbmQgZGF0YS5wcm9pc3N0cmljdCkgb3IgKCdwcm9p c3N0cmljdCcgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9pc3N0cmljdCkgJX0gU1RSSUNUeyUg ZW5kaWYgJX0KK3slIGlmICgncHJvc2VjZGVmJyBpbiBkYXRhIGFuZCBkYXRhLnByb3NlY2RlZikg b3IgKCdwcm9zZWNkZWYnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvc2VjZGVmKSAlfSBTRUNV UklUWSBERUZJTkVSeyUgZW5kaWYgJX0KK3slIGlmICgncHJvaXN3aW5kb3cnIGluIGRhdGEgYW5k IGRhdGEucHJvaXN3aW5kb3cpIG9yICgncHJvaXN3aW5kb3cnIG5vdCBpbiBkYXRhIGFuZCBvX2Rh dGEucHJvaXN3aW5kb3cpICV9IFdJTkRPV3slIGVuZGlmICV9CisKKyAgICB7JSBpZiBkYXRhLnBy b2Nvc3QgJX1DT1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbGlmIG9fZGF0YS5wcm9jb3N0ICV9Q09T VCB7e29fZGF0YS5wcm9jb3N0fX17JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvcm93cyAlfQorCisg ICAgUk9XUyB7e2RhdGEucHJvcm93c319eyUgZWxpZiBkYXRhLnByb3Jvd3MgaXMgbm90IGRlZmlu ZWQgYW5kIG9fZGF0YS5wcm9yb3dzIGFuZCBvX2RhdGEucHJvcm93cyAhPSAnMCcgJX0gICAgUk9X UyB7e29fZGF0YS5wcm9yb3dzfX0geyVlbmRpZiAtJX17JSBpZiBkYXRhLm1lcmdlZF92YXJpYWJs ZXMgJX17JSBmb3IgdiBpbiBkYXRhLm1lcmdlZF92YXJpYWJsZXMgJX0KKworICAgIFNFVCB7eyBj b25ufHF0SWRlbnQodi5uYW1lKSB9fT17eyB2LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVuZGZvciAt JX0KKyAgICB7JSBlbmRpZiAlfQorCitBUyB7JSBpZiAncHJvYmluJyBpbiBkYXRhIG9yICdwcm9z cmNfYycgaW4gZGF0YSAlfQoreyUgaWYgJ3Byb2JpbicgaW4gZGF0YSAlfXt7IGRhdGEucHJvYmlu fHF0TGl0ZXJhbCB9fXslIGVsc2UgJX17eyBvX2RhdGEucHJvYmlufHF0TGl0ZXJhbCB9fXslIGVu ZGlmICV9LCB7JSBpZiAncHJvc3JjX2MnIGluIGRhdGEgJX17eyBkYXRhLnByb3NyY19jfHF0TGl0 ZXJhbCB9fXslIGVsc2UgJX17eyBvX2RhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZW5kaWYg JX17JSBlbGlmICdwcm9zcmMnIGluIGRhdGEgJX0KKyRCT0RZJHt7IGRhdGEucHJvc3JjIH19JEJP RFkkeyUgZWxpZiBvX2RhdGEubGFubmFtZSA9PSAnYycgJX0KK3t7IG9fZGF0YS5wcm9iaW58cXRM aXRlcmFsIH19LCB7eyBvX2RhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZWxzZSAlfQorJEJP RFkke3sgb19kYXRhLnByb3NyYyB9fSRCT0RZJHslIGVuZGlmIC0lfTsKK3slIGVuZGlmIC0lfQor eyUgaWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50 KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7b19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9 fSkKKyAgICBPV05FUiBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5mdW5jb3duZXIpIH19OworeyUg ZW5kaWYgLSV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxl ZGdlcyAjfQoreyUgaWYgZGF0YS5hY2wgJX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLmFjbCAl fQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuZGVsZXRlZCAlfQorCit7eyBQUklWSUxFR0UuVU5T RVRBTEwoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEucHJvbmFt ZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4g ZGF0YS5hY2wuY2hhbmdlZCAlfQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNU SU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJv YXJndHlwZW5hbWVzKSB9fQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdGVU5DVElPTicsIHBy aXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIG9f ZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHBy aXYgaW4gZGF0YS5hY2wuYWRkZWQgJX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAnRlVOQ1RJ T04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dy YW50LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUg ZW5kZm9yICV9eyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuY2hhbmdlX2Z1 bmMgPT0gRmFsc2UgJX0KK3slIGlmIGRhdGEudmFyaWFibGVzICV9Cit7JSBpZiAnZGVsZXRlZCcg aW4gZGF0YS52YXJpYWJsZXMgYW5kIGRhdGEudmFyaWFibGVzLmRlbGV0ZWR8bGVuZ3RoID4gMCAl fQorCit7eyBWQVJJQUJMRS5VTlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCBkYXRhLnZhcmlh Ymxlcy5kZWxldGVkLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVz KSB9fQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnbWVyZ2VkX3ZhcmlhYmxlcycgaW4gZGF0YSBhbmQg ZGF0YS5tZXJnZWRfdmFyaWFibGVzfGxlbmd0aCA+IDAgJX0KKwore3sgVkFSSUFCTEUuU0VUKGNv bm4sICdGVU5DVElPTicsIG5hbWUsIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcywgb19kYXRhLnByb25h bWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGlmIC0lfQoreyUgZW5k aWYgLSV9Cit7JSBlbmRpZiAtJX0KK3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAl fQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8bGVu Z3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQgJX0KKwore3sgU0VDTEFC RUwuVU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgb19kYXRhLnByb25h bWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5k aWYgLSV9Cit7JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxl bmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQorCit7eyBTRUNMQUJF TC5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgci5sYWJlbCwgb19kYXRh LnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgLSV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMu Y2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQor Cit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgci5s YWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3sl IGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uIGlzIGRlZmlu ZWQgYW5kIGRhdGEuZGVzY3JpcHRpb24gIT0gb19kYXRhLmRlc2NyaXB0aW9uJX0KKworQ09NTUVO VCBPTiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkg fX0oe3tvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIElTIHt7IGRhdGEuZGVzY3JpcHRp b258cXRMaXRlcmFsIH19OworeyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEucHJvbmFtZXNwYWNl ICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNl LCBuYW1lKSB9fSh7e29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgU0VUIFNDSEVNQSB7 eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UpIH19OworeyUgZW5kaWYgLSV9CisKK3sl IGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9h ZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9hZGQucHkKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFlZTI4NQotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0aW9uX2FkZC5weQpAQCAtMCwwICsxLDgwIEBACisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisj IENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTgsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0K KyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNl CisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQganNvbgoraW1wb3J0IHV1aWQKKworCitm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3Rz IGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbi5weXRob25f dGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGls cyBhcyBmdW5jc191dGlscworCisKK2NsYXNzIEZ1bmN0aW9uQWRkVGVzdENhc2UoQmFzZVRlc3RH ZW5lcmF0b3IpOgorICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRkIG5ldyBmdW5jdGlvbiB1bmRl ciBzY2hlbWEgbm9kZS4gIiIiCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5n IGRlZmF1bHQgVVJMIGZvciBmdW5jdGlvbiBub2RlLgorICAgICAgICAoJ0ZldGNoIEZ1bmN0aW9u IE5vZGUgVVJMJywgZGljdCgKKyAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vb2Jq LycpKQorICAgIF0KKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBm dW5jdGlvbiB3aWxsIGFkZCBmdW5jdGlvbiB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCisgICAgICAg IHN1cGVyKEZ1bmN0aW9uQWRkVGVzdENhc2UsIHNlbGYpLnJ1blRlc3QoKQorICAgICAgICBzZWxm ID0gZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYpCisgICAgICAgIGRiX3VzZXIgPSBzZWxmLnNlcnZl clsidXNlcm5hbWUiXQorICAgICAgICBkYXRhID0geworICAgICAgICAgICAgImFjbCI6IFsKKyAg ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJncmFudGVlIjogZGJfdXNlciwK KyAgICAgICAgICAgICAgICAgICAgImdyYW50b3IiOiBkYl91c2VyLAorICAgICAgICAgICAgICAg ICAgICAicHJpdmlsZWdlcyI6CisgICAgICAgICAgICAgICAgICAgICAgICBbCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJp dmlsZWdlX3R5cGUiOiAiWCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcml2 aWxlZ2UiOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2l0aF9ncmFu dCI6IFRydWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg ICAgICAgICBdCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAg ICJhcmd1bWVudHMiOiBbXSwKKyAgICAgICAgICAgICJmdW5jb3duZXIiOiBkYl91c2VyLAorICAg ICAgICAgICAgImxhbm5hbWUiOiAic3FsIiwKKyAgICAgICAgICAgICJuYW1lIjogInRlc3RfZnVu Y3Rpb24iLAorICAgICAgICAgICAgIm9wdGlvbnMiOiBbXSwKKyAgICAgICAgICAgICJwcm9sZWFr cHJvb2YiOiBUcnVlLAorICAgICAgICAgICAgInByb25hbWVzcGFjZSI6IDIyMDAsCisgICAgICAg ICAgICAicHJvcmV0dHlwZW5hbWUiOiAiaW50ZWdlciIsCisgICAgICAgICAgICAicHJvc2VjZGVm IjogVHJ1ZSwKKyAgICAgICAgICAgICJwcm9zcmMiOiAiU0VMRUNUIDE7IiwKKyAgICAgICAgICAg ICJwcm9iaW4iOiAiJGxpYmRpci8iLAorICAgICAgICAgICAgInByb3ZvbGF0aWxlIjogInMiLAor ICAgICAgICAgICAgInNlY2xhYmVscyI6IFtdLAorICAgICAgICAgICAgInZhcmlhYmxlcyI6IFtd CisgICAgICAgIH0KKworICAgICAgICBkYXRhWyJuYW1lIl0gPSAidGVzdF9mdW5jdGlvbl9hZGRf JXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBpZiBzZWxmLnNjaGVtYV9pZDoK KyAgICAgICAgICAgIGRhdGFbJ3Byb25hbWVzcGFjZSddID0gc2VsZi5zY2hlbWFfaWQKKyAgICAg ICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gZGF0YVsncHJvbmFtZXNwYWNl J10KKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAorICAgICAgICAgICAgc2Vs Zi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIo c2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQpICsKKyAgICAgICAgICAgICcv JyArIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycsCisgICAgICAgICAgICBkYXRhPWpzb24uZHVt cHMoZGF0YSksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAgICAg KQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDAp CisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRp bHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0aW9uX2RlbGV0ZS5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0aW9uX2RlbGV0ZS5weQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi43OWE4OWZhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZGVsZXRlLnB5CkBAIC0wLDAgKzEsNDkgQEAKKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMg Q29weXJpZ2h0IChDKSAyMDEzIC0gMjAxOCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQor IyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UK KyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCB1dWlkCisKK2Zyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFz IFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBC YXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9y dCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZ1bmNzX3V0aWxz CisKKworY2xhc3MgRnVuY3Rpb25EZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Cisg ICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBkZWxldGUgdGhlIGZ1bmN0aW9uIHVuZGVyIHNjaGVtYSBu b2RlLiAiIiIKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBV UkwgZm9yIGZ1bmN0aW9uIG5vZGUuCisgICAgICAgICgnRmV0Y2ggRnVuY3Rpb24gTm9kZSBVUkwn LAorICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL29iai8nKSkKKyAgICBdCisK KyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBk ZWxldGUgZnVuY3Rpb24gdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCisgICAgICAgIHN1cGVyKEZ1 bmN0aW9uRGVsZXRlVGVzdENhc2UsIHNlbGYpLnNldFVwKCkKKyAgICAgICAgc2VsZiA9IGZ1bmNz X3V0aWxzLnNldF91cChzZWxmKQorCisgICAgICAgIGZ1bmNfbmFtZSA9ICJ0ZXN0X2Z1bmN0aW9u X2RlbGV0ZV8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAgIGZ1bmN0aW9uX2lu Zm8gPSBmdW5jc191dGlscy5jcmVhdGVfZnVuY3Rpb24oCisgICAgICAgICAgICBzZWxmLnNlcnZl ciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBmdW5jX25hbWUpCisKKyAgICAgICAg ZnVuY19pZCA9IGZ1bmN0aW9uX2luZm9bMF0KKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5kZWxldGUoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVAp ICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKworICAgICAg ICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNjaGVt YV9pZCkgKyAnLycgKyBzdHIoZnVuY19pZCksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0 bWwvanNvbicKKyAgICAgICAgKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5z dGF0dXNfY29kZSwgMjAwKQorICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAg ICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJf aWQsIHNlbGYuZGJfaWQpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIHBhc3MK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0aW9uX2dldC5weSBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0aW9uX2dldC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4zMmE1NTg1Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZ2V0LnB5CkBAIC0wLDAgKzEsNDkgQEAKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0 IChDKSAyMDEzIC0gMjAxOCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNv ZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisKK2ltcG9ydCB1dWlkCisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBk YXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0 aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZ1bmNzX3V0aWxzCisKKworY2xh c3MgRnVuY3Rpb25HZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBj bGFzcyB3aWxsIGZldGNoIGFkZGVkIGZ1bmN0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiIiIgorICAg IHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAg IyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZnVuY3Rpb24gbm9kZS4KKyAgICAgICAgKCdGZXRj aCBGdW5jdGlvbiBOb2RlIFVSTCcsCisgICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvZnVuY3Rp b24vb2JqLycpKQorICAgIF0KKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIg VGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBmdW5jdGlvbiB1bmRlciBkYXRhYmFzZSBub2RlLiAi IiIKKyAgICAgICAgc3VwZXIoRnVuY3Rpb25HZXRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQorICAg ICAgICBzZWxmID0gZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYpCisKKyAgICAgICAgZnVuY19uYW1l ID0gInRlc3RfZnVuY3Rpb25fZ2V0XyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAg ICAgZnVuY3Rpb25faW5mbyA9IGZ1bmNzX3V0aWxzLmNyZWF0ZV9mdW5jdGlvbigKKyAgICAgICAg ICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIGZ1bmNfbmFt ZSkKKworICAgICAgICB0cmlnZ2VyX2Z1bmNfaWQgPSBmdW5jdGlvbl9pbmZvWzBdCisgICAgICAg IHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIo dXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJf aWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCisgICAgICAg ICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsgc3RyKHRyaWdnZXJfZnVuY19pZCksCisg ICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisgICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgICMgRGlzY29ubmVjdCB0 aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShz ZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxm KToKKyAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVu Y3Rpb25fcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fcHV0LnB5Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1NjU2ODcKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9wdXQucHkKQEAgLTAsMCArMSw1 NyBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29s cworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE4LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVu dCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwg TGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IGpzb24KK2ltcG9ydCB1dWlk CisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu dGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWlu LnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uLnB5 dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0 IHV0aWxzIGFzIGZ1bmNzX3V0aWxzCisKKworY2xhc3MgRnVuY3Rpb25QdXRUZXN0Q2FzZShCYXNl VGVzdEdlbmVyYXRvcik6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCB1cGRhdGUgbmV3IGZ1bmN0 aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKyAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRi J10KKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9y IGZ1bmN0aW9uIG5vZGUuCisgICAgICAgICgnRmV0Y2ggRnVuY3Rpb24gTm9kZSBVUkwnLAorICAg ICAgICAgZGljdCh1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL29iai8nKSkKKyAgICBdCisKKyAgICBk ZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUg ZnVuY3Rpb24gdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCisgICAgICAgIHN1cGVyKEZ1bmN0aW9u UHV0VGVzdENhc2UsIHNlbGYpLnNldFVwKCkKKyAgICAgICAgc2VsZiA9IGZ1bmNzX3V0aWxzLnNl dF91cChzZWxmKQorCisgICAgICAgIGZ1bmNfbmFtZSA9ICJ0ZXN0X2V2ZW50X2RlbGV0ZV8lcyIg JSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAgIGZ1bmN0aW9uX2luZm8gPSBmdW5jc191 dGlscy5jcmVhdGVfZnVuY3Rpb24oCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9u YW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBmdW5jX25hbWUpCisKKyAgICAgICAgZnVuY19pZCA9IGZ1 bmN0aW9uX2luZm9bMF0KKworICAgICAgICBkYXRhID0geworICAgICAgICAgICAgImRlc2NyaXB0 aW9uIjogIlRoaXMgaXMgYSBwcm9jZWR1cmUgdXBkYXRlIGNvbW1lbnQiLAorICAgICAgICAgICAg ImlkIjogZnVuY19pZAorICAgICAgICB9CisKKyAgICAgICAgcHV0X3Jlc3BvbnNlID0gc2VsZi50 ZXN0ZXIucHV0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQ KSArCisgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNl bGYuZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycg KworICAgICAgICAgICAgc3RyKGZ1bmNfaWQpLAorICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBz KGRhdGEpLAorICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorICAgICAgICBzZWxm LmFzc2VydEVxdWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgIyBE aXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0 X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorCisgICAgZGVmIHRl YXJEb3duKHNlbGYpOgorICAgICAgICBwYXNzCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVz dHMvdGVzdF9wcm9jZWR1cmVfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfcHJvY2Vk dXJlX2FkZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNWNkZjE3Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfcHJvY2VkdXJlX2FkZC5w eQpAQCAtMCwwICsxLDkwIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTgsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQganNv bgoraW1wb3J0IHV1aWQKKworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxz Citmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9t IHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMK K2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnVuY3NfdXRpbHMKKworCitjbGFzcyBQcm9jZWR1cmVB ZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBh ZGQgbmV3IHByb2NlZHVyZSB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCisgICAgc2tpcF9vbl9kYXRh YmFzZSA9IFsnZ3BkYiddCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5nIGRl ZmF1bHQgVVJMIGZvciBwcm9jZWR1cmUgbm9kZS4KKyAgICAgICAgKCdGZXRjaCBQcm9jZWR1cmUg Tm9kZSBVUkwnLCBkaWN0KAorICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9wcm9jZWR1cmUvb2Jq LycpKQorICAgIF0KKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBm dW5jdGlvbiB3aWxsIGFkZCBwcm9jZWR1cmUgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorICAgICAg ICBzdXBlcihQcm9jZWR1cmVBZGRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQorICAgICAgICBzZWxm ID0gZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYpCisKKyAgICAgICAgaWYgc2VsZi5zZXJ2ZXJfdHlw ZSA9PSAicGciIGFuZFwKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl92ZXJzaW9uIDwgMTEw MDAwOgorICAgICAgICAgICAgbWVzc2FnZSA9ICJQcm9jZWR1cmVzIGFyZSBub3Qgc3VwcG9ydGVk IGJ5IFBHIDwgMTEwMDAwLiIKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QobWVzc2FnZSkKKwor ICAgICAgICBkYl91c2VyID0gc2VsZi5zZXJ2ZXJbInVzZXJuYW1lIl0KKyAgICAgICAgZGF0YSA9 IHsKKyAgICAgICAgICAgICJhY2wiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgICAgICAiZ3JhbnRlZSI6IGRiX3VzZXIsCisgICAgICAgICAgICAgICAgICAgICJncmFudG9y IjogZGJfdXNlciwKKyAgICAgICAgICAgICAgICAgICAgInByaXZpbGVnZXMiOgorICAgICAgICAg ICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgInByaXZpbGVnZV90eXBlIjogIlgiLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAicHJpdmlsZWdlIjogVHJ1ZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIndpdGhfZ3JhbnQiOiBUcnVlCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXJndW1lbnRzIjogW10sCisgICAgICAgICAg ICAiZnVuY293bmVyIjogZGJfdXNlciwKKyAgICAgICAgICAgICJsYW5uYW1lIjogInNxbCIsCisg ICAgICAgICAgICAibmFtZSI6ICJ0ZXN0X3BnXzExX3Byb2MiLAorICAgICAgICAgICAgIm9wdGlv bnMiOiBbXSwKKyAgICAgICAgICAgICJwcm9sZWFrcHJvb2YiOiBUcnVlLAorICAgICAgICAgICAg InByb25hbWVzcGFjZSI6IDIyMDAsCisgICAgICAgICAgICAicHJvc2VjZGVmIjogVHJ1ZSwKKyAg ICAgICAgICAgICJwcm9zcmMiOiAiQkVHSU4gUkFJU0UgRVhDRVBUSU9OICdjb21tYW5kICUgaXMg ZGlzYWJsZWQnLCIKKyAgICAgICAgICAgICAgICAgICAgICAiIHRnX3RhZzsgRU5EOyIsCisgICAg ICAgICAgICAic2VjbGFiZWxzIjogW10sCisgICAgICAgICAgICAidmFyaWFibGVzIjogWworICAg ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiZW5hYmxlX3NvcnQi LAorICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBUcnVlCisgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgXQorICAgICAgICB9CisKKyAgICAgICAgZGF0YVsibmFtZSJdID0gInRlc3Rf cHJvY19hZGRfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBpZiBzZWxmLnNl cnZlcl90eXBlID09ICdwZyc6CisgICAgICAgICAgICBkYXRhWydwcm9zcmMnXSA9ICdTRUxFQ1Qg MTsnCisgICAgICAgIGlmIHNlbGYuc2NoZW1hX2lkOgorICAgICAgICAgICAgZGF0YVsncHJvbmFt ZXNwYWNlJ10gPSBzZWxmLnNjaGVtYV9pZAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2Vs Zi5zY2hlbWFfaWQgPSBkYXRhWydwcm9uYW1lc3BhY2UnXQorICAgICAgICByZXNwb25zZSA9IHNl bGYudGVzdGVyLnBvc3QoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJf R1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBz dHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSAr ICcvJywgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdo dG1sL2pzb24nCisgICAgICAgICkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25z ZS5zdGF0dXNfY29kZSwgMjAwKQorICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisg ICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2 ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9w cm9jZWR1cmVfZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfcHJvY2VkdXJlX2Rl bGV0ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTU2YjlmCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfcHJvY2VkdXJlX2RlbGV0ZS5w eQpAQCAtMCwwICsxLDU2IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTgsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgdXVp ZAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz LnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1p bi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbi5w eXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9y dCB1dGlscyBhcyBmdW5jc191dGlscworCisKK2NsYXNzIHByb2NlZHVyZURlbGV0ZVRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSB0aGUg cHJvY2VkdXJlIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKyAgICBza2lwX29uX2RhdGFiYXNlID0g WydncGRiJ10KKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBV UkwgZm9yIHByb2NlZHVyZSBub2RlLgorICAgICAgICAoJ0ZldGNoIFByb2NlZHVyZSBOb2RlIFVS TCcsCisgICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvcHJvY2VkdXJlL29iai8nKSkKKyAgICBd CisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2ls bCBkZWxldGUgcHJvY2VkdXJlIHVuZGVyIGRhdGFiYXNlIG5vZGUuICIiIgorICAgICAgICBzdXBl cihwcm9jZWR1cmVEZWxldGVUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQorICAgICAgICBzZWxmID0g ZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYpCisKKyAgICAgICAgaWYgc2VsZi5zZXJ2ZXJfdHlwZSA9 PSAicGciIGFuZFwKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl92ZXJzaW9uIDwgMTEwMDAw OgorICAgICAgICAgICAgbWVzc2FnZSA9ICJQcm9jZWR1cmVzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5 IFBHIDwgMTEwMDAwLiIKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QobWVzc2FnZSkKKworICAg ICAgICBmdW5jX25hbWUgPSAidGVzdF9wcm9jZWR1cmVfZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0KKyAgICAgICAgcHJvY19pbmZvID0gZnVuY3NfdXRpbHMuY3JlYXRlX3Byb2Nl ZHVyZSgKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1h X25hbWUsIGZ1bmNfbmFtZSwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyX3R5cGUpCisKKyAgICAg ICAgcHJvY19pZCA9IHByb2NfaW5mb1swXQorICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVy LmRlbGV0ZSgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkg KyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAg ICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1h X2lkKSArICcvJyArIHN0cihwcm9jX2lkKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRt bC9qc29uJworICAgICAgICApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0 YXR1c19jb2RlLCAyMDApCisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAg ICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9p ZCwgc2VsZi5kYl9pZCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgcGFzcwpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfcHJvY2VkdXJlX2dldC5weSBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3Byb2NlZHVyZV9nZXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uMmIxNTg3OAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZXN0cy90ZXN0X3Byb2NlZHVyZV9nZXQucHkKQEAgLTAsMCArMSw1NSBAQAorIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmln aHQgKEMpIDIwMTMgLSAyMDE4LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMg c29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IHV1aWQKKworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAg IGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3Rf dXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnVuY3NfdXRpbHMKKworCitj bGFzcyBQcm9jZWR1cmVHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhp cyBjbGFzcyB3aWxsIGZldGNoIGFkZGVkIHByb2NlZHVyZSB1bmRlciBzY2hlbWEgbm9kZS4iIiIK KyAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KKyAgICBzY2VuYXJpb3MgPSBbCisgICAg ICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHByb2NlZHVyZSBub2RlLgorICAgICAgICAo J0ZldGNoIFByb2NlZHVyZSBOb2RlIFVSTCcsCisgICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIv cHJvY2VkdXJlL29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAg ICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBnZXQgcHJvY2VkdXJlIHVuZGVyIGRhdGFiYXNlIG5v ZGUuICIiIgorICAgICAgICBzdXBlcihQcm9jZWR1cmVHZXRUZXN0Q2FzZSwgc2VsZikuc2V0VXAo KQorICAgICAgICBzZWxmID0gZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYpCisKKyAgICAgICAgaWYg c2VsZi5zZXJ2ZXJfdHlwZSA9PSAicGciIGFuZFwKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZl cl92ZXJzaW9uIDwgMTEwMDAwOgorICAgICAgICAgICAgbWVzc2FnZSA9ICJQcm9jZWR1cmVzIGFy ZSBub3Qgc3VwcG9ydGVkIGJ5IFBHIDwgMTEwMDAwLiIKKyAgICAgICAgICAgIHNlbGYuc2tpcFRl c3QobWVzc2FnZSkKKworICAgICAgICBmdW5jX25hbWUgPSAidGVzdF9wcm9jZWR1cmVfZ2V0XyVz IiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgcHJvY19pbmZvID0gZnVuY3NfdXRp bHMuY3JlYXRlX3Byb2NlZHVyZSgKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25h bWUsIHNlbGYuc2NoZW1hX25hbWUsIGZ1bmNfbmFtZSwKKyAgICAgICAgICAgIHNlbGYuc2VydmVy X3R5cGUpCisKKyAgICAgICAgcHJvY19pZCA9IHByb2NfaW5mb1swXQorICAgICAgICByZXNwb25z ZSA9IHNlbGYudGVzdGVyLmdldCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNF UlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcv JyArCisgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3Ry KHNlbGYuc2NoZW1hX2lkKSArICcvJyArIHN0cihwcm9jX2lkKSwKKyAgICAgICAgICAgIGNvbnRl bnRfdHlwZT0naHRtbC9qc29uJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uu c3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAg ICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBwYXNz CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9wcm9jZWR1cmVfcHV0LnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfcHJvY2VkdXJlX3B1dC5weQpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi43M2JhMWFlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3Rlc3RzL3Rlc3RfcHJvY2VkdXJlX3B1dC5weQpAQCAtMCwwICsxLDYyIEBACisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHly aWdodCAoQykgMjAxMyAtIDIwMTgsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhp cyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQganNvbgoraW1wb3J0IHV1aWQKKworZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQg dXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUg aW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRp bHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnVu Y3NfdXRpbHMKKworCitjbGFzcyBQcm9jZWR1cmVQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRv cik6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCB1cGRhdGUgbmV3IHByb2NlZHVyZSB1bmRlciBz Y2hlbWEgbm9kZS4gIiIiCisgICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCisgICAgc2Nl bmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBwcm9jZWR1cmUg bm9kZS4KKyAgICAgICAgKCdGZXRjaCBQcm9jZWR1cmUgTm9kZSBVUkwnLAorICAgICAgICAgZGlj dCh1cmw9Jy9icm93c2VyL3Byb2NlZHVyZS9vYmovJykpCisgICAgXQorCisgICAgZGVmIHJ1blRl c3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHByb2NlZHVy ZSB1bmRlciBkYXRhYmFzZSBub2RlLiAiIiIKKyAgICAgICAgc3VwZXIoUHJvY2VkdXJlUHV0VGVz dENhc2UsIHNlbGYpLnNldFVwKCkKKyAgICAgICAgc2VsZiA9IGZ1bmNzX3V0aWxzLnNldF91cChz ZWxmKQorCisgICAgICAgIGlmIHNlbGYuc2VydmVyX3R5cGUgPT0gInBnIiBhbmRcCisgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA8IDExMDAwMDoKKyAgICAgICAgICAgIG1lc3Nh Z2UgPSAiUHJvY2VkdXJlcyBhcmUgbm90IHN1cHBvcnRlZCBieSBQRyA8IDExMDAwMC4iCisgICAg ICAgICAgICBzZWxmLnNraXBUZXN0KG1lc3NhZ2UpCisKKyAgICAgICAgZnVuY19uYW1lID0gInRl c3RfcHJvY2VkdXJlX3B1dF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAgIHBy b2NfaW5mbyA9IGZ1bmNzX3V0aWxzLmNyZWF0ZV9wcm9jZWR1cmUoCisgICAgICAgICAgICBzZWxm LnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBmdW5jX25hbWUsCisgICAg ICAgICAgICBzZWxmLnNlcnZlcl90eXBlKQorCisgICAgICAgIHByb2NfaWQgPSBwcm9jX2luZm9b MF0KKyAgICAgICAgZGF0YSA9IHsKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGlz IHByb2NlZHVyZSB1cGRhdGUgY29tbWVudCIsCisgICAgICAgICAgICAiaWQiOiBwcm9jX2lkCisg ICAgICAgIH0KKworICAgICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCisgICAg ICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsKKyAgICAgICAgICAg ICcvJyArIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKyAnLycg KworICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCisgICAgICAgICAgICBz dHIocHJvY19pZCksCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAgICAg ICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHB1 dF9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRh dGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwg c2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6Cisg ICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJf ZnVuY19hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfYWRkLnB5 CmluZGV4IGQyMzhiZjAuLmU5OWY3YzMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90 ZXN0X3RyaWdnZXJfZnVuY19hZGQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJp Z2dlcl9mdW5jX2FkZC5weQpAQCAtMTAsMTQgKzEwLDExIEBACiBpbXBvcnQganNvbgogaW1wb3J0 IHV1aWQKIAotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCi0gICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3Rz IGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGls cyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwogZnJvbSBwZ2FkbWluLnV0aWxz LnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBw YXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0 IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnVuY3NfdXRpbHMK IAogCiBjbGFzcyBUcmlnZ2VyRnVuY0FkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKQEAg LTMyLDMwICsyOSw3IEBAIGNsYXNzIFRyaWdnZXJGdW5jQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgogICAgIGRlZiBydW5UZXN0KHNlbGYpOgogICAgICAgICAiIiIgVGhpcyBmdW5jdGlv biB3aWxsIGFkZCB0cmlnZ2VyIGZ1bmN0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKICAgICAg ICAgc3VwZXIoVHJpZ2dlckZ1bmNBZGRUZXN0Q2FzZSwgc2VsZikucnVuVGVzdCgpCi0gICAgICAg IGRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0g ICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAg ICAgIHNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBkYl9pZCA9 IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIHByb3JldHR5cGVuYW1lID0gImV2ZW50X3Ry aWdnZXIvdHJpZ2dlciIKLSAgICAgICAgc2VydmVyX2NvbiA9IHNlcnZlcl91dGlscy5jb25uZWN0 X3NlcnZlcihzZWxmLCBzZXJ2ZXJfaWQpCi0gICAgICAgIGlmIG5vdCBzZXJ2ZXJfY29uWyJpbmZv Il0gPT0gIlNlcnZlciBjb25uZWN0ZWQuIjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGNvbm5lY3QgdG8gc2VydmVyIHRvIGFkZCByZXNvdXJjZSAiCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgImdyb3Vwcy4iKQotICAgICAgICBpZiAidHlwZSIgaW4gc2VydmVy X2NvblsiZGF0YSJdOgotICAgICAgICAgICAgaWYgc2VydmVyX2NvblsiZGF0YSJdWyJ2ZXJzaW9u Il0gPCA5MDMwMDoKLSAgICAgICAgICAgICAgICBwcm9yZXR0eXBlbmFtZSA9ICJ0cmlnZ2VyIgot Ci0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwg dXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlcnZlcl9pZCwgZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2Rh dGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5v dCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBhIGZ1bmN0aW9uLiIpCi0gICAgICAgIHNjaGVt YV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBzY2hlbWFfbmFtZSA9IHNj aGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVt YV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSkKLSAg ICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSBmdW5jdGlvbi4iKQorICAgICAg ICBzZWxmID0gZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYpCiAgICAgICAgIGRiX3VzZXIgPSBzZWxm LnNlcnZlclsidXNlcm5hbWUiXQogICAgICAgICBkYXRhID0gewogICAgICAgICAgICAgImFjbCI6 IFsKQEAgLTc5LDcgKzUzLDcgQEAgY2xhc3MgVHJpZ2dlckZ1bmNBZGRUZXN0Q2FzZShCYXNlVGVz dEdlbmVyYXRvcik6CiAgICAgICAgICAgICAib3B0aW9ucyI6IFtdLAogICAgICAgICAgICAgInBy b2xlYWtwcm9vZiI6IFRydWUsCiAgICAgICAgICAgICAicHJvbmFtZXNwYWNlIjogMjIwMCwKLSAg ICAgICAgICAgICJwcm9yZXR0eXBlbmFtZSI6IHByb3JldHR5cGVuYW1lLAorICAgICAgICAgICAg InByb3JldHR5cGVuYW1lIjogc2VsZi5wcm9yZXR0eXBlbmFtZSwKICAgICAgICAgICAgICJwcm9z ZWNkZWYiOiBUcnVlLAogICAgICAgICAgICAgInByb3NyYyI6ICJCRUdJTiBSQUlTRSBFWENFUFRJ T04gJ2NvbW1hbmQgJSBpcyBkaXNhYmxlZCcsIgogICAgICAgICAgICAgICAgICAgICAgICIgdGdf dGFnOyBFTkQ7IiwKQEAgLTk4LDE2ICs3MiwxNyBAQCBjbGFzcyBUcmlnZ2VyRnVuY0FkZFRlc3RD YXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgZm9yIGZ1bmNfdHlwZSBpbiB0cmlnZ2Vy X2Z1bmNfdHlwZXM6CiAgICAgICAgICAgICBkYXRhWydwcm9yZXR0eXBlbmFtZSddID0gZnVuY190 eXBlCiAgICAgICAgICAgICBkYXRhWyJuYW1lIl0gPSAidGVzdF9ldmVudF9hZGRfJXMiICUgc3Ry KHV1aWQudXVpZDQoKSlbMTo4XQotICAgICAgICAgICAgaWYgc2NoZW1hX2lkOgotICAgICAgICAg ICAgICAgIGRhdGFbJ3Byb25hbWVzcGFjZSddID0gc2NoZW1hX2lkCisgICAgICAgICAgICBpZiBz ZWxmLnNjaGVtYV9pZDoKKyAgICAgICAgICAgICAgICBkYXRhWydwcm9uYW1lc3BhY2UnXSA9IHNl bGYuc2NoZW1hX2lkCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNjaGVtYV9p ZCA9IGRhdGFbJ3Byb25hbWVzcGFjZSddCisgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfaWQg PSBkYXRhWydwcm9uYW1lc3BhY2UnXQogICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5wb3N0KAogICAgICAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9V UCkgKyAnLycgKwotICAgICAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKGRi X2lkKSArICcvJyArIHN0cihzY2hlbWFfaWQpICsKKyAgICAgICAgICAgICAgICBzdHIoc2VsZi5z ZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQpICsKKyAgICAgICAgICAgICAgICAnLycg KyBzdHIoc2VsZi5zY2hlbWFfaWQpICsKICAgICAgICAgICAgICAgICAnLycsIGRhdGE9anNvbi5k dW1wcyhkYXRhKSwgY29udGVudF90eXBlPSdodG1sL2pzb24nCiAgICAgICAgICAgICApCiAKICAg ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAg ICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMu ZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZXJ2ZXJfaWQsIGRiX2lkKQorICAgICAgICBkYXRh YmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxm LmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5j X2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19kZWxldGUu cHkKaW5kZXggM2QxZmU5Zi4uZjcyMjQ3MCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3Rz L3Rlc3RfdHJpZ2dlcl9mdW5jX2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVz dF90cmlnZ2VyX2Z1bmNfZGVsZXRlLnB5CkBAIC05LDEzICs5LDkgQEAKIAogaW1wb3J0IHV1aWQK IAotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5z Y2hlbWFzLnRlc3RzIGltcG9ydCBcCi0gICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9y dCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscyBpbXBv cnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwogZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRl IGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRf bm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3Rf dXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgdHJpZ2dlcl9mdW5jc191dGls cwogCkBAIC0yOSw0OSArMjUsMjcgQEAgY2xhc3MgVHJpZ2dlckZ1bmNEZWxldGVUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvdHJpZ2dlcl9m dW5jdGlvbi9vYmovJykpCiAgICAgXQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBz dXBlcihUcmlnZ2VyRnVuY0RlbGV0ZVRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0gICAgICAgIHNl bGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0K LSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0x XVsic2NoZW1hX25hbWUiXQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHBhcmVudF9ub2RlX2Rp Y3RbInNjaGVtYSJdWy0xXVsic2NoZW1hX2lkIl0KLQogICAgIGRlZiBydW5UZXN0KHNlbGYpOgog ICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSB0cmlnZ2VyIGZ1bmN0aW9uIHVu ZGVyIGRhdGFiYXNlIG5vZGUuICIiIgotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2Rl X2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAgICBzZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2Vy dmVyX2lkIl0KLSAgICAgICAgZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQorICAgICAgICBz dXBlcihUcmlnZ2VyRnVuY0RlbGV0ZVRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCisgICAgICAgIHNl bGYgPSB0cmlnZ2VyX2Z1bmNzX3V0aWxzLnNldF91cChzZWxmKQorCiAgICAgICAgIGZ1bmNfbmFt ZSA9ICJ0ZXN0X2V2ZW50X2RlbGV0ZV8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0gICAg ICAgIHNlcnZlcl9jb24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VydmVy X2lkKQotICAgICAgICBpZiBub3Qgc2VydmVyX2NvblsiaW5mbyJdID09ICJTZXJ2ZXIgY29ubmVj dGVkLiI6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRv IHNlcnZlciB0byBhZGQgcmVzb3VyY2UgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJn cm91cHMuIikKLSAgICAgICAgc2VydmVyX3ZlcnNpb24gPSAwCi0gICAgICAgIGlmICJ0eXBlIiBp biBzZXJ2ZXJfY29uWyJkYXRhIl06Ci0gICAgICAgICAgICBpZiBzZXJ2ZXJfY29uWyJkYXRhIl1b InZlcnNpb24iXSA8IDkwMzAwOgotICAgICAgICAgICAgICAgIHNlcnZlcl92ZXJzaW9uID0gc2Vy dmVyX2NvblsiZGF0YSJdWyJ2ZXJzaW9uIl0KLSAgICAgICAgc2VsZi5mdW5jdGlvbl9pbmZvID0g dHJpZ2dlcl9mdW5jc191dGlscy5jcmVhdGVfdHJpZ2dlcl9mdW5jdGlvbigKKyAgICAgICAgZnVu Y3Rpb25faW5mbyA9IHRyaWdnZXJfZnVuY3NfdXRpbHMuY3JlYXRlX3RyaWdnZXJfZnVuY3Rpb24o CiAgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1l LCBmdW5jX25hbWUsCi0gICAgICAgICAgICBzZXJ2ZXJfdmVyc2lvbikKKyAgICAgICAgICAgIHNl bGYuc2VydmVyX3ZlcnNpb24pCiAKLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29u bmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCkKLSAgICAg ICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIGNvbGxhdGlv bi4iKQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVt YXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQotICAgICAgICBpZiBu b3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCB0aGUgY29sbGF0aW9uLiIpCi0gICAgICAgIHRyaWdn ZXJfZnVuY19pZCA9IHNlbGYuZnVuY3Rpb25faW5mb1swXQorICAgICAgICB0cmlnZ2VyX2Z1bmNf aWQgPSBmdW5jdGlvbl9pbmZvWzBdCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVs ZXRlKAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcv JyArIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsKLSAgICAgICAgICAgIHN0cihkYl9pZCkgKyAnLycg KworICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyAr CisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0 cihzZWxmLmRiX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsg Jy8nICsgc3RyKHRyaWdnZXJfZnVuY19pZCksCiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0 bWwvanNvbicKICAgICAgICAgKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5z dGF0dXNfY29kZSwgMjAwKQogICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAg ICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VydmVyX2lkLCBk Yl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBz ZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAg ICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9m dW5jX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19nZXQucHkK aW5kZXggN2ViMGQyYS4uMTVhZTFiYSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rl c3RfdHJpZ2dlcl9mdW5jX2dldC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF90cmln Z2VyX2Z1bmNfZ2V0LnB5CkBAIC05LDEzICs5LDkgQEAKIAogaW1wb3J0IHV1aWQKIAotZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRl c3RzIGltcG9ydCBcCi0gICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBh cyBcCiAgICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgc2VydmVy X3V0aWxzIGFzIHNlcnZlcl91dGlscwogZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBC YXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0 CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMg dXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgdHJpZ2dlcl9mdW5jc191dGlscwogCkBAIC0y OSw0OSArMjUsMjYgQEAgY2xhc3MgVHJpZ2dlckZ1bmNHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVy YXRvcik6CiAgICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvdHJpZ2dlcl9mdW5jdGlvbi9vYmov JykpCiAgICAgXQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzdXBlcihUcmlnZ2Vy RnVuY0dldFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBh cmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2VsZi5z Y2hlbWFfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXVsic2NoZW1hX25hbWUi XQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0x XVsic2NoZW1hX2lkIl0KLQogICAgIGRlZiBydW5UZXN0KHNlbGYpOgogICAgICAgICAiIiIgVGhp cyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSB0cmlnZ2VyIGZ1bmN0aW9uIHVuZGVyIGRhdGFiYXNlIG5v ZGUuICIiIgotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJd Wy0xXQotICAgICAgICBzZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAg ICAgZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAgICBmdW5jX25hbWUgPSAidGVz dF9ldmVudF9nZXRfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQotICAgICAgICBkYl91c2Vy ID0gc2VsZi5zZXJ2ZXJbInVzZXJuYW1lIl0KLSAgICAgICAgc2VydmVyX2NvbiA9IHNlcnZlcl91 dGlscy5jb25uZWN0X3NlcnZlcihzZWxmLCBzZXJ2ZXJfaWQpCi0gICAgICAgIGlmIG5vdCBzZXJ2 ZXJfY29uWyJpbmZvIl0gPT0gIlNlcnZlciBjb25uZWN0ZWQuIjoKLSAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gc2VydmVyIHRvIGFkZCByZXNvdXJjZSAi Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImdyb3Vwcy4iKQotICAgICAgICBzZXJ2ZXJf dmVyc2lvbiA9IDAKLSAgICAgICAgaWYgInR5cGUiIGluIHNlcnZlcl9jb25bImRhdGEiXToKLSAg ICAgICAgICAgIGlmIHNlcnZlcl9jb25bImRhdGEiXVsidmVyc2lvbiJdIDwgOTAzMDA6Ci0gICAg ICAgICAgICAgICAgc2VydmVyX3ZlcnNpb24gPSBzZXJ2ZXJfY29uWyJkYXRhIl1bInZlcnNpb24i XQotICAgICAgICBzZWxmLmZ1bmN0aW9uX2luZm8gPSB0cmlnZ2VyX2Z1bmNzX3V0aWxzLmNyZWF0 ZV90cmlnZ2VyX2Z1bmN0aW9uKAorICAgICAgICBzdXBlcihUcmlnZ2VyRnVuY0dldFRlc3RDYXNl LCBzZWxmKS5zZXRVcCgpCisgICAgICAgIHNlbGYgPSB0cmlnZ2VyX2Z1bmNzX3V0aWxzLnNldF91 cChzZWxmKQorCisgICAgICAgIGZ1bmNfbmFtZSA9ICJ0ZXN0X2V2ZW50X2RlbGV0ZV8lcyIgJSBz dHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAgIGZ1bmN0aW9uX2luZm8gPSB0cmlnZ2VyX2Z1 bmNzX3V0aWxzLmNyZWF0ZV90cmlnZ2VyX2Z1bmN0aW9uKAogICAgICAgICAgICAgc2VsZi5zZXJ2 ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgZnVuY19uYW1lLAotICAgICAgICAg ICAgc2VydmVyX3ZlcnNpb24pCisgICAgICAgICAgICBzZWxmLnNlcnZlcl92ZXJzaW9uKQogCi0g ICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRp bHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlcnZlcl9pZCwgZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEn XVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBj b25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBjb2xsYXRpb24uIikKLSAgICAgICAgc2NoZW1hX3Jl c3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9u YW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSkKLSAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBh ZGQgdGhlIGNvbGxhdGlvbi4iKQotICAgICAgICB0cmlnZ2VyX2Z1bmNfaWQgPSBzZWxmLmZ1bmN0 aW9uX2luZm9bMF0KKyAgICAgICAgdHJpZ2dlcl9mdW5jX2lkID0gZnVuY3Rpb25faW5mb1swXQog ICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKLSAgICAgICAgICAgIHNlbGYudXJs ICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKyBzdHIoc2VydmVyX2lkKSArICcvJyAr Ci0gICAgICAgICAgICBzdHIoZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHNlbGYudXJsICsg c3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2Vy dmVyX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwogICAg ICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArIHN0cih0cmlnZ2VyX2Z1bmNfaWQp LAogICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQogICAgICAgICBzZWxmLmFz c2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogICAgICAgICAjIERpc2Nvbm5l Y3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgc2VydmVyX2lkLCBkYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29u bmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKIAogICAgIGRl ZiB0ZWFyRG93bihzZWxmKToKICAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0 X3RyaWdnZXJfZnVuY19wdXQucHkKaW5kZXggNjNkNGMwOC4uNzhkZGM4ZiAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX3B1dC5weQorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfcHV0LnB5CkBAIC0xMCwxMyArMTAsOSBAQAog aW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAotICAgIHV0aWxz IGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAogICAgIGRhdGFiYXNlX3V0aWxz Ci1mcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IHNlcnZlcl91dGlscyBhcyBzZXJ2ZXJfdXRpbHMK IGZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20g cmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhv bl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0 aWxzIGFzIHRyaWdnZXJfZnVuY3NfdXRpbHMKIApAQCAtMzAsNjMgKzI2LDMzIEBAIGNsYXNzIFRy aWdnZXJGdW5jUHV0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgZGljdCh1 cmw9Jy9icm93c2VyL3RyaWdnZXJfZnVuY3Rpb24vb2JqLycpKQogICAgIF0KIAotICAgIGRlZiBz ZXRVcChzZWxmKToKLSAgICAgICAgc3VwZXIoVHJpZ2dlckZ1bmNQdXRUZXN0Q2FzZSwgc2VsZiku c2V0VXAoKQotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFz ZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBwYXJlbnRfbm9k ZV9kaWN0WyJzY2hlbWEiXVstMV1bInNjaGVtYV9uYW1lIl0KLSAgICAgICAgc2VsZi5zY2hlbWFf aWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV1bInNjaGVtYV9pZCJdCi0KICAgICBk ZWYgcnVuVGVzdChzZWxmKToKICAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUg dHJpZ2dlciBmdW5jdGlvbiB1bmRlciBkYXRhYmFzZSBub2RlLiAiIiIKLSAgICAgICAgc2NoZW1h X2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VydmVyX2lk ID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIGRiX2lkID0gc2NoZW1hX2luZm9b ImRiX2lkIl0KLSAgICAgICAgZnVuY19uYW1lID0gInRlc3RfZXZlbnRfcHV0XyVzIiAlIHN0cih1 dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VydmVyX2NvbiA9IHNlcnZlcl91dGlscy5jb25u ZWN0X3NlcnZlcihzZWxmLCBzZXJ2ZXJfaWQpCi0gICAgICAgIGlmIG5vdCBzZXJ2ZXJfY29uWyJp bmZvIl0gPT0gIlNlcnZlciBjb25uZWN0ZWQuIjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGNvbm5lY3QgdG8gc2VydmVyIHRvIGFkZCByZXNvdXJjZSAiCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgImdyb3Vwcy4iKQotICAgICAgICBzZXJ2ZXJfdmVyc2lvbiA9 IDAKLSAgICAgICAgaWYgInR5cGUiIGluIHNlcnZlcl9jb25bImRhdGEiXToKLSAgICAgICAgICAg IGlmIHNlcnZlcl9jb25bImRhdGEiXVsidmVyc2lvbiJdIDwgOTAzMDA6Ci0gICAgICAgICAgICAg ICAgc2VydmVyX3ZlcnNpb24gPSBzZXJ2ZXJfY29uWyJkYXRhIl1bInZlcnNpb24iXQotICAgICAg ICBzZWxmLmZ1bmN0aW9uX2luZm8gPSB0cmlnZ2VyX2Z1bmNzX3V0aWxzLmNyZWF0ZV90cmlnZ2Vy X2Z1bmN0aW9uKAorICAgICAgICBzdXBlcihUcmlnZ2VyRnVuY1B1dFRlc3RDYXNlLCBzZWxmKS5z ZXRVcCgpCisgICAgICAgIHNlbGYgPSB0cmlnZ2VyX2Z1bmNzX3V0aWxzLnNldF91cChzZWxmKQor CisgICAgICAgIGZ1bmNfbmFtZSA9ICJ0ZXN0X2V2ZW50X2RlbGV0ZV8lcyIgJSBzdHIodXVpZC51 dWlkNCgpKVsxOjhdCisgICAgICAgIGZ1bmN0aW9uX2luZm8gPSB0cmlnZ2VyX2Z1bmNzX3V0aWxz LmNyZWF0ZV90cmlnZ2VyX2Z1bmN0aW9uKAogICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYu ZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgZnVuY19uYW1lLAotICAgICAgICAgICAgc2VydmVy X3ZlcnNpb24pCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwgZGJfaWQpCi0gICAgICAgIGlmIG5vdCBk Yl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o IkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBjb2xsYXRpb24uIikKLSAgICAg ICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2Vy dmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKLSAgICAgICAgaWYgbm90IHNjaGVtYV9y ZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhl IHNjaGVtYSB0byBhZGQgdGhlIGNvbGxhdGlvbi4iKQotICAgICAgICBmdW5jX25hbWUgPSBzZWxm LmZ1bmN0aW9uX2luZm9bMV0KLSAgICAgICAgZnVuY19yZXNwb25zZSA9IHRyaWdnZXJfZnVuY3Nf dXRpbHMudmVyaWZ5X3RyaWdnZXJfZnVuY3Rpb24oCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwK LSAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgIGZ1bmNfbmFtZSkKLSAgICAg ICAgaWYgbm90IGZ1bmNfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNv dWxkIG5vdCBmaW5kIHRoZSB0cmlnZ2VyIGZ1bmN0aW9uIHRvIHVwZGF0ZSIKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiIGl0J3MgZGV0YWlscy4iKQorICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJfdmVyc2lvbikKKworICAgICAgICB0cmlnZ2VyX2Z1bmNfaWQgPSBmdW5jdGlvbl9pbmZvWzBd CiAKLSAgICAgICAgdHJpZ2dlcl9mdW5jX2lkID0gc2VsZi5mdW5jdGlvbl9pbmZvWzBdCiAgICAg ICAgIGRhdGEgPSB7Ci0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhpcyBpcyB0cmlnZ2Vy IGZ1bmN0aW9uIHVwZGF0ZSBjb21tZW50IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJU aGlzIGlzIGEgdHJpZ2dlciBmdW5jdGlvbiB1cGRhdGUgY29tbWVudCIsCiAgICAgICAgICAgICAi aWQiOiB0cmlnZ2VyX2Z1bmNfaWQKICAgICAgICAgfQogCiAgICAgICAgIHB1dF9yZXNwb25zZSA9 IHNlbGYudGVzdGVyLnB1dCgKICAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZF Ul9HUk9VUCkgKwotICAgICAgICAgICAgJy8nICsgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIo ZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAn LycgKyBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1h X2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIodHJpZ2dlcl9mdW5jX2lkKSwKICAgICAgICAg ICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9 VHJ1ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2Rl LCAyMDApCiAgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJh c2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZXJ2ZXJfaWQsIGRiX2lkKQorICAg ICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICBwYXNz CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdXRpbHMucHkgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVzdHMvdXRpbHMucHkKaW5kZXggNGZhY2Y2MC4uMzYwNmI0NSAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3Rlc3RzL3V0aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy91dGlscy5weQpA QCAtMTMsNiArMTMsMTEgQEAgaW1wb3J0IHN5cwogaW1wb3J0IHRyYWNlYmFjawogCiBmcm9tIHJl Z3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zy b20gcGdhZG1pbi51dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscworZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFz LnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGls cyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKIAogCiBkZWYgY3JlYXRlX3RyaWdnZXJfZnVuY3Rp b24oc2VydmVyLCBkYl9uYW1lLCBzY2hlbWFfbmFtZSwgZnVuY19uYW1lLApAQCAtOTIsMyArOTcs MTE4IEBAIGRlZiB2ZXJpZnlfdHJpZ2dlcl9mdW5jdGlvbihzZXJ2ZXIsIGRiX25hbWUsIGZ1bmNf bmFtZSk6CiAgICAgZnVuY3Rpb25zID0gcGdfY3Vyc29yLmZldGNob25lKCkKICAgICBjb25uZWN0 aW9uLmNsb3NlKCkKICAgICByZXR1cm4gZnVuY3Rpb25zCisKKworZGVmIGNyZWF0ZV9wcm9jZWR1 cmUoc2VydmVyLCBkYl9uYW1lLCBzY2hlbWFfbmFtZSwgZnVuY19uYW1lLCBzX3R5cGUpOgorICAg ICIiIlRoaXMgZnVuY3Rpb24gYWRkIHRoZSBwcm9jZWR1cmUgdG8gc2NoZW1hIiIiCisgICAgdHJ5 OgorICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oZGJfbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNl cm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl cnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VydmVyWydwb3J0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3NzbG1vZGUnXSkKKyAgICAgICAgcGdfY3Vyc29y ID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAgICAgICBpZiBzX3R5cGUgPT0gJ3BnJzoKKyAgICAg ICAgICAgIHF1ZXJ5ID0gIkNSRUFURSBQUk9DRURVUkUgIiArIHNjaGVtYV9uYW1lICsgIi4iICsg ZnVuY19uYW1lICsgXAorICAgICAgICAgICAgICAgICAgICAiKCkiIFwKKyAgICAgICAgICAgICAg ICAgICAgIiBMQU5HVUFHRSAnc3FsJyIgXAorICAgICAgICAgICAgICAgICAgICAiIFNFQ1VSSVRZ IERFRklORVIgQVMgJCQiIFwKKyAgICAgICAgICAgICAgICAgICAgIiBTRUxFQ1QgMTsgJCQ7Igor ICAgICAgICBlbHNlOgorICAgICAgICAgICAgcXVlcnkgPSAiQ1JFQVRFIFBST0NFRFVSRSAiICsg c2NoZW1hX25hbWUgKyAiLiIgKyBmdW5jX25hbWUgKyBcCisgICAgICAgICAgICAgICAgICAgICIo KSIgXAorICAgICAgICAgICAgICAgICAgICAiIFNFQ1VSSVRZIERFRklORVIgQVMgJEJPRFkkIEJF R0lOIiBcCisgICAgICAgICAgICAgICAgICAgICIgTlVMTDsgRU5EOyAkQk9EWSQiCisgICAgICAg IHBnX2N1cnNvci5leGVjdXRlKHF1ZXJ5KQorICAgICAgICBjb25uZWN0aW9uLmNvbW1pdCgpCisg ICAgICAgICMgR2V0ICdvaWQnIGZyb20gbmV3bHkgY3JlYXRlZCBmdW5jdGlvbgorICAgICAgICBw Z19jdXJzb3IuZXhlY3V0ZSgiU0VMRUNUIHByby5vaWQsIHByby5wcm9uYW1lIEZST00iCisgICAg ICAgICAgICAgICAgICAgICAgICAgICIgcGdfcHJvYyBwcm8gV0hFUkUgcHJvLnByb25hbWU9JyVz JyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jX25hbWUpCisgICAgICAgIGZ1bmN0 aW9ucyA9IHBnX2N1cnNvci5mZXRjaG9uZSgpCisgICAgICAgIGNvbm5lY3Rpb24uY2xvc2UoKQor ICAgICAgICByZXR1cm4gZnVuY3Rpb25zCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAg dHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPXN5cy5zdGRlcnIpCisKKworZGVmIGNyZWF0ZV9mdW5j dGlvbihzZXJ2ZXIsIGRiX25hbWUsIHNjaGVtYV9uYW1lLCBmdW5jX25hbWUpOgorICAgICIiIlRo aXMgZnVuY3Rpb24gYWRkIHRoZSBwcm9jZWR1cmUgdG8gc2NoZW1hIiIiCisgICAgdHJ5OgorICAg ICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oZGJfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUn XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsn ZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyWydwb3J0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXJ2ZXJbJ3NzbG1vZGUnXSkKKyAgICAgICAgcGdfY3Vyc29yID0gY29u bmVjdGlvbi5jdXJzb3IoKQorICAgICAgICBxdWVyeSA9ICJDUkVBVEUgRlVOQ1RJT04gIiArIHNj aGVtYV9uYW1lICsgIi4iICsgZnVuY19uYW1lICsgXAorICAgICAgICAgICAgICAgICIoKSIgXAor ICAgICAgICAgICAgICAgICIgUkVUVVJOUyBpbnRlZ2VyIExBTkdVQUdFICdzcWwnIFNUQUJMRSBM RUFLUFJPT0YiIFwKKyAgICAgICAgICAgICAgICAiIFNFQ1VSSVRZIERFRklORVIgQVMgJCQiIFwK KyAgICAgICAgICAgICAgICAiIFNFTEVDVCAxOyAkJDsiCisgICAgICAgIHBnX2N1cnNvci5leGVj dXRlKHF1ZXJ5KQorICAgICAgICBjb25uZWN0aW9uLmNvbW1pdCgpCisgICAgICAgICMgR2V0ICdv aWQnIGZyb20gbmV3bHkgY3JlYXRlZCBmdW5jdGlvbgorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0 ZSgiU0VMRUNUIHByby5vaWQsIHByby5wcm9uYW1lIEZST00iCisgICAgICAgICAgICAgICAgICAg ICAgICAgICIgcGdfcHJvYyBwcm8gV0hFUkUgcHJvLnByb25hbWU9JyVzJyIgJQorICAgICAgICAg ICAgICAgICAgICAgICAgICBmdW5jX25hbWUpCisgICAgICAgIGZ1bmN0aW9ucyA9IHBnX2N1cnNv ci5mZXRjaG9uZSgpCisgICAgICAgIGNvbm5lY3Rpb24uY2xvc2UoKQorICAgICAgICByZXR1cm4g ZnVuY3Rpb25zCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdHJhY2ViYWNrLnByaW50 X2V4YyhmaWxlPXN5cy5zdGRlcnIpCisKKworZGVmIHZlcmlmeV9wcm9jZWR1cmUoc2VydmVyLCBk Yl9uYW1lLCBwcm9jX25hbWUpOgorICAgICIiIlRoaXMgZnVuY3Rpb24gdmVyaWZpZXMgdGhlIHBy b2NlZHVyZSBpbiBkYiIiIgorICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlv bihkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2 ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyWydob3N0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlcnZlclsncG9ydCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZXJ2ZXJbJ3NzbG1vZGUnXSkKKyAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9u LmN1cnNvcigpCisgICAgcGdfY3Vyc29yLmV4ZWN1dGUoIlNFTEVDVCBwcm8ub2lkLCBwcm8ucHJv bmFtZSBGUk9NIgorICAgICAgICAgICAgICAgICAgICAgICIgcGdfcHJvYyBwcm8gV0hFUkUgcHJv LnByb25hbWU9JyVzJyIgJQorICAgICAgICAgICAgICAgICAgICAgIHByb2NfbmFtZSkKKyAgICBw cm9jcyA9IHBnX2N1cnNvci5mZXRjaG9uZSgpCisgICAgY29ubmVjdGlvbi5jbG9zZSgpCisgICAg cmV0dXJuIHByb2NzCisKKworZGVmIHNldF91cChvYmopOgorICAgICIiIkNvbW1vbiBzZXQgdXAg ZnVuY3Rpb24iIiIKKyAgICBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QK KworICAgIG9iai5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRi X25hbWUiXQorICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFd CisgICAgb2JqLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQorICAgIG9iai5k Yl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgb2JqLnByb3JldHR5cGVuYW1lID0gImV2 ZW50X3RyaWdnZXIvdHJpZ2dlciIKKyAgICBzZXJ2ZXJfY29uID0gc2VydmVyX3V0aWxzLmNvbm5l Y3Rfc2VydmVyKG9iaiwgb2JqLnNlcnZlcl9pZCkKKworICAgIGlmIG5vdCBzZXJ2ZXJfY29uWyJp bmZvIl0gPT0gIlNlcnZlciBjb25uZWN0ZWQuIjoKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgY29ubmVjdCB0byBzZXJ2ZXIuIikKKyAgICBpZiAidmVyc2lvbiIgaW4gc2VydmVy X2NvblsiZGF0YSJdOgorICAgICAgICBvYmouc2VydmVyX3ZlcnNpb24gPSBzZXJ2ZXJfY29uWyJk YXRhIl1bInZlcnNpb24iXQorICAgICAgICBpZiBzZXJ2ZXJfY29uWyJkYXRhIl1bInZlcnNpb24i XSA8IDkwMzAwOgorICAgICAgICAgICAgb2JqLnByb3JldHR5cGVuYW1lID0gInRyaWdnZXIiCisg ICAgaWYgInR5cGUiIGluIHNlcnZlcl9jb25bImRhdGEiXToKKyAgICAgICAgb2JqLnNlcnZlcl90 eXBlID0gc2VydmVyX2NvblsiZGF0YSJdWyJ0eXBlIl0KKworICAgIGRiX2NvbiA9IGRhdGFiYXNl X3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uob2JqLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmouc2VydmVyX2lkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqLmRiX2lkKQorICAg IGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKKyAgICBvYmouc2NoZW1hX2lk ID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCisgICAgb2JqLnNjaGVtYV9uYW1lID0gc2NoZW1h X2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMu dmVyaWZ5X3NjaGVtYXMob2JqLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb2JqLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iai5zY2hlbWFfbmFtZSkKKyAgICBpZiBub3Qg c2NoZW1hX3Jlc3BvbnNlOgorICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5k IHRoZSBzY2hlbWEuIikKKworICAgIHJldHVybiBvYmoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvdXRpbHMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3V0aWxzLnB5CmluZGV4IDAw YTcyZGQuLjdmNmYxOWMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdXRpbHMucHkK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci91dGlscy5weQpAQCAtNTEsNyArNTEsOSBAQCBjbGFz cyBQR0NoaWxkTW9kdWxlKG9iamVjdCk6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3Ms ICoqa3dhcmdzKToKICAgICAgICAgc2VsZi5taW5fdmVyID0gMAotICAgICAgICBzZWxmLm1heF92 ZXIgPSAxMDAwMDAwMDAwCisgICAgICAgIHNlbGYubWF4X3ZlciA9IDExMDAwMDAwMDAKKyAgICAg ICAgc2VsZi5taW5fcHBhc3ZlciA9IDAKKyAgICAgICAgc2VsZi5tYXhfcHBhc3ZlciA9IDExMDAw MDAwMDAKICAgICAgICAgc2VsZi5zZXJ2ZXJfdHlwZSA9IE5vbmUKICAgICAgICAgc2VsZi5taW5f Z3BkYnZlciA9IDgwMzIzCiAgICAgICAgIHNlbGYubWF4X2dwZGJ2ZXIgPSAxMDAwMDAwMDAwCkBA IC03Miw2ICs3NCw5IEBAIGNsYXNzIFBHQ2hpbGRNb2R1bGUob2JqZWN0KToKICAgICAgICAgaWYg c2VsZi5zZXJ2ZXJfdHlwZSBpcyBOb25lIG9yIG1hbmFnZXIuc2VydmVyX3R5cGUgaW4gc2VsZi5z ZXJ2ZXJfdHlwZToKICAgICAgICAgICAgIG1pbl9zZXJ2ZXJfdmVyc2lvbiA9IHNlbGYubWluX3Zl cgogICAgICAgICAgICAgbWF4X3NlcnZlcl92ZXJzaW9uID0gc2VsZi5tYXhfdmVyCisgICAgICAg ICAgICBpZiBtYW5hZ2VyLnNlcnZlcl90eXBlID09ICdwcGFzJzoKKyAgICAgICAgICAgICAgICBt aW5fc2VydmVyX3ZlcnNpb24gPSBzZWxmLm1pbl9wcGFzdmVyCisgICAgICAgICAgICAgICAgbWF4 X3NlcnZlcl92ZXJzaW9uID0gc2VsZi5tYXhfcHBhc3ZlcgogICAgICAgICAgICAgaWYgbWFuYWdl ci5zZXJ2ZXJfdHlwZSA9PSAnZ3BkYic6CiAgICAgICAgICAgICAgICAgbWluX3NlcnZlcl92ZXJz aW9uID0gc2VsZi5taW5fZ3BkYnZlcgogICAgICAgICAgICAgICAgIG1heF9zZXJ2ZXJfdmVyc2lv biA9IHNlbGYubWF4X2dwZGJ2ZXIKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3V0aWxzL3ZlcnNp b25lZF90ZW1wbGF0ZV9sb2FkZXIucHkgYi93ZWIvcGdhZG1pbi91dGlscy92ZXJzaW9uZWRfdGVt cGxhdGVfbG9hZGVyLnB5CmluZGV4IDM0ODE5NzguLmRhZGFlYmEgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL3V0aWxzL3ZlcnNpb25lZF90ZW1wbGF0ZV9sb2FkZXIucHkKKysrIGIvd2ViL3BnYWRt aW4vdXRpbHMvdmVyc2lvbmVkX3RlbXBsYXRlX2xvYWRlci5weQpAQCAtNzUsNyArNzUsOCBAQCBk ZWYgZ2V0X3ZlcnNpb25fbWFwcGluZyh0ZW1wbGF0ZSk6CiAgICAgICAgICAgICB7J25hbWUnOiAi ZGVmYXVsdCIsICdudW1iZXInOiAwfQogICAgICAgICApCiAKLSAgICByZXR1cm4gKHsnbmFtZSc6 ICIxMF9wbHVzIiwgJ251bWJlcic6IDEwMDAwMH0sCisgICAgcmV0dXJuICh7J25hbWUnOiAiMTFf cGx1cyIsICdudW1iZXInOiAxMTAwMDB9LAorICAgICAgICAgICAgeyduYW1lJzogIjEwX3BsdXMi LCAnbnVtYmVyJzogMTAwMDAwfSwKICAgICAgICAgICAgIHsnbmFtZSc6ICI5LjZfcGx1cyIsICdu dW1iZXInOiA5MDYwMH0sCiAgICAgICAgICAgICB7J25hbWUnOiAiOS41X3BsdXMiLCAnbnVtYmVy JzogOTA1MDB9LAogICAgICAgICAgICAgeyduYW1lJzogIjkuNF9wbHVzIiwgJ251bWJlcic6IDkw NDAwfSwK --0000000000004d1fb7056e0abcf8--