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 1fQS9W-00061F-Kz for pgadmin-hackers@arkaria.postgresql.org; Wed, 06 Jun 2018 06:42:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fQS9V-0001Db-De for pgadmin-hackers@arkaria.postgresql.org; Wed, 06 Jun 2018 06:42:37 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fQS9U-0001DR-L6 for pgadmin-hackers@lists.postgresql.org; Wed, 06 Jun 2018 06:42:37 +0000 Received: from mail-oi0-x229.google.com ([2607:f8b0:4003:c06::229]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1fQS9O-00047S-KG for pgadmin-hackers@postgresql.org; Wed, 06 Jun 2018 06:42:34 +0000 Received: by mail-oi0-x229.google.com with SMTP id a141-v6so4416871oii.8 for ; Tue, 05 Jun 2018 23:42:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=3VhB+VOrbKl9/7vQljBd3CDyhNFg0zbCN57Ie3FceZE=; b=tvlQDg1fGs8NOunLFdtQJj0TCP6NBvi5Xsgd0jnDDPGESO27fIxl1DPvH7rghbVtSh DzRMHONJ8S1gTf3ljfg/SVzZnscjT09yQbetbt4xWlmH1HjOTNw4009C8jKOAPyFQZOr 5+rDw6f0S8NmZz635fzmR1GrHx1OI47AxciYUNCdFtFAFndzMk8Rzz/80WT7WoAjJSLQ z2ekNcBXzjaVhQpRMSVwKPtJlDYT9W+ekmoGrXUAOzqggoeSzbCH69wdX3CSnU0z5inw wPisOrJ69pOC3flxRL/Z04zG4cns8jny8oMM5dVXV7l7rmQZKluhielKMASHHYer4Owa ug2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=3VhB+VOrbKl9/7vQljBd3CDyhNFg0zbCN57Ie3FceZE=; b=UkOY9UBkfZYOQYiiBvDKUMsBN0lEDla6w17cutZekz3c4sPtOhoCrSRU8q/5sRxaAn nALFq3DW4te7UxVYbl3RZm7Kp3RWJYtxYlN4mpVa3LxfwJWs1lPKIEEU1wcsAkkeT/ay DSGBxI+LJAxC6EyXjB/SRZXxjYo4+uC6752xCCYCvhoaw/DOlLY3O8QpHJGEwlf1Bljj nWxHbu8K0Tjs849HZdW66M5kGpH9BIRnkJCAbbIpCSAJpznkIWwTjJtBqDrU4E7n3whP rDxZpZchXctwG09Ujy2iaLJ2hJmm5Qoosn9Jmw9LW3E2r5XRdS8TnhraHcG7L08hG4/n I6mg== X-Gm-Message-State: APt69E0MHXL7IlOFh1f+bKnL4DUGbJX4LjnRAwKFv6ik/GFg1bvil11y rrNGVJQJnKktxgVYZNt7YEkhS1onl2lNMriskbpYUQSa X-Google-Smtp-Source: ADUXVKJym5EthzAmweEqZDFuwySCI4Jk/Mr9ZB9FRmzNHChBtn69u20D3LIeroGw1VpeUFlRFz7LLApemqfaRdYR+s4= X-Received: by 2002:aca:d786:: with SMTP id o128-v6mr926585oig.10.1528267348767; Tue, 05 Jun 2018 23:42:28 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a4a:4081:0:0:0:0:0 with HTTP; Tue, 5 Jun 2018 23:42:28 -0700 (PDT) From: Khushboo Vashi Date: Wed, 6 Jun 2018 12:12:28 +0530 Message-ID: Subject: [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="000000000000723fc3056df37854" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000723fc3056df37854 Content-Type: multipart/alternative; boundary="000000000000723fbf056df37852" --000000000000723fbf056df37852 Content-Type: text/plain; charset="UTF-8" Hi, Please find the attached patch to fix #3362 - Fix the functions for PG v11, and add support procedure for PG v11. Thanks, Khushboo --000000000000723fbf056df37852 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Please find the attached patch to f= ix #3362 -=C2=A0Fix the functions for PG v11, and add support procedu= re for PG v11.

Thanks,
Khushboo

--000000000000723fbf056df37852-- --000000000000723fc3056df37854 Content-Type: text/x-patch; charset="US-ASCII"; name="RM_3362.patch" Content-Disposition: attachment; filename="RM_3362.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ji2qvvg60 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 CmluZGV4IDAwMDAwMDAuLjgyZDc5YjAKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAg KzEsMzIgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIueG1pbiwgcHIuKiwgcHIucHJvc3JjIEFT IHByb3NyY19jLAorICAgIHByLnByb25hbWUgQVMgbmFtZSwgcGdfZ2V0X2Z1bmN0aW9uX3Jlc3Vs dChwci5vaWQpIEFTIHByb3JldHR5cGVuYW1lLAorICAgIHR5cG5zLm5zcG5hbWUgQVMgdHlwbnNw LCBsYW5uYW1lLCBwcm9hcmduYW1lcywgb2lkdmVjdG9ydHlwZXMocHJvYXJndHlwZXMpIEFTIHBy b2FyZ3R5cGVuYW1lcywKKyAgICBwZ19nZXRfZXhwcihwcm9hcmdkZWZhdWx0cywgJ3BnX2NhdGFs b2cucGdfY2xhc3MnOjpyZWdjbGFzcykgQVMgcHJvYXJnZGVmYXVsdHZhbHMsCisgICAgcHJvbmFy Z2RlZmF1bHRzLCBwcm9jb25maWcsIHBnX2dldF91c2VyYnlpZChwcm9vd25lcikgQVMgZnVuY293 bmVyLCBkZXNjcmlwdGlvbiwKKyAgICAoU0VMRUNUCisgICAgICAgIGFycmF5X2FnZyhwcm92aWRl ciB8fCAnPScgfHwgbGFiZWwpCisgICAgRlJPTQorICAgICAgICBwZ19zZWNsYWJlbCBzbDEKKyAg ICBXSEVSRQorICAgICAgICBzbDEub2Jqb2lkPXByLm9pZCkgQVMgc2VjbGFiZWxzCitGUk9NCisg ICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlw ZQorSk9JTgorICAgIHBnX25hbWVzcGFjZSB0eXBucyBPTiB0eXBucy5vaWQ9dHlwLnR5cG5hbWVz cGFjZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQg T1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQg QU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwci5wcm9r aW5kIElOICgnZicsICd3JykKK3slIGlmIGZuaWQgJX0KKyAgICBBTkQgcHIub2lkID0ge3tmbmlk fX06Om9pZAoreyUgZWxzZSAlfQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lk Cit7JSBlbmRpZiAlfQorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRf dHJpZ2dlcicpCitPUkRFUiBCWQorICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL3VwZGF0ZS5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTJiZDI0YgotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvdXBkYXRlLnNx bApAQCAtMCwwICsxLDExNiBAQAoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3NlY3VyaXR5 Lm1hY3JvcycgYXMgU0VDTEFCRUwgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2 aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9u cy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9eyUgaWYgZGF0YSAlfQoreyUgc2V0IG5h bWUgPSBvX2RhdGEubmFtZSAlfQoreyUgaWYgZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUg IT0gb19kYXRhLm5hbWUgJX0KK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEu cHJvbmFtZXNwYWNlLCBvX2RhdGEubmFtZSkgfX0oe3sKK29fZGF0YS5wcm9hcmd0eXBlbmFtZXMg fX0pCisgICAgUkVOQU1FIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUgc2V0 IG5hbWUgPSBkYXRhLm5hbWUgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRh dGEuY2hhbmdlX2Z1bmMgICV9CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHt7IGNvbm58 cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7JSBpZiBkYXRhLmFyZ3VtZW50 cyAlfQoreyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVudHMgJX17JSBpZiBwLmFyZ21vZGUgJX17e3Au YXJnbW9kZX19IHslIGVuZGlmICV9eyUgaWYgcC5hcmduYW1lICV9e3sgY29ubnxxdElkZW50KHAu YXJnbmFtZSkgfX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUgJX17eyBjb25ufHF0VHlwZUlk ZW50KHAuYXJndHlwZSkgfX17JSBlbmRpZiAlfXslIGlmIHAuYXJnZGVmdmFsICV9IERFRkFVTFQg e3twLmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0KK3slIGlmIG5vdCBsb29wLmxhc3QgJX0seyUgZW5k aWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CispCisgICAgUkVUVVJOUyB7eyBvX2Rh dGEucHJvcmV0dHlwZW5hbWUgfX0KK3slIGlmICdsYW5uYW1lJyBpbiBkYXRhICV9CisgICAgTEFO R1VBR0Uge3sgZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fSB7JSBlbHNlICV9CisgICAgTEFOR1VB R0Uge3sgb19kYXRhLmxhbm5hbWV8cXRMaXRlcmFsIH19CisgICAgeyUgZW5kaWYgJX17JSBpZiAn cHJvdm9sYXRpbGUnIGluIGRhdGEgYW5kIGRhdGEucHJvdm9sYXRpbGUgJX17eyBkYXRhLnByb3Zv bGF0aWxlIH19IHslIGVsaWYgJ3Byb3ZvbGF0aWxlJyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnBy b3ZvbGF0aWxlICV9e3sgb19kYXRhLnByb3ZvbGF0aWxlIH19eyUgZW5kaWYgJX0KK3slIGlmICgn cHJvbGVha3Byb29mJyBpbiBkYXRhIGFuZCBkYXRhLnByb2xlYWtwcm9vZikgb3IgKCdwcm9sZWFr cHJvb2YnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvbGVha3Byb29mKSAlfSBMRUFLUFJPT0Z7 JSBlbGlmICdwcm9sZWFrcHJvb2YnIGluIGRhdGEgYW5kIG5vdCBkYXRhLnByb2xlYWtwcm9vZiAl fSBOT1QgTEVBS1BST09GeyUgZW5kaWYgJX0KK3slIGlmICgncHJvaXNzdHJpY3QnIGluIGRhdGEg YW5kIGRhdGEucHJvaXNzdHJpY3QpIG9yICgncHJvaXNzdHJpY3QnIG5vdCBpbiBkYXRhIGFuZCBv X2RhdGEucHJvaXNzdHJpY3QpICV9IFNUUklDVHslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb3NlY2Rl ZicgaW4gZGF0YSBhbmQgZGF0YS5wcm9zZWNkZWYpIG9yICgncHJvc2VjZGVmJyBub3QgaW4gZGF0 YSBhbmQgb19kYXRhLnByb3NlY2RlZikgJX0gU0VDVVJJVFkgREVGSU5FUnslIGVuZGlmICV9Cit7 JSBpZiAoJ3Byb2lzd2luZG93JyBpbiBkYXRhIGFuZCBkYXRhLnByb2lzd2luZG93KSBvciAoJ3By b2lzd2luZG93JyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2lzd2luZG93KSAlfSBXSU5ET1d7 JSBlbmRpZiAlfQorCisgICAgeyUgaWYgJ3Byb3BhcmFsbGVsJyBpbiBkYXRhIGFuZCBkYXRhLnBy b3BhcmFsbGVsICV9UEFSQUxMRUwge3sgZGF0YS5wcm9wYXJhbGxlbCB9fXslIGVsaWYgJ3Byb3Bh cmFsbGVsJyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb3BhcmFsbGVsICV9UEFSQUxMRUwge3sg b19kYXRhLnByb3BhcmFsbGVsIH19eyUgZW5kaWYgJX0KKworICAgIHslIGlmIGRhdGEucHJvY29z dCAlfUNPU1Qge3tkYXRhLnByb2Nvc3R9fXslIGVsaWYgb19kYXRhLnByb2Nvc3QgJX1DT1NUIHt7 b19kYXRhLnByb2Nvc3R9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9yb3dzICV9CisKKyAgICBS T1dTIHt7ZGF0YS5wcm9yb3dzfX17JSBlbGlmIGRhdGEucHJvcm93cyBpcyBub3QgZGVmaW5lZCBh bmQgb19kYXRhLnByb3Jvd3MgYW5kIG9fZGF0YS5wcm9yb3dzICE9ICcwJyAlfSAgICBST1dTIHt7 b19kYXRhLnByb3Jvd3N9fSB7JWVuZGlmIC0lfXslIGlmIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAl fXslIGZvciB2IGluIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfQorCisgICAgU0VUIHt7IGNvbm58 cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8cXRMaXRlcmFsIH19eyUgZW5kZm9yIC0lfQor ICAgIHslIGVuZGlmICV9CisKK0FTIHslIGlmICdwcm9iaW4nIGluIGRhdGEgb3IgJ3Byb3NyY19j JyBpbiBkYXRhICV9Cit7JSBpZiAncHJvYmluJyBpbiBkYXRhICV9e3sgZGF0YS5wcm9iaW58cXRM aXRlcmFsIH19eyUgZWxzZSAlfXt7IG9fZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19eyUgZW5kaWYg JX0sIHslIGlmICdwcm9zcmNfYycgaW4gZGF0YSAlfXt7IGRhdGEucHJvc3JjX2N8cXRMaXRlcmFs IH19eyUgZWxzZSAlfXt7IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX17JSBlbmRpZiAlfXsl IGVsaWYgJ3Byb3NyYycgaW4gZGF0YSAlfQorJEJPRFkke3sgZGF0YS5wcm9zcmMgfX0kQk9EWSR7 JSBlbGlmIG9fZGF0YS5sYW5uYW1lID09ICdjJyAlfQore3sgb19kYXRhLnByb2JpbnxxdExpdGVy YWwgfX0sIHt7IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX17JSBlbHNlICV9CiskQk9EWSR7 eyBvX2RhdGEucHJvc3JjIH19JEJPRFkkeyUgZW5kaWYgLSV9OworeyUgZW5kaWYgLSV9Cit7JSBp ZiBkYXRhLmZ1bmNvd25lciAlfQorCitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19k YXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oe3tvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQor ICAgIE9XTkVSIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLmZ1bmNvd25lcikgfX07Cit7JSBlbmRp ZiAtJX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZpbGVkZ2Vz ICN9Cit7JSBpZiBkYXRhLmFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuYWNsICV9Cit7 JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5kZWxldGVkICV9CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFM TChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0l fQoreyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRh LmFjbC5jaGFuZ2VkICV9CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnRlVOQ1RJT04n LCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0 eXBlbmFtZXMpIH19CisKK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5n cmFudGVlLCBuYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwgb19kYXRh LnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgLSV9Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBp biBkYXRhLmFjbC5hZGRlZCAlfQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdGVU5DVElPTics IHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQs IG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRm b3IgJX17JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5jaGFuZ2VfZnVuYyA9 PSBGYWxzZSAlfQoreyUgaWYgZGF0YS52YXJpYWJsZXMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBk YXRhLnZhcmlhYmxlcyBhbmQgZGF0YS52YXJpYWJsZXMuZGVsZXRlZHxsZW5ndGggPiAwICV9CisK K3t7IFZBUklBQkxFLlVOU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIGRhdGEudmFyaWFibGVz LmRlbGV0ZWQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19 Cit7JSBlbmRpZiAtJX0KK3slIGlmICdtZXJnZWRfdmFyaWFibGVzJyBpbiBkYXRhIGFuZCBkYXRh Lm1lcmdlZF92YXJpYWJsZXN8bGVuZ3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5TRVQoY29ubiwg J0ZVTkNUSU9OJywgbmFtZSwgZGF0YS5tZXJnZWRfdmFyaWFibGVzLCBvX2RhdGEucHJvbmFtZXNw YWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAt JX0KK3slIGVuZGlmIC0lfQoreyUgc2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7 JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5ndGgg PiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVsZXRlZCAlfQorCit7eyBTRUNMQUJFTC5V TlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCBvX2RhdGEucHJvbmFtZXNw YWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAt JX0KK3slIGlmICdhZGRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3Ro ID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9CisKK3t7IFNFQ0xBQkVMLlNF VChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsLCBvX2RhdGEucHJv bmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBl bmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5jaGFu Z2VkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5jaGFuZ2VkICV9CisKK3t7 IFNFQ0xBQkVMLlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCByLmxhYmVs LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gaXMgZGVmaW5lZCBh bmQgZGF0YS5kZXNjcmlwdGlvbiAhPSBvX2RhdGEuZGVzY3JpcHRpb24lfQorCitDT01NRU5UIE9O IEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7 e29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxx dExpdGVyYWwgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5wcm9uYW1lc3BhY2UgJX0K KworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5h bWUpIH19KHt7b19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBTRVQgU0NIRU1BIHt7IGNv bm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSkgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgZW5k aWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3Nx bC9kZWZhdWx0L2FjbC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9z cWwvZGVmYXVsdC9hY2wuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJl N2FhZTUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVy ZS9wZy9zcWwvZGVmYXVsdC9hY2wuc3FsCkBAIC0wLDAgKzEsMzUgQEAKK1NFTEVDVAorICAgIENP QUxFU0NFKGd0LnJvbG5hbWUsICdQVUJMSUMnKSBBUyBncmFudGVlLAorICAgIGcucm9sbmFtZSBB UyBncmFudG9yLCBhcnJheV9hZ2cocHJpdmlsZWdlX3R5cGUpIEFTIHByaXZpbGVnZXMsCisgICAg YXJyYXlfYWdnKGlzX2dyYW50YWJsZSkgQVMgZ3JhbnRhYmxlCitGUk9NCisgICAgKFNFTEVDVAor ICAgICAgICBkLmdyYW50ZWUsIGQuZ3JhbnRvciwgZC5pc19ncmFudGFibGUsCisgICAgICAgIENB U0UgZC5wcml2aWxlZ2VfdHlwZQorICAgICAgICBXSEVOICdDT05ORUNUJyBUSEVOICdjJworICAg ICAgICBXSEVOICdDUkVBVEUnIFRIRU4gJ0MnCisgICAgICAgIFdIRU4gJ0RFTEVURScgVEhFTiAn ZCcKKyAgICAgICAgV0hFTiAnRVhFQ1VURScgVEhFTiAnWCcKKyAgICAgICAgV0hFTiAnSU5TRVJU JyBUSEVOICdhJworICAgICAgICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4JworICAgICAgICBX SEVOICdTRUxFQ1QnIFRIRU4gJ3InCisgICAgICAgIFdIRU4gJ1RFTVBPUkFSWScgVEhFTiAnVCcK KyAgICAgICAgV0hFTiAnVFJJR0dFUicgVEhFTiAndCcKKyAgICAgICAgV0hFTiAnVFJVTkNBVEUn IFRIRU4gJ0QnCisgICAgICAgIFdIRU4gJ1VQREFURScgVEhFTiAndycKKyAgICAgICAgV0hFTiAn VVNBR0UnIFRIRU4gJ1UnCisgICAgICAgIEVMU0UgJ1VOS05PV04nCisgICAgICAgIEVORCBBUyBw cml2aWxlZ2VfdHlwZQorICAgIEZST00KKyAgICAgICAgKFNFTEVDVAorICAgICAgICAgICAgKGQp LmdyYW50ZWUgQVMgZ3JhbnRlZSwgKGQpLmdyYW50b3IgQVMgZ3JhbnRvciwKKyAgICAgICAgICAg IChkKS5pc19ncmFudGFibGUgQVMgaXNfZ3JhbnRhYmxlLAorICAgICAgICAgICAgKGQpLnByaXZp bGVnZV90eXBlIEFTIHByaXZpbGVnZV90eXBlCisgICAgICAgIEZST00KKyAgICAgICAgICAgIChT RUxFQ1QgYWNsZXhwbG9kZShkYi5wcm9hY2wpIEFTIGQgRlJPTSBwZ19wcm9jIGRiCisgICAgICAg ICAgICBXSEVSRSBkYi5vaWQgPSB7e2ZuaWR9fTo6T0lEKSBhCisgICAgICAgICkgZAorICAgICkg ZAorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9IGcu b2lkKQorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGd0IE9OIChkLmdyYW50ZWUg PSBndC5vaWQpCitHUk9VUCBCWSBnLnJvbG5hbWUsIGd0LnJvbG5hbWU7CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9jb2xsX3N0YXRz LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L2Nv bGxfc3RhdHMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5MjQ2NzkK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9z cWwvZGVmYXVsdC9jb2xsX3N0YXRzLnNxbApAQCAtMCwwICsxLDIwIEBACitTRUxFQ1QKKyAgICBm dW5jbmFtZSBBUyB7eyBjb25ufHF0SWRlbnQoXygnTmFtZScpKSB9fSwKKyAgICBjYWxscyBBUyB7 eyBjb25ufHF0SWRlbnQoXygnTnVtYmVyIG9mIGNhbGxzJykpIH19LAorICAgIHRvdGFsX3RpbWUg QVMge3sgY29ubnxxdElkZW50KF8oJ1RvdGFsIHRpbWUnKSkgfX0sCisgICAgc2VsZl90aW1lIEFT IHt7IGNvbm58cXRJZGVudChfKCdTZWxmIHRpbWUnKSkgfX0KK0ZST00KKyAgICBwZ19zdGF0X3Vz ZXJfZnVuY3Rpb25zCitXSEVSRQorICAgIHNjaGVtYW5hbWUgPSB7e3NjaGVtYV9uYW1lfHF0TGl0 ZXJhbH19CisgICAgQU5EIGZ1bmNpZCBJTiAoCisgICAgICAgIFNFTEVDVCBwLm9pZAorICAgICAg ICBGUk9NCisgICAgICAgICAgICBwZ19wcm9jIHAKKyAgICAgICAgSk9JTgorICAgICAgICAgICAg cGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wLnByb3JldHR5cGUKKyAgICAgICAgV0hFUkUKKyAgICAg ICAgICAgIHAucHJva2luZCA9ICdwJzo6Y2hhcgorICAgICAgICAgICAgQU5EIHR5cG5hbWUgTk9U IElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKKyAgICApCitPUkRFUiBCWSBmdW5jbmFt ZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9k ZWZhdWx0L2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9z cWwvZGVmYXVsdC9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmZmZmYxN2QKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2Nl ZHVyZS9wZy9zcWwvZGVmYXVsdC9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsNDYgQEAKK3slIGltcG9y dCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkVMICV9Cit7JSBp bXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9 Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJM RSAlfQoreyUgc2V0IGlzX2NvbHVtbnMgPSBbXSAlfQoreyUgaWYgZGF0YSAlfQoreyUgaWYgcXVl cnlfZm9yID09ICdzcWxfcGFuZWwnIGFuZCBmdW5jX2RlZiBpcyBkZWZpbmVkICV9CitDUkVBVEUg T1IgUkVQTEFDRSAgUFJPQ0VEVVJFIHt7ZnVuY19kZWZ9fQoreyUgZWxzZSAlfQorQ1JFQVRFIE9S IFJFUExBQ0UgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0 YS5uYW1lKSB9fXslIGlmIGRhdGEuYXJndW1lbnRzIGlzIGRlZmluZWQgJX0KKyh7JSBmb3IgcCBp biBkYXRhLmFyZ3VtZW50cyAlfXslIGlmIHAuYXJnbW9kZSAlfXt7cC5hcmdtb2RlfX0geyUgZW5k aWYgJX17JSBpZiBwLmFyZ25hbWUgJX17eyBjb25ufHF0SWRlbnQocC5hcmduYW1lKX19IHslIGVu ZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9e3sgY29ubnxxdFR5cGVJZGVudChwLmFyZ3R5cGUpIH19 eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXsl IGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LCB7JSBlbmRpZiAlfQoreyUgZW5kZm9y IC0lfQoreyUgZW5kaWYgJX0KKykKK3slIGVuZGlmICV9CitMQU5HVUFHRSB7eyBkYXRhLmxhbm5h bWV8cXRMaXRlcmFsIH19Cit7JSBpZiBkYXRhLnByb3NlY2RlZiAlfVNFQ1VSSVRZIERFRklORVIg eyUgZW5kaWYgJX0KKworQVMgeyUgaWYgZGF0YS5sYW5uYW1lID09ICdjJyAlfQore3sgZGF0YS5w cm9iaW58cXRMaXRlcmFsIH19LCB7eyBkYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fQoreyUgZWxz ZSAlfQorJEJPRFkke3sgZGF0YS5wcm9zcmMgfX0kQk9EWSR7JSBlbmRpZiAtJX07Cit7JSBpZiBk YXRhLmFjbCBhbmQgbm90IGlzX3NxbCAlfQoreyUgZm9yIHAgaW4gZGF0YS5hY2wgJX0KKwore3sg UFJJVklMRUdFLlNFVChjb25uLCAiUFJPQ0VEVVJFIiwgcC5ncmFudGVlLCBkYXRhLm5hbWUsIHAu d2l0aG91dF9ncmFudCwgcC53aXRoX2dyYW50LCBkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5mdW5j X2FyZ3Nfd2l0aG91dCl9fQoreyUgZW5kZm9yICV9eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucmV2 b2tlX2FsbCAlfQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgIlBST0NFRFVSRSIsICJQ VUJMSUMiLCBkYXRhLm5hbWUsIGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLmZ1bmNfYXJnc193aXRo b3V0KX19Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorCitDT01NRU5U IE9OIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFt ZSkgfX0KKyAgICBJUyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCAgfX07Cit7JSBlbmRp ZiAtJX0KK3slIGlmIGRhdGEuc2VjbGFiZWxzICV9Cit7JSBmb3IgciBpbiBkYXRhLnNlY2xhYmVs cyAlfQoreyUgaWYgci5sYWJlbCBhbmQgci5wcm92aWRlciAlfQorCit7eyBTRUNMQUJFTC5TRVQo Y29ubiwgJ1BST0NFRFVSRScsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5sYWJlbCwgZGF0YS5w cm9uYW1lc3BhY2UsIGRhdGEuZnVuY19hcmdzX3dpdGhvdXQpIH19Cit7JSBlbmRpZiAlfQoreyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L2RlbGV0ZS5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9kZWxldGUuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0ZmNkYzIKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9k ZWxldGUuc3FsCkBAIC0wLDAgKzEsMjEgQEAKK3slIGlmIHNjaWQgYW5kIGZuaWQgJX0KK1NFTEVD VAorICAgIHByLnByb25hbWUgYXMgbmFtZSwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAg ICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJykn IGFzIGZ1bmNfYXJncywKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgor ICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX25hbWVz cGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKK1dIRVJFCisgICAgcHIucHJva2lu ZCA9ICdwJzo6Y2hhcgorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAg QU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKKyAgICBBTkQg cHIub2lkID0ge3tmbmlkfX07Cit7JSBlbmRpZiAlfQorCit7JSBpZiBuYW1lICV9CitEUk9QIFBS T0NFRFVSRSB7eyBjb25ufHF0SWRlbnQobnNwbmFtZSwgbmFtZSkgfX07Cit7JSBlbmRpZiAlfQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1 bHQvZ2V0X2RlZmluaXRpb24uc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUv cGcvc3FsL2RlZmF1bHQvZ2V0X2RlZmluaXRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjRjMmU5ZDkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9nZXRfZGVmaW5pdGlvbi5zcWwKQEAgLTAs MCArMSwxNSBAQAorU0VMRUNUCisgICAgcGdfZ2V0X2Z1bmN0aW9uZGVmKHt7Zm5pZH19OjpvaWQp IEFTIGZ1bmNfZGVmLAorICAgIENPQUxFU0NFKHBnX2NhdGFsb2cucGdfZ2V0X2Z1bmN0aW9uX2lk ZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgYXMKKyAgICBmdW5jX3dpdGhfaWRlbnRpdHlf YXJndW1lbnRzLAorICAgIG5zcG5hbWUsCisgICAgcHIucHJvbmFtZSBhcyBwcm9uYW1lLAorICAg IENPQUxFU0NFKHBnX2NhdGFsb2cucGdfZ2V0X2Z1bmN0aW9uX2FyZ3VtZW50cyhwci5vaWQpLCAn JykgYXMgZnVuY19hcmdzCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX25hbWVz cGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKK1dIRVJFCisgICAgcHIucHJva2lu ZCA9ICdwJzo6Y2hhcgorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAg QU5EIHByLm9pZCA9IHt7Zm5pZH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9nZXRfbGFuZ3VhZ2VzLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L2dldF9sYW5ndWFnZXMu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4MWRkZmIKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVs dC9nZXRfbGFuZ3VhZ2VzLnNxbApAQCAtMCwwICsxLDQgQEAKK1NFTEVDVAorICAgIGxhbm5hbWUg YXMgbGFiZWwsIGxhbm5hbWUgYXMgdmFsdWUKK0ZST00KKyAgICBwZ19sYW5ndWFnZTsKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L2dl dF9vaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1 bHQvZ2V0X29pZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmU5OGI1 MwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3Bn L3NxbC9kZWZhdWx0L2dldF9vaWQuc3FsCkBAIC0wLDAgKzEsMTcgQEAKK1NFTEVDVAorICAgIHBy Lm9pZCwgcHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19n ZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgbmFt ZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIGFzIGZ1bmNvd25lciwg cHIucHJvbmFtZXNwYWNlIEFTIG5zcAorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBw Z190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBs bmcgT04gbG5nLm9pZD1wcm9sYW5nCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Au b2lkPXByLnByb25hbWVzcGFjZQorICAgIEFORCBuc3AubnNwbmFtZT17eyBuc3BuYW1lfHF0TGl0 ZXJhbCB9fQorV0hFUkUKKyAgICBwci5wcm9raW5kID0gJ3AnOjpjaGFyCisgICAgQU5EIHR5cG5h bWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKKyAgICBBTkQgcHIucHJvbmFt ZSA9IHt7IG5hbWV8cXRMaXRlcmFsIH19OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvZ2V0X291dF90eXBlcy5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9nZXRfb3V0X3R5cGVzLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NGExMTg3Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQv Z2V0X291dF90eXBlcy5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBmb3JtYXRfdHlw ZShvaWQsIE5VTEwpIEFTIG91dF9hcmdfdHlwZQorRlJPTQorICAgIHBnX3R5cGUKK1dIRVJFCisg ICAgb2lkID0ge3sgb3V0X2FyZ19vaWQgfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L2dldF9zY2hlbWEuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvZ2V0X3NjaGVtYS5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI3ZDRiOQotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0 L2dldF9zY2hlbWEuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgbnNwbmFtZQorRlJP TQorICAgIHBnX25hbWVzcGFjZQorV0hFUkUKKyAgICBvaWQgPSB7eyBzY2lkIH19OjpvaWQ7CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVs dC9nZXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3Fs L2RlZmF1bHQvZ2V0X3R5cGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li4yYTU1ODJlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcGcvc3FsL2RlZmF1bHQvZ2V0X3R5cGVzLnNxbApAQCAtMCwwICsxLDIwIEBACitTRUxF Q1QKKyAgICAqCitGUk9NCisgICAgKFNFTEVDVAorICAgICAgICBmb3JtYXRfdHlwZSh0Lm9pZCxO VUxMKSBBUyB0eXBuYW1lLAorICAgICAgICBDQVNFIFdIRU4gdHlwZWxlbSA+IDAgVEhFTiB0eXBl bGVtIEVMU0UgdC5vaWQgRU5EIGFzIGVsZW1vaWQsIHR5cGxlbiwgdHlwdHlwZSwgdC5vaWQsIG5z cG5hbWUsCisgICAgICAgIChTRUxFQ1QgQ09VTlQoMSkgRlJPTSBwZ190eXBlIHQyIFdIRVJFIHQy LnR5cG5hbWUgPSB0LnR5cG5hbWUpID4gMSBBUyBpc2R1cAorICAgIEZST00KKyAgICAgICAgcGdf dHlwZSB0CisgICAgSk9JTgorICAgICAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIHR5cG5hbWVzcGFj ZT1uc3Aub2lkCisgICAgV0hFUkUKKyAgICAgICAgKE5PVCAodHlwbmFtZSA9ICd1bmtub3duJyBB TkQgbnNwbmFtZSA9ICdwZ19jYXRhbG9nJykpCisgICAgQU5ECisgICAgICAgICgKKyAgICAgICAg ICAgIHR5cHR5cGUgSU4gKCdiJywgJ2MnLCAnZCcsICdlJywgJ3AnLCAncicpCisgICAgICAgICAg ICBBTkQgdHlwbmFtZSBOT1QgSU4gKCdhbnknLCAndHJpZ2dlcicsICdsYW5ndWFnZV9oYW5kbGVy JywgJ2V2ZW50X3RyaWdnZXInKQorICAgICAgICApCisgICAgKSBBUyBkdW1teQorT1JERVIgQlkg bnNwbmFtZSA8PiAncGdfY2F0YWxvZycsIG5zcG5hbWUgPD4gJ3B1YmxpYycsIG5zcG5hbWUsIDE7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVm YXVsdC9ub2RlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9k ZWZhdWx0L25vZGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5ZGM3 NjgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9w Zy9zcWwvZGVmYXVsdC9ub2RlLnNxbApAQCAtMCwwICsxLDI5IEBACitTRUxFQ1QKKyAgICBwci5v aWQsCisgICAgQ0FTRSBXSEVOCisgICAgICAgIHBnX2NhdGFsb2cucGdfZ2V0X2Z1bmN0aW9uX2lk ZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpIDw+ICcnCisgICAgVEhFTgorICAgICAgICBwci5wcm9u YW1lIHx8ICcoJyB8fCBwZ19jYXRhbG9nLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVu dHMocHIub2lkKSB8fCAnKScKKyAgICBFTFNFCisgICAgICAgIHByLnByb25hbWUKKyAgICBFTkQg QVMgbmFtZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIEFTIGZ1bmNv d25lciwgZGVzY3JpcHRpb24KK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlw ZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9O IGxuZy5vaWQ9cHJvbGFuZworTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVz IE9OIChkZXMub2Jqb2lkPXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9jJzo6cmVnY2xh c3MpCitXSEVSRQorICAgIHByLnByb2tpbmQgPSAncCc6OmNoYXIKK3slIGlmIGZuaWQgJX0KKyAg ICBBTkQgcHIub2lkID0ge3sgZm5pZHxxdExpdGVyYWwgfX0KK3slIGVuZGlmICV9Cit7JSBpZiBz Y2lkICV9CisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKK3slIGVuZGlmICV9 CisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKK09S REVSIEJZCisgICAgcHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv cHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzliZWE4NgotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L3Byb3BlcnRpZXMu c3FsCkBAIC0wLDAgKzEsMzkgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIueG1pbiwgcHIuKiwg cHIucHJvc3JjIEFTIHByb3NyY19jLAorICAgIHByLnByb25hbWUgQVMgbmFtZSwgcGdfZ2V0X2Z1 bmN0aW9uX3Jlc3VsdChwci5vaWQpIEFTIHByb3JldHR5cGVuYW1lLAorICAgIHR5cG5zLm5zcG5h bWUgQVMgdHlwbnNwLCBsYW5uYW1lLCBwcm9hcmduYW1lcywgb2lkdmVjdG9ydHlwZXMocHJvYXJn dHlwZXMpIEFTIHByb2FyZ3R5cGVuYW1lcywKKyAgICBwZ19nZXRfZXhwcihwcm9hcmdkZWZhdWx0 cywgJ3BnX2NhdGFsb2cucGdfY2xhc3MnOjpyZWdjbGFzcykgQVMgcHJvYXJnZGVmYXVsdHZhbHMs CisgICAgcHJvbmFyZ2RlZmF1bHRzLCBwcm9jb25maWcsIHBnX2dldF91c2VyYnlpZChwcm9vd25l cikgQVMgZnVuY293bmVyLCBkZXNjcmlwdGlvbiwKKyAgICAoQ0FTRSBXSEVOCisgICAgICAgIHBn X2NhdGFsb2cucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpIDw+ICcn CisgICAgVEhFTgorICAgICAgICBwci5wcm9uYW1lIHx8ICcoJyB8fCBwZ19jYXRhbG9nLnBnX2dl dF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSB8fCAnKScKKyAgICBFTFNFCisg ICAgICAgIHByLnByb25hbWUKKyAgICBFTkQpIEFTIG5hbWVfd2l0aF9hcmdzLAorICAgIChTRUxF Q1QKKyAgICAgICAgYXJyYXlfYWdnKHByb3ZpZGVyIHx8ICc9JyB8fCBsYWJlbCkKKyAgICBGUk9N CisgICAgICAgIHBnX3NlY2xhYmVsIHNsMQorICAgIFdIRVJFCisgICAgICAgIHNsMS5vYmpvaWQ9 cHIub2lkKSBBUyBzZWNsYWJlbHMKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdf dHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIHR5 cG5zIE9OIHR5cG5zLm9pZD10eXAudHlwbmFtZXNwYWNlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2Ug bG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRp b24gZGVzIE9OIChkZXMub2Jqb2lkPXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9jJzo6 cmVnY2xhc3MpCitXSEVSRQorICAgIHByLnByb2tpbmQgPSAncCcKKyAgICBBTkQgdHlwbmFtZSBO T1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQoreyUgaWYgZm5pZCAlfQorICAgIEFO RCBwci5vaWQgPSB7e2ZuaWR9fTo6b2lkCit7JSBlbHNlICV9CisgICAgQU5EIHByb25hbWVzcGFj ZSA9IHt7c2NpZH19OjpvaWQKK3slIGVuZGlmICV9CitPUkRFUiBCWQorICAgIHByb25hbWU7CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVs dC9zdGF0cy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVm YXVsdC9zdGF0cy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmUyNzZi NgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3Bn L3NxbC9kZWZhdWx0L3N0YXRzLnNxbApAQCAtMCwwICsxLDggQEAKK1NFTEVDVAorICAgIGNhbGxz IEFTIHt7IGNvbm58cXRJZGVudChfKCdOdW1iZXIgb2YgY2FsbHMnKSkgfX0sCisgICAgdG90YWxf dGltZSBBUyB7eyBjb25ufHF0SWRlbnQoXygnVG90YWwgdGltZScpKSB9fSwKKyAgICBzZWxmX3Rp bWUgQVMge3sgY29ubnxxdElkZW50KF8oJ1NlbGYgdGltZScpKSB9fQorRlJPTQorICAgIHBnX3N0 YXRfdXNlcl9mdW5jdGlvbnMKK1dIRVJFCisgICAgZnVuY2lkID0ge3tmbmlkfX06Ok9JRApkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQv dXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZh dWx0L3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzhjZDQx MwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3Bn L3NxbC9kZWZhdWx0L3VwZGF0ZS5zcWwKQEAgLTAsMCArMSw5MCBAQAoreyUgaW1wb3J0ICdtYWNy b3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCRUwgJX0KK3slIGltcG9ydCAn bWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX17JSBpZiBk YXRhICV9Cit7JSBzZXQgbmFtZSA9IG9fZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgJX0K K3slIGlmIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfQorQUxURVIgUFJPQ0VEVVJFIHt7IGNv bm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEubmFtZSkgfX17JSBpZiBvX2Rh dGEucHJvYXJndHlwZW5hbWVzICV9KHt7IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0peyUgZW5k aWYgJX0KKworICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsKK3sl IHNldCBuYW1lID0gZGF0YS5uYW1lICV9Cit7JSBlbmRpZiAlfQorCit7JSBlbmRpZiAtJX0KK3sl IGlmIGRhdGEuY2hhbmdlX2Z1bmMgICV9CitDUkVBVEUgT1IgUkVQTEFDRSBQUk9DRURVUkUge3sg Y29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHslIGlmIGRhdGEuYXJn dW1lbnRzICV9eyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVudHMgJX17JSBpZiBwLmFyZ21vZGUgJX17 e3AuYXJnbW9kZX19IHslIGVuZGlmICV9eyUgaWYgcC5hcmduYW1lICV9e3sgY29ubnxxdElkZW50 KHAuYXJnbmFtZSkgfX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUgJX17eyBjb25ufHF0VHlw ZUlkZW50KHAuYXJndHlwZSkgfX17JSBlbmRpZiAlfXslIGlmIHAuYXJnZGVmdmFsICV9IERFRkFV TFQge3twLmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0KK3slIGlmIG5vdCBsb29wLmxhc3QgJX0sIHsl IGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9CispCit7JSBpZiAnbGFubmFtZScg aW4gZGF0YSAlfQorICAgIExBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxxdExpdGVyYWwgfX0geyUg ZWxzZSAlfQorICAgIExBTkdVQUdFIHt7IG9fZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fQorICAg IHslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb3NlY2RlZicgaW4gZGF0YSBhbmQgZGF0YS5wcm9zZWNk ZWYpIG9yICgncHJvc2VjZGVmJyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb3NlY2RlZikgJX1T RUNVUklUWSBERUZJTkVSeyUgZW5kaWYgJX0KKworQVMgeyUgaWYgJ3Byb2JpbicgaW4gZGF0YSBv ciAncHJvc3JjX2MnIGluIGRhdGEgJX0KK3slIGlmICdwcm9iaW4nIGluIGRhdGEgJX17eyBkYXRh LnByb2JpbnxxdExpdGVyYWwgfX17JSBlbHNlICV9e3sgb19kYXRhLnByb2JpbnxxdExpdGVyYWwg fX17JSBlbmRpZiAlfSwgeyUgaWYgJ3Byb3NyY19jJyBpbiBkYXRhICV9e3sgZGF0YS5wcm9zcmNf Y3xxdExpdGVyYWwgfX17JSBlbHNlICV9e3sgb19kYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fXsl IGVuZGlmICV9eyUgZWxpZiAncHJvc3JjJyBpbiBkYXRhICV9CiskQk9EWSR7eyBkYXRhLnByb3Ny YyB9fSRCT0RZJHslIGVsaWYgb19kYXRhLmxhbm5hbWUgPT0gJ2MnICV9Cit7eyBvX2RhdGEucHJv YmlufHF0TGl0ZXJhbCB9fSwge3sgb19kYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fXslIGVsc2Ug JX0KKyRCT0RZJHt7IG9fZGF0YS5wcm9zcmMgfX0kQk9EWSR7JSBlbmRpZiAtJX07Cit7JSBlbmRp ZiAtJX0KK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVSIFBST0NFRFVSRSB7eyBjb25u fHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX17JSBpZiBvX2RhdGEucHJvYXJn dHlwZW5hbWVzICV9KHt7IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0peyUgZW5kaWYgJX0KKyAg ICBPV05FUiBUTyB7eyBkYXRhLmZ1bmNvd25lciB9fTsKK3slIGVuZGlmIC0lfQoreyMgVGhlIFNR TCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBjaGFuZ2UgcHJpdmlsZWRnZXMgI30KK3slIGlmIGRhdGEu YWNsICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS5hY2wgJX0KK3slIGZvciBwcml2IGluIGRh dGEuYWNsLmRlbGV0ZWQgJX0KKwore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICdQUk9DRURV UkUnLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9h cmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2NoYW5n ZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5jaGFuZ2VkICV9 CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnUFJPQ0VEVVJFJywgcHJpdi5ncmFudGVl LCBuYW1lLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQor Cit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdQUk9DRURVUkUnLCBwcml2LmdyYW50ZWUsIG5hbWUs IHByaXYud2l0aG91dF9ncmFudCwKKyBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0l fQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wu YWRkZWQgJX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgcHJpdi5ncmFu dGVlLCBuYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnBy b25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUg ZW5kaWYgJX0KK3slIGVuZGlmIC0lfQoreyUgc2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxz ICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxs ZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVsZXRlZCAlfQorCit7eyBTRUNM QUJFTC5VTlNFVChjb25uLCAnUFJPQ0VEVVJFJywgbmFtZSwgci5wcm92aWRlciwgb19kYXRhLnBy b25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUg ZW5kaWYgLSV9Cit7JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVk fGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQorCit7eyBTRUNM QUJFTC5TRVQoY29ubiwgJ1BST0NFRFVSRScsIG5hbWUsIHIucHJvdmlkZXIsIHIubGFiZWwsIG9f ZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFi ZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5nZWQg JX0KKwore3sgU0VDTEFCRUwuU0VUKGNvbm4sICdQUk9DRURVUkUnLCBuYW1lLCByLnByb3ZpZGVy LCByLmxhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9 fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gaXMg ZGVmaW5lZCBhbmQgZGF0YS5kZXNjcmlwdGlvbiAhPSBvX2RhdGEuZGVzY3JpcHRpb24lfQorCitD T01NRU5UIE9OIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwg bmFtZSkgfX0KKyAgICBJUyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVu ZGlmIC0lfQoreyUgaWYgZGF0YS5wcm9uYW1lc3BhY2UgJX0KKworQUxURVIgUFJPQ0VEVVJFIHt7 IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fQorICAgIFNFVCBTQ0hF TUEge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlKSB9fTsKK3slIGVuZGlmIC0lfQor Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1 cmUvcGcvc3FsL2RlZmF1bHQvdmFyaWFibGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv cHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L3ZhcmlhYmxlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNTIzM2M3MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L3ZhcmlhYmxlcy5zcWwKQEAgLTAs MCArMSw2IEBACitTRUxFQ1QKKyAgICBuYW1lLCB2YXJ0eXBlLCBtaW5fdmFsLCBtYXhfdmFsLCBl bnVtdmFscworRlJPTQorICAgIHBnX3NldHRpbmdzCitXSEVSRQorICAgIGNvbnRleHQgaW4gKCd1 c2VyJywgJ3N1cGVydXNlcicpOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90 cmlnZ2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL2NvbGxfc3RhdHMuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL2NvbGxfc3RhdHMu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkOGNlY2QKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3RyaWdnZXJfZnVuY3Rpb24vcGcvc3Fs LzExX3BsdXMvY29sbF9zdGF0cy5zcWwKQEAgLTAsMCArMSwyMCBAQAorU0VMRUNUCisgICAgZnVu Y25hbWUgQVMge3sgY29ubnxxdElkZW50KF8oJ05hbWUnKSkgfX0sCisgICAgY2FsbHMgQVMge3sg Y29ubnxxdElkZW50KF8oJ051bWJlciBvZiBjYWxscycpKSB9fSwKKyAgICB0b3RhbF90aW1lIEFT IHt7IGNvbm58cXRJZGVudChfKCdUb3RhbCB0aW1lJykpIH19LAorICAgIHNlbGZfdGltZSBBUyB7 eyBjb25ufHF0SWRlbnQoXygnU2VsZiB0aW1lJykpIH19CitGUk9NCisgICAgcGdfc3RhdF91c2Vy X2Z1bmN0aW9ucworV0hFUkUKKyAgICBzY2hlbWFuYW1lID0ge3tzY2hlbWFfbmFtZXxxdExpdGVy YWx9fQorICAgIEFORCBmdW5jaWQgSU4gKAorICAgICAgICBTRUxFQ1QgcC5vaWQKKyAgICAgICAg RlJPTQorICAgICAgICAgICAgcGdfcHJvYyBwCisgICAgICAgIEpPSU4KKyAgICAgICAgICAgIHBn X3R5cGUgdHlwIE9OIHR5cC5vaWQ9cC5wcm9yZXR0eXBlCisgICAgICAgIFdIRVJFCisgICAgICAg ICAgICBwLnByb2tpbmQgSU4gKCdmJywgJ3cnKQorICAgICAgICAgICAgQU5EIHR5cG5hbWUgPSAn dHJpZ2dlcicKKyAgICApCitPUkRFUiBCWSBmdW5jbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9jcmVhdGUuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVz L2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjA0OTlhOQot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlv bi9wZy9zcWwvMTFfcGx1cy9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsNTcgQEAKK3slIGltcG9ydCAn bWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkVMICV9Cit7JSBpbXBv cnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7 JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAl fQoreyUgc2V0IGlzX2NvbHVtbnMgPSBbXSAlfQoreyUgaWYgZGF0YSAlfQorQ1JFQVRFIEZVTkNU SU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7JSBp ZiBkYXRhLnByb2FyZ25hbWVzICV9e3tkYXRhLnByb2FyZ25hbWVzfX17JSBlbmRpZiAlfSkKKyAg ICBSRVRVUk5TeyUgaWYgZGF0YS5wcm9yZXRzZXQgJX0gU0VUT0Z7JSBlbmRpZiAlfSB7eyBjb25u fHF0VHlwZUlkZW50KGRhdGEucHJvcmV0dHlwZW5hbWUpIH19CisgICAgTEFOR1VBR0Uge3sgZGF0 YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fQoreyUgaWYgZGF0YS5wcm9jb3N0ICV9CisgICAgQ09TVCB7 e2RhdGEucHJvY29zdH19Cit7JSBlbmRpZiAlfQorICAgIHslIGlmIGRhdGEucHJvdm9sYXRpbGUg JX17JSBpZiBkYXRhLnByb3ZvbGF0aWxlID09ICdpJyAlfUlNTVVUQUJMRXslIGVsaWYgZGF0YS5w cm92b2xhdGlsZSA9PSAncycgJX1TVEFCTEV7JSBlbHNlICV9Vk9MQVRJTEV7JSBlbmRpZiAlfSB7 JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvbGVha3Byb29mICV9TEVBS1BST09GIHslIGVsc2UgJX1O T1QgTEVBS1BST09GIHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb2lzc3RyaWN0ICV9U1RSSUNU IHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb3NlY2RlZiAlfVNFQ1VSSVRZIERFRklORVIgeyUg ZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvaXN3aW5kb3cgJX1XSU5ET1d7JSBlbmRpZiAlfQoreyUg aWYgZGF0YS5wcm9yb3dzIGFuZCAoZGF0YS5wcm9yb3dzIHwgaW50KSA+IDAgJX0KKworICAgIFJP V1Mge3tkYXRhLnByb3Jvd3N9fXslIGVuZGlmIC0lfXslIGlmIGRhdGEudmFyaWFibGVzICV9eyUg Zm9yIHYgaW4gZGF0YS52YXJpYWJsZXMgJX0KKworICAgIFNFVCB7eyBjb25ufHF0SWRlbnQodi5u YW1lKSB9fT17eyB2LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVuZGZvciAlfQoreyUgZW5kaWYgJX0K KworQVMgeyUgaWYgZGF0YS5sYW5uYW1lID09ICdjJyAlfQore3sgZGF0YS5wcm9iaW58cXRMaXRl cmFsIH19LCB7eyBkYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fQoreyUgZWxzZSAlfQorJEJPRFkk Cit7eyBkYXRhLnByb3NyYyB9fQorJEJPRFkkeyUgZW5kaWYgLSV9OworeyUgaWYgZGF0YS5mdW5j b3duZXIgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNw YWNlLCBkYXRhLm5hbWUpIH19KHt7ZGF0YS5mdW5jX2FyZ3N9fSkKKyAgICBPV05FUiBUTyB7eyBj b25ufHF0SWRlbnQoZGF0YS5mdW5jb3duZXIpIH19OworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRh LmFjbCAlfQoreyUgZm9yIHAgaW4gZGF0YS5hY2wgJX0KKwore3sgUFJJVklMRUdFLlNFVChjb25u LCAiRlVOQ1RJT04iLCBwLmdyYW50ZWUsIGRhdGEubmFtZSwgcC53aXRob3V0X2dyYW50LCBwLndp dGhfZ3JhbnQsIGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLmZ1bmNfYXJncyl9fQoreyUgZW5kZm9y ICV9eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucmV2b2tlX2FsbCAlfQorCit7eyBQUklWSUxFR0Uu VU5TRVRBTEwoY29ubiwgIkZVTkNUSU9OIiwgIlBVQkxJQyIsIGRhdGEubmFtZSwgZGF0YS5wcm9u YW1lc3BhY2UsIGRhdGEuZnVuY19hcmdzX3dpdGhvdXQpfX0KK3slIGVuZGlmICV9Cit7JSBpZiBk YXRhLmRlc2NyaXB0aW9uICV9CisKK0NPTU1FTlQgT04gRlVOQ1RJT04ge3sgY29ubnxxdElkZW50 KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19KHt7ZGF0YS5mdW5jX2FyZ3N9fSkKKyAg ICBJUyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCAgfX07Cit7JSBlbmRpZiAtJX0KK3sl IGlmIGRhdGEuc2VjbGFiZWxzICV9Cit7JSBmb3IgciBpbiBkYXRhLnNlY2xhYmVscyAlfQoreyUg aWYgci5sYWJlbCBhbmQgci5wcm92aWRlciAlfQorCit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ0ZV TkNUSU9OJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsLCBkYXRhLnByb25hbWVzcGFj ZSwgZGF0YS5mdW5jX2FyZ3MpIH19Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAtJX0KKworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv dHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL2RlbGV0ZS5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjdmOTA2YgotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1 cy9kZWxldGUuc3FsCkBAIC0wLDAgKzEsMjEgQEAKK3slIGlmIHNjaWQgYW5kIGZuaWQgJX0KK1NF TEVDVAorICAgIHByLnByb25hbWUgYXMgbmFtZSwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cK KyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwg JyknIGFzIGZ1bmNfYXJncywKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9J TgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX25h bWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKK1dIRVJFCisgICAgcHIucHJv a2luZCBJTiAoJ2YnLCAndycpCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQK KyAgICBBTkQgdHlwbmFtZSBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5E IHByLm9pZCA9IHt7Zm5pZH19OworeyUgZW5kaWYgJX0KKworeyUgaWYgbmFtZSAlfQorRFJPUCBG VU5DVElPTiB7eyBjb25ufHF0SWRlbnQobnNwbmFtZSwgbmFtZSkgfX17e2Z1bmNfYXJnc319eyUg aWYgY2FzY2FkZSAlfSBDQVNDQURFeyUgZW5kaWYgJX07Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVz L2dldF9kZWZpbml0aW9uLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5j dGlvbi9wZy9zcWwvMTFfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uYWIyNWRiZgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9nZXRfZGVmaW5pdGlv bi5zcWwKQEAgLTAsMCArMSwxNSBAQAorU0VMRUNUCisgICAgcGdfZ2V0X2Z1bmN0aW9uZGVmKHt7 Zm5pZH19OjpvaWQpIEFTIGZ1bmNfZGVmLAorICAgIENPQUxFU0NFKHBnX2NhdGFsb2cucGdfZ2V0 X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgYXMKKyAgICBmdW5jX3dp dGhfaWRlbnRpdHlfYXJndW1lbnRzLAorICAgIG5zcG5hbWUsCisgICAgcHIucHJvbmFtZSBhcyBw cm9uYW1lLAorICAgIENPQUxFU0NFKHBnX2NhdGFsb2cucGdfZ2V0X2Z1bmN0aW9uX2FyZ3VtZW50 cyhwci5vaWQpLCAnJykgYXMgZnVuY19hcmdzCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgor ICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKK1dIRVJFCisg ICAgcHIucHJva2luZCBJTiAoJ2YnLCAndycpCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2Np ZH19OjpvaWQKKyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9nZXRf b2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwv MTFfcGx1cy9nZXRfb2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40 MTNkZjkxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2Vy X2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL2dldF9vaWQuc3FsCkBAIC0wLDAgKzEsMTggQEAKK1NF TEVDVAorICAgIHByLm9pZCwgcHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxv ZworICAgIC5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8 fCAnKScgYXMgbmFtZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIGFz IGZ1bmNvd25lciwgcHIucHJvbmFtZXNwYWNlIEFTIG5zcAorRlJPTQorICAgIHBnX3Byb2MgcHIK K0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBw Z19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitKT0lOCisgICAgcGdfbmFtZXNwYWNl IG5zcCBPTiBuc3Aub2lkPXByLnByb25hbWVzcGFjZQorICAgIEFORCBuc3AubnNwbmFtZT17eyBu c3BuYW1lfHF0TGl0ZXJhbCB9fQorV0hFUkUKKyAgICBwci5wcm9raW5kIElOICgnZicsICd3JykK KyAgICBBTkQgdHlwbmFtZSBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5E IGxhbm5hbWUgTk9UIElOICgnZWRic3BsJywgJ3NxbCcsICdpbnRlcm5hbCcpCisgICAgQU5EIHBy LnByb25hbWUgPSB7eyBuYW1lfHF0TGl0ZXJhbCB9fTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9ub2RlLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9ub2Rl LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NWQ3YzU0Ci0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3BnL3Nx bC8xMV9wbHVzL25vZGUuc3FsCkBAIC0wLDAgKzEsMjMgQEAKK1NFTEVDVAorICAgIHByLm9pZCwg cHIucHJvbmFtZSB8fCAnKCknIGFzIG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlk KHByb293bmVyKSBhcyBmdW5jb3duZXIsIGRlc2NyaXB0aW9uCitGUk9NCisgICAgcGdfcHJvYyBw cgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAg IHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAg IHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29p ZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwci5wcm9raW5kIElOICgnZicsICd3 JykKK3slIGlmIGZuaWQgJX0KKyAgICBBTkQgcHIub2lkID0ge3sgZm5pZHxxdExpdGVyYWwgfX0K K3slIGVuZGlmICV9Cit7JSBpZiBzY2lkICV9CisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2Np ZH19OjpvaWQKK3slIGVuZGlmICV9CisgICAgQU5EIHR5cG5hbWUgSU4gKCd0cmlnZ2VyJywgJ2V2 ZW50X3RyaWdnZXInKQorICAgIEFORCBsYW5uYW1lIE5PVCBJTiAoJ2VkYnNwbCcsICdzcWwnLCAn aW50ZXJuYWwnKQorT1JERVIgQlkKKyAgICBwcm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL3Byb3BlcnRpZXMu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9w bHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5 ZDc4NjYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3RyaWdnZXJf ZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSwzMyBAQAor U0VMRUNUCisgICAgcHIub2lkLCBwci54bWluLCBwci4qLCBwci5wcm9zcmMgQVMgcHJvc3JjX2Ms CisgICAgcHIucHJvbmFtZSBBUyBuYW1lLCBwZ19nZXRfZnVuY3Rpb25fcmVzdWx0KHByLm9pZCkg QVMgcHJvcmV0dHlwZW5hbWUsCisgICAgdHlwbnMubnNwbmFtZSBBUyB0eXBuc3AsIGxhbm5hbWUs IHByb2FyZ25hbWVzLCBvaWR2ZWN0b3J0eXBlcyhwcm9hcmd0eXBlcykgQVMgcHJvYXJndHlwZW5h bWVzLAorICAgIHBnX2dldF9leHByKHByb2FyZ2RlZmF1bHRzLCAncGdfY2F0YWxvZy5wZ19jbGFz cyc6OnJlZ2NsYXNzKSBBUyBwcm9hcmdkZWZhdWx0dmFscywKKyAgICBwcm9uYXJnZGVmYXVsdHMs IHByb2NvbmZpZywgcGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBBUyBmdW5jb3duZXIsIGRlc2Ny aXB0aW9uLAorICAgIChTRUxFQ1QKKyAgICAgICAgYXJyYXlfYWdnKHByb3ZpZGVyIHx8ICc9JyB8 fCBsYWJlbCkKKyAgICBGUk9NCisgICAgICAgIHBnX3NlY2xhYmVsIHNsMQorICAgIFdIRVJFCisg ICAgICAgIHNsMS5vYmpvaWQ9cHIub2lkKSBBUyBzZWNsYWJlbHMKK0ZST00KKyAgICBwZ19wcm9j IHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisg ICAgcGdfbmFtZXNwYWNlIHR5cG5zIE9OIHR5cG5zLm9pZD10eXAudHlwbmFtZXNwYWNlCitKT0lO CisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworTEVGVCBPVVRFUiBKT0lO CisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPXByLm9pZCBBTkQgZGVzLmNs YXNzb2lkPSdwZ19wcm9jJzo6cmVnY2xhc3MpCitXSEVSRQorICAgIHByLnByb2tpbmQgSU4gKCdm JywgJ3cnKQorICAgIEFORCB0eXBuYW1lIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykK KyAgICBBTkQgbGFubmFtZSBOT1QgSU4gKCdlZGJzcGwnLCAnc3FsJywgJ2ludGVybmFsJykKK3sl IGlmIGZuaWQgJX0KKyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX06Om9pZAoreyUgZWxzZSAlfQor ICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCit7JSBlbmRpZiAlfQorT1JERVIg QlkKKyAgICBwcm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmln Z2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL3RyaWdnZXJfZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvdXBkYXRlLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTNiZTYyCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL3Vw ZGF0ZS5zcWwKQEAgLTAsMCArMSwxMDkgQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9z ZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkVMICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlv bnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9m dW5jdGlvbnMvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAlfXslIGlmIGRhdGEgJX0KK3sl IHNldCBuYW1lID0gb19kYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAlfQoreyUgaWYgZGF0 YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQo b19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLm5hbWUpIH19KHt7CitvX2RhdGEucHJvYXJndHlw ZW5hbWVzIH19KQorICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsK K3slIHNldCBuYW1lID0gZGF0YS5uYW1lICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgLSV9Cit7 JSBpZiBkYXRhLmNoYW5nZV9mdW5jICAlfQorCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB7 eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oKQorICAgIFJFVFVS TlMge3sgb19kYXRhLnByb3JldHR5cGVuYW1lIH19Cit7JSBpZiAnbGFubmFtZScgaW4gZGF0YSAl fQorICAgIExBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxxdExpdGVyYWwgfX0geyUgZWxzZSAlfQor ICAgIExBTkdVQUdFIHt7IG9fZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fQorICAgIHslIGVuZGlm ICV9eyUgaWYgJ3Byb3ZvbGF0aWxlJyBpbiBkYXRhIGFuZCBkYXRhLnByb3ZvbGF0aWxlICV9e3sg ZGF0YS5wcm92b2xhdGlsZSB9fSB7JSBlbGlmICdwcm92b2xhdGlsZScgbm90IGluIGRhdGEgYW5k IG9fZGF0YS5wcm92b2xhdGlsZSAlfXt7IG9fZGF0YS5wcm92b2xhdGlsZSB9fXslIGVuZGlmICV9 Cit7JSBpZiAoJ3Byb2xlYWtwcm9vZicgaW4gZGF0YSBhbmQgZGF0YS5wcm9sZWFrcHJvb2YpIG9y ICgncHJvbGVha3Byb29mJyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2xlYWtwcm9vZikgJX0g TEVBS1BST09GeyUgZWxpZiAncHJvbGVha3Byb29mJyBpbiBkYXRhIGFuZCBub3QgZGF0YS5wcm9s ZWFrcHJvb2YgJX0gTk9UIExFQUtQUk9PRnslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2lzc3RyaWN0 JyBpbiBkYXRhIGFuZCBkYXRhLnByb2lzc3RyaWN0KSBvciAoJ3Byb2lzc3RyaWN0JyBub3QgaW4g ZGF0YSBhbmQgb19kYXRhLnByb2lzc3RyaWN0KSAlfSBTVFJJQ1R7JSBlbmRpZiAlfQoreyUgaWYg KCdwcm9zZWNkZWYnIGluIGRhdGEgYW5kIGRhdGEucHJvc2VjZGVmKSBvciAoJ3Byb3NlY2RlZicg bm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9zZWNkZWYpICV9IFNFQ1VSSVRZIERFRklORVJ7JSBl bmRpZiAlfQoreyUgaWYgKCdwcm9pc3dpbmRvdycgaW4gZGF0YSBhbmQgZGF0YS5wcm9pc3dpbmRv dykgb3IgKCdwcm9pc3dpbmRvdycgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9pc3dpbmRvdykg JX0gV0lORE9XeyUgZW5kaWYgJX0KKworICAgIHslIGlmIGRhdGEucHJvY29zdCAlfUNPU1Qge3tk YXRhLnByb2Nvc3R9fXslIGVsaWYgb19kYXRhLnByb2Nvc3QgJX1DT1NUIHt7b19kYXRhLnByb2Nv c3R9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9yb3dzICV9CisKKyAgICBST1dTIHt7ZGF0YS5w cm9yb3dzfX17JSBlbGlmIGRhdGEucHJvcm93cyBpcyBub3QgZGVmaW5lZCBhbmQgb19kYXRhLnBy b3Jvd3MgYW5kIG9fZGF0YS5wcm9yb3dzICE9ICcwJyAlfSAgICBST1dTIHt7b19kYXRhLnByb3Jv d3N9fSB7JWVuZGlmIC0lfXslIGlmIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfXslIGZvciB2IGlu IGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfQorCisgICAgU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5h bWUpIH19PXt7IHYudmFsdWV8cXRMaXRlcmFsIH19eyUgZW5kZm9yIC0lfQorICAgIHslIGVuZGlm ICV9CisKK0FTIHslIGlmICdwcm9iaW4nIGluIGRhdGEgb3IgJ3Byb3NyY19jJyBpbiBkYXRhICV9 Cit7JSBpZiAncHJvYmluJyBpbiBkYXRhICV9e3sgZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19eyUg ZWxzZSAlfXt7IG9fZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19eyUgZW5kaWYgJX0sIHslIGlmICdw cm9zcmNfYycgaW4gZGF0YSAlfXt7IGRhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZWxzZSAl fXt7IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX17JSBlbmRpZiAlfXslIGVsaWYgJ3Byb3Ny YycgaW4gZGF0YSAlfQorJEJPRFkke3sgZGF0YS5wcm9zcmMgfX0kQk9EWSR7JSBlbGlmIG9fZGF0 YS5sYW5uYW1lID09ICdjJyAlfQore3sgb19kYXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IG9f ZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX17JSBlbHNlICV9CiskQk9EWSR7eyBvX2RhdGEucHJv c3JjIH19JEJPRFkkeyUgZW5kaWYgLSV9OworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmZ1bmNv d25lciAlfQorCitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVz cGFjZSwgbmFtZSkgfX0oe3tvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIE9XTkVSIFRP IHt7IGNvbm58cXRJZGVudChkYXRhLmZ1bmNvd25lcikgfX07Cit7JSBlbmRpZiAtJX0KK3sjIFRo ZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZpbGVkZ2VzICN9Cit7JSBpZiBk YXRhLmFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBp biBkYXRhLmFjbC5kZWxldGVkICV9CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnRlVO Q1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5w cm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2No YW5nZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5jaGFuZ2Vk ICV9CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50 ZWUsIG5hbWUsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19 CisKK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1l LCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFj ZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9 Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5h ZGRlZCAlfQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRl ZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9u YW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX17JSBlbmRp ZiAtJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5jaGFuZ2VfZnVuYyA9PSBGYWxzZSAlfQor eyUgaWYgZGF0YS52YXJpYWJsZXMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLnZhcmlhYmxl cyBhbmQgZGF0YS52YXJpYWJsZXMuZGVsZXRlZHxsZW5ndGggPiAwICV9CisKK3t7IFZBUklBQkxF LlVOU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIGRhdGEudmFyaWFibGVzLmRlbGV0ZWQsIG9f ZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRpZiAt JX0KK3slIGlmICdtZXJnZWRfdmFyaWFibGVzJyBpbiBkYXRhIGFuZCBkYXRhLm1lcmdlZF92YXJp YWJsZXN8bGVuZ3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywg bmFtZSwgZGF0YS5tZXJnZWRfdmFyaWFibGVzLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEu cHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KK3slIGVuZGlm IC0lfQoreyUgc2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiAnZGVsZXRl ZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5ndGggPiAwICV9Cit7JSBm b3IgciBpbiBzZWNsYWJlbHMuZGVsZXRlZCAlfQorCit7eyBTRUNMQUJFTC5VTlNFVChjb25uLCAn RlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEu cHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdh ZGRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAlfQoreyUg Zm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9CisKK3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnRlVO Q1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBv X2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3sl IGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+ IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5jaGFuZ2VkICV9CisKK3t7IFNFQ0xBQkVMLlNF VChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsLCBvX2RhdGEucHJv bmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBl bmRpZiAtJX0KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gaXMgZGVmaW5lZCBhbmQgZGF0YS5kZXNj cmlwdGlvbiAhPSBvX2RhdGEuZGVzY3JpcHRpb24lfQorCitDT01NRU5UIE9OIEZVTkNUSU9OIHt7 IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7e29fZGF0YS5wcm9h cmd0eXBlbmFtZXMgfX0pCisgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWwgfX07 Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5wcm9uYW1lc3BhY2UgJX0KKworQUxURVIgRlVO Q1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7b19k YXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBTRVQgU0NIRU1BIHt7IGNvbm58cXRJZGVudChk YXRhLnByb25hbWVzcGFjZSkgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgZW5kaWYgJX0KZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0aW9uX2FkZC5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZXN0cy90ZXN0X2Z1bmN0aW9uX2FkZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi43MWVlMjg1Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3Rz L3Rlc3RfZnVuY3Rpb25fYWRkLnB5CkBAIC0wLDAgKzEsODAgQEAKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAy MDEzIC0gMjAxOCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJl IGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisKK2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAorCisKK2Zyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFz IFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBC YXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9y dCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZ1bmNzX3V0aWxz CisKKworY2xhc3MgRnVuY3Rpb25BZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAg IiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3IGZ1bmN0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAi IiIKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9y IGZ1bmN0aW9uIG5vZGUuCisgICAgICAgICgnRmV0Y2ggRnVuY3Rpb24gTm9kZSBVUkwnLCBkaWN0 KAorICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlvbi9vYmovJykpCisgICAgXQorCisg ICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRk IGZ1bmN0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKyAgICAgICAgc3VwZXIoRnVuY3Rpb25B ZGRUZXN0Q2FzZSwgc2VsZikucnVuVGVzdCgpCisgICAgICAgIHNlbGYgPSBmdW5jc191dGlscy5z ZXRfdXAoc2VsZikKKyAgICAgICAgZGJfdXNlciA9IHNlbGYuc2VydmVyWyJ1c2VybmFtZSJdCisg ICAgICAgIGRhdGEgPSB7CisgICAgICAgICAgICAiYWNsIjogWworICAgICAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgICAgICAgImdyYW50ZWUiOiBkYl91c2VyLAorICAgICAgICAgICAgICAg ICAgICAiZ3JhbnRvciI6IGRiX3VzZXIsCisgICAgICAgICAgICAgICAgICAgICJwcml2aWxlZ2Vz IjoKKyAgICAgICAgICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcml2aWxlZ2VfdHlwZSI6ICJY IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByaXZpbGVnZSI6IFRydWUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aXRoX2dyYW50IjogVHJ1ZQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIF0KKyAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImFyZ3VtZW50cyI6IFtd LAorICAgICAgICAgICAgImZ1bmNvd25lciI6IGRiX3VzZXIsCisgICAgICAgICAgICAibGFubmFt ZSI6ICJzcWwiLAorICAgICAgICAgICAgIm5hbWUiOiAidGVzdF9mdW5jdGlvbiIsCisgICAgICAg ICAgICAib3B0aW9ucyI6IFtdLAorICAgICAgICAgICAgInByb2xlYWtwcm9vZiI6IFRydWUsCisg ICAgICAgICAgICAicHJvbmFtZXNwYWNlIjogMjIwMCwKKyAgICAgICAgICAgICJwcm9yZXR0eXBl bmFtZSI6ICJpbnRlZ2VyIiwKKyAgICAgICAgICAgICJwcm9zZWNkZWYiOiBUcnVlLAorICAgICAg ICAgICAgInByb3NyYyI6ICJTRUxFQ1QgMTsiLAorICAgICAgICAgICAgInByb2JpbiI6ICIkbGli ZGlyLyIsCisgICAgICAgICAgICAicHJvdm9sYXRpbGUiOiAicyIsCisgICAgICAgICAgICAic2Vj bGFiZWxzIjogW10sCisgICAgICAgICAgICAidmFyaWFibGVzIjogW10KKyAgICAgICAgfQorCisg ICAgICAgIGRhdGFbIm5hbWUiXSA9ICJ0ZXN0X2Z1bmN0aW9uX2FkZF8lcyIgJSBzdHIodXVpZC51 dWlkNCgpKVsxOjhdCisgICAgICAgIGlmIHNlbGYuc2NoZW1hX2lkOgorICAgICAgICAgICAgZGF0 YVsncHJvbmFtZXNwYWNlJ10gPSBzZWxmLnNjaGVtYV9pZAorICAgICAgICBlbHNlOgorICAgICAg ICAgICAgc2VsZi5zY2hlbWFfaWQgPSBkYXRhWydwcm9uYW1lc3BhY2UnXQorICAgICAgICByZXNw b25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGls cy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkg KyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKworICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2No ZW1hX2lkKSArICcvJywKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAg ICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICApCisKKyAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgIyBEaXNj b25uZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2Rh dGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl c3RzL3Rlc3RfZnVuY3Rpb25fZGVsZXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjc5YTg5ZmEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVz dF9mdW5jdGlvbl9kZWxldGUucHkKQEAgLTAsMCArMSw0OSBAQAorIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIw MTMgLSAyMDE4LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUg aXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKworaW1wb3J0IHV1aWQKKworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNl X3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Citmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMg dXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnVuY3NfdXRpbHMKKworCitjbGFzcyBGdW5j dGlvbkRlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFz cyB3aWxsIGRlbGV0ZSB0aGUgZnVuY3Rpb24gdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorICAgIHNj ZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZnVuY3Rpb24g bm9kZS4KKyAgICAgICAgKCdGZXRjaCBGdW5jdGlvbiBOb2RlIFVSTCcsCisgICAgICAgICBkaWN0 KHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vb2JqLycpKQorICAgIF0KKworICAgIGRlZiBydW5UZXN0 KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBmdW5jdGlvbiB1 bmRlciBkYXRhYmFzZSBub2RlLiAiIiIKKyAgICAgICAgc3VwZXIoRnVuY3Rpb25EZWxldGVUZXN0 Q2FzZSwgc2VsZikuc2V0VXAoKQorICAgICAgICBzZWxmID0gZnVuY3NfdXRpbHMuc2V0X3VwKHNl bGYpCisKKyAgICAgICAgZnVuY19uYW1lID0gInRlc3RfZnVuY3Rpb25fZGVsZXRlXyVzIiAlIHN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgZnVuY3Rpb25faW5mbyA9IGZ1bmNzX3V0aWxz LmNyZWF0ZV9mdW5jdGlvbigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUs IHNlbGYuc2NoZW1hX25hbWUsIGZ1bmNfbmFtZSkKKworICAgICAgICBmdW5jX2lkID0gZnVuY3Rp b25faW5mb1swXQorICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKKyAgICAg ICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAg ICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5k Yl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArIHN0 cihmdW5jX2lkKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAg ICApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDAp CisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRp bHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkK KworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3Rz L3Rlc3RfZnVuY3Rpb25fZ2V0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjMyYTU1ODUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5j dGlvbl9nZXQucHkKQEAgLTAsMCArMSw0OSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdB ZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE4 LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFz ZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwor aW1wb3J0IHV1aWQKKworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitm cm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJl Z3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zy b20gLiBpbXBvcnQgdXRpbHMgYXMgZnVuY3NfdXRpbHMKKworCitjbGFzcyBGdW5jdGlvbkdldFRl c3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiJUaGlzIGNsYXNzIHdpbGwgZmV0Y2gg YWRkZWQgZnVuY3Rpb24gdW5kZXIgc2NoZW1hIG5vZGUuIiIiCisgICAgc2tpcF9vbl9kYXRhYmFz ZSA9IFsnZ3BkYiddCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1 bHQgVVJMIGZvciBmdW5jdGlvbiBub2RlLgorICAgICAgICAoJ0ZldGNoIEZ1bmN0aW9uIE5vZGUg VVJMJywKKyAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci9mdW5jdGlvbi9vYmovJykpCisgICAg XQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdp bGwgZGVsZXRlIGZ1bmN0aW9uIHVuZGVyIGRhdGFiYXNlIG5vZGUuICIiIgorICAgICAgICBzdXBl cihGdW5jdGlvbkdldFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCisgICAgICAgIHNlbGYgPSBmdW5j c191dGlscy5zZXRfdXAoc2VsZikKKworICAgICAgICBmdW5jX25hbWUgPSAidGVzdF9mdW5jdGlv bl9nZXRfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBmdW5jdGlvbl9pbmZv ID0gZnVuY3NfdXRpbHMuY3JlYXRlX2Z1bmN0aW9uKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIs IHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgZnVuY19uYW1lKQorCisgICAgICAgIHRy aWdnZXJfZnVuY19pZCA9IGZ1bmN0aW9uX2luZm9bMF0KKyAgICAgICAgcmVzcG9uc2UgPSBzZWxm LnRlc3Rlci5nZXQoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JP VVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKworICAg ICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNj aGVtYV9pZCkgKyAnLycgKyBzdHIodHJpZ2dlcl9mdW5jX2lkKSwKKyAgICAgICAgICAgIGNvbnRl bnRfdHlwZT0naHRtbC9qc29uJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uu c3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAg ICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBwYXNz CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9wdXQucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9wdXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uODU2NTY4NwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZXN0cy90ZXN0X2Z1bmN0aW9uX3B1dC5weQpAQCAtMCwwICsxLDU3IEBACisjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdo dCAoQykgMjAxMyAtIDIwMTgsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworCitpbXBvcnQganNvbgoraW1wb3J0IHV1aWQKKworZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRp bHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1w b3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMg aW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnVuY3Nf dXRpbHMKKworCitjbGFzcyBGdW5jdGlvblB1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK KyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIHVwZGF0ZSBuZXcgZnVuY3Rpb24gdW5kZXIgc2NoZW1h IG5vZGUuICIiIgorICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQorICAgIHNjZW5hcmlv cyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZnVuY3Rpb24gbm9kZS4K KyAgICAgICAgKCdGZXRjaCBGdW5jdGlvbiBOb2RlIFVSTCcsCisgICAgICAgICBkaWN0KHVybD0n L2Jyb3dzZXIvZnVuY3Rpb24vb2JqLycpKQorICAgIF0KKworICAgIGRlZiBydW5UZXN0KHNlbGYp OgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSBmdW5jdGlvbiB1bmRlciBk YXRhYmFzZSBub2RlLiAiIiIKKyAgICAgICAgc3VwZXIoRnVuY3Rpb25QdXRUZXN0Q2FzZSwgc2Vs Zikuc2V0VXAoKQorICAgICAgICBzZWxmID0gZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYpCisKKyAg ICAgICAgZnVuY19uYW1lID0gInRlc3RfZXZlbnRfZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0 KCkpWzE6OF0KKyAgICAgICAgZnVuY3Rpb25faW5mbyA9IGZ1bmNzX3V0aWxzLmNyZWF0ZV9mdW5j dGlvbigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1h X25hbWUsIGZ1bmNfbmFtZSkKKworICAgICAgICBmdW5jX2lkID0gZnVuY3Rpb25faW5mb1swXQor CisgICAgICAgIGRhdGEgPSB7CisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhpcyBpcyBh IHByb2NlZHVyZSB1cGRhdGUgY29tbWVudCIsCisgICAgICAgICAgICAiaWQiOiBmdW5jX2lkCisg ICAgICAgIH0KKworICAgICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCisgICAg ICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsKKyAgICAgICAgICAg ICcvJyArIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKyAnLycg KworICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCisgICAgICAgICAgICBz dHIoZnVuY19pZCksCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAgICAg ICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHB1 dF9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRh dGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwg c2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6Cisg ICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3Byb2NlZHVy ZV9hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9wcm9jZWR1cmVfYWRkLnB5Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1Y2RmMTcKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9wcm9jZWR1cmVfYWRkLnB5CkBAIC0wLDAgKzEsOTAg QEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMK KyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxOCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQg VGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExp Y2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAor Citmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRl c3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbi5weXRo b25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1 dGlscyBhcyBmdW5jc191dGlscworCisKK2NsYXNzIFByb2NlZHVyZUFkZFRlc3RDYXNlKEJhc2VU ZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcgcHJvY2VkdXJl IHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKyAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10K KyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHBy b2NlZHVyZSBub2RlLgorICAgICAgICAoJ0ZldGNoIFByb2NlZHVyZSBOb2RlIFVSTCcsIGRpY3Qo CisgICAgICAgICAgICB1cmw9Jy9icm93c2VyL3Byb2NlZHVyZS9vYmovJykpCisgICAgXQorCisg ICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRk IHByb2NlZHVyZSB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCisgICAgICAgIHN1cGVyKFByb2NlZHVy ZUFkZFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCisgICAgICAgIHNlbGYgPSBmdW5jc191dGlscy5z ZXRfdXAoc2VsZikKKworICAgICAgICBpZiBzZWxmLnNlcnZlcl90eXBlID09ICJwZyIgYW5kXAor ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX3ZlcnNpb24gPCAxMTAwMDA6CisgICAgICAgICAg ICBtZXNzYWdlID0gIlByb2NlZHVyZXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgUEcgPCAxMTAwMDAu IgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdChtZXNzYWdlKQorCisgICAgICAgIGRiX3VzZXIg PSBzZWxmLnNlcnZlclsidXNlcm5hbWUiXQorICAgICAgICBkYXRhID0geworICAgICAgICAgICAg ImFjbCI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJncmFudGVl IjogZGJfdXNlciwKKyAgICAgICAgICAgICAgICAgICAgImdyYW50b3IiOiBkYl91c2VyLAorICAg ICAgICAgICAgICAgICAgICAicHJpdmlsZWdlcyI6CisgICAgICAgICAgICAgICAgICAgICAgICBb CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAicHJpdmlsZWdlX3R5cGUiOiAiWCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJwcml2aWxlZ2UiOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAid2l0aF9ncmFudCI6IFRydWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwK KyAgICAgICAgICAgICJhcmd1bWVudHMiOiBbXSwKKyAgICAgICAgICAgICJmdW5jb3duZXIiOiBk Yl91c2VyLAorICAgICAgICAgICAgImxhbm5hbWUiOiAic3FsIiwKKyAgICAgICAgICAgICJuYW1l IjogInRlc3RfcGdfMTFfcHJvYyIsCisgICAgICAgICAgICAib3B0aW9ucyI6IFtdLAorICAgICAg ICAgICAgInByb2xlYWtwcm9vZiI6IFRydWUsCisgICAgICAgICAgICAicHJvbmFtZXNwYWNlIjog MjIwMCwKKyAgICAgICAgICAgICJwcm9zZWNkZWYiOiBUcnVlLAorICAgICAgICAgICAgInByb3Ny YyI6ICJCRUdJTiBSQUlTRSBFWENFUFRJT04gJ2NvbW1hbmQgJSBpcyBkaXNhYmxlZCcsIgorICAg ICAgICAgICAgICAgICAgICAgICIgdGdfdGFnOyBFTkQ7IiwKKyAgICAgICAgICAgICJzZWNsYWJl bHMiOiBbXSwKKyAgICAgICAgICAgICJ2YXJpYWJsZXMiOiBbCisgICAgICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJlbmFibGVfc29ydCIsCisgICAgICAgICAgICAg ICAgICAgICJ2YWx1ZSI6IFRydWUKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisg ICAgICAgIH0KKworICAgICAgICBkYXRhWyJuYW1lIl0gPSAidGVzdF9wcm9jX2FkZF8lcyIgJSBz dHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAgIGlmIHNlbGYuc2VydmVyX3R5cGUgPT0gJ3Bn JzoKKyAgICAgICAgICAgIGRhdGFbJ3Byb3NyYyddID0gJ1NFTEVDVCAxOycKKyAgICAgICAgaWYg c2VsZi5zY2hlbWFfaWQ6CisgICAgICAgICAgICBkYXRhWydwcm9uYW1lc3BhY2UnXSA9IHNlbGYu c2NoZW1hX2lkCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IGRh dGFbJ3Byb25hbWVzcGFjZSddCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgK KyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwor ICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSAr ICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nLCBkYXRhPWpzb24u ZHVtcHMoZGF0YSksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAg ICAgKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAy MDApCisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2Vf dXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9p ZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3Byb2NlZHVyZV9kZWxldGUu cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9wcm9jZWR1cmVfZGVsZXRlLnB5Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1NTZiOWYKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9wcm9jZWR1cmVfZGVsZXRlLnB5CkBAIC0wLDAgKzEsNTYg QEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMK KyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxOCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQg VGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExp Y2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCB1dWlkCisKK2Zyb20gcGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0 aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGlt cG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxz IGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZ1bmNz X3V0aWxzCisKKworY2xhc3MgcHJvY2VkdXJlRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0 b3IpOgorICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZGVsZXRlIHRoZSBwcm9jZWR1cmUgdW5kZXIg c2NoZW1hIG5vZGUuICIiIgorICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQorICAgIHNj ZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgcHJvY2VkdXJl IG5vZGUuCisgICAgICAgICgnRmV0Y2ggUHJvY2VkdXJlIE5vZGUgVVJMJywKKyAgICAgICAgIGRp Y3QodXJsPScvYnJvd3Nlci9wcm9jZWR1cmUvb2JqLycpKQorICAgIF0KKworICAgIGRlZiBydW5U ZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBwcm9jZWR1 cmUgdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCisgICAgICAgIHN1cGVyKHByb2NlZHVyZURlbGV0 ZVRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCisgICAgICAgIHNlbGYgPSBmdW5jc191dGlscy5zZXRf dXAoc2VsZikKKworICAgICAgICBpZiBzZWxmLnNlcnZlcl90eXBlID09ICJwZyIgYW5kXAorICAg ICAgICAgICAgICAgIHNlbGYuc2VydmVyX3ZlcnNpb24gPCAxMTAwMDA6CisgICAgICAgICAgICBt ZXNzYWdlID0gIlByb2NlZHVyZXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgUEcgPCAxMTAwMDAuIgor ICAgICAgICAgICAgc2VsZi5za2lwVGVzdChtZXNzYWdlKQorCisgICAgICAgIGZ1bmNfbmFtZSA9 ICJ0ZXN0X3Byb2NlZHVyZV9kZWxldGVfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAg ICAgICBwcm9jX2luZm8gPSBmdW5jc191dGlscy5jcmVhdGVfcHJvY2VkdXJlKAorICAgICAgICAg ICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgZnVuY19uYW1l LAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfdHlwZSkKKworICAgICAgICBwcm9jX2lkID0gcHJv Y19pbmZvWzBdCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAorICAgICAg ICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAg ICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLmRi X2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsgc3Ry KHByb2NfaWQpLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nCisgICAgICAg ICkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkK KyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICBkYXRhYmFzZV91dGls cy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQor CisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBwYXNzCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVzdHMvdGVzdF9wcm9jZWR1cmVfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3Rz L3Rlc3RfcHJvY2VkdXJlX2dldC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li4yYjE1ODc4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfcHJv Y2VkdXJlX2dldC5weQpAQCAtMCwwICsxLDU1IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBw Z0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIw MTgsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxl YXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor CitpbXBvcnQgdXVpZAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMK K2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20g cmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwor ZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmdW5jc191dGlscworCisKK2NsYXNzIFByb2NlZHVyZUdl dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiJUaGlzIGNsYXNzIHdpbGwgZmV0 Y2ggYWRkZWQgcHJvY2VkdXJlIHVuZGVyIHNjaGVtYSBub2RlLiIiIgorICAgIHNraXBfb25fZGF0 YWJhc2UgPSBbJ2dwZGInXQorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBk ZWZhdWx0IFVSTCBmb3IgcHJvY2VkdXJlIG5vZGUuCisgICAgICAgICgnRmV0Y2ggUHJvY2VkdXJl IE5vZGUgVVJMJywKKyAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci9wcm9jZWR1cmUvb2JqLycp KQorICAgIF0KKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5j dGlvbiB3aWxsIGdldCBwcm9jZWR1cmUgdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCisgICAgICAg IHN1cGVyKFByb2NlZHVyZUdldFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCisgICAgICAgIHNlbGYg PSBmdW5jc191dGlscy5zZXRfdXAoc2VsZikKKworICAgICAgICBpZiBzZWxmLnNlcnZlcl90eXBl ID09ICJwZyIgYW5kXAorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX3ZlcnNpb24gPCAxMTAw MDA6CisgICAgICAgICAgICBtZXNzYWdlID0gIlByb2NlZHVyZXMgYXJlIG5vdCBzdXBwb3J0ZWQg YnkgUEcgPCAxMTAwMDAuIgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdChtZXNzYWdlKQorCisg ICAgICAgIGZ1bmNfbmFtZSA9ICJ0ZXN0X3Byb2NlZHVyZV9nZXRfJXMiICUgc3RyKHV1aWQudXVp ZDQoKSlbMTo4XQorICAgICAgICBwcm9jX2luZm8gPSBmdW5jc191dGlscy5jcmVhdGVfcHJvY2Vk dXJlKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFf bmFtZSwgZnVuY19uYW1lLAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfdHlwZSkKKworICAgICAg ICBwcm9jX2lkID0gcHJvY19pbmZvWzBdCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIu Z2V0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcv JyArCisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAg IHN0cihzZWxmLmRiX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQp ICsgJy8nICsgc3RyKHByb2NfaWQpLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pz b24nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAw KQorICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0 aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQp CisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3Byb2NlZHVyZV9wdXQucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVz dHMvdGVzdF9wcm9jZWR1cmVfcHV0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjczYmExYWUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9w cm9jZWR1cmVfcHV0LnB5CkBAIC0wLDAgKzEsNjIgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisj IHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0g MjAxOCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJl bGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisKK2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAg ZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91 dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmdW5jc191dGlscworCisKK2Ns YXNzIFByb2NlZHVyZVB1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhp cyBjbGFzcyB3aWxsIHVwZGF0ZSBuZXcgcHJvY2VkdXJlIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIK KyAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KKyAgICBzY2VuYXJpb3MgPSBbCisgICAg ICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHByb2NlZHVyZSBub2RlLgorICAgICAgICAo J0ZldGNoIFByb2NlZHVyZSBOb2RlIFVSTCcsCisgICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIv cHJvY2VkdXJlL29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAg ICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgcHJvY2VkdXJlIHVuZGVyIGRhdGFiYXNl IG5vZGUuICIiIgorICAgICAgICBzdXBlcihQcm9jZWR1cmVQdXRUZXN0Q2FzZSwgc2VsZikuc2V0 VXAoKQorICAgICAgICBzZWxmID0gZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYpCisKKyAgICAgICAg aWYgc2VsZi5zZXJ2ZXJfdHlwZSA9PSAicGciIGFuZFwKKyAgICAgICAgICAgICAgICBzZWxmLnNl cnZlcl92ZXJzaW9uIDwgMTEwMDAwOgorICAgICAgICAgICAgbWVzc2FnZSA9ICJQcm9jZWR1cmVz IGFyZSBub3Qgc3VwcG9ydGVkIGJ5IFBHIDwgMTEwMDAwLiIKKyAgICAgICAgICAgIHNlbGYuc2tp cFRlc3QobWVzc2FnZSkKKworICAgICAgICBmdW5jX25hbWUgPSAidGVzdF9wcm9jZWR1cmVfcHV0 XyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgcHJvY19pbmZvID0gZnVuY3Nf dXRpbHMuY3JlYXRlX3Byb2NlZHVyZSgKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRi X25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIGZ1bmNfbmFtZSwKKyAgICAgICAgICAgIHNlbGYuc2Vy dmVyX3R5cGUpCisKKyAgICAgICAgcHJvY19pZCA9IHByb2NfaW5mb1swXQorICAgICAgICBkYXRh ID0geworICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgcHJvY2VkdXJlIHVwZGF0 ZSBjb21tZW50IiwKKyAgICAgICAgICAgICJpZCI6IHByb2NfaWQKKyAgICAgICAgfQorCisgICAg ICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKKyAgICAgICAgICAgIHNlbGYudXJs ICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKworICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYu c2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArICcvJyArCisgICAgICAgICAgICBz dHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihwcm9jX2lkKSwKKyAg ICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRp cmVjdHM9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1 c19jb2RlLCAyMDApCisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAg ZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwg c2VsZi5kYl9pZCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgcGFzcwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX2FkZC5weSBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19hZGQucHkKaW5kZXggZDIzOGJmMC4u ZTk5ZjdjMyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5j X2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfYWRkLnB5 CkBAIC0xMCwxNCArMTAsMTEgQEAKIGltcG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCi1mcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVz dHMgaW1wb3J0IFwKLSAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFz IFwKICAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJf dXRpbHMgYXMgc2VydmVyX3V0aWxzCiBmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJh c2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QK IGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1 dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmdW5jc191dGlscwogCiAKIGNsYXNzIFRyaWdn ZXJGdW5jQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgpAQCAtMzIsMzAgKzI5LDcgQEAg Y2xhc3MgVHJpZ2dlckZ1bmNBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgZGVm IHJ1blRlc3Qoc2VsZik6CiAgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIHRyaWdn ZXIgZnVuY3Rpb24gdW5kZXIgc2NoZW1hIG5vZGUuICIiIgogICAgICAgICBzdXBlcihUcmlnZ2Vy RnVuY0FkZFRlc3RDYXNlLCBzZWxmKS5ydW5UZXN0KCkKLSAgICAgICAgZGJfbmFtZSA9IHBhcmVu dF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1hX2lu Zm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VydmVyX2lkID0g c2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIGRiX2lkID0gc2NoZW1hX2luZm9bImRi X2lkIl0KLSAgICAgICAgcHJvcmV0dHlwZW5hbWUgPSAiZXZlbnRfdHJpZ2dlci90cmlnZ2VyIgot ICAgICAgICBzZXJ2ZXJfY29uID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNl cnZlcl9pZCkKLSAgICAgICAgaWYgbm90IHNlcnZlcl9jb25bImluZm8iXSA9PSAiU2VydmVyIGNv bm5lY3RlZC4iOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVj dCB0byBzZXJ2ZXIgdG8gYWRkIHJlc291cmNlICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiZ3JvdXBzLiIpCi0gICAgICAgIGlmICJ0eXBlIiBpbiBzZXJ2ZXJfY29uWyJkYXRhIl06Ci0g ICAgICAgICAgICBpZiBzZXJ2ZXJfY29uWyJkYXRhIl1bInZlcnNpb24iXSA8IDkwMzAwOgotICAg ICAgICAgICAgICAgIHByb3JldHR5cGVuYW1lID0gInRyaWdnZXIiCi0KLSAgICAgICAgZGJfY29u ID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JP VVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vy dmVyX2lkLCBkYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQi XToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0 YWJhc2UgdG8gYWRkIGEgZnVuY3Rpb24uIikKLSAgICAgICAgc2NoZW1hX2lkID0gc2NoZW1hX2lu Zm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVt YV9uYW1lIl0KLSAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9z Y2hlbWFzKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQotICAgICAgICBpZiBub3Qgc2No ZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmlu ZCB0aGUgc2NoZW1hIHRvIGFkZCBhIGZ1bmN0aW9uLiIpCisgICAgICAgIHNlbGYgPSBmdW5jc191 dGlscy5zZXRfdXAoc2VsZikKICAgICAgICAgZGJfdXNlciA9IHNlbGYuc2VydmVyWyJ1c2VybmFt ZSJdCiAgICAgICAgIGRhdGEgPSB7CiAgICAgICAgICAgICAiYWNsIjogWwpAQCAtNzksNyArNTMs NyBAQCBjbGFzcyBUcmlnZ2VyRnVuY0FkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAg ICAgICAgICAgICJvcHRpb25zIjogW10sCiAgICAgICAgICAgICAicHJvbGVha3Byb29mIjogVHJ1 ZSwKICAgICAgICAgICAgICJwcm9uYW1lc3BhY2UiOiAyMjAwLAotICAgICAgICAgICAgInByb3Jl dHR5cGVuYW1lIjogcHJvcmV0dHlwZW5hbWUsCisgICAgICAgICAgICAicHJvcmV0dHlwZW5hbWUi OiBzZWxmLnByb3JldHR5cGVuYW1lLAogICAgICAgICAgICAgInByb3NlY2RlZiI6IFRydWUsCiAg ICAgICAgICAgICAicHJvc3JjIjogIkJFR0lOIFJBSVNFIEVYQ0VQVElPTiAnY29tbWFuZCAlIGlz IGRpc2FibGVkJywiCiAgICAgICAgICAgICAgICAgICAgICAgIiB0Z190YWc7IEVORDsiLApAQCAt OTgsMTYgKzcyLDE3IEBAIGNsYXNzIFRyaWdnZXJGdW5jQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgogICAgICAgICBmb3IgZnVuY190eXBlIGluIHRyaWdnZXJfZnVuY190eXBlczoKICAg ICAgICAgICAgIGRhdGFbJ3Byb3JldHR5cGVuYW1lJ10gPSBmdW5jX3R5cGUKICAgICAgICAgICAg IGRhdGFbIm5hbWUiXSA9ICJ0ZXN0X2V2ZW50X2FkZF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsx OjhdCi0gICAgICAgICAgICBpZiBzY2hlbWFfaWQ6Ci0gICAgICAgICAgICAgICAgZGF0YVsncHJv bmFtZXNwYWNlJ10gPSBzY2hlbWFfaWQKKyAgICAgICAgICAgIGlmIHNlbGYuc2NoZW1hX2lkOgor ICAgICAgICAgICAgICAgIGRhdGFbJ3Byb25hbWVzcGFjZSddID0gc2VsZi5zY2hlbWFfaWQKICAg ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2NoZW1hX2lkID0gZGF0YVsncHJvbmFt ZXNwYWNlJ10KKyAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IGRhdGFbJ3Byb25hbWVz cGFjZSddCiAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCiAgICAgICAg ICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCi0gICAg ICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQpICsgJy8nICsgc3Ry KHNjaGVtYV9pZCkgKworICAgICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycg KyBzdHIoc2VsZi5kYl9pZCkgKworICAgICAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNjaGVt YV9pZCkgKwogICAgICAgICAgICAgICAgICcvJywgZGF0YT1qc29uLmR1bXBzKGRhdGEpLCBjb250 ZW50X3R5cGU9J2h0bWwvanNvbicKICAgICAgICAgICAgICkKIAogICAgICAgICAgICAgc2VsZi5h c3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKICAgICAgICAgIyBEaXNjb25u ZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFi YXNlKHNlbGYsIHNlcnZlcl9pZCwgZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nv bm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfZGVsZXRlLnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX2RlbGV0ZS5weQppbmRleCAzZDFmZTlm Li5mNzIyNDcwIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1 bmNfZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19k ZWxldGUucHkKQEAgLTksMTMgKzksOSBAQAogCiBpbXBvcnQgdXVpZAogCi1mcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1w b3J0IFwKLSAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAg ICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMg YXMgc2VydmVyX3V0aWxzCiBmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20g cmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwog ZnJvbSAuIGltcG9ydCB1dGlscyBhcyB0cmlnZ2VyX2Z1bmNzX3V0aWxzCiAKQEAgLTI5LDQ5ICsy NSwyNyBAQCBjbGFzcyBUcmlnZ2VyRnVuY0RlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKICAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci90cmlnZ2VyX2Z1bmN0aW9uL29iai8nKSkK ICAgICBdCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHN1cGVyKFRyaWdnZXJGdW5j RGVsZXRlVGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFy ZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzZWxmLnNj aGVtYV9uYW1lID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdWyJzY2hlbWFfbmFtZSJd Ci0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFd WyJzY2hlbWFfaWQiXQotCiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAgICAgICAgICIiIiBUaGlz IGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHRyaWdnZXIgZnVuY3Rpb24gdW5kZXIgZGF0YWJhc2Ugbm9k ZS4gIiIiCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1b LTFdCi0gICAgICAgIHNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAg ICBkYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIHN1cGVyKFRyaWdnZXJGdW5j RGVsZXRlVGVzdENhc2UsIHNlbGYpLnNldFVwKCkKKyAgICAgICAgc2VsZiA9IHRyaWdnZXJfZnVu Y3NfdXRpbHMuc2V0X3VwKHNlbGYpCisKICAgICAgICAgZnVuY19uYW1lID0gInRlc3RfZXZlbnRf ZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VydmVyX2NvbiA9 IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxmLCBzZXJ2ZXJfaWQpCi0gICAgICAgIGlm IG5vdCBzZXJ2ZXJfY29uWyJpbmZvIl0gPT0gIlNlcnZlciBjb25uZWN0ZWQuIjoKLSAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gc2VydmVyIHRvIGFkZCBy ZXNvdXJjZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImdyb3Vwcy4iKQotICAgICAg ICBzZXJ2ZXJfdmVyc2lvbiA9IDAKLSAgICAgICAgaWYgInR5cGUiIGluIHNlcnZlcl9jb25bImRh dGEiXToKLSAgICAgICAgICAgIGlmIHNlcnZlcl9jb25bImRhdGEiXVsidmVyc2lvbiJdIDwgOTAz MDA6Ci0gICAgICAgICAgICAgICAgc2VydmVyX3ZlcnNpb24gPSBzZXJ2ZXJfY29uWyJkYXRhIl1b InZlcnNpb24iXQotICAgICAgICBzZWxmLmZ1bmN0aW9uX2luZm8gPSB0cmlnZ2VyX2Z1bmNzX3V0 aWxzLmNyZWF0ZV90cmlnZ2VyX2Z1bmN0aW9uKAorICAgICAgICBmdW5jdGlvbl9pbmZvID0gdHJp Z2dlcl9mdW5jc191dGlscy5jcmVhdGVfdHJpZ2dlcl9mdW5jdGlvbigKICAgICAgICAgICAgIHNl bGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIGZ1bmNfbmFtZSwKLSAg ICAgICAgICAgIHNlcnZlcl92ZXJzaW9uKQorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfdmVyc2lv bikKIAotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNl bGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29u WydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3Vs ZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgY29sbGF0aW9uLiIpCi0gICAgICAgIHNj aGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCi0gICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9u c2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hl bWEgdG8gYWRkIHRoZSBjb2xsYXRpb24uIikKLSAgICAgICAgdHJpZ2dlcl9mdW5jX2lkID0gc2Vs Zi5mdW5jdGlvbl9pbmZvWzBdCisgICAgICAgIHRyaWdnZXJfZnVuY19pZCA9IGZ1bmN0aW9uX2lu Zm9bMF0KICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoCi0gICAgICAgICAg ICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsgc3RyKHNlcnZlcl9p ZCkgKyAnLycgKwotICAgICAgICAgICAgc3RyKGRiX2lkKSArICcvJyArCisgICAgICAgICAgICBz ZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0 cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsg Jy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKyBzdHIodHJpZ2dl cl9mdW5jX2lkKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJwogICAgICAg ICApCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDAp CiAgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRp bHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZXJ2ZXJfaWQsIGRiX2lkKQorICAgICAgICBk YXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBz ZWxmLmRiX2lkKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICBwYXNzCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfZ2V0LnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX2dldC5weQppbmRleCA3ZWIwZDJhLi4x NWFlMWJhIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNf Z2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19nZXQucHkK QEAgLTksMTMgKzksOSBAQAogCiBpbXBvcnQgdXVpZAogCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKLSAg ICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAgICBkYXRhYmFz ZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVy X3V0aWxzCiBmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Ci1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lv bi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGlt cG9ydCB1dGlscyBhcyB0cmlnZ2VyX2Z1bmNzX3V0aWxzCiAKQEAgLTI5LDQ5ICsyNSwyNiBAQCBj bGFzcyBUcmlnZ2VyRnVuY0dldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAg IGRpY3QodXJsPScvYnJvd3Nlci90cmlnZ2VyX2Z1bmN0aW9uL29iai8nKSkKICAgICBdCiAKLSAg ICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHN1cGVyKFRyaWdnZXJGdW5jR2V0VGVzdENhc2Us IHNlbGYpLnNldFVwKCkKLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsi ZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gcGFy ZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNlbGYu c2NoZW1hX2lkID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdWyJzY2hlbWFfaWQiXQot CiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwg ZGVsZXRlIHRyaWdnZXIgZnVuY3Rpb24gdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCi0gICAgICAg IHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNl cnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBkYl9pZCA9IHNjaGVt YV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGZ1bmNfbmFtZSA9ICJ0ZXN0X2V2ZW50X2dldF8lcyIg JSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0gICAgICAgIGRiX3VzZXIgPSBzZWxmLnNlcnZlclsi dXNlcm5hbWUiXQotICAgICAgICBzZXJ2ZXJfY29uID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2Vy dmVyKHNlbGYsIHNlcnZlcl9pZCkKLSAgICAgICAgaWYgbm90IHNlcnZlcl9jb25bImluZm8iXSA9 PSAiU2VydmVyIGNvbm5lY3RlZC4iOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3Vs ZCBub3QgY29ubmVjdCB0byBzZXJ2ZXIgdG8gYWRkIHJlc291cmNlICIKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiZ3JvdXBzLiIpCi0gICAgICAgIHNlcnZlcl92ZXJzaW9uID0gMAotICAg ICAgICBpZiAidHlwZSIgaW4gc2VydmVyX2NvblsiZGF0YSJdOgotICAgICAgICAgICAgaWYgc2Vy dmVyX2NvblsiZGF0YSJdWyJ2ZXJzaW9uIl0gPCA5MDMwMDoKLSAgICAgICAgICAgICAgICBzZXJ2 ZXJfdmVyc2lvbiA9IHNlcnZlcl9jb25bImRhdGEiXVsidmVyc2lvbiJdCi0gICAgICAgIHNlbGYu ZnVuY3Rpb25faW5mbyA9IHRyaWdnZXJfZnVuY3NfdXRpbHMuY3JlYXRlX3RyaWdnZXJfZnVuY3Rp b24oCisgICAgICAgIHN1cGVyKFRyaWdnZXJGdW5jR2V0VGVzdENhc2UsIHNlbGYpLnNldFVwKCkK KyAgICAgICAgc2VsZiA9IHRyaWdnZXJfZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYpCisKKyAgICAg ICAgZnVuY19uYW1lID0gInRlc3RfZXZlbnRfZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0KKyAgICAgICAgZnVuY3Rpb25faW5mbyA9IHRyaWdnZXJfZnVuY3NfdXRpbHMuY3JlYXRl X3RyaWdnZXJfZnVuY3Rpb24oCiAgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1l LCBzZWxmLnNjaGVtYV9uYW1lLCBmdW5jX25hbWUsCi0gICAgICAgICAgICBzZXJ2ZXJfdmVyc2lv bikKKyAgICAgICAgICAgIHNlbGYuc2VydmVyX3ZlcnNpb24pCiAKLSAgICAgICAgZGJfY29uID0g ZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVy X2lkLCBkYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToK LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJh c2UgdG8gYWRkIGNvbGxhdGlvbi4iKQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFf dXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9u YW1lKQotICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCB0aGUgY29sbGF0aW9u LiIpCi0gICAgICAgIHRyaWdnZXJfZnVuY19pZCA9IHNlbGYuZnVuY3Rpb25faW5mb1swXQorICAg ICAgICB0cmlnZ2VyX2Z1bmNfaWQgPSBmdW5jdGlvbl9pbmZvWzBdCiAgICAgICAgIHJlc3BvbnNl ID0gc2VsZi50ZXN0ZXIuZ2V0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VS VkVSX0dST1VQKSArICcvJyArIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsKLSAgICAgICAgICAgIHN0 cihkYl9pZCkgKyAnLycgKworICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVS X0dST1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsK KyAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2Vs Zi5zY2hlbWFfaWQpICsgJy8nICsgc3RyKHRyaWdnZXJfZnVuY19pZCksCiAgICAgICAgICAgICBj b250ZW50X3R5cGU9J2h0bWwvanNvbicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3Bv bnNlLnN0YXR1c19jb2RlLCAyMDApCiAgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UK LSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZXJ2ZXJf aWQsIGRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNl bGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYp OgogICAgICAgICBwYXNzCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF90cmln Z2VyX2Z1bmNfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX3B1 dC5weQppbmRleCA2M2Q0YzA4Li43OGRkYzhmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVz dHMvdGVzdF90cmlnZ2VyX2Z1bmNfcHV0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0 X3RyaWdnZXJfZnVuY19wdXQucHkKQEAgLTEwLDEzICsxMCw5IEBACiBpbXBvcnQganNvbgogaW1w b3J0IHV1aWQKIAotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCi0gICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxz CiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRl c3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51 dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwogZnJvbSBwZ2FkbWluLnV0 aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9y dCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1w b3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgdHJpZ2dlcl9m dW5jc191dGlscwogCkBAIC0zMCw2MyArMjYsMzMgQEAgY2xhc3MgVHJpZ2dlckZ1bmNQdXRUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvdHJp Z2dlcl9mdW5jdGlvbi9vYmovJykpCiAgICAgXQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAg ICAgICBzdXBlcihUcmlnZ2VyRnVuY1B1dFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0gICAgICAg IHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1l Il0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJd Wy0xXVsic2NoZW1hX25hbWUiXQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHBhcmVudF9ub2Rl X2RpY3RbInNjaGVtYSJdWy0xXVsic2NoZW1hX2lkIl0KLQogICAgIGRlZiBydW5UZXN0KHNlbGYp OgogICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0cmlnZ2VyIGZ1bmN0aW9u IHVuZGVyIGRhdGFiYXNlIG5vZGUuICIiIgotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9u b2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAgICBzZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1si c2VydmVyX2lkIl0KLSAgICAgICAgZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAg ICBmdW5jX25hbWUgPSAidGVzdF9ldmVudF9wdXRfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4 XQotICAgICAgICBzZXJ2ZXJfY29uID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYs IHNlcnZlcl9pZCkKLSAgICAgICAgaWYgbm90IHNlcnZlcl9jb25bImluZm8iXSA9PSAiU2VydmVy IGNvbm5lY3RlZC4iOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29u bmVjdCB0byBzZXJ2ZXIgdG8gYWRkIHJlc291cmNlICIKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiZ3JvdXBzLiIpCi0gICAgICAgIHNlcnZlcl92ZXJzaW9uID0gMAotICAgICAgICBpZiAi dHlwZSIgaW4gc2VydmVyX2NvblsiZGF0YSJdOgotICAgICAgICAgICAgaWYgc2VydmVyX2Nvblsi ZGF0YSJdWyJ2ZXJzaW9uIl0gPCA5MDMwMDoKLSAgICAgICAgICAgICAgICBzZXJ2ZXJfdmVyc2lv biA9IHNlcnZlcl9jb25bImRhdGEiXVsidmVyc2lvbiJdCi0gICAgICAgIHNlbGYuZnVuY3Rpb25f aW5mbyA9IHRyaWdnZXJfZnVuY3NfdXRpbHMuY3JlYXRlX3RyaWdnZXJfZnVuY3Rpb24oCisgICAg ICAgIHN1cGVyKFRyaWdnZXJGdW5jUHV0VGVzdENhc2UsIHNlbGYpLnNldFVwKCkKKyAgICAgICAg c2VsZiA9IHRyaWdnZXJfZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYpCisKKyAgICAgICAgZnVuY19u YW1lID0gInRlc3RfZXZlbnRfZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAg ICAgICAgZnVuY3Rpb25faW5mbyA9IHRyaWdnZXJfZnVuY3NfdXRpbHMuY3JlYXRlX3RyaWdnZXJf ZnVuY3Rpb24oCiAgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNj aGVtYV9uYW1lLCBmdW5jX25hbWUsCi0gICAgICAgICAgICBzZXJ2ZXJfdmVyc2lvbikKLSAgICAg ICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5T RVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyX2lkLCBkYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJj b25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5l Y3QgdG8gZGF0YWJhc2UgdG8gYWRkIGNvbGxhdGlvbi4iKQotICAgICAgICBzY2hlbWFfcmVzcG9u c2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lKQotICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCB0 aGUgY29sbGF0aW9uLiIpCi0gICAgICAgIGZ1bmNfbmFtZSA9IHNlbGYuZnVuY3Rpb25faW5mb1sx XQotICAgICAgICBmdW5jX3Jlc3BvbnNlID0gdHJpZ2dlcl9mdW5jc191dGlscy52ZXJpZnlfdHJp Z2dlcl9mdW5jdGlvbigKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLAotICAgICAgICAgICAgc2Vs Zi5kYl9uYW1lLAotICAgICAgICAgICAgZnVuY19uYW1lKQotICAgICAgICBpZiBub3QgZnVuY19y ZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhl IHRyaWdnZXIgZnVuY3Rpb24gdG8gdXBkYXRlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICIgaXQncyBkZXRhaWxzLiIpCisgICAgICAgICAgICBzZWxmLnNlcnZlcl92ZXJzaW9uKQorCisg ICAgICAgIHRyaWdnZXJfZnVuY19pZCA9IGZ1bmN0aW9uX2luZm9bMF0KIAotICAgICAgICB0cmln Z2VyX2Z1bmNfaWQgPSBzZWxmLmZ1bmN0aW9uX2luZm9bMF0KICAgICAgICAgZGF0YSA9IHsKLSAg ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGlzIHRyaWdnZXIgZnVuY3Rpb24gdXBkYXRl IGNvbW1lbnQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgYSB0cmlnZ2Vy IGZ1bmN0aW9uIHVwZGF0ZSBjb21tZW50IiwKICAgICAgICAgICAgICJpZCI6IHRyaWdnZXJfZnVu Y19pZAogICAgICAgICB9CiAKICAgICAgICAgcHV0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0 KAogICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArCi0gICAg ICAgICAgICAnLycgKyBzdHIoc2VydmVyX2lkKSArICcvJyArIHN0cihkYl9pZCkgKyAnLycgKwor ICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRi X2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsKICAg ICAgICAgICAgIHN0cih0cmlnZ2VyX2Z1bmNfaWQpLAogICAgICAgICAgICAgZGF0YT1qc29uLmR1 bXBzKGRhdGEpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQogICAgICAgICBz ZWxmLmFzc2VydEVxdWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKICAgICAgICAg IyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25u ZWN0X2RhdGFiYXNlKHNlbGYsIHNlcnZlcl9pZCwgZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0 aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQp CiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZXN0cy91dGlscy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy91dGlscy5weQpp bmRleCA0ZmFjZjYwLi4zNjA2YjQ1IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdXRp bHMucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3V0aWxzLnB5CkBAIC0xMyw2ICsxMywxMSBA QCBpbXBvcnQgc3lzCiBpbXBvcnQgdHJhY2ViYWNrCiAKIGZyb20gcmVncmVzc2lvbi5weXRob25f dGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSBwZ2FkbWluLnV0aWxz IGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwK KyAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRh YmFzZV91dGlscwogCiAKIGRlZiBjcmVhdGVfdHJpZ2dlcl9mdW5jdGlvbihzZXJ2ZXIsIGRiX25h bWUsIHNjaGVtYV9uYW1lLCBmdW5jX25hbWUsCkBAIC05MiwzICs5NywxMTggQEAgZGVmIHZlcmlm eV90cmlnZ2VyX2Z1bmN0aW9uKHNlcnZlciwgZGJfbmFtZSwgZnVuY19uYW1lKToKICAgICBmdW5j dGlvbnMgPSBwZ19jdXJzb3IuZmV0Y2hvbmUoKQogICAgIGNvbm5lY3Rpb24uY2xvc2UoKQogICAg IHJldHVybiBmdW5jdGlvbnMKKworCitkZWYgY3JlYXRlX3Byb2NlZHVyZShzZXJ2ZXIsIGRiX25h bWUsIHNjaGVtYV9uYW1lLCBmdW5jX25hbWUsIHNfdHlwZSk6CisgICAgIiIiVGhpcyBmdW5jdGlv biBhZGQgdGhlIHByb2NlZHVyZSB0byBzY2hlbWEiIiIKKyAgICB0cnk6CisgICAgICAgIGNvbm5l Y3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihkYl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWyd1c2VybmFtZSddLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydkYl9wYXNzd29y ZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVy Wydob3N0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlcnZlclsnc3NsbW9kZSddKQorICAgICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9uLmN1 cnNvcigpCisgICAgICAgIGlmIHNfdHlwZSA9PSAncGcnOgorICAgICAgICAgICAgcXVlcnkgPSAi Q1JFQVRFIFBST0NFRFVSRSAiICsgc2NoZW1hX25hbWUgKyAiLiIgKyBmdW5jX25hbWUgKyBcCisg ICAgICAgICAgICAgICAgICAgICIoKSIgXAorICAgICAgICAgICAgICAgICAgICAiIExBTkdVQUdF ICdzcWwnIiBcCisgICAgICAgICAgICAgICAgICAgICIgU0VDVVJJVFkgREVGSU5FUiBBUyAkJCIg XAorICAgICAgICAgICAgICAgICAgICAiIFNFTEVDVCAxOyAkJDsiCisgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICBxdWVyeSA9ICJDUkVBVEUgUFJPQ0VEVVJFICIgKyBzY2hlbWFfbmFtZSArICIu IiArIGZ1bmNfbmFtZSArIFwKKyAgICAgICAgICAgICAgICAgICAgIigpIiBcCisgICAgICAgICAg ICAgICAgICAgICIgU0VDVVJJVFkgREVGSU5FUiBBUyAkQk9EWSQgQkVHSU4iIFwKKyAgICAgICAg ICAgICAgICAgICAgIiBOVUxMOyBFTkQ7ICRCT0RZJCIKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1 dGUocXVlcnkpCisgICAgICAgIGNvbm5lY3Rpb24uY29tbWl0KCkKKyAgICAgICAgIyBHZXQgJ29p ZCcgZnJvbSBuZXdseSBjcmVhdGVkIGZ1bmN0aW9uCisgICAgICAgIHBnX2N1cnNvci5leGVjdXRl KCJTRUxFQ1QgcHJvLm9pZCwgcHJvLnByb25hbWUgRlJPTSIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIiBwZ19wcm9jIHBybyBXSEVSRSBwcm8ucHJvbmFtZT0nJXMnIiAlCisgICAgICAgICAg ICAgICAgICAgICAgICAgIGZ1bmNfbmFtZSkKKyAgICAgICAgZnVuY3Rpb25zID0gcGdfY3Vyc29y LmZldGNob25lKCkKKyAgICAgICAgY29ubmVjdGlvbi5jbG9zZSgpCisgICAgICAgIHJldHVybiBm dW5jdGlvbnMKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICB0cmFjZWJhY2sucHJpbnRf ZXhjKGZpbGU9c3lzLnN0ZGVycikKKworCitkZWYgY3JlYXRlX2Z1bmN0aW9uKHNlcnZlciwgZGJf bmFtZSwgc2NoZW1hX25hbWUsIGZ1bmNfbmFtZSk6CisgICAgIiIiVGhpcyBmdW5jdGlvbiBhZGQg dGhlIHByb2NlZHVyZSB0byBzY2hlbWEiIiIKKyAgICB0cnk6CisgICAgICAgIGNvbm5lY3Rpb24g PSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydkYl9wYXNzd29yZCddLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydob3N0 J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJb J3BvcnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl cnZlclsnc3NsbW9kZSddKQorICAgICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigp CisgICAgICAgIHF1ZXJ5ID0gIkNSRUFURSBGVU5DVElPTiAiICsgc2NoZW1hX25hbWUgKyAiLiIg KyBmdW5jX25hbWUgKyBcCisgICAgICAgICAgICAgICAgIigpIiBcCisgICAgICAgICAgICAgICAg IiBSRVRVUk5TIGludGVnZXIgTEFOR1VBR0UgJ3NxbCcgU1RBQkxFIExFQUtQUk9PRiIgXAorICAg ICAgICAgICAgICAgICIgU0VDVVJJVFkgREVGSU5FUiBBUyAkJCIgXAorICAgICAgICAgICAgICAg ICIgU0VMRUNUIDE7ICQkOyIKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUocXVlcnkpCisgICAg ICAgIGNvbm5lY3Rpb24uY29tbWl0KCkKKyAgICAgICAgIyBHZXQgJ29pZCcgZnJvbSBuZXdseSBj cmVhdGVkIGZ1bmN0aW9uCisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKCJTRUxFQ1QgcHJvLm9p ZCwgcHJvLnByb25hbWUgRlJPTSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBwZ19wcm9j IHBybyBXSEVSRSBwcm8ucHJvbmFtZT0nJXMnIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAg IGZ1bmNfbmFtZSkKKyAgICAgICAgZnVuY3Rpb25zID0gcGdfY3Vyc29yLmZldGNob25lKCkKKyAg ICAgICAgY29ubmVjdGlvbi5jbG9zZSgpCisgICAgICAgIHJldHVybiBmdW5jdGlvbnMKKyAgICBl eGNlcHQgRXhjZXB0aW9uOgorICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9c3lzLnN0 ZGVycikKKworCitkZWYgdmVyaWZ5X3Byb2NlZHVyZShzZXJ2ZXIsIGRiX25hbWUsIHByb2NfbmFt ZSk6CisgICAgIiIiVGhpcyBmdW5jdGlvbiB2ZXJpZmllcyB0aGUgcHJvY2VkdXJlIGluIGRiIiIi CisgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKGRiX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydkYl9wYXNz d29yZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJb J2hvc3QnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVy Wydwb3J0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZl clsnc3NsbW9kZSddKQorICAgIHBnX2N1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICBw Z19jdXJzb3IuZXhlY3V0ZSgiU0VMRUNUIHByby5vaWQsIHByby5wcm9uYW1lIEZST00iCisgICAg ICAgICAgICAgICAgICAgICAgIiBwZ19wcm9jIHBybyBXSEVSRSBwcm8ucHJvbmFtZT0nJXMnIiAl CisgICAgICAgICAgICAgICAgICAgICAgcHJvY19uYW1lKQorICAgIHByb2NzID0gcGdfY3Vyc29y LmZldGNob25lKCkKKyAgICBjb25uZWN0aW9uLmNsb3NlKCkKKyAgICByZXR1cm4gcHJvY3MKKwor CitkZWYgc2V0X3VwKG9iaik6CisgICAgIiIiQ29tbW9uIHNldCB1cCBmdW5jdGlvbiIiIgorICAg IGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorCisgICAgb2JqLmRiX25h bWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCisgICAgc2No ZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KKyAgICBvYmouc2VydmVy X2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCisgICAgb2JqLmRiX2lkID0gc2NoZW1hX2lu Zm9bImRiX2lkIl0KKyAgICBvYmoucHJvcmV0dHlwZW5hbWUgPSAiZXZlbnRfdHJpZ2dlci90cmln Z2VyIgorICAgIHNlcnZlcl9jb24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIob2JqLCBv Ymouc2VydmVyX2lkKQorCisgICAgaWYgbm90IHNlcnZlcl9jb25bImluZm8iXSA9PSAiU2VydmVy IGNvbm5lY3RlZC4iOgorICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0 IHRvIHNlcnZlci4iKQorICAgIGlmICJ2ZXJzaW9uIiBpbiBzZXJ2ZXJfY29uWyJkYXRhIl06Cisg ICAgICAgIG9iai5zZXJ2ZXJfdmVyc2lvbiA9IHNlcnZlcl9jb25bImRhdGEiXVsidmVyc2lvbiJd CisgICAgICAgIGlmIHNlcnZlcl9jb25bImRhdGEiXVsidmVyc2lvbiJdIDwgOTAzMDA6CisgICAg ICAgICAgICBvYmoucHJvcmV0dHlwZW5hbWUgPSAidHJpZ2dlciIKKyAgICBpZiAidHlwZSIgaW4g c2VydmVyX2NvblsiZGF0YSJdOgorICAgICAgICBvYmouc2VydmVyX3R5cGUgPSBzZXJ2ZXJfY29u WyJkYXRhIl1bInR5cGUiXQorCisgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9k YXRhYmFzZShvYmosIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG9iai5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvYmouZGJfaWQpCisgICAgaWYgbm90IGRiX2Nvblsn ZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg Y29ubmVjdCB0byBkYXRhYmFzZS4iKQorICAgIG9iai5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1si c2NoZW1hX2lkIl0KKyAgICBvYmouc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25h bWUiXQorICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhv Ymouc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvYmouZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2JqLnNjaGVtYV9uYW1lKQorICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6 CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQor CisgICAgcmV0dXJuIG9iagpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci91dGlscy5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdXRpbHMucHkKaW5kZXggMDBhNzJkZC4uN2Y2ZjE5YyAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci91dGlscy5weQorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3V0aWxzLnB5CkBAIC01MSw3ICs1MSw5IEBAIGNsYXNzIFBHQ2hpbGRNb2R1bGUo b2JqZWN0KToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgogICAg ICAgICBzZWxmLm1pbl92ZXIgPSAwCi0gICAgICAgIHNlbGYubWF4X3ZlciA9IDEwMDAwMDAwMDAK KyAgICAgICAgc2VsZi5tYXhfdmVyID0gMTEwMDAwMDAwMAorICAgICAgICBzZWxmLm1pbl9wcGFz dmVyID0gMAorICAgICAgICBzZWxmLm1heF9wcGFzdmVyID0gMTEwMDAwMDAwMAogICAgICAgICBz ZWxmLnNlcnZlcl90eXBlID0gTm9uZQogICAgICAgICBzZWxmLm1pbl9ncGRidmVyID0gODAzMjMK ICAgICAgICAgc2VsZi5tYXhfZ3BkYnZlciA9IDEwMDAwMDAwMDAKQEAgLTcyLDYgKzc0LDkgQEAg Y2xhc3MgUEdDaGlsZE1vZHVsZShvYmplY3QpOgogICAgICAgICBpZiBzZWxmLnNlcnZlcl90eXBl IGlzIE5vbmUgb3IgbWFuYWdlci5zZXJ2ZXJfdHlwZSBpbiBzZWxmLnNlcnZlcl90eXBlOgogICAg ICAgICAgICAgbWluX3NlcnZlcl92ZXJzaW9uID0gc2VsZi5taW5fdmVyCiAgICAgICAgICAgICBt YXhfc2VydmVyX3ZlcnNpb24gPSBzZWxmLm1heF92ZXIKKyAgICAgICAgICAgIGlmIG1hbmFnZXIu c2VydmVyX3R5cGUgPT0gJ3BwYXMnOgorICAgICAgICAgICAgICAgIG1pbl9zZXJ2ZXJfdmVyc2lv biA9IHNlbGYubWluX3BwYXN2ZXIKKyAgICAgICAgICAgICAgICBtYXhfc2VydmVyX3ZlcnNpb24g PSBzZWxmLm1heF9wcGFzdmVyCiAgICAgICAgICAgICBpZiBtYW5hZ2VyLnNlcnZlcl90eXBlID09 ICdncGRiJzoKICAgICAgICAgICAgICAgICBtaW5fc2VydmVyX3ZlcnNpb24gPSBzZWxmLm1pbl9n cGRidmVyCiAgICAgICAgICAgICAgICAgbWF4X3NlcnZlcl92ZXJzaW9uID0gc2VsZi5tYXhfZ3Bk YnZlcgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdXRpbHMvdmVyc2lvbmVkX3RlbXBsYXRlX2xv YWRlci5weSBiL3dlYi9wZ2FkbWluL3V0aWxzL3ZlcnNpb25lZF90ZW1wbGF0ZV9sb2FkZXIucHkK aW5kZXggMzQ4MTk3OC4uZGFkYWViYSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdXRpbHMvdmVy c2lvbmVkX3RlbXBsYXRlX2xvYWRlci5weQorKysgYi93ZWIvcGdhZG1pbi91dGlscy92ZXJzaW9u ZWRfdGVtcGxhdGVfbG9hZGVyLnB5CkBAIC03NSw3ICs3NSw4IEBAIGRlZiBnZXRfdmVyc2lvbl9t YXBwaW5nKHRlbXBsYXRlKToKICAgICAgICAgICAgIHsnbmFtZSc6ICJkZWZhdWx0IiwgJ251bWJl cic6IDB9CiAgICAgICAgICkKIAotICAgIHJldHVybiAoeyduYW1lJzogIjEwX3BsdXMiLCAnbnVt YmVyJzogMTAwMDAwfSwKKyAgICByZXR1cm4gKHsnbmFtZSc6ICIxMV9wbHVzIiwgJ251bWJlcic6 IDExMDAwMH0sCisgICAgICAgICAgICB7J25hbWUnOiAiMTBfcGx1cyIsICdudW1iZXInOiAxMDAw MDB9LAogICAgICAgICAgICAgeyduYW1lJzogIjkuNl9wbHVzIiwgJ251bWJlcic6IDkwNjAwfSwK ICAgICAgICAgICAgIHsnbmFtZSc6ICI5LjVfcGx1cyIsICdudW1iZXInOiA5MDUwMH0sCiAgICAg ICAgICAgICB7J25hbWUnOiAiOS40X3BsdXMiLCAnbnVtYmVyJzogOTA0MDB9LAo= --000000000000723fc3056df37854--