Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vmDlb-008yuL-1j for pgsql-hackers@arkaria.postgresql.org; Sat, 31 Jan 2026 16:24:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vmDlZ-008fat-1r for pgsql-hackers@arkaria.postgresql.org; Sat, 31 Jan 2026 16:24:10 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vmDlY-008fal-2r for pgsql-hackers@lists.postgresql.org; Sat, 31 Jan 2026 16:24:10 +0000 Received: from mail-ej1-x633.google.com ([2a00:1450:4864:20::633]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vmDlX-000M3W-0B for pgsql-hackers@lists.postgresql.org; Sat, 31 Jan 2026 16:24:08 +0000 Received: by mail-ej1-x633.google.com with SMTP id a640c23a62f3a-b885d8f4092so539600266b.2 for ; Sat, 31 Jan 2026 08:24:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1769876645; cv=none; d=google.com; s=arc-20240605; b=YoOhQyDCOElSfa/1j2nMo6c8zRIOGLwuIeKZjwPV9VHKxlrwUNcQXWiYGXdzl4s0HT 7KzwtdM+5NClO7TW/l7uLdpoAsRjcG+9oeX1J8Y7c9sap0foeY1zuhmShLQrPGfhiCMu GWyJQdh/CFTLNXbi8QOBhmjLQqHPAsB1w7tRNbIStUlhgHZP8o/P6uZ68vDWHActeW0o iG92Q3ISDDksKHxeIXHJ/TQ8rOUZIzHnKfw2qZ2wrKUqC6cd314XC3kR/2k60n4fGBLx Dad/FOpBpjm3VwiiZ9p6D96OPwirb2eU/RT1lnq6UcHozrwAcriMoa5KmXWhjPQKIa9j PboQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=6Ej/RgVfysocIPQx/nSdlekcGEBkwFoR90O82nV/tdA=; fh=1v4dYsULUOl/bj2eb+1aKNzzMT9JrjSHRm3n1xHBwvQ=; b=K4bdKvCKLc0CQ0Nj62Lgy/7OYXahcY6+wAZgKhLjayvJOv3Yfn0SKgWcs0pUJPy6bn mRjSXVbTD541w6BqUsFhf8BhVvqcAPZ0S2MALjx8W1yPGDBVRU+O/DMnMNTSm/wWcyXx gcQDmq6bwMjLOOCMhNNi0kTxZ8/kxSv43XLBGSQPOwa556JW37PL7u9fZKNRFUoyUyTv bWSCPwLfheAOBc3EFNzfs3onoVABUltmUahDFg2g08aRR7gzU7EwHW4AE7jdzaWnUXxV Ti69DjRggdDlTCN1QzwnFLBTtXoPBhRf0t82Nod7lUJZ5rbCcAwSiU3X6SFWCDWxM4s+ ioBQ==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769876645; x=1770481445; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=6Ej/RgVfysocIPQx/nSdlekcGEBkwFoR90O82nV/tdA=; b=ZFSyAY038qGHut4JJFoc7FSRJpmKjsjxiZSgLSWvEbtndN9krcUnTvr4vN/DS1yh4G EQs1bCbJ/YykC545KIwZyo2aS5pchGVGHirGJus305y2pPYYI55OPO/pyosnHlr4BKjs qrNbU40lSr2jSyxLtYIEdPccWfPT38+jjfFJQ8iVHDomUnvJI1conuC4Al9BmxT23jdb 3NH39Sr29xthTOilgVmpWAJ8KIWUV8p1Vnx7s/2ZOFTUBP2yrJUcBLGeOKGl/zOFZSsl OqSwBmXSkBOvf0lKHTddmYxZHK7f6h9UO+aSXSXBJaI+eidByEHNlLh4uTcStfWWV3Od 2ljA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769876645; x=1770481445; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=6Ej/RgVfysocIPQx/nSdlekcGEBkwFoR90O82nV/tdA=; b=KC+94GiYXtonY6GfhftsmHOXMiNe+YIs2PFCko3u5AukHQdZR8ZaM9HZPkKVTXzv2F Qc6vai0M2kBuENzuX5vr0+Av1M/8VnAQjtcrGvg/c9F4cg2uKGVIYX9hvCr7oDFzcRIy SM20hofqchXz37rKOk1J4g3vswY46eY2b3x4U+kIYRe8CVg0HReEA6VdszZ6Ads7tIkD CtTxGXwXCyP4e7/ODZf+JRPyDWNU9fJr5QK/XQIXJBPMBWzhN1M3ahEw7sWJ+dlZ9jNR Ifd8J3aJYH3T7MxP/p98zPX5VDnnx5JWLcLdMziCTL5DoIBPxAUZV5LSTDn7/H1fzznw Xi6w== X-Gm-Message-State: AOJu0YytA4sfZaoxr7uUdmnB+69vvfQZoS7ggGT9eN1uG4tmmRONTzZp sExg7q0pUPDT/02yPUfczbe05tB8qjiZoLo6MgBpRczOAfS/iaUs8XHvDH9N8RwwQpRNmXoKcMn xo/JYQaRC8Taz2uOui7Mm1UYR0YtEXV4= X-Gm-Gg: AZuq6aIEiQLIOHAGtJcHraPQkHLab3b9781DKtFDQwmyt9vQacZNp+6oB59ht2VmxC0 jEotLilggy0hJxsaRu9PDDKpSh6LVsJggv0bcq68gS70tGvUeEV89NFIdAbr6z7GQJJ16GvTdnh ACE5E3WNqGkMgQ5Ffo6mysqUlTfq0S9zox/hXdWrKwwSFV7oRECH3qXjhNGmichirKdmIRAP9/i AM6UESf8cdHHVMVF8pQXfO8X2vaCU7LXAUvqQGqTSx9/KgPbWQgUMO4iNWNGnEVgHpR3AhyLXfx +7+sJM5Gpgk6lck40Oi/mcy/jFXQVpBZTpldSsEFhKHn665WKo4eidmFiCtL83MrTIZoL9CKcUF V0bTww5oH9FlbgP0u X-Received: by 2002:a17:906:4785:b0:b87:2c88:ce40 with SMTP id a640c23a62f3a-b8dff6073d9mr440063166b.27.1769876644948; Sat, 31 Jan 2026 08:24:04 -0800 (PST) MIME-Version: 1.0 References: <202510210803.3b3vfvygxtjl@alvherre.pgsql> <87530674-E6B6-4C97-A704-78C7E07CF01F@gmail.com> <3DC56A6A-9525-4C05-B45A-9A135A66BC34@justatheory.com> In-Reply-To: From: Florents Tselai Date: Sat, 31 Jan 2026 18:23:27 +0200 X-Gm-Features: AZwV_QjX759ybU3Hx1PIjtamWxqhs00_dEjoypianJPtz-QApCxtpyDDINYHPbs Message-ID: Subject: Re: PATCH: jsonpath string methods: lower, upper, initcap, l/r/btrim, replace, split_part To: "David E. Wheeler" Cc: pgsql-hackers , Chao Li , =?UTF-8?Q?=C3=81lvaro_Herrera?= , Tom Lane , Peter Eisentraut , Robert Haas , Alexander Korotkov , Andrew Dunstan , jian he Content-Type: multipart/mixed; boundary="000000000000b8485c0649b18412" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000b8485c0649b18412 Content-Type: multipart/alternative; boundary="000000000000b8485a0649b18410" --000000000000b8485a0649b18410 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Jan 31, 2026 at 4:44=E2=80=AFPM David E. Wheeler wrote: > On Jan 4, 2026, at 15:51, David E. Wheeler wrote: > > > Updated and rebased patch attached. > I think your attachment was left behind. Attaching it myself (that's v17, right? ) checked out from your PR New rebase on 6918434. See also the PR[0]. > The Commitfest app still shows this patch as =E2=80=9CNeeds review=E2=80= =9D[1]. It has had > a number of reviews, most recently from jian. Any objection to changing i= t > to =E2=80=9CReady for Committer=E2=80=9D? With the refactoring you=E2=80=99ve done across the parser and executor, I=E2=80=99m already tempted to slip in a few more string methods - but I th= ink we should leave that for a future iteration. Functionally, it=E2=80=99d just mean adding another branch in executeStringInternalMethod, and I=E2=80=99d rather keep this patch focused. At this point, I=E2=80=99d say it=E2=80=99s ready for committer review. That said, I do expect someone to raise (again) the question of how we want to handle potential future conflicts with the SQL/JSON standard. That=E2=80=99s a broader design topic, and it=E2=80=99s going to come up ev= ery time we extend the JSONPath language. And yes, I=E2=80=99m obviously biased here - I already have two other patch= es in the same spirit queued up, namely https://commitfest.postgresql.org/patch/6429/ https://commitfest.postgresql.org/patch/6436/ --000000000000b8485a0649b18410 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On S= at, Jan 31, 2026 at 4:44=E2=80=AFPM David E. Wheeler <david@justatheory.com> wrote:
On Jan 4, 2026, at 15:51, David E. Wheeler <david@justatheory.com> wro= te:

> Updated and rebased patch attached.

I think your attachment=C2=A0was left behind. Attaching it myself (that&#= 39;s v17, right? ) checked out from your PR

New rebase on 6918434. See also the PR[0].=C2=A0

The Commitfest app still shows this patch as =E2=80=9CNeeds review=E2=80=9D= [1]. It has had a number of reviews, most recently from jian. Any objection= to changing it to =E2=80=9CReady for Committer=E2=80=9D?
=
With the refactoring you=E2=80=99ve done across the parser a= nd executor,=C2=A0
I=E2=80=99m already tempted to slip in a few m= ore string methods - but I think we should leave that for a future iteratio= n.
Functionally, it=E2=80=99d just mean adding another branch in = executeStringInternalMethod,=C2=A0
and I=E2=80=99d rather keep th= is patch focused. =C2=A0

At this point, I=E2=80=99= d say it=E2=80=99s ready for committer review.=C2=A0

That said, I do expect someone to raise (again) the question of=C2=A0
how we want to handle potential future conflicts with the SQL/JSON = standard.=C2=A0
That=E2=80=99s a broader design topic, and it=E2= =80=99s going to come up every time we extend the JSONPath language. =C2=A0=

And yes, I=E2=80=99m obviously biased here - I al= ready have two other patches in the same spirit queued up, namely
https://commitfe= st.postgresql.org/patch/6429/=C2=A0



--000000000000b8485a0649b18410-- --000000000000b8485c0649b18412 Content-Type: application/octet-stream; name="v17-0001-Rename-jsonpath-method-arg-tokens.patch" Content-Disposition: attachment; filename="v17-0001-Rename-jsonpath-method-arg-tokens.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ml2ik3380 RnJvbSAxNDZjODk5YjE0ZTk0OTE4N2QwZmY3ZDlhMWI2NTc1NzdhNmE3ZGEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiRGF2aWQgRS4gV2hlZWxlciIgPGRhdmlkQGp1c3RhdGhlb3J5 LmNvbT4KRGF0ZTogTW9uLCAyIEp1biAyMDI1IDE3OjE0OjEwIC0wNDAwClN1YmplY3Q6IFtQQVRD SCB2MTcgMS8yXSBSZW5hbWUganNvbnBhdGggbWV0aG9kIGFyZyB0b2tlbnMKClJlbmFtZSB0aGUg YGNzdl9gIHRva2VucyB0byBgaW50X2AsIGJlY2F1c2UgdGhleSByZXByZXNlbnQgc2lnbmVkIG9y CnVuc2lnbmVkIGludGVnZXJzLCBhcyBmb2xsb3dzOgoKKiAgIGBjc3ZfZWxlbWAgPT4gYGludF9l bGVtYAoqICAgYGNzdl9saXN0YCA9PiBgaW50X2xpc3RgCiogICBgb3B0X2Nzdl9saXN0YCA9PiBg b3B0X2ludF9saXN0YAoKUmVuYW1lIHRoZSBgZGF0ZXRpbWVfcHJlY2lzaW9uYCB0b2tlbnMgdG8g YHVpbnRfYXJnYCwgYXMgdGhleSByZXByZXNlbnQKdW5zaWduZWQgaW50ZWdlcnMgYW5kIHdpbGwg YmUgdXNlZnVsIGZvciBvdGhlciBtZXRob2RzIGluIHRoZSBmdXR1cmUsIGFzCmZvbGxvd3M6Cgoq ICAgYGRhdGV0aW1lX3ByZWNpc2lvbmAgPT4gYHVpbnRfZWxlbWAKKiAgIGBvcHRfZGF0ZXRpbWVf cHJlY2lzaW9uYCA9PiBgb3B0X3VpbnRfYXJnYAoKUmVuYW1lIHRoZSBgZGF0ZXRpbWVfdGVtcGxh dGVgIHRva2VucyB0byBgc3RyX2FyZ2AsIGFzIHRoZXkgcmVwcmVzZW50CnN0cmluZ3MgYW5kIHdp bGwgYmUgdXNlZnVsIGZvciBvdGhlciBtZXRob2RzIGluIHRoZSBmdXR1cmUsIGFzIGZvbGxvd3M6 CgoqICAgYGRhdGV0aW1lX3RlbXBsYXRlYCA9PiBgc3RyX2VsZW1gCiogICBgb3B0X2RhdGV0aW1l X3RlbXBsYXRlYCA9PiBgb3B0X3N0cl9hcmdgCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pz b25wYXRoX2dyYW0ueSB8IDQyICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9qc29ucGF0aF9ncmFtLnkgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvanNvbnBhdGhfZ3JhbS55CmluZGV4IDQ1NDM2MjZmZmM4Li44ZWM0Y2EzMzIxMiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoX2dyYW0ueQorKysgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvanNvbnBhdGhfZ3JhbS55CkBAIC05MiwxMCArOTIsMTAgQEAgc3RhdGlj IGJvb2wgbWFrZUl0ZW1MaWtlUmVnZXgoSnNvblBhdGhQYXJzZUl0ZW0gKmV4cHIsCiAldHlwZQk8 dmFsdWU+CQlzY2FsYXJfdmFsdWUgcGF0aF9wcmltYXJ5IGV4cHIgYXJyYXlfYWNjZXNzb3IKIAkJ CQkJYW55X3BhdGggYWNjZXNzb3Jfb3Aga2V5IHByZWRpY2F0ZSBkZWxpbWl0ZWRfcHJlZGljYXRl CiAJCQkJCWluZGV4X2VsZW0gc3RhcnRzX3dpdGhfaW5pdGlhbCBleHByX29yX3ByZWRpY2F0ZQot CQkJCQlkYXRldGltZV90ZW1wbGF0ZSBvcHRfZGF0ZXRpbWVfdGVtcGxhdGUgY3N2X2VsZW0KLQkJ CQkJZGF0ZXRpbWVfcHJlY2lzaW9uIG9wdF9kYXRldGltZV9wcmVjaXNpb24KKwkJCQkJc3RyX2Vs ZW0gb3B0X3N0cl9hcmcgaW50X2VsZW0KKwkJCQkJdWludF9lbGVtIG9wdF91aW50X2FyZwogCi0l dHlwZQk8ZWxlbXM+CQlhY2Nlc3Nvcl9leHByIGNzdl9saXN0IG9wdF9jc3ZfbGlzdAorJXR5cGUJ PGVsZW1zPgkJYWNjZXNzb3JfZXhwciBpbnRfbGlzdCBvcHRfaW50X2xpc3QKIAogJXR5cGUJPGlu ZGV4cz4JaW5kZXhfbGlzdAogCkBAIC0yNTQsNyArMjU0LDcgQEAgYWNjZXNzb3Jfb3A6CiAJfCAn LicgYW55X3BhdGgJCQkJCXsgJCQgPSAkMjsgfQogCXwgJy4nIG1ldGhvZCAnKCcgJyknCQkJeyAk JCA9IG1ha2VJdGVtVHlwZSgkMik7IH0KIAl8ICc/JyAnKCcgcHJlZGljYXRlICcpJwkJCXsgJCQg PSBtYWtlSXRlbVVuYXJ5KGpwaUZpbHRlciwgJDMpOyB9Ci0JfCAnLicgREVDSU1BTF9QICcoJyBv cHRfY3N2X2xpc3QgJyknCisJfCAnLicgREVDSU1BTF9QICcoJyBvcHRfaW50X2xpc3QgJyknCiAJ CXsKIAkJCWlmIChsaXN0X2xlbmd0aCgkNCkgPT0gMCkKIAkJCQkkJCA9IG1ha2VJdGVtQmluYXJ5 KGpwaURlY2ltYWwsIE5VTEwsIE5VTEwpOwpAQCAtMjY4LDE5ICsyNjgsMTkgQEAgYWNjZXNzb3Jf b3A6CiAJCQkJCQkgZXJybXNnKCJpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSAlcyIsICJq c29ucGF0aCIpLAogCQkJCQkJIGVycmRldGFpbCgiLmRlY2ltYWwoKSBjYW4gb25seSBoYXZlIGFu IG9wdGlvbmFsIHByZWNpc2lvblssc2NhbGVdLiIpKSk7CiAJCX0KLQl8ICcuJyBEQVRFVElNRV9Q ICcoJyBvcHRfZGF0ZXRpbWVfdGVtcGxhdGUgJyknCisJfCAnLicgREFURVRJTUVfUCAnKCcgb3B0 X3N0cl9hcmcgJyknCiAJCXsgJCQgPSBtYWtlSXRlbVVuYXJ5KGpwaURhdGV0aW1lLCAkNCk7IH0K LQl8ICcuJyBUSU1FX1AgJygnIG9wdF9kYXRldGltZV9wcmVjaXNpb24gJyknCisJfCAnLicgVElN RV9QICcoJyBvcHRfdWludF9hcmcgJyknCiAJCXsgJCQgPSBtYWtlSXRlbVVuYXJ5KGpwaVRpbWUs ICQ0KTsgfQotCXwgJy4nIFRJTUVfVFpfUCAnKCcgb3B0X2RhdGV0aW1lX3ByZWNpc2lvbiAnKScK Kwl8ICcuJyBUSU1FX1RaX1AgJygnIG9wdF91aW50X2FyZyAnKScKIAkJeyAkJCA9IG1ha2VJdGVt VW5hcnkoanBpVGltZVR6LCAkNCk7IH0KLQl8ICcuJyBUSU1FU1RBTVBfUCAnKCcgb3B0X2RhdGV0 aW1lX3ByZWNpc2lvbiAnKScKKwl8ICcuJyBUSU1FU1RBTVBfUCAnKCcgb3B0X3VpbnRfYXJnICcp JwogCQl7ICQkID0gbWFrZUl0ZW1VbmFyeShqcGlUaW1lc3RhbXAsICQ0KTsgfQotCXwgJy4nIFRJ TUVTVEFNUF9UWl9QICcoJyBvcHRfZGF0ZXRpbWVfcHJlY2lzaW9uICcpJworCXwgJy4nIFRJTUVT VEFNUF9UWl9QICcoJyBvcHRfdWludF9hcmcgJyknCiAJCXsgJCQgPSBtYWtlSXRlbVVuYXJ5KGpw aVRpbWVzdGFtcFR6LCAkNCk7IH0KIAk7CiAKLWNzdl9lbGVtOgoraW50X2VsZW06CiAJSU5UX1AK IAkJeyAkJCA9IG1ha2VJdGVtTnVtZXJpYygmJDEpOyB9CiAJfCAnKycgSU5UX1AgJXByZWMgVU1J TlVTCkBAIC0yODksMzEgKzI4OSwzMSBAQCBjc3ZfZWxlbToKIAkJeyAkJCA9IG1ha2VJdGVtVW5h cnkoanBpTWludXMsIG1ha2VJdGVtTnVtZXJpYygmJDIpKTsgfQogCTsKIAotY3N2X2xpc3Q6Ci0J Y3N2X2VsZW0JCQkJCQl7ICQkID0gbGlzdF9tYWtlMSgkMSk7IH0KLQl8IGNzdl9saXN0ICcsJyBj c3ZfZWxlbQkJCXsgJCQgPSBsYXBwZW5kKCQxLCAkMyk7IH0KK2ludF9saXN0OgorCWludF9lbGVt CQkJCQkJeyAkJCA9IGxpc3RfbWFrZTEoJDEpOyB9CisJfCBpbnRfbGlzdCAnLCcgaW50X2VsZW0J CQl7ICQkID0gbGFwcGVuZCgkMSwgJDMpOyB9CiAJOwogCi1vcHRfY3N2X2xpc3Q6Ci0JY3N2X2xp c3QJCQkJCQl7ICQkID0gJDE7IH0KK29wdF9pbnRfbGlzdDoKKwlpbnRfbGlzdAkJCQkJCXsgJCQg PSAkMTsgfQogCXwgLyogRU1QVFkgKi8JCQkJCXsgJCQgPSBOVUxMOyB9CiAJOwogCi1kYXRldGlt ZV9wcmVjaXNpb246Cit1aW50X2VsZW06CiAJSU5UX1AJCQkJCQkJeyAkJCA9IG1ha2VJdGVtTnVt ZXJpYygmJDEpOyB9CiAJOwogCi1vcHRfZGF0ZXRpbWVfcHJlY2lzaW9uOgotCWRhdGV0aW1lX3By ZWNpc2lvbgkJCQl7ICQkID0gJDE7IH0KK29wdF91aW50X2FyZzoKKwl1aW50X2VsZW0JCQkJCQl7 ICQkID0gJDE7IH0KIAl8IC8qIEVNUFRZICovCQkJCQl7ICQkID0gTlVMTDsgfQogCTsKIAotZGF0 ZXRpbWVfdGVtcGxhdGU6CitzdHJfZWxlbToKIAlTVFJJTkdfUAkJCQkJCXsgJCQgPSBtYWtlSXRl bVN0cmluZygmJDEpOyB9CiAJOwogCi1vcHRfZGF0ZXRpbWVfdGVtcGxhdGU6Ci0JZGF0ZXRpbWVf dGVtcGxhdGUJCQkJeyAkJCA9ICQxOyB9CitvcHRfc3RyX2FyZzoKKwlzdHJfZWxlbQkJCQkJCXsg JCQgPSAkMTsgfQogCXwgLyogRU1QVFkgKi8JCQkJCXsgJCQgPSBOVUxMOyB9CiAJOwogCi0tIAoy LjUyLjAKCg== --000000000000b8485c0649b18412 Content-Type: application/octet-stream; name="v17-0002-Add-additional-jsonpath-string-methods.patch" Content-Disposition: attachment; filename="v17-0002-Add-additional-jsonpath-string-methods.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ml2ik33r1 RnJvbSBlZGU1MDhhNmU5YjYxYjIzZmFiY2I5NDYxMzMxNzA5NmI2MTNhYzFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yZW50cyBUc2VsYWkgPGZsb3JlbnRzLnRzZWxhaUBnbWFp bC5jb20+CkRhdGU6IFN1biwgNCBKYW4gMjAyNiAxNTo0OTowNCAtMDUwMApTdWJqZWN0OiBbUEFU Q0ggdjE3IDIvMl0gQWRkIGFkZGl0aW9uYWwganNvbnBhdGggc3RyaW5nIG1ldGhvZHMKCkFkZCB0 aGUgZm9sbG93aW5nIGpzb25wYXRoIG1ldGhvZHM6CgoqICAgbC9yL2J0cmltKCkKKiAgIGxvd2Vy KCksIHVwcGVyKCkKKiAgIGluaXRjYXAoKQoqICAgcmVwbGFjZSgpCiogICBzcGxpdF9wYXJ0KCkK CkVhY2ggc2ltcGx5IGRpc3BhdGNoZXMgdG8gdGhlIHN0YW5kYXJkIHN0cmluZyBwcm9jZXNzaW5n IGZ1bmN0aW9ucy4KVGhlc2UgZGVwZW5kIG9uIHRoZSBsb2NhbGUsIGJ1dCBzaW5jZSBpdCdzIHNl dCBhdCBgaW5pdGRiYCwgdGhleSBjYW4gYmUKY29uc2lkZXJlZCBpbW11dGFibGUgYW5kIHRoZXJl Zm9yZSBhbGxvd2VkIGluIGFueSBqc29ucGF0aCBleHByZXNzaW9uLgotLS0KIGRvYy9zcmMvc2dt bC9mdW5jL2Z1bmMtanNvbi5zZ21sICAgICAgICAgICAgICB8IDE0MCArKysrKysKIHNyYy9iYWNr ZW5kL3V0aWxzL2FkdC9qc29ucGF0aC5jICAgICAgICAgICAgICB8IDExNyArKysrLQogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoX2V4ZWMuYyAgICAgICAgIHwgMjA3ICsrKysrKysrKwog c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoX2dyYW0ueSAgICAgICAgIHwgIDI4ICstCiBz cmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGhfc2Nhbi5sICAgICAgICAgfCAgIDggKwogc3Jj L2luY2x1ZGUvdXRpbHMvanNvbnBhdGguaCAgICAgICAgICAgICAgICAgIHwgICA4ICsKIHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmJfanNvbnBhdGgub3V0ICB8IDM5OSArKysrKysrKysr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbnBhdGgub3V0ICAgICAgICB8 IDEzNyArKysrKysKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3NxbGpzb25fcXVlcnlmdW5jcy5vdXQg ICB8ICAxMCArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmJfanNvbnBhdGguc3FsICAgICAg IHwgMTA5ICsrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29ucGF0aC5zcWwgICAgICAgICAg ICAgfCAgMzEgKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3NxbGpzb25fcXVlcnlmdW5jcy5zcWwg ICB8ICAxMSArLQogMTIgZmlsZXMgY2hhbmdlZCwgMTE5OCBpbnNlcnRpb25zKCspLCA3IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtanNvbi5zZ21sIGIv ZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy1qc29uLnNnbWwKaW5kZXggMWVjNzNjZmY0NjQuLjg2YzMw ODQ1NGE4IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWpzb24uc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWpzb24uc2dtbApAQCAtMjc4MSw2ICsyNzgxLDE0NiBA QCBFUlJPUjogIGpzb25wYXRoIG1lbWJlciBhY2Nlc3NvciBjYW4gb25seSBiZSBhcHBsaWVkIHRv IGFuIG9iamVjdAogICAgICAgICA8cmV0dXJudmFsdWU+W3siaWQiOiAwLCAia2V5IjogIngiLCAi dmFsdWUiOiAiMjAifSwgeyJpZCI6IDAsICJrZXkiOiAieSIsICJ2YWx1ZSI6IDMyfV08L3JldHVy bnZhbHVlPgogICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICAgPC9yb3c+CisKKyAgICAgIDxy b3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1 bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPHJlcGxhY2VhYmxlPnN0cmluZzwvcmVwbGFjZWFibGU+ IDxsaXRlcmFsPi48L2xpdGVyYWw+IDxsaXRlcmFsPmxvd2VyKCk8L2xpdGVyYWw+CisgICAgICAg IDxyZXR1cm52YWx1ZT48cmVwbGFjZWFibGU+c3RyaW5nPC9yZXBsYWNlYWJsZT48L3JldHVybnZh bHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgU3RyaW5nIGNvbnZl cnRlZCB0byBhbGwgbG93ZXIgY2FzZSBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzIG9mIHRoZSBkYXRh YmFzZSdzIGxvY2FsZS4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIDxs aXRlcmFsPmpzb25iX3BhdGhfcXVlcnkoJyJUT00iJywgJyQubG93ZXIoKScpPC9saXRlcmFsPgor ICAgICAgICA8cmV0dXJudmFsdWU+InRvbSI8L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9 ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAg PHJlcGxhY2VhYmxlPnN0cmluZzwvcmVwbGFjZWFibGU+IDxsaXRlcmFsPi48L2xpdGVyYWw+IDxs aXRlcmFsPnVwcGVyKCk8L2xpdGVyYWw+CisgICAgICAgIDxyZXR1cm52YWx1ZT48cmVwbGFjZWFi bGU+c3RyaW5nPC9yZXBsYWNlYWJsZT48L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAg ICAgICA8cGFyYT4KKyAgICAgICAgU3RyaW5nIGNvbnZlcnRlZCB0byBhbGwgdXBwZXIgY2FzZSBh Y2NvcmRpbmcgdG8gdGhlIHJ1bGVzIG9mIHRoZSBkYXRhYmFzZSdzIGxvY2FsZS4KKyAgICAgICA8 L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIDxsaXRlcmFsPmpzb25iX3BhdGhfcXVlcnko JyJ0b20iJywgJyQudXBwZXIoKScpPC9saXRlcmFsPgorICAgICAgICA8cmV0dXJudmFsdWU+IlRP TSI8L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICAgPC9yb3c+CisK KyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPHJlcGxhY2VhYmxlPnN0cmluZzwvcmVw bGFjZWFibGU+IDxsaXRlcmFsPi48L2xpdGVyYWw+IDxsaXRlcmFsPmluaXRjYXAoKTwvbGl0ZXJh bD4KKyAgICAgICAgPHJldHVybnZhbHVlPjxyZXBsYWNlYWJsZT5zdHJpbmc8L3JlcGxhY2VhYmxl PjwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBT dHJpbmcgd2l0aCB0aGUgZmlyc3QgbGV0dGVyIG9mIGVhY2ggd29yZCBjb252ZXJ0ZWQgdG8gdXBw ZXIgY2FzZQorICAgICAgICBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzIG9mIHRoZSBkYXRhYmFzZSdz IGxvY2FsZS4gV29yZHMgYXJlIHNlcXVlbmNlcworICAgICAgICBvZiBhbHBoYW51bWVyaWMgY2hh cmFjdGVycyBzZXBhcmF0ZWQgYnkgbm9uLWFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLgorICAgICAg IDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgPGxpdGVyYWw+anNvbmJfcGF0aF9xdWVy eSgnImhpIFRIT01BUyInLCAnJC5pbml0Y2FwKCknKTwvbGl0ZXJhbD4KKyAgICAgICAgPHJldHVy bnZhbHVlPiJIaSBUaG9tYXMiPC9yZXR1cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgIDwvcm93PgorCisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CisgICAgICAgIDxyZXBsYWNl YWJsZT5zdHJpbmc8L3JlcGxhY2VhYmxlPiA8bGl0ZXJhbD4uPC9saXRlcmFsPiA8bGl0ZXJhbD5y ZXBsYWNlKDxyZXBsYWNlYWJsZT5mcm9tPC9yZXBsYWNlYWJsZT4sIDxyZXBsYWNlYWJsZT50bzwv cmVwbGFjZWFibGU+KTwvbGl0ZXJhbD4KKyAgICAgICAgPHJldHVybnZhbHVlPjxyZXBsYWNlYWJs ZT5zdHJpbmc8L3JlcGxhY2VhYmxlPjwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAg ICAgIDxwYXJhPgorICAgICAgICBTdHJpbmcgd2l0aCBhbGwgb2NjdXJyZW5jZXMgb2Ygc3Vic3Ry aW5nIGZyb20gcmVwbGFjZWQgd2l0aCBzdWJzdHJpbmcgdG8uCisgICAgICAgPC9wYXJhPgorICAg ICAgIDxwYXJhPgorICAgICAgICA8bGl0ZXJhbD5qc29uYl9wYXRoX3F1ZXJ5KCciYWJjZGVmYWJj ZGVmIicsICckLnJlcGxhY2UoImNkIiwgIlhYIiknKTwvbGl0ZXJhbD4KKyAgICAgICAgPHJldHVy bnZhbHVlPiJhYlhYZWZhYlhYZWYiPC9yZXR1cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgIDwvcm93PgorCisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSByb2xlPSJmdW5j X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CisgICAgICAgIDxyZXBs YWNlYWJsZT5zdHJpbmc8L3JlcGxhY2VhYmxlPiA8bGl0ZXJhbD4uPC9saXRlcmFsPiA8bGl0ZXJh bD5zcGxpdF9wYXJ0KDxyZXBsYWNlYWJsZT5kZWxpbWl0ZXI8L3JlcGxhY2VhYmxlPiwgPHJlcGxh Y2VhYmxlPm48L3JlcGxhY2VhYmxlPik8L2xpdGVyYWw+CisgICAgICAgIDxyZXR1cm52YWx1ZT48 cmVwbGFjZWFibGU+c3RyaW5nPC9yZXBsYWNlYWJsZT48L3JldHVybnZhbHVlPgorICAgICAgIDwv cGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgU3RyaW5nIHNwbGl0IGF0IG9jY3VycmVuY2Vz IG9mIDxyZXBsYWNlYWJsZT5kZWxpbWl0ZXI8L3JlcGxhY2VhYmxlPgorICAgICAgICBhbmQgcmV0 dXJucyB0aGUgPHJlcGxhY2VhYmxlPm48L3JlcGxhY2VhYmxlPid0aCBmaWVsZCAoY291bnRpbmcg ZnJvbQorICAgICAgICBvbmUpIG9yLCB3aGVuIDxyZXBsYWNlYWJsZT5uPC9yZXBsYWNlYWJsZT4g aXMgbmVnYXRpdmUsIHJldHVybnMgdGhlCisgICAgICAgIHw8cmVwbGFjZWFibGU+bjwvcmVwbGFj ZWFibGU+fCd0aC1mcm9tLWxhc3QgZmllbGQuCisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJh PgorICAgICAgICA8bGl0ZXJhbD5qc29uYl9wYXRoX3F1ZXJ5KCciYWJjfkB+ZGVmfkB+Z2hpIics ICckLnNwbGl0X3BhcnQoIn5AfiIsIDIpJyk8L2xpdGVyYWw+CisgICAgICAgIDxyZXR1cm52YWx1 ZT4iZGVmIjwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAg ICAgICA8bGl0ZXJhbD5qc29uYl9wYXRoX3F1ZXJ5KCciYWJjLGRlZixnaGksamtsIicsICckLnNw bGl0X3BhcnQoIiwiLCAzKScpPC9saXRlcmFsPgorICAgICAgICA8cmV0dXJudmFsdWU+ImdoaSI8 L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICAgPC9yb3c+CisKKyAg ICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPHJlcGxhY2VhYmxlPnN0cmluZzwvcmVwbGFj ZWFibGU+IDxsaXRlcmFsPi48L2xpdGVyYWw+IDxsaXRlcmFsPmx0cmltKFsgPHJlcGxhY2VhYmxl PmNoYXJhY3RlcnM8L3JlcGxhY2VhYmxlPiBdKTwvbGl0ZXJhbD4KKyAgICAgICAgPHJldHVybnZh bHVlPjxyZXBsYWNlYWJsZT5zdHJpbmc8L3JlcGxhY2VhYmxlPjwvcmV0dXJudmFsdWU+CisgICAg ICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBTdHJpbmcgd2l0aCB0aGUgbG9uZ2Vz dCBzdHJpbmcgY29udGFpbmluZyBvbmx5IHNwYWNlcyBvciB0aGUKKyAgICAgICAgY2hhcmFjdGVy cyBpbiA8cmVwbGFjZWFibGU+Y2hhcmFjdGVyczwvcmVwbGFjZWFibGU+IHJlbW92ZWQgZnJvbSB0 aGUKKyAgICAgICAgc3RhcnQgb2YgPHJlcGxhY2VhYmxlPnN0cmluZzwvcmVwbGFjZWFibGU+Cisg ICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICA8bGl0ZXJhbD4ganNvbmJfcGF0 aF9xdWVyeSgnIiAgaGVsbG8iJywgJyQubHRyaW0oKScpPC9saXRlcmFsPgorICAgICAgICA8cmV0 dXJudmFsdWU+ImhlbGxvIjwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxw YXJhPgorICAgICAgICA8bGl0ZXJhbD5qc29uYl9wYXRoX3F1ZXJ5KCcienp6eXRlc3QiJywgJyQu bHRyaW0oInh5eiIpJyk8L2xpdGVyYWw+CisgICAgICAgIDxyZXR1cm52YWx1ZT4idGVzdCI8L3Jl dHVybnZhbHVlPgorICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICAgPC9yb3c+CisKKyAgICAg IDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPHJlcGxhY2VhYmxlPnN0cmluZzwvcmVwbGFjZWFi bGU+IDxsaXRlcmFsPi48L2xpdGVyYWw+IDxsaXRlcmFsPnJ0cmltKFsgPHJlcGxhY2VhYmxlPmNo YXJhY3RlcnM8L3JlcGxhY2VhYmxlPiBdKTwvbGl0ZXJhbD4KKyAgICAgICAgPHJldHVybnZhbHVl PjxyZXBsYWNlYWJsZT5zdHJpbmc8L3JlcGxhY2VhYmxlPjwvcmV0dXJudmFsdWU+CisgICAgICAg PC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBTdHJpbmcgd2l0aCB0aGUgbG9uZ2VzdCBz dHJpbmcgY29udGFpbmluZyBvbmx5IHNwYWNlcyBvciB0aGUKKyAgICAgICAgY2hhcmFjdGVycyBp biA8cmVwbGFjZWFibGU+Y2hhcmFjdGVyczwvcmVwbGFjZWFibGU+IHJlbW92ZWQgZnJvbSB0aGUK KyAgICAgICAgZW5kIG9mIDxyZXBsYWNlYWJsZT5zdHJpbmc8L3JlcGxhY2VhYmxlPgorICAgICAg IDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgPGxpdGVyYWw+anNvbmJfcGF0aF9xdWVy eSgnImhlbGxvICAiJywgJyQucnRyaW0oKScpPC9saXRlcmFsPgorICAgICAgICA8cmV0dXJudmFs dWU+ImhlbGxvIjwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgor ICAgICAgICA8bGl0ZXJhbD5qc29uYl9wYXRoX3F1ZXJ5KCcidGVzdHh4engiJywgJyQucnRyaW0o Inh5eiIpJyk8L2xpdGVyYWw+CisgICAgICAgIDxyZXR1cm52YWx1ZT4idGVzdCI8L3JldHVybnZh bHVlPgorICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+ CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNf c2lnbmF0dXJlIj4KKyAgICAgICAgPHJlcGxhY2VhYmxlPnN0cmluZzwvcmVwbGFjZWFibGU+IDxs aXRlcmFsPi48L2xpdGVyYWw+IDxsaXRlcmFsPmJ0cmltKFsgPHJlcGxhY2VhYmxlPmNoYXJhY3Rl cnM8L3JlcGxhY2VhYmxlPiBdKTwvbGl0ZXJhbD4KKyAgICAgICAgPHJldHVybnZhbHVlPjxyZXBs YWNlYWJsZT5zdHJpbmc8L3JlcGxhY2VhYmxlPjwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJh PgorICAgICAgIDxwYXJhPgorICAgICAgICBTdHJpbmcgd2l0aCB0aGUgbG9uZ2VzdCBzdHJpbmcg Y29udGFpbmluZyBvbmx5IHNwYWNlcyBvciB0aGUKKyAgICAgICAgY2hhcmFjdGVycyBpbiA8cmVw bGFjZWFibGU+Y2hhcmFjdGVyczwvcmVwbGFjZWFibGU+IHJlbW92ZWQgZnJvbSB0aGUKKyAgICAg ICAgc3RhcnQgYW5kIGVuZCBvZiA8cmVwbGFjZWFibGU+c3RyaW5nPC9yZXBsYWNlYWJsZT4KKyAg ICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIDxsaXRlcmFsPmpzb25iX3BhdGhf cXVlcnkoJyIgIGhlbGxvICAiJywgJyQuYnRyaW0oKScpPC9saXRlcmFsPgorICAgICAgICA8cmV0 dXJudmFsdWU+ImhlbGxvIjwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxw YXJhPgorICAgICAgICA8bGl0ZXJhbD5qc29uYl9wYXRoX3F1ZXJ5KCcieHl4dHJpbXl5eCInLCAn JC5idHJpbSgieHl6IiknKTwvbGl0ZXJhbD4KKyAgICAgICAgPHJldHVybnZhbHVlPiJ0cmltIjwv cmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgICA8L3Jvdz4KKwogICAg ICA8L3Rib2R5PgogICAgIDwvdGdyb3VwPgogICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9qc29ucGF0aC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25w YXRoLmMKaW5kZXggMThhODA0NmQ2Y2YuLjc1NjQ3OWQ2MjZkIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvanNvbnBhdGguYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNv bnBhdGguYwpAQCAtMjk4LDYgKzI5OCw4IEBAIGZsYXR0ZW5Kc29uUGF0aFBhcnNlSXRlbShTdHJp bmdJbmZvIGJ1ZiwgaW50ICpyZXN1bHQsIHN0cnVjdCBOb2RlICplc2NvbnRleHQsCiAJCWNhc2Ug anBpTW9kOgogCQljYXNlIGpwaVN0YXJ0c1dpdGg6CiAJCWNhc2UganBpRGVjaW1hbDoKKwkJY2Fz ZSBqcGlTdHJSZXBsYWNlOgorCQljYXNlIGpwaVN0clNwbGl0UGFydDoKIAkJCXsKIAkJCQkvKgog CQkJCSAqIEZpcnN0LCByZXNlcnZlIHBsYWNlIGZvciBsZWZ0L3JpZ2h0IGFyZydzIHBvc2l0aW9u cywgdGhlbgpAQCAtMzYyLDYgKzM2NCw5IEBAIGZsYXR0ZW5Kc29uUGF0aFBhcnNlSXRlbShTdHJp bmdJbmZvIGJ1ZiwgaW50ICpyZXN1bHQsIHN0cnVjdCBOb2RlICplc2NvbnRleHQsCiAJCWNhc2Ug anBpVGltZVR6OgogCQljYXNlIGpwaVRpbWVzdGFtcDoKIAkJY2FzZSBqcGlUaW1lc3RhbXBUejoK KwkJY2FzZSBqcGlTdHJMdHJpbToKKwkJY2FzZSBqcGlTdHJSdHJpbToKKwkJY2FzZSBqcGlTdHJC dHJpbToKIAkJCXsKIAkJCQlpbnQzMgkJYXJnID0gcmVzZXJ2ZVNwYWNlRm9ySXRlbVBvaW50ZXIo YnVmKTsKIApAQCAtNDU3LDYgKzQ2Miw5IEBAIGZsYXR0ZW5Kc29uUGF0aFBhcnNlSXRlbShTdHJp bmdJbmZvIGJ1ZiwgaW50ICpyZXN1bHQsIHN0cnVjdCBOb2RlICplc2NvbnRleHQsCiAJCWNhc2Ug anBpSW50ZWdlcjoKIAkJY2FzZSBqcGlOdW1iZXI6CiAJCWNhc2UganBpU3RyaW5nRnVuYzoKKwkJ Y2FzZSBqcGlTdHJMb3dlcjoKKwkJY2FzZSBqcGlTdHJVcHBlcjoKKwkJY2FzZSBqcGlTdHJJbml0 Y2FwOgogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVk IGpzb25wYXRoIGl0ZW0gdHlwZTogJWQiLCBpdGVtLT50eXBlKTsKQEAgLTgzMSw2ICs4MzksNjAg QEAgcHJpbnRKc29uUGF0aEl0ZW0oU3RyaW5nSW5mbyBidWYsIEpzb25QYXRoSXRlbSAqdiwgYm9v bCBpbktleSwKIAkJCX0KIAkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyknKTsKIAkJCWJy ZWFrOworCQljYXNlIGpwaVN0clJlcGxhY2U6CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1 ZiwgIi5yZXBsYWNlKCIpOworCQkJanNwR2V0TGVmdEFyZyh2LCAmZWxlbSk7CisJCQlwcmludEpz b25QYXRoSXRlbShidWYsICZlbGVtLCBmYWxzZSwgZmFsc2UpOworCQkJYXBwZW5kU3RyaW5nSW5m b0NoYXIoYnVmLCAnLCcpOworCQkJanNwR2V0UmlnaHRBcmcodiwgJmVsZW0pOworCQkJcHJpbnRK c29uUGF0aEl0ZW0oYnVmLCAmZWxlbSwgZmFsc2UsIGZhbHNlKTsKKwkJCWFwcGVuZFN0cmluZ0lu Zm9DaGFyKGJ1ZiwgJyknKTsKKwkJCWJyZWFrOworCQljYXNlIGpwaVN0ckxvd2VyOgorCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIubG93ZXIoKSIpOworCQkJYnJlYWs7CisJCWNhc2Ug anBpU3RyVXBwZXI6CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIi51cHBlcigpIik7 CisJCQlicmVhazsKKwkJY2FzZSBqcGlTdHJTcGxpdFBhcnQ6CisJCQlhcHBlbmRTdHJpbmdJbmZv U3RyaW5nKGJ1ZiwgIi5zcGxpdF9wYXJ0KCIpOworCQkJanNwR2V0TGVmdEFyZyh2LCAmZWxlbSk7 CisJCQlwcmludEpzb25QYXRoSXRlbShidWYsICZlbGVtLCBmYWxzZSwgZmFsc2UpOworCQkJYXBw ZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnLCcpOworCQkJanNwR2V0UmlnaHRBcmcodiwgJmVsZW0p OworCQkJcHJpbnRKc29uUGF0aEl0ZW0oYnVmLCAmZWxlbSwgZmFsc2UsIGZhbHNlKTsKKwkJCWFw cGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyknKTsKKwkJCWJyZWFrOworCQljYXNlIGpwaVN0ckx0 cmltOgorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIubHRyaW0oIik7CisJCQlpZiAo di0+Y29udGVudC5hcmcpCisJCQl7CisJCQkJanNwR2V0QXJnKHYsICZlbGVtKTsKKwkJCQlwcmlu dEpzb25QYXRoSXRlbShidWYsICZlbGVtLCBmYWxzZSwgZmFsc2UpOworCQkJfQorCQkJYXBwZW5k U3RyaW5nSW5mb0NoYXIoYnVmLCAnKScpOworCQkJYnJlYWs7CisJCWNhc2UganBpU3RyUnRyaW06 CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIi5ydHJpbSgiKTsKKwkJCWlmICh2LT5j b250ZW50LmFyZykKKwkJCXsKKwkJCQlqc3BHZXRBcmcodiwgJmVsZW0pOworCQkJCXByaW50SnNv blBhdGhJdGVtKGJ1ZiwgJmVsZW0sIGZhbHNlLCBmYWxzZSk7CisJCQl9CisJCQlhcHBlbmRTdHJp bmdJbmZvQ2hhcihidWYsICcpJyk7CisJCQlicmVhazsKKwkJY2FzZSBqcGlTdHJCdHJpbToKKwkJ CWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiLmJ0cmltKCIpOworCQkJaWYgKHYtPmNvbnRl bnQuYXJnKQorCQkJeworCQkJCWpzcEdldEFyZyh2LCAmZWxlbSk7CisJCQkJcHJpbnRKc29uUGF0 aEl0ZW0oYnVmLCAmZWxlbSwgZmFsc2UsIGZhbHNlKTsKKwkJCX0KKwkJCWFwcGVuZFN0cmluZ0lu Zm9DaGFyKGJ1ZiwgJyknKTsKKwkJCWJyZWFrOworCQljYXNlIGpwaVN0ckluaXRjYXA6CisJCQlh cHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIi5pbml0Y2FwKCkiKTsKKwkJCWJyZWFrOwogCQlk ZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBqc29ucGF0aCBpdGVtIHR5cGU6 ICVkIiwgdi0+dHlwZSk7CiAJfQpAQCAtOTE0LDYgKzk3NiwyMiBAQCBqc3BPcGVyYXRpb25OYW1l KEpzb25QYXRoSXRlbVR5cGUgdHlwZSkKIAkJCXJldHVybiAidGltZXN0YW1wIjsKIAkJY2FzZSBq cGlUaW1lc3RhbXBUejoKIAkJCXJldHVybiAidGltZXN0YW1wX3R6IjsKKwkJY2FzZSBqcGlTdHJS ZXBsYWNlOgorCQkJcmV0dXJuICJyZXBsYWNlIjsKKwkJY2FzZSBqcGlTdHJMb3dlcjoKKwkJCXJl dHVybiAibG93ZXIiOworCQljYXNlIGpwaVN0clVwcGVyOgorCQkJcmV0dXJuICJ1cHBlciI7CisJ CWNhc2UganBpU3RyTHRyaW06CisJCQlyZXR1cm4gImx0cmltIjsKKwkJY2FzZSBqcGlTdHJSdHJp bToKKwkJCXJldHVybiAicnRyaW0iOworCQljYXNlIGpwaVN0ckJ0cmltOgorCQkJcmV0dXJuICJi dHJpbSI7CisJCWNhc2UganBpU3RySW5pdGNhcDoKKwkJCXJldHVybiAiaW5pdGNhcCI7CisJCWNh c2UganBpU3RyU3BsaXRQYXJ0OgorCQkJcmV0dXJuICJzcGxpdF9wYXJ0IjsKIAkJZGVmYXVsdDoK IAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQganNvbnBhdGggaXRlbSB0eXBlOiAlZCIsIHR5 cGUpOwogCQkJcmV0dXJuIE5VTEw7CkBAIC0xMDE2LDYgKzEwOTQsOSBAQCBqc3BJbml0QnlCdWZm ZXIoSnNvblBhdGhJdGVtICp2LCBjaGFyICpiYXNlLCBpbnQzMiBwb3MpCiAJCWNhc2UganBpSW50 ZWdlcjoKIAkJY2FzZSBqcGlOdW1iZXI6CiAJCWNhc2UganBpU3RyaW5nRnVuYzoKKwkJY2FzZSBq cGlTdHJMb3dlcjoKKwkJY2FzZSBqcGlTdHJVcHBlcjoKKwkJY2FzZSBqcGlTdHJJbml0Y2FwOgog CQkJYnJlYWs7CiAJCWNhc2UganBpU3RyaW5nOgogCQljYXNlIGpwaUtleToKQEAgLTEwNDEsNiAr MTEyMiw4IEBAIGpzcEluaXRCeUJ1ZmZlcihKc29uUGF0aEl0ZW0gKnYsIGNoYXIgKmJhc2UsIGlu dDMyIHBvcykKIAkJY2FzZSBqcGlNb2Q6CiAJCWNhc2UganBpU3RhcnRzV2l0aDoKIAkJY2FzZSBq cGlEZWNpbWFsOgorCQljYXNlIGpwaVN0clJlcGxhY2U6CisJCWNhc2UganBpU3RyU3BsaXRQYXJ0 OgogCQkJcmVhZF9pbnQzMih2LT5jb250ZW50LmFyZ3MubGVmdCwgYmFzZSwgcG9zKTsKIAkJCXJl YWRfaW50MzIodi0+Y29udGVudC5hcmdzLnJpZ2h0LCBiYXNlLCBwb3MpOwogCQkJYnJlYWs7CkBA IC0xMDU1LDYgKzExMzgsOSBAQCBqc3BJbml0QnlCdWZmZXIoSnNvblBhdGhJdGVtICp2LCBjaGFy ICpiYXNlLCBpbnQzMiBwb3MpCiAJCWNhc2UganBpVGltZVR6OgogCQljYXNlIGpwaVRpbWVzdGFt cDoKIAkJY2FzZSBqcGlUaW1lc3RhbXBUejoKKwkJY2FzZSBqcGlTdHJMdHJpbToKKwkJY2FzZSBq cGlTdHJSdHJpbToKKwkJY2FzZSBqcGlTdHJCdHJpbToKIAkJCXJlYWRfaW50MzIodi0+Y29udGVu dC5hcmcsIGJhc2UsIHBvcyk7CiAJCQlicmVhazsKIAkJY2FzZSBqcGlJbmRleEFycmF5OgpAQCAt MTA5MCw3ICsxMTc2LDEwIEBAIGpzcEdldEFyZyhKc29uUGF0aEl0ZW0gKnYsIEpzb25QYXRoSXRl bSAqYSkKIAkJICAgdi0+dHlwZSA9PSBqcGlUaW1lIHx8CiAJCSAgIHYtPnR5cGUgPT0ganBpVGlt ZVR6IHx8CiAJCSAgIHYtPnR5cGUgPT0ganBpVGltZXN0YW1wIHx8Ci0JCSAgIHYtPnR5cGUgPT0g anBpVGltZXN0YW1wVHopOworCQkgICB2LT50eXBlID09IGpwaVRpbWVzdGFtcFR6IHx8CisJCSAg IHYtPnR5cGUgPT0ganBpU3RyTHRyaW0gfHwKKwkJICAgdi0+dHlwZSA9PSBqcGlTdHJSdHJpbSB8 fAorCQkgICB2LT50eXBlID09IGpwaVN0ckJ0cmltKTsKIAogCWpzcEluaXRCeUJ1ZmZlcihhLCB2 LT5iYXNlLCB2LT5jb250ZW50LmFyZyk7CiB9CkBAIC0xMTUyLDcgKzEyNDEsMTUgQEAganNwR2V0 TmV4dChKc29uUGF0aEl0ZW0gKnYsIEpzb25QYXRoSXRlbSAqYSkKIAkJCSAgIHYtPnR5cGUgPT0g anBpVGltZSB8fAogCQkJICAgdi0+dHlwZSA9PSBqcGlUaW1lVHogfHwKIAkJCSAgIHYtPnR5cGUg PT0ganBpVGltZXN0YW1wIHx8Ci0JCQkgICB2LT50eXBlID09IGpwaVRpbWVzdGFtcFR6KTsKKwkJ CSAgIHYtPnR5cGUgPT0ganBpVGltZXN0YW1wVHogfHwKKwkJCSAgIHYtPnR5cGUgPT0ganBpU3Ry UmVwbGFjZSB8fAorCQkJICAgdi0+dHlwZSA9PSBqcGlTdHJMb3dlciB8fAorCQkJICAgdi0+dHlw ZSA9PSBqcGlTdHJVcHBlciB8fAorCQkJICAgdi0+dHlwZSA9PSBqcGlTdHJMdHJpbSB8fAorCQkJ ICAgdi0+dHlwZSA9PSBqcGlTdHJSdHJpbSB8fAorCQkJICAgdi0+dHlwZSA9PSBqcGlTdHJCdHJp bSB8fAorCQkJICAgdi0+dHlwZSA9PSBqcGlTdHJJbml0Y2FwIHx8CisJCQkgICB2LT50eXBlID09 IGpwaVN0clNwbGl0UGFydCk7CiAKIAkJaWYgKGEpCiAJCQlqc3BJbml0QnlCdWZmZXIoYSwgdi0+ YmFzZSwgdi0+bmV4dFBvcyk7CkBAIC0xMTc5LDcgKzEyNzYsOSBAQCBqc3BHZXRMZWZ0QXJnKEpz b25QYXRoSXRlbSAqdiwgSnNvblBhdGhJdGVtICphKQogCQkgICB2LT50eXBlID09IGpwaURpdiB8 fAogCQkgICB2LT50eXBlID09IGpwaU1vZCB8fAogCQkgICB2LT50eXBlID09IGpwaVN0YXJ0c1dp dGggfHwKLQkJICAgdi0+dHlwZSA9PSBqcGlEZWNpbWFsKTsKKwkJICAgdi0+dHlwZSA9PSBqcGlE ZWNpbWFsIHx8CisJCSAgIHYtPnR5cGUgPT0ganBpU3RyUmVwbGFjZSB8fAorCQkgICB2LT50eXBl ID09IGpwaVN0clNwbGl0UGFydCk7CiAKIAlqc3BJbml0QnlCdWZmZXIoYSwgdi0+YmFzZSwgdi0+ Y29udGVudC5hcmdzLmxlZnQpOwogfQpAQCAtMTIwMSw3ICsxMzAwLDkgQEAganNwR2V0UmlnaHRB cmcoSnNvblBhdGhJdGVtICp2LCBKc29uUGF0aEl0ZW0gKmEpCiAJCSAgIHYtPnR5cGUgPT0ganBp RGl2IHx8CiAJCSAgIHYtPnR5cGUgPT0ganBpTW9kIHx8CiAJCSAgIHYtPnR5cGUgPT0ganBpU3Rh cnRzV2l0aCB8fAotCQkgICB2LT50eXBlID09IGpwaURlY2ltYWwpOworCQkgICB2LT50eXBlID09 IGpwaURlY2ltYWwgfHwKKwkJICAgdi0+dHlwZSA9PSBqcGlTdHJSZXBsYWNlIHx8CisJCSAgIHYt PnR5cGUgPT0ganBpU3RyU3BsaXRQYXJ0KTsKIAogCWpzcEluaXRCeUJ1ZmZlcihhLCB2LT5iYXNl LCB2LT5jb250ZW50LmFyZ3MucmlnaHQpOwogfQpAQCAtMTUwMSw2ICsxNjAyLDE0IEBAIGpzcElz TXV0YWJsZVdhbGtlcihKc29uUGF0aEl0ZW0gKmpwaSwgc3RydWN0IEpzb25QYXRoTXV0YWJsZUNv bnRleHQgKmN4dCkKIAkJCWNhc2UganBpSW50ZWdlcjoKIAkJCWNhc2UganBpTnVtYmVyOgogCQkJ Y2FzZSBqcGlTdHJpbmdGdW5jOgorCQkJY2FzZSBqcGlTdHJSZXBsYWNlOgorCQkJY2FzZSBqcGlT dHJMb3dlcjoKKwkJCWNhc2UganBpU3RyVXBwZXI6CisJCQljYXNlIGpwaVN0ckx0cmltOgorCQkJ Y2FzZSBqcGlTdHJSdHJpbToKKwkJCWNhc2UganBpU3RyQnRyaW06CisJCQljYXNlIGpwaVN0cklu aXRjYXA6CisJCQljYXNlIGpwaVN0clNwbGl0UGFydDoKIAkJCQlzdGF0dXMgPSBqcGRzTm9uRGF0 ZVRpbWU7CiAJCQkJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9q c29ucGF0aF9leGVjLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGhfZXhlYy5jCmlu ZGV4IDUyYWUwYmE0Y2Y3Li4xZDVkMzVmNjc3ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2pzb25wYXRoX2V4ZWMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBh dGhfZXhlYy5jCkBAIC0zMDIsNiArMzAyLDggQEAgc3RhdGljIEpzb25QYXRoRXhlY1Jlc3VsdCBl eGVjdXRlTnVtZXJpY0l0ZW1NZXRob2QoSnNvblBhdGhFeGVjQ29udGV4dCAqY3h0LAogCQkJCQkJ CQkJCQkJICAgSnNvblZhbHVlTGlzdCAqZm91bmQpOwogc3RhdGljIEpzb25QYXRoRXhlY1Jlc3Vs dCBleGVjdXRlRGF0ZVRpbWVNZXRob2QoSnNvblBhdGhFeGVjQ29udGV4dCAqY3h0LCBKc29uUGF0 aEl0ZW0gKmpzcCwKIAkJCQkJCQkJCQkJCUpzb25iVmFsdWUgKmpiLCBKc29uVmFsdWVMaXN0ICpm b3VuZCk7CitzdGF0aWMgSnNvblBhdGhFeGVjUmVzdWx0IGV4ZWN1dGVTdHJpbmdJbnRlcm5hbE1l dGhvZChKc29uUGF0aEV4ZWNDb250ZXh0ICpjeHQsIEpzb25QYXRoSXRlbSAqanNwLAorCQkJCQkJ CQkJCQkJCSAgSnNvbmJWYWx1ZSAqamIsIEpzb25WYWx1ZUxpc3QgKmZvdW5kKTsKIHN0YXRpYyBK c29uUGF0aEV4ZWNSZXN1bHQgZXhlY3V0ZUtleVZhbHVlTWV0aG9kKEpzb25QYXRoRXhlY0NvbnRl eHQgKmN4dCwKIAkJCQkJCQkJCQkJCUpzb25QYXRoSXRlbSAqanNwLCBKc29uYlZhbHVlICpqYiwg SnNvblZhbHVlTGlzdCAqZm91bmQpOwogc3RhdGljIEpzb25QYXRoRXhlY1Jlc3VsdCBhcHBlbmRC b29sUmVzdWx0KEpzb25QYXRoRXhlY0NvbnRleHQgKmN4dCwKQEAgLTE2NjEsNiArMTY2MywyMyBA QCBleGVjdXRlSXRlbU9wdFVud3JhcFRhcmdldChKc29uUGF0aEV4ZWNDb250ZXh0ICpjeHQsIEpz b25QYXRoSXRlbSAqanNwLAogCQkJfQogCQkJYnJlYWs7CiAKKwkJY2FzZSBqcGlTdHJSZXBsYWNl OgorCQljYXNlIGpwaVN0ckxvd2VyOgorCQljYXNlIGpwaVN0clVwcGVyOgorCQljYXNlIGpwaVN0 ckx0cmltOgorCQljYXNlIGpwaVN0clJ0cmltOgorCQljYXNlIGpwaVN0ckJ0cmltOgorCQljYXNl IGpwaVN0ckluaXRjYXA6CisJCWNhc2UganBpU3RyU3BsaXRQYXJ0OgorCQkJeworCQkJCWlmICh1 bndyYXAgJiYgSnNvbmJUeXBlKGpiKSA9PSBqYnZBcnJheSkKKwkJCQkJcmV0dXJuIGV4ZWN1dGVJ dGVtVW53cmFwVGFyZ2V0QXJyYXkoY3h0LCBqc3AsIGpiLCBmb3VuZCwgZmFsc2UpOworCisJCQkJ cmV0dXJuIGV4ZWN1dGVTdHJpbmdJbnRlcm5hbE1ldGhvZChjeHQsIGpzcCwgamIsIGZvdW5kKTsK KwkJCX0KKwkJCWJyZWFrOworCisKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29n bml6ZWQganNvbnBhdGggaXRlbSB0eXBlOiAlZCIsIGpzcC0+dHlwZSk7CiAJfQpAQCAtMjc5NCw2 ICsyODEzLDE5NCBAQCBleGVjdXRlRGF0ZVRpbWVNZXRob2QoSnNvblBhdGhFeGVjQ29udGV4dCAq Y3h0LCBKc29uUGF0aEl0ZW0gKmpzcCwKIAlyZXR1cm4gZXhlY3V0ZU5leHRJdGVtKGN4dCwganNw LCAmZWxlbSwgamIsIGZvdW5kLCBoYXNOZXh0KTsKIH0KIAorLyoKKyAqIEltcGxlbWVudGF0aW9u IG9mIC51cHBlcigpLCBsb3dlcigpIGV0LiBhbC4gbWV0aG9kcywKKyAqIHRoYXQgZm9yd2FyZCB0 aGVpciBhY3R1YWwgaW1wbGVtZW50YXRpb24gdG8gaW50ZXJuYWwgZnVuY3Rpb25zLgorICovCitz dGF0aWMgSnNvblBhdGhFeGVjUmVzdWx0CitleGVjdXRlU3RyaW5nSW50ZXJuYWxNZXRob2QoSnNv blBhdGhFeGVjQ29udGV4dCAqY3h0LCBKc29uUGF0aEl0ZW0gKmpzcCwKKwkJCQkJCQlKc29uYlZh bHVlICpqYiwgSnNvblZhbHVlTGlzdCAqZm91bmQpCit7CisJSnNvbmJWYWx1ZQlqYnZidWY7CisJ Ym9vbAkJaGFzTmV4dDsKKwlKc29uUGF0aEV4ZWNSZXN1bHQgcmVzID0ganBlck5vdEZvdW5kOwor CUpzb25QYXRoSXRlbSBlbGVtOworCURhdHVtCQlzdHI7CQkJLyogRGF0dW0gcmVwcmVzZW50YXRp b24gZm9yIHRoZSBjdXJyZW50IHN0cmluZworCQkJCQkJCQkgKiB2YWx1ZS4gVGhlIGZpcnN0IGFy Z3VtZW50IHRvIGludGVybmFsCisJCQkJCQkJCSAqIGZ1bmN0aW9ucyAqLworCWNoYXIJICAgKnJl c1N0cjsKKworCUFzc2VydChqc3AtPnR5cGUgPT0ganBpU3RyUmVwbGFjZSB8fAorCQkgICBqc3At PnR5cGUgPT0ganBpU3RyTG93ZXIgfHwKKwkJICAganNwLT50eXBlID09IGpwaVN0clVwcGVyIHx8 CisJCSAgIGpzcC0+dHlwZSA9PSBqcGlTdHJMdHJpbSB8fAorCQkgICBqc3AtPnR5cGUgPT0ganBp U3RyUnRyaW0gfHwKKwkJICAganNwLT50eXBlID09IGpwaVN0ckJ0cmltIHx8CisJCSAgIGpzcC0+ dHlwZSA9PSBqcGlTdHJJbml0Y2FwIHx8CisJCSAgIGpzcC0+dHlwZSA9PSBqcGlTdHJTcGxpdFBh cnQpOworCisJaWYgKCEoamIgPSBnZXRTY2FsYXIoamIsIGpidlN0cmluZykpKQorCQlSRVRVUk5f RVJST1IoZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkgKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BB UkFNRVRFUl9WQUxVRSksCisJCQkJCQkJICBlcnJtc2coImpzb25wYXRoIGl0ZW0gbWV0aG9kIC4l cygpIGNhbiBvbmx5IGJlIGFwcGxpZWQgdG8gYSBzdHJpbmciLAorCQkJCQkJCQkJIGpzcE9wZXJh dGlvbk5hbWUoanNwLT50eXBlKSkpKSk7CisKKwlzdHIgPSBQb2ludGVyR2V0RGF0dW0oY3N0cmlu Z190b190ZXh0X3dpdGhfbGVuKGpiLT52YWwuc3RyaW5nLnZhbCwgamItPnZhbC5zdHJpbmcubGVu KSk7CisKKwkvKiBJbnRlcm5hbCBzdHJpbmcgZnVuY3Rpb25zIHRoYXQgYWNjZXB0IG5vIGFyZ3Vt ZW50cyAqLworCXN3aXRjaCAoanNwLT50eXBlKQorCXsKKwkJY2FzZSBqcGlTdHJSZXBsYWNlOgor CQkJeworCQkJCWNoYXIJICAgKmZyb21fc3RyLAorCQkJCQkJICAgKnRvX3N0cjsKKwkJCQlpbnQJ CQlmcm9tX2xlbiwKKwkJCQkJCQl0b19sZW47CisKKwkJCQlqc3BHZXRMZWZ0QXJnKGpzcCwgJmVs ZW0pOworCQkJCWlmIChlbGVtLnR5cGUgIT0ganBpU3RyaW5nKQorCQkJCQllbG9nKEVSUk9SLCAi aW52YWxpZCBqc29ucGF0aCBpdGVtIHR5cGUgZm9yIC5yZXBsYWNlKCkgZnJvbSIpOworCisJCQkJ ZnJvbV9zdHIgPSBqc3BHZXRTdHJpbmcoJmVsZW0sICZmcm9tX2xlbik7CisKKwkJCQlqc3BHZXRS aWdodEFyZyhqc3AsICZlbGVtKTsKKwkJCQlpZiAoZWxlbS50eXBlICE9IGpwaVN0cmluZykKKwkJ CQkJZWxvZyhFUlJPUiwgImludmFsaWQganNvbnBhdGggaXRlbSB0eXBlIGZvciAucmVwbGFjZSgp IHRvIik7CisKKwkJCQl0b19zdHIgPSBqc3BHZXRTdHJpbmcoJmVsZW0sICZ0b19sZW4pOworCisJ CQkJcmVzU3RyID0gVGV4dERhdHVtR2V0Q1N0cmluZyhEaXJlY3RGdW5jdGlvbkNhbGwzQ29sbChy ZXBsYWNlX3RleHQsCisJCQkJCQkJCQkJCQkJCQkJCSBERUZBVUxUX0NPTExBVElPTl9PSUQsCisJ CQkJCQkJCQkJCQkJCQkJCSBzdHIsCisJCQkJCQkJCQkJCQkJCQkJCSBDU3RyaW5nR2V0VGV4dERh dHVtKGZyb21fc3RyKSwKKwkJCQkJCQkJCQkJCQkJCQkJIENTdHJpbmdHZXRUZXh0RGF0dW0odG9f c3RyKSkpOworCQkJCWJyZWFrOworCQkJfQorCQljYXNlIGpwaVN0ckxvd2VyOgorCQkJcmVzU3Ry ID0gVGV4dERhdHVtR2V0Q1N0cmluZyhEaXJlY3RGdW5jdGlvbkNhbGwxQ29sbChsb3dlciwgREVG QVVMVF9DT0xMQVRJT05fT0lELCBzdHIpKTsKKwkJCWJyZWFrOworCQljYXNlIGpwaVN0clVwcGVy OgorCQkJcmVzU3RyID0gVGV4dERhdHVtR2V0Q1N0cmluZyhEaXJlY3RGdW5jdGlvbkNhbGwxQ29s bCh1cHBlciwgREVGQVVMVF9DT0xMQVRJT05fT0lELCBzdHIpKTsKKwkJCWJyZWFrOworCQljYXNl IGpwaVN0ckx0cmltOgorCQljYXNlIGpwaVN0clJ0cmltOgorCQljYXNlIGpwaVN0ckJ0cmltOgor CQkJeworCQkJCWNoYXIJICAgKmNoYXJhY3RlcnNfc3RyOworCQkJCWludAkJCWNoYXJhY3RlcnNf bGVuOworCQkJCVBHRnVuY3Rpb24JZnVuYyA9IE5VTEw7CisKKwkJCQlpZiAoanNwLT5jb250ZW50 LmFyZykKKwkJCQl7CisJCQkJCXN3aXRjaCAoanNwLT50eXBlKQorCQkJCQl7CisJCQkJCQljYXNl IGpwaVN0ckx0cmltOgorCQkJCQkJCWZ1bmMgPSBsdHJpbTsKKwkJCQkJCQlicmVhazsKKwkJCQkJ CWNhc2UganBpU3RyUnRyaW06CisJCQkJCQkJZnVuYyA9IHJ0cmltOworCQkJCQkJCWJyZWFrOwor CQkJCQkJY2FzZSBqcGlTdHJCdHJpbToKKwkJCQkJCQlmdW5jID0gYnRyaW07CisJCQkJCQkJYnJl YWs7CisJCQkJCQlkZWZhdWx0OjsKKwkJCQkJfQorCQkJCQlqc3BHZXRBcmcoanNwLCAmZWxlbSk7 CisJCQkJCWlmIChlbGVtLnR5cGUgIT0ganBpU3RyaW5nKQorCQkJCQkJZWxvZyhFUlJPUiwgImlu dmFsaWQganNvbnBhdGggaXRlbSB0eXBlIGZvciAuJXMoKSBhcmd1bWVudCIsIGpzcE9wZXJhdGlv bk5hbWUoanNwLT50eXBlKSk7CisKKwkJCQkJY2hhcmFjdGVyc19zdHIgPSBqc3BHZXRTdHJpbmco JmVsZW0sICZjaGFyYWN0ZXJzX2xlbik7CisJCQkJCXJlc1N0ciA9IFRleHREYXR1bUdldENTdHJp bmcoRGlyZWN0RnVuY3Rpb25DYWxsMkNvbGwoZnVuYywKKwkJCQkJCQkJCQkJCQkJCQkJCSBERUZB VUxUX0NPTExBVElPTl9PSUQsIHN0ciwKKwkJCQkJCQkJCQkJCQkJCQkJCSBDU3RyaW5nR2V0VGV4 dERhdHVtKGNoYXJhY3RlcnNfc3RyKSkpOworCQkJCQlicmVhazsKKwkJCQl9CisKKwkJCQlzd2l0 Y2ggKGpzcC0+dHlwZSkKKwkJCQl7CisJCQkJCWNhc2UganBpU3RyTHRyaW06CisJCQkJCQlmdW5j ID0gbHRyaW0xOworCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UganBpU3RyUnRyaW06CisJCQkJCQlm dW5jID0gcnRyaW0xOworCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UganBpU3RyQnRyaW06CisJCQkJ CQlmdW5jID0gYnRyaW0xOworCQkJCQkJYnJlYWs7CisJCQkJCWRlZmF1bHQ6OworCQkJCX0KKwkJ CQlyZXNTdHIgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKERpcmVjdEZ1bmN0aW9uQ2FsbDFDb2xsKGZ1 bmMsCisJCQkJCQkJCQkJCQkJCQkJCSBERUZBVUxUX0NPTExBVElPTl9PSUQsIHN0cikpOworCQkJ CWJyZWFrOworCQkJfQorCisJCWNhc2UganBpU3RySW5pdGNhcDoKKwkJCXJlc1N0ciA9IFRleHRE YXR1bUdldENTdHJpbmcoRGlyZWN0RnVuY3Rpb25DYWxsMUNvbGwoaW5pdGNhcCwgREVGQVVMVF9D T0xMQVRJT05fT0lELCBzdHIpKTsKKwkJCWJyZWFrOworCQljYXNlIGpwaVN0clNwbGl0UGFydDoK KwkJCXsKKwkJCQljaGFyCSAgICpmcm9tX3N0cjsKKwkJCQlOdW1lcmljCQluOworCQkJCWludAkJ CWZyb21fbGVuOworCisJCQkJanNwR2V0TGVmdEFyZyhqc3AsICZlbGVtKTsKKwkJCQlpZiAoZWxl bS50eXBlICE9IGpwaVN0cmluZykKKwkJCQkJZWxvZyhFUlJPUiwgImludmFsaWQganNvbnBhdGgg aXRlbSB0eXBlIGZvciAuc3BsaXRfcGFydCgpIik7CisKKwkJCQlmcm9tX3N0ciA9IGpzcEdldFN0 cmluZygmZWxlbSwgJmZyb21fbGVuKTsKKworCQkJCWpzcEdldFJpZ2h0QXJnKGpzcCwgJmVsZW0p OworCQkJCWlmIChlbGVtLnR5cGUgIT0ganBpTnVtZXJpYykKKwkJCQkJZWxvZyhFUlJPUiwgImlu dmFsaWQganNvbnBhdGggaXRlbSB0eXBlIGZvciAuc3BsaXRfcGFydCgpIik7CisKKwkJCQluID0g anNwR2V0TnVtZXJpYygmZWxlbSk7CisKKwkJCQlyZXNTdHIgPSBUZXh0RGF0dW1HZXRDU3RyaW5n KERpcmVjdEZ1bmN0aW9uQ2FsbDNDb2xsKHNwbGl0X3BhcnQsCisJCQkJCQkJCQkJCQkJCQkJCSBE RUZBVUxUX0NPTExBVElPTl9PSUQsCisJCQkJCQkJCQkJCQkJCQkJCSBzdHIsCisJCQkJCQkJCQkJ CQkJCQkJCSBDU3RyaW5nR2V0VGV4dERhdHVtKGZyb21fc3RyKSwKKwkJCQkJCQkJCQkJCQkJCQkJ IERpcmVjdEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19pbnQ0LCBOdW1lcmljR2V0RGF0dW0obikpKSk7 CisJCQkJYnJlYWs7CisJCQl9CisJCWRlZmF1bHQ6CisJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0 ZWQganNvbnBhdGggaXRlbSB0eXBlOiAlZCIsIGpzcC0+dHlwZSk7CisJfQorCisJaWYgKHJlc1N0 cikKKwkJcmVzID0ganBlck9rOworCisJaGFzTmV4dCA9IGpzcEdldE5leHQoanNwLCAmZWxlbSk7 CisKKwlpZiAoIWhhc05leHQgJiYgIWZvdW5kKQorCQlyZXR1cm4gcmVzOworCisJamIgPSBoYXNO ZXh0ID8gJmpidmJ1ZiA6IHBhbGxvYyhzaXplb2YoKmpiKSk7CisKKwkvKiBDcmVhdGUgdGhlIGFw cHJvcHJpYXRlIGpiIHZhbHVlIHRvIHJldHVybiAqLworCXN3aXRjaCAoanNwLT50eXBlKQorCXsK KwkJCS8qIENhc2VzIGZvciBmdW5jdGlvbnMgdGhhdCByZXR1cm4gdGV4dCAqLworCQljYXNlIGpw aVN0clJlcGxhY2U6CisJCWNhc2UganBpU3RyTG93ZXI6CisJCWNhc2UganBpU3RyVXBwZXI6CisJ CWNhc2UganBpU3RyTHRyaW06CisJCWNhc2UganBpU3RyUnRyaW06CisJCWNhc2UganBpU3RyQnRy aW06CisJCWNhc2UganBpU3RySW5pdGNhcDoKKwkJY2FzZSBqcGlTdHJTcGxpdFBhcnQ6CisJCQlq Yi0+dHlwZSA9IGpidlN0cmluZzsKKwkJCWpiLT52YWwuc3RyaW5nLnZhbCA9IHJlc1N0cjsKKwkJ CWpiLT52YWwuc3RyaW5nLmxlbiA9IHN0cmxlbihqYi0+dmFsLnN0cmluZy52YWwpOworCQkJYnJl YWs7CisJCWRlZmF1bHQ6CisJCQk7CisJCQkvKiBkbyBub3RoaW5nICovCisJCQlBc3NlcnQoZmFs c2UpOworCX0KKworCXJldHVybiBleGVjdXRlTmV4dEl0ZW0oY3h0LCBqc3AsICZlbGVtLCBqYiwg Zm91bmQsIGhhc05leHQpOworfQorCiAvKgogICogSW1wbGVtZW50YXRpb24gb2YgLmtleXZhbHVl KCkgbWV0aG9kLgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29ucGF0 aF9ncmFtLnkgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGhfZ3JhbS55CmluZGV4IDhl YzRjYTMzMjEyLi5jMDc3ZDY0ZDJmNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2pzb25wYXRoX2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGhfZ3Jh bS55CkBAIC04Niw2ICs4Niw4IEBAIHN0YXRpYyBib29sIG1ha2VJdGVtTGlrZVJlZ2V4KEpzb25Q YXRoUGFyc2VJdGVtICpleHByLAogJXRva2VuCTxzdHI+CQlEQVRFVElNRV9QCiAldG9rZW4JPHN0 cj4JCUJJR0lOVF9QIEJPT0xFQU5fUCBEQVRFX1AgREVDSU1BTF9QIElOVEVHRVJfUCBOVU1CRVJf UAogJXRva2VuCTxzdHI+CQlTVFJJTkdGVU5DX1AgVElNRV9QIFRJTUVfVFpfUCBUSU1FU1RBTVBf UCBUSU1FU1RBTVBfVFpfUAorJXRva2VuCTxzdHI+CQlTVFJfUkVQTEFDRV9QIFNUUl9MT1dFUl9Q IFNUUl9VUFBFUl9QIFNUUl9MVFJJTV9QIFNUUl9SVFJJTV9QIFNUUl9CVFJJTV9QCisJCQkJCVNU Ul9JTklUQ0FQX1AgU1RSX1NQTElUX1BBUlRfUAogCiAldHlwZQk8cmVzdWx0PglyZXN1bHQKIApA QCAtOTUsNyArOTcsNyBAQCBzdGF0aWMgYm9vbCBtYWtlSXRlbUxpa2VSZWdleChKc29uUGF0aFBh cnNlSXRlbSAqZXhwciwKIAkJCQkJc3RyX2VsZW0gb3B0X3N0cl9hcmcgaW50X2VsZW0KIAkJCQkJ dWludF9lbGVtIG9wdF91aW50X2FyZwogCi0ldHlwZQk8ZWxlbXM+CQlhY2Nlc3Nvcl9leHByIGlu dF9saXN0IG9wdF9pbnRfbGlzdAorJXR5cGUJPGVsZW1zPgkJYWNjZXNzb3JfZXhwciBpbnRfbGlz dCBvcHRfaW50X2xpc3Qgc3RyX2ludF9hcmdzIHN0cl9zdHJfYXJncwogCiAldHlwZQk8aW5kZXhz PglpbmRleF9saXN0CiAKQEAgLTI3OCw2ICsyODAsMTYgQEAgYWNjZXNzb3Jfb3A6CiAJCXsgJCQg PSBtYWtlSXRlbVVuYXJ5KGpwaVRpbWVzdGFtcCwgJDQpOyB9CiAJfCAnLicgVElNRVNUQU1QX1Ra X1AgJygnIG9wdF91aW50X2FyZyAnKScKIAkJeyAkJCA9IG1ha2VJdGVtVW5hcnkoanBpVGltZXN0 YW1wVHosICQ0KTsgfQorCXwgJy4nIFNUUl9SRVBMQUNFX1AgJygnIHN0cl9zdHJfYXJncyAnKScK KwkJeyAkJCA9IG1ha2VJdGVtQmluYXJ5KGpwaVN0clJlcGxhY2UsIGxpbml0aWFsKCQ0KSwgbHNl Y29uZCgkNCkpOyB9CisJfCAnLicgU1RSX1NQTElUX1BBUlRfUCAnKCcgc3RyX2ludF9hcmdzICcp JworCQl7ICQkID0gbWFrZUl0ZW1CaW5hcnkoanBpU3RyU3BsaXRQYXJ0LCBsaW5pdGlhbCgkNCks IGxzZWNvbmQoJDQpKTsgfQorCXwgJy4nIFNUUl9MVFJJTV9QICcoJyBvcHRfc3RyX2FyZyAnKScK KwkJeyAkJCA9IG1ha2VJdGVtVW5hcnkoanBpU3RyTHRyaW0sICQ0KTsgfQorCXwgJy4nIFNUUl9S VFJJTV9QICcoJyBvcHRfc3RyX2FyZyAnKScKKwkJeyAkJCA9IG1ha2VJdGVtVW5hcnkoanBpU3Ry UnRyaW0sICQ0KTsgfQorCXwgJy4nIFNUUl9CVFJJTV9QICcoJyBvcHRfc3RyX2FyZyAnKScKKwkJ eyAkJCA9IG1ha2VJdGVtVW5hcnkoanBpU3RyQnRyaW0sICQ0KTsgfQogCTsKIAogaW50X2VsZW06 CkBAIC0zMTcsNiArMzI5LDE0IEBAIG9wdF9zdHJfYXJnOgogCXwgLyogRU1QVFkgKi8JCQkJCXsg JCQgPSBOVUxMOyB9CiAJOwogCitzdHJfaW50X2FyZ3M6CisJc3RyX2VsZW0gJywnIGludF9lbGVt CQkJeyAkJCA9IGxpc3RfbWFrZTIoJDEsICQzKTsgfQorCTsKKworc3RyX3N0cl9hcmdzOgorCXN0 cl9lbGVtICcsJyBzdHJfZWxlbSAJCQl7ICQkID0gbGlzdF9tYWtlMigkMSwgJDMpOyB9CisJOwor CiBrZXk6CiAJa2V5X25hbWUJCQkJCQl7ICQkID0gbWFrZUl0ZW1LZXkoJiQxKTsgfQogCTsKQEAg LTM1Nyw2ICszNzcsOSBAQCBrZXlfbmFtZToKIAl8IFRJTUVfVFpfUAogCXwgVElNRVNUQU1QX1AK IAl8IFRJTUVTVEFNUF9UWl9QCisJfCBTVFJfTFRSSU1fUAorCXwgU1RSX1JUUklNX1AKKwl8IFNU Ul9CVFJJTV9QCiAJOwogCiBtZXRob2Q6CkBAIC0zNzMsNiArMzk2LDkgQEAgbWV0aG9kOgogCXwg SU5URUdFUl9QCQkJCQkJeyAkJCA9IGpwaUludGVnZXI7IH0KIAl8IE5VTUJFUl9QCQkJCQkJeyAk JCA9IGpwaU51bWJlcjsgfQogCXwgU1RSSU5HRlVOQ19QCQkJCQl7ICQkID0ganBpU3RyaW5nRnVu YzsgfQorCXwgU1RSX0xPV0VSX1AJCQkJCXsgJCQgPSBqcGlTdHJMb3dlcjsgfQorCXwgU1RSX1VQ UEVSX1AJCQkJCXsgJCQgPSBqcGlTdHJVcHBlcjsgfQorCXwgU1RSX0lOSVRDQVBfUAkJCQkJeyAk JCA9IGpwaVN0ckluaXRjYXA7IH0KIAk7CiAlJQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvanNvbnBhdGhfc2Nhbi5sIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRo X3NjYW4ubAppbmRleCAzOGM1ODQxZTg3OS4uOWZhOGU5ZWI5MmEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9qc29ucGF0aF9zY2FuLmwKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2pzb25wYXRoX3NjYW4ubApAQCAtNDEzLDggKzQxMywxMyBAQCBzdGF0aWMgY29uc3QgSnNv blBhdGhLZXl3b3JkIGtleXdvcmRzW10gPSB7CiAJezQsIHRydWUsIFRSVUVfUCwgInRydWUifSwK IAl7NCwgZmFsc2UsIFRZUEVfUCwgInR5cGUifSwKIAl7NCwgZmFsc2UsIFdJVEhfUCwgIndpdGgi fSwKKwl7NSwgZmFsc2UsIFNUUl9CVFJJTV9QLCAiYnRyaW0ifSwKIAl7NSwgdHJ1ZSwgRkFMU0Vf UCwgImZhbHNlIn0sCiAJezUsIGZhbHNlLCBGTE9PUl9QLCAiZmxvb3IifSwKKwl7NSwgZmFsc2Us IFNUUl9MT1dFUl9QLCAibG93ZXIifSwKKwl7NSwgZmFsc2UsIFNUUl9MVFJJTV9QLCAibHRyaW0i fSwKKwl7NSwgZmFsc2UsIFNUUl9SVFJJTV9QLCAicnRyaW0ifSwKKwl7NSwgZmFsc2UsIFNUUl9V UFBFUl9QLCAidXBwZXIifSwKIAl7NiwgZmFsc2UsIEJJR0lOVF9QLCAiYmlnaW50In0sCiAJezYs IGZhbHNlLCBET1VCTEVfUCwgImRvdWJsZSJ9LAogCXs2LCBmYWxzZSwgRVhJU1RTX1AsICJleGlz dHMifSwKQEAgLTQyNSwxMyArNDMwLDE2IEBAIHN0YXRpYyBjb25zdCBKc29uUGF0aEtleXdvcmQg a2V5d29yZHNbXSA9IHsKIAl7NywgZmFsc2UsIEJPT0xFQU5fUCwgImJvb2xlYW4ifSwKIAl7Nywg ZmFsc2UsIENFSUxJTkdfUCwgImNlaWxpbmcifSwKIAl7NywgZmFsc2UsIERFQ0lNQUxfUCwgImRl Y2ltYWwifSwKKwl7NywgZmFsc2UsIFNUUl9JTklUQ0FQX1AsICJpbml0Y2FwIn0sCiAJezcsIGZh bHNlLCBJTlRFR0VSX1AsICJpbnRlZ2VyIn0sCisJezcsIGZhbHNlLCBTVFJfUkVQTEFDRV9QLCAi cmVwbGFjZSJ9LAogCXs3LCBmYWxzZSwgVElNRV9UWl9QLCAidGltZV90eiJ9LAogCXs3LCBmYWxz ZSwgVU5LTk9XTl9QLCAidW5rbm93biJ9LAogCXs4LCBmYWxzZSwgREFURVRJTUVfUCwgImRhdGV0 aW1lIn0sCiAJezgsIGZhbHNlLCBLRVlWQUxVRV9QLCAia2V5dmFsdWUifSwKIAl7OSwgZmFsc2Us IFRJTUVTVEFNUF9QLCAidGltZXN0YW1wIn0sCiAJezEwLCBmYWxzZSwgTElLRV9SRUdFWF9QLCAi bGlrZV9yZWdleCJ9LAorCXsxMCxmYWxzZSwgU1RSX1NQTElUX1BBUlRfUCwgInNwbGl0X3BhcnQi fSwKIAl7MTIsIGZhbHNlLCBUSU1FU1RBTVBfVFpfUCwgInRpbWVzdGFtcF90eiJ9LAogfTsKIApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvanNvbnBhdGguaCBiL3NyYy9pbmNsdWRlL3V0 aWxzL2pzb25wYXRoLmgKaW5kZXggNmY1MjlkNzRkY2QuLjhkMjcyMDZlMjQyIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS91dGlscy9qc29ucGF0aC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2pz b25wYXRoLmgKQEAgLTExNSw2ICsxMTUsMTQgQEAgdHlwZWRlZiBlbnVtIEpzb25QYXRoSXRlbVR5 cGUKIAlqcGlUaW1lVHosCQkJCQkvKiAudGltZV90eigpIGl0ZW0gbWV0aG9kICovCiAJanBpVGlt ZXN0YW1wLAkJCQkvKiAudGltZXN0YW1wKCkgaXRlbSBtZXRob2QgKi8KIAlqcGlUaW1lc3RhbXBU eiwJCQkJLyogLnRpbWVzdGFtcF90eigpIGl0ZW0gbWV0aG9kICovCisJanBpU3RyUmVwbGFjZSwJ CQkJLyogLnJlcGxhY2UoKSBpdGVtIG1ldGhvZCAqLworCWpwaVN0ckxvd2VyLAkJCQkvKiAubG93 ZXIoKSBpdGVtIG1ldGhvZCAqLworCWpwaVN0clVwcGVyLAkJCQkvKiAudXBwZXIoKSBpdGVtIG1l dGhvZCAqLworCWpwaVN0ckx0cmltLAkJCQkvKiAubHRyaW0oKSBpdGVtIG1ldGhvZCAqLworCWpw aVN0clJ0cmltLAkJCQkvKiAucnRyaW0oKSBpdGVtIG1ldGhvZCAqLworCWpwaVN0ckJ0cmltLAkJ CQkvKiAuYnRyaW0oKSBpdGVtIG1ldGhvZCAqLworCWpwaVN0ckluaXRjYXAsCQkJCS8qIC5pbml0 Y2FwKCkgaXRlbSBtZXRob2QgKi8KKwlqcGlTdHJTcGxpdFBhcnQsCQkJLyogLnNwbGl0X3BhcnQo KSBpdGVtIG1ldGhvZCAqLwogfSBKc29uUGF0aEl0ZW1UeXBlOwogCiAvKiBYUXVlcnkgcmVnZXgg bW9kZSBmbGFncyBmb3IgTElLRV9SRUdFWCBwcmVkaWNhdGUgKi8KZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmJfanNvbnBhdGgub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9qc29uYl9qc29ucGF0aC5vdXQKaW5kZXggNGJjZDRlOTFhMjkuLmNlYTUzOTcx N2Y5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iX2pzb25wYXRo Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iX2pzb25wYXRoLm91dApA QCAtMjcyMyw2ICsyNzIzLDQwNSBAQCBzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnIjIwMjMtMDgt MTUgMTI6MzQ6NTYiJywgJyQudGltZXN0YW1wKCkuc3RyaW5nKCknKTsKICgxIHJvdykKIAogcm9s bGJhY2s7CistLSB0ZXN0IC5sdHJpbSgpCitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnIiAgIGhl bGxvICAgIicsICckLmx0cmltKCIgIiknKTsKKyBqc29uYl9wYXRoX3F1ZXJ5IAorLS0tLS0tLS0t LS0tLS0tLS0tCisgImhlbGxvICAgIgorKDEgcm93KQorCitzZWxlY3QganNvbmJfcGF0aF9xdWVy eSgnIiAgIGhlbGxvICAgIicsICckLmx0cmltKCIgIiknKTsKKyBqc29uYl9wYXRoX3F1ZXJ5IAor LS0tLS0tLS0tLS0tLS0tLS0tCisgImhlbGxvICAgIgorKDEgcm93KQorCitzZWxlY3QganNvbmJf cGF0aF9xdWVyeSgnIiAgIGhlbGxvICAgIicsICckLmx0cmltKCknKTsKKyBqc29uYl9wYXRoX3F1 ZXJ5IAorLS0tLS0tLS0tLS0tLS0tLS0tCisgImhlbGxvICAgIgorKDEgcm93KQorCitzZWxlY3Qg anNvbmJfcGF0aF9xdWVyeSgnInp6enl0ZXN0IicsICckLmx0cmltKCJ4eXoiKScpOworIGpzb25i X3BhdGhfcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0KKyAidGVzdCIKKygxIHJvdykKKworc2Vs ZWN0IGpzb25iX3BhdGhfcXVlcnkoJ251bGwnLCAnJC5sdHJpbSgpJyk7CitFUlJPUjogIGpzb25w YXRoIGl0ZW0gbWV0aG9kIC5sdHJpbSgpIGNhbiBvbmx5IGJlIGFwcGxpZWQgdG8gYSBzdHJpbmcK K3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCdudWxsJywgJyQubHRyaW0oKScsIHNpbGVudCA9PiB0 cnVlKTsKKyBqc29uYl9wYXRoX3F1ZXJ5IAorLS0tLS0tLS0tLS0tLS0tLS0tCisoMCByb3dzKQor CitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnW10nLCAnJC5sdHJpbSgpJyk7CisganNvbmJfcGF0 aF9xdWVyeSAKKy0tLS0tLS0tLS0tLS0tLS0tLQorKDAgcm93cykKKworc2VsZWN0IGpzb25iX3Bh dGhfcXVlcnkoJ1tdJywgJ3N0cmljdCAkLmx0cmltKCknKTsKK0VSUk9SOiAganNvbnBhdGggaXRl bSBtZXRob2QgLmx0cmltKCkgY2FuIG9ubHkgYmUgYXBwbGllZCB0byBhIHN0cmluZworc2VsZWN0 IGpzb25iX3BhdGhfcXVlcnkoJ3t9JywgJyQubHRyaW0oKScpOworRVJST1I6ICBqc29ucGF0aCBp dGVtIG1ldGhvZCAubHRyaW0oKSBjYW4gb25seSBiZSBhcHBsaWVkIHRvIGEgc3RyaW5nCitzZWxl Y3QganNvbmJfcGF0aF9xdWVyeSgnW10nLCAnc3RyaWN0ICQubHRyaW0oKScsIHNpbGVudCA9PiB0 cnVlKTsKKyBqc29uYl9wYXRoX3F1ZXJ5IAorLS0tLS0tLS0tLS0tLS0tLS0tCisoMCByb3dzKQor CitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgne30nLCAnJC5sdHJpbSgpJywgc2lsZW50ID0+IHRy dWUpOworIGpzb25iX3BhdGhfcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisK K3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCcxLjIzJywgJyQubHRyaW0oKScpOworRVJST1I6ICBq c29ucGF0aCBpdGVtIG1ldGhvZCAubHRyaW0oKSBjYW4gb25seSBiZSBhcHBsaWVkIHRvIGEgc3Ry aW5nCitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnIjEuMjMiJywgJyQubHRyaW0oKScpOworIGpz b25iX3BhdGhfcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0KKyAiMS4yMyIKKygxIHJvdykKKwor c2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJyIxLjIzYWFhIicsICckLmx0cmltKCknKTsKKyBqc29u Yl9wYXRoX3F1ZXJ5IAorLS0tLS0tLS0tLS0tLS0tLS0tCisgIjEuMjNhYWEiCisoMSByb3cpCisK K3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCcxMjM0JywgJyQubHRyaW0oKScpOworRVJST1I6ICBq c29ucGF0aCBpdGVtIG1ldGhvZCAubHRyaW0oKSBjYW4gb25seSBiZSBhcHBsaWVkIHRvIGEgc3Ry aW5nCitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgndHJ1ZScsICckLmx0cmltKCknKTsKK0VSUk9S OiAganNvbnBhdGggaXRlbSBtZXRob2QgLmx0cmltKCkgY2FuIG9ubHkgYmUgYXBwbGllZCB0byBh IHN0cmluZworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJzEyMzQnLCAnJC5sdHJpbSgpLnR5cGUo KScpOworRVJST1I6ICBqc29ucGF0aCBpdGVtIG1ldGhvZCAubHRyaW0oKSBjYW4gb25seSBiZSBh cHBsaWVkIHRvIGEgc3RyaW5nCitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnWzIsIHRydWVdJywg JyQubHRyaW0oKScpOworRVJST1I6ICBqc29ucGF0aCBpdGVtIG1ldGhvZCAubHRyaW0oKSBjYW4g b25seSBiZSBhcHBsaWVkIHRvIGEgc3RyaW5nCitzZWxlY3QganNvbmJfcGF0aF9xdWVyeV9hcnJh eSgnWyIgIG1heWJlICAiLCAiICB5ZXMiLCAiICBubyJdJywgJyRbKl0ubHRyaW0oKScpOworICBq c29uYl9wYXRoX3F1ZXJ5X2FycmF5ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWyJt YXliZSAgIiwgInllcyIsICJubyJdCisoMSByb3cpCisKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5 X2FycmF5KCdbIiAgbWF5YmUgICIsICIgIHllcyIsICIgIG5vIl0nLCAnJFsqXS5sdHJpbSgpLnR5 cGUoKScpOworICAgICBqc29uYl9wYXRoX3F1ZXJ5X2FycmF5ICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgWyJzdHJpbmciLCAic3RyaW5nIiwgInN0cmluZyJdCisoMSBy b3cpCisKKy0tIHRlc3QgLnJ0cmltKCkKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCciICAgaGVs bG8gICAiJywgJyQucnRyaW0oIiAiKScpOworIGpzb25iX3BhdGhfcXVlcnkgCistLS0tLS0tLS0t LS0tLS0tLS0KKyAiICAgaGVsbG8iCisoMSByb3cpCisKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5 KCcidGVzdHh4engiJywgJyQucnRyaW0oInh5eiIpJyk7CisganNvbmJfcGF0aF9xdWVyeSAKKy0t LS0tLS0tLS0tLS0tLS0tLQorICJ0ZXN0IgorKDEgcm93KQorCitzZWxlY3QganNvbmJfcGF0aF9x dWVyeSgnIiAgIGhlbGxvICAgIicsICckLnJ0cmltKCknKTsKKyBqc29uYl9wYXRoX3F1ZXJ5IAor LS0tLS0tLS0tLS0tLS0tLS0tCisgIiAgIGhlbGxvIgorKDEgcm93KQorCitzZWxlY3QganNvbmJf cGF0aF9xdWVyeSgnIiAgIGhlbGxvICAgIicsICckLnJ0cmltKCknKTsKKyBqc29uYl9wYXRoX3F1 ZXJ5IAorLS0tLS0tLS0tLS0tLS0tLS0tCisgIiAgIGhlbGxvIgorKDEgcm93KQorCistLSB0ZXN0 IC5idHJpbSgpCitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnIiAgIGhlbGxvICAgIicsICckLmJ0 cmltKCIgIiknKTsKKyBqc29uYl9wYXRoX3F1ZXJ5IAorLS0tLS0tLS0tLS0tLS0tLS0tCisgImhl bGxvIgorKDEgcm93KQorCitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnInh5eHRyaW15eXgiJywg JyQuYnRyaW0oInh5eiIpJyk7CisganNvbmJfcGF0aF9xdWVyeSAKKy0tLS0tLS0tLS0tLS0tLS0t LQorICJ0cmltIgorKDEgcm93KQorCitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnIiAgIGhlbGxv ICAgIicsICckLmJ0cmltKCknKTsKKyBqc29uYl9wYXRoX3F1ZXJ5IAorLS0tLS0tLS0tLS0tLS0t LS0tCisgImhlbGxvIgorKDEgcm93KQorCitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnIiAgIGhl bGxvICAgIicsICckLmJ0cmltKCknKTsKKyBqc29uYl9wYXRoX3F1ZXJ5IAorLS0tLS0tLS0tLS0t LS0tLS0tCisgImhlbGxvIgorKDEgcm93KQorCistLSB0ZXN0IC5sb3dlcigpCitzZWxlY3QganNv bmJfcGF0aF9xdWVyeSgnbnVsbCcsICckLmxvd2VyKCknKTsKK0VSUk9SOiAganNvbnBhdGggaXRl bSBtZXRob2QgLmxvd2VyKCkgY2FuIG9ubHkgYmUgYXBwbGllZCB0byBhIHN0cmluZworc2VsZWN0 IGpzb25iX3BhdGhfcXVlcnkoJ251bGwnLCAnJC5sb3dlcigpJywgc2lsZW50ID0+IHRydWUpOwor IGpzb25iX3BhdGhfcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK3NlbGVj dCBqc29uYl9wYXRoX3F1ZXJ5KCdbXScsICckLmxvd2VyKCknKTsKKyBqc29uYl9wYXRoX3F1ZXJ5 IAorLS0tLS0tLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCitzZWxlY3QganNvbmJfcGF0aF9xdWVy eSgnW10nLCAnc3RyaWN0ICQubG93ZXIoKScpOworRVJST1I6ICBqc29ucGF0aCBpdGVtIG1ldGhv ZCAubG93ZXIoKSBjYW4gb25seSBiZSBhcHBsaWVkIHRvIGEgc3RyaW5nCitzZWxlY3QganNvbmJf cGF0aF9xdWVyeSgne30nLCAnJC5sb3dlcigpJyk7CitFUlJPUjogIGpzb25wYXRoIGl0ZW0gbWV0 aG9kIC5sb3dlcigpIGNhbiBvbmx5IGJlIGFwcGxpZWQgdG8gYSBzdHJpbmcKK3NlbGVjdCBqc29u Yl9wYXRoX3F1ZXJ5KCdbXScsICdzdHJpY3QgJC5sb3dlcigpJywgc2lsZW50ID0+IHRydWUpOwor IGpzb25iX3BhdGhfcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK3NlbGVj dCBqc29uYl9wYXRoX3F1ZXJ5KCd7fScsICckLmxvd2VyKCknLCBzaWxlbnQgPT4gdHJ1ZSk7Cisg anNvbmJfcGF0aF9xdWVyeSAKKy0tLS0tLS0tLS0tLS0tLS0tLQorKDAgcm93cykKKworc2VsZWN0 IGpzb25iX3BhdGhfcXVlcnkoJzEuMjMnLCAnJC5sb3dlcigpJyk7CitFUlJPUjogIGpzb25wYXRo IGl0ZW0gbWV0aG9kIC5sb3dlcigpIGNhbiBvbmx5IGJlIGFwcGxpZWQgdG8gYSBzdHJpbmcKK3Nl bGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCciMS4yMyInLCAnJC5sb3dlcigpJyk7CisganNvbmJfcGF0 aF9xdWVyeSAKKy0tLS0tLS0tLS0tLS0tLS0tLQorICIxLjIzIgorKDEgcm93KQorCitzZWxlY3Qg anNvbmJfcGF0aF9xdWVyeSgnIjEuMjNhYWEiJywgJyQubG93ZXIoKScpOworIGpzb25iX3BhdGhf cXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0KKyAiMS4yM2FhYSIKKygxIHJvdykKKworc2VsZWN0 IGpzb25iX3BhdGhfcXVlcnkoJzEyMzQnLCAnJC5sb3dlcigpJyk7CitFUlJPUjogIGpzb25wYXRo IGl0ZW0gbWV0aG9kIC5sb3dlcigpIGNhbiBvbmx5IGJlIGFwcGxpZWQgdG8gYSBzdHJpbmcKK3Nl bGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCd0cnVlJywgJyQubG93ZXIoKScpOworRVJST1I6ICBqc29u cGF0aCBpdGVtIG1ldGhvZCAubG93ZXIoKSBjYW4gb25seSBiZSBhcHBsaWVkIHRvIGEgc3RyaW5n CitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnMTIzNCcsICckLmxvd2VyKCkudHlwZSgpJyk7CitF UlJPUjogIGpzb25wYXRoIGl0ZW0gbWV0aG9kIC5sb3dlcigpIGNhbiBvbmx5IGJlIGFwcGxpZWQg dG8gYSBzdHJpbmcKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCdbMiwgdHJ1ZV0nLCAnJC5sb3dl cigpJyk7CitFUlJPUjogIGpzb25wYXRoIGl0ZW0gbWV0aG9kIC5sb3dlcigpIGNhbiBvbmx5IGJl IGFwcGxpZWQgdG8gYSBzdHJpbmcKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5X2FycmF5KCdbIm1h eWJlIiwgInllcyIsICJubyJdJywgJyRbKl0ubG93ZXIoKScpOworIGpzb25iX3BhdGhfcXVlcnlf YXJyYXkgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbIm1heWJlIiwgInllcyIsICJubyJd CisoMSByb3cpCisKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5X2FycmF5KCdbIm1heWJlIiwgInll cyIsICJubyJdJywgJyRbKl0ubG93ZXIoKS50eXBlKCknKTsKKyAgICAganNvbmJfcGF0aF9xdWVy eV9hcnJheSAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsic3RyaW5n IiwgInN0cmluZyIsICJzdHJpbmciXQorKDEgcm93KQorCistLSB0ZXN0IC51cHBlcigpCitzZWxl Y3QganNvbmJfcGF0aF9xdWVyeSgnbnVsbCcsICckLnVwcGVyKCknKTsKK0VSUk9SOiAganNvbnBh dGggaXRlbSBtZXRob2QgLnVwcGVyKCkgY2FuIG9ubHkgYmUgYXBwbGllZCB0byBhIHN0cmluZwor c2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJ251bGwnLCAnJC51cHBlcigpJywgc2lsZW50ID0+IHRy dWUpOworIGpzb25iX3BhdGhfcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisK K3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCdbXScsICckLnVwcGVyKCknKTsKKyBqc29uYl9wYXRo X3F1ZXJ5IAorLS0tLS0tLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCitzZWxlY3QganNvbmJfcGF0 aF9xdWVyeSgnW10nLCAnc3RyaWN0ICQudXBwZXIoKScpOworRVJST1I6ICBqc29ucGF0aCBpdGVt IG1ldGhvZCAudXBwZXIoKSBjYW4gb25seSBiZSBhcHBsaWVkIHRvIGEgc3RyaW5nCitzZWxlY3Qg anNvbmJfcGF0aF9xdWVyeSgne30nLCAnJC51cHBlcigpJyk7CitFUlJPUjogIGpzb25wYXRoIGl0 ZW0gbWV0aG9kIC51cHBlcigpIGNhbiBvbmx5IGJlIGFwcGxpZWQgdG8gYSBzdHJpbmcKK3NlbGVj dCBqc29uYl9wYXRoX3F1ZXJ5KCdbXScsICdzdHJpY3QgJC51cHBlcigpJywgc2lsZW50ID0+IHRy dWUpOworIGpzb25iX3BhdGhfcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisK K3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCd7fScsICckLnVwcGVyKCknLCBzaWxlbnQgPT4gdHJ1 ZSk7CisganNvbmJfcGF0aF9xdWVyeSAKKy0tLS0tLS0tLS0tLS0tLS0tLQorKDAgcm93cykKKwor c2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJzEuMjMnLCAnJC51cHBlcigpJyk7CitFUlJPUjogIGpz b25wYXRoIGl0ZW0gbWV0aG9kIC51cHBlcigpIGNhbiBvbmx5IGJlIGFwcGxpZWQgdG8gYSBzdHJp bmcKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCciMS4yMyInLCAnJC51cHBlcigpJyk7CisganNv bmJfcGF0aF9xdWVyeSAKKy0tLS0tLS0tLS0tLS0tLS0tLQorICIxLjIzIgorKDEgcm93KQorCitz ZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnIjEuMjNhYWEiJywgJyQudXBwZXIoKScpOworIGpzb25i X3BhdGhfcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0KKyAiMS4yM0FBQSIKKygxIHJvdykKKwor c2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJzEyMzQnLCAnJC51cHBlcigpJyk7CitFUlJPUjogIGpz b25wYXRoIGl0ZW0gbWV0aG9kIC51cHBlcigpIGNhbiBvbmx5IGJlIGFwcGxpZWQgdG8gYSBzdHJp bmcKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCd0cnVlJywgJyQudXBwZXIoKScpOworRVJST1I6 ICBqc29ucGF0aCBpdGVtIG1ldGhvZCAudXBwZXIoKSBjYW4gb25seSBiZSBhcHBsaWVkIHRvIGEg c3RyaW5nCitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnMTIzNCcsICckLnVwcGVyKCkudHlwZSgp Jyk7CitFUlJPUjogIGpzb25wYXRoIGl0ZW0gbWV0aG9kIC51cHBlcigpIGNhbiBvbmx5IGJlIGFw cGxpZWQgdG8gYSBzdHJpbmcKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCdbMiwgdHJ1ZV0nLCAn JC51cHBlcigpJyk7CitFUlJPUjogIGpzb25wYXRoIGl0ZW0gbWV0aG9kIC51cHBlcigpIGNhbiBv bmx5IGJlIGFwcGxpZWQgdG8gYSBzdHJpbmcKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5X2FycmF5 KCdbIm1heWJlIiwgInllcyIsICJubyJdJywgJyRbKl0udXBwZXIoKScpOworIGpzb25iX3BhdGhf cXVlcnlfYXJyYXkgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbIk1BWUJFIiwgIllFUyIs ICJOTyJdCisoMSByb3cpCisKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5X2FycmF5KCdbIm1heWJl IiwgInllcyIsICJubyJdJywgJyRbKl0udXBwZXIoKS50eXBlKCknKTsKKyAgICAganNvbmJfcGF0 aF9xdWVyeV9hcnJheSAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsi c3RyaW5nIiwgInN0cmluZyIsICJzdHJpbmciXQorKDEgcm93KQorCistLSB0ZXN0IC5pbml0Y2Fw KCkKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCdudWxsJywgJyQuaW5pdGNhcCgpJyk7CitFUlJP UjogIGpzb25wYXRoIGl0ZW0gbWV0aG9kIC5pbml0Y2FwKCkgY2FuIG9ubHkgYmUgYXBwbGllZCB0 byBhIHN0cmluZworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJ251bGwnLCAnJC5pbml0Y2FwKCkn LCBzaWxlbnQgPT4gdHJ1ZSk7CisganNvbmJfcGF0aF9xdWVyeSAKKy0tLS0tLS0tLS0tLS0tLS0t LQorKDAgcm93cykKKworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJ1tdJywgJyQuaW5pdGNhcCgp Jyk7CisganNvbmJfcGF0aF9xdWVyeSAKKy0tLS0tLS0tLS0tLS0tLS0tLQorKDAgcm93cykKKwor c2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJ1tdJywgJ3N0cmljdCAkLmluaXRjYXAoKScpOworRVJS T1I6ICBqc29ucGF0aCBpdGVtIG1ldGhvZCAuaW5pdGNhcCgpIGNhbiBvbmx5IGJlIGFwcGxpZWQg dG8gYSBzdHJpbmcKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCd7fScsICckLmluaXRjYXAoKScp OworRVJST1I6ICBqc29ucGF0aCBpdGVtIG1ldGhvZCAuaW5pdGNhcCgpIGNhbiBvbmx5IGJlIGFw cGxpZWQgdG8gYSBzdHJpbmcKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCdbXScsICdzdHJpY3Qg JC5pbml0Y2FwKCknLCBzaWxlbnQgPT4gdHJ1ZSk7CisganNvbmJfcGF0aF9xdWVyeSAKKy0tLS0t LS0tLS0tLS0tLS0tLQorKDAgcm93cykKKworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJ3t9Jywg JyQuaW5pdGNhcCgpJywgc2lsZW50ID0+IHRydWUpOworIGpzb25iX3BhdGhfcXVlcnkgCistLS0t LS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCcxLjIz JywgJyQuaW5pdGNhcCgpJyk7CitFUlJPUjogIGpzb25wYXRoIGl0ZW0gbWV0aG9kIC5pbml0Y2Fw KCkgY2FuIG9ubHkgYmUgYXBwbGllZCB0byBhIHN0cmluZworc2VsZWN0IGpzb25iX3BhdGhfcXVl cnkoJyIxLjIzIicsICckLmluaXRjYXAoKScpOworIGpzb25iX3BhdGhfcXVlcnkgCistLS0tLS0t LS0tLS0tLS0tLS0KKyAiMS4yMyIKKygxIHJvdykKKworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnko JyIxLjIzYWFhIicsICckLmluaXRjYXAoKScpOworIGpzb25iX3BhdGhfcXVlcnkgCistLS0tLS0t LS0tLS0tLS0tLS0KKyAiMS4yM2FhYSIKKygxIHJvdykKKworc2VsZWN0IGpzb25iX3BhdGhfcXVl cnkoJzEyMzQnLCAnJC5pbml0Y2FwKCknKTsKK0VSUk9SOiAganNvbnBhdGggaXRlbSBtZXRob2Qg LmluaXRjYXAoKSBjYW4gb25seSBiZSBhcHBsaWVkIHRvIGEgc3RyaW5nCitzZWxlY3QganNvbmJf cGF0aF9xdWVyeSgndHJ1ZScsICckLmluaXRjYXAoKScpOworRVJST1I6ICBqc29ucGF0aCBpdGVt IG1ldGhvZCAuaW5pdGNhcCgpIGNhbiBvbmx5IGJlIGFwcGxpZWQgdG8gYSBzdHJpbmcKK3NlbGVj dCBqc29uYl9wYXRoX3F1ZXJ5KCcxMjM0JywgJyQuaW5pdGNhcCgpLnR5cGUoKScpOworRVJST1I6 ICBqc29ucGF0aCBpdGVtIG1ldGhvZCAuaW5pdGNhcCgpIGNhbiBvbmx5IGJlIGFwcGxpZWQgdG8g YSBzdHJpbmcKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCdbMiwgdHJ1ZV0nLCAnJC5pbml0Y2Fw KCknKTsKK0VSUk9SOiAganNvbnBhdGggaXRlbSBtZXRob2QgLmluaXRjYXAoKSBjYW4gb25seSBi ZSBhcHBsaWVkIHRvIGEgc3RyaW5nCitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnWyJtYXliZSB5 ZXMiLCAicHJvYmFibHkgbm8iXScsICckLmluaXRjYXAoKScpOworIGpzb25iX3BhdGhfcXVlcnkg CistLS0tLS0tLS0tLS0tLS0tLS0KKyAiTWF5YmUgWWVzIgorICJQcm9iYWJseSBObyIKKygyIHJv d3MpCisKKy0tIFRlc3QgLnJlcGxhY2UoKQorc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJ251bGwn LCAnJC5yZXBsYWNlKCJ4IiwgImJ5ZSIpJyk7CitFUlJPUjogIGpzb25wYXRoIGl0ZW0gbWV0aG9k IC5yZXBsYWNlKCkgY2FuIG9ubHkgYmUgYXBwbGllZCB0byBhIHN0cmluZworc2VsZWN0IGpzb25i X3BhdGhfcXVlcnkoJ251bGwnLCAnJC5yZXBsYWNlKCJ4IiwgImJ5ZSIpJywgc2lsZW50ID0+IHRy dWUpOworIGpzb25iX3BhdGhfcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisK K3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCdbIngiLCAieSIsICJ6Il0nLCAnJC5yZXBsYWNlKCJ4 IiwgImJ5ZSIpJyk7CisganNvbmJfcGF0aF9xdWVyeSAKKy0tLS0tLS0tLS0tLS0tLS0tLQorICJi eWUiCisgInkiCisgInoiCisoMyByb3dzKQorCitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgne30n LCAnJC5yZXBsYWNlKCJ4IiwgImJ5ZSIpJyk7CitFUlJPUjogIGpzb25wYXRoIGl0ZW0gbWV0aG9k IC5yZXBsYWNlKCkgY2FuIG9ubHkgYmUgYXBwbGllZCB0byBhIHN0cmluZworc2VsZWN0IGpzb25i X3BhdGhfcXVlcnkoJ1tdJywgJ3N0cmljdCAkLnJlcGxhY2UoIngiLCAiYnllIiknLCBzaWxlbnQg PT4gdHJ1ZSk7CisganNvbmJfcGF0aF9xdWVyeSAKKy0tLS0tLS0tLS0tLS0tLS0tLQorKDAgcm93 cykKKworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJ3t9JywgJyQucmVwbGFjZSgieCIsICJieWUi KScsIHNpbGVudCA9PiB0cnVlKTsKKyBqc29uYl9wYXRoX3F1ZXJ5IAorLS0tLS0tLS0tLS0tLS0t LS0tCisoMCByb3dzKQorCitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnMS4yMycsICckLnJlcGxh Y2UoIngiLCAiYnllIiknKTsKK0VSUk9SOiAganNvbnBhdGggaXRlbSBtZXRob2QgLnJlcGxhY2Uo KSBjYW4gb25seSBiZSBhcHBsaWVkIHRvIGEgc3RyaW5nCitzZWxlY3QganNvbmJfcGF0aF9xdWVy eSgnImhlbGxvIHdvcmxkIicsICckLnJlcGxhY2UoImhlbGxvIiwiYnllIiknKTsKKyBqc29uYl9w YXRoX3F1ZXJ5IAorLS0tLS0tLS0tLS0tLS0tLS0tCisgImJ5ZSB3b3JsZCIKKygxIHJvdykKKwor c2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJyJoZWxsbyB3b3JsZCInLCAnJC5yZXBsYWNlKCJoZWxs byIsImJ5ZSIpIHN0YXJ0cyB3aXRoICJieWUiJyk7CisganNvbmJfcGF0aF9xdWVyeSAKKy0tLS0t LS0tLS0tLS0tLS0tLQorIHRydWUKKygxIHJvdykKKworLS0gVGVzdCAuc3BsaXRfcGFydCgpCitz ZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnImFiY35AfmRlZn5AfmdoaSInLCAnJC5zcGxpdF9wYXJ0 KCJ+QH4iLCAyKScpOworIGpzb25iX3BhdGhfcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0KKyAi ZGVmIgorKDEgcm93KQorCitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnImFiYyxkZWYsZ2hpLGpr bCInLCAnJC5zcGxpdF9wYXJ0KCIsIiwgLTIpJyk7CisganNvbmJfcGF0aF9xdWVyeSAKKy0tLS0t LS0tLS0tLS0tLS0tLQorICJnaGkiCisoMSByb3cpCisKKy0tIFRlc3Qgc3RyaW5nIG1ldGhvZHMg cGxheSBuaWNlbHkgdG9nZXRoZXIKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCciaGVsbG8gd29y bGQiJywgJyQucmVwbGFjZSgiaGVsbG8iLCJieWUiKS51cHBlcigpJyk7CisganNvbmJfcGF0aF9x dWVyeSAKKy0tLS0tLS0tLS0tLS0tLS0tLQorICJCWUUgV09STEQiCisoMSByb3cpCisKK3NlbGVj dCBqc29uYl9wYXRoX3F1ZXJ5KCciaEVsTG8gV29ybEQiJywgJyQubG93ZXIoKS51cHBlcigpLmxv d2VyKCkucmVwbGFjZSgiaGVsbG8iLCJieWUiKScpOworIGpzb25iX3BhdGhfcXVlcnkgCistLS0t LS0tLS0tLS0tLS0tLS0KKyAiYnllIHdvcmxkIgorKDEgcm93KQorCitzZWxlY3QganNvbmJfcGF0 aF9xdWVyeSgnImhFbExvIFdvcmxEIicsICckLnVwcGVyKCkubG93ZXIoKS51cHBlcigpLnJlcGxh Y2UoIkhFTExPIiwgIkJZRSIpJyk7CisganNvbmJfcGF0aF9xdWVyeSAKKy0tLS0tLS0tLS0tLS0t LS0tLQorICJCWUUgV09STEQiCisoMSByb3cpCisKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCci aEVsTG8gV29ybEQiJywgJyQubG93ZXIoKS51cHBlcigpLmxvd2VyKCkucmVwbGFjZSgiaGVsbG8i LCJieWUiKSBzdGFydHMgd2l0aCAiYnllIicpOworIGpzb25iX3BhdGhfcXVlcnkgCistLS0tLS0t LS0tLS0tLS0tLS0KKyB0cnVlCisoMSByb3cpCisKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCci ICAgaEVsTG8gV29ybEQgIicsICckLmJ0cmltKCkubG93ZXIoKS51cHBlcigpLmxvd2VyKCkucmVw bGFjZSgiaGVsbG8iLCJieWUiKSBzdGFydHMgd2l0aCAiYnllIicpOworIGpzb25iX3BhdGhfcXVl cnkgCistLS0tLS0tLS0tLS0tLS0tLS0KKyB0cnVlCisoMSByb3cpCisKIC0tIFRlc3QgLnRpbWUo KQogc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJ251bGwnLCAnJC50aW1lKCknKTsKIEVSUk9SOiAg anNvbnBhdGggaXRlbSBtZXRob2QgLnRpbWUoKSBjYW4gb25seSBiZSBhcHBsaWVkIHRvIGEgc3Ry aW5nCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25wYXRoLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbnBhdGgub3V0CmluZGV4IGZkOWJkNzU1ZjUy Li5hMTMwMjJmZWFiZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29u cGF0aC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29ucGF0aC5vdXQKQEAg LTQzNSw2ICs0MzUsMTQzIEBAIHNlbGVjdCAnJC5zdHJpbmcoKSc6Ompzb25wYXRoOwogICQuc3Ry aW5nKCkKICgxIHJvdykKIAorc2VsZWN0ICckLnJlcGxhY2UoImhlbGxvIiwiYnllIiknOjpqc29u cGF0aDsKKyAgICAgICAgIGpzb25wYXRoICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICQucmVwbGFjZSgiaGVsbG8iLCJieWUiKQorKDEgcm93KQorCitzZWxlY3QgJyQubG93 ZXIoKSc6Ompzb25wYXRoOworIGpzb25wYXRoICAKKy0tLS0tLS0tLS0tCisgJC5sb3dlcigpCiso MSByb3cpCisKK3NlbGVjdCAnJC51cHBlcigpJzo6anNvbnBhdGg7CisganNvbnBhdGggIAorLS0t LS0tLS0tLS0KKyAkLnVwcGVyKCkKKygxIHJvdykKKworc2VsZWN0ICckLmxvd2VyKCkudXBwZXIo KS5sb3dlcigpLnJlcGxhY2UoImhlbGxvIiwiYnllIiknOjpqc29ucGF0aDsKKyAgICAgICAgICAg ICAgICAgICAgIGpzb25wYXRoICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICQubG93ZXIoKS51cHBlcigpLmxv d2VyKCkucmVwbGFjZSgiaGVsbG8iLCJieWUiKQorKDEgcm93KQorCitzZWxlY3QgJyQubHRyaW0o KSc6Ompzb25wYXRoOworIGpzb25wYXRoICAKKy0tLS0tLS0tLS0tCisgJC5sdHJpbSgpCisoMSBy b3cpCisKK3NlbGVjdCAnJC5sdHJpbSgieHl6IiknOjpqc29ucGF0aDsKKyAgICBqc29ucGF0aCAg ICAKKy0tLS0tLS0tLS0tLS0tLS0KKyAkLmx0cmltKCJ4eXoiKQorKDEgcm93KQorCitzZWxlY3Qg JyQucnRyaW0oKSc6Ompzb25wYXRoOworIGpzb25wYXRoICAKKy0tLS0tLS0tLS0tCisgJC5ydHJp bSgpCisoMSByb3cpCisKK3NlbGVjdCAnJC5ydHJpbSgieHl6IiknOjpqc29ucGF0aDsKKyAgICBq c29ucGF0aCAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyAkLnJ0cmltKCJ4eXoiKQorKDEgcm93KQor CitzZWxlY3QgJyQuYnRyaW0oKSc6Ompzb25wYXRoOworIGpzb25wYXRoICAKKy0tLS0tLS0tLS0t CisgJC5idHJpbSgpCisoMSByb3cpCisKK3NlbGVjdCAnJC5idHJpbSgieHl6IiknOjpqc29ucGF0 aDsKKyAgICBqc29ucGF0aCAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyAkLmJ0cmltKCJ4eXoiKQor KDEgcm93KQorCitzZWxlY3QgJyQuaW5pdGNhcCgpJzo6anNvbnBhdGg7CisgIGpzb25wYXRoICAg CistLS0tLS0tLS0tLS0tCisgJC5pbml0Y2FwKCkKKygxIHJvdykKKworc2VsZWN0ICckLnNwbGl0 X3BhcnQoIn5AfiIsIDIpJzo6anNvbnBhdGg7CisgICAgICAganNvbnBhdGggICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAkLnNwbGl0X3BhcnQoIn5AfiIsMikKKygxIHJvdykKKwor LS0gUGFyc2UgZXJyb3JzCitzZWxlY3QgJyQucmVwbGFjZSgiaGVsbG8iKSc6Ompzb25wYXRoOwor RVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiKSIgb2YganNvbnBhdGggaW5wdXQKK0xJ TkUgMTogc2VsZWN0ICckLnJlcGxhY2UoImhlbGxvIiknOjpqc29ucGF0aDsKKyAgICAgICAgICAg ICAgIF4KK3NlbGVjdCAnJC5yZXBsYWNlKCknOjpqc29ucGF0aDsKK0VSUk9SOiAgc3ludGF4IGVy cm9yIGF0IG9yIG5lYXIgIikiIG9mIGpzb25wYXRoIGlucHV0CitMSU5FIDE6IHNlbGVjdCAnJC5y ZXBsYWNlKCknOjpqc29ucGF0aDsKKyAgICAgICAgICAgICAgIF4KK3NlbGVjdCAnJC5yZXBsYWNl KCJoZWxsbyIsImJ5ZSIsImV4dHJhIiknOjpqc29ucGF0aDsKK0VSUk9SOiAgc3ludGF4IGVycm9y IGF0IG9yIG5lYXIgIiwiIG9mIGpzb25wYXRoIGlucHV0CitMSU5FIDE6IHNlbGVjdCAnJC5yZXBs YWNlKCJoZWxsbyIsImJ5ZSIsImV4dHJhIiknOjpqc29ucGF0aDsKKyAgICAgICAgICAgICAgIF4K K3NlbGVjdCAnJC5zcGxpdF9wYXJ0KCJ+QH4iKSc6Ompzb25wYXRoOworRVJST1I6ICBzeW50YXgg ZXJyb3IgYXQgb3IgbmVhciAiKSIgb2YganNvbnBhdGggaW5wdXQKK0xJTkUgMTogc2VsZWN0ICck LnNwbGl0X3BhcnQoIn5AfiIpJzo6anNvbnBhdGg7CisgICAgICAgICAgICAgICBeCitzZWxlY3Qg JyQuc3BsaXRfcGFydCgpJzo6anNvbnBhdGg7CitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBu ZWFyICIpIiBvZiBqc29ucGF0aCBpbnB1dAorTElORSAxOiBzZWxlY3QgJyQuc3BsaXRfcGFydCgp Jzo6anNvbnBhdGg7CisgICAgICAgICAgICAgICBeCitzZWxlY3QgJyQuc3BsaXRfcGFydCgifkB+ IiwgImhpIiknOjpqc29ucGF0aDsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIiIi IG9mIGpzb25wYXRoIGlucHV0CitMSU5FIDE6IHNlbGVjdCAnJC5zcGxpdF9wYXJ0KCJ+QH4iLCAi aGkiKSc6Ompzb25wYXRoOworICAgICAgICAgICAgICAgXgorc2VsZWN0ICckLnNwbGl0X3BhcnQo In5AfiIsIDIsICJleHRyYSIpJzo6anNvbnBhdGg7CitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBv ciBuZWFyICIsIiBvZiBqc29ucGF0aCBpbnB1dAorTElORSAxOiBzZWxlY3QgJyQuc3BsaXRfcGFy dCgifkB+IiwgMiwgImV4dHJhIiknOjpqc29ucGF0aDsKKyAgICAgICAgICAgICAgIF4KK3NlbGVj dCAnJC5sb3dlcigiaGkiKSc6Ompzb25wYXRoOworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3Ig bmVhciAiIiIgb2YganNvbnBhdGggaW5wdXQKK0xJTkUgMTogc2VsZWN0ICckLmxvd2VyKCJoaSIp Jzo6anNvbnBhdGg7CisgICAgICAgICAgICAgICBeCitzZWxlY3QgJyQudXBwZXIoImhpIiknOjpq c29ucGF0aDsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIiIiIG9mIGpzb25wYXRo IGlucHV0CitMSU5FIDE6IHNlbGVjdCAnJC51cHBlcigiaGkiKSc6Ompzb25wYXRoOworICAgICAg ICAgICAgICAgXgorc2VsZWN0ICckLmluaXRjYXAoImhpIiknOjpqc29ucGF0aDsKK0VSUk9SOiAg c3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIiIiIG9mIGpzb25wYXRoIGlucHV0CitMSU5FIDE6IHNl bGVjdCAnJC5pbml0Y2FwKCJoaSIpJzo6anNvbnBhdGg7CisgICAgICAgICAgICAgICBeCitzZWxl Y3QgJyQubHRyaW0oNDIpJzo6anNvbnBhdGg7CitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBu ZWFyICI0MiIgb2YganNvbnBhdGggaW5wdXQKK0xJTkUgMTogc2VsZWN0ICckLmx0cmltKDQyKSc6 Ompzb25wYXRoOworICAgICAgICAgICAgICAgXgorc2VsZWN0ICckLmx0cmltKCJ4IiwgInkiKSc6 Ompzb25wYXRoOworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiLCIgb2YganNvbnBh dGggaW5wdXQKK0xJTkUgMTogc2VsZWN0ICckLmx0cmltKCJ4IiwgInkiKSc6Ompzb25wYXRoOwor ICAgICAgICAgICAgICAgXgorc2VsZWN0ICckLnJ0cmltKDQyKSc6Ompzb25wYXRoOworRVJST1I6 ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiNDIiIG9mIGpzb25wYXRoIGlucHV0CitMSU5FIDE6 IHNlbGVjdCAnJC5ydHJpbSg0MiknOjpqc29ucGF0aDsKKyAgICAgICAgICAgICAgIF4KK3NlbGVj dCAnJC5ydHJpbSgieCIsICJ5IiknOjpqc29ucGF0aDsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0 IG9yIG5lYXIgIiwiIG9mIGpzb25wYXRoIGlucHV0CitMSU5FIDE6IHNlbGVjdCAnJC5ydHJpbSgi eCIsICJ5IiknOjpqc29ucGF0aDsKKyAgICAgICAgICAgICAgIF4KK3NlbGVjdCAnJC50cmltKDQy KSc6Ompzb25wYXRoOworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiKCIgb2YganNv bnBhdGggaW5wdXQKK0xJTkUgMTogc2VsZWN0ICckLnRyaW0oNDIpJzo6anNvbnBhdGg7CisgICAg ICAgICAgICAgICBeCitzZWxlY3QgJyQudHJpbSgieCIsICJ5IiknOjpqc29ucGF0aDsKK0VSUk9S OiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIigiIG9mIGpzb25wYXRoIGlucHV0CitMSU5FIDE6 IHNlbGVjdCAnJC50cmltKCJ4IiwgInkiKSc6Ompzb25wYXRoOworICAgICAgICAgICAgICAgXgog c2VsZWN0ICckLnRpbWUoKSc6Ompzb25wYXRoOwogIGpzb25wYXRoIAogLS0tLS0tLS0tLQpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zcWxqc29uX3F1ZXJ5ZnVuY3Mub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zcWxqc29uX3F1ZXJ5ZnVuY3Mub3V0CmluZGV4 IGQxYjRiOGQ5OWY0Li41N2U1MmU5NjNmNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zcWxqc29uX3F1ZXJ5ZnVuY3Mub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc3FsanNvbl9xdWVyeWZ1bmNzLm91dApAQCAtMTE0Nyw3ICsxMTQ3LDcgQEAgSU5TRVJU IElOVE8gdGVzdF9qc29uYl9jb25zdHJhaW50cyBWQUxVRVMgKCd7ImEiOiAxMH0nLCAxKTsKIEVS Uk9SOiAgbmV3IHJvdyBmb3IgcmVsYXRpb24gInRlc3RfanNvbmJfY29uc3RyYWludHMiIHZpb2xh dGVzIGNoZWNrIGNvbnN0cmFpbnQgInRlc3RfanNvbmJfY29uc3RyYWludDQiCiBERVRBSUw6ICBG YWlsaW5nIHJvdyBjb250YWlucyAoeyJhIjogMTB9LCAxLCBbMSwgMl0pLgogRFJPUCBUQUJMRSB0 ZXN0X2pzb25iX2NvbnN0cmFpbnRzOwotLS0gVGVzdCBtdXRhYmlsaWx5IG9mIHF1ZXJ5IGZ1bmN0 aW9ucworLS0gVGVzdCBtdXRhYmlsaXR5IG9mIHF1ZXJ5IGZ1bmN0aW9ucwogQ1JFQVRFIFRBQkxF IHRlc3RfanNvbmJfbXV0YWJpbGl0eShqcyBqc29uYiwgYiBpbnQpOwogQ1JFQVRFIElOREVYIE9O IHRlc3RfanNvbmJfbXV0YWJpbGl0eSAoSlNPTl9RVUVSWShqcywgJyQnKSk7CiBDUkVBVEUgSU5E RVggT04gdGVzdF9qc29uYl9tdXRhYmlsaXR5IChKU09OX1FVRVJZKGpzLCAnJC5hWzBdJykpOwpA QCAtMTI3Miw2ICsxMjcyLDE0IEBAIENSRUFURSBJTkRFWCBPTiB0ZXN0X2pzb25iX211dGFiaWxp dHkgKEpTT05fVkFMVUUoanMsICckJyBERUZBVUxUIHJhbmRvbSgpOjppbnQKIEVSUk9SOiAgZnVu Y3Rpb25zIGluIGluZGV4IGV4cHJlc3Npb24gbXVzdCBiZSBtYXJrZWQgSU1NVVRBQkxFCiBMSU5F IDE6IENSRUFURSBJTkRFWCBPTiB0ZXN0X2pzb25iX211dGFiaWxpdHkgKEpTT05fVkFMVUUoanMs ICckJyBERS4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCitDUkVBVEUgSU5ERVggT04gdGVzdF9qc29uYl9tdXRhYmlsaXR5IChKU09OX1FVRVJZKGpz LCAnJC5ydHJpbSgpJykpOworQ1JFQVRFIElOREVYIE9OIHRlc3RfanNvbmJfbXV0YWJpbGl0eSAo SlNPTl9RVUVSWShqcywgJyQubHRyaW0oKScpKTsKK0NSRUFURSBJTkRFWCBPTiB0ZXN0X2pzb25i X211dGFiaWxpdHkgKEpTT05fUVVFUlkoanMsICckLmJ0cmltKCknKSk7CitDUkVBVEUgSU5ERVgg T04gdGVzdF9qc29uYl9tdXRhYmlsaXR5IChKU09OX1FVRVJZKGpzLCAnJC5sb3dlcigpJykpOwor Q1JFQVRFIElOREVYIE9OIHRlc3RfanNvbmJfbXV0YWJpbGl0eSAoSlNPTl9RVUVSWShqcywgJyQu dXBwZXIoKScpKTsKK0NSRUFURSBJTkRFWCBPTiB0ZXN0X2pzb25iX211dGFiaWxpdHkgKEpTT05f UVVFUlkoanMsICckLmluaXRjYXAoKScpKTsKK0NSRUFURSBJTkRFWCBPTiB0ZXN0X2pzb25iX211 dGFiaWxpdHkgKEpTT05fUVVFUlkoanMsICckLnJlcGxhY2UoImhlbGxvIiwgImJ5ZSIpJykpOwor Q1JFQVRFIElOREVYIE9OIHRlc3RfanNvbmJfbXV0YWJpbGl0eSAoSlNPTl9RVUVSWShqcywgJyQu c3BsaXRfcGFydCgiLCIsIDIpJykpOwogLS0gREVGQVVMVCBleHByZXNzaW9uCiBDUkVBVEUgT1Ig UkVQTEFDRSBGVU5DVElPTiByZXRfc2V0aW50KCkgUkVUVVJOUyBTRVRPRiBpbnRlZ2VyIEFTCiAk JApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmJfanNvbnBhdGguc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmJfanNvbnBhdGguc3FsCmluZGV4IDNlODkyOWE1MjY5 Li44MTY5NzE5MzQzZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmJfanNv bnBhdGguc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iX2pzb25wYXRoLnNxbApA QCAtNjIzLDYgKzYyMywxMTUgQEAgc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJyIyMDIzLTA4LTE1 IDEyOjM0OjU2ICs1OjMwIicsICckLnRpbWVzdGFtcF90eigpLnN0cmluZygKIHNlbGVjdCBqc29u Yl9wYXRoX3F1ZXJ5KCciMjAyMy0wOC0xNSAxMjozNDo1NiInLCAnJC50aW1lc3RhbXAoKS5zdHJp bmcoKScpOwogcm9sbGJhY2s7CiAKKy0tIHRlc3QgLmx0cmltKCkKK3NlbGVjdCBqc29uYl9wYXRo X3F1ZXJ5KCciICAgaGVsbG8gICAiJywgJyQubHRyaW0oIiAiKScpOworc2VsZWN0IGpzb25iX3Bh dGhfcXVlcnkoJyIgICBoZWxsbyAgICInLCAnJC5sdHJpbSgiICIpJyk7CitzZWxlY3QganNvbmJf cGF0aF9xdWVyeSgnIiAgIGhlbGxvICAgIicsICckLmx0cmltKCknKTsKK3NlbGVjdCBqc29uYl9w YXRoX3F1ZXJ5KCcienp6eXRlc3QiJywgJyQubHRyaW0oInh5eiIpJyk7CitzZWxlY3QganNvbmJf cGF0aF9xdWVyeSgnbnVsbCcsICckLmx0cmltKCknKTsKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5 KCdudWxsJywgJyQubHRyaW0oKScsIHNpbGVudCA9PiB0cnVlKTsKK3NlbGVjdCBqc29uYl9wYXRo X3F1ZXJ5KCdbXScsICckLmx0cmltKCknKTsKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCdbXScs ICdzdHJpY3QgJC5sdHJpbSgpJyk7CitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgne30nLCAnJC5s dHJpbSgpJyk7CitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnW10nLCAnc3RyaWN0ICQubHRyaW0o KScsIHNpbGVudCA9PiB0cnVlKTsKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCd7fScsICckLmx0 cmltKCknLCBzaWxlbnQgPT4gdHJ1ZSk7CitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnMS4yMycs ICckLmx0cmltKCknKTsKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCciMS4yMyInLCAnJC5sdHJp bSgpJyk7CitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnIjEuMjNhYWEiJywgJyQubHRyaW0oKScp Oworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJzEyMzQnLCAnJC5sdHJpbSgpJyk7CitzZWxlY3Qg anNvbmJfcGF0aF9xdWVyeSgndHJ1ZScsICckLmx0cmltKCknKTsKK3NlbGVjdCBqc29uYl9wYXRo X3F1ZXJ5KCcxMjM0JywgJyQubHRyaW0oKS50eXBlKCknKTsKK3NlbGVjdCBqc29uYl9wYXRoX3F1 ZXJ5KCdbMiwgdHJ1ZV0nLCAnJC5sdHJpbSgpJyk7CitzZWxlY3QganNvbmJfcGF0aF9xdWVyeV9h cnJheSgnWyIgIG1heWJlICAiLCAiICB5ZXMiLCAiICBubyJdJywgJyRbKl0ubHRyaW0oKScpOwor c2VsZWN0IGpzb25iX3BhdGhfcXVlcnlfYXJyYXkoJ1siICBtYXliZSAgIiwgIiAgeWVzIiwgIiAg bm8iXScsICckWypdLmx0cmltKCkudHlwZSgpJyk7CisKKy0tIHRlc3QgLnJ0cmltKCkKK3NlbGVj dCBqc29uYl9wYXRoX3F1ZXJ5KCciICAgaGVsbG8gICAiJywgJyQucnRyaW0oIiAiKScpOworc2Vs ZWN0IGpzb25iX3BhdGhfcXVlcnkoJyJ0ZXN0eHh6eCInLCAnJC5ydHJpbSgieHl6IiknKTsKK3Nl bGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCciICAgaGVsbG8gICAiJywgJyQucnRyaW0oKScpOworc2Vs ZWN0IGpzb25iX3BhdGhfcXVlcnkoJyIgICBoZWxsbyAgICInLCAnJC5ydHJpbSgpJyk7CisKKy0t IHRlc3QgLmJ0cmltKCkKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCciICAgaGVsbG8gICAiJywg JyQuYnRyaW0oIiAiKScpOworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJyJ4eXh0cmlteXl4Iics ICckLmJ0cmltKCJ4eXoiKScpOworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJyIgICBoZWxsbyAg ICInLCAnJC5idHJpbSgpJyk7CitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnIiAgIGhlbGxvICAg IicsICckLmJ0cmltKCknKTsKKworLS0gdGVzdCAubG93ZXIoKQorc2VsZWN0IGpzb25iX3BhdGhf cXVlcnkoJ251bGwnLCAnJC5sb3dlcigpJyk7CitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnbnVs bCcsICckLmxvd2VyKCknLCBzaWxlbnQgPT4gdHJ1ZSk7CitzZWxlY3QganNvbmJfcGF0aF9xdWVy eSgnW10nLCAnJC5sb3dlcigpJyk7CitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnW10nLCAnc3Ry aWN0ICQubG93ZXIoKScpOworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJ3t9JywgJyQubG93ZXIo KScpOworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJ1tdJywgJ3N0cmljdCAkLmxvd2VyKCknLCBz aWxlbnQgPT4gdHJ1ZSk7CitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgne30nLCAnJC5sb3dlcigp Jywgc2lsZW50ID0+IHRydWUpOworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJzEuMjMnLCAnJC5s b3dlcigpJyk7CitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnIjEuMjMiJywgJyQubG93ZXIoKScp Oworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJyIxLjIzYWFhIicsICckLmxvd2VyKCknKTsKK3Nl bGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCcxMjM0JywgJyQubG93ZXIoKScpOworc2VsZWN0IGpzb25i X3BhdGhfcXVlcnkoJ3RydWUnLCAnJC5sb3dlcigpJyk7CitzZWxlY3QganNvbmJfcGF0aF9xdWVy eSgnMTIzNCcsICckLmxvd2VyKCkudHlwZSgpJyk7CitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgn WzIsIHRydWVdJywgJyQubG93ZXIoKScpOworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnlfYXJyYXko J1sibWF5YmUiLCAieWVzIiwgIm5vIl0nLCAnJFsqXS5sb3dlcigpJyk7CitzZWxlY3QganNvbmJf cGF0aF9xdWVyeV9hcnJheSgnWyJtYXliZSIsICJ5ZXMiLCAibm8iXScsICckWypdLmxvd2VyKCku dHlwZSgpJyk7CisKKy0tIHRlc3QgLnVwcGVyKCkKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCdu dWxsJywgJyQudXBwZXIoKScpOworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJ251bGwnLCAnJC51 cHBlcigpJywgc2lsZW50ID0+IHRydWUpOworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJ1tdJywg JyQudXBwZXIoKScpOworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJ1tdJywgJ3N0cmljdCAkLnVw cGVyKCknKTsKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCd7fScsICckLnVwcGVyKCknKTsKK3Nl bGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCdbXScsICdzdHJpY3QgJC51cHBlcigpJywgc2lsZW50ID0+ IHRydWUpOworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJ3t9JywgJyQudXBwZXIoKScsIHNpbGVu dCA9PiB0cnVlKTsKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCcxLjIzJywgJyQudXBwZXIoKScp Oworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJyIxLjIzIicsICckLnVwcGVyKCknKTsKK3NlbGVj dCBqc29uYl9wYXRoX3F1ZXJ5KCciMS4yM2FhYSInLCAnJC51cHBlcigpJyk7CitzZWxlY3QganNv bmJfcGF0aF9xdWVyeSgnMTIzNCcsICckLnVwcGVyKCknKTsKK3NlbGVjdCBqc29uYl9wYXRoX3F1 ZXJ5KCd0cnVlJywgJyQudXBwZXIoKScpOworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJzEyMzQn LCAnJC51cHBlcigpLnR5cGUoKScpOworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJ1syLCB0cnVl XScsICckLnVwcGVyKCknKTsKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5X2FycmF5KCdbIm1heWJl IiwgInllcyIsICJubyJdJywgJyRbKl0udXBwZXIoKScpOworc2VsZWN0IGpzb25iX3BhdGhfcXVl cnlfYXJyYXkoJ1sibWF5YmUiLCAieWVzIiwgIm5vIl0nLCAnJFsqXS51cHBlcigpLnR5cGUoKScp OworCistLSB0ZXN0IC5pbml0Y2FwKCkKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCdudWxsJywg JyQuaW5pdGNhcCgpJyk7CitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnbnVsbCcsICckLmluaXRj YXAoKScsIHNpbGVudCA9PiB0cnVlKTsKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCdbXScsICck LmluaXRjYXAoKScpOworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJ1tdJywgJ3N0cmljdCAkLmlu aXRjYXAoKScpOworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJ3t9JywgJyQuaW5pdGNhcCgpJyk7 CitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnW10nLCAnc3RyaWN0ICQuaW5pdGNhcCgpJywgc2ls ZW50ID0+IHRydWUpOworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJ3t9JywgJyQuaW5pdGNhcCgp Jywgc2lsZW50ID0+IHRydWUpOworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJzEuMjMnLCAnJC5p bml0Y2FwKCknKTsKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCciMS4yMyInLCAnJC5pbml0Y2Fw KCknKTsKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCciMS4yM2FhYSInLCAnJC5pbml0Y2FwKCkn KTsKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCcxMjM0JywgJyQuaW5pdGNhcCgpJyk7CitzZWxl Y3QganNvbmJfcGF0aF9xdWVyeSgndHJ1ZScsICckLmluaXRjYXAoKScpOworc2VsZWN0IGpzb25i X3BhdGhfcXVlcnkoJzEyMzQnLCAnJC5pbml0Y2FwKCkudHlwZSgpJyk7CitzZWxlY3QganNvbmJf cGF0aF9xdWVyeSgnWzIsIHRydWVdJywgJyQuaW5pdGNhcCgpJyk7CitzZWxlY3QganNvbmJfcGF0 aF9xdWVyeSgnWyJtYXliZSB5ZXMiLCAicHJvYmFibHkgbm8iXScsICckLmluaXRjYXAoKScpOwor CistLSBUZXN0IC5yZXBsYWNlKCkKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCdudWxsJywgJyQu cmVwbGFjZSgieCIsICJieWUiKScpOworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJ251bGwnLCAn JC5yZXBsYWNlKCJ4IiwgImJ5ZSIpJywgc2lsZW50ID0+IHRydWUpOworc2VsZWN0IGpzb25iX3Bh dGhfcXVlcnkoJ1sieCIsICJ5IiwgInoiXScsICckLnJlcGxhY2UoIngiLCAiYnllIiknKTsKK3Nl bGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCd7fScsICckLnJlcGxhY2UoIngiLCAiYnllIiknKTsKK3Nl bGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCdbXScsICdzdHJpY3QgJC5yZXBsYWNlKCJ4IiwgImJ5ZSIp Jywgc2lsZW50ID0+IHRydWUpOworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJ3t9JywgJyQucmVw bGFjZSgieCIsICJieWUiKScsIHNpbGVudCA9PiB0cnVlKTsKK3NlbGVjdCBqc29uYl9wYXRoX3F1 ZXJ5KCcxLjIzJywgJyQucmVwbGFjZSgieCIsICJieWUiKScpOworc2VsZWN0IGpzb25iX3BhdGhf cXVlcnkoJyJoZWxsbyB3b3JsZCInLCAnJC5yZXBsYWNlKCJoZWxsbyIsImJ5ZSIpJyk7CitzZWxl Y3QganNvbmJfcGF0aF9xdWVyeSgnImhlbGxvIHdvcmxkIicsICckLnJlcGxhY2UoImhlbGxvIiwi YnllIikgc3RhcnRzIHdpdGggImJ5ZSInKTsKKworLS0gVGVzdCAuc3BsaXRfcGFydCgpCitzZWxl Y3QganNvbmJfcGF0aF9xdWVyeSgnImFiY35AfmRlZn5AfmdoaSInLCAnJC5zcGxpdF9wYXJ0KCJ+ QH4iLCAyKScpOworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJyJhYmMsZGVmLGdoaSxqa2wiJywg JyQuc3BsaXRfcGFydCgiLCIsIC0yKScpOworCistLSBUZXN0IHN0cmluZyBtZXRob2RzIHBsYXkg bmljZWx5IHRvZ2V0aGVyCitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnImhlbGxvIHdvcmxkIics ICckLnJlcGxhY2UoImhlbGxvIiwiYnllIikudXBwZXIoKScpOworc2VsZWN0IGpzb25iX3BhdGhf cXVlcnkoJyJoRWxMbyBXb3JsRCInLCAnJC5sb3dlcigpLnVwcGVyKCkubG93ZXIoKS5yZXBsYWNl KCJoZWxsbyIsImJ5ZSIpJyk7CitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnImhFbExvIFdvcmxE IicsICckLnVwcGVyKCkubG93ZXIoKS51cHBlcigpLnJlcGxhY2UoIkhFTExPIiwgIkJZRSIpJyk7 CitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnImhFbExvIFdvcmxEIicsICckLmxvd2VyKCkudXBw ZXIoKS5sb3dlcigpLnJlcGxhY2UoImhlbGxvIiwiYnllIikgc3RhcnRzIHdpdGggImJ5ZSInKTsK K3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCciICAgaEVsTG8gV29ybEQgIicsICckLmJ0cmltKCku bG93ZXIoKS51cHBlcigpLmxvd2VyKCkucmVwbGFjZSgiaGVsbG8iLCJieWUiKSBzdGFydHMgd2l0 aCAiYnllIicpOworCiAtLSBUZXN0IC50aW1lKCkKIHNlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCdu dWxsJywgJyQudGltZSgpJyk7CiBzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgndHJ1ZScsICckLnRp bWUoKScpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbnBhdGguc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbnBhdGguc3FsCmluZGV4IDYxYTUyNzBkNGU4Li43ZGQy ZTU3ZTdhNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbnBhdGguc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25wYXRoLnNxbApAQCAtNzgsNiArNzgsMzcgQEAg c2VsZWN0ICckLmJvb2xlYW4oKSc6Ompzb25wYXRoOwogc2VsZWN0ICckLmRhdGUoKSc6Ompzb25w YXRoOwogc2VsZWN0ICckLmRlY2ltYWwoNCwyKSc6Ompzb25wYXRoOwogc2VsZWN0ICckLnN0cmlu ZygpJzo6anNvbnBhdGg7CitzZWxlY3QgJyQucmVwbGFjZSgiaGVsbG8iLCJieWUiKSc6Ompzb25w YXRoOworc2VsZWN0ICckLmxvd2VyKCknOjpqc29ucGF0aDsKK3NlbGVjdCAnJC51cHBlcigpJzo6 anNvbnBhdGg7CitzZWxlY3QgJyQubG93ZXIoKS51cHBlcigpLmxvd2VyKCkucmVwbGFjZSgiaGVs bG8iLCJieWUiKSc6Ompzb25wYXRoOworc2VsZWN0ICckLmx0cmltKCknOjpqc29ucGF0aDsKK3Nl bGVjdCAnJC5sdHJpbSgieHl6IiknOjpqc29ucGF0aDsKK3NlbGVjdCAnJC5ydHJpbSgpJzo6anNv bnBhdGg7CitzZWxlY3QgJyQucnRyaW0oInh5eiIpJzo6anNvbnBhdGg7CitzZWxlY3QgJyQuYnRy aW0oKSc6Ompzb25wYXRoOworc2VsZWN0ICckLmJ0cmltKCJ4eXoiKSc6Ompzb25wYXRoOworc2Vs ZWN0ICckLmluaXRjYXAoKSc6Ompzb25wYXRoOworc2VsZWN0ICckLnNwbGl0X3BhcnQoIn5AfiIs IDIpJzo6anNvbnBhdGg7CisKKy0tIFBhcnNlIGVycm9ycworc2VsZWN0ICckLnJlcGxhY2UoImhl bGxvIiknOjpqc29ucGF0aDsKK3NlbGVjdCAnJC5yZXBsYWNlKCknOjpqc29ucGF0aDsKK3NlbGVj dCAnJC5yZXBsYWNlKCJoZWxsbyIsImJ5ZSIsImV4dHJhIiknOjpqc29ucGF0aDsKK3NlbGVjdCAn JC5zcGxpdF9wYXJ0KCJ+QH4iKSc6Ompzb25wYXRoOworc2VsZWN0ICckLnNwbGl0X3BhcnQoKSc6 Ompzb25wYXRoOworc2VsZWN0ICckLnNwbGl0X3BhcnQoIn5AfiIsICJoaSIpJzo6anNvbnBhdGg7 CitzZWxlY3QgJyQuc3BsaXRfcGFydCgifkB+IiwgMiwgImV4dHJhIiknOjpqc29ucGF0aDsKK3Nl bGVjdCAnJC5sb3dlcigiaGkiKSc6Ompzb25wYXRoOworc2VsZWN0ICckLnVwcGVyKCJoaSIpJzo6 anNvbnBhdGg7CitzZWxlY3QgJyQuaW5pdGNhcCgiaGkiKSc6Ompzb25wYXRoOworc2VsZWN0ICck Lmx0cmltKDQyKSc6Ompzb25wYXRoOworc2VsZWN0ICckLmx0cmltKCJ4IiwgInkiKSc6Ompzb25w YXRoOworc2VsZWN0ICckLnJ0cmltKDQyKSc6Ompzb25wYXRoOworc2VsZWN0ICckLnJ0cmltKCJ4 IiwgInkiKSc6Ompzb25wYXRoOworc2VsZWN0ICckLnRyaW0oNDIpJzo6anNvbnBhdGg7CitzZWxl Y3QgJyQudHJpbSgieCIsICJ5IiknOjpqc29ucGF0aDsKKwogc2VsZWN0ICckLnRpbWUoKSc6Ompz b25wYXRoOwogc2VsZWN0ICckLnRpbWUoNiknOjpqc29ucGF0aDsKIHNlbGVjdCAnJC50aW1lX3R6 KCknOjpqc29ucGF0aDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3NxbGpzb25f cXVlcnlmdW5jcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zcWxqc29uX3F1ZXJ5ZnVuY3Mu c3FsCmluZGV4IGE1ZDVlMjU2ZDdmLi5kMjE4YjQ0ZWE0NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc3FsanNvbl9xdWVyeWZ1bmNzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zcWxqc29uX3F1ZXJ5ZnVuY3Muc3FsCkBAIC0zNTcsNyArMzU3LDcgQEAgSU5TRVJUIElO VE8gdGVzdF9qc29uYl9jb25zdHJhaW50cyBWQUxVRVMgKCd7ImEiOiAxMH0nLCAxKTsKIAogRFJP UCBUQUJMRSB0ZXN0X2pzb25iX2NvbnN0cmFpbnRzOwogCi0tLSBUZXN0IG11dGFiaWxpbHkgb2Yg cXVlcnkgZnVuY3Rpb25zCistLSBUZXN0IG11dGFiaWxpdHkgb2YgcXVlcnkgZnVuY3Rpb25zCiBD UkVBVEUgVEFCTEUgdGVzdF9qc29uYl9tdXRhYmlsaXR5KGpzIGpzb25iLCBiIGludCk7CiBDUkVB VEUgSU5ERVggT04gdGVzdF9qc29uYl9tdXRhYmlsaXR5IChKU09OX1FVRVJZKGpzLCAnJCcpKTsK IENSRUFURSBJTkRFWCBPTiB0ZXN0X2pzb25iX211dGFiaWxpdHkgKEpTT05fUVVFUlkoanMsICck LmFbMF0nKSk7CkBAIC00MDIsNiArNDAyLDE1IEBAIENSRUFURSBJTkRFWCBPTiB0ZXN0X2pzb25i X211dGFiaWxpdHkgKEpTT05fUVVFUlkoanMsICckWzEsIDAgdG8gJC5hID8gKEAuZGF0ZXRpCiBD UkVBVEUgSU5ERVggT04gdGVzdF9qc29uYl9tdXRhYmlsaXR5IChKU09OX1FVRVJZKGpzLCAnJFsx LCAkLmEgPyAoQC5kYXRldGltZSgiSEg6TUkiKSA9PSAkeCldJyBQQVNTSU5HICcxMjozNCc6OnRp bWUgQVMgeCkpOwogQ1JFQVRFIElOREVYIE9OIHRlc3RfanNvbmJfbXV0YWJpbGl0eSAoSlNPTl9W QUxVRShqcywgJyQnIERFRkFVTFQgcmFuZG9tKCk6OmludCBPTiBFUlJPUikpOwogCitDUkVBVEUg SU5ERVggT04gdGVzdF9qc29uYl9tdXRhYmlsaXR5IChKU09OX1FVRVJZKGpzLCAnJC5ydHJpbSgp JykpOworQ1JFQVRFIElOREVYIE9OIHRlc3RfanNvbmJfbXV0YWJpbGl0eSAoSlNPTl9RVUVSWShq cywgJyQubHRyaW0oKScpKTsKK0NSRUFURSBJTkRFWCBPTiB0ZXN0X2pzb25iX211dGFiaWxpdHkg KEpTT05fUVVFUlkoanMsICckLmJ0cmltKCknKSk7CitDUkVBVEUgSU5ERVggT04gdGVzdF9qc29u Yl9tdXRhYmlsaXR5IChKU09OX1FVRVJZKGpzLCAnJC5sb3dlcigpJykpOworQ1JFQVRFIElOREVY IE9OIHRlc3RfanNvbmJfbXV0YWJpbGl0eSAoSlNPTl9RVUVSWShqcywgJyQudXBwZXIoKScpKTsK K0NSRUFURSBJTkRFWCBPTiB0ZXN0X2pzb25iX211dGFiaWxpdHkgKEpTT05fUVVFUlkoanMsICck LmluaXRjYXAoKScpKTsKK0NSRUFURSBJTkRFWCBPTiB0ZXN0X2pzb25iX211dGFiaWxpdHkgKEpT T05fUVVFUlkoanMsICckLnJlcGxhY2UoImhlbGxvIiwgImJ5ZSIpJykpOworQ1JFQVRFIElOREVY IE9OIHRlc3RfanNvbmJfbXV0YWJpbGl0eSAoSlNPTl9RVUVSWShqcywgJyQuc3BsaXRfcGFydCgi LCIsIDIpJykpOworCiAtLSBERUZBVUxUIGV4cHJlc3Npb24KIENSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHJldF9zZXRpbnQoKSBSRVRVUk5TIFNFVE9GIGludGVnZXIgQVMKICQkCi0tIAoyLjUy LjAKCg== --000000000000b8485c0649b18412--