Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1maA6P-00056E-Dh for pgadmin-hackers@arkaria.postgresql.org; Tue, 12 Oct 2021 05:13:25 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1maA6O-0006Kr-7M for pgadmin-hackers@arkaria.postgresql.org; Tue, 12 Oct 2021 05:13:24 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1maA6N-0006Kj-DG for pgadmin-hackers@lists.postgresql.org; Tue, 12 Oct 2021 05:13:24 +0000 Received: from mail-lf1-x12f.google.com ([2a00:1450:4864:20::12f]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1maA6K-0001S4-UL for pgadmin-hackers@postgresql.org; Tue, 12 Oct 2021 05:13:22 +0000 Received: by mail-lf1-x12f.google.com with SMTP id x27so82412570lfa.9 for ; Mon, 11 Oct 2021 22:13:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; h=mime-version:from:date:message-id:subject:to; bh=fjsF02/c7KIv+p04JC9uqc3fbK8NjJNX59Wdxi8LsiI=; b=JZsbOFSP1MQ4JwbKmWQicxDQhHcGRCWrtzeBkuxbk3GuNxJDMg5MSPhQfB6j8479MD KU2K6t1aeaN2DEcR3jtcVSwpZjdDKtQb5ox1r0/af5CBWXM6SpEPnmh4FF8NnBKAV3DG SXDlN0aezYlTHi/Gh9mLF3BYAwIOiVcALwIj/nSgw4+UvycvFFcnf10Dq83gmP22XVy/ QlZr+FLh7ZaV1ksF2Noyedj/99XfvBlF1lrBopKPFzKBNAlBPNecpu+iTWmRZ+QcNe9e GPhdeJR9BNr6rGSd8XBag6EAmpzx4xOqm0vaJLXC+C0jYNreAcNljywESekirqmEDGSy RjJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=fjsF02/c7KIv+p04JC9uqc3fbK8NjJNX59Wdxi8LsiI=; b=P3cEM/3NhKn1vwVDcPZYwxhIghPLQfPAf6esCI7/KUm8kCbcPIrySuwze/B5q4K9W2 WfwTUBuczWUYnnSLBdrE65RkQvoeFVK4NspwjAg6vBnnsl5XJcj2D0r3by5BoFZz0rvX Zuj2G2RJMfTF52dYhfoeP5OZQITvLpsTxFKXqAhZFOBqcFrUHX4pLs7VCrYpuOeQgZ0d qrYB+NmJZh8H9DzufKOTzkowtLTI7HvleIon1Ca8g8gqCdNd9pWuhWyWR4BB9L1u//FY EjULaMTU082qTSVyxvqFFUbeLbP+6PG25zBlr+nzxB7n+CqQBDQUYGZXUmN19ynX9HLO cnQg== X-Gm-Message-State: AOAM532f9ELqJK3ZL/PlJgXB4BKaqvtIbsiGy0jFtyhm/uXSMSfIw88t iUDF/p5/dli6vu3DfyR9mZpJVISHmwsr7H81eXVcR0UPinK72uvXARLd62j3Jiv70wwds81rzWB WKBw7/3e3vKU0Sx7CcV2ntZ7lhRBpRe6CIWrkQAG1RgDB3iiCgNni8l/zkvKRWou1dRpAgGJzq9 C4WRfSlNJ6b3tnUX3249iMIBVtWzAql3U6pGXEgX+qa3PKkFJ49YaBmIT9hByy0TRV5A== X-Google-Smtp-Source: ABdhPJzlaEI992CQa2849zLrlMaocau6qJgsm8YHrqbshwnGih+OV6YrhbxEKirqZF5lpqleuZnlA1heenWsRiZICcs= X-Received: by 2002:ac2:4bc1:: with SMTP id o1mr31669631lfq.520.1634015598990; Mon, 11 Oct 2021 22:13:18 -0700 (PDT) MIME-Version: 1.0 From: Khushboo Vashi Date: Tue, 12 Oct 2021 10:43:07 +0530 Message-ID: Subject: [pgAdmin4][Patch] - RM 6657 - Support for REMOTE_USER as Authentication. To: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000560d2e05ce20e777" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000560d2e05ce20e777 Content-Type: multipart/alternative; boundary="000000000000560d2b05ce20e775" --000000000000560d2b05ce20e775 Content-Type: text/plain; charset="UTF-8" Hi, Please find the attached patch for #6657 - Support for REMOTE_USER as Authentication. The initial patch was provided by *Tom Schreiber,* I have made the necessary changes to work with pgAdmin and also added test cases and documentation. Please commit the patch on *Tom Schreiber's *name. This patch also includes the fix for the RM #6719 - OAuth2 integration redirect issue Thanks, Khushboo --000000000000560d2b05ce20e775 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Please find = the attached patch for #6657 -=C2=A0Support for REMOTE_USER as Authentication.
=

The initial patch was provided by= =C2=A0Tom Schreiber, I have made the necessary changes to work with = pgAdmin and also added test cases and documentation.
Please commi= t the patch on=C2=A0Tom Sc= hreiber's name.=

This patch also includes= the fix for the RM #6719 -=C2=A0OAuth2 integration redirect issue


Thanks,
Khushboo
--000000000000560d2b05ce20e775-- --000000000000560d2e05ce20e777 Content-Type: application/octet-stream; name="RM_6657.patch" Content-Disposition: attachment; filename="RM_6657.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kunmftxr0 ZGlmZiAtLWdpdCBhL2RvY3MvZW5fVVMvZ2V0dGluZ19zdGFydGVkLnJzdCBiL2RvY3MvZW5fVVMv Z2V0dGluZ19zdGFydGVkLnJzdAppbmRleCA3MDBlOGQ0OGIuLjkyOTY3ODQ3ZSAxMDA2NDQKLS0t IGEvZG9jcy9lbl9VUy9nZXR0aW5nX3N0YXJ0ZWQucnN0CisrKyBiL2RvY3MvZW5fVVMvZ2V0dGlu Z19zdGFydGVkLnJzdApAQCAtMzksNiArMzksNyBAQCBNb2RlIGlzIHByZS1jb25maWd1cmVkIGZv ciBzZWN1cml0eS4KICAgIGxkYXAKICAgIGtlcmJlcm9zCiAgICBvYXV0aDIKKyAgIHdlYnNlcnZl cgogCiAKIC4uIG5vdGU6OiBQcmUtY29tcGlsZWQgYW5kIGNvbmZpZ3VyZWQgaW5zdGFsbGF0aW9u IHBhY2thZ2VzIGFyZSBhdmFpbGFibGUgZm9yCmRpZmYgLS1naXQgYS9kb2NzL2VuX1VTL3dlYnNl cnZlci5yc3QgYi9kb2NzL2VuX1VTL3dlYnNlcnZlci5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwLi5hYmQwY2Y2YzQKLS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2VuX1VT L3dlYnNlcnZlci5yc3QKQEAgLTAsMCArMSw0NCBAQAorLi4gX3dlYnNlcnZlcjoKKworKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKK2BFbmFibGluZyBXZWJzZXJ2 ZXIgQXV0aGVudGljYXRpb25gOmluZGV4OgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKKworVG8gY29uZmlndXJlIFdlYnNlcnZlciBhdXRoZW50aWNhdGlvbiwg eW91IG11c3Qgc2V0dXAgeW91ciB3ZWJzZXJ2ZXIKK3dpdGggYW55IGF1dGhlbnRpY2F0aW9uIHBs dWctaW4gKHN1Y2ggYXMgU2hpYmJvbGV0aCwgSFRUUCBCQVNJQyBhdXRoKQorYXMgbG9uZyBhcyBp dCBzZXRzIHRoZSBSRU1PVEVfVVNFUiBlbnZpcm9ubWVudCB2YXJpYWJsZS4KK1RvIGVuYWJsZSBX ZWJzZXJ2ZXIgYXV0aGVudGljYXRpb24gZm9yIHBnQWRtaW4sIHlvdSBtdXN0IGNvbmZpZ3VyZSB0 aGUgV2Vic2VydmVyCitzZXR0aW5ncyBpbiB0aGXCoCpjb25maWdfbG9jYWwucHkqIG9ywqAqY29u ZmlnX3N5c3RlbS5weSrCoGZpbGUgKHNlZSB0aGUKKzpyZWY6YGNvbmZpZy5weSA8Y29uZmlnX3B5 PmAgZG9jdW1lbnRhdGlvbikgb24gdGhlIHN5c3RlbSB3aGVyZSBwZ0FkbWluIGlzCitpbnN0YWxs ZWQgaW4gU2VydmVyIG1vZGUuIFlvdSBjYW4gY29weSB0aGVzZSBzZXR0aW5ncyBmcm9tICpjb25m aWcucHkqIGZpbGUKK2FuZCBtb2RpZnkgdGhlIHZhbHVlcyBmb3IgdGhlIGZvbGxvd2luZyBwYXJh bWV0ZXJzOgorCisKKy4uIGNzdi10YWJsZTo6CisgICA6aGVhZGVyOiAiKipQYXJhbWV0ZXIqKiIs ICIqKkRlc2NyaXB0aW9uKioiCisgICA6Y2xhc3M6IGxvbmd0YWJsZQorICAgOndpZHRoczogMzUs IDU1CisKKyAgICJBVVRIRU5USUNBVElPTl9TT1VSQ0VTIiwgIlRoZSBkZWZhdWx0IHZhbHVlIGZv ciB0aGlzIHBhcmFtZXRlciBpc8KgKmludGVybmFsKi4KKyAgIFRvIGVuYWJsZSBPQVVUSDIgYXV0 aGVudGljYXRpb24sIHlvdSBtdXN0IGluY2x1ZGXCoCp3ZWJzZXJ2ZXIqwqBpbiB0aGUgbGlzdCBv ZiB2YWx1ZXMKKyAgIGZvciB0aGlzIHBhcmFtZXRlci4geW91IGNhbiBtb2RpZnkgdGhlIHZhbHVl IGFzIGZvbGxvd3M6CisKKyAgICogW+KAmHdlYnNlcnZlcuKAmV06IHBnQWRtaW4gd2lsbCB1c2Ug b25seSBXZWJzZXJ2ZXIgYXV0aGVudGljYXRpb24uCisKKyAgICogW+KAmHdlYnNlcnZlcuKAmSwg 4oCYaW50ZXJuYWzigJldOiBwZ0FkbWluIHdpbGwgZmlyc3QgdHJ5IHRvIGF1dGhlbnRpY2F0ZSB0 aGUgdXNlcgorICAgICB0aHJvdWdoIHdlYnNlcnZlci4gSWYgdGhhdCBhdXRoZW50aWNhdGlvbiBm YWlscywgdGhlbiBpdCB3aWxsIHJldHVybiBiYWNrCisgICAgIHRvIHRoZSBsb2dpbiBkaWFsb2cg d2hlcmUgeW91IG5lZWQgdG8gcHJvdmlkZSBpbnRlcm5hbCBwZ0FkbWluIHVzZXIKKyAgICAgY3Jl ZGVudGlhbHMgZm9yIGF1dGhlbnRpY2F0aW9uLiIKKyAgICAiV0VCU0VSVkVSX0FVVE9fQ1JFQVRF X1VTRVIiLCAiU2V0IHRoZSB2YWx1ZSB0byAqVHJ1ZSogaWYgeW91IHdhbnQgdG8gYXV0b21hdGlj YWxseQorICAgIGNyZWF0ZSBhIHBnQWRtaW4gdXNlciBjb3JyZXNwb25kaW5nIHRvIGEgc3VjY2Vz c2Z1bGx5IGF1dGhlbnRpY2F0ZWQgV2Vic2VydmVyIHVzZXIuCisgICAgUGxlYXNlIG5vdGUgdGhh dCBwYXNzd29yZCBpcyBub3Qgc3RvcmVkIGluIHRoZSBwZ0FkbWluIGRhdGFiYXNlLiIKKworCitN YXN0ZXIgUGFzc3dvcmQKKz09PT09PT09PT09PT09PQorCitJbiB0aGUgbXVsdGkgdXNlciBtb2Rl LCBwZ0FkbWluIHVzZXMgdXNlcidzIGxvZ2luIHBhc3N3b3JkIHRvIGVuY3J5cHQvZGVjcnlwdCB0 aGUgUG9zdGdyZVNRTCBzZXJ2ZXIgcGFzc3dvcmQuCitJbiB0aGUgV2Vic2VydmVyIGF1dGhlbnRp Y2F0aW9uLCB0aGUgcGdBZG1pbiBkb2VzIG5vdCBzdG9yZSB0aGUgdXNlcidzIHBhc3N3b3JkLCBz byB3ZSBuZWVkIGFuIGVuY3J5cHRpb24ga2V5IHRvIHN0b3JlCit0aGUgUG9zdGdyZVNRTCBzZXJ2 ZXIgcGFzc3dvcmQuCitUbyBhY2NvbXBsaXNoIHRoaXMsIHNldCB0aGUgY29uZmlndXJhdGlvbiBw YXJhbWV0ZXIgTUFTVEVSX1BBU1NXT1JEIHRvICpUcnVlKiwgc28gdXBvbiBzZXR0aW5nIHRoZSBt YXN0ZXIgcGFzc3dvcmQsCitpdCB3aWxsIGJlIHVzZWQgYXMgYW4gZW5jcnlwdGlvbiBrZXkgd2hp bGUgc3RvcmluZyB0aGUgcGFzc3dvcmQuIElmIGl0IGlzIEZhbHNlLCB0aGUgc2VydmVyIHBhc3N3 b3JkIGNhbiBub3QgYmUgc3RvcmVkLgpkaWZmIC0tZ2l0IGEvd2ViL2NvbmZpZy5weSBiL3dlYi9j b25maWcucHkKaW5kZXggN2ExZjRhYjFmLi5kYjMxMzI3M2UgMTAwNjQ0Ci0tLSBhL3dlYi9jb25m aWcucHkKKysrIGIvd2ViL2NvbmZpZy5weQpAQCAtNTcwLDcgKzU3MCw4IEBAIEVOSEFOQ0VEX0NP T0tJRV9QUk9URUNUSU9OID0gVHJ1ZQogIyBEZWZhdWx0IHNldHRpbmcgaXMgaW50ZXJuYWwKICMg RXh0ZXJuYWwgU3VwcG9ydGVkIFNvdXJjZXM6IGxkYXAsIGtlcmJlcm9zLCBvYXV0aDIKICMgTXVs dGlwbGUgYXV0aGVudGljYXRpb24gY2FuIGJlIGFjaGlldmVkIGJ5IHNldHRpbmcgdGhpcyBwYXJh bWV0ZXIgdG8KLSMgWydsZGFwJywgJ2ludGVybmFsJ10gb3IgWydvYXV0aDInLCAnaW50ZXJuYWwn XSBldGMuCisjIFsnbGRhcCcsICdpbnRlcm5hbCddIG9yIFsnb2F1dGgyJywgJ2ludGVybmFsJ10g b3IKKyMgWyd3ZWJzZXJ2ZXInLCAnaW50ZXJuYWwnXSBldGMuCiAjIHBnQWRtaW4gd2lsbCBhdXRo ZW50aWNhdGUgdGhlIHVzZXIgd2l0aCBsZGFwL29hdXRoMiB3aGF0ZXZlciBmaXJzdCBpbiB0aGUK ICMgbGlzdCwgaW4gY2FzZSBvZiBmYWlsdXJlIHRoZSBzZWNvbmQgYXV0aGVudGljYXRpb24gb3B0 aW9uIHdpbGwgYmUgY29uc2lkZXJlZC4KIApAQCAtNzI5LDYgKzczMCwxMiBAQCBPQVVUSDJfQ09O RklHID0gWwogCiBPQVVUSDJfQVVUT19DUkVBVEVfVVNFUiA9IFRydWUKIAorIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMgV2Vic2VydmVyIENvbmZpZ3VyYXRpb24KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK1dF QlNFUlZFUl9BVVRPX0NSRUFURV9VU0VSID0gVHJ1ZQorCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBQ U1FMIHRvb2wgc2V0dGluZ3MKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRpZmYgLS1naXQgYS93ZWIvcGdB ZG1pbjQud3NnaSBiL3dlYi9wZ0FkbWluNC53c2dpCmluZGV4IDk3M2QyNzAxZC4uOTVhYWI4ZGUy IDEwMDY0NAotLS0gYS93ZWIvcGdBZG1pbjQud3NnaQorKysgYi93ZWIvcGdBZG1pbjQud3NnaQpA QCAtMTMsNiArMTMsOCBAQCBpbXBvcnQgc3lzCiBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDQp OgogICAgIHJhaXNlIEV4Y2VwdGlvbignVGhpcyBhcHBsaWNhdGlvbiBtdXN0IGJlIHJ1biB1bmRl ciBQeXRob24gMy40IG9yIGxhdGVyLicpCiAKK29zLmVudmlyb25bJ1NDUklQVF9OQU1FJ10gPSAn L3BnYWRtaW40JworCiBpbXBvcnQgYnVpbHRpbnMKIAogcm9vdCA9IG9zLnBhdGguZGlybmFtZShv cy5wYXRoLnJlYWxwYXRoKF9fZmlsZV9fKSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL19faW5p dF9fLnB5IGIvd2ViL3BnYWRtaW4vX19pbml0X18ucHkKaW5kZXggMzdlYjI2Y2NjLi44MDQ3YjM0 MTcgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWlu L19faW5pdF9fLnB5CkBAIC00Niw3ICs0Niw3IEBAIGZyb20gcGdhZG1pbi51dGlscy5hamF4IGlt cG9ydCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIG1ha2VfanNvbl9yZXNwb25zZQogZnJvbSBwZ2Fk bWluLnV0aWxzLmNzcmYgaW1wb3J0IHBnQ1NSRlByb3RlY3QKIGZyb20gcGdhZG1pbiBpbXBvcnQg YXV0aGVudGljYXRlCiBmcm9tIHBnYWRtaW4udXRpbHMuc2VjdXJpdHlfaGVhZGVycyBpbXBvcnQg U2VjdXJpdHlIZWFkZXJzCi1mcm9tIHBnYWRtaW4udXRpbHMuY29uc3RhbnRzIGltcG9ydCBLRVJC RVJPUywgT0FVVEgyLCBJTlRFUk5BTCwgTERBUAorZnJvbSBwZ2FkbWluLnV0aWxzLmNvbnN0YW50 cyBpbXBvcnQgS0VSQkVST1MsIE9BVVRIMiwgSU5URVJOQUwsIExEQVAsIFdFQlNFUlZFUgogCiAj IEV4cGxpY2l0bHkgc2V0IHRoZSBtaW1lLXR5cGVzIHNvIHRoYXQgYSBjb3JydXB0ZWQgd2luZG93 cyByZWdpc3RyeSB3aWxsIG5vdAogIyBhZmZlY3QgcGdBZG1pbiA0IHRvIGJlIGxvYWQgcHJvcGVy bHkuIFRoaXMgd2lsbCBhdm9pZCB0aGUgaXNzdWVzIHRoYXQgbWF5CkBAIC00NzAsMTEgKzQ3MCwx NyBAQCBkZWYgY3JlYXRlX2FwcChhcHBfbmFtZT1Ob25lKToKICAgICAgICAgJ1NFQ1VSSVRZX0VN QUlMX1ZBTElEQVRPUl9BUkdTJzogY29uZmlnLlNFQ1VSSVRZX0VNQUlMX1ZBTElEQVRPUl9BUkdT CiAgICAgfSkpCiAKKyAgICBpZiAnU0NSSVBUX05BTUUnIGluIG9zLmVudmlyb24gYW5kIG9zLmVu dmlyb25bIlNDUklQVF9OQU1FIl06CisgICAgICAgIGFwcC5jb25maWcudXBkYXRlKGRpY3Qoewor ICAgICAgICAgICAgJ0FQUExJQ0FUSU9OX1JPT1QnOiBvcy5lbnZpcm9uWyJTQ1JJUFRfTkFNRSJd CisgICAgICAgIH0pKQorCiAgICAgYXBwLmNvbmZpZy51cGRhdGUoZGljdCh7CiAgICAgICAgICdJ TlRFUk5BTCc6IElOVEVSTkFMLAogICAgICAgICAnTERBUCc6IExEQVAsCiAgICAgICAgICdLRVJC RVJPUyc6IEtFUkJFUk9TLAotICAgICAgICAnT0FVVEgyJzogT0FVVEgyCisgICAgICAgICdPQVVU SDInOiBPQVVUSDIsCisgICAgICAgICdXRUJTRVJWRVInOiBXRUJTRVJWRVIKICAgICB9KSkKIAog ICAgIHNlY3VyaXR5LmluaXRfYXBwKGFwcCwgdXNlcl9kYXRhc3RvcmUpCkBAIC03NzEsMTUgKzc3 NywxNCBAQCBkZWYgY3JlYXRlX2FwcChhcHBfbmFtZT1Ob25lKToKICAgICAgICAgZWxpZiBjb25m aWcuU0VSVkVSX01PREUgYW5kIFwKICAgICAgICAgICAgICAgICBub3QgY3VycmVudF91c2VyLmlz X2F1dGhlbnRpY2F0ZWQgYW5kIFwKICAgICAgICAgICAgICAgICByZXF1ZXN0LmVuZHBvaW50IGlu ICgncmVkaXJlY3RzLmluZGV4JywgJ3NlY3VyaXR5LmxvZ2luJyk6Ci0gICAgICAgICAgICBpZiBh cHAuUEdBRE1JTl9FWFRFUk5BTF9BVVRIX1NPVVJDRSA9PSBLRVJCRVJPUzoKKyAgICAgICAgICAg IGlmIGFwcC5QR0FETUlOX0VYVEVSTkFMX0FVVEhfU09VUkNFIGluIFtLRVJCRVJPUywgV0VCU0VS VkVSXToKICAgICAgICAgICAgICAgICByZXR1cm4gYXV0aGVudGljYXRlLmxvZ2luKCkKICAgICAg ICAgIyBpZiB0aGUgc2VydmVyIGlzIHJlc3RhcnRlZCB0aGUgaW4gbWVtb3J5IGtleSB3aWxsIGJl IGxvc3QKICAgICAgICAgIyBidXQgdGhlIHVzZXIgc2Vzc2lvbiBtYXkgc3RpbGwgYmUgYWN0aXZl LiBMb2dvdXQgdGhlIHVzZXIKICAgICAgICAgIyB0byBnZXQgdGhlIGtleSBhZ2FpbiB3aGVuIGxv Z2luCiAgICAgICAgIGlmIGNvbmZpZy5TRVJWRVJfTU9ERSBhbmQgY3VycmVudF91c2VyLmlzX2F1 dGhlbnRpY2F0ZWQgYW5kIFwKLSAgICAgICAgICAgICAgICBhcHAuUEdBRE1JTl9FWFRFUk5BTF9B VVRIX1NPVVJDRSAhPSBcCi0gICAgICAgICAgICAgICAgS0VSQkVST1MgYW5kIGFwcC5QR0FETUlO X0VYVEVSTkFMX0FVVEhfU09VUkNFICE9IFwKLSAgICAgICAgICAgICAgICBPQVVUSDIgYW5kXAor ICAgICAgICAgICAgYXBwLlBHQURNSU5fRVhURVJOQUxfQVVUSF9TT1VSQ0Ugbm90IGluIFsKKyAg ICAgICAgICAgICAgICBLRVJCRVJPUywgT0FVVEgyLCBXRUJTRVJWRVJdIGFuZCBcCiAgICAgICAg ICAgICAgICAgY3VycmVudF9hcHAua2V5TWFuYWdlci5nZXQoKSBpcyBOb25lIGFuZCBcCiAgICAg ICAgICAgICAgICAgcmVxdWVzdC5lbmRwb2ludCBub3QgaW4gKCdzZWN1cml0eS5sb2dpbicsICdz ZWN1cml0eS5sb2dvdXQnKToKICAgICAgICAgICAgIGxvZ291dF91c2VyKCkKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2F1dGhlbnRpY2F0ZS93ZWJzZXJ2ZXIucHkgYi93ZWIvcGdhZG1pbi9hdXRo ZW50aWNhdGUvd2Vic2VydmVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MC4uNDdhZjhiZWNkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYXV0aGVudGljYXRl L3dlYnNlcnZlci5weQpAQCAtMCwwICsxLDExOSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMg cGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAy MDIxLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KworIiIiQSBibHVlcHJpbnQgbW9kdWxlIGltcGxlbWVudGluZyB0aGUgV2Vic2VydmVyIGF1dGhl bnRpY2F0aW9uLiIiIgorCitpbXBvcnQgcmFuZG9tCitpbXBvcnQgc3RyaW5nCitpbXBvcnQgY29u ZmlnCitmcm9tIGZsYXNrIGltcG9ydCByZXF1ZXN0LCBjdXJyZW50X2FwcCwgc2Vzc2lvbiwgUmVz cG9uc2UsIHJlbmRlcl90ZW1wbGF0ZSwgXAorICAgIHVybF9mb3IKK2Zyb20gZmxhc2tfYmFiZWxl eCBpbXBvcnQgZ2V0dGV4dAorZnJvbSBmbGFza19zZWN1cml0eSBpbXBvcnQgbG9naW5fdXNlcgor ZnJvbSAuaW50ZXJuYWwgaW1wb3J0IEJhc2VBdXRoZW50aWNhdGlvbgorZnJvbSBwZ2FkbWluLm1v ZGVsIGltcG9ydCBVc2VyCitmcm9tIHBnYWRtaW4udG9vbHMudXNlcl9tYW5hZ2VtZW50IGltcG9y dCBjcmVhdGVfdXNlcgorZnJvbSBwZ2FkbWluLnV0aWxzLmNvbnN0YW50cyBpbXBvcnQgV0VCU0VS VkVSCitmcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IFBnQWRtaW5Nb2R1bGUKK2Zyb20gcGdhZG1p bi51dGlscy5jc3JmIGltcG9ydCBwZ0NTUkZQcm90ZWN0Citmcm9tIGZsYXNrX3NlY3VyaXR5LnV0 aWxzIGltcG9ydCBsb2dvdXRfdXNlcgorZnJvbSBvcyBpbXBvcnQgZW52aXJvbiwgcGF0aCwgcmVt b3ZlCisKKworY2xhc3MgV2Vic2VydmVyTW9kdWxlKFBnQWRtaW5Nb2R1bGUpOgorICAgIGRlZiBy ZWdpc3RlcihzZWxmLCBhcHAsIG9wdGlvbnMsIGZpcnN0X3JlZ2lzdHJhdGlvbj1GYWxzZSk6Cisg ICAgICAgICMgRG8gbm90IGxvb2sgZm9yIHRoZSBzdWJfbW9kdWxlcywKKyAgICAgICAgIyBpbnN0 ZWFkIGNhbGwgYmx1ZXByaW50LnJlZ2lzdGVyKC4uLikgZGlyZWN0bHkKKyAgICAgICAgc3VwZXIo UGdBZG1pbk1vZHVsZSwgc2VsZikucmVnaXN0ZXIoYXBwLCBvcHRpb25zLCBmaXJzdF9yZWdpc3Ry YXRpb24pCisKKyAgICBkZWYgZ2V0X2V4cG9zZWRfdXJsX2VuZHBvaW50cyhzZWxmKToKKyAgICAg ICAgcmV0dXJuIFsnd2Vic2VydmVyLmxvZ2luJywKKyAgICAgICAgICAgICAgICAnd2Vic2VydmVy LmxvZ291dCddCisKKworZGVmIGluaXRfYXBwKGFwcCk6CisgICAgTU9EVUxFX05BTUUgPSAnd2Vi c2VydmVyJworCisgICAgYmx1ZXByaW50ID0gV2Vic2VydmVyTW9kdWxlKE1PRFVMRV9OQU1FLCBf X25hbWVfXywgc3RhdGljX3VybF9wYXRoPScnKQorCisgICAgQGJsdWVwcmludC5yb3V0ZSgiL2xv Z2luIiwKKyAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50PSJsb2dpbiIsIG1ldGhvZHM9WyJH RVQiXSkKKyAgICBAcGdDU1JGUHJvdGVjdC5leGVtcHQKKyAgICBkZWYgd2Vic2VydmVyX2xvZ2lu KCk6CisgICAgICAgIGxvZ291dF91c2VyKCkKKyAgICAgICAgcmV0dXJuIFJlc3BvbnNlKHJlbmRl cl90ZW1wbGF0ZSgiYnJvd3Nlci9rZXJiZXJvc19sb2dpbi5odG1sIiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpbl91cmw9dXJsX2Zvcignc2VjdXJpdHkubG9n aW4nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQorCisgICAg QGJsdWVwcmludC5yb3V0ZSgiL2xvZ291dCIsCisgICAgICAgICAgICAgICAgICAgICBlbmRwb2lu dD0ibG9nb3V0IiwgbWV0aG9kcz1bIkdFVCJdKQorICAgIEBwZ0NTUkZQcm90ZWN0LmV4ZW1wdAor ICAgIGRlZiB3ZWJzZXJ2ZXJfbG9nb3V0KCk6CisgICAgICAgIGxvZ291dF91c2VyKCkKKyAgICAg ICAgcmV0dXJuIFJlc3BvbnNlKHJlbmRlcl90ZW1wbGF0ZSgiYnJvd3Nlci9rZXJiZXJvc19sb2dv dXQuaHRtbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9naW5f dXJsPXVybF9mb3IoJ3NlY3VyaXR5LmxvZ2luJyksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKSkKKworICAgIGFwcC5yZWdpc3Rlcl9ibHVlcHJpbnQoYmx1ZXByaW50 KQorCisKK2NsYXNzIFdlYnNlcnZlckF1dGhlbnRpY2F0aW9uKEJhc2VBdXRoZW50aWNhdGlvbik6 CisgICAgTE9HSU5fVklFVyA9ICd3ZWJzZXJ2ZXIubG9naW4nCisgICAgTE9HT1VUX1ZJRVcgPSAn d2Vic2VydmVyLmxvZ291dCcKKworICAgIGRlZiBnZXRfc291cmNlX25hbWUoc2VsZik6CisgICAg ICAgIHJldHVybiBXRUJTRVJWRVIKKworICAgIGRlZiBnZXRfZnJpZW5kbHlfbmFtZShzZWxmKToK KyAgICAgICAgcmV0dXJuIGdldHRleHQoIndlYnNlcnZlciIpCisKKyAgICBkZWYgdmFsaWRhdGUo c2VsZiwgZm9ybSk6CisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgZ2V0X3VzZXIoc2Vs Zik6CisgICAgICAgIHJldHVybiByZXF1ZXN0LmVudmlyb24uZ2V0KCdSRU1PVEVfVVNFUicpCisK KyAgICBkZWYgYXV0aGVudGljYXRlKHNlbGYsIGZvcm0pOgorICAgICAgICB1c2VybmFtZSA9IHNl bGYuZ2V0X3VzZXIoKQorCisgICAgICAgIGlmIG5vdCB1c2VybmFtZToKKyAgICAgICAgICAgIHJl dHVybiBGYWxzZSwgZ2V0dGV4dCgKKyAgICAgICAgICAgICAgICAiV2Vic2VydmVyIGF1dGhlbnRp Y2F0ZSBmYWlsZWQuIikKKworICAgICAgICBzZXNzaW9uWydwYXNzX2VuY19rZXknXSA9ICcnLmpv aW4oCisgICAgICAgICAgICAocmFuZG9tLmNob2ljZShzdHJpbmcuYXNjaWlfbG93ZXJjYXNlKSBm b3IgeCBpbiByYW5nZSgxMCkpKQorICAgICAgICB1c2VyZW1haWwgPSByZXF1ZXN0LmVudmlyb24u Z2V0KCdtYWlsJykKKyAgICAgICAgaWYgbm90IHVzZXJlbWFpbDoKKyAgICAgICAgICAgIHVzZXJl bWFpbCA9ICcnCisgICAgICAgIHJldHVybiBzZWxmLl9fYXV0b19jcmVhdGVfdXNlcih1c2VybmFt ZSwgJycpCisKKyAgICBkZWYgbG9naW4oc2VsZiwgZm9ybSk6CisgICAgICAgIHVzZXJuYW1lID0g c2VsZi5nZXRfdXNlcigpCisgICAgICAgIGlmIHVzZXJuYW1lOgorICAgICAgICAgICAgdXNlciA9 IFVzZXIucXVlcnkuZmlsdGVyX2J5KHVzZXJuYW1lPXVzZXJuYW1lKS5maXJzdCgpCisgICAgICAg ICAgICBzdGF0dXMgPSBsb2dpbl91c2VyKHVzZXIpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVz OgorICAgICAgICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5leGNlcHRpb24oc2VsZi5tZXNz YWdlcygnTE9HSU5fRkFJTEVEJykpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlLCBzZWxm Lm1lc3NhZ2VzKCdMT0dJTl9GQUlMRUQnKQorICAgICAgICAgICAgcmV0dXJuIFRydWUsIE5vbmUK KyAgICAgICAgcmV0dXJuIEZhbHNlLCBzZWxmLm1lc3NhZ2VzKCdMT0dJTl9GQUlMRUQnKQorCisg ICAgZGVmIF9fYXV0b19jcmVhdGVfdXNlcihzZWxmLCB1c2VybmFtZSwgdXNlcmVtYWlsKToKKyAg ICAgICAgIiIiQWRkIHRoZSB3ZWJzZXJ2ZXIgdXNlciB0byB0aGUgaW50ZXJuYWwgU1FMaXRlIGRh dGFiYXNlLiIiIgorICAgICAgICBpZiBjb25maWcuV0VCU0VSVkVSX0FVVE9fQ1JFQVRFX1VTRVI6 CisgICAgICAgICAgICB1c2VyID0gVXNlci5xdWVyeS5maWx0ZXJfYnkodXNlcm5hbWU9dXNlcm5h bWUpLmZpcnN0KCkKKyAgICAgICAgICAgIGlmIG5vdCB1c2VyOgorICAgICAgICAgICAgICAgIHJl dHVybiBjcmVhdGVfdXNlcih7CisgICAgICAgICAgICAgICAgICAgICd1c2VybmFtZSc6IHVzZXJu YW1lLAorICAgICAgICAgICAgICAgICAgICAnZW1haWwnOiB1c2VyZW1haWwsCisgICAgICAgICAg ICAgICAgICAgICdyb2xlJzogMiwKKyAgICAgICAgICAgICAgICAgICAgJ2FjdGl2ZSc6IFRydWUs CisgICAgICAgICAgICAgICAgICAgICdhdXRoX3NvdXJjZSc6IFdFQlNFUlZFUgorICAgICAgICAg ICAgICAgIH0pCisgICAgICAgIHJldHVybiBUcnVlLCBOb25lCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3Rfa2VyYmVyb3Nfd2l0aF9tb2NraW5nLnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2tlcmJlcm9zX3dpdGhfbW9ja2luZy5weQppbmRleCAw ZjQ5YzQ0NGQuLjk4MmU3YmNkZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0 cy90ZXN0X2tlcmJlcm9zX3dpdGhfbW9ja2luZy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3Rlc3RzL3Rlc3Rfa2VyYmVyb3Nfd2l0aF9tb2NraW5nLnB5CkBAIC0xMzMsNCArMTMzLDUgQEAg Y2xhc3MgS2VyYmVyb3NMb2dpbk1vY2tUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAg ICAgICIiIgogICAgICAgICBjbHMudGVzdGVyLmxvZ291dCgpCiAgICAgICAgIGFwcF9jb25maWcu QVVUSEVOVElDQVRJT05fU09VUkNFUyA9IFtJTlRFUk5BTF0KKyAgICAgICAgYXBwX2NvbmZpZy5Q R0FETUlOX0VYVEVSTkFMX0FVVEhfU09VUkNFID0gSU5URVJOQUwKICAgICAgICAgdXRpbHMubG9n aW5fdGVzdGVyX2FjY291bnQoY2xzLnRlc3RlcikKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvdGVzdHMvdGVzdF9sZGFwX2xvZ2luLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0 cy90ZXN0X2xkYXBfbG9naW4ucHkKaW5kZXggNTFiNTEyYWZkLi5lYzJjN2QwMjUgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9sZGFwX2xvZ2luLnB5CisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9sZGFwX2xvZ2luLnB5CkBAIC05NSw0ICs5NSw1 IEBAIGNsYXNzIExEQVBMb2dpblRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAg IiIiCiAgICAgICAgIGNscy50ZXN0ZXIubG9nb3V0KCkKICAgICAgICAgYXBwX2NvbmZpZy5BVVRI RU5USUNBVElPTl9TT1VSQ0VTID0gW0lOVEVSTkFMXQorICAgICAgICBhcHBfY29uZmlnLlBHQURN SU5fRVhURVJOQUxfQVVUSF9TT1VSQ0UgPSBJTlRFUk5BTAogICAgICAgICB1dGlscy5sb2dpbl90 ZXN0ZXJfYWNjb3VudChjbHMudGVzdGVyKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci90ZXN0cy90ZXN0X2xkYXBfd2l0aF9tb2NraW5nLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90 ZXN0cy90ZXN0X2xkYXBfd2l0aF9tb2NraW5nLnB5CmluZGV4IDM4YzZiNDcyNC4uMTliNTQ4Y2Q0 IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfbGRhcF93aXRoX21v Y2tpbmcucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2xkYXBfd2l0aF9t b2NraW5nLnB5CkBAIC04MSw0ICs4MSw1IEBAIGNsYXNzIExEQVBMb2dpbk1vY2tUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICIiIgogICAgICAgICBjbHMudGVzdGVyLmxvZ291 dCgpCiAgICAgICAgIGFwcF9jb25maWcuQVVUSEVOVElDQVRJT05fU09VUkNFUyA9IFtJTlRFUk5B TF0KKyAgICAgICAgYXBwX2NvbmZpZy5QR0FETUlOX0VYVEVSTkFMX0FVVEhfU09VUkNFID0gSU5U RVJOQUwKICAgICAgICAgdXRpbHMubG9naW5fdGVzdGVyX2FjY291bnQoY2xzLnRlc3RlcikKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9sb2dpbi5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9sb2dpbi5weQppbmRleCA0NTFjMDViNjQuLmY1Y2Ux MDkyNyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2xvZ2luLnB5 CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9sb2dpbi5weQpAQCAtMTAwLDYg KzEwMCw3IEBAIGNsYXNzIExvZ2luVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICMg Tm8gbmVlZCB0byBjYWxsIGJhc2UgY2xhc3Mgc2V0dXAgZnVuY3Rpb24KICAgICBkZWYgc2V0VXAo c2VsZik6CiAgICAgICAgIGFwcF9jb25maWcuQVVUSEVOVElDQVRJT05fU09VUkNFUyA9IFtJTlRF Uk5BTF0KKyAgICAgICAgYXBwX2NvbmZpZy5QR0FETUlOX0VYVEVSTkFMX0FVVEhfU09VUkNFID0g SU5URVJOQUwKIAogICAgIGRlZiBydW5UZXN0KHNlbGYpOgogICAgICAgICAiIiJUaGlzIGZ1bmN0 aW9uIGNoZWNrcyBsb2dpbiBmdW5jdGlvbmFsaXR5LiIiIgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci90ZXN0cy90ZXN0X29hdXRoMl93aXRoX21vY2tpbmcucHkgYi93ZWIvcGdhZG1p bi9icm93c2VyL3Rlc3RzL3Rlc3Rfb2F1dGgyX3dpdGhfbW9ja2luZy5weQppbmRleCA3MTcwNmVi ZTYuLjBhYjZmN2NkZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0 X29hdXRoMl93aXRoX21vY2tpbmcucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90 ZXN0X29hdXRoMl93aXRoX21vY2tpbmcucHkKQEAgLTE0NSw0ICsxNDUsNSBAQCBjbGFzcyBPYXV0 aDJMb2dpbk1vY2tUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICIiIgogICAg ICAgICBjbHMudGVzdGVyLmxvZ291dCgpCiAgICAgICAgIGFwcF9jb25maWcuQVVUSEVOVElDQVRJ T05fU09VUkNFUyA9IFtJTlRFUk5BTF0KKyAgICAgICAgYXBwX2NvbmZpZy5QR0FETUlOX0VYVEVS TkFMX0FVVEhfU09VUkNFID0gSU5URVJOQUwKICAgICAgICAgdXRpbHMubG9naW5fdGVzdGVyX2Fj Y291bnQoY2xzLnRlc3RlcikKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMv dGVzdF93ZWJzZXJ2ZXJfd2l0aF9tb2NraW5nLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0 cy90ZXN0X3dlYnNlcnZlcl93aXRoX21vY2tpbmcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwLi43NDM0M2QxMzUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3Rlc3RzL3Rlc3Rfd2Vic2VydmVyX3dpdGhfbW9ja2luZy5weQpAQCAtMCwwICsxLDg2 IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xz CisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjEsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50 IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBM aWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgY29uZmlnIGFzIGFwcF9jb25m aWcKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zy b20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGls cworZnJvbSBwZ2FkbWluLmF1dGhlbnRpY2F0ZS5yZWdpc3RyeSBpbXBvcnQgQXV0aFNvdXJjZVJl Z2lzdHJ5Citmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoLCBNYWdpY01vY2sKK2Zyb20g cGdhZG1pbi5hdXRoZW50aWNhdGUgaW1wb3J0IEF1dGhTb3VyY2VNYW5hZ2VyCitmcm9tIHBnYWRt aW4udXRpbHMuY29uc3RhbnRzIGltcG9ydCBPQVVUSDIsIExEQVAsIElOVEVSTkFMLCBXRUJTRVJW RVIKK2Zyb20gZmxhc2sgaW1wb3J0IHJlcXVlc3QKKworCitjbGFzcyBXZWJzZXJ2ZXJMb2dpbk1v Y2tUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiCisgICAgVGhpcyBjbGFzcyBj aGVja3Mgb2F1dGgyICBsb2dpbiBmdW5jdGlvbmFsaXR5IGJ5IG1vY2tpbmcKKyAgICBXZWJzZXJ2 ZXIgQXV0aGVudGljYXRpb24uCisgICAgIiIiCisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAg ICgnV2Vic2VydmVyIEF1dGhlbnRpY2F0aW9uJywgZGljdCgKKyAgICAgICAgICAgIGF1dGhfc291 cmNlPVtXRUJTRVJWRVJdLAorICAgICAgICAgICAgdXNlcm5hbWU9J3Rlc3RfbW9ja193ZWJzZXJ2 ZXJfdXNlcicKKyAgICAgICAgKSksCisgICAgXQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVm IHNldFVwQ2xhc3MoY2xzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdlIG5lZWQgdG8gbG9nb3V0 IHRoZSB0ZXN0IGNsaWVudCBhcyB3ZSBhcmUgdGVzdGluZworICAgICAgICBzcG5lZ28va2VyYmVy b3MgbG9naW4gc2NlbmFyaW9zLgorICAgICAgICAiIiIKKyAgICAgICAgY2xzLnRlc3Rlci5sb2dv dXQoKQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBhcHBfY29uZmlnLkFVVEhFTlRJ Q0FUSU9OX1NPVVJDRVMgPSBzZWxmLmF1dGhfc291cmNlCisgICAgICAgIHNlbGYuYXBwLlBHQURN SU5fRVhURVJOQUxfQVVUSF9TT1VSQ0UgPSBXRUJTRVJWRVIKKworICAgIGRlZiBydW5UZXN0KHNl bGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGNoZWNrcyB3ZWJzZXJ2ZXIgbG9naW4gZnVu Y3Rpb25hbGl0eS4iIiIKKyAgICAgICAgaWYgYXBwX2NvbmZpZy5TRVJWRVJfTU9ERSBpcyBGYWxz ZToKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoCisgICAgICAgICAgICAgICAgIkNhbiBub3Qg cnVuIFdlYnNlcnZlciBBdXRoZW50aWNhdGlvbiBpbiB0aGUgRGVza3RvcCBtb2RlLiIKKyAgICAg ICAgICAgICkKKworICAgICAgICBzZWxmLnRlc3Rfd2Vic2VydmVyX2F1dGhlbnRpY2F0aW9uKCkK KworICAgIGRlZiB0ZXN0X3dlYnNlcnZlcl9hdXRoZW50aWNhdGlvbihzZWxmKToKKyAgICAgICAg IiIiCisgICAgICAgIEVuc3VyZSB0aGF0IHdoZW4gdGhlIGNsaWVudCBzZW5kcyBhbiBjb3JyZWN0 IGF1dGhvcml6YXRpb24gdG9rZW4sCisgICAgICAgIHRoZXkgcmVjZWl2ZSBhIDIwMCBPSyByZXNw b25zZSBhbmQgdGhlIHVzZXIgcHJpbmNpcGFsIGlzIGV4dHJhY3RlZCBhbmQKKyAgICAgICAgcGFz c2VkIG9uIHRvIHRoZSByb3V0ZWQgbWV0aG9kLgorICAgICAgICAiIiIKKworICAgICAgICAjIE1v Y2sgT2F1dGgyIEF1dGhlbnRpY2F0ZQorICAgICAgICBBdXRoU291cmNlUmVnaXN0cnkuX3JlZ2lz dHJ5W1dFQlNFUlZFUl0uZ2V0X3VzZXIgPSBNYWdpY01vY2soCisgICAgICAgICAgICByZXR1cm5f dmFsdWU9c2VsZi51c2VybmFtZSkKKworICAgICAgICByZXMgPSBzZWxmLnRlc3Rlci5sb2dpbihO b25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBOb25lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgc2VsZi5h c3NlcnRFcXVhbChyZXMuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgcmVzcGRhdGEgPSAnR3Jh dmF0YXIgaW1hZ2UgZm9yICVzJyAlIHNlbGYudXNlcm5hbWUKKyAgICAgICAgc2VsZi5hc3NlcnRU cnVlKHJlc3BkYXRhIGluIHJlcy5kYXRhLmRlY29kZSgndXRmOCcpKQorCisgICAgZGVmIHRlYXJE b3duKHNlbGYpOgorICAgICAgICBwYXNzCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgdGVh ckRvd25DbGFzcyhjbHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2UgbmVlZCB0byBhZ2FpbiBs b2dpbiB0aGUgdGVzdCBjbGllbnQgYXMgc29vbiBhcyB0ZXN0IHNjZW5hcmlvcworICAgICAgICBm aW5pc2hlcy4KKyAgICAgICAgIiIiCisgICAgICAgIGNscy50ZXN0ZXIubG9nb3V0KCkKKyAgICAg ICAgYXBwX2NvbmZpZy5BVVRIRU5USUNBVElPTl9TT1VSQ0VTID0gW0lOVEVSTkFMXQorICAgICAg ICBhcHBfY29uZmlnLlBHQURNSU5fRVhURVJOQUxfQVVUSF9TT1VSQ0UgPSBJTlRFUk5BTAorICAg ICAgICB1dGlscy5sb2dpbl90ZXN0ZXJfYWNjb3VudChjbHMudGVzdGVyKQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vdXRpbHMvY29uc3RhbnRzLnB5IGIvd2ViL3BnYWRtaW4vdXRpbHMvY29uc3Rh bnRzLnB5CmluZGV4IDkxOTMxYzQyMi4uOTZkNDYzNjdiIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi91dGlscy9jb25zdGFudHMucHkKKysrIGIvd2ViL3BnYWRtaW4vdXRpbHMvY29uc3RhbnRzLnB5 CkBAIC01NSwxMiArNTUsMTQgQEAgRVJST1JfRkVUQ0hJTkdfREFUQSA9IGdldHRleHQoJ1VuYWJs ZSB0byBmZXRjaCBkYXRhLicpCiBJTlRFUk5BTCA9ICdpbnRlcm5hbCcKIExEQVAgPSAnbGRhcCcK IEtFUkJFUk9TID0gJ2tlcmJlcm9zJwotT0FVVEgyID0gIm9hdXRoMiIKK09BVVRIMiA9ICdvYXV0 aDInCitXRUJTRVJWRVIgPSAnd2Vic2VydmVyJwogCiBTVVBQT1JURURfQVVUSF9TT1VSQ0VTID0g W0lOVEVSTkFMLAogICAgICAgICAgICAgICAgICAgICAgICAgICBMREFQLAogICAgICAgICAgICAg ICAgICAgICAgICAgICBLRVJCRVJPUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgT0FVVEgy XQorICAgICAgICAgICAgICAgICAgICAgICAgICBPQVVUSDIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgIFdFQlNFUlZFUl0KIAogQklOQVJZX1BBVEhTID0gewogICAgICJhc19iaW5fcGF0aHMi OiBbCg== --000000000000560d2e05ce20e777--