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 1q08A8-0006a7-37 for pgsql-hackers@arkaria.postgresql.org; Fri, 19 May 2023 22:01:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1q08A6-0004L8-JY for pgsql-hackers@arkaria.postgresql.org; Fri, 19 May 2023 22:01:22 +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 1q08A5-0004Ky-Ht for pgsql-hackers@lists.postgresql.org; Fri, 19 May 2023 22:01:22 +0000 Received: from mail-pf1-x431.google.com ([2607:f8b0:4864:20::431]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1q089z-000kCS-Sk for pgsql-hackers@postgresql.org; Fri, 19 May 2023 22:01:20 +0000 Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-64d24136685so1018798b3a.1 for ; Fri, 19 May 2023 15:01:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=timescale.com; s=google; t=1684533675; x=1687125675; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=59p+xc4mBLZxaMGLK+VvGiAZqpyKO2+9BU6OTDzH0Vw=; b=nX6ae4bKpmAPwMuGEtUFjegBUU4QGHJoI5spM+oUT0x4DUGfV+ps3ua9KDv0nuysKE ypVHuTfQahOClmwvYEHtBjdahILZCwUOAhBVqXW4kNLmrDZSc9vsFt+UjiEBgyyJSkOs MRinl6FWMx7XI4Bp2ytJeJjMM3CDQEqGjsVpW+5++XIwPr7Dv+2aQWroy2VCAFS93hIa Zykh9LrDzuqZpCLY5oqHWJaoVKgxTY2bAiipyZKO/92LIhcijPmzRUZM9HMGnkmAyMzn HYuFF3yM4n9nSz/J350LNYg2xYnqOwLUT0GkzhRT7taG9Lqf3sM5QF4ElFoPf4GwB8I5 LfSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684533675; x=1687125675; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=59p+xc4mBLZxaMGLK+VvGiAZqpyKO2+9BU6OTDzH0Vw=; b=c/aMYqFJ3vvipqrMwOCe4VjrV7Z0VEfMl993d663Oyut3s3HirKb8EOwqR+4wI1aFZ YPpFM8V8J3Mux7F+gUvuhPB1nytBTjUaI6Atf0kdsdgH9lv3Kq+7EoDhumvd1gCqvk6i ATlvQ+QPluK7yNusWsKihzYnqvYw0tXThmo0qWSy+CzLfwc9+cxQqU77GAmfiWH7jWH3 p54BF7C69jHnyyld8QT4bXrVbHmCBq666wUyrhTBV8Ir8uGURuU7fmkGo6cPvwrtbW9s vLMuUmsCnRpv4kXK+iJ8ErMQkm/2OkzajWw9VXrFlRRgzDmMql3KFOyq/Uqrv2lpN+bJ HSmQ== X-Gm-Message-State: AC+VfDz5dsLHTWQiBdRKzS33nYSPRnokYQ6kzagEh/ZqgfcgEAwnbGcc ph8577tPEBaWw5A68Px/Jc9LDa5HukY2utMQNRvmHA== X-Google-Smtp-Source: ACHHUZ72dp7cRlreSpJ7k1/JO2U+MKG5tK+95g8ND/EbDLT4bkEBpTFCGyGDeNjeqQ1tW6htBDY0kA== X-Received: by 2002:a05:6a00:4085:b0:64d:2a87:2596 with SMTP id bw5-20020a056a00408500b0064d2a872596mr5548458pfb.10.1684533673548; Fri, 19 May 2023 15:01:13 -0700 (PDT) Received: from [192.168.1.21] ([50.53.8.205]) by smtp.gmail.com with ESMTPSA id b5-20020aa78705000000b006437c0edf9csm178882pfo.16.2023.05.19.15.01.11 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 19 May 2023 15:01:12 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------xs7WpnNbBecg3ku66YQMYG0Y" Message-ID: <863c9732-524e-af8f-0c79-700e2c171fa7@timescale.com> Date: Fri, 19 May 2023 15:01:11 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: [PoC] Federated Authn/z with OAUTHBEARER From: Jacob Champion To: "pgsql-hackers@postgresql.org" , mahendrakar s , Andrey Chudnovsky Cc: "hlinnaka@iki.fi" , "michael@paquier.xyz" , "smilingsamay@gmail.com" , Stephen Frost References: <2f06a4aef1d5defe4b7aaec01478572e5557d32a.camel@vmware.com> <8a5a35b31c3f25f6b047e77def0445a60399981d.camel@vmware.com> <0e86fe7e3534fb05db02379fed404a2010eb1d62.camel@vmware.com> <4db7d3ea061f47a15fc6d865f53dd327ea2975fb.camel@vmware.com> Content-Language: en-US In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------xs7WpnNbBecg3ku66YQMYG0Y Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 4/27/23 10:35, Jacob Champion wrote: > Moving forward, the first thing I plan to tackle is asynchronous > operation, so that polling clients can still operate sanely. If I can > find a good solution there, the conversations about possible extension > points should get a lot easier. Attached is patchset v8, now with concurrency and 300% more cURL! And many more questions to answer. This is a full reimplementation of the client-side OAuth flow. It's an async-first engine built on top of cURL's multi handles. All pending operations are multiplexed into a single epoll set (the "altsock"), which is exposed through PQsocket() for the duration of the OAuth flow. Clients return to the flow on their next call to PQconnectPoll(). Andrey and Mahendrakar: you'll probably be interested in the conn->async_auth() callback, conn->altsock, and the pg_fe_run_oauth_flow entry point. This is intended to be the foundation for alternative flows. I've kept the blocking iddawc implementation for comparison, but if you're running the tests against it, be aware that the asynchronous tests will, predictably, hang. Skip them with `py.test -k 'not asynchronous'`. = The Good = - PQconnectPoll() is no longer indefinitely blocked on a single connection's OAuth handshake. (iddawc doesn't appear to have any asynchronous primitives in its API, unless I've missed something crucial.) - We now have a swappable entry point. Alternative flows could be implemented by applications without forcing clients to redesign their polling loops (PQconnect* should just work as expected). - We have full control over corner cases in our default flow. Debugging failures is much nicer, with explanations of exactly what has gone wrong and where, compared to iddawc's "I_ERROR" messages. - cURL is not a lightweight library by any means, but we're no longer bundling things like web servers that we're not going to use. = The Bad = - Unsurprisingly, there's a lot more code now that we're implementing the flow ourselves. The client patch has tripled in size, and we'd be on the hook for implementing and staying current with the RFCs. - The client implementation is currently epoll-/Linux-specific. I think kqueue shouldn't be too much trouble for the BSDs, but it's even more code to maintain. - Some clients in the wild (psycopg2/psycopg) suppress all notifications during PQconnectPoll(). To accommodate them, I no longer use the noticeHooks for communicating the user code, but that means we have to come up with some other way to let applications override the printing to stderr. Something like the OpenSSL decryption callback, maybe? = The Ugly = - Unless someone is aware of some amazing Winsock magic, I'm pretty sure the multiplexed-socket approach is dead in the water on Windows. I think the strategy there probably has to be a background thread plus a fake "self-pipe" (loopback socket) for polling... which may be controversial? - We have to figure out how to initialize cURL in a thread-safe manner. Newer versions of libcurl and OpenSSL improve upon this situation, but I don't think there's a way to check at compile time whether the initialization strategy is safe or not (and even at runtime, I think there may be a chicken-and-egg problem with the API, where it's not safe to check for thread-safe initialization until after you've safely initialized). = Next Steps = There are so many TODOs in the cURL implementation: it's been a while since I've done any libcurl programming, it all needs to be hardened, and I need to comb through the relevant specs again. But I don't want to gold-plate it if this overall approach is unacceptable. So, questions for the gallery: 1) Would starting up a background thread (pooled or not) be acceptable on Windows? Alternatively, does anyone know enough Winsock deep magic to combine multiple pending events into one (selectable!) socket? 2) If a background thread is acceptable on one platform, does it make more sense to use one on every platform and just have synchronous code everywhere? Or should we use a threadless async implementation when we can? 3) Is the current conn->async_auth() entry point sufficient for an application to implement the Microsoft flows discussed upthread? 4) Would we want to try to require a new enough cURL/OpenSSL to avoid thread safety problems during initialization, or do we need to introduce some API equivalent to PQinitOpenSSL? 5) Does this maintenance tradeoff (full control over the client vs. a large amount of RFC-governed code) seem like it could be okay? Thanks, --Jacob --------------xs7WpnNbBecg3ku66YQMYG0Y Content-Type: text/plain; charset=UTF-8; name="since-v7.diff.txt" Content-Disposition: attachment; filename="since-v7.diff.txt" Content-Transfer-Encoding: base64 MTogIGMzNjk4YmJjM2QgPSAxOiAgNjQzNGQ5MDEwNSBjb21tb24vanNvbmFwaTogc3VwcG9y dCBGUk9OVEVORCBjbGllbnRzCjI6ICAwY2Q3MjZmZDU1IDwgLTogIC0tLS0tLS0tLS0gbGli cHE6IGFkZCBPQVVUSEJFQVJFUiBTQVNMIG1lY2hhbmlzbQotOiAgLS0tLS0tLS0tLSA+IDI6 ICAxM2RkZjJiNmIzIGxpYnBxOiBhZGQgT0FVVEhCRUFSRVIgU0FTTCBtZWNoYW5pc20KMzog IDc3ODg5ZWI5ODYgPSAzOiAgMGIwYjBmMmIzMyBiYWNrZW5kOiBhZGQgT0FVVEhCRUFSRVIg U0FTTCBtZWNoYW5pc20KNDogIDU3M2EyY2EzYmMgISA0OiAgMGU4ZGRhZGNiZiBBZGQgcHl0 ZXN0IHN1aXRlIGZvciBPQXV0aAogICAgQEAgQ29tbWl0IG1lc3NhZ2UKICAgICAgICAgZGVw ZW5kZW5jaWVzIHdpbGwgYmUgaW5zdGFsbGVkIGludG8gLi92ZW52IGZvciB5b3UuIFNlZSB0 aGUgUkVBRE1FIGZvcgogICAgICAgICBtb3JlIGRldGFpbHMuCiAgICAgCiAgICArICAgIEZv ciBpZGRhd2MsIGFzeW5jaHJvbm91cyB0ZXN0cyBzdGlsbCBoYW5nLCBhcyBleHBlY3RlZC4g QmFkLWludGVydmFsCiAgICArICAgIHRlc3RzIGZhaWwgYmVjYXVzZSBpZGRhd2MgYXBwYXJl bnRseSBkb2Vzbid0IGNhcmUgdGhhdCB0aGUgaW50ZXJ2YWwgaXMKICAgICsgICAgYmFkLgog ICAgKwogICAgICAjIyBzcmMvdGVzdC9weXRob24vLmdpdGlnbm9yZSAobmV3KSAjIwogICAg IEBACiAgICAgK19fcHljYWNoZV9fLwogICAgQEAgc3JjL3Rlc3QvcHl0aG9uL2NsaWVudC9j b25mdGVzdC5weSAobmV3KQogICAgICtpbXBvcnQgdGhyZWFkaW5nCiAgICAgKwogICAgICtp bXBvcnQgcHN5Y29wZzIKICAgICsraW1wb3J0IHBzeWNvcGcyLmV4dHJhcwogICAgICtpbXBv cnQgcHl0ZXN0CiAgICAgKwogICAgICtpbXBvcnQgcHEzCiAgICBAQCBzcmMvdGVzdC9weXRo b24vY2xpZW50L2NvbmZ0ZXN0LnB5IChuZXcpCiAgICAgKyAgICBkZWYgcnVuKHNlbGYpOgog ICAgICsgICAgICAgIHRyeToKICAgICArICAgICAgICAgICAgY29ubiA9IHBzeWNvcGcyLmNv bm5lY3QoaG9zdD0iMTI3LjAuMC4xIiwgKipzZWxmLl9rd2FyZ3MpCiAgICArKyAgICAgICAg ICAgIHNlbGYuX3B1bXBfYXN5bmMoY29ubikKICAgICArICAgICAgICAgICAgY29ubi5jbG9z ZSgpCiAgICAgKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICsgICAgICAg ICAgICBzZWxmLmV4Y2VwdGlvbiA9IGUKICAgIEBAIHNyYy90ZXN0L3B5dGhvbi9jbGllbnQv Y29uZnRlc3QucHkgKG5ldykKICAgICArICAgICAgICAgICAgc2VsZi5leGNlcHRpb24gPSBO b25lCiAgICAgKyAgICAgICAgICAgIHJhaXNlIGUKICAgICArCiAgICArKyAgICBkZWYgX3B1 bXBfYXN5bmMoc2VsZiwgY29ubik6CiAgICArKyAgICAgICAgIiIiCiAgICArKyAgICAgICAg UG9sbHMgYSBwc3ljb3BnMiBjb25uZWN0aW9uIHVudGlsIGl0J3MgY29tcGxldGVkLiAoU3lu Y2hyb25vdXMKICAgICsrICAgICAgICBjb25uZWN0aW9ucyB3aWxsIHdvcmsgaGVyZSB0b287 IHRoZXknbGwganVzdCBpbW1lZGlhdGVseSByZXR1cm4gT0suKQogICAgKysgICAgICAgICIi IgogICAgKysgICAgICAgIHBzeWNvcGcyLmV4dHJhcy53YWl0X3NlbGVjdChjb25uKQogICAg KysKICAgICArCiAgICAgK0BweXRlc3QuZml4dHVyZQogICAgICtkZWYgYWNjZXB0KHNlcnZl cl9zb2NrZXQpOgogICAgQEAgc3JjL3Rlc3QvcHl0aG9uL2NsaWVudC9jb25mdGVzdC5weSAo bmV3KQogICAgICsgICAgICAgIHJldHVybiBzb2NrLCBjbGllbnQKICAgICArCiAgICAgKyAg ICB5aWVsZCBmYWN0b3J5CiAgICAtKyAgICBjbGllbnQuY2hlY2tfY29tcGxldGVkKCkKICAg ICsrCiAgICArKyAgICBpZiBjbGllbnQgaXMgbm90IE5vbmU6CiAgICArKyAgICAgICAgY2xp ZW50LmNoZWNrX2NvbXBsZXRlZCgpCiAgICAgKwogICAgICsKICAgICArQHB5dGVzdC5maXh0 dXJlCiAgICBAQCBzcmMvdGVzdC9weXRob24vY2xpZW50L3Rlc3Rfb2F1dGgucHkgKG5ldykK ICAgICBAQAogICAgICsjCiAgICAgKyMgQ29weXJpZ2h0IDIwMjEgVk13YXJlLCBJbmMuCiAg ICArKyMgUG9ydGlvbnMgQ29weXJpZ2h0IDIwMjMgVGltZXNjYWxlLCBJbmMuCiAgICAgKyMg U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IFBvc3RncmVTUUwKICAgICArIwogICAgICsKICAg IEBAIHNyYy90ZXN0L3B5dGhvbi9jbGllbnQvdGVzdF9vYXV0aC5weSAobmV3KQogICAgICtp bXBvcnQgdGhyZWFkaW5nCiAgICAgK2ltcG9ydCB0aW1lCiAgICAgK2ltcG9ydCB1cmxsaWIu cGFyc2UKICAgICsrZnJvbSBudW1iZXJzIGltcG9ydCBOdW1iZXIKICAgICArCiAgICAgK2lt cG9ydCBwc3ljb3BnMgogICAgICtpbXBvcnQgcHl0ZXN0CiAgICBAQCBzcmMvdGVzdC9weXRo b24vY2xpZW50L3Rlc3Rfb2F1dGgucHkgKG5ldykKICAgICArICAgIGZpbmlzaF9oYW5kc2hh a2UoY29ubikKICAgICArCiAgICAgKwogICAgKytjbGFzcyBSYXdSZXNwb25zZShzdHIpOgog ICAgKysgICAgIiIiCiAgICArKyAgICBSZXR1cm5lZCBieSByZWdpc3RlcmVkIGVuZHBvaW50 IGNhbGxiYWNrcyB0byB0YWtlIGZ1bGwgY29udHJvbCBvZiB0aGUKICAgICsrICAgIHJlc3Bv bnNlLiBVc3VhbGx5LCByZXR1cm4gdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gSlNPTjsgYSBS YXdSZXNwb25zZSBib2R5CiAgICArKyAgICB3aWxsIGJlIHBhc3NlZCB0byB0aGUgY2xpZW50 IGFzLWlzLCBhbGxvd2luZyBlbmRwb2ludCBpbXBsZW1lbnRhdGlvbnMgdG8KICAgICsrICAg IGlzc3VlIGludmFsaWQgSlNPTi4KICAgICsrICAgICIiIgogICAgKysKICAgICsrICAgIHBh c3MKICAgICsrCiAgICArKwogICAgICtjbGFzcyBPcGVuSURQcm92aWRlcih0aHJlYWRpbmcu VGhyZWFkKToKICAgICArICAgICIiIgogICAgICsgICAgQSB0aHJlYWQgdGhhdCBydW5zIGEg bW9jayBPcGVuSUQgcHJvdmlkZXIgc2VydmVyLgogICAgQEAgc3JjL3Rlc3QvcHl0aG9uL2Ns aWVudC90ZXN0X29hdXRoLnB5IChuZXcpCiAgICAgKwogICAgICsgICAgZGVmIHJ1bihzZWxm KToKICAgICArICAgICAgICB0cnk6CiAgICAtKyAgICAgICAgICAgIHNlbGYuc2VydmVyLnNl cnZlX2ZvcmV2ZXIoKQogICAgKysgICAgICAgICAgICAjIFhYWCBzb2NrZXRzZXJ2ZXIuc2Vy dmVfZm9yZXZlcigpIGhhcyBhIHNlcmlvdXMgYXJjaGl0ZWN0dXJhbAogICAgKysgICAgICAg ICAgICAjIGlzc3VlOiBpdHMgc2VsZWN0IGxvb3Agd2FrZXMgdXAgZXZlcnkgYHBvbGxfaW50 ZXJ2YWxgIHNlY29uZHMgdG8KICAgICsrICAgICAgICAgICAgIyBzZWUgaWYgdGhlIHNlcnZl ciBpcyBzaHV0dGluZyBkb3duLiBUaGUgZGVmYXVsdCwgNTAwIG1zLCBvbmx5IGxldHMKICAg ICsrICAgICAgICAgICAgIyB1cyBydW4gdHdvIHRlc3RzIGV2ZXJ5IHNlY29uZC4gQnV0IHRo ZSBmYXN0ZXIgd2UgZ28sIHRoZSBtb3JlIENQVQogICAgKysgICAgICAgICAgICAjIHdlIGJ1 cm4gdW5uZWNlc3NhcmlseS4uLgogICAgKysgICAgICAgICAgICBzZWxmLnNlcnZlci5zZXJ2 ZV9mb3JldmVyKHBvbGxfaW50ZXJ2YWw9MC4wMSkKICAgICArICAgICAgICBleGNlcHQgRXhj ZXB0aW9uIGFzIGU6CiAgICAgKyAgICAgICAgICAgIHNlbGYuZXhjZXB0aW9uID0gZQogICAg ICsKICAgIEBAIHNyYy90ZXN0L3B5dGhvbi9jbGllbnQvdGVzdF9vYXV0aC5weSAobmV3KQog ICAgICsgICAgICAgICAgICBzZWxmLmVuZHBvaW50X3BhdGhzID0ge30KICAgICArICAgICAg ICAgICAgc2VsZi5fZW5kcG9pbnRzID0ge30KICAgICArCiAgICArKyAgICAgICAgICAgICMg UHJvdmlkZSBhIHN0YW5kYXJkIGRpc2NvdmVyeSBkb2N1bWVudCBieSBkZWZhdWx0OyB0ZXN0 cyBjYW4KICAgICsrICAgICAgICAgICAgIyBvdmVycmlkZSBpdC4KICAgICsrICAgICAgICAg ICAgc2VsZi5yZWdpc3Rlcl9lbmRwb2ludCgKICAgICsrICAgICAgICAgICAgICAgIE5vbmUs CiAgICArKyAgICAgICAgICAgICAgICAiR0VUIiwKICAgICsrICAgICAgICAgICAgICAgICIv LndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb24iLAogICAgKysgICAgICAgICAgICAg ICAgc2VsZi5fZGVmYXVsdF9kaXNjb3ZlcnlfaGFuZGxlciwKICAgICsrICAgICAgICAgICAg KQogICAgKysKICAgICArICAgICAgICBkZWYgcmVnaXN0ZXJfZW5kcG9pbnQoc2VsZiwgbmFt ZSwgbWV0aG9kLCBwYXRoLCBmdW5jKToKICAgICArICAgICAgICAgICAgaWYgbWV0aG9kIG5v dCBpbiBzZWxmLl9lbmRwb2ludHM6CiAgICAgKyAgICAgICAgICAgICAgICBzZWxmLl9lbmRw b2ludHNbbWV0aG9kXSA9IHt9CiAgICAgKwogICAgICsgICAgICAgICAgICBzZWxmLl9lbmRw b2ludHNbbWV0aG9kXVtwYXRoXSA9IGZ1bmMKICAgIC0rICAgICAgICAgICAgc2VsZi5lbmRw b2ludF9wYXRoc1tuYW1lXSA9IHBhdGgKICAgICsrCiAgICArKyAgICAgICAgICAgIGlmIG5h bWUgaXMgbm90IE5vbmU6CiAgICArKyAgICAgICAgICAgICAgICBzZWxmLmVuZHBvaW50X3Bh dGhzW25hbWVdID0gcGF0aAogICAgICsKICAgICArICAgICAgICBkZWYgZW5kcG9pbnQoc2Vs ZiwgbWV0aG9kLCBwYXRoKToKICAgICArICAgICAgICAgICAgaWYgbWV0aG9kIG5vdCBpbiBz ZWxmLl9lbmRwb2ludHM6CiAgICBAQCBzcmMvdGVzdC9weXRob24vY2xpZW50L3Rlc3Rfb2F1 dGgucHkgKG5ldykKICAgICArCiAgICAgKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9lbmRw b2ludHNbbWV0aG9kXS5nZXQocGF0aCkKICAgICArCiAgICArKyAgICAgICAgZGVmIF9kZWZh dWx0X2Rpc2NvdmVyeV9oYW5kbGVyKHNlbGYsIGhlYWRlcnMsIHBhcmFtcyk6CiAgICArKyAg ICAgICAgICAgIGRvYyA9IHsKICAgICsrICAgICAgICAgICAgICAgICJpc3N1ZXIiOiBzZWxm Lmlzc3VlciwKICAgICsrICAgICAgICAgICAgICAgICJyZXNwb25zZV90eXBlc19zdXBwb3J0 ZWQiOiBbInRva2VuIl0sCiAgICArKyAgICAgICAgICAgICAgICAic3ViamVjdF90eXBlc19z dXBwb3J0ZWQiOiBbInB1YmxpYyJdLAogICAgKysgICAgICAgICAgICAgICAgImlkX3Rva2Vu X3NpZ25pbmdfYWxnX3ZhbHVlc19zdXBwb3J0ZWQiOiBbIlJTMjU2Il0sCiAgICArKyAgICAg ICAgICAgICAgICAiZ3JhbnRfdHlwZXNfc3VwcG9ydGVkIjogWwogICAgKysgICAgICAgICAg ICAgICAgICAgICJ1cm46aWV0ZjpwYXJhbXM6b2F1dGg6Z3JhbnQtdHlwZTpkZXZpY2VfY29k ZSIKICAgICsrICAgICAgICAgICAgICAgIF0sCiAgICArKyAgICAgICAgICAgIH0KICAgICsr CiAgICArKyAgICAgICAgICAgIGZvciBuYW1lLCBwYXRoIGluIHNlbGYuZW5kcG9pbnRfcGF0 aHMuaXRlbXMoKToKICAgICsrICAgICAgICAgICAgICAgIGRvY1tuYW1lXSA9IHNlbGYuaXNz dWVyICsgcGF0aAogICAgKysKICAgICsrICAgICAgICAgICAgcmV0dXJuIDIwMCwgZG9jCiAg ICArKwogICAgICsgICAgY2xhc3MgX1NlcnZlcihodHRwLnNlcnZlci5IVFRQU2VydmVyKToK ICAgICArICAgICAgICBkZWYgaGFuZGxlX2Vycm9yKHNlbGYsIHJlcXVlc3QsIGFkZHIpOgog ICAgICsgICAgICAgICAgICBzZWxmLnNodXRkb3duX3JlcXVlc3QocmVxdWVzdCkKICAgIEBA IHNyYy90ZXN0L3B5dGhvbi9jbGllbnQvdGVzdF9vYXV0aC5weSAobmV3KQogICAgICsgICAg Y2xhc3MgX0hhbmRsZXIoaHR0cC5zZXJ2ZXIuQmFzZUhUVFBSZXF1ZXN0SGFuZGxlcik6CiAg ICAgKyAgICAgICAgdGltZW91dCA9IEJMT0NLSU5HX1RJTUVPVVQKICAgICArCiAgICAtKyAg ICAgICAgZGVmIF9kaXNjb3ZlcnlfaGFuZGxlcihzZWxmLCBoZWFkZXJzLCBwYXJhbXMpOgog ICAgLSsgICAgICAgICAgICBvYXV0aCA9IHNlbGYuc2VydmVyLm9hdXRoCiAgICAtKwogICAg LSsgICAgICAgICAgICBkb2MgPSB7CiAgICAtKyAgICAgICAgICAgICAgICAiaXNzdWVyIjog b2F1dGguaXNzdWVyLAogICAgLSsgICAgICAgICAgICAgICAgInJlc3BvbnNlX3R5cGVzX3N1 cHBvcnRlZCI6IFsidG9rZW4iXSwKICAgIC0rICAgICAgICAgICAgICAgICJzdWJqZWN0X3R5 cGVzX3N1cHBvcnRlZCI6IFsicHVibGljIl0sCiAgICAtKyAgICAgICAgICAgICAgICAiaWRf dG9rZW5fc2lnbmluZ19hbGdfdmFsdWVzX3N1cHBvcnRlZCI6IFsiUlMyNTYiXSwKICAgIC0r ICAgICAgICAgICAgfQogICAgLSsKICAgIC0rICAgICAgICAgICAgZm9yIG5hbWUsIHBhdGgg aW4gb2F1dGguZW5kcG9pbnRfcGF0aHMuaXRlbXMoKToKICAgIC0rICAgICAgICAgICAgICAg IGRvY1tuYW1lXSA9IG9hdXRoLmlzc3VlciArIHBhdGgKICAgIC0rCiAgICAtKyAgICAgICAg ICAgIHJldHVybiAyMDAsIGRvYwogICAgLSsKICAgICArICAgICAgICBkZWYgX2hhbmRsZShz ZWxmLCAqLCBwYXJhbXM9Tm9uZSwgaGFuZGxlcj1Ob25lKToKICAgICArICAgICAgICAgICAg b2F1dGggPSBzZWxmLnNlcnZlci5vYXV0aAogICAgICsgICAgICAgICAgICBhc3NlcnQgc2Vs Zi5oZWFkZXJzWyJIb3N0Il0gPT0gb2F1dGguaG9zdAogICAgQEAgc3JjL3Rlc3QvcHl0aG9u L2NsaWVudC90ZXN0X29hdXRoLnB5IChuZXcpCiAgICAgKyAgICAgICAgICAgICAgICAgICAg aGFuZGxlciBpcyBub3QgTm9uZQogICAgICsgICAgICAgICAgICAgICAgKSwgZiJubyByZWdp c3RlcmVkIGVuZHBvaW50IGZvciB7c2VsZi5jb21tYW5kfSB7c2VsZi5wYXRofSIKICAgICAr CiAgICAtKyAgICAgICAgICAgIGNvZGUsIHJlc3AgPSBoYW5kbGVyKHNlbGYuaGVhZGVycywg cGFyYW1zKQogICAgKysgICAgICAgICAgICByZXN1bHQgPSBoYW5kbGVyKHNlbGYuaGVhZGVy cywgcGFyYW1zKQogICAgKysKICAgICsrICAgICAgICAgICAgaWYgbGVuKHJlc3VsdCkgPT0g MjoKICAgICsrICAgICAgICAgICAgICAgIGhlYWRlcnMgPSB7IkNvbnRlbnQtVHlwZSI6ICJh cHBsaWNhdGlvbi9qc29uIn0KICAgICsrICAgICAgICAgICAgICAgIGNvZGUsIHJlc3AgPSBy ZXN1bHQKICAgICsrICAgICAgICAgICAgZWxzZToKICAgICsrICAgICAgICAgICAgICAgIGNv ZGUsIGhlYWRlcnMsIHJlc3AgPSByZXN1bHQKICAgICArCiAgICAgKyAgICAgICAgICAgIHNl bGYuc2VuZF9yZXNwb25zZShjb2RlKQogICAgLSsgICAgICAgICAgICBzZWxmLnNlbmRfaGVh ZGVyKCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vanNvbiIpCiAgICArKyAgICAgICAg ICAgIGZvciBoLCB2IGluIGhlYWRlcnMuaXRlbXMoKToKICAgICsrICAgICAgICAgICAgICAg IHNlbGYuc2VuZF9oZWFkZXIoaCwgdikKICAgICArICAgICAgICAgICAgc2VsZi5lbmRfaGVh ZGVycygpCiAgICAgKwogICAgLSsgICAgICAgICAgICByZXNwID0ganNvbi5kdW1wcyhyZXNw KQogICAgLSsgICAgICAgICAgICByZXNwID0gcmVzcC5lbmNvZGUoInV0Zi04IikKICAgIC0r ICAgICAgICAgICAgc2VsZi53ZmlsZS53cml0ZShyZXNwKQogICAgKysgICAgICAgICAgICBp ZiByZXNwIGlzIG5vdCBOb25lOgogICAgKysgICAgICAgICAgICAgICAgaWYgbm90IGlzaW5z dGFuY2UocmVzcCwgUmF3UmVzcG9uc2UpOgogICAgKysgICAgICAgICAgICAgICAgICAgIHJl c3AgPSBqc29uLmR1bXBzKHJlc3ApCiAgICArKyAgICAgICAgICAgICAgICByZXNwID0gcmVz cC5lbmNvZGUoInV0Zi04IikKICAgICsrICAgICAgICAgICAgICAgIHNlbGYud2ZpbGUud3Jp dGUocmVzcCkKICAgICArCiAgICAgKyAgICAgICAgICAgIHNlbGYuY2xvc2VfY29ubmVjdGlv biA9IFRydWUKICAgICArCiAgICAgKyAgICAgICAgZGVmIGRvX0dFVChzZWxmKToKICAgIC0r ICAgICAgICAgICAgaWYgc2VsZi5wYXRoID09ICIvLndlbGwta25vd24vb3BlbmlkLWNvbmZp Z3VyYXRpb24iOgogICAgLSsgICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlKGhhbmRsZXI9 c2VsZi5fZGlzY292ZXJ5X2hhbmRsZXIpCiAgICAtKyAgICAgICAgICAgICAgICByZXR1cm4K ICAgIC0rCiAgICAgKyAgICAgICAgICAgIHNlbGYuX2hhbmRsZSgpCiAgICAgKwogICAgICsg ICAgICAgIGRlZiBfcmVxdWVzdF9ib2R5KHNlbGYpOgogICAgQEAgc3JjL3Rlc3QvcHl0aG9u L2NsaWVudC90ZXN0X29hdXRoLnB5IChuZXcpCiAgICAgK0BweXRlc3QubWFyay5wYXJhbWV0 cml6ZSgic2VjcmV0IiwgW05vbmUsICIiLCAiaHVudGVyMiJdKQogICAgICtAcHl0ZXN0Lm1h cmsucGFyYW1ldHJpemUoInNjb3BlIiwgW05vbmUsICIiLCAib3BlbmlkIGVtYWlsIl0pCiAg ICAgK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgicmV0cmllcyIsIFswLCAxXSkKICAgICsr QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAogICAgKysgICAgImFzeW5jaHJvbm91cyIsCiAg ICArKyAgICBbCiAgICArKyAgICAgICAgcHl0ZXN0LnBhcmFtKEZhbHNlLCBpZD0ic3luY2hy b25vdXMiKSwKICAgICsrICAgICAgICBweXRlc3QucGFyYW0oVHJ1ZSwgaWQ9ImFzeW5jaHJv bm91cyIpLAogICAgKysgICAgXSwKICAgICsrKQogICAgICtkZWYgdGVzdF9vYXV0aF93aXRo X2V4cGxpY2l0X2lzc3VlcigKICAgIC0rICAgIGNhcGZkLCBhY2NlcHQsIG9wZW5pZF9wcm92 aWRlciwgcmV0cmllcywgc2NvcGUsIHNlY3JldAogICAgKysgICAgY2FwZmQsIGFjY2VwdCwg b3BlbmlkX3Byb3ZpZGVyLCBhc3luY2hyb25vdXMsIHJldHJpZXMsIHNjb3BlLCBzZWNyZXQK ICAgICArKToKICAgICArICAgIGNsaWVudF9pZCA9IHNlY3JldHMudG9rZW5faGV4KCkKICAg ICArCiAgICBAQCBzcmMvdGVzdC9weXRob24vY2xpZW50L3Rlc3Rfb2F1dGgucHkgKG5ldykK ICAgICArICAgICAgICBvYXV0aF9jbGllbnRfaWQ9Y2xpZW50X2lkLAogICAgICsgICAgICAg IG9hdXRoX2NsaWVudF9zZWNyZXQ9c2VjcmV0LAogICAgICsgICAgICAgIG9hdXRoX3Njb3Bl PXNjb3BlLAogICAgKysgICAgICAgIGFzeW5jXz1hc3luY2hyb25vdXMsCiAgICAgKyAgICAp CiAgICAgKwogICAgICsgICAgZGV2aWNlX2NvZGUgPSBzZWNyZXRzLnRva2VuX2hleCgpCiAg ICBAQCBzcmMvdGVzdC9weXRob24vY2xpZW50L3Rlc3Rfb2F1dGgucHkgKG5ldykKICAgICAr ICAgICAgICBhc3NlcnQgZXhwZWN0ZWQgaW4gc3RkZXJyCiAgICAgKwogICAgICsKICAgIC0r ZGVmIHRlc3Rfb2F1dGhfcmVxdWlyZXNfY2xpZW50X2lkKGFjY2VwdCwgb3BlbmlkX3Byb3Zp ZGVyKToKICAgIC0rICAgIHNvY2ssIGNsaWVudCA9IGFjY2VwdCgKICAgIC0rICAgICAgICBv YXV0aF9pc3N1ZXI9b3BlbmlkX3Byb3ZpZGVyLmlzc3VlciwKICAgIC0rICAgICAgICAjIERv IG5vdCBzZXQgYSBjbGllbnQgSUQ7IHRoaXMgc2hvdWxkIGNhdXNlIGEgY2xpZW50IGVycm9y IGFmdGVyIHRoZQogICAgLSsgICAgICAgICMgc2VydmVyIGFza3MgZm9yIE9BVVRIQkVBUkVS IGFuZCB0aGUgY2xpZW50IHRyaWVzIHRvIGNvbnRhY3QgdGhlCiAgICAtKyAgICAgICAgIyBp c3N1ZXIuCiAgICAtKyAgICApCiAgICAtKwogICAgKytkZWYgZXhwZWN0X2Rpc2Nvbm5lY3Rl ZF9oYW5kc2hha2Uoc29jayk6CiAgICArKyAgICAiIiIKICAgICsrICAgIEhlbHBlciBmb3Ig YW55IHRlc3RzIHRoYXQgZXhwZWN0IHRoZSBjbGllbnQgdG8gZGlzY29ubmVjdCBpbW1lZGlh dGVseSBhZnRlcgogICAgKysgICAgYmVpbmcgc2VudCB0aGUgT0FVVEhCRUFSRVIgU0FTTCBt ZXRob2QuIEdlbmVyYWxseSBzcGVha2luZywgdGhpcyByZXF1aXJlcwogICAgKysgICAgdGhl IGNsaWVudCB0byBoYXZlIGFuIG9hdXRoX2lzc3VlciBzZXQgc28gdGhhdCBpdCBkb2Vzbid0 IHRyeSB0byBnbyB0aHJvdWdoCiAgICArKyAgICBkaXNjb3ZlcnkuCiAgICArKyAgICAiIiIK ICAgICArICAgIHdpdGggc29jazoKICAgICArICAgICAgICB3aXRoIHBxMy53cmFwKHNvY2ss IGRlYnVnX3N0cmVhbT1zeXMuc3Rkb3V0KSBhcyBjb25uOgogICAgICsgICAgICAgICAgICAj IEluaXRpYXRlIGEgaGFuZHNoYWtlLgogICAgQEAgc3JjL3Rlc3QvcHl0aG9uL2NsaWVudC90 ZXN0X29hdXRoLnB5IChuZXcpCiAgICAgKyAgICAgICAgICAgICMgVGhlIGNsaWVudCBzaG91 bGQgZGlzY29ubmVjdCBhdCB0aGlzIHBvaW50LgogICAgICsgICAgICAgICAgICBhc3NlcnQg bm90IGNvbm4ucmVhZCgpCiAgICAgKwogICAgKysKICAgICsrZGVmIHRlc3Rfb2F1dGhfcmVx dWlyZXNfY2xpZW50X2lkKGFjY2VwdCwgb3BlbmlkX3Byb3ZpZGVyKToKICAgICsrICAgIHNv Y2ssIGNsaWVudCA9IGFjY2VwdCgKICAgICsrICAgICAgICBvYXV0aF9pc3N1ZXI9b3Blbmlk X3Byb3ZpZGVyLmlzc3VlciwKICAgICsrICAgICAgICAjIERvIG5vdCBzZXQgYSBjbGllbnQg SUQ7IHRoaXMgc2hvdWxkIGNhdXNlIGEgY2xpZW50IGVycm9yIGFmdGVyIHRoZQogICAgKysg ICAgICAgICMgc2VydmVyIGFza3MgZm9yIE9BVVRIQkVBUkVSIGFuZCB0aGUgY2xpZW50IHRy aWVzIHRvIGNvbnRhY3QgdGhlCiAgICArKyAgICAgICAgIyBpc3N1ZXIuCiAgICArKyAgICAp CiAgICArKwogICAgKysgICAgZXhwZWN0X2Rpc2Nvbm5lY3RlZF9oYW5kc2hha2Uoc29jaykK ICAgICsrCiAgICAgKyAgICBleHBlY3RlZF9lcnJvciA9ICJubyBvYXV0aF9jbGllbnRfaWQg aXMgc2V0IgogICAgICsgICAgd2l0aCBweXRlc3QucmFpc2VzKHBzeWNvcGcyLk9wZXJhdGlv bmFsRXJyb3IsIG1hdGNoPWV4cGVjdGVkX2Vycm9yKToKICAgICArICAgICAgICBjbGllbnQu Y2hlY2tfY29tcGxldGVkKCkKICAgIEBAIHNyYy90ZXN0L3B5dGhvbi9jbGllbnQvdGVzdF9v YXV0aC5weSAobmV3KQogICAgICsgICAgICAgICAgICBmaW5pc2hfaGFuZHNoYWtlKGNvbm4p CiAgICAgKwogICAgICsKICAgICsrZGVmIGFsdF9wYXR0ZXJucygqcGF0dGVybnMpOgogICAg KysgICAgIiIiCiAgICArKyAgICBKdXN0IGNvbWJpbmVzIG11bHRpcGxlIGFsdGVybmF0aXZl IHJlZ2V4ZXMgaW50byBvbmUuIEl0J3Mgbm90IHZlcnkgZWZmaWNpZW50CiAgICArKyAgICBi dXQgSU1PIGl0J3MgZWFzaWVyIHRvIHJlYWQgYW5kIG1haW50YWluLgogICAgKysgICAgIiIi CiAgICArKyAgICBwYXQgPSAiIgogICAgKysKICAgICsrICAgIGZvciBwIGluIHBhdHRlcm5z OgogICAgKysgICAgICAgIGlmIHBhdDoKICAgICsrICAgICAgICAgICAgcGF0ICs9ICJ8Igog ICAgKysgICAgICAgIHBhdCArPSBmIih7cH0pIgogICAgKysKICAgICsrICAgIHJldHVybiBw YXQKICAgICsrCiAgICArKwogICAgICtAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCiAgICAg KyAgICAiZmFpbHVyZV9tb2RlLCBlcnJvcl9wYXR0ZXJuIiwKICAgICArICAgIFsKICAgICAr ICAgICAgICBweXRlc3QucGFyYW0oCiAgICAtKyAgICAgICAgICAgIHsKICAgIC0rICAgICAg ICAgICAgICAgICJlcnJvciI6ICJpbnZhbGlkX2NsaWVudCIsCiAgICAtKyAgICAgICAgICAg ICAgICAiZXJyb3JfZGVzY3JpcHRpb24iOiAiY2xpZW50IGF1dGhlbnRpY2F0aW9uIGZhaWxl ZCIsCiAgICAtKyAgICAgICAgICAgIH0sCiAgICAtKyAgICAgICAgICAgIHIiY2xpZW50IGF1 dGhlbnRpY2F0aW9uIGZhaWxlZCBcKGludmFsaWRfY2xpZW50XCkiLAogICAgKysgICAgICAg ICAgICAoCiAgICArKyAgICAgICAgICAgICAgICA0MDAsCiAgICArKyAgICAgICAgICAgICAg ICB7CiAgICArKyAgICAgICAgICAgICAgICAgICAgImVycm9yIjogImludmFsaWRfY2xpZW50 IiwKICAgICsrICAgICAgICAgICAgICAgICAgICAiZXJyb3JfZGVzY3JpcHRpb24iOiAiY2xp ZW50IGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsCiAgICArKyAgICAgICAgICAgICAgICB9LAog ICAgKysgICAgICAgICAgICApLAogICAgKysgICAgICAgICAgICByImZhaWxlZCB0byBvYnRh aW4gZGV2aWNlIGF1dGhvcml6YXRpb246IGNsaWVudCBhdXRoZW50aWNhdGlvbiBmYWlsZWQg XChpbnZhbGlkX2NsaWVudFwpIiwKICAgICArICAgICAgICAgICAgaWQ9ImF1dGhlbnRpY2F0 aW9uIGZhaWx1cmUgd2l0aCBkZXNjcmlwdGlvbiIsCiAgICAgKyAgICAgICAgKSwKICAgICAr ICAgICAgICBweXRlc3QucGFyYW0oCiAgICAtKyAgICAgICAgICAgIHsiZXJyb3IiOiAiaW52 YWxpZF9yZXF1ZXN0In0sCiAgICAtKyAgICAgICAgICAgIHIiXChpbnZhbGlkX3JlcXVlc3Rc KSIsCiAgICArKyAgICAgICAgICAgICg0MDAsIHsiZXJyb3IiOiAiaW52YWxpZF9yZXF1ZXN0 In0pLAogICAgKysgICAgICAgICAgICByImZhaWxlZCB0byBvYnRhaW4gZGV2aWNlIGF1dGhv cml6YXRpb246IFwoaW52YWxpZF9yZXF1ZXN0XCkiLAogICAgICsgICAgICAgICAgICBpZD0i aW52YWxpZCByZXF1ZXN0IHdpdGhvdXQgZGVzY3JpcHRpb24iLAogICAgICsgICAgICAgICks CiAgICAgKyAgICAgICAgcHl0ZXN0LnBhcmFtKAogICAgLSsgICAgICAgICAgICB7fSwKICAg IC0rICAgICAgICAgICAgciJmYWlsZWQgdG8gb2J0YWluIGRldmljZSBhdXRob3JpemF0aW9u IiwKICAgICsrICAgICAgICAgICAgKDQwMCwge30pLAogICAgKysgICAgICAgICAgICBhbHRf cGF0dGVybnMoCiAgICArKyAgICAgICAgICAgICAgICByJ2ZhaWxlZCB0byBwYXJzZSB0b2tl biBlcnJvciByZXNwb25zZTogZmllbGQgImVycm9yIiBpcyBtaXNzaW5nJywKICAgICsrICAg ICAgICAgICAgICAgIHIiZmFpbGVkIHRvIG9idGFpbiBkZXZpY2UgYXV0aG9yaXphdGlvbjog XChpZGRhd2MgZXJyb3IgSV9FUlJPUl9QQVJBTVwpIiwKICAgICsrICAgICAgICAgICAgKSwK ICAgICArICAgICAgICAgICAgaWQ9ImJyb2tlbiBlcnJvciByZXNwb25zZSIsCiAgICAgKyAg ICAgICAgKSwKICAgICsrICAgICAgICBweXRlc3QucGFyYW0oCiAgICArKyAgICAgICAgICAg ICgyMDAsIFJhd1Jlc3BvbnNlKHIneyAiaW50ZXJ2YWwiOiAzLjUuOCB9JykpLAogICAgKysg ICAgICAgICAgICBhbHRfcGF0dGVybnMoCiAgICArKyAgICAgICAgICAgICAgICByImZhaWxl ZCB0byBwYXJzZSBkZXZpY2UgYXV0aG9yaXphdGlvbjogVG9rZW4gLiogaXMgaW52YWxpZCIs CiAgICArKyAgICAgICAgICAgICAgICByImZhaWxlZCB0byBvYnRhaW4gZGV2aWNlIGF1dGhv cml6YXRpb246IFwoaWRkYXdjIGVycm9yIElfRVJST1JcKSIsCiAgICArKyAgICAgICAgICAg ICksCiAgICArKyAgICAgICAgICAgIGlkPSJub24tbnVtZXJpYyBpbnRlcnZhbCIsCiAgICAr KyAgICAgICAgKSwKICAgICsrICAgICAgICBweXRlc3QucGFyYW0oCiAgICArKyAgICAgICAg ICAgICgyMDAsIFJhd1Jlc3BvbnNlKHIneyAiaW50ZXJ2YWwiOiAwOCB9JykpLAogICAgKysg ICAgICAgICAgICBhbHRfcGF0dGVybnMoCiAgICArKyAgICAgICAgICAgICAgICByImZhaWxl ZCB0byBwYXJzZSBkZXZpY2UgYXV0aG9yaXphdGlvbjogVG9rZW4gLiogaXMgaW52YWxpZCIs CiAgICArKyAgICAgICAgICAgICAgICByImZhaWxlZCB0byBvYnRhaW4gZGV2aWNlIGF1dGhv cml6YXRpb246IFwoaWRkYXdjIGVycm9yIElfRVJST1JcKSIsCiAgICArKyAgICAgICAgICAg ICksCiAgICArKyAgICAgICAgICAgIGlkPSJpbnZhbGlkIG51bWVyaWMgaW50ZXJ2YWwiLAog ICAgKysgICAgICAgICksCiAgICAgKyAgICBdLAogICAgICspCiAgICAgK2RlZiB0ZXN0X29h dXRoX2RldmljZV9hdXRob3JpemF0aW9uX2ZhaWx1cmVzKAogICAgQEAgc3JjL3Rlc3QvcHl0 aG9uL2NsaWVudC90ZXN0X29hdXRoLnB5IChuZXcpCiAgICAgKyAgICAjIGFueSB1bnByb3Rl Y3RlZCBzdGF0ZSBtdXRhdGlvbiBoZXJlLgogICAgICsKICAgICArICAgIGRlZiBhdXRob3Jp emF0aW9uX2VuZHBvaW50KGhlYWRlcnMsIHBhcmFtcyk6CiAgICAtKyAgICAgICAgcmV0dXJu IDQwMCwgZmFpbHVyZV9tb2RlCiAgICArKyAgICAgICAgcmV0dXJuIGZhaWx1cmVfbW9kZQog ICAgICsKICAgICArICAgIG9wZW5pZF9wcm92aWRlci5yZWdpc3Rlcl9lbmRwb2ludCgKICAg ICArICAgICAgICAiZGV2aWNlX2F1dGhvcml6YXRpb25fZW5kcG9pbnQiLCAiUE9TVCIsICIv ZGV2aWNlIiwgYXV0aG9yaXphdGlvbl9lbmRwb2ludAogICAgQEAgc3JjL3Rlc3QvcHl0aG9u L2NsaWVudC90ZXN0X29hdXRoLnB5IChuZXcpCiAgICAgKyAgICAgICAgInRva2VuX2VuZHBv aW50IiwgIlBPU1QiLCAiL3Rva2VuIiwgdG9rZW5fZW5kcG9pbnQKICAgICArICAgICkKICAg ICArCiAgICAtKyAgICB3aXRoIHNvY2s6CiAgICAtKyAgICAgICAgd2l0aCBwcTMud3JhcChz b2NrLCBkZWJ1Z19zdHJlYW09c3lzLnN0ZG91dCkgYXMgY29ubjoKICAgIC0rICAgICAgICAg ICAgIyBJbml0aWF0ZSBhIGhhbmRzaGFrZSwgd2hpY2ggc2hvdWxkIHJlc3VsdCBpbiB0aGUg YWJvdmUgZW5kcG9pbnRzCiAgICAtKyAgICAgICAgICAgICMgYmVpbmcgY2FsbGVkLgogICAg LSsgICAgICAgICAgICBzdGFydHVwID0gcHEzLnJlY3YxKGNvbm4sIGNscz1wcTMuU3RhcnR1 cCkKICAgIC0rICAgICAgICAgICAgYXNzZXJ0IHN0YXJ0dXAucHJvdG8gPT0gcHEzLnByb3Rv Y29sKDMsIDApCiAgICArKyAgICBleHBlY3RfZGlzY29ubmVjdGVkX2hhbmRzaGFrZShzb2Nr KQogICAgICsKICAgIC0rICAgICAgICAgICAgcHEzLnNlbmQoCiAgICAtKyAgICAgICAgICAg ICAgICBjb25uLAogICAgLSsgICAgICAgICAgICAgICAgcHEzLnR5cGVzLkF1dGhuUmVxdWVz dCwKICAgIC0rICAgICAgICAgICAgICAgIHR5cGU9cHEzLmF1dGhuLlNBU0wsCiAgICAtKyAg ICAgICAgICAgICAgICBib2R5PVtiIk9BVVRIQkVBUkVSIiwgYiIiXSwKICAgIC0rICAgICAg ICAgICAgKQogICAgKysgICAgIyBOb3cgbWFrZSBzdXJlIHRoZSBjbGllbnQgY29ycmVjdGx5 IGZhaWxlZC4KICAgICsrICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhwc3ljb3BnMi5PcGVyYXRp b25hbEVycm9yLCBtYXRjaD1lcnJvcl9wYXR0ZXJuKToKICAgICsrICAgICAgICBjbGllbnQu Y2hlY2tfY29tcGxldGVkKCkKICAgICArCiAgICAtKyAgICAgICAgICAgICMgVGhlIGNsaWVu dCBzaG91bGQgbm90IGNvbnRpbnVlIHRoZSBjb25uZWN0aW9uIGR1ZSB0byB0aGUgaGFyZGNv ZGVkCiAgICAtKyAgICAgICAgICAgICMgcHJvdmlkZXIgZmFpbHVyZTsgd2UgZGlzY29ubmVj dCBoZXJlLgogICAgKysKICAgICsrTWlzc2luZyA9IG9iamVjdCgpICAjIHNlbnRpbmVsIGZv ciB0ZXN0X29hdXRoX2RldmljZV9hdXRob3JpemF0aW9uX2JhZF9qc29uKCkKICAgICsrCiAg ICArKwogICAgKytAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCiAgICArKyAgICAiYmFkX3Zh bHVlIiwKICAgICsrICAgIFsKICAgICsrICAgICAgICBweXRlc3QucGFyYW0oeyJkZXZpY2Vf Y29kZSI6IDN9LCBpZD0ib2JqZWN0IiksCiAgICArKyAgICAgICAgcHl0ZXN0LnBhcmFtKFsx LCAyLCAzXSwgaWQ9ImFycmF5IiksCiAgICArKyAgICAgICAgcHl0ZXN0LnBhcmFtKCJzb21l IHN0cmluZyIsIGlkPSJzdHJpbmciKSwKICAgICsrICAgICAgICBweXRlc3QucGFyYW0oNCwg aWQ9Im51bWVyaWMiKSwKICAgICsrICAgICAgICBweXRlc3QucGFyYW0oRmFsc2UsIGlkPSJi b29sZWFuIiksCiAgICArKyAgICAgICAgcHl0ZXN0LnBhcmFtKE5vbmUsIGlkPSJudWxsIiks CiAgICArKyAgICAgICAgcHl0ZXN0LnBhcmFtKE1pc3NpbmcsIGlkPSJtaXNzaW5nIiksCiAg ICArKyAgICBdLAogICAgKyspCiAgICArK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKICAg ICsrICAgICJmaWVsZF9uYW1lLG9rX3R5cGUscmVxdWlyZWQiLAogICAgKysgICAgWwogICAg KysgICAgICAgICgiZGV2aWNlX2NvZGUiLCBzdHIsIFRydWUpLAogICAgKysgICAgICAgICgi dXNlcl9jb2RlIiwgc3RyLCBUcnVlKSwKICAgICsrICAgICAgICAoInZlcmlmaWNhdGlvbl91 cmkiLCBzdHIsIFRydWUpLAogICAgKysgICAgICAgICgiaW50ZXJ2YWwiLCBpbnQsIEZhbHNl KSwKICAgICsrICAgIF0sCiAgICArKykKICAgICsrZGVmIHRlc3Rfb2F1dGhfZGV2aWNlX2F1 dGhvcml6YXRpb25fYmFkX2pzb25fc2NoZW1hKAogICAgKysgICAgYWNjZXB0LCBvcGVuaWRf cHJvdmlkZXIsIGZpZWxkX25hbWUsIG9rX3R5cGUsIHJlcXVpcmVkLCBiYWRfdmFsdWUKICAg ICsrKToKICAgICsrICAgICMgVG8gbWFrZSB0aGUgdGVzdCBtYXRyaXggZWFzeSwganVzdCBz a2lwIHRoZSB0ZXN0cyB0aGF0IGFyZW4ndCBhY3R1YWxseQogICAgKysgICAgIyBpbnRlcmVz dGluZyAoZmllbGQgb2YgdGhlIGNvcnJlY3QgdHlwZSwgbWlzc2luZyBvcHRpb25hbCBmaWVs ZCkuCiAgICArKyAgICBpZiBiYWRfdmFsdWUgaXMgTWlzc2luZyBhbmQgbm90IHJlcXVpcmVk OgogICAgKysgICAgICAgIHB5dGVzdC5za2lwKCJub3QgaW50ZXJlc3Rpbmc6IG9wdGlvbmFs IGZpZWxkIikKICAgICsrICAgIGVsaWYgdHlwZShiYWRfdmFsdWUpID09IG9rX3R5cGU6ICAj IG5vdCBpc2luc3RhbmNlKCksIGJlY2F1c2UgYm9vbCBpcyBhbiBpbnQKICAgICsrICAgICAg ICBweXRlc3Quc2tpcCgibm90IGludGVyZXN0aW5nOiBjb3JyZWN0IHR5cGUiKQogICAgKysK ICAgICsrICAgIHNvY2ssIGNsaWVudCA9IGFjY2VwdCgKICAgICsrICAgICAgICBvYXV0aF9p c3N1ZXI9b3BlbmlkX3Byb3ZpZGVyLmlzc3VlciwKICAgICsrICAgICAgICBvYXV0aF9jbGll bnRfaWQ9c2VjcmV0cy50b2tlbl9oZXgoKSwKICAgICsrICAgICkKICAgICsrCiAgICArKyAg ICAjIFNldCB1cCBvdXIgcHJvdmlkZXIgY2FsbGJhY2tzLgogICAgKysgICAgIyBOT1RFIHRo YXQgdGhlc2UgY2FsbGJhY2tzIHdpbGwgYmUgY2FsbGVkIG9uIGEgYmFja2dyb3VuZCB0aHJl YWQuIERvbid0IGRvCiAgICArKyAgICAjIGFueSB1bnByb3RlY3RlZCBzdGF0ZSBtdXRhdGlv biBoZXJlLgogICAgKysKICAgICsrICAgIGRlZiBhdXRob3JpemF0aW9uX2VuZHBvaW50KGhl YWRlcnMsIHBhcmFtcyk6CiAgICArKyAgICAgICAgIyBCZWdpbiB3aXRoIGFuIGFjY2VwdGFi bGUgYmFzZSByZXNwb25zZS4uLgogICAgKysgICAgICAgIHJlc3AgPSB7CiAgICArKyAgICAg ICAgICAgICJkZXZpY2VfY29kZSI6ICJteS1kZXZpY2UtY29kZSIsCiAgICArKyAgICAgICAg ICAgICJ1c2VyX2NvZGUiOiAibXktdXNlci1jb2RlIiwKICAgICsrICAgICAgICAgICAgImlu dGVydmFsIjogMCwKICAgICsrICAgICAgICAgICAgInZlcmlmaWNhdGlvbl91cmkiOiAiaHR0 cHM6Ly9leGFtcGxlLmNvbSIsCiAgICArKyAgICAgICAgICAgICJleHBpcmVzX2luIjogNSwK ICAgICsrICAgICAgICB9CiAgICArKwogICAgKysgICAgICAgICMgLi4udGhlbiB0d2VhayBp dCBzbyB0aGUgY2xpZW50IGZhaWxzLgogICAgKysgICAgICAgIGlmIGJhZF92YWx1ZSBpcyBN aXNzaW5nOgogICAgKysgICAgICAgICAgICBkZWwgcmVzcFtmaWVsZF9uYW1lXQogICAgKysg ICAgICAgIGVsc2U6CiAgICArKyAgICAgICAgICAgIHJlc3BbZmllbGRfbmFtZV0gPSBiYWRf dmFsdWUKICAgICsrCiAgICArKyAgICAgICAgcmV0dXJuIDIwMCwgcmVzcAogICAgKysKICAg ICsrICAgIG9wZW5pZF9wcm92aWRlci5yZWdpc3Rlcl9lbmRwb2ludCgKICAgICsrICAgICAg ICAiZGV2aWNlX2F1dGhvcml6YXRpb25fZW5kcG9pbnQiLCAiUE9TVCIsICIvZGV2aWNlIiwg YXV0aG9yaXphdGlvbl9lbmRwb2ludAogICAgKysgICAgKQogICAgKysKICAgICsrICAgIGRl ZiB0b2tlbl9lbmRwb2ludChoZWFkZXJzLCBwYXJhbXMpOgogICAgKysgICAgICAgIGFzc2Vy dCBGYWxzZSwgInRva2VuIGVuZHBvaW50IHdhcyBpbnZva2VkIHVuZXhwZWN0ZWRseSIKICAg ICsrCiAgICArKyAgICBvcGVuaWRfcHJvdmlkZXIucmVnaXN0ZXJfZW5kcG9pbnQoCiAgICAr KyAgICAgICAgInRva2VuX2VuZHBvaW50IiwgIlBPU1QiLCAiL3Rva2VuIiwgdG9rZW5fZW5k cG9pbnQKICAgICsrICAgICkKICAgICsrCiAgICArKyAgICBleHBlY3RfZGlzY29ubmVjdGVk X2hhbmRzaGFrZShzb2NrKQogICAgICsKICAgICArICAgICMgTm93IG1ha2Ugc3VyZSB0aGUg Y2xpZW50IGNvcnJlY3RseSBmYWlsZWQuCiAgICArKyAgICBpZiBiYWRfdmFsdWUgaXMgTWlz c2luZzoKICAgICsrICAgICAgICBlcnJvcl9wYXR0ZXJuID0gZidmaWVsZCAie2ZpZWxkX25h bWV9IiBpcyBtaXNzaW5nJwogICAgKysgICAgZWxpZiBva190eXBlID09IHN0cjoKICAgICsr ICAgICAgICBlcnJvcl9wYXR0ZXJuID0gZidmaWVsZCAie2ZpZWxkX25hbWV9IiBtdXN0IGJl IGEgc3RyaW5nJwogICAgKysgICAgZWxpZiBva190eXBlID09IGludDoKICAgICsrICAgICAg ICBlcnJvcl9wYXR0ZXJuID0gZidmaWVsZCAie2ZpZWxkX25hbWV9IiBtdXN0IGJlIGEgbnVt YmVyJwogICAgKysgICAgZWxzZToKICAgICsrICAgICAgICBhc3NlcnQgRmFsc2UsICJ1cGRh dGUgZXJyb3JfcGF0dGVybiBmb3IgbmV3IGZhaWx1cmUgbW9kZSIKICAgICsrCiAgICArKyAg ICAjIFhYWCBpZGRhd2MgZG9lc24ndCByZWFsbHkgY2hlY2sgZm9yIHByb2JsZW1zIGluIHRo ZSBkZXZpY2UgYXV0aG9yaXphdGlvbgogICAgKysgICAgIyByZXNwb25zZSwgbGVhZGluZyB0 byB0aGlzIHBhdGNod29yazoKICAgICsrICAgIGlmIGZpZWxkX25hbWUgPT0gInZlcmlmaWNh dGlvbl91cmkiOgogICAgKysgICAgICAgIGVycm9yX3BhdHRlcm4gPSBhbHRfcGF0dGVybnMo CiAgICArKyAgICAgICAgICAgIGVycm9yX3BhdHRlcm4sCiAgICArKyAgICAgICAgICAgICJp c3N1ZXIgZGlkIG5vdCBwcm92aWRlIGEgdmVyaWZpY2F0aW9uIFVSSSIsCiAgICArKyAgICAg ICAgKQogICAgKysgICAgZWxpZiBmaWVsZF9uYW1lID09ICJ1c2VyX2NvZGUiOgogICAgKysg ICAgICAgIGVycm9yX3BhdHRlcm4gPSBhbHRfcGF0dGVybnMoCiAgICArKyAgICAgICAgICAg IGVycm9yX3BhdHRlcm4sCiAgICArKyAgICAgICAgICAgICJpc3N1ZXIgZGlkIG5vdCBwcm92 aWRlIGEgdXNlciBjb2RlIiwKICAgICsrICAgICAgICApCiAgICArKyAgICBlbHNlOgogICAg KysgICAgICAgIGVycm9yX3BhdHRlcm4gPSBhbHRfcGF0dGVybnMoCiAgICArKyAgICAgICAg ICAgIGVycm9yX3BhdHRlcm4sCiAgICArKyAgICAgICAgICAgIHIiZmFpbGVkIHRvIG9idGFp biBhY2Nlc3MgdG9rZW46IFwoaWRkYXdjIGVycm9yIElfRVJST1JfUEFSQU1cKSIsCiAgICAr KyAgICAgICAgKQogICAgKysKICAgICArICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhwc3ljb3Bn Mi5PcGVyYXRpb25hbEVycm9yLCBtYXRjaD1lcnJvcl9wYXR0ZXJuKToKICAgICArICAgICAg ICBjbGllbnQuY2hlY2tfY29tcGxldGVkKCkKICAgICArCiAgICBAQCBzcmMvdGVzdC9weXRo b24vY2xpZW50L3Rlc3Rfb2F1dGgucHkgKG5ldykKICAgICArICAgICJmYWlsdXJlX21vZGUs IGVycm9yX3BhdHRlcm4iLAogICAgICsgICAgWwogICAgICsgICAgICAgIHB5dGVzdC5wYXJh bSgKICAgIC0rICAgICAgICAgICAgewogICAgLSsgICAgICAgICAgICAgICAgImVycm9yIjog ImV4cGlyZWRfdG9rZW4iLAogICAgLSsgICAgICAgICAgICAgICAgImVycm9yX2Rlc2NyaXB0 aW9uIjogInRoZSBkZXZpY2UgY29kZSBoYXMgZXhwaXJlZCIsCiAgICAtKyAgICAgICAgICAg IH0sCiAgICAtKyAgICAgICAgICAgIHIidGhlIGRldmljZSBjb2RlIGhhcyBleHBpcmVkIFwo ZXhwaXJlZF90b2tlblwpIiwKICAgICsrICAgICAgICAgICAgKAogICAgKysgICAgICAgICAg ICAgICAgNDAwLAogICAgKysgICAgICAgICAgICAgICAgewogICAgKysgICAgICAgICAgICAg ICAgICAgICJlcnJvciI6ICJleHBpcmVkX3Rva2VuIiwKICAgICsrICAgICAgICAgICAgICAg ICAgICAiZXJyb3JfZGVzY3JpcHRpb24iOiAidGhlIGRldmljZSBjb2RlIGhhcyBleHBpcmVk IiwKICAgICsrICAgICAgICAgICAgICAgIH0sCiAgICArKyAgICAgICAgICAgICksCiAgICAr KyAgICAgICAgICAgIHIiZmFpbGVkIHRvIG9idGFpbiBhY2Nlc3MgdG9rZW46IHRoZSBkZXZp Y2UgY29kZSBoYXMgZXhwaXJlZCBcKGV4cGlyZWRfdG9rZW5cKSIsCiAgICAgKyAgICAgICAg ICAgIGlkPSJleHBpcmVkIHRva2VuIHdpdGggZGVzY3JpcHRpb24iLAogICAgICsgICAgICAg ICksCiAgICAgKyAgICAgICAgcHl0ZXN0LnBhcmFtKAogICAgLSsgICAgICAgICAgICB7ImVy cm9yIjogImFjY2Vzc19kZW5pZWQifSwKICAgIC0rICAgICAgICAgICAgciJcKGFjY2Vzc19k ZW5pZWRcKSIsCiAgICArKyAgICAgICAgICAgICg0MDAsIHsiZXJyb3IiOiAiYWNjZXNzX2Rl bmllZCJ9KSwKICAgICsrICAgICAgICAgICAgciJmYWlsZWQgdG8gb2J0YWluIGFjY2VzcyB0 b2tlbjogXChhY2Nlc3NfZGVuaWVkXCkiLAogICAgICsgICAgICAgICAgICBpZD0iYWNjZXNz IGRlbmllZCB3aXRob3V0IGRlc2NyaXB0aW9uIiwKICAgICArICAgICAgICApLAogICAgICsg ICAgICAgIHB5dGVzdC5wYXJhbSgKICAgIC0rICAgICAgICAgICAge30sCiAgICAtKyAgICAg ICAgICAgIHIiT0F1dGggdG9rZW4gcmV0cmlldmFsIGZhaWxlZCIsCiAgICAtKyAgICAgICAg ICAgIGlkPSJicm9rZW4gZXJyb3IgcmVzcG9uc2UiLAogICAgKysgICAgICAgICAgICAoNDAw LCB7fSksCiAgICArKyAgICAgICAgICAgIGFsdF9wYXR0ZXJucygKICAgICsrICAgICAgICAg ICAgICAgIHInZmFpbGVkIHRvIHBhcnNlIHRva2VuIGVycm9yIHJlc3BvbnNlOiBmaWVsZCAi ZXJyb3IiIGlzIG1pc3NpbmcnLAogICAgKysgICAgICAgICAgICAgICAgciJmYWlsZWQgdG8g b2J0YWluIGFjY2VzcyB0b2tlbjogXChpZGRhd2MgZXJyb3IgSV9FUlJPUl9QQVJBTVwpIiwK ICAgICsrICAgICAgICAgICAgKSwKICAgICsrICAgICAgICAgICAgaWQ9ImVtcHR5IGVycm9y IHJlc3BvbnNlIiwKICAgICsrICAgICAgICApLAogICAgKysgICAgICAgIHB5dGVzdC5wYXJh bSgKICAgICsrICAgICAgICAgICAgKDIwMCwge30sIHt9KSwKICAgICsrICAgICAgICAgICAg YWx0X3BhdHRlcm5zKAogICAgKysgICAgICAgICAgICAgICAgciJmYWlsZWQgdG8gcGFyc2Ug YWNjZXNzIHRva2VuIHJlc3BvbnNlOiBubyBjb250ZW50IHR5cGUgd2FzIHByb3ZpZGVkIiwK ICAgICsrICAgICAgICAgICAgICAgIHIiZmFpbGVkIHRvIG9idGFpbiBhY2Nlc3MgdG9rZW46 IFwoaWRkYXdjIGVycm9yIElfRVJST1JcKSIsCiAgICArKyAgICAgICAgICAgICksCiAgICAr KyAgICAgICAgICAgIGlkPSJtaXNzaW5nIGNvbnRlbnQgdHlwZSIsCiAgICArKyAgICAgICAg KSwKICAgICsrICAgICAgICBweXRlc3QucGFyYW0oCiAgICArKyAgICAgICAgICAgICgyMDAs IHsiQ29udGVudC1UeXBlIjogInRleHQvcGxhaW4ifSwge30pLAogICAgKysgICAgICAgICAg ICBhbHRfcGF0dGVybnMoCiAgICArKyAgICAgICAgICAgICAgICByImZhaWxlZCB0byBwYXJz ZSBhY2Nlc3MgdG9rZW4gcmVzcG9uc2U6IHVuZXhwZWN0ZWQgY29udGVudCB0eXBlIiwKICAg ICsrICAgICAgICAgICAgICAgIHIiZmFpbGVkIHRvIG9idGFpbiBhY2Nlc3MgdG9rZW46IFwo aWRkYXdjIGVycm9yIElfRVJST1JcKSIsCiAgICArKyAgICAgICAgICAgICksCiAgICArKyAg ICAgICAgICAgIGlkPSJ3cm9uZyBjb250ZW50IHR5cGUiLAogICAgICsgICAgICAgICksCiAg ICAgKyAgICBdLAogICAgICspCiAgICBAQCBzcmMvdGVzdC9weXRob24vY2xpZW50L3Rlc3Rf b2F1dGgucHkgKG5ldykKICAgICArICAgICkKICAgICArCiAgICAgKyAgICByZXRyeV9sb2Nr ID0gdGhyZWFkaW5nLkxvY2soKQogICAgKysgICAgZmluYWxfc2VudCA9IEZhbHNlCiAgICAg KwogICAgICsgICAgZGVmIHRva2VuX2VuZHBvaW50KGhlYWRlcnMsIHBhcmFtcyk6CiAgICAg KyAgICAgICAgd2l0aCByZXRyeV9sb2NrOgogICAgLSsgICAgICAgICAgICBub25sb2NhbCBy ZXRyaWVzCiAgICArKyAgICAgICAgICAgIG5vbmxvY2FsIHJldHJpZXMsIGZpbmFsX3NlbnQK ICAgICArCiAgICAgKyAgICAgICAgICAgICMgSWYgdGhlIHRlc3Qgd2FudHMgdG8gZm9yY2Ug dGhlIGNsaWVudCB0byByZXRyeSwgcmV0dXJuIGFuCiAgICAgKyAgICAgICAgICAgICMgYXV0 aG9yaXphdGlvbl9wZW5kaW5nIHJlc3BvbnNlIGFuZCBkZWNyZW1lbnQgdGhlIHJldHJ5IGNv dW50LgogICAgQEAgc3JjL3Rlc3QvcHl0aG9uL2NsaWVudC90ZXN0X29hdXRoLnB5IChuZXcp CiAgICAgKyAgICAgICAgICAgICAgICByZXRyaWVzIC09IDEKICAgICArICAgICAgICAgICAg ICAgIHJldHVybiA0MDAsIHsiZXJyb3IiOiAiYXV0aG9yaXphdGlvbl9wZW5kaW5nIn0KICAg ICArCiAgICAtKyAgICAgICAgcmV0dXJuIDQwMCwgZmFpbHVyZV9tb2RlCiAgICArKyAgICAg ICAgICAgICMgV2Ugc2hvdWxkIG9ubHkgcmV0dXJuIG91ciBmYWlsdXJlX21vZGUgcmVzcG9u c2Ugb25jZTsgYW55IGZ1cnRoZXIKICAgICsrICAgICAgICAgICAgIyByZXF1ZXN0cyBpbmRp Y2F0ZSB0aGF0IHRoZSBjbGllbnQgaXNuJ3QgY29ycmVjdGx5IGJhaWxpbmcgb3V0LgogICAg KysgICAgICAgICAgICBhc3NlcnQgbm90IGZpbmFsX3NlbnQsICJjbGllbnQgY29udGludWVk IGFmdGVyIHRva2VuIGVycm9yIgogICAgKysKICAgICsrICAgICAgICAgICAgZmluYWxfc2Vu dCA9IFRydWUKICAgICsrCiAgICArKyAgICAgICAgcmV0dXJuIGZhaWx1cmVfbW9kZQogICAg ICsKICAgICArICAgIG9wZW5pZF9wcm92aWRlci5yZWdpc3Rlcl9lbmRwb2ludCgKICAgICAr ICAgICAgICAidG9rZW5fZW5kcG9pbnQiLCAiUE9TVCIsICIvdG9rZW4iLCB0b2tlbl9lbmRw b2ludAogICAgICsgICAgKQogICAgICsKICAgIC0rICAgIHdpdGggc29jazoKICAgIC0rICAg ICAgICB3aXRoIHBxMy53cmFwKHNvY2ssIGRlYnVnX3N0cmVhbT1zeXMuc3Rkb3V0KSBhcyBj b25uOgogICAgLSsgICAgICAgICAgICAjIEluaXRpYXRlIGEgaGFuZHNoYWtlLCB3aGljaCBz aG91bGQgcmVzdWx0IGluIHRoZSBhYm92ZSBlbmRwb2ludHMKICAgIC0rICAgICAgICAgICAg IyBiZWluZyBjYWxsZWQuCiAgICAtKyAgICAgICAgICAgIHN0YXJ0dXAgPSBwcTMucmVjdjEo Y29ubiwgY2xzPXBxMy5TdGFydHVwKQogICAgLSsgICAgICAgICAgICBhc3NlcnQgc3RhcnR1 cC5wcm90byA9PSBwcTMucHJvdG9jb2woMywgMCkKICAgICsrICAgIGV4cGVjdF9kaXNjb25u ZWN0ZWRfaGFuZHNoYWtlKHNvY2spCiAgICAgKwogICAgLSsgICAgICAgICAgICBwcTMuc2Vu ZCgKICAgIC0rICAgICAgICAgICAgICAgIGNvbm4sCiAgICAtKyAgICAgICAgICAgICAgICBw cTMudHlwZXMuQXV0aG5SZXF1ZXN0LAogICAgLSsgICAgICAgICAgICAgICAgdHlwZT1wcTMu YXV0aG4uU0FTTCwKICAgIC0rICAgICAgICAgICAgICAgIGJvZHk9W2IiT0FVVEhCRUFSRVIi LCBiIiJdLAogICAgLSsgICAgICAgICAgICApCiAgICArKyAgICAjIE5vdyBtYWtlIHN1cmUg dGhlIGNsaWVudCBjb3JyZWN0bHkgZmFpbGVkLgogICAgKysgICAgd2l0aCBweXRlc3QucmFp c2VzKHBzeWNvcGcyLk9wZXJhdGlvbmFsRXJyb3IsIG1hdGNoPWVycm9yX3BhdHRlcm4pOgog ICAgKysgICAgICAgIGNsaWVudC5jaGVja19jb21wbGV0ZWQoKQogICAgICsKICAgIC0rICAg ICAgICAgICAgIyBUaGUgY2xpZW50IHNob3VsZCBub3QgY29udGludWUgdGhlIGNvbm5lY3Rp b24gZHVlIHRvIHRoZSBoYXJkY29kZWQKICAgIC0rICAgICAgICAgICAgIyBwcm92aWRlciBm YWlsdXJlOyB3ZSBkaXNjb25uZWN0IGhlcmUuCiAgICArKwogICAgKytAcHl0ZXN0Lm1hcmsu cGFyYW1ldHJpemUoCiAgICArKyAgICAiYmFkX3ZhbHVlIiwKICAgICsrICAgIFsKICAgICsr ICAgICAgICBweXRlc3QucGFyYW0oeyJkZXZpY2VfY29kZSI6IDN9LCBpZD0ib2JqZWN0Iiks CiAgICArKyAgICAgICAgcHl0ZXN0LnBhcmFtKFsxLCAyLCAzXSwgaWQ9ImFycmF5IiksCiAg ICArKyAgICAgICAgcHl0ZXN0LnBhcmFtKCJzb21lIHN0cmluZyIsIGlkPSJzdHJpbmciKSwK ICAgICsrICAgICAgICBweXRlc3QucGFyYW0oNCwgaWQ9Im51bWVyaWMiKSwKICAgICsrICAg ICAgICBweXRlc3QucGFyYW0oRmFsc2UsIGlkPSJib29sZWFuIiksCiAgICArKyAgICAgICAg cHl0ZXN0LnBhcmFtKE5vbmUsIGlkPSJudWxsIiksCiAgICArKyAgICAgICAgcHl0ZXN0LnBh cmFtKE1pc3NpbmcsIGlkPSJtaXNzaW5nIiksCiAgICArKyAgICBdLAogICAgKyspCiAgICAr K0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKICAgICsrICAgICJmaWVsZF9uYW1lLG9rX3R5 cGUscmVxdWlyZWQiLAogICAgKysgICAgWwogICAgKysgICAgICAgICgiYWNjZXNzX3Rva2Vu Iiwgc3RyLCBUcnVlKSwKICAgICsrICAgICAgICAoInRva2VuX3R5cGUiLCBzdHIsIFRydWUp LAogICAgKysgICAgXSwKICAgICsrKQogICAgKytkZWYgdGVzdF9vYXV0aF90b2tlbl9iYWRf anNvbl9zY2hlbWEoCiAgICArKyAgICBhY2NlcHQsIG9wZW5pZF9wcm92aWRlciwgZmllbGRf bmFtZSwgb2tfdHlwZSwgcmVxdWlyZWQsIGJhZF92YWx1ZQogICAgKyspOgogICAgKysgICAg IyBUbyBtYWtlIHRoZSB0ZXN0IG1hdHJpeCBlYXN5LCBqdXN0IHNraXAgdGhlIHRlc3RzIHRo YXQgYXJlbid0IGFjdHVhbGx5CiAgICArKyAgICAjIGludGVyZXN0aW5nIChmaWVsZCBvZiB0 aGUgY29ycmVjdCB0eXBlLCBtaXNzaW5nIG9wdGlvbmFsIGZpZWxkKS4KICAgICsrICAgIGlm IGJhZF92YWx1ZSBpcyBNaXNzaW5nIGFuZCBub3QgcmVxdWlyZWQ6CiAgICArKyAgICAgICAg cHl0ZXN0LnNraXAoIm5vdCBpbnRlcmVzdGluZzogb3B0aW9uYWwgZmllbGQiKQogICAgKysg ICAgZWxpZiB0eXBlKGJhZF92YWx1ZSkgPT0gb2tfdHlwZTogICMgbm90IGlzaW5zdGFuY2Uo KSwgYmVjYXVzZSBib29sIGlzIGFuIGludAogICAgKysgICAgICAgIHB5dGVzdC5za2lwKCJu b3QgaW50ZXJlc3Rpbmc6IGNvcnJlY3QgdHlwZSIpCiAgICArKwogICAgKysgICAgc29jaywg Y2xpZW50ID0gYWNjZXB0KAogICAgKysgICAgICAgIG9hdXRoX2lzc3Vlcj1vcGVuaWRfcHJv dmlkZXIuaXNzdWVyLAogICAgKysgICAgICAgIG9hdXRoX2NsaWVudF9pZD1zZWNyZXRzLnRv a2VuX2hleCgpLAogICAgKysgICAgKQogICAgKysKICAgICsrICAgICMgU2V0IHVwIG91ciBw cm92aWRlciBjYWxsYmFja3MuCiAgICArKyAgICAjIE5PVEUgdGhhdCB0aGVzZSBjYWxsYmFj a3Mgd2lsbCBiZSBjYWxsZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4gRG9uJ3QgZG8KICAg ICsrICAgICMgYW55IHVucHJvdGVjdGVkIHN0YXRlIG11dGF0aW9uIGhlcmUuCiAgICArKwog ICAgKysgICAgZGVmIGF1dGhvcml6YXRpb25fZW5kcG9pbnQoaGVhZGVycywgcGFyYW1zKToK ICAgICsrICAgICAgICByZXNwID0gewogICAgKysgICAgICAgICAgICAiZGV2aWNlX2NvZGUi OiAibXktZGV2aWNlLWNvZGUiLAogICAgKysgICAgICAgICAgICAidXNlcl9jb2RlIjogIm15 LXVzZXItY29kZSIsCiAgICArKyAgICAgICAgICAgICJpbnRlcnZhbCI6IDAsCiAgICArKyAg ICAgICAgICAgICJ2ZXJpZmljYXRpb25fdXJpIjogImh0dHBzOi8vZXhhbXBsZS5jb20iLAog ICAgKysgICAgICAgICAgICAiZXhwaXJlc19pbiI6IDUsCiAgICArKyAgICAgICAgfQogICAg KysKICAgICsrICAgICAgICByZXR1cm4gMjAwLCByZXNwCiAgICArKwogICAgKysgICAgb3Bl bmlkX3Byb3ZpZGVyLnJlZ2lzdGVyX2VuZHBvaW50KAogICAgKysgICAgICAgICJkZXZpY2Vf YXV0aG9yaXphdGlvbl9lbmRwb2ludCIsICJQT1NUIiwgIi9kZXZpY2UiLCBhdXRob3JpemF0 aW9uX2VuZHBvaW50CiAgICArKyAgICApCiAgICArKwogICAgKysgICAgZGVmIHRva2VuX2Vu ZHBvaW50KGhlYWRlcnMsIHBhcmFtcyk6CiAgICArKyAgICAgICAgIyBCZWdpbiB3aXRoIGFu IGFjY2VwdGFibGUgYmFzZSByZXNwb25zZS4uLgogICAgKysgICAgICAgIHJlc3AgPSB7CiAg ICArKyAgICAgICAgICAgICJhY2Nlc3NfdG9rZW4iOiBzZWNyZXRzLnRva2VuX3VybHNhZmUo KSwKICAgICsrICAgICAgICAgICAgInRva2VuX3R5cGUiOiAiYmVhcmVyIiwKICAgICsrICAg ICAgICB9CiAgICArKwogICAgKysgICAgICAgICMgLi4udGhlbiB0d2VhayBpdCBzbyB0aGUg Y2xpZW50IGZhaWxzLgogICAgKysgICAgICAgIGlmIGJhZF92YWx1ZSBpcyBNaXNzaW5nOgog ICAgKysgICAgICAgICAgICBkZWwgcmVzcFtmaWVsZF9uYW1lXQogICAgKysgICAgICAgIGVs c2U6CiAgICArKyAgICAgICAgICAgIHJlc3BbZmllbGRfbmFtZV0gPSBiYWRfdmFsdWUKICAg ICsrCiAgICArKyAgICAgICAgcmV0dXJuIDIwMCwgcmVzcAogICAgKysKICAgICsrICAgIG9w ZW5pZF9wcm92aWRlci5yZWdpc3Rlcl9lbmRwb2ludCgKICAgICsrICAgICAgICAidG9rZW5f ZW5kcG9pbnQiLCAiUE9TVCIsICIvdG9rZW4iLCB0b2tlbl9lbmRwb2ludAogICAgKysgICAg KQogICAgKysKICAgICsrICAgIGV4cGVjdF9kaXNjb25uZWN0ZWRfaGFuZHNoYWtlKHNvY2sp CiAgICAgKwogICAgICsgICAgIyBOb3cgbWFrZSBzdXJlIHRoZSBjbGllbnQgY29ycmVjdGx5 IGZhaWxlZC4KICAgICsrICAgIGVycm9yX3BhdHRlcm4gPSAiZmFpbGVkIHRvIHBhcnNlIGFj Y2VzcyB0b2tlbiByZXNwb25zZTogIgogICAgKysgICAgaWYgYmFkX3ZhbHVlIGlzIE1pc3Np bmc6CiAgICArKyAgICAgICAgZXJyb3JfcGF0dGVybiArPSBmJ2ZpZWxkICJ7ZmllbGRfbmFt ZX0iIGlzIG1pc3NpbmcnCiAgICArKyAgICBlbGlmIG9rX3R5cGUgPT0gc3RyOgogICAgKysg ICAgICAgIGVycm9yX3BhdHRlcm4gKz0gZidmaWVsZCAie2ZpZWxkX25hbWV9IiBtdXN0IGJl IGEgc3RyaW5nJwogICAgKysgICAgZWxpZiBva190eXBlID09IGludDoKICAgICsrICAgICAg ICBlcnJvcl9wYXR0ZXJuICs9IGYnZmllbGQgIntmaWVsZF9uYW1lfSIgbXVzdCBiZSBhIG51 bWJlcicKICAgICsrICAgIGVsc2U6CiAgICArKyAgICAgICAgYXNzZXJ0IEZhbHNlLCAidXBk YXRlIGVycm9yX3BhdHRlcm4gZm9yIG5ldyBmYWlsdXJlIG1vZGUiCiAgICArKwogICAgKysg ICAgIyBYWFggaWRkYXdjIGlzIGZhaXJseSBzaWxlbnQgb24gdGhlIHRvcGljLgogICAgKysg ICAgZXJyb3JfcGF0dGVybiA9IGFsdF9wYXR0ZXJucygKICAgICsrICAgICAgICBlcnJvcl9w YXR0ZXJuLAogICAgKysgICAgICAgIHIiZmFpbGVkIHRvIG9idGFpbiBhY2Nlc3MgdG9rZW46 IFwoaWRkYXdjIGVycm9yIElfRVJST1JfUEFSQU1cKSIsCiAgICArKyAgICApCiAgICArKwog ICAgICsgICAgd2l0aCBweXRlc3QucmFpc2VzKHBzeWNvcGcyLk9wZXJhdGlvbmFsRXJyb3Is IG1hdGNoPWVycm9yX3BhdHRlcm4pOgogICAgICsgICAgICAgIGNsaWVudC5jaGVja19jb21w bGV0ZWQoKQogICAgICsKICAgIEBAIHNyYy90ZXN0L3B5dGhvbi9jbGllbnQvdGVzdF9vYXV0 aC5weSAobmV3KQogICAgICsKICAgICArCiAgICAgK0BweXRlc3QubWFyay5wYXJhbWV0cml6 ZSgKICAgICsrICAgICJiYWRfcmVzcG9uc2UsZXhwZWN0ZWRfZXJyb3IiLAogICAgKysgICAg WwogICAgKysgICAgICAgIHB5dGVzdC5wYXJhbSgKICAgICsrICAgICAgICAgICAgKDIwMCwg eyJDb250ZW50LVR5cGUiOiAidGV4dC9wbGFpbiJ9LCB7fSksCiAgICArKyAgICAgICAgICAg IHInZmFpbGVkIHRvIHBhcnNlIE9wZW5JRCBkaXNjb3ZlcnkgZG9jdW1lbnQ6IHVuZXhwZWN0 ZWQgY29udGVudCB0eXBlICJ0ZXh0L3BsYWluIicsCiAgICArKyAgICAgICAgICAgIGlkPSJu b3QgSlNPTiIsCiAgICArKyAgICAgICAgKSwKICAgICsrICAgICAgICBweXRlc3QucGFyYW0o CiAgICArKyAgICAgICAgICAgICgyMDAsIHt9LCB7fSksCiAgICArKyAgICAgICAgICAgIHIi ZmFpbGVkIHRvIHBhcnNlIE9wZW5JRCBkaXNjb3ZlcnkgZG9jdW1lbnQ6IG5vIGNvbnRlbnQg dHlwZSB3YXMgcHJvdmlkZWQiLAogICAgKysgICAgICAgICAgICBpZD0ibm8gQ29udGVudC1U eXBlIiwKICAgICsrICAgICAgICApLAogICAgKysgICAgICAgIHB5dGVzdC5wYXJhbSgKICAg ICsrICAgICAgICAgICAgKDIwNCwge30sIE5vbmUpLAogICAgKysgICAgICAgICAgICByImZh aWxlZCB0byBmZXRjaCBPcGVuSUQgZGlzY292ZXJ5IGRvY3VtZW50OiB1bmV4cGVjdGVkIHJl c3BvbnNlIGNvZGUgMjA0IiwKICAgICsrICAgICAgICAgICAgaWQ9Im5vIGNvbnRlbnQiLAog ICAgKysgICAgICAgICksCiAgICArKyAgICAgICAgcHl0ZXN0LnBhcmFtKAogICAgKysgICAg ICAgICAgICAoMzAxLCB7IkxvY2F0aW9uIjogImh0dHBzOi8vbG9jYWxob3N0LyJ9LCBOb25l KSwKICAgICsrICAgICAgICAgICAgciJmYWlsZWQgdG8gZmV0Y2ggT3BlbklEIGRpc2NvdmVy eSBkb2N1bWVudDogdW5leHBlY3RlZCByZXNwb25zZSBjb2RlIDMwMSIsCiAgICArKyAgICAg ICAgICAgIGlkPSJyZWRpcmVjdGlvbiIsCiAgICArKyAgICAgICAgKSwKICAgICsrICAgICAg ICBweXRlc3QucGFyYW0oCiAgICArKyAgICAgICAgICAgICg0MDQsIHt9KSwKICAgICsrICAg ICAgICAgICAgciJmYWlsZWQgdG8gZmV0Y2ggT3BlbklEIGRpc2NvdmVyeSBkb2N1bWVudDog dW5leHBlY3RlZCByZXNwb25zZSBjb2RlIDQwNCIsCiAgICArKyAgICAgICAgICAgIGlkPSJu b3QgZm91bmQiLAogICAgKysgICAgICAgICksCiAgICArKyAgICAgICAgcHl0ZXN0LnBhcmFt KAogICAgKysgICAgICAgICAgICAoMjAwLCBSYXdSZXNwb25zZSgiYmxhaFx4MDBibGFoIikp LAogICAgKysgICAgICAgICAgICByImZhaWxlZCB0byBwYXJzZSBPcGVuSUQgZGlzY292ZXJ5 IGRvY3VtZW50OiByZXNwb25zZSBjb250YWlucyBlbWJlZGRlZCBOVUxMcyIsCiAgICArKyAg ICAgICAgICAgIGlkPSJOVUxMIGJ5dGVzIGluIGRvY3VtZW50IiwKICAgICsrICAgICAgICAp LAogICAgKysgICAgICAgIHB5dGVzdC5wYXJhbSgKICAgICsrICAgICAgICAgICAgKDIwMCwg MTIzKSwKICAgICsrICAgICAgICAgICAgciJmYWlsZWQgdG8gcGFyc2UgT3BlbklEIGRpc2Nv dmVyeSBkb2N1bWVudDogdG9wLWxldmVsIGVsZW1lbnQgbXVzdCBiZSBhbiBvYmplY3QiLAog ICAgKysgICAgICAgICAgICBpZD0ic2NhbGFyIGF0IHRvcCBsZXZlbCIsCiAgICArKyAgICAg ICAgKSwKICAgICsrICAgICAgICBweXRlc3QucGFyYW0oCiAgICArKyAgICAgICAgICAgICgy MDAsIFtdKSwKICAgICsrICAgICAgICAgICAgciJmYWlsZWQgdG8gcGFyc2UgT3BlbklEIGRp c2NvdmVyeSBkb2N1bWVudDogdG9wLWxldmVsIGVsZW1lbnQgbXVzdCBiZSBhbiBvYmplY3Qi LAogICAgKysgICAgICAgICAgICBpZD0iYXJyYXkgYXQgdG9wIGxldmVsIiwKICAgICsrICAg ICAgICApLAogICAgKysgICAgICAgIHB5dGVzdC5wYXJhbSgKICAgICsrICAgICAgICAgICAg KDIwMCwgUmF3UmVzcG9uc2UoInsiKSksCiAgICArKyAgICAgICAgICAgIHIiZmFpbGVkIHRv IHBhcnNlIE9wZW5JRCBkaXNjb3ZlcnkgZG9jdW1lbnQuKiBpbnB1dCBzdHJpbmcgZW5kZWQg dW5leHBlY3RlZGx5IiwKICAgICsrICAgICAgICAgICAgaWQ9InVuY2xvc2VkIG9iamVjdCIs CiAgICArKyAgICAgICAgKSwKICAgICsrICAgICAgICBweXRlc3QucGFyYW0oCiAgICArKyAg ICAgICAgICAgICgyMDAsIFJhd1Jlc3BvbnNlKHIneyAiaGVsbG8iOiBdIH0nKSksCiAgICAr KyAgICAgICAgICAgIHIiZmFpbGVkIHRvIHBhcnNlIE9wZW5JRCBkaXNjb3ZlcnkgZG9jdW1l bnQuKiBFeHBlY3RlZCBKU09OIHZhbHVlIiwKICAgICsrICAgICAgICAgICAgaWQ9ImJhZCBh cnJheSIsCiAgICArKyAgICAgICAgKSwKICAgICsrICAgICAgICBweXRlc3QucGFyYW0oCiAg ICArKyAgICAgICAgICAgICgyMDAsIHsiaXNzdWVyIjogMTIzfSksCiAgICArKyAgICAgICAg ICAgIHInZmFpbGVkIHRvIHBhcnNlIE9wZW5JRCBkaXNjb3ZlcnkgZG9jdW1lbnQ6IGZpZWxk ICJpc3N1ZXIiIG11c3QgYmUgYSBzdHJpbmcnLAogICAgKysgICAgICAgICAgICBpZD0ibm9u LXN0cmluZyBpc3N1ZXIiLAogICAgKysgICAgICAgICksCiAgICArKyAgICAgICAgcHl0ZXN0 LnBhcmFtKAogICAgKysgICAgICAgICAgICAoMjAwLCB7Imlzc3VlciI6IFsic29tZXRoaW5n Il19KSwKICAgICsrICAgICAgICAgICAgcidmYWlsZWQgdG8gcGFyc2UgT3BlbklEIGRpc2Nv dmVyeSBkb2N1bWVudDogZmllbGQgImlzc3VlciIgbXVzdCBiZSBhIHN0cmluZycsCiAgICAr KyAgICAgICAgICAgIGlkPSJpc3N1ZXIgYXJyYXkiLAogICAgKysgICAgICAgICksCiAgICAr KyAgICAgICAgcHl0ZXN0LnBhcmFtKAogICAgKysgICAgICAgICAgICAoMjAwLCB7Imlzc3Vl ciI6IHt9fSksCiAgICArKyAgICAgICAgICAgIHInZmFpbGVkIHRvIHBhcnNlIE9wZW5JRCBk aXNjb3ZlcnkgZG9jdW1lbnQ6IGZpZWxkICJpc3N1ZXIiIG11c3QgYmUgYSBzdHJpbmcnLAog ICAgKysgICAgICAgICAgICBpZD0iaXNzdWVyIG9iamVjdCIsCiAgICArKyAgICAgICAgKSwK ICAgICsrICAgICAgICBweXRlc3QucGFyYW0oCiAgICArKyAgICAgICAgICAgICgyMDAsIHsi Z3JhbnRfdHlwZXNfc3VwcG9ydGVkIjogMTIzfSksCiAgICArKyAgICAgICAgICAgIHInZmFp bGVkIHRvIHBhcnNlIE9wZW5JRCBkaXNjb3ZlcnkgZG9jdW1lbnQ6IGZpZWxkICJncmFudF90 eXBlc19zdXBwb3J0ZWQiIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncycsCiAgICArKyAg ICAgICAgICAgIGlkPSJzY2FsYXIgZ3JhbnQgdHlwZXMgZmllbGQiLAogICAgKysgICAgICAg ICksCiAgICArKyAgICAgICAgcHl0ZXN0LnBhcmFtKAogICAgKysgICAgICAgICAgICAoMjAw LCB7ImdyYW50X3R5cGVzX3N1cHBvcnRlZCI6IHt9fSksCiAgICArKyAgICAgICAgICAgIHIn ZmFpbGVkIHRvIHBhcnNlIE9wZW5JRCBkaXNjb3ZlcnkgZG9jdW1lbnQ6IGZpZWxkICJncmFu dF90eXBlc19zdXBwb3J0ZWQiIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncycsCiAgICAr KyAgICAgICAgICAgIGlkPSJvYmplY3QgZ3JhbnQgdHlwZXMgZmllbGQiLAogICAgKysgICAg ICAgICksCiAgICArKyAgICAgICAgcHl0ZXN0LnBhcmFtKAogICAgKysgICAgICAgICAgICAo MjAwLCB7ImdyYW50X3R5cGVzX3N1cHBvcnRlZCI6IFsxMjNdfSksCiAgICArKyAgICAgICAg ICAgIHInZmFpbGVkIHRvIHBhcnNlIE9wZW5JRCBkaXNjb3ZlcnkgZG9jdW1lbnQ6IGZpZWxk ICJncmFudF90eXBlc19zdXBwb3J0ZWQiIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncycs CiAgICArKyAgICAgICAgICAgIGlkPSJub24tc3RyaW5nIGdyYW50IHR5cGVzIiwKICAgICsr ICAgICAgICApLAogICAgKysgICAgICAgIHB5dGVzdC5wYXJhbSgKICAgICsrICAgICAgICAg ICAgKDIwMCwgeyJncmFudF90eXBlc19zdXBwb3J0ZWQiOiBbInNvbWV0aGluZyIsIDEyM119 KSwKICAgICsrICAgICAgICAgICAgcidmYWlsZWQgdG8gcGFyc2UgT3BlbklEIGRpc2NvdmVy eSBkb2N1bWVudDogZmllbGQgImdyYW50X3R5cGVzX3N1cHBvcnRlZCIgbXVzdCBiZSBhbiBh cnJheSBvZiBzdHJpbmdzJywKICAgICsrICAgICAgICAgICAgaWQ9Im5vbi1zdHJpbmcgZ3Jh bnQgdHlwZXMgbGF0ZXIgaW4gdGhlIGxpc3QiLAogICAgKysgICAgICAgICksCiAgICArKyAg ICAgICAgcHl0ZXN0LnBhcmFtKAogICAgKysgICAgICAgICAgICAoMjAwLCB7ImdyYW50X3R5 cGVzX3N1cHBvcnRlZCI6IFsic29tZXRoaW5nIiwge31dfSksCiAgICArKyAgICAgICAgICAg IHInZmFpbGVkIHRvIHBhcnNlIE9wZW5JRCBkaXNjb3ZlcnkgZG9jdW1lbnQ6IGZpZWxkICJn cmFudF90eXBlc19zdXBwb3J0ZWQiIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncycsCiAg ICArKyAgICAgICAgICAgIGlkPSJvYmplY3QgZ3JhbnQgdHlwZXMgbGF0ZXIgaW4gdGhlIGxp c3QiLAogICAgKysgICAgICAgICksCiAgICArKyAgICAgICAgcHl0ZXN0LnBhcmFtKAogICAg KysgICAgICAgICAgICAoMjAwLCB7ImdyYW50X3R5cGVzX3N1cHBvcnRlZCI6IFsic29tZXRo aW5nIiwgWyJzb21ldGhpbmciXV19KSwKICAgICsrICAgICAgICAgICAgcidmYWlsZWQgdG8g cGFyc2UgT3BlbklEIGRpc2NvdmVyeSBkb2N1bWVudDogZmllbGQgImdyYW50X3R5cGVzX3N1 cHBvcnRlZCIgbXVzdCBiZSBhbiBhcnJheSBvZiBzdHJpbmdzJywKICAgICsrICAgICAgICAg ICAgaWQ9ImVtYmVkZGVkIGFycmF5IGdyYW50IHR5cGVzIGxhdGVyIGluIHRoZSBsaXN0IiwK ICAgICsrICAgICAgICApLAogICAgKysgICAgICAgIHB5dGVzdC5wYXJhbSgKICAgICsrICAg ICAgICAgICAgKAogICAgKysgICAgICAgICAgICAgICAgMjAwLAogICAgKysgICAgICAgICAg ICAgICAgewogICAgKysgICAgICAgICAgICAgICAgICAgICJncmFudF90eXBlc19zdXBwb3J0 ZWQiOiBbInNvbWV0aGluZyJdLAogICAgKysgICAgICAgICAgICAgICAgICAgICJ0b2tlbl9l bmRwb2ludCI6ICJodHRwczovL2V4YW1wbGUuY29tLyIsCiAgICArKyAgICAgICAgICAgICAg ICAgICAgImlzc3VlciI6IDEyMywKICAgICsrICAgICAgICAgICAgICAgIH0sCiAgICArKyAg ICAgICAgICAgICksCiAgICArKyAgICAgICAgICAgIHInZmFpbGVkIHRvIHBhcnNlIE9wZW5J RCBkaXNjb3ZlcnkgZG9jdW1lbnQ6IGZpZWxkICJpc3N1ZXIiIG11c3QgYmUgYSBzdHJpbmcn LAogICAgKysgICAgICAgICAgICBpZD0ibm9uLXN0cmluZyBpc3N1ZXIgYWZ0ZXIgb3RoZXIg dmFsaWQgZmllbGRzIiwKICAgICsrICAgICAgICApLAogICAgKysgICAgICAgIHB5dGVzdC5w YXJhbSgKICAgICsrICAgICAgICAgICAgKAogICAgKysgICAgICAgICAgICAgICAgMjAwLAog ICAgKysgICAgICAgICAgICAgICAgewogICAgKysgICAgICAgICAgICAgICAgICAgICJpZ25v cmVkIjogeyJncmFudF90eXBlc19zdXBwb3J0ZWQiOiAxMjMsICJ0b2tlbl9lbmRwb2ludCI6 IDEyM30sCiAgICArKyAgICAgICAgICAgICAgICAgICAgImlzc3VlciI6IDEyMywKICAgICsr ICAgICAgICAgICAgICAgIH0sCiAgICArKyAgICAgICAgICAgICksCiAgICArKyAgICAgICAg ICAgIHInZmFpbGVkIHRvIHBhcnNlIE9wZW5JRCBkaXNjb3ZlcnkgZG9jdW1lbnQ6IGZpZWxk ICJpc3N1ZXIiIG11c3QgYmUgYSBzdHJpbmcnLAogICAgKysgICAgICAgICAgICBpZD0ibm9u LXN0cmluZyBpc3N1ZXIgYWZ0ZXIgb3RoZXIgaWdub3JlZCBmaWVsZHMiLAogICAgKysgICAg ICAgICksCiAgICArKyAgICAgICAgcHl0ZXN0LnBhcmFtKAogICAgKysgICAgICAgICAgICAo MjAwLCB7InRva2VuX2VuZHBvaW50IjogImh0dHBzOi8vZXhhbXBsZS5jb20vIn0pLAogICAg KysgICAgICAgICAgICByJ2ZhaWxlZCB0byBwYXJzZSBPcGVuSUQgZGlzY292ZXJ5IGRvY3Vt ZW50OiBmaWVsZCAiaXNzdWVyIiBpcyBtaXNzaW5nJywKICAgICsrICAgICAgICAgICAgaWQ9 Im1pc3NpbmcgaXNzdWVyIiwKICAgICsrICAgICAgICApLAogICAgKysgICAgICAgIHB5dGVz dC5wYXJhbSgKICAgICsrICAgICAgICAgICAgKDIwMCwgeyJpc3N1ZXIiOiAiaHR0cHM6Ly9l eGFtcGxlLmNvbS8ifSksCiAgICArKyAgICAgICAgICAgIHInZmFpbGVkIHRvIHBhcnNlIE9w ZW5JRCBkaXNjb3ZlcnkgZG9jdW1lbnQ6IGZpZWxkICJ0b2tlbl9lbmRwb2ludCIgaXMgbWlz c2luZycsCiAgICArKyAgICAgICAgICAgIGlkPSJtaXNzaW5nIHRva2VuIGVuZHBvaW50IiwK ICAgICsrICAgICAgICApLAogICAgKysgICAgICAgIHB5dGVzdC5wYXJhbSgKICAgICsrICAg ICAgICAgICAgKAogICAgKysgICAgICAgICAgICAgICAgMjAwLAogICAgKysgICAgICAgICAg ICAgICAgewogICAgKysgICAgICAgICAgICAgICAgICAgICJpc3N1ZXIiOiAiaHR0cHM6Ly9l eGFtcGxlLmNvbSIsCiAgICArKyAgICAgICAgICAgICAgICAgICAgInRva2VuX2VuZHBvaW50 IjogImh0dHBzOi8vZXhhbXBsZS5jb20vdG9rZW4iLAogICAgKysgICAgICAgICAgICAgICAg ICAgICJkZXZpY2VfYXV0aG9yaXphdGlvbl9lbmRwb2ludCI6ICJodHRwczovL2V4YW1wbGUu Y29tL2RldiIsCiAgICArKyAgICAgICAgICAgICAgICB9LAogICAgKysgICAgICAgICAgICAp LAogICAgKysgICAgICAgICAgICByJ2Nhbm5vdCBydW4gT0F1dGggZGV2aWNlIGF1dGhvcml6 YXRpb246IGlzc3VlciAiaHR0cHM6Ly9leGFtcGxlLmNvbSIgZG9lcyBub3Qgc3VwcG9ydCBk ZXZpY2UgY29kZSBncmFudHMnLAogICAgKysgICAgICAgICAgICBpZD0ibWlzc2luZyBkZXZp Y2UgY29kZSBncmFudHMiLAogICAgKysgICAgICAgICksCiAgICArKyAgICAgICAgcHl0ZXN0 LnBhcmFtKAogICAgKysgICAgICAgICAgICAoCiAgICArKyAgICAgICAgICAgICAgICAyMDAs CiAgICArKyAgICAgICAgICAgICAgICB7CiAgICArKyAgICAgICAgICAgICAgICAgICAgImlz c3VlciI6ICJodHRwczovL2V4YW1wbGUuY29tIiwKICAgICsrICAgICAgICAgICAgICAgICAg ICAidG9rZW5fZW5kcG9pbnQiOiAiaHR0cHM6Ly9leGFtcGxlLmNvbS90b2tlbiIsCiAgICAr KyAgICAgICAgICAgICAgICAgICAgImdyYW50X3R5cGVzX3N1cHBvcnRlZCI6IFsKICAgICsr ICAgICAgICAgICAgICAgICAgICAgICAgInVybjppZXRmOnBhcmFtczpvYXV0aDpncmFudC10 eXBlOmRldmljZV9jb2RlIgogICAgKysgICAgICAgICAgICAgICAgICAgIF0sCiAgICArKyAg ICAgICAgICAgICAgICB9LAogICAgKysgICAgICAgICAgICApLAogICAgKysgICAgICAgICAg ICByJ2Nhbm5vdCBydW4gT0F1dGggZGV2aWNlIGF1dGhvcml6YXRpb246IGlzc3VlciAiaHR0 cHM6Ly9leGFtcGxlLmNvbSIgZG9lcyBub3QgcHJvdmlkZSBhIGRldmljZSBhdXRob3JpemF0 aW9uIGVuZHBvaW50JywKICAgICsrICAgICAgICAgICAgaWQ9Im1pc3NpbmcgZGV2aWNlX2F1 dGhvcml6YXRpb25fZW5kcG9pbnQiLAogICAgKysgICAgICAgICksCiAgICArKyAgICAgICAg IwogICAgKysgICAgICAgICMgRXhlcmNpc2UgSFRUUC1sZXZlbCBmYWlsdXJlcyBieSBicmVh a2luZyB0aGUgcHJvdG9jb2wuIE5vdGUgdGhhdCB0aGUKICAgICsrICAgICAgICAjIGVycm9y IG1lc3NhZ2VzIGhlcmUgYXJlIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudC4KICAgICsrICAg ICAgICAjCiAgICArKyAgICAgICAgcHl0ZXN0LnBhcmFtKAogICAgKysgICAgICAgICAgICAo MTAwMCwge30pLAogICAgKysgICAgICAgICAgICByImZhaWxlZCB0byBmZXRjaCBPcGVuSUQg ZGlzY292ZXJ5IGRvY3VtZW50OiBVbnN1cHBvcnRlZCBwcm90b2NvbCBcKC4qXCkiLAogICAg KysgICAgICAgICAgICBpZD0iaW52YWxpZCBIVFRQIHJlc3BvbnNlIGNvZGUiLAogICAgKysg ICAgICAgICksCiAgICArKyAgICAgICAgcHl0ZXN0LnBhcmFtKAogICAgKysgICAgICAgICAg ICAoMjAwLCB7IkNvbnRlbnQtTGVuZ3RoIjogLTF9LCB7fSksCiAgICArKyAgICAgICAgICAg IHIiZmFpbGVkIHRvIGZldGNoIE9wZW5JRCBkaXNjb3ZlcnkgZG9jdW1lbnQ6IFdlaXJkIHNl cnZlciByZXBseSBcKC4qQ29udGVudC1MZW5ndGguKlwpIiwKICAgICsrICAgICAgICAgICAg aWQ9ImJhZCBIVFRQIENvbnRlbnQtTGVuZ3RoIiwKICAgICsrICAgICAgICApLAogICAgKysg ICAgXSwKICAgICsrKQogICAgKytkZWYgdGVzdF9vYXV0aF9kaXNjb3ZlcnlfcHJvdmlkZXJf ZmFpbHVyZSgKICAgICsrICAgIGFjY2VwdCwgb3BlbmlkX3Byb3ZpZGVyLCBiYWRfcmVzcG9u c2UsIGV4cGVjdGVkX2Vycm9yCiAgICArKyk6CiAgICArKyAgICBzb2NrLCBjbGllbnQgPSBh Y2NlcHQoCiAgICArKyAgICAgICAgb2F1dGhfaXNzdWVyPW9wZW5pZF9wcm92aWRlci5pc3N1 ZXIsCiAgICArKyAgICAgICAgb2F1dGhfY2xpZW50X2lkPXNlY3JldHMudG9rZW5faGV4KCks CiAgICArKyAgICApCiAgICArKwogICAgKysgICAgZGVmIGZhaWxpbmdfZGlzY292ZXJ5X2hh bmRsZXIoaGVhZGVycywgcGFyYW1zKToKICAgICsrICAgICAgICByZXR1cm4gYmFkX3Jlc3Bv bnNlCiAgICArKwogICAgKysgICAgb3BlbmlkX3Byb3ZpZGVyLnJlZ2lzdGVyX2VuZHBvaW50 KAogICAgKysgICAgICAgIE5vbmUsCiAgICArKyAgICAgICAgIkdFVCIsCiAgICArKyAgICAg ICAgIi8ud2VsbC1rbm93bi9vcGVuaWQtY29uZmlndXJhdGlvbiIsCiAgICArKyAgICAgICAg ZmFpbGluZ19kaXNjb3ZlcnlfaGFuZGxlciwKICAgICsrICAgICkKICAgICsrCiAgICArKyAg ICBleHBlY3RfZGlzY29ubmVjdGVkX2hhbmRzaGFrZShzb2NrKQogICAgKysKICAgICsrICAg ICMgWFhYIGlkZGF3YyBkb2Vzbid0IGRpZmZlcmVudGlhdGUuLi4KICAgICsrICAgIGV4cGVj dGVkX2Vycm9yID0gYWx0X3BhdHRlcm5zKAogICAgKysgICAgICAgIGV4cGVjdGVkX2Vycm9y LAogICAgKysgICAgICAgIHIiZmFpbGVkIHRvIGZldGNoIE9wZW5JRCBkaXNjb3ZlcnkgZG9j dW1lbnQgXChpZGRhd2MgZXJyb3IgSV9FUlJPUihfUEFSQU0pP1wpIiwKICAgICsrICAgICkK ICAgICsrCiAgICArKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHN5Y29wZzIuT3BlcmF0aW9u YWxFcnJvciwgbWF0Y2g9ZXhwZWN0ZWRfZXJyb3IpOgogICAgKysgICAgICAgIGNsaWVudC5j aGVja19jb21wbGV0ZWQoKQogICAgKysKICAgICsrCiAgICArK0BweXRlc3QubWFyay5wYXJh bWV0cml6ZSgKICAgICArICAgICJzYXNsX2VycixyZXNwX3R5cGUscmVzcF9wYXlsb2FkLGV4 cGVjdGVkX2Vycm9yIiwKICAgICArICAgIFsKICAgICArICAgICAgICBweXRlc3QucGFyYW0o CiAgICBAQCBzcmMvdGVzdC9weXRob24vY2xpZW50L3Rlc3Rfb2F1dGgucHkgKG5ldykKICAg ICArICAgICAgICAgICAgInNlcnZlciBzZW50IGFkZGl0aW9uYWwgT0F1dGggZGF0YSIsCiAg ICAgKyAgICAgICAgICAgIGlkPSJicm9rZW4gc2VydmVyOiBTQVNMIHN1Y2Nlc3MgYWZ0ZXIg ZXJyb3IiLAogICAgICsgICAgICAgICksCiAgICArKyAgICAgICAgcHl0ZXN0LnBhcmFtKAog ICAgKysgICAgICAgICAgICB7InN0YXR1cyI6ICJpbnZhbGlkX3JlcXVlc3QifSwKICAgICsr ICAgICAgICAgICAgcHEzLnR5cGVzLkF1dGhuUmVxdWVzdCwKICAgICsrICAgICAgICAgICAg ZGljdCh0eXBlPXBxMy5hdXRobi5TQVNMLCBib2R5PVtiIk9BVVRIQkVBUkVSIiwgYiIiXSks CiAgICArKyAgICAgICAgICAgICJkdXBsaWNhdGUgU0FTTCBhdXRoZW50aWNhdGlvbiByZXF1 ZXN0IiwKICAgICsrICAgICAgICAgICAgaWQ9ImJyb2tlbiBzZXJ2ZXI6IFNBU0wgcmVpbml0 aWFsaXphdGlvbiBhZnRlciBlcnJvciIsCiAgICArKyAgICAgICAgKSwKICAgICArICAgIF0s CiAgICAgKykKICAgICArZGVmIHRlc3Rfb2F1dGhfc2VydmVyX2Vycm9yKGFjY2VwdCwgc2Fz bF9lcnIsIHJlc3BfdHlwZSwgcmVzcF9wYXlsb2FkLCBleHBlY3RlZF9lcnJvcik6CjU6ICA0 NDkwZDAyOWI1ICEgNTogIDY1YzMxOWE2YTMgc3F1YXNoISBBZGQgcHl0ZXN0IHN1aXRlIGZv ciBPQXV0aAogICAgQEAgLmNpcnJ1cy55bWw6IHRhc2s6CiAgICAgICAgICBzeXNjdGwga2Vy bi5jb3JlZmlsZT0nL3RtcC9jb3Jlcy8lTi4lUC5jb3JlJwogICAgICAgIHNldHVwX2FkZGl0 aW9uYWxfcGFja2FnZXNfc2NyaXB0OiB8CiAgICAgLSAgICAjcGtnIGluc3RhbGwgLXkgLi4u CiAgICAtKyAgICBwa2cgaW5zdGFsbCAteSBpZGRhd2MKICAgICsrICAgIHBrZyBpbnN0YWxs IC15IGN1cmwKICAgICAgCiAgICAgICAgIyBOQjogSW50ZW50aW9uYWxseSBidWlsZCB3aXRo b3V0IC1EbGx2bS4gVGhlIGZyZWVic2QgaW1hZ2Ugc2l6ZSBpcyBhbHJlYWR5CiAgICAgICAg IyBsYXJnZSBlbm91Z2ggdG8gbWFrZSBWTSBzdGFydHVwIHNsb3csIGFuZCBldmVuIHdpdGhv dXQgbGx2bSBmcmVlYnNkCiAgICBAQCAuY2lycnVzLnltbDogdGFzazoKICAgICAgICAgICAg ICAtLWJ1aWxkdHlwZT1kZWJ1ZyBcCiAgICAgICAgICAgICAgLURjYXNzZXJ0PXRydWUgLUR1 dWlkPWJzZCAtRHRjbF92ZXJzaW9uPXRjbDg2IC1EZHRyYWNlPWF1dG8gXAogICAgICAgICAg ICAgIC1EUEdfVEVTVF9FWFRSQT0iJFBHX1RFU1RfRVhUUkEiIFwKICAgIC0rICAgICAgICAt RG9hdXRoPWVuYWJsZWQgXAogICAgKysgICAgICAgIC1Eb2F1dGg9Y3VybCBcCiAgICAgICAg ICAgICAgLURleHRyYV9saWJfZGlycz0vdXNyL2xvY2FsL2xpYiAtRGV4dHJhX2luY2x1ZGVf ZGlycz0vdXNyL2xvY2FsL2luY2x1ZGUvIFwKICAgICAgICAgICAgICBidWlsZAogICAgICAg ICAgRU9GCiAgICBAQCAuY2lycnVzLnltbDogTElOVVhfQ09ORklHVVJFX0ZFQVRVUkVTOiAm TElOVVhfQ09ORklHVVJFX0ZFQVRVUkVTID4tCiAgICAgICAgLS13aXRoLWxpYnhzbHQKICAg ICAgICAtLXdpdGgtbGx2bQogICAgICAgIC0td2l0aC1sejQKICAgIC0rICAtLXdpdGgtb2F1 dGgKICAgICsrICAtLXdpdGgtb2F1dGg9Y3VybAogICAgICAgIC0td2l0aC1wYW0KICAgICAg ICAtLXdpdGgtcGVybAogICAgICAgIC0td2l0aC1weXRob24KICAgIEBAIC5jaXJydXMueW1s OiBMSU5VWF9DT05GSUdVUkVfRkVBVFVSRVM6ICZMSU5VWF9DT05GSUdVUkVfRkVBVFVSRVMg Pi0KICAgICAgCiAgICAgIExJTlVYX01FU09OX0ZFQVRVUkVTOiAmTElOVVhfTUVTT05fRkVB VFVSRVMgPi0KICAgICAgICAtRGxsdm09ZW5hYmxlZAogICAgLSsgIC1Eb2F1dGg9ZW5hYmxl ZAogICAgKysgIC1Eb2F1dGg9Y3VybAogICAgICAgIC1EdXVpZD1lMmZzCiAgICAgIAogICAg ICAKICAgIEBAIC5jaXJydXMueW1sOiB0YXNrOgogICAgIC0gICAgI0RFQklBTl9GUk9OVEVO RD1ub25pbnRlcmFjdGl2ZSBhcHQtZ2V0IC15IGluc3RhbGwgLi4uCiAgICAgKyAgICBhcHQt Z2V0IHVwZGF0ZQogICAgICsgICAgREVCSUFOX0ZST05URU5EPW5vbmludGVyYWN0aXZlIGFw dC1nZXQgLXkgaW5zdGFsbCBcCiAgICAtKyAgICAgIGxpYmlkZGF3Yy1kZXYgXAogICAgLSsg ICAgICBsaWJpZGRhd2MtZGV2OmkzODYgXAogICAgKysgICAgICBsaWJjdXJsNC1vcGVuc3Ns LWRldiBcCiAgICArKyAgICAgIGxpYmN1cmw0LW9wZW5zc2wtZGV2OmkzODYgXAogICAgICsg ICAgICBweXRob24zLXZlbnYgXAogICAgICAKICAgICAgICBtYXRyaXg6CiAgICBAQCAuY2ly cnVzLnltbDogdGFzazoKICAgICAtICAgICNhcHQtZ2V0IHVwZGF0ZQogICAgIC0gICAgI0RF QklBTl9GUk9OVEVORD1ub25pbnRlcmFjdGl2ZSBhcHQtZ2V0IC15IGluc3RhbGwgLi4uCiAg ICAgKyAgICBhcHQtZ2V0IHVwZGF0ZQogICAgLSsgICAgREVCSUFOX0ZST05URU5EPW5vbmlu dGVyYWN0aXZlIGFwdC1nZXQgLXkgaW5zdGFsbCBsaWJpZGRhd2MtZGV2CiAgICArKyAgICBE RUJJQU5fRlJPTlRFTkQ9bm9uaW50ZXJhY3RpdmUgYXB0LWdldCAteSBpbnN0YWxsIGxpYmN1 cmw0LW9wZW5zc2wtZGV2CiAgICAgIAogICAgICAgICMjIwogICAgICAgICMgVGVzdCB0aGF0 IGNvZGUgY2FuIGJlIGJ1aWx0IHdpdGggZ2NjL2NsYW5nIHdpdGhvdXQgd2FybmluZ3MKICAg IEBAIG1lc29uLmJ1aWxkOiBmb3JlYWNoIHRlc3RfZGlyIDogdGVzdHMKICAgICArICAgICAg dGVzdF9ncm91cCA9IHRlc3RfZGlyWyduYW1lJ10KICAgICArICAgICAgdGVzdF9vdXRwdXQg PSB0ZXN0X3Jlc3VsdF9kaXIgLyB0ZXN0X2dyb3VwIC8ga2luZAogICAgICsgICAgICB0ZXN0 X2t3YXJncyA9IHsKICAgIC0rICAgICAgICAncHJvdG9jb2wnOiAndGFwJywKICAgICsrICAg ICAgICAjJ3Byb3RvY29sJzogJ3RhcCcsCiAgICAgKyAgICAgICAgJ3N1aXRlJzogdGVzdF9n cm91cCwKICAgICArICAgICAgICAndGltZW91dCc6IDEwMDAsCiAgICAgKyAgICAgICAgJ2Rl cGVuZHMnOiB0ZXN0X2RlcHMsCiAgICBAQCBtZXNvbi5idWlsZDogZm9yZWFjaCB0ZXN0X2Rp ciA6IHRlc3RzCiAgICAgKyAgICAgIHB5dGVzdCA9IHZlbnZfcGF0aCAvICdiaW4nIC8gJ3B5 LnRlc3QnCiAgICAgKyAgICAgIHRlc3RfY29tbWFuZCA9IFsKICAgICArICAgICAgICBweXRl c3QsCiAgICArKyAgICAgICAgIyBBdm9pZCBydW5uaW5nIHRoZXNlIHRlc3RzIGFnYWluc3Qg YW4gZXhpc3RpbmcgZGF0YWJhc2UuCiAgICArKyAgICAgICAgJy0tdGVtcC1pbnN0YW5jZScs IHRlc3Rfb3V0cHV0IC8gJ3RtcF9jaGVjaycsCiAgICArKwogICAgICsgICAgICAgICMgRklY TUUgcHl0ZXN0LXRhcCdzIHN0cmVhbSBmZWF0dXJlIGFjY2lkZW50YWxseSBzdXBwcmVzc2Vz IGVycm9ycyB0aGF0CiAgICAgKyAgICAgICAgIyBhcmUgY3JpdGljYWwgZm9yIGRlYnVnZ2lu ZzoKICAgICArICAgICAgICAjICAgICBodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLXRhcC9w eXRlc3QtdGFwL2lzc3Vlcy8zMAogICAgLSsgICAgICAgICMgRml4IC0tIG9yIG1heWJlIGRv bid0IHVzZSB0aGUgbWVzb24gVEFQIHByb3RvY29sIGZvciBub3c/CiAgICAtKyAgICAgICAg Jy0tdGFwLXN0cmVhbScsCiAgICAtKyAgICAgICAgIyBBdm9pZCBydW5uaW5nIHRoZXNlIHRl c3RzIGFnYWluc3QgYW4gZXhpc3RpbmcgZGF0YWJhc2UuCiAgICAtKyAgICAgICAgJy0tdGVt cC1pbnN0YW5jZScsIHRlc3Rfb3V0cHV0IC8gJ3RtcF9jaGVjaycsCiAgICArKyAgICAgICAg IyBEb24ndCB1c2UgdGhlIG1lc29uIFRBUCBwcm90b2NvbCBmb3Igbm93Li4uCiAgICArKyAg ICAgICAgIyctLXRhcC1zdHJlYW0nLAogICAgICsgICAgICBdCiAgICAgKwogICAgICsgICAg ICBmb3JlYWNoIHB5dCA6IHRbJ3Rlc3RzJ10KICAgIEBAIHNyYy90ZXN0L3B5dGhvbi9jbGll bnQvdGVzdF9vYXV0aC5weTogaW1wb3J0IHBxMwogICAgICsjIFRoZSBjbGllbnQgdGVzdHMg bmVlZCBsaWJwcSB0byBoYXZlIGJlZW4gY29tcGlsZWQgd2l0aCBPQXV0aCBzdXBwb3J0OyBz a2lwCiAgICAgKyMgdGhlbSBvdGhlcndpc2UuCiAgICAgK3B5dGVzdG1hcmsgPSBweXRlc3Qu bWFyay5za2lwaWYoCiAgICAtKyAgICBvcy5nZXRlbnYoIndpdGhfb2F1dGgiKSA9PSAibm8i LAogICAgKysgICAgb3MuZ2V0ZW52KCJ3aXRoX29hdXRoIikgPT0gIm5vbmUiLAogICAgICsg ICAgcmVhc29uPSJPQXV0aCBjbGllbnQgdGVzdHMgcmVxdWlyZSAtLXdpdGgtb2F1dGggc3Vw cG9ydCIsCiAgICAgKykKICAgICArCiAgICBAQCBzcmMvdGVzdC9weXRob24vbWVzb24uYnVp bGQgKG5ldykKICAgICArICAgICAgJy4vdGVzdF9wcTMucHknLAogICAgICsgICAgXSwKICAg ICArICAgICdlbnYnOiB7CiAgICAtKyAgICAgICd3aXRoX29hdXRoJzogb2F1dGguZm91bmQo KSA/ICd5ZXMnIDogJ25vJywKICAgICsrICAgICAgJ3dpdGhfb2F1dGgnOiBvYXV0aF9saWJy YXJ5LAogICAgICsKICAgICArICAgICAgIyBQb2ludCB0byB0aGUgZGVmYXVsdCBkYXRhYmFz ZTsgdGhlIHRlc3RzIHdpbGwgY3JlYXRlIHRoZWlyIG93biBkYXRhYmFzZXMKICAgICArICAg ICAgIyBhcyBuZWVkZWQuCg== --------------xs7WpnNbBecg3ku66YQMYG0Y Content-Type: application/gzip; name="v8-0001-common-jsonapi-support-FRONTEND-clients.patch.gz" Content-Disposition: attachment; filename="v8-0001-common-jsonapi-support-FRONTEND-clients.patch.gz" Content-Transfer-Encoding: base64 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 --------------xs7WpnNbBecg3ku66YQMYG0Y Content-Type: application/gzip; name="v8-0002-libpq-add-OAUTHBEARER-SASL-mechanism.patch.gz" Content-Disposition: attachment; filename="v8-0002-libpq-add-OAUTHBEARER-SASL-mechanism.patch.gz" Content-Transfer-Encoding: base64 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 --------------xs7WpnNbBecg3ku66YQMYG0Y Content-Type: application/gzip; name="v8-0003-backend-add-OAUTHBEARER-SASL-mechanism.patch.gz" Content-Disposition: attachment; filename="v8-0003-backend-add-OAUTHBEARER-SASL-mechanism.patch.gz" Content-Transfer-Encoding: base64 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 L50AAA== --------------xs7WpnNbBecg3ku66YQMYG0Y Content-Type: application/gzip; name="v8-0004-Add-pytest-suite-for-OAuth.patch.gz" Content-Disposition: attachment; filename="v8-0004-Add-pytest-suite-for-OAuth.patch.gz" Content-Transfer-Encoding: base64 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 --------------xs7WpnNbBecg3ku66YQMYG0Y Content-Type: application/gzip; name="v8-0005-squash-Add-pytest-suite-for-OAuth.patch.gz" Content-Disposition: attachment; filename="v8-0005-squash-Add-pytest-suite-for-OAuth.patch.gz" Content-Transfer-Encoding: base64 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 --------------xs7WpnNbBecg3ku66YQMYG0Y--