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.94.2) (envelope-from ) id 1th7BU-00GjZo-CH for pgsql-hackers@arkaria.postgresql.org; Sun, 09 Feb 2025 13:17:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1th7BQ-00DqmM-SK for pgsql-hackers@arkaria.postgresql.org; Sun, 09 Feb 2025 13:17:12 +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.94.2) (envelope-from ) id 1th7BQ-00DqmD-9N for pgsql-hackers@lists.postgresql.org; Sun, 09 Feb 2025 13:17:12 +0000 Received: from mail-pj1-x1043.google.com ([2607:f8b0:4864:20::1043]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1th7BN-0046vu-2n for pgsql-hackers@lists.postgresql.org; Sun, 09 Feb 2025 13:17:11 +0000 Received: by mail-pj1-x1043.google.com with SMTP id 98e67ed59e1d1-2fa345713a8so3607059a91.2 for ; Sun, 09 Feb 2025 05:17:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739107029; x=1739711829; darn=lists.postgresql.org; h=mime-version:subject:references:in-reply-to:message-id:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=SPbzhp5u2EnKs+OVf+kacHvvSnw3S6fGTNImTppTc0Q=; b=UnCei7X63jWuWt2LD5xx+PzoMf60gjwNMZjm1dUssP5urrbeMPOODE9KKR9lFdr1hV 996j1IqyS6hLvv4r0sHwzNavwuSnDVUzC5tajhvNsymY9H4mSh1qcAEGWY/GcBnQ2CAh 9nxYWta5EZ3YRMKtZdGUJXr1X2TU2n2CJisL8RdUcRmeuCyCTnZE6nFgsMjayDKmm70r Ejh28Z8zA8Jvap6W+conxpqZglgZbz6Vw/qwwC1b0RAsYEYMnQ8OnqOKn+j3ZYlSJwca rIY6E0uTtyF5Y33XuChEGbugQDLll6eHMC/M4l9ozXtPZH/vFnG2+rccitnEwC/IdZM2 4CsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739107029; x=1739711829; h=mime-version:subject:references:in-reply-to:message-id:cc:to:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=SPbzhp5u2EnKs+OVf+kacHvvSnw3S6fGTNImTppTc0Q=; b=KR5lwHdfCD05hDhINpqf9W+mJmYrFBhT3S20OatBCH2fL/kqUD4zciG80b2jj7kAe9 e0cHvM8aXM6CySib3DyFWofUGr1XzTjDoRVw8WFDRYpJg6+6Le24nUkapR/Q1BwwT8Zy F5v3UbozvZXwWtV4kwdSHMldTYIeIbW36lZIahX7xs6kbCfze+/KAIbA1i6f2QPrrLAN SXxW796b6JUI4ur2ux2ohOTb5KXMjT9/lTtSEBCAW8Geo670NCVOpLDBPcRE8NWG89I/ Vvu+5WiAVVM/2C2A4bt3kwn5aiNrRHLcMgYagmcnmQ3ViIxs6zYQmIdzKn18e9luZF8a j9qA== X-Forwarded-Encrypted: i=1; AJvYcCXCqYamPdWgqZcOaDH9BqGhpE0lCV3QCOR7HJe6didQ9G7TVArqjAGfRA/w9qW/LNbgxoipKT66KqjG/VjV@lists.postgresql.org X-Gm-Message-State: AOJu0Yya2naXehpLKxGqIiFoe1o6IA8MQgPezPMb2njP+d8CGHItGetY JQ337hFLXZIGyoX+jHnZ6cy8aKXTYBciRfY02Y6qgrsCq/MO7AI1 X-Gm-Gg: ASbGncsAYtrN3cpozngzYJVzX/Gx3Fx83HxGTxZ0JZNpBYhle25aOsXurQrc0XY0XGO JqjUQAIFRIsCPMRwmZpGlPTZYbqJLgMLpDzzoUmiLqx4FwFQeh1LSOsodO4uwuz+y5ZEGWs06t2 fCTNi2Jn2w5TR50F9quZT//FMCGCq42LpYk5JSfgpT+YZ8wXjz0HqSr/iwIcxNg2glHphFwdyx5 sWyxO+4rDaLEhoOnNheLAgH8NX2LXAv0DjdpAbx+7DzYkBRy7qYvtpE/NJFcGHxo6eFIfVboX/0 N9/CBYuw7ZAof11hdRw= X-Google-Smtp-Source: AGHT+IGLsGqbUVR0uzbXHU75bkeyc+tvrf4NVgJK9m8PWemNbaehC5wR0gxKnXqzZh4GKruzt0FYzA== X-Received: by 2002:a17:90b:2357:b0:2ee:cd83:8fe6 with SMTP id 98e67ed59e1d1-2fa243f03b9mr14344442a91.35.1739107028305; Sun, 09 Feb 2025 05:17:08 -0800 (PST) Received: from [127.0.0.1] ([2406:da18:f9d:7d02:2633:229f:fdd8:5ed2]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2f9e1e2373esm9035441a91.37.2025.02.09.05.17.06 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 09 Feb 2025 05:17:07 -0800 (PST) Date: Sun, 9 Feb 2025 21:16:53 +0800 From: Zhang Mingli To: Sami Imseih Cc: Michael Paquier , =?utf-8?Q?=C3=81lvaro_Herrera?= , PostgreSQL Hackers Message-ID: <3904c689-2801-4916-99ed-7a7e1d86da3e@Spark> In-Reply-To: References: <202502021324.vn4ufyduifat@alvherre.pgsql> <9324b4d3-d49f-463e-984a-2725fe36cb2b@Spark> <3ded6d8c-c417-4812-8861-12cbb7f8e182@Spark> Subject: Re: Proposal to CREATE FOREIGN TABLE LIKE X-Readdle-Message-ID: 3904c689-2801-4916-99ed-7a7e1d86da3e@Spark MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="67a8aacb_16d6d9e5_1738b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --67a8aacb_16d6d9e5_1738b Content-Type: multipart/alternative; boundary="67a8aacb_60c47b91_1738b" --67a8aacb_60c47b91_1738b Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On =46eb 8, 2025 at 12:55 +0800, Sami Imseih , wro= te: > > =46ix CI failure of doc build in v1 patch. > > > > Thanks for the patch=21 I am +1 for this, but I have a few comments: Hi, tanks for review. > > > > 1/ In the IDENTITY case, the remote side may not be > > able to handle the DE=46AULT value. Yes, and done. > > 2/ As IDENTITY, STORAGE is also allowed on foreign tables, which > > does not make much sense either, as the fdw may not be Postgres, > > or if it is Postgres, it may have a different STORAGE setting. This i= s > > also not documented. I am inclined to say to not include it either. Done. > > > > I think we should not allow IDENTITY and STORAGE in this patch > > as they are not documented =5B1=5D as is, and perhaps a separate disc= ussion > > to correct the behavior for the CREATE =46OREIGN TABLE case. Yes, however, I found we have doc to tell users and they actually could A= LTER =46OREIGN TABLE to SET STORAGE... There are several inconsistencies, I have a summary in=C2=A0Inconsistency= between Compression and Storage for =46oreign Tables=5B0=5D We could discuss and fix them there. > > > > 3/ a minor nit on the comments. > > > > instead of > > > > + =46oreign tables have no real storage in PostgreSQL. > > > > Can it just be > > > > =46oreign tables have no storage in PostgreSQL. > > > > the =22real=22 is not needed. Done. Patch V2 addressed the comments. =5B0=5D=C2=A0https://www.postgresql.org/message-id/6cecef0e-ee14-473c-bb0= a-6aa61f539a66%40Spark -- Zhang Mingli HashData --67a8aacb_60c47b91_1738b Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline
On =46eb 8, 2025 at 12:55 +0800, Sami Imseih <sa= mimseih=40gmail.com>, wrote:
=46ix CI failure of doc build in v1 patch.

Thanks for the patch=21 I am +1 for this, but I have a few comments:
Hi, tanks for review.

1/ In the IDENTITY case, the remote side may not be
able to handle the DE=46AULT value.
Yes, and done.
2/ As IDENTITY, STORAGE is also allowed on foreign tables, which
does not make much sense either, as the fdw may not be Postgres,
or if it is Postgres, it may have a different STORAGE setting. This is also not documented. I am inclined to say to not include it either.
Done.

I think we should not allow IDENTITY and STORAGE in this patch
as they are not documented =5B1=5D as is, and perhaps a separate discussi= on
to correct the behavior for the CREATE =46OREIGN TABLE case.
=
Yes, however, I found we have doc to tell users and= they actually could ALTER =46OREIGN TABLE to SET STORAGE...
There are several inconsistencies, I have a summary in&=23160;Inc= onsistency between Compression and Storage for =46oreign Tables=5B0=5D
We could discuss and fix them there.

3/ a minor nit on the comments.

instead of

+ =46oreign tables have no real storage in PostgreSQL.

Can it just be

=46oreign tables have no storage in PostgreSQL.

the =22real=22 is not needed.
Done.

Patch V2 addressed the comments.&=23160;


=5B0=5D&=23160;https://= www.postgresql.org/message-id/6cecef0e-ee14-473c-bb0a-6aa61f539a66%40Spar= k


--
Zhang Mingli
HashData
--67a8aacb_60c47b91_1738b-- --67a8aacb_16d6d9e5_1738b Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v2-0001-CREATE-FOREIGN-TABLE-LIKE.patch" RnJvbSA5Y2EwOWI2OGJhZGU3YjVmOTcwMDljZDQ3Yzk5ZDY2MzRlZjQ3NWFkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBaaGFuZyBNaW5nbGkgPGF2YW1pbmdsaUBnbWFpbC5jb20+CkRh dGU6IFNhdCwgOCBGZWIgMjAyNSAwMDo0NjoxNyArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIENSRUFU RSBGT1JFSUdOIFRBQkxFIExJS0UKCkFkZGVkIHN1cHBvcnQgZm9yIENSRUFURSBGT1JFSUdOIFRB QkxFIExJS0UgdG8gZW5hYmxlIHRoZSBjcmVhdGlvbiBvZgpmb3JlaWduIHRhYmxlcyBiYXNlZCBv biB0aGUgY29sdW1uIGRlZmluaXRpb25zLCBjb25zdHJhaW50cyBvZiBleGlzdGluZwpzb3VyY2Ug dGFibGVzLgoKVGhpcyBmZWF0dXJlIG1pcnJvcnMgdGhlIGJlaGF2aW9yIG9mIENSRUFURSBUQUJM RSBMSUtFLApidXQgaWdub3JlcyBpbmFwcGxpY2FibGUgb3B0aW9ucyBzdWNoIGFzIElOQ0xVRElO RyBJTkRFWEVTLApJTkNMVURJTkcgQ09NUFJFU1NJT04sIElOQ0xVRElORyBJREVOVElUWSwgSU5D TFVESU5HIFNUT1JBR0UKZm9yIGZvcmVpZ24gdGFibGVzLgoKQXV0aG9yZWQtYnk6IFpoYW5nIE1p bmdsaSBhdmFtaW5nbGlAZ21haWwuY29tCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZm9y ZWlnbl90YWJsZS5zZ21sICAgIHwgMTE4ICsrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV91dGlsY21kLmMgICAgICAgICAgICB8ICAyOCArLS0KIC4uLi9yZWdyZXNzL2V4cGVj dGVkL2NyZWF0ZV90YWJsZV9saWtlLm91dCAgICB8IDE2NSArKysrKysrKysrKysrKysrKysKIHNy Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbCAgICB8ICA1NyArKysrKysK IDQgZmlsZXMgY2hhbmdlZCwgMzU2IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25fdGFibGUuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25fdGFibGUuc2dtbAppbmRleCAwZGNkOWNhNmY4 Li5lOWFiMGEyYjUzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9mb3JlaWdu X3RhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZm9yZWlnbl90YWJsZS5z Z21sCkBAIC0yMyw3ICsyMyw4IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogPHN5bm9wc2lz PgogQ1JFQVRFIEZPUkVJR04gVEFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiAoIFsKICAgeyA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBPUFRJT05T ICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9wdGlvbjwvcmVwbGFjZWFibGU+ICc8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPicgWywgLi4u IF0gKSBdIFsgQ09MTEFURSA8cmVwbGFjZWFibGU+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXSBb IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fY29uc3RyYWludDwvcmVwbGFj ZWFibGU+IFsgLi4uIF0gXQotICAgIHwgPHJlcGxhY2VhYmxlPnRhYmxlX2NvbnN0cmFpbnQ8L3Jl cGxhY2VhYmxlPiB9CisgICAgfCA8cmVwbGFjZWFibGU+dGFibGVfY29uc3RyYWludDwvcmVwbGFj ZWFibGU+CisgICAgfCBMSUtFIDxyZXBsYWNlYWJsZT5zb3VyY2VfdGFibGU8L3JlcGxhY2VhYmxl PiBbIDxyZXBsYWNlYWJsZT5saWtlX29wdGlvbjwvcmVwbGFjZWFibGU+IC4uLiBdIH0KICAgICBb LCAuLi4gXQogXSApCiBbIElOSEVSSVRTICggPHJlcGxhY2VhYmxlPnBhcmVudF90YWJsZTwvcmVw bGFjZWFibGU+IFssIC4uLiBdICkgXQpAQCAtNTcsNiArNTgsMTAgQEAgQ1JFQVRFIEZPUkVJR04g VEFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRh YmxlX25hbWUKICAgIENIRUNLICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJl c3Npb248L3JlcGxhY2VhYmxlPiApIFsgTk8gSU5IRVJJVCBdIH0KIFsgRU5GT1JDRUQgfCBOT1Qg RU5GT1JDRUQgXQogCis8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bGlrZV9vcHRpb248L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KKworeyBJTkNMVURJTkcgfCBF WENMVURJTkcgfSB7IENPTU1FTlRTIHwgQ09OU1RSQUlOVFMgfCBERUZBVUxUUyB8IEdFTkVSQVRF RCB8IFNUQVRJU1RJQ1MgfCBBTEwgfQorCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cGFydGl0aW9uX2JvdW5kX3NwZWM8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFz ZT4KIAogSU4gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGFydGl0aW9uX2JvdW5k X2V4cHI8L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgfApAQCAtMTkxLDYgKzE5NiwxMTcgQEAgV0lU SCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJh bDwvcmVwbGFjZWFibGU+LCBSRU0KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+ CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+TElLRSA8cmVwbGFjZWFi bGU+c291cmNlX3RhYmxlPC9yZXBsYWNlYWJsZT4gWyA8cmVwbGFjZWFibGU+bGlrZV9vcHRpb248 L3JlcGxhY2VhYmxlPiAuLi4gXTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAg ICA8cGFyYT4KKyAgICAgIFRoZSA8bGl0ZXJhbD5MSUtFPC9saXRlcmFsPiBjbGF1c2Ugc3BlY2lm aWVzIGEgdGFibGUgZnJvbSB3aGljaAorICAgICAgdGhlIG5ldyB0YWJsZSBhdXRvbWF0aWNhbGx5 IGNvcGllcyBhbGwgY29sdW1uIG5hbWVzLCB0aGVpciBkYXRhIHR5cGVzLAorICAgICAgYW5kIHRo ZWlyIG5vdC1udWxsIGNvbnN0cmFpbnRzLgorICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgorICAg ICAgVW5saWtlIDxsaXRlcmFsPklOSEVSSVRTPC9saXRlcmFsPiwgdGhlIG5ldyB0YWJsZSBhbmQg b3JpZ2luYWwgdGFibGUKKyAgICAgIGFyZSBjb21wbGV0ZWx5IGRlY291cGxlZCBhZnRlciBjcmVh dGlvbiBpcyBjb21wbGV0ZS4gIENoYW5nZXMgdG8gdGhlCisgICAgICBvcmlnaW5hbCB0YWJsZSB3 aWxsIG5vdCBiZSBhcHBsaWVkIHRvIHRoZSBuZXcgdGFibGUsIGFuZCBpdCBpcyBub3QKKyAgICAg IHBvc3NpYmxlIHRvIGluY2x1ZGUgZGF0YSBvZiB0aGUgbmV3IHRhYmxlIGluIHNjYW5zIG9mIHRo ZSBvcmlnaW5hbAorICAgICAgdGFibGUuCisgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgQWxzbyB1bmxpa2UgPGxpdGVyYWw+SU5IRVJJVFM8L2xpdGVyYWw+LCBjb2x1bW5zIGFuZAor ICAgICAgY29uc3RyYWludHMgY29waWVkIGJ5IDxsaXRlcmFsPkxJS0U8L2xpdGVyYWw+IGFyZSBu b3QgbWVyZ2VkIHdpdGggc2ltaWxhcmx5CisgICAgICBuYW1lZCBjb2x1bW5zIGFuZCBjb25zdHJh aW50cy4KKyAgICAgIElmIHRoZSBzYW1lIG5hbWUgaXMgc3BlY2lmaWVkIGV4cGxpY2l0bHkgb3Ig aW4gYW5vdGhlcgorICAgICAgPGxpdGVyYWw+TElLRTwvbGl0ZXJhbD4gY2xhdXNlLCBhbiBlcnJv ciBpcyBzaWduYWxlZC4KKyAgICAgPC9wYXJhPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBvcHRp b25hbCA8cmVwbGFjZWFibGU+bGlrZV9vcHRpb248L3JlcGxhY2VhYmxlPiBjbGF1c2VzIHNwZWNp ZnkKKyAgICAgIHdoaWNoIGFkZGl0aW9uYWwgcHJvcGVydGllcyBvZiB0aGUgb3JpZ2luYWwgdGFi bGUgdG8gY29weS4gIFNwZWNpZnlpbmcKKyAgICAgIDxsaXRlcmFsPklOQ0xVRElORzwvbGl0ZXJh bD4gY29waWVzIHRoZSBwcm9wZXJ0eSwgc3BlY2lmeWluZworICAgICAgPGxpdGVyYWw+RVhDTFVE SU5HPC9saXRlcmFsPiBvbWl0cyB0aGUgcHJvcGVydHkuCisgICAgICA8bGl0ZXJhbD5FWENMVURJ Tkc8L2xpdGVyYWw+IGlzIHRoZSBkZWZhdWx0LiAgSWYgbXVsdGlwbGUgc3BlY2lmaWNhdGlvbnMK KyAgICAgIGFyZSBtYWRlIGZvciB0aGUgc2FtZSBraW5kIG9mIG9iamVjdCwgdGhlIGxhc3Qgb25l IGlzIHVzZWQuICBUaGUKKyAgICAgIGF2YWlsYWJsZSBvcHRpb25zIGFyZToKKworICAgICAgPHZh cmlhYmxlbGlzdD4KKyAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT48bGl0ZXJh bD5JTkNMVURJTkcgQ09NTUVOVFM8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+ CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBDb21tZW50cyBmb3IgdGhlIGNvcGllZCBjb2x1 bW5zLCBjb25zdHJhaW50cywgYW5kIGluZGV4ZXMgd2lsbCBiZQorICAgICAgICAgIGNvcGllZC4g IFRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIHRvIGV4Y2x1ZGUgY29tbWVudHMsIHJlc3VsdGluZyBp bgorICAgICAgICAgIHRoZSBjb3BpZWQgY29sdW1ucyBhbmQgY29uc3RyYWludHMgaW4gdGhlIG5l dyB0YWJsZSBoYXZpbmcgbm8KKyAgICAgICAgICBjb21tZW50cy4KKyAgICAgICAgIDwvcGFyYT4K KyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgIDx2 YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPklOQ0xVRElORyBDT05TVFJBSU5U UzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgor ICAgICAgICAgIDxsaXRlcmFsPkNIRUNLPC9saXRlcmFsPiBjb25zdHJhaW50cyB3aWxsIGJlIGNv cGllZC4gIE5vIGRpc3RpbmN0aW9uCisgICAgICAgICAgaXMgbWFkZSBiZXR3ZWVuIGNvbHVtbiBj b25zdHJhaW50cyBhbmQgdGFibGUgY29uc3RyYWludHMuICBOb3QtbnVsbAorICAgICAgICAgIGNv bnN0cmFpbnRzIGFyZSBhbHdheXMgY29waWVkIHRvIHRoZSBuZXcgdGFibGUuCisgICAgICAgICA8 L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAg ICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT48bGl0ZXJhbD5JTkNMVURJTkcgREVG QVVMVFM8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFy YT4KKyAgICAgICAgICBEZWZhdWx0IGV4cHJlc3Npb25zIGZvciB0aGUgY29waWVkIGNvbHVtbiBk ZWZpbml0aW9ucyB3aWxsIGJlCisgICAgICAgICAgY29waWVkLiAgT3RoZXJ3aXNlLCBkZWZhdWx0 IGV4cHJlc3Npb25zIGFyZSBub3QgY29waWVkLCByZXN1bHRpbmcgaW4KKyAgICAgICAgICB0aGUg Y29waWVkIGNvbHVtbnMgaW4gdGhlIG5ldyB0YWJsZSBoYXZpbmcgbnVsbCBkZWZhdWx0cy4gIE5v dGUgdGhhdAorICAgICAgICAgIGNvcHlpbmcgZGVmYXVsdHMgdGhhdCBjYWxsIGRhdGFiYXNlLW1v ZGlmaWNhdGlvbiBmdW5jdGlvbnMsIHN1Y2ggYXMKKyAgICAgICAgICA8ZnVuY3Rpb24+bmV4dHZh bDwvZnVuY3Rpb24+LCBtYXkgY3JlYXRlIGEgZnVuY3Rpb25hbCBsaW5rYWdlCisgICAgICAgICAg YmV0d2VlbiB0aGUgb3JpZ2luYWwgYW5kIG5ldyB0YWJsZXMuCisgICAgICAgICA8L3BhcmE+Cisg ICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICA8dmFy bGlzdGVudHJ5PgorICAgICAgICA8dGVybT48bGl0ZXJhbD5JTkNMVURJTkcgR0VORVJBVEVEPC9s aXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAg ICAgICAgQW55IGdlbmVyYXRpb24gZXhwcmVzc2lvbnMgb2YgY29waWVkIGNvbHVtbiBkZWZpbml0 aW9ucyB3aWxsIGJlCisgICAgICAgICAgY29waWVkLiAgQnkgZGVmYXVsdCwgbmV3IGNvbHVtbnMg d2lsbCBiZSByZWd1bGFyIGJhc2UgY29sdW1ucy4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAg PC9saXN0aXRlbT4KKyAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgIDx2YXJsaXN0ZW50 cnk+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPklOQ0xVRElORyBTVEFUSVNUSUNTPC9saXRlcmFs PjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAg RXh0ZW5kZWQgc3RhdGlzdGljcyBhcmUgY29waWVkIHRvIHRoZSBuZXcgdGFibGUuCisgICAgICAg ICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisK KyAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT48bGl0ZXJhbD5JTkNMVURJTkcg QUxMPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+ CisgICAgICAgICAgPGxpdGVyYWw+SU5DTFVESU5HIEFMTDwvbGl0ZXJhbD4gaXMgYW4gYWJicmV2 aWF0ZWQgZm9ybSBzZWxlY3RpbmcKKyAgICAgICAgICBhbGwgdGhlIGF2YWlsYWJsZSBpbmRpdmlk dWFsIG9wdGlvbnMuICAoSXQgY291bGQgYmUgdXNlZnVsIHRvIHdyaXRlCisgICAgICAgICAgaW5k aXZpZHVhbCA8bGl0ZXJhbD5FWENMVURJTkc8L2xpdGVyYWw+IGNsYXVzZXMgYWZ0ZXIKKyAgICAg ICAgICA8bGl0ZXJhbD5JTkNMVURJTkcgQUxMPC9saXRlcmFsPiB0byBzZWxlY3QgYWxsIGJ1dCBz b21lIHNwZWNpZmljCisgICAgICAgICAgb3B0aW9ucy4pCisgICAgICAgICA8L3BhcmE+CisgICAg ICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICA8L3ZhcmlhYmxl bGlzdD4KKyAgICAgPC9wYXJhPgorCisgICAgIDxwYXJhPgorICAgICAgRm9yZWlnbiB0YWJsZXMg aGF2ZSBubyByZWFsIHN0b3JhZ2UgaW4gUG9zdGdyZVNRTC4KKyAgICAgIEluYXBwbGljYWJsZSBv cHRpb25zOiA8bGl0ZXJhbD5JTkNMVURJTkcgSU5ERVhFUzwvbGl0ZXJhbD4sIDxsaXRlcmFsPklO Q0xVRElORyBTVE9SQUdFPC9saXRlcmFsPiwKKyAgICAgIDxsaXRlcmFsPklOQ0xVRElORyBDT01Q UkVTU0lPTjwvbGl0ZXJhbD4sIDxsaXRlcmFsPklOQ0xVRElORyBJREVOVElUWTwvbGl0ZXJhbD4g YXJlIGlnbm9yZWQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0 ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+Q09OU1RSQUlO VCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29uc3RyYWludF9uYW1lPC9yZXBsYWNl YWJsZT48L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf dXRpbGNtZC5jCmluZGV4IGNhMDI4ZDJhNjYuLmY2ZGI0M2UwMzQgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3V0aWxjbWQuYwpAQCAtMTExNyw2ICsxMTE3LDE0IEBAIHRyYW5zZm9ybVRhYmxlQ29uc3Ry YWludChDcmVhdGVTdG10Q29udGV4dCAqY3h0LCBDb25zdHJhaW50ICpjb25zdHJhaW50KQogICog cHJvY2VzcyBhdCB0aGlzIHBvaW50LCBhZGQgdGhlIFRhYmxlTGlrZUNsYXVzZSB0byBjeHQtPmxp a2VjbGF1c2VzLCB3aGljaAogICogd2lsbCBjYXVzZSB1dGlsaXR5LmMgdG8gY2FsbCBleHBhbmRU YWJsZUxpa2VDbGF1c2UoKSBhZnRlciB0aGUgbmV3CiAgKiB0YWJsZSBoYXMgYmVlbiBjcmVhdGVk LgorICoKKyAqIEZvciBmb3JlaWduIHRhYmxlcywgdGhleSBoYXZlIG5vIHN0b3JhZ2UgaW4gUG9z dGdyZXMuCisgKiBJbmFwcGxpY2FibGUgb3B0aW9ucyBhcmUgaWdub3JlZDoKKyAqCUNSRUFURV9U QUJMRV9MSUtFX0NPTVBSRVNTSU9OCisgKglDUkVBVEVfVEFCTEVfTElLRV9JREVOVElUWQorICoJ Q1JFQVRFX1RBQkxFX0xJS0VfU1RPUkFHRQorICoJQ1JFQVRFX1RBQkxFX0xJS0VfSU5ERVhFUwor ICogd2hpbGUgSU5ERVhFUyBpcyBoYW5kbGVkIGluIGV4cGFuZFRhYmxlTGlrZUNsYXVzZSgpIGxh dGVyLgogICovCiBzdGF0aWMgdm9pZAogdHJhbnNmb3JtVGFibGVMaWtlQ2xhdXNlKENyZWF0ZVN0 bXRDb250ZXh0ICpjeHQsIFRhYmxlTGlrZUNsYXVzZSAqdGFibGVfbGlrZV9jbGF1c2UpCkBAIC0x MTMxLDEyICsxMTM5LDYgQEAgdHJhbnNmb3JtVGFibGVMaWtlQ2xhdXNlKENyZWF0ZVN0bXRDb250 ZXh0ICpjeHQsIFRhYmxlTGlrZUNsYXVzZSAqdGFibGVfbGlrZV9jbGEKIAlzZXR1cF9wYXJzZXJf ZXJycG9zaXRpb25fY2FsbGJhY2soJnBjYnN0YXRlLCBjeHQtPnBzdGF0ZSwKIAkJCQkJCQkJCSAg dGFibGVfbGlrZV9jbGF1c2UtPnJlbGF0aW9uLT5sb2NhdGlvbik7CiAKLQkvKiB3ZSBjb3VsZCBz dXBwb3J0IExJS0UgaW4gbWFueSBjYXNlcywgYnV0IHdvcnJ5IGFib3V0IGl0IGFub3RoZXIgZGF5 ICovCi0JaWYgKGN4dC0+aXNmb3JlaWduKQotCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2Rl KEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkgZXJybXNnKCJMSUtFIGlzIG5v dCBzdXBwb3J0ZWQgZm9yIGNyZWF0aW5nIGZvcmVpZ24gdGFibGVzIikpKTsKLQogCS8qIE9wZW4g dGhlIHJlbGF0aW9uIHJlZmVyZW5jZWQgYnkgdGhlIExJS0UgY2xhdXNlICovCiAJcmVsYXRpb24g PSByZWxhdGlvbl9vcGVucnYodGFibGVfbGlrZV9jbGF1c2UtPnJlbGF0aW9uLCBBY2Nlc3NTaGFy ZUxvY2spOwogCkBAIC0xMjE3LDcgKzEyMTksOCBAQCB0cmFuc2Zvcm1UYWJsZUxpa2VDbGF1c2Uo Q3JlYXRlU3RtdENvbnRleHQgKmN4dCwgVGFibGVMaWtlQ2xhdXNlICp0YWJsZV9saWtlX2NsYQog CQkgKiBDb3B5IGlkZW50aXR5IGlmIHJlcXVlc3RlZAogCQkgKi8KIAkJaWYgKGF0dHJpYnV0ZS0+ YXR0aWRlbnRpdHkgJiYKLQkJCSh0YWJsZV9saWtlX2NsYXVzZS0+b3B0aW9ucyAmIENSRUFURV9U QUJMRV9MSUtFX0lERU5USVRZKSkKKwkJCSh0YWJsZV9saWtlX2NsYXVzZS0+b3B0aW9ucyAmIENS RUFURV9UQUJMRV9MSUtFX0lERU5USVRZKSAmJgorCQkJIWN4dC0+aXNmb3JlaWduKQogCQl7CiAJ CQlPaWQJCQlzZXFfcmVsaWQ7CiAJCQlMaXN0CSAgICpzZXFfb3B0aW9uczsKQEAgLTEyMzYsMTQg KzEyMzksMTYgQEAgdHJhbnNmb3JtVGFibGVMaWtlQ2xhdXNlKENyZWF0ZVN0bXRDb250ZXh0ICpj eHQsIFRhYmxlTGlrZUNsYXVzZSAqdGFibGVfbGlrZV9jbGEKIAkJfQogCiAJCS8qIExpa2V3aXNl LCBjb3B5IHN0b3JhZ2UgaWYgcmVxdWVzdGVkICovCi0JCWlmICh0YWJsZV9saWtlX2NsYXVzZS0+ b3B0aW9ucyAmIENSRUFURV9UQUJMRV9MSUtFX1NUT1JBR0UpCisJCWlmICgodGFibGVfbGlrZV9j bGF1c2UtPm9wdGlvbnMgJiBDUkVBVEVfVEFCTEVfTElLRV9TVE9SQUdFKSAmJgorCQkJIWN4dC0+ aXNmb3JlaWduKQogCQkJZGVmLT5zdG9yYWdlID0gYXR0cmlidXRlLT5hdHRzdG9yYWdlOwogCQll bHNlCiAJCQlkZWYtPnN0b3JhZ2UgPSAwOwogCiAJCS8qIExpa2V3aXNlLCBjb3B5IGNvbXByZXNz aW9uIGlmIHJlcXVlc3RlZCAqLwotCQlpZiAoKHRhYmxlX2xpa2VfY2xhdXNlLT5vcHRpb25zICYg Q1JFQVRFX1RBQkxFX0xJS0VfQ09NUFJFU1NJT04pICE9IDAKLQkJCSYmIENvbXByZXNzaW9uTWV0 aG9kSXNWYWxpZChhdHRyaWJ1dGUtPmF0dGNvbXByZXNzaW9uKSkKKwkJaWYgKCh0YWJsZV9saWtl X2NsYXVzZS0+b3B0aW9ucyAmIENSRUFURV9UQUJMRV9MSUtFX0NPTVBSRVNTSU9OKSAhPSAwICYm CisJCQlDb21wcmVzc2lvbk1ldGhvZElzVmFsaWQoYXR0cmlidXRlLT5hdHRjb21wcmVzc2lvbikg JiYKKwkJCSFjeHQtPmlzZm9yZWlnbikKIAkJCWRlZi0+Y29tcHJlc3Npb24gPQogCQkJCXBzdHJk dXAoR2V0Q29tcHJlc3Npb25NZXRob2ROYW1lKGF0dHJpYnV0ZS0+YXR0Y29tcHJlc3Npb24pKTsK IAkJZWxzZQpAQCAtMTUyMiw3ICsxNTI3LDggQEAgZXhwYW5kVGFibGVMaWtlQ2xhdXNlKFJhbmdl VmFyICpoZWFwUmVsLCBUYWJsZUxpa2VDbGF1c2UgKnRhYmxlX2xpa2VfY2xhdXNlKQogCSAqIFBy b2Nlc3MgaW5kZXhlcyBpZiByZXF1aXJlZC4KIAkgKi8KIAlpZiAoKHRhYmxlX2xpa2VfY2xhdXNl LT5vcHRpb25zICYgQ1JFQVRFX1RBQkxFX0xJS0VfSU5ERVhFUykgJiYKLQkJcmVsYXRpb24tPnJk X3JlbC0+cmVsaGFzaW5kZXgpCisJCXJlbGF0aW9uLT5yZF9yZWwtPnJlbGhhc2luZGV4ICYmCisJ CWNoaWxkcmVsLT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9GT1JFSUdOX1RBQkxFKQogCXsK IAkJTGlzdAkgICAqcGFyZW50X2luZGV4ZXM7CiAJCUxpc3RDZWxsICAgKmw7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtlLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3RhYmxlX2xpa2Uub3V0CmluZGV4IGUwNjEzODkx MzUuLjQwNDhjZDE5ZGIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3Jl YXRlX3RhYmxlX2xpa2Uub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRl X3RhYmxlX2xpa2Uub3V0CkBAIC01NjMsMyArNTYzLDE2OCBAQCBEUk9QIFRZUEUgY3RsdHkxOwog RFJPUCBWSUVXIGN0bHYxOwogRFJPUCBUQUJMRSBJRiBFWElTVFMgY3RsdDQsIGN0bHQxMCwgY3Rs dDExLCBjdGx0MTFhLCBjdGx0MTI7CiBOT1RJQ0U6ICB0YWJsZSAiY3RsdDEwIiBkb2VzIG5vdCBl eGlzdCwgc2tpcHBpbmcKKy0tCistLSBDUkVBVEUgRk9SRUlHTiBUQUJMRSBMSUtFCistLQorQ1JF QVRFIEZPUkVJR04gREFUQSBXUkFQUEVSIGN0bF9kdW1teTsKK0NSRUFURSBTRVJWRVIgY3RsX3Mw IEZPUkVJR04gREFUQSBXUkFQUEVSIGN0bF9kdW1teTsKK0NSRUFURSBUQUJMRSBjdGxfdGFibGUo YSBpbnQgREVGQVVMVCAxLCBiIHRleHQsCisgIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAyKSBTVE9SRUQsCisgIGQgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJVFkpOwor Q1JFQVRFIElOREVYIGN0bF90YWJsZV9hX2tleSBPTiBjdGxfdGFibGUoYSk7CitDT01NRU5UIE9O IENPTFVNTiBjdGxfdGFibGUuYiBJUyAnQ29sdW1uIGInOworQ1JFQVRFIFNUQVRJU1RJQ1MgY3Rs X3RhYmxlX3N0YXQgT04gYSxiIEZST00gY3RsX3RhYmxlOworQUxURVIgVEFCTEUgY3RsX3RhYmxl IGFkZCBjb25zdHJhaW50IGZvbyBDSEVDSyAoYiA9ICd0ZXh0Jyk7CitcZCsgY3RsX3RhYmxlCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJs aWMuY3RsX3RhYmxlIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgfCBTdG9yYWdlICB8IFN0YXRzIHRh cmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAg fCAgICAgICAgICB8IDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwbGFpbiAg ICB8ICAgICAgICAgICAgICB8IAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBleHRlbmRlZCB8ICAg ICAgICAgICAgICB8IENvbHVtbiBiCisgYyAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZCB8IHBsYWluICAgIHwg ICAgICAgICAgICAgIHwgCisgZCAgICAgIHwgYmlnaW50ICB8ICAgICAgICAgICB8IG5vdCBudWxs IHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyBpZGVudGl0eSAgICAgICB8IHBsYWluICAgIHwgICAgICAg ICAgICAgIHwgCitJbmRleGVzOgorICAgICJjdGxfdGFibGVfYV9rZXkiIGJ0cmVlIChhKQorQ2hl Y2sgY29uc3RyYWludHM6CisgICAgImZvbyIgQ0hFQ0sgKGIgPSAndGV4dCc6OnRleHQpCitTdGF0 aXN0aWNzIG9iamVjdHM6CisgICAgInB1YmxpYy5jdGxfdGFibGVfc3RhdCIgT04gYSwgYiBGUk9N IGN0bF90YWJsZQorTm90LW51bGwgY29uc3RyYWludHM6CisgICAgImN0bF90YWJsZV9kX25vdF9u dWxsIiBOT1QgTlVMTCAiZCIKKworLS0gVGVzdCBFWENMVURJTkcgQUxMIGJ5IGRlZmF1bHQKK0NS RUFURSBGT1JFSUdOIFRBQkxFIGN0bF9mb3JlaWduX3RhYmxlMShMSUtFIGN0bF90YWJsZSkgU0VS VkVSIGN0bF9zMDsKK1xkKyBjdGxfZm9yZWlnbl90YWJsZTEKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRm9yZWlnbiB0YWJsZSAicHVibGljLmN0bF9mb3JlaWduX3RhYmxlMSIKKyBD b2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgRkRXIG9w dGlvbnMgfCBTdG9yYWdlICB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdl ciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgIHwgcGxhaW4g ICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAgICB8 IAorIGMgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCAg ICAgICAgICAgICB8IHBsYWluICAgIHwgICAgICAgICAgICAgIHwgCisgZCAgICAgIHwgYmlnaW50 ICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgICAgICAgICB8ICAgICAgICAgICAgIHwgcGxhaW4g ICAgfCAgICAgICAgICAgICAgfCAKK05vdC1udWxsIGNvbnN0cmFpbnRzOgorICAgICJjdGxfdGFi bGVfZF9ub3RfbnVsbCIgTk9UIE5VTEwgImQiCitTZXJ2ZXI6IGN0bF9zMAorCistLSBUZXN0IElO Q0xVRElORyBJTkRFWEVTIGRvZXMndCB0YWtlIGVmZmVjdAorQ1JFQVRFIEZPUkVJR04gVEFCTEUg Y3RsX2ZvcmVpZ25fdGFibGUyKExJS0UgY3RsX3RhYmxlIElOQ0xVRElORyBJTkRFWEVTKSBTRVJW RVIgY3RsX3MwOworXGQrIGN0bF9mb3JlaWduX3RhYmxlMgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBGb3JlaWduIHRhYmxlICJwdWJsaWMuY3RsX2ZvcmVpZ25fdGFibGUyIgorIENv bHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgfCBGRFcgb3B0 aW9ucyB8IFN0b3JhZ2UgIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgfCBwbGFpbiAg ICB8ICAgICAgICAgICAgICB8IAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAg ICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICAgIHwg CisgYyAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8ICAg ICAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgICAgfCAKKyBkICAgICAgfCBiaWdpbnQg IHwgICAgICAgICAgIHwgbm90IG51bGwgfCAgICAgICAgIHwgICAgICAgICAgICAgfCBwbGFpbiAg ICB8ICAgICAgICAgICAgICB8IAorTm90LW51bGwgY29uc3RyYWludHM6CisgICAgImN0bF90YWJs ZV9kX25vdF9udWxsIiBOT1QgTlVMTCAiZCIKK1NlcnZlcjogY3RsX3MwCisKKy0tIFRlc3QgSU5D TFVESU5HIElERU5USVRZIGRvZXMndCB0YWtlIGVmZmVjdAorQ1JFQVRFIEZPUkVJR04gVEFCTEUg Y3RsX2ZvcmVpZ25fdGFibGUzKExJS0UgY3RsX3RhYmxlIElOQ0xVRElORyBJREVOVElUWSkgU0VS VkVSIGN0bF9zMDsKK1xkKyBjdGxfZm9yZWlnbl90YWJsZTMKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRm9yZWlnbiB0YWJsZSAicHVibGljLmN0bF9mb3JlaWduX3RhYmxlMyIKKyBD b2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgRkRXIG9w dGlvbnMgfCBTdG9yYWdlICB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdl ciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgIHwgcGxhaW4g ICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAgICB8 IAorIGMgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCAg ICAgICAgICAgICB8IHBsYWluICAgIHwgICAgICAgICAgICAgIHwgCisgZCAgICAgIHwgYmlnaW50 ICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgICAgICAgICB8ICAgICAgICAgICAgIHwgcGxhaW4g ICAgfCAgICAgICAgICAgICAgfCAKK05vdC1udWxsIGNvbnN0cmFpbnRzOgorICAgICJjdGxfdGFi bGVfZF9ub3RfbnVsbCIgTk9UIE5VTEwgImQiCitTZXJ2ZXI6IGN0bF9zMAorCistLSBUZXN0IElO Q0xVRElORyBDT01QUkVTU0lPTiBkb2VzJ3QgdGFrZSBlZmZlY3QKK1xzZXQgSElERV9UT0FTVF9D T01QUkVTU0lPTiBmYWxzZQorQUxURVIgVEFCTEUgY3RsX3RhYmxlIEFMVEVSIENPTFVNTiBiIFRZ UEUgdmFyY2hhcjsKK0FMVEVSIFRBQkxFIGN0bF90YWJsZSBBTFRFUiBDT0xVTU4gYiBTRVQgQ09N UFJFU1NJT04gcGdsejsKK1xkKyBjdGxfdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5jdGxfdGFibGUi CisgQ29sdW1uIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAg ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgfCBTdG9yYWdlICB8IENvbXByZXNzaW9u IHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tCisgYSAgICAgIHwgaW50ZWdlciAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8 IDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgICAgIHwgCisgYiAgICAgIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCAgICAg ICAgICAgfCAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBl eHRlbmRlZCB8IHBnbHogICAgICAgIHwgICAgICAgICAgICAgIHwgQ29sdW1uIGIKKyBjICAgICAg fCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFs d2F5cyBhcyAoYSAqIDIpIHN0b3JlZCB8IHBsYWluICAgIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgfCAKKyBkICAgICAgfCBiaWdpbnQgICAgICAgICAgICB8ICAgICAgICAgICB8IG5vdCBu dWxsIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyBpZGVudGl0eSAgICAgICB8IHBsYWluICAgIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgfCAKK0luZGV4ZXM6CisgICAgImN0bF90YWJsZV9hX2tl eSIgYnRyZWUgKGEpCitDaGVjayBjb25zdHJhaW50czoKKyAgICAiZm9vIiBDSEVDSyAoYjo6dGV4 dCA9ICd0ZXh0Jzo6dGV4dCkKK1N0YXRpc3RpY3Mgb2JqZWN0czoKKyAgICAicHVibGljLmN0bF90 YWJsZV9zdGF0IiBPTiBhLCBiIEZST00gY3RsX3RhYmxlCitOb3QtbnVsbCBjb25zdHJhaW50czoK KyAgICAiY3RsX3RhYmxlX2Rfbm90X251bGwiIE5PVCBOVUxMICJkIgorCitDUkVBVEUgRk9SRUlH TiBUQUJMRSBjdGxfZm9yZWlnbl90YWJsZTQoTElLRSBjdGxfdGFibGUgSU5DTFVESU5HIENPTVBS RVNTSU9OKSBTRVJWRVIgY3RsX3MwOworXGQrIGN0bF9mb3JlaWduX3RhYmxlNAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvcmVpZ24gdGFibGUgInB1YmxpYy5jdGxfZm9y ZWlnbl90YWJsZTQiCisgQ29sdW1uIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCBO dWxsYWJsZSB8IERlZmF1bHQgfCBGRFcgb3B0aW9ucyB8IFN0b3JhZ2UgIHwgU3RhdHMgdGFyZ2V0 IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciAgICAgICAgICAgfCAgICAgICAg ICAgfCAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICB8IHBsYWluICAgIHwgICAgICAg ICAgICAgIHwgCisgYiAgICAgIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCAgICAgICAgICAgfCAgICAg ICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICAgIHwg CisgYyAgICAgIHwgaW50ZWdlciAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAg ICAgICAgfCAgICAgICAgICAgICB8IHBsYWluICAgIHwgICAgICAgICAgICAgIHwgCisgZCAgICAg IHwgYmlnaW50ICAgICAgICAgICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8ICAgICAgICAgfCAg ICAgICAgICAgICB8IHBsYWluICAgIHwgICAgICAgICAgICAgIHwgCitOb3QtbnVsbCBjb25zdHJh aW50czoKKyAgICAiY3RsX3RhYmxlX2Rfbm90X251bGwiIE5PVCBOVUxMICJkIgorU2VydmVyOiBj dGxfczAKKworXHNldCBISURFX1RPQVNUX0NPTVBSRVNTSU9OIHRydWUKKy0tIFRlc3QgSU5DTFVE SU5HIFNUT1JBR0UgZG9lcyd0IHRha2UgZWZmZWN0CitBTFRFUiBUQUJMRSBjdGxfdGFibGUgQUxU RVIgQ09MVU1OIGIgU0VUIFNUT1JBR0UgZXh0ZXJuYWw7CitcZCsgY3RsX3RhYmxlCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1Ymxp Yy5jdGxfdGFibGUiCisgQ29sdW1uIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCBO dWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgfCBTdG9yYWdlICB8 IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBp bnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgMSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IHBsYWluICAgIHwgICAgICAgICAgICAgIHwgCisgYiAgICAg IHwgY2hhcmFjdGVyIHZhcnlpbmcgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCBleHRlcm5hbCB8ICAgICAgICAgICAgICB8IENvbHVt biBiCisgYyAgICAgIHwgaW50ZWdlciAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8 IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQgfCBwbGFpbiAgICB8ICAgICAgICAg ICAgICB8IAorIGQgICAgICB8IGJpZ2ludCAgICAgICAgICAgIHwgICAgICAgICAgIHwgbm90IG51 bGwgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIGlkZW50aXR5ICAgICAgIHwgcGxhaW4gICAgfCAgICAg ICAgICAgICAgfCAKK0luZGV4ZXM6CisgICAgImN0bF90YWJsZV9hX2tleSIgYnRyZWUgKGEpCitD aGVjayBjb25zdHJhaW50czoKKyAgICAiZm9vIiBDSEVDSyAoYjo6dGV4dCA9ICd0ZXh0Jzo6dGV4 dCkKK1N0YXRpc3RpY3Mgb2JqZWN0czoKKyAgICAicHVibGljLmN0bF90YWJsZV9zdGF0IiBPTiBh LCBiIEZST00gY3RsX3RhYmxlCitOb3QtbnVsbCBjb25zdHJhaW50czoKKyAgICAiY3RsX3RhYmxl X2Rfbm90X251bGwiIE5PVCBOVUxMICJkIgorCitDUkVBVEUgRk9SRUlHTiBUQUJMRSBjdGxfZm9y ZWlnbl90YWJsZTUoTElLRSBjdGxfdGFibGUgSU5DTFVESU5HIFNUT1JBR0UpIFNFUlZFUiBjdGxf czA7CitcZCsgY3RsX2ZvcmVpZ25fdGFibGU1CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRm9yZWlnbiB0YWJsZSAicHVibGljLmN0bF9mb3JlaWduX3RhYmxlNSIKKyBDb2x1 bW4gfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCB8 IEZEVyBvcHRpb25zIHwgU3RvcmFnZSAgfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0K KyBhICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAg ICAgICB8ICAgICAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAg fCBjaGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8ICAg ICAgICAgICAgIHwgZXh0ZW5kZWQgfCAgICAgICAgICAgICAgfCAKKyBjICAgICAgfCBpbnRlZ2Vy ICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAg IHwgcGxhaW4gICAgfCAgICAgICAgICAgICAgfCAKKyBkICAgICAgfCBiaWdpbnQgICAgICAgICAg ICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgICAgICAgICB8ICAgICAgICAgICAgIHwgcGxhaW4g ICAgfCAgICAgICAgICAgICAgfCAKK05vdC1udWxsIGNvbnN0cmFpbnRzOgorICAgICJjdGxfdGFi bGVfZF9ub3RfbnVsbCIgTk9UIE5VTEwgImQiCitTZXJ2ZXI6IGN0bF9zMAorCistLSBUZXN0IHZh bGlkIGxpa2Vfb3B0aW9ucyB0YWtlIGVmZmVjdDoKK0NSRUFURSBGT1JFSUdOIFRBQkxFIGN0bF9m b3JlaWduX3RhYmxlNihMSUtFIGN0bF90YWJsZSBJTkNMVURJTkcgQUxMKSBTRVJWRVIgY3RsX3Mw OworXGQrIGN0bF9mb3JlaWduX3RhYmxlNgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBGb3JlaWduIHRhYmxlICJwdWJsaWMuY3RsX2ZvcmVpZ25fdGFi bGU2IgorIENvbHVtbiB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUg fCAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIHwgRkRXIG9wdGlvbnMgfCBTdG9y YWdlICB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgfCBw bGFpbiAgICB8ICAgICAgICAgICAgICB8IAorIGIgICAgICB8IGNoYXJhY3RlciB2YXJ5aW5nIHwg ICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAgICB8IENvbHVtbiBiCisgYyAg ICAgIHwgaW50ZWdlciAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRl ZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQgfCAgICAgICAgICAgICB8IHBsYWluICAgIHwgICAg ICAgICAgICAgIHwgCisgZCAgICAgIHwgYmlnaW50ICAgICAgICAgICAgfCAgICAgICAgICAgfCBu b3QgbnVsbCB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICB8IHBsYWluICAgIHwgICAgICAgICAgICAgIHwgCitDaGVjayBjb25zdHJhaW50czoKKyAgICAi Zm9vIiBDSEVDSyAoYjo6dGV4dCA9ICd0ZXh0Jzo6dGV4dCkKK1N0YXRpc3RpY3Mgb2JqZWN0czoK KyAgICAicHVibGljLmN0bF9mb3JlaWduX3RhYmxlNl9hX2Jfc3RhdCIgT04gYSwgYiBGUk9NIGN0 bF9mb3JlaWduX3RhYmxlNgorTm90LW51bGwgY29uc3RyYWludHM6CisgICAgImN0bF90YWJsZV9k X25vdF9udWxsIiBOT1QgTlVMTCAiZCIKK1NlcnZlcjogY3RsX3MwCisKK0RST1AgVEFCTEUgY3Rs X3RhYmxlOworRFJPUCBGT1JFSUdOIFRBQkxFIGN0bF9mb3JlaWduX3RhYmxlMTsKK0RST1AgRk9S RUlHTiBUQUJMRSBjdGxfZm9yZWlnbl90YWJsZTI7CitEUk9QIEZPUkVJR04gVEFCTEUgY3RsX2Zv cmVpZ25fdGFibGUzOworRFJPUCBGT1JFSUdOIFRBQkxFIGN0bF9mb3JlaWduX3RhYmxlNDsKK0RS T1AgRk9SRUlHTiBUQUJMRSBjdGxfZm9yZWlnbl90YWJsZTU7CitEUk9QIEZPUkVJR04gVEFCTEUg Y3RsX2ZvcmVpZ25fdGFibGU2OworRFJPUCBGT1JFSUdOIERBVEEgV1JBUFBFUiBjdGxfZHVtbXkg Q0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gc2VydmVyIGN0bF9zMApkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3RhYmxlX2xpa2Uuc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvY3JlYXRlX3RhYmxlX2xpa2Uuc3FsCmluZGV4IGE0MWY4YjgzZDcuLmVh NTg2YWY0MzggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9s aWtlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfdGFibGVfbGlrZS5zcWwK QEAgLTIyNSwzICsyMjUsNjAgQEAgRFJPUCBTRVFVRU5DRSBjdGxzZXExOwogRFJPUCBUWVBFIGN0 bHR5MTsKIERST1AgVklFVyBjdGx2MTsKIERST1AgVEFCTEUgSUYgRVhJU1RTIGN0bHQ0LCBjdGx0 MTAsIGN0bHQxMSwgY3RsdDExYSwgY3RsdDEyOworCistLQorLS0gQ1JFQVRFIEZPUkVJR04gVEFC TEUgTElLRQorLS0KK0NSRUFURSBGT1JFSUdOIERBVEEgV1JBUFBFUiBjdGxfZHVtbXk7CitDUkVB VEUgU0VSVkVSIGN0bF9zMCBGT1JFSUdOIERBVEEgV1JBUFBFUiBjdGxfZHVtbXk7CisKK0NSRUFU RSBUQUJMRSBjdGxfdGFibGUoYSBpbnQgREVGQVVMVCAxLCBiIHRleHQsCisgIGMgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQsCisgIGQgYmlnaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgSURFTlRJVFkpOworCitDUkVBVEUgSU5ERVggY3RsX3RhYmxlX2Ffa2V5IE9OIGN0bF90 YWJsZShhKTsKK0NPTU1FTlQgT04gQ09MVU1OIGN0bF90YWJsZS5iIElTICdDb2x1bW4gYic7CitD UkVBVEUgU1RBVElTVElDUyBjdGxfdGFibGVfc3RhdCBPTiBhLGIgRlJPTSBjdGxfdGFibGU7CitB TFRFUiBUQUJMRSBjdGxfdGFibGUgYWRkIGNvbnN0cmFpbnQgZm9vIENIRUNLIChiID0gJ3RleHQn KTsKK1xkKyBjdGxfdGFibGUKKworLS0gVGVzdCBFWENMVURJTkcgQUxMIGJ5IGRlZmF1bHQKK0NS RUFURSBGT1JFSUdOIFRBQkxFIGN0bF9mb3JlaWduX3RhYmxlMShMSUtFIGN0bF90YWJsZSkgU0VS VkVSIGN0bF9zMDsKK1xkKyBjdGxfZm9yZWlnbl90YWJsZTEKKworLS0gVGVzdCBJTkNMVURJTkcg SU5ERVhFUyBkb2VzJ3QgdGFrZSBlZmZlY3QKK0NSRUFURSBGT1JFSUdOIFRBQkxFIGN0bF9mb3Jl aWduX3RhYmxlMihMSUtFIGN0bF90YWJsZSBJTkNMVURJTkcgSU5ERVhFUykgU0VSVkVSIGN0bF9z MDsKK1xkKyBjdGxfZm9yZWlnbl90YWJsZTIKKworLS0gVGVzdCBJTkNMVURJTkcgSURFTlRJVFkg ZG9lcyd0IHRha2UgZWZmZWN0CitDUkVBVEUgRk9SRUlHTiBUQUJMRSBjdGxfZm9yZWlnbl90YWJs ZTMoTElLRSBjdGxfdGFibGUgSU5DTFVESU5HIElERU5USVRZKSBTRVJWRVIgY3RsX3MwOworXGQr IGN0bF9mb3JlaWduX3RhYmxlMworCistLSBUZXN0IElOQ0xVRElORyBDT01QUkVTU0lPTiBkb2Vz J3QgdGFrZSBlZmZlY3QKK1xzZXQgSElERV9UT0FTVF9DT01QUkVTU0lPTiBmYWxzZQorQUxURVIg VEFCTEUgY3RsX3RhYmxlIEFMVEVSIENPTFVNTiBiIFRZUEUgdmFyY2hhcjsKK0FMVEVSIFRBQkxF IGN0bF90YWJsZSBBTFRFUiBDT0xVTU4gYiBTRVQgQ09NUFJFU1NJT04gcGdsejsKK1xkKyBjdGxf dGFibGUKK0NSRUFURSBGT1JFSUdOIFRBQkxFIGN0bF9mb3JlaWduX3RhYmxlNChMSUtFIGN0bF90 YWJsZSBJTkNMVURJTkcgQ09NUFJFU1NJT04pIFNFUlZFUiBjdGxfczA7CitcZCsgY3RsX2ZvcmVp Z25fdGFibGU0Citcc2V0IEhJREVfVE9BU1RfQ09NUFJFU1NJT04gdHJ1ZQorCistLSBUZXN0IElO Q0xVRElORyBTVE9SQUdFIGRvZXMndCB0YWtlIGVmZmVjdAorQUxURVIgVEFCTEUgY3RsX3RhYmxl IEFMVEVSIENPTFVNTiBiIFNFVCBTVE9SQUdFIGV4dGVybmFsOworXGQrIGN0bF90YWJsZQorQ1JF QVRFIEZPUkVJR04gVEFCTEUgY3RsX2ZvcmVpZ25fdGFibGU1KExJS0UgY3RsX3RhYmxlIElOQ0xV RElORyBTVE9SQUdFKSBTRVJWRVIgY3RsX3MwOworXGQrIGN0bF9mb3JlaWduX3RhYmxlNQorCisK Ky0tIFRlc3QgdmFsaWQgbGlrZV9vcHRpb25zIHRha2UgZWZmZWN0OgorQ1JFQVRFIEZPUkVJR04g VEFCTEUgY3RsX2ZvcmVpZ25fdGFibGU2KExJS0UgY3RsX3RhYmxlIElOQ0xVRElORyBBTEwpIFNF UlZFUiBjdGxfczA7CitcZCsgY3RsX2ZvcmVpZ25fdGFibGU2CisKK0RST1AgVEFCTEUgY3RsX3Rh YmxlOworRFJPUCBGT1JFSUdOIFRBQkxFIGN0bF9mb3JlaWduX3RhYmxlMTsKK0RST1AgRk9SRUlH TiBUQUJMRSBjdGxfZm9yZWlnbl90YWJsZTI7CitEUk9QIEZPUkVJR04gVEFCTEUgY3RsX2ZvcmVp Z25fdGFibGUzOworRFJPUCBGT1JFSUdOIFRBQkxFIGN0bF9mb3JlaWduX3RhYmxlNDsKK0RST1Ag Rk9SRUlHTiBUQUJMRSBjdGxfZm9yZWlnbl90YWJsZTU7CitEUk9QIEZPUkVJR04gVEFCTEUgY3Rs X2ZvcmVpZ25fdGFibGU2OworRFJPUCBGT1JFSUdOIERBVEEgV1JBUFBFUiBjdGxfZHVtbXkgQ0FT Q0FERTsKLS0gCjIuMzQuMQoK --67a8aacb_16d6d9e5_1738b--