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 1tfypm-006iCF-2B for pgsql-hackers@arkaria.postgresql.org; Thu, 06 Feb 2025 10:10:10 +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 1tfypk-005tKw-28 for pgsql-hackers@arkaria.postgresql.org; Thu, 06 Feb 2025 10:10:08 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tfypj-005tIk-Jn for pgsql-hackers@lists.postgresql.org; Thu, 06 Feb 2025 10:10:07 +0000 Received: from mail-pl1-x643.google.com ([2607:f8b0:4864:20::643]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tfype-003rOE-0o for pgsql-hackers@lists.postgresql.org; Thu, 06 Feb 2025 10:10:04 +0000 Received: by mail-pl1-x643.google.com with SMTP id d9443c01a7336-21f0b5d6c6eso10662005ad.0 for ; Thu, 06 Feb 2025 02:10:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738836600; x=1739441400; 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=6ap5VDL9m/2MccPFQe+nNLBP98s7cXx56hxDe0Skd4I=; b=SY19qlpc56IwgNVve377Rkm2dL3rQAy01OxYfERAhtCStygrCHkJXORgyt/zFPk/fA DH4UfzJ/mOAtVgnqvBUKiAyo/DB6muKM0MWT3Vyjs0MyzXZLZ+v3J3j+FtoRKNC68xQh Oo0kb2aLbl+0IwRbE2NSxU/HCiExFXvahAF3Z/vN/SK2Sl77GaHOu1F5vdaK06SQawEl ndGUtOLIpDa3ycCZLscUmGXE++3Z2c40Hjtcuew/L5ZQrHgL3d5YCFmpGvzZHSSrWJ37 YfT4gUOi6CT0usX4Wz0I5QuomHVdnUwNVvhC1w8Fpzfq9xhd6sdIKCcsL7nhZo/U5zHX kj9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738836600; x=1739441400; 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=6ap5VDL9m/2MccPFQe+nNLBP98s7cXx56hxDe0Skd4I=; b=RyI8pxUhUws1fst432YpDbs2nOX79M57sLuFRxpY89Y76TMx2uJ8q92mqcpjfNFqu9 j9Kg/2wWVccVOQqj627LWSmTIU7iBg3tpp4WM/cSWio6tFGve62FLRurCxKgWBh3IVnK AmiM/Ln6NsGCCoF2E2+NiUseFyppGu6RuIx/lOwPosxFa5kQvx+FQd9nPn2YwGsxav/A i0ZMRN2XO+cxuc/rVcFc9JXNJLXwyyftdLtZ/WP7UXJ8gu9B75oivlwBOSawbOIPg0+W 3MXQWPNP+11ZTc9TIKM1yp1GhIru29VSQa9HFY9XJtyHG68aAdhE0GOkzcV+1CXQiQ6E 0Hrg== X-Forwarded-Encrypted: i=1; AJvYcCUZvKV5I0ceL7jJhqSGkXcQrMpfZ15NrTImhpzDpNVhvjoXImOQVi4Qst00izWfW7Sp8Tj9rxBSpiTemlCy@lists.postgresql.org X-Gm-Message-State: AOJu0YxVKExnVxmnuje5i1JZ+VmCZ0Ge47ZUeoIIbIkiLuNdFdUUGjtb PhbZs3z4reo6D8eFemyXstVUPmJHnjnHTf4AxaiPYLC5PyyvnIYX X-Gm-Gg: ASbGncu6f88XJbqBEU64u+2VSB+MPhzKgA5cj4HZ6ejsFsA7l8GvUPeumoFxGxKJE8I SD1mOHrs4oJdrHMrSPtCn5EvPit7J5vJ25OphfipfDOPOn9BaDvCltjQP55tRytVdo/ksjuS0NI C5M9OO8F9/xIFSqS5OyUc7htuZU+Rn2auUphVwNaUq1rTBIplZWGG0BEt6G01QMsyLfrL2xSVzG ZgyLoYT0nxox2I2LzUDQgshdV3oHqD+zAB0vmnjamGsaErKO4ygfhLyshxjKwsyFREanJadoUYB 0nTr0cCsnw== X-Google-Smtp-Source: AGHT+IGG2dsh3wQwu3KkRYEwby8jhgHrNIcJvg4QCr+NntoCDMPXCQHTdqFHg3+5PjvQcPAhPYABhA== X-Received: by 2002:a17:902:e74a:b0:215:a034:3bae with SMTP id d9443c01a7336-21f2f1b023dmr40395595ad.18.1738836599514; Thu, 06 Feb 2025 02:09:59 -0800 (PST) Received: from [127.0.0.1] ([2600:3c15::f03c:95ff:fe39:7c0a]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21f3650eca2sm8926805ad.19.2025.02.06.02.09.55 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 06 Feb 2025 02:09:59 -0800 (PST) Date: Thu, 6 Feb 2025 18:09:42 +0800 From: Zhang Mingli To: Michael Paquier Cc: =?utf-8?Q?=C3=81lvaro_Herrera?= , PostgreSQL Hackers Message-ID: <9324b4d3-d49f-463e-984a-2725fe36cb2b@Spark> In-Reply-To: References: <202502021324.vn4ufyduifat@alvherre.pgsql> Subject: Re: Proposal to CREATE FOREIGN TABLE LIKE X-Readdle-Message-ID: 9324b4d3-d49f-463e-984a-2725fe36cb2b@Spark MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="67a48a6b_4472bf9b_1738b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --67a48a6b_4472bf9b_1738b Content-Type: multipart/alternative; boundary="67a48a6b_41ab59d_1738b" --67a48a6b_41ab59d_1738b Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On =46eb 3, 2025 at 08:29 +0800, Michael Paquier ,= wrote: > On Mon, =46eb 03, 2025 at 06:22:13AM +0800, Mingli Zhang wrote: > > Yes, I would like to provide a patch. > > > > Glad to see we have come to an agreement on this. > > Just adding my +1 here. =46WIW. Hi, Patch added. Added support for CREATE =46OREIGN TABLE LIKE to enable the creation of f= oreign tables based on the column definitions, constraints of existing so= urce tables. This feature mirrors the behavior of CREATE TABLE LIKE, but ignores inapp= licable options such as INCLUDING INDEXES and INCLUDING COMPRESSION for f= oreign tables. I have disallowed the COMPRESSION option due to existing inconsistencies = between STORAGE and COMPRESSION. I=E2=80=99ve posted a summary of these issues at=C2=A0Inconsistency betwe= en Compression and Storage for =46oreign Tables=5B0=5D. Once we align the behavior of STORAGE and COMPRESSION, I believe that COM= PRESSION should also be copied for foreign tables, similar to STORAGE. This might be beneficial for foreign data wrappers (=46DWs) that take it = into account. =5B0=5D=C2=A0https://www.postgresql.org/message-id/6cecef0e-ee14-473c-bb0= a-6aa61f539a66%40Spark -- Zhang Mingli HashData --67a48a6b_41ab59d_1738b Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline
On =46eb 3, 2025 at 08:29 +0800, Michael Paquier &l= t;michael=40paquier.xyz>, wrote:
On Mon, =46eb 03, 2025 at 06:22:13AM +0800, Mingli Zhang wrote:
Yes, I would like to provide a patch.

Glad to see we have come to an agreement on this.

Just adding my +1 here. =46WIW.
Hi,

Patch added.

Added support for CREATE =46OREIGN TABLE LIKE to enable the creation of f= oreign tables based on the column definitions, constraints of existing so= urce tables.&=23160;
This feature mirrors the behavior of CREATE TABLE LIKE, but ignores inapp= licable options such as INCLUDING INDEXES and INCLUDING COMPRESSION for f= oreign tables.

I have disallowed the COMPRESSION option due to existing inconsistencies = between STORAGE and COMPRESSION.
I=E2=80=99ve posted a summary of these issues at&=23160;Inconsist= ency between Compression and Storage for =46oreign Tables=5B0=5D= .

Once we align the behavior of STORAGE and COMPRESSION, I believe that COM= PRESSION should also be copied for foreign tables, similar to STORAGE.&=23= 160;
This might be beneficial for foreign data wrappers (=46DWs) that take it = into account.


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

--
Zhang Mingli
HashData
--67a48a6b_41ab59d_1738b-- --67a48a6b_4472bf9b_1738b Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v0-0001-CREATE-FOREIGN-TABLE-LIKE.patch" RnJvbSBjOWYxZGQ3NTgzZWJlNTM3ZTllMDM5NzY4MmIyMGQ2NmZiM2Q2NzMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBaaGFuZyBNaW5nbGkgPGF2YW1pbmdsaUBnbWFpbC5jb20+CkRh dGU6IFRodSwgNiBGZWIgMjAyNSAxNzo1MToyNCArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIENSRUFU RSBGT1JFSUdOIFRBQkxFIExJS0UKCkFkZGVkIHN1cHBvcnQgZm9yIENSRUFURSBGT1JFSUdOIFRB QkxFIExJS0UgdG8gZW5hYmxlIHRoZSBjcmVhdGlvbiBvZgpmb3JlaWduIHRhYmxlcyBiYXNlZCBv biB0aGUgY29sdW1uIGRlZmluaXRpb25zLCBjb25zdHJhaW50cyBvZiBleGlzdGluZwpzb3VyY2Ug dGFibGVzLiBUaGlzIGZlYXR1cmUgbWlycm9ycyB0aGUgYmVoYXZpb3Igb2YgQ1JFQVRFIFRBQkxF IExJS0UsCmJ1dCBpZ25vcmVzIGluYXBwbGljYWJsZSBvcHRpb25zIHN1Y2ggYXMgSU5DTFVESU5H IElOREVYRVMKYW5kIElOQ0xVRElORyBDT01QUkVTU0lPTiBmb3IgZm9yZWlnbiB0YWJsZXMuCgpB dXRob3JlZC1ieTogWmhhbmcgTWluZ2xpIGF2YW1pbmdsaUBnbWFpbC5jb20KLS0tCiBkb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV9mb3JlaWduX3RhYmxlLnNnbWwgICAgfCAxNDMgKysrKysrKysrKysr KysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAg MjAgKy0tCiAuLi4vcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfdGFibGVfbGlrZS5vdXQgICAgfCAx MTkgKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfdGFibGVfbGlr ZS5zcWwgICAgfCAgNDYgKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDMxOCBpbnNlcnRpb25zKCsp LCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9m b3JlaWduX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9mb3JlaWduX3RhYmxl LnNnbWwKaW5kZXggMGRjZDljYTZmOC4uYjhiZmNmNzAxMyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfZm9yZWlnbl90YWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX2ZvcmVpZ25fdGFibGUuc2dtbApAQCAtMjMsNyArMjMsOCBAQCBQb3N0Z3JlU1FMIGRv Y3VtZW50YXRpb24KIDxzeW5vcHNpcz4KIENSRUFURSBGT1JFSUdOIFRBQkxFIFsgSUYgTk9UIEVY SVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNl YWJsZT4gKCBbCiAgIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1l PC9yZXBsYWNlYWJsZT4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwv cmVwbGFjZWFibGU+IFsgT1BUSU9OUyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5v cHRpb248L3JlcGxhY2VhYmxlPiAnPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVl PC9yZXBsYWNlYWJsZT4nIFssIC4uLiBdICkgXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlPmNvbGxh dGlvbjwvcmVwbGFjZWFibGU+IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29s dW1uX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBbIC4uLiBdIF0KLSAgICB8IDxyZXBsYWNlYWJs ZT50YWJsZV9jb25zdHJhaW50PC9yZXBsYWNlYWJsZT4gfQorICAgIHwgPHJlcGxhY2VhYmxlPnRh YmxlX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPgorICAgIHwgTElLRSA8cmVwbGFjZWFibGU+c291 cmNlX3RhYmxlPC9yZXBsYWNlYWJsZT4gWyA8cmVwbGFjZWFibGU+bGlrZV9vcHRpb248L3JlcGxh Y2VhYmxlPiAuLi4gXSB9CiAgICAgWywgLi4uIF0KIF0gKQogWyBJTkhFUklUUyAoIDxyZXBsYWNl YWJsZT5wYXJlbnRfdGFibGU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0KQEAgLTU3LDYgKzU4 LDEwIEBAIENSRUFURSBGT1JFSUdOIFRBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lCiAgICBDSEVDSyAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBbIE5PIElOSEVSSVQg XSB9CiBbIEVORk9SQ0VEIHwgTk9UIEVORk9SQ0VEIF0KIAorPHBocmFzZT5hbmQgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmxpa2Vfb3B0aW9uPC9yZXBsYWNlYWJsZT4gaXM6PC9waHJh c2U+CisKK3sgSU5DTFVESU5HIHwgRVhDTFVESU5HIH0geyBDT01NRU5UUyB8IENPTlNUUkFJTlRT IHwgREVGQVVMVFMgfCBHRU5FUkFURUQgfCBJREVOVElUWSB8IFNUQVRJU1RJQ1MgfCBBTEwgfQor CiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGFydGl0aW9uX2Jv dW5kX3NwZWM8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KIAogSU4gKCA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+cGFydGl0aW9uX2JvdW5kX2V4cHI8L3JlcGxhY2VhYmxlPiBbLCAu Li5dICkgfApAQCAtMTkxLDYgKzE5NiwxNDIgQEAgV0lUSCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAg ICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9 InNxbC1jcmVhdGV0YWJsZS1wYXJtcy1saWtlIj4KKyAgICA8dGVybT48bGl0ZXJhbD5MSUtFIDxy ZXBsYWNlYWJsZT5zb3VyY2VfdGFibGU8L3JlcGxhY2VhYmxlPiBbIDxyZXBsYWNlYWJsZT5saWtl X29wdGlvbjwvcmVwbGFjZWFibGU+IC4uLiBdPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0 ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIDxsaXRlcmFsPkxJS0U8L2xpdGVyYWw+IGNsYXVz ZSBzcGVjaWZpZXMgYSB0YWJsZSBmcm9tIHdoaWNoCisgICAgICB0aGUgbmV3IHRhYmxlIGF1dG9t YXRpY2FsbHkgY29waWVzIGFsbCBjb2x1bW4gbmFtZXMsIHRoZWlyIGRhdGEgdHlwZXMsCisgICAg ICBhbmQgdGhlaXIgbm90LW51bGwgY29uc3RyYWludHMuCisgICAgIDwvcGFyYT4KKyAgICAgPHBh cmE+CisgICAgICBVbmxpa2UgPGxpdGVyYWw+SU5IRVJJVFM8L2xpdGVyYWw+LCB0aGUgbmV3IHRh YmxlIGFuZCBvcmlnaW5hbCB0YWJsZQorICAgICAgYXJlIGNvbXBsZXRlbHkgZGVjb3VwbGVkIGFm dGVyIGNyZWF0aW9uIGlzIGNvbXBsZXRlLiAgQ2hhbmdlcyB0byB0aGUKKyAgICAgIG9yaWdpbmFs IHRhYmxlIHdpbGwgbm90IGJlIGFwcGxpZWQgdG8gdGhlIG5ldyB0YWJsZSwgYW5kIGl0IGlzIG5v dAorICAgICAgcG9zc2libGUgdG8gaW5jbHVkZSBkYXRhIG9mIHRoZSBuZXcgdGFibGUgaW4gc2Nh bnMgb2YgdGhlIG9yaWdpbmFsCisgICAgICB0YWJsZS4KKyAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICBBbHNvIHVubGlrZSA8bGl0ZXJhbD5JTkhFUklUUzwvbGl0ZXJhbD4sIGNvbHVt bnMgYW5kCisgICAgICBjb25zdHJhaW50cyBjb3BpZWQgYnkgPGxpdGVyYWw+TElLRTwvbGl0ZXJh bD4gYXJlIG5vdCBtZXJnZWQgd2l0aCBzaW1pbGFybHkKKyAgICAgIG5hbWVkIGNvbHVtbnMgYW5k IGNvbnN0cmFpbnRzLgorICAgICAgSWYgdGhlIHNhbWUgbmFtZSBpcyBzcGVjaWZpZWQgZXhwbGlj aXRseSBvciBpbiBhbm90aGVyCisgICAgICA8bGl0ZXJhbD5MSUtFPC9saXRlcmFsPiBjbGF1c2Us IGFuIGVycm9yIGlzIHNpZ25hbGVkLgorICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgorICAgICAg VGhlIG9wdGlvbmFsIDxyZXBsYWNlYWJsZT5saWtlX29wdGlvbjwvcmVwbGFjZWFibGU+IGNsYXVz ZXMgc3BlY2lmeQorICAgICAgd2hpY2ggYWRkaXRpb25hbCBwcm9wZXJ0aWVzIG9mIHRoZSBvcmln aW5hbCB0YWJsZSB0byBjb3B5LiAgU3BlY2lmeWluZworICAgICAgPGxpdGVyYWw+SU5DTFVESU5H PC9saXRlcmFsPiBjb3BpZXMgdGhlIHByb3BlcnR5LCBzcGVjaWZ5aW5nCisgICAgICA8bGl0ZXJh bD5FWENMVURJTkc8L2xpdGVyYWw+IG9taXRzIHRoZSBwcm9wZXJ0eS4KKyAgICAgIDxsaXRlcmFs PkVYQ0xVRElORzwvbGl0ZXJhbD4gaXMgdGhlIGRlZmF1bHQuICBJZiBtdWx0aXBsZSBzcGVjaWZp Y2F0aW9ucworICAgICAgYXJlIG1hZGUgZm9yIHRoZSBzYW1lIGtpbmQgb2Ygb2JqZWN0LCB0aGUg bGFzdCBvbmUgaXMgdXNlZC4gIFRoZQorICAgICAgYXZhaWxhYmxlIG9wdGlvbnMgYXJlOgorCisg ICAgICA8dmFyaWFibGVsaXN0PgorICAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV0 YWJsZS1wYXJtcy1saWtlLW9wdC1jb21tZW50cyI+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPklO Q0xVRElORyBDT01NRU5UUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAg ICAgICAgIDxwYXJhPgorICAgICAgICAgIENvbW1lbnRzIGZvciB0aGUgY29waWVkIGNvbHVtbnMs IGNvbnN0cmFpbnRzLCBhbmQgaW5kZXhlcyB3aWxsIGJlCisgICAgICAgICAgY29waWVkLiAgVGhl IGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gZXhjbHVkZSBjb21tZW50cywgcmVzdWx0aW5nIGluCisg ICAgICAgICAgdGhlIGNvcGllZCBjb2x1bW5zIGFuZCBjb25zdHJhaW50cyBpbiB0aGUgbmV3IHRh YmxlIGhhdmluZyBubworICAgICAgICAgIGNvbW1lbnRzLgorICAgICAgICAgPC9wYXJhPgorICAg ICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgPHZhcmxp c3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXRhYmxlLXBhcm1zLWxpa2Utb3B0LWNvbnN0cmFpbnRzIj4K KyAgICAgICAgPHRlcm0+PGxpdGVyYWw+SU5DTFVESU5HIENPTlNUUkFJTlRTPC9saXRlcmFsPjwv dGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgPGxp dGVyYWw+Q0hFQ0s8L2xpdGVyYWw+IGNvbnN0cmFpbnRzIHdpbGwgYmUgY29waWVkLiAgTm8gZGlz dGluY3Rpb24KKyAgICAgICAgICBpcyBtYWRlIGJldHdlZW4gY29sdW1uIGNvbnN0cmFpbnRzIGFu ZCB0YWJsZSBjb25zdHJhaW50cy4gIE5vdC1udWxsCisgICAgICAgICAgY29uc3RyYWludHMgYXJl IGFsd2F5cyBjb3BpZWQgdG8gdGhlIG5ldyB0YWJsZS4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAg ICAgPC9saXN0aXRlbT4KKyAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgIDx2YXJsaXN0 ZW50cnkgaWQ9InNxbC1jcmVhdGV0YWJsZS1wYXJtcy1saWtlLW9wdC1kZWZhdWx0cyI+CisgICAg ICAgIDx0ZXJtPjxsaXRlcmFsPklOQ0xVRElORyBERUZBVUxUUzwvbGl0ZXJhbD48L3Rlcm0+Cisg ICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIERlZmF1bHQgZXhw cmVzc2lvbnMgZm9yIHRoZSBjb3BpZWQgY29sdW1uIGRlZmluaXRpb25zIHdpbGwgYmUKKyAgICAg ICAgICBjb3BpZWQuICBPdGhlcndpc2UsIGRlZmF1bHQgZXhwcmVzc2lvbnMgYXJlIG5vdCBjb3Bp ZWQsIHJlc3VsdGluZyBpbgorICAgICAgICAgIHRoZSBjb3BpZWQgY29sdW1ucyBpbiB0aGUgbmV3 IHRhYmxlIGhhdmluZyBudWxsIGRlZmF1bHRzLiAgTm90ZSB0aGF0CisgICAgICAgICAgY29weWlu ZyBkZWZhdWx0cyB0aGF0IGNhbGwgZGF0YWJhc2UtbW9kaWZpY2F0aW9uIGZ1bmN0aW9ucywgc3Vj aCBhcworICAgICAgICAgIDxmdW5jdGlvbj5uZXh0dmFsPC9mdW5jdGlvbj4sIG1heSBjcmVhdGUg YSBmdW5jdGlvbmFsIGxpbmthZ2UKKyAgICAgICAgICBiZXR3ZWVuIHRoZSBvcmlnaW5hbCBhbmQg bmV3IHRhYmxlcy4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV0 YWJsZS1wYXJtcy1saWtlLW9wdC1nZW5lcmF0ZWQiPgorICAgICAgICA8dGVybT48bGl0ZXJhbD5J TkNMVURJTkcgR0VORVJBVEVEPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgor ICAgICAgICAgPHBhcmE+CisgICAgICAgICAgQW55IGdlbmVyYXRpb24gZXhwcmVzc2lvbnMgb2Yg Y29waWVkIGNvbHVtbiBkZWZpbml0aW9ucyB3aWxsIGJlCisgICAgICAgICAgY29waWVkLiAgQnkg ZGVmYXVsdCwgbmV3IGNvbHVtbnMgd2lsbCBiZSByZWd1bGFyIGJhc2UgY29sdW1ucy4KKyAgICAg ICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L3Zhcmxpc3RlbnRyeT4K KworICAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV0YWJsZS1wYXJtcy1saWtlLW9w dC1pZGVudGl0eSI+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPklOQ0xVRElORyBJREVOVElUWTwv bGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAg ICAgICAgIEFueSBpZGVudGl0eSBzcGVjaWZpY2F0aW9ucyBvZiBjb3BpZWQgY29sdW1uIGRlZmlu aXRpb25zIHdpbGwgYmUKKyAgICAgICAgICBjb3BpZWQuICBBIG5ldyBzZXF1ZW5jZSBpcyBjcmVh dGVkIGZvciBlYWNoIGlkZW50aXR5IGNvbHVtbiBvZiB0aGUKKyAgICAgICAgICBuZXcgdGFibGUs IHNlcGFyYXRlIGZyb20gdGhlIHNlcXVlbmNlcyBhc3NvY2lhdGVkIHdpdGggdGhlIG9sZAorICAg ICAgICAgIHRhYmxlLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAg ICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0 ZXRhYmxlLXBhcm1zLWxpa2Utb3B0LXN0YXRpc3RpY3MiPgorICAgICAgICA8dGVybT48bGl0ZXJh bD5JTkNMVURJTkcgU1RBVElTVElDUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRl bT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIEV4dGVuZGVkIHN0YXRpc3RpY3MgYXJlIGNv cGllZCB0byB0aGUgbmV3IHRhYmxlLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3Rp dGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgPHZhcmxpc3RlbnRyeSBpZD0i c3FsLWNyZWF0ZXRhYmxlLXBhcm1zLWxpa2Utb3B0LXN0b3JhZ2UiPgorICAgICAgICA8dGVybT48 bGl0ZXJhbD5JTkNMVURJTkcgU1RPUkFHRTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIDxsaXRlcmFsPlNUT1JBR0U8L2xpdGVy YWw+IHNldHRpbmdzIGZvciB0aGUgY29waWVkIGNvbHVtbgorICAgICAgICAgIGRlZmluaXRpb25z IHdpbGwgYmUgY29waWVkLiAgVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gZXhjbHVkZQorICAg ICAgICAgIDxsaXRlcmFsPlNUT1JBR0U8L2xpdGVyYWw+IHNldHRpbmdzLCByZXN1bHRpbmcgaW4g dGhlIGNvcGllZCBjb2x1bW5zCisgICAgICAgICAgaW4gdGhlIG5ldyB0YWJsZSBoYXZpbmcgdHlw ZS1zcGVjaWZpYyBkZWZhdWx0IHNldHRpbmdzLiAgRm9yIG1vcmUgb24KKyAgICAgICAgICA8bGl0 ZXJhbD5TVE9SQUdFPC9saXRlcmFsPiBzZXR0aW5ncywgc2VlIDx4cmVmCisgICAgICAgICAgbGlu a2VuZD0ic3RvcmFnZS10b2FzdCIvPi4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0 aXRlbT4KKyAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9 InNxbC1jcmVhdGV0YWJsZS1wYXJtcy1saWtlLW9wdC1hbGwiPgorICAgICAgICA8dGVybT48bGl0 ZXJhbD5JTkNMVURJTkcgQUxMPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgor ICAgICAgICAgPHBhcmE+CisgICAgICAgICAgPGxpdGVyYWw+SU5DTFVESU5HIEFMTDwvbGl0ZXJh bD4gaXMgYW4gYWJicmV2aWF0ZWQgZm9ybSBzZWxlY3RpbmcKKyAgICAgICAgICBhbGwgdGhlIGF2 YWlsYWJsZSBpbmRpdmlkdWFsIG9wdGlvbnMuICAoSXQgY291bGQgYmUgdXNlZnVsIHRvIHdyaXRl CisgICAgICAgICAgaW5kaXZpZHVhbCA8bGl0ZXJhbD5FWENMVURJTkc8L2xpdGVyYWw+IGNsYXVz ZXMgYWZ0ZXIKKyAgICAgICAgICA8bGl0ZXJhbD5JTkNMVURJTkcgQUxMPC9saXRlcmFsPiB0byBz ZWxlY3QgYWxsIGJ1dCBzb21lIHNwZWNpZmljCisgICAgICAgICAgb3B0aW9ucy4pCisgICAgICAg ICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+Cisg ICAgICA8L3ZhcmlhYmxlbGlzdD4KKyAgICAgPC9wYXJhPgorCisgICAgIDxwYXJhPgorICAgICAg Rm9yZWlnbiB0YWJsZXMgaGF2ZSBubyByZWFsIHN0b3JhZ2UgaW4gUG9zdGdyZVNRTC4KKyAgICAg IEluYXBwbGljYWJsZSBvcHRpb25zIChlLmcuLCA8bGl0ZXJhbD5JTkNMVURJTkcgSU5ERVhFUzwv bGl0ZXJhbD4pIGFyZSBpZ25vcmVkLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAg IDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFs PkNPTlNUUkFJTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbnN0cmFpbnRfbmFt ZTwvcmVwbGFjZWFibGU+PC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX3V0aWxjbWQuYwppbmRleCBjYTAyOGQyYTY2Li5hZDM3YmM1NmIyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCisrKyBiL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV91dGlsY21kLmMKQEAgLTExMTcsNiArMTExNywxMiBAQCB0cmFuc2Zvcm1U YWJsZUNvbnN0cmFpbnQoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwgQ29uc3RyYWludCAqY29uc3Ry YWludCkKICAqIHByb2Nlc3MgYXQgdGhpcyBwb2ludCwgYWRkIHRoZSBUYWJsZUxpa2VDbGF1c2Ug dG8gY3h0LT5saWtlY2xhdXNlcywgd2hpY2gKICAqIHdpbGwgY2F1c2UgdXRpbGl0eS5jIHRvIGNh bGwgZXhwYW5kVGFibGVMaWtlQ2xhdXNlKCkgYWZ0ZXIgdGhlIG5ldwogICogdGFibGUgaGFzIGJl ZW4gY3JlYXRlZC4KKyAqCisgKiBGb3IgZm9yZWlnbiB0YWJsZXMsIHRoZXkgaGF2ZSBubyByZWFs IHN0b3JhZ2UgaW4gUG9zdGdyZXMuCisgKiBJbmFwcGxpY2FibGUgb3B0aW9ucyBhcmUgaWdub3Jl ZDoKKyAqCUNSRUFURV9UQUJMRV9MSUtFX0NPTVBSRVNTSU9OCisgKglDUkVBVEVfVEFCTEVfTElL RV9JTkRFWEVTCisgKiB3aGlsZSBJTkRFWEVTIGlzIGhhbmRsZWQgaW4gZXhwYW5kVGFibGVMaWtl Q2xhdXNlKCkgbGF0ZXIuCiAgKi8KIHN0YXRpYyB2b2lkCiB0cmFuc2Zvcm1UYWJsZUxpa2VDbGF1 c2UoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwgVGFibGVMaWtlQ2xhdXNlICp0YWJsZV9saWtlX2Ns YXVzZSkKQEAgLTExMzEsMTIgKzExMzcsNiBAQCB0cmFuc2Zvcm1UYWJsZUxpa2VDbGF1c2UoQ3Jl YXRlU3RtdENvbnRleHQgKmN4dCwgVGFibGVMaWtlQ2xhdXNlICp0YWJsZV9saWtlX2NsYQogCXNl dHVwX3BhcnNlcl9lcnJwb3NpdGlvbl9jYWxsYmFjaygmcGNic3RhdGUsIGN4dC0+cHN0YXRlLAog CQkJCQkJCQkJICB0YWJsZV9saWtlX2NsYXVzZS0+cmVsYXRpb24tPmxvY2F0aW9uKTsKIAotCS8q IHdlIGNvdWxkIHN1cHBvcnQgTElLRSBpbiBtYW55IGNhc2VzLCBidXQgd29ycnkgYWJvdXQgaXQg YW5vdGhlciBkYXkgKi8KLQlpZiAoY3h0LT5pc2ZvcmVpZ24pCi0JCWVyZXBvcnQoRVJST1IsCi0J CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJCSBlcnJtc2co IkxJS0UgaXMgbm90IHN1cHBvcnRlZCBmb3IgY3JlYXRpbmcgZm9yZWlnbiB0YWJsZXMiKSkpOwot CiAJLyogT3BlbiB0aGUgcmVsYXRpb24gcmVmZXJlbmNlZCBieSB0aGUgTElLRSBjbGF1c2UgKi8K IAlyZWxhdGlvbiA9IHJlbGF0aW9uX29wZW5ydih0YWJsZV9saWtlX2NsYXVzZS0+cmVsYXRpb24s IEFjY2Vzc1NoYXJlTG9jayk7CiAKQEAgLTEyNDIsOCArMTI0Miw5IEBAIHRyYW5zZm9ybVRhYmxl TGlrZUNsYXVzZShDcmVhdGVTdG10Q29udGV4dCAqY3h0LCBUYWJsZUxpa2VDbGF1c2UgKnRhYmxl X2xpa2VfY2xhCiAJCQlkZWYtPnN0b3JhZ2UgPSAwOwogCiAJCS8qIExpa2V3aXNlLCBjb3B5IGNv bXByZXNzaW9uIGlmIHJlcXVlc3RlZCAqLwotCQlpZiAoKHRhYmxlX2xpa2VfY2xhdXNlLT5vcHRp b25zICYgQ1JFQVRFX1RBQkxFX0xJS0VfQ09NUFJFU1NJT04pICE9IDAKLQkJCSYmIENvbXByZXNz aW9uTWV0aG9kSXNWYWxpZChhdHRyaWJ1dGUtPmF0dGNvbXByZXNzaW9uKSkKKwkJaWYgKCh0YWJs ZV9saWtlX2NsYXVzZS0+b3B0aW9ucyAmIENSRUFURV9UQUJMRV9MSUtFX0NPTVBSRVNTSU9OKSAh PSAwICYmCisJCQlDb21wcmVzc2lvbk1ldGhvZElzVmFsaWQoYXR0cmlidXRlLT5hdHRjb21wcmVz c2lvbikgJiYKKwkJCSFjeHQtPmlzZm9yZWlnbikKIAkJCWRlZi0+Y29tcHJlc3Npb24gPQogCQkJ CXBzdHJkdXAoR2V0Q29tcHJlc3Npb25NZXRob2ROYW1lKGF0dHJpYnV0ZS0+YXR0Y29tcHJlc3Np b24pKTsKIAkJZWxzZQpAQCAtMTUyMiw3ICsxNTIzLDggQEAgZXhwYW5kVGFibGVMaWtlQ2xhdXNl KFJhbmdlVmFyICpoZWFwUmVsLCBUYWJsZUxpa2VDbGF1c2UgKnRhYmxlX2xpa2VfY2xhdXNlKQog CSAqIFByb2Nlc3MgaW5kZXhlcyBpZiByZXF1aXJlZC4KIAkgKi8KIAlpZiAoKHRhYmxlX2xpa2Vf Y2xhdXNlLT5vcHRpb25zICYgQ1JFQVRFX1RBQkxFX0xJS0VfSU5ERVhFUykgJiYKLQkJcmVsYXRp b24tPnJkX3JlbC0+cmVsaGFzaW5kZXgpCisJCXJlbGF0aW9uLT5yZF9yZWwtPnJlbGhhc2luZGV4 ICYmCisJCWNoaWxkcmVsLT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9GT1JFSUdOX1RBQkxF KQogCXsKIAkJTGlzdAkgICAqcGFyZW50X2luZGV4ZXM7CiAJCUxpc3RDZWxsICAgKmw7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtlLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3RhYmxlX2xpa2Uub3V0CmluZGV4IGUw NjEzODkxMzUuLjhkZGFkZDU3ZTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvY3JlYXRlX3RhYmxlX2xpa2Uub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Y3JlYXRlX3RhYmxlX2xpa2Uub3V0CkBAIC01NjMsMyArNTYzLDEyMiBAQCBEUk9QIFRZUEUgY3Rs dHkxOwogRFJPUCBWSUVXIGN0bHYxOwogRFJPUCBUQUJMRSBJRiBFWElTVFMgY3RsdDQsIGN0bHQx MCwgY3RsdDExLCBjdGx0MTFhLCBjdGx0MTI7CiBOT1RJQ0U6ICB0YWJsZSAiY3RsdDEwIiBkb2Vz IG5vdCBleGlzdCwgc2tpcHBpbmcKKy0tCistLSBDUkVBVEUgRk9SRUlHTiBUQUJMRSBMSUtFCist LQorQ1JFQVRFIEZPUkVJR04gREFUQSBXUkFQUEVSIGN0bF9kdW1teTsKK0NSRUFURSBTRVJWRVIg Y3RsX3MwIEZPUkVJR04gREFUQSBXUkFQUEVSIGN0bF9kdW1teTsKK0NSRUFURSBUQUJMRSBjdGxf dGFibGUoYSBpbnQgREVGQVVMVCAxLCBiIHRleHQsCisgIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBTVE9SRUQsCisgIGQgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJ VFkpOworQ1JFQVRFIElOREVYIGN0bF90YWJsZV9hX2tleSBPTiBjdGxfdGFibGUoYSk7CitDT01N RU5UIE9OIENPTFVNTiBjdGxfdGFibGUuYiBJUyAnQ29sdW1uIGInOworQ1JFQVRFIFNUQVRJU1RJ Q1MgY3RsX3RhYmxlX3N0YXQgT04gYSxiIEZST00gY3RsX3RhYmxlOworQUxURVIgVEFCTEUgY3Rs X3RhYmxlIGFkZCBjb25zdHJhaW50IGZvbyBDSEVDSyAoYiA9ICd0ZXh0Jyk7CitcZCsgY3RsX3Rh YmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxl ICJwdWJsaWMuY3RsX3RhYmxlIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgfCBTdG9yYWdlICB8IFN0 YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAg ICAgICAgfCAgICAgICAgICB8IDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBw bGFpbiAgICB8ICAgICAgICAgICAgICB8IAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAg fCAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBleHRlbmRl ZCB8ICAgICAgICAgICAgICB8IENvbHVtbiBiCisgYyAgICAgIHwgaW50ZWdlciB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZCB8IHBsYWlu ICAgIHwgICAgICAgICAgICAgIHwgCisgZCAgICAgIHwgYmlnaW50ICB8ICAgICAgICAgICB8IG5v dCBudWxsIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyBpZGVudGl0eSAgICAgICB8IHBsYWluICAgIHwg ICAgICAgICAgICAgIHwgCitJbmRleGVzOgorICAgICJjdGxfdGFibGVfYV9rZXkiIGJ0cmVlIChh KQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgImZvbyIgQ0hFQ0sgKGIgPSAndGV4dCc6OnRleHQp CitTdGF0aXN0aWNzIG9iamVjdHM6CisgICAgInB1YmxpYy5jdGxfdGFibGVfc3RhdCIgT04gYSwg YiBGUk9NIGN0bF90YWJsZQorTm90LW51bGwgY29uc3RyYWludHM6CisgICAgImN0bF90YWJsZV9k X25vdF9udWxsIiBOT1QgTlVMTCAiZCIKKworLS0gVGVzdCBFWENMVURJTkcgQUxMIGJ5IGRlZmF1 bHQKK0NSRUFURSBGT1JFSUdOIFRBQkxFIGN0bF9mb3JlaWduX3RhYmxlMShMSUtFIGN0bF90YWJs ZSkgU0VSVkVSIGN0bF9zMDsKK1xkKyBjdGxfZm9yZWlnbl90YWJsZTEKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRm9yZWlnbiB0YWJsZSAicHVibGljLmN0bF9mb3JlaWduX3RhYmxl MSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwg RkRXIG9wdGlvbnMgfCBTdG9yYWdlICB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwg aW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgIHwg cGxhaW4gICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAg IHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAg ICAgICB8IAorIGMgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAg ICAgfCAgICAgICAgICAgICB8IHBsYWluICAgIHwgICAgICAgICAgICAgIHwgCisgZCAgICAgIHwg YmlnaW50ICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgICAgICAgICB8ICAgICAgICAgICAgIHwg cGxhaW4gICAgfCAgICAgICAgICAgICAgfCAKK05vdC1udWxsIGNvbnN0cmFpbnRzOgorICAgICJj dGxfdGFibGVfZF9ub3RfbnVsbCIgTk9UIE5VTEwgImQiCitTZXJ2ZXI6IGN0bF9zMAorCistLSBU ZXN0IElOQ0xVRElORyBJTkRFWEVTIGRvZXMndCB0YWtlIGVmZmVjdAorQ1JFQVRFIEZPUkVJR04g VEFCTEUgY3RsX2ZvcmVpZ25fdGFibGUyKExJS0UgY3RsX3RhYmxlIElOQ0xVRElORyBJTkRFWEVT KSBTRVJWRVIgY3RsX3MwOworXGQrIGN0bF9mb3JlaWduX3RhYmxlMgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBGb3JlaWduIHRhYmxlICJwdWJsaWMuY3RsX2ZvcmVpZ25fdGFibGUy IgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgfCBG RFcgb3B0aW9ucyB8IFN0b3JhZ2UgIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBp bnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgfCBw bGFpbiAgICB8ICAgICAgICAgICAgICB8IAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAg fCAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAg ICAgIHwgCisgYyAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAg ICB8ICAgICAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgICAgfCAKKyBkICAgICAgfCBi aWdpbnQgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAgICAgICAgIHwgICAgICAgICAgICAgfCBw bGFpbiAgICB8ICAgICAgICAgICAgICB8IAorTm90LW51bGwgY29uc3RyYWludHM6CisgICAgImN0 bF90YWJsZV9kX25vdF9udWxsIiBOT1QgTlVMTCAiZCIKK1NlcnZlcjogY3RsX3MwCisKKy0tIFRl c3QgSU5DTFVESU5HIENPTVBSRVNTSU9OIGRvZXMndCB0YWtlIGVmZmVjdAorXHNldCBISURFX1RP QVNUX0NPTVBSRVNTSU9OIGZhbHNlCitBTFRFUiBUQUJMRSBjdGxfdGFibGUgQUxURVIgQ09MVU1O IGIgVFlQRSB2YXJjaGFyOworQUxURVIgVEFCTEUgY3RsX3RhYmxlIEFMVEVSIENPTFVNTiBiIFNF VCBDT01QUkVTU0lPTiBwZ2x6OworXGQrIGN0bF90YWJsZQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLmN0bF90 YWJsZSIKKyBDb2x1bW4gfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxl IHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICB8IFN0b3JhZ2UgIHwgQ29tcHJl c3Npb24gfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHBsYWluICAgIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCBjaGFyYWN0ZXIgdmFyeWluZyB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IGV4dGVuZGVkIHwgcGdseiAgICAgICAgfCAgICAgICAgICAgICAgfCBDb2x1bW4gYgorIGMg ICAgICB8IGludGVnZXIgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0 ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkIHwgcGxhaW4gICAgfCAgICAgICAgICAgICB8ICAg ICAgICAgICAgICB8IAorIGQgICAgICB8IGJpZ2ludCAgICAgICAgICAgIHwgICAgICAgICAgIHwg bm90IG51bGwgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIGlkZW50aXR5ICAgICAgIHwgcGxhaW4gICAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8IAorSW5kZXhlczoKKyAgICAiY3RsX3RhYmxl X2Ffa2V5IiBidHJlZSAoYSkKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJmb28iIENIRUNLIChi Ojp0ZXh0ID0gJ3RleHQnOjp0ZXh0KQorU3RhdGlzdGljcyBvYmplY3RzOgorICAgICJwdWJsaWMu Y3RsX3RhYmxlX3N0YXQiIE9OIGEsIGIgRlJPTSBjdGxfdGFibGUKK05vdC1udWxsIGNvbnN0cmFp bnRzOgorICAgICJjdGxfdGFibGVfZF9ub3RfbnVsbCIgTk9UIE5VTEwgImQiCisKK0NSRUFURSBG T1JFSUdOIFRBQkxFIGN0bF9mb3JlaWduX3RhYmxlMyhMSUtFIGN0bF90YWJsZSBJTkNMVURJTkcg Q09NUFJFU1NJT04pIFNFUlZFUiBjdGxfczA7CitcZCsgY3RsX2ZvcmVpZ25fdGFibGUzCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9yZWlnbiB0YWJsZSAicHVibGljLmN0 bF9mb3JlaWduX3RhYmxlMyIKKyBDb2x1bW4gfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlv biB8IE51bGxhYmxlIHwgRGVmYXVsdCB8IEZEVyBvcHRpb25zIHwgU3RvcmFnZSAgfCBTdGF0cyB0 YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgIHwgcGxhaW4gICAgfCAg ICAgICAgICAgICAgfCAKKyBiICAgICAgfCBjaGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgIHwgZXh0ZW5kZWQgfCAgICAgICAgICAg ICAgfCAKKyBjICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAg IHwgICAgICAgICB8ICAgICAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgICAgfCAKKyBk ICAgICAgfCBiaWdpbnQgICAgICAgICAgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgICAgICAg ICB8ICAgICAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgICAgfCAKK05vdC1udWxsIGNv bnN0cmFpbnRzOgorICAgICJjdGxfdGFibGVfZF9ub3RfbnVsbCIgTk9UIE5VTEwgImQiCitTZXJ2 ZXI6IGN0bF9zMAorCitcc2V0IEhJREVfVE9BU1RfQ09NUFJFU1NJT04gdHJ1ZQorLS0gVGVzdCB2 YWxpZCBsaWtlX29wdGlvbnMgdGFrZSBlZmZlY3Q6CistLSBDT01NRU5UUywgU1RBVElTVElDUywg Q09OU1RSQUlOVFMKKy0tIEdFTkVSQVRFRCwgREVGQVVMVFMsIElERU5USVRZLCBTVE9SQUdFCitD UkVBVEUgRk9SRUlHTiBUQUJMRSBjdGxfZm9yZWlnbl90YWJsZTQoTElLRSBjdGxfdGFibGUgSU5D TFVESU5HIEFMTCkgU0VSVkVSIGN0bF9zMDsKK1xkKyBjdGxfZm9yZWlnbl90YWJsZTQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9yZWlnbiB0YWJs ZSAicHVibGljLmN0bF9mb3JlaWduX3RhYmxlNCIKKyBDb2x1bW4gfCAgICAgICBUeXBlICAgICAg ICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAg ICAgICB8IEZEVyBvcHRpb25zIHwgU3RvcmFnZSAgfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlv biAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyICAgICAg ICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgMSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgICAgfCAKKyBiICAg ICAgfCBjaGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIHwgZXh0ZW5kZWQgfCAgICAg ICAgICAgICAgfCBDb2x1bW4gYgorIGMgICAgICB8IGludGVnZXIgICAgICAgICAgIHwgICAgICAg ICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkIHwgICAg ICAgICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgICB8IAorIGQgICAgICB8IGJpZ2ludCAg ICAgICAgICAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIGlk ZW50aXR5ICAgICAgIHwgICAgICAgICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgICB8IAor Q2hlY2sgY29uc3RyYWludHM6CisgICAgImZvbyIgQ0hFQ0sgKGI6OnRleHQgPSAndGV4dCc6OnRl eHQpCitTdGF0aXN0aWNzIG9iamVjdHM6CisgICAgInB1YmxpYy5jdGxfZm9yZWlnbl90YWJsZTRf YV9iX3N0YXQiIE9OIGEsIGIgRlJPTSBjdGxfZm9yZWlnbl90YWJsZTQKK05vdC1udWxsIGNvbnN0 cmFpbnRzOgorICAgICJjdGxfdGFibGVfZF9ub3RfbnVsbCIgTk9UIE5VTEwgImQiCitTZXJ2ZXI6 IGN0bF9zMAorCitEUk9QIFRBQkxFIGN0bF90YWJsZTsKK0RST1AgRk9SRUlHTiBUQUJMRSBjdGxf Zm9yZWlnbl90YWJsZTE7CitEUk9QIEZPUkVJR04gVEFCTEUgY3RsX2ZvcmVpZ25fdGFibGUyOwor RFJPUCBGT1JFSUdOIFRBQkxFIGN0bF9mb3JlaWduX3RhYmxlMzsKK0RST1AgRk9SRUlHTiBUQUJM RSBjdGxfZm9yZWlnbl90YWJsZTQ7CitEUk9QIEZPUkVJR04gREFUQSBXUkFQUEVSIGN0bF9kdW1t eSBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXJ2ZXIgY3RsX3MwCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfdGFibGVfbGlrZS5zcWwgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfdGFibGVfbGlrZS5zcWwKaW5kZXggYTQxZjhiODNkNy4u OTViMmQwOWQ2NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3RhYmxl X2xpa2Uuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNx bApAQCAtMjI1LDMgKzIyNSw0OSBAQCBEUk9QIFNFUVVFTkNFIGN0bHNlcTE7CiBEUk9QIFRZUEUg Y3RsdHkxOwogRFJPUCBWSUVXIGN0bHYxOwogRFJPUCBUQUJMRSBJRiBFWElTVFMgY3RsdDQsIGN0 bHQxMCwgY3RsdDExLCBjdGx0MTFhLCBjdGx0MTI7CisKKy0tCistLSBDUkVBVEUgRk9SRUlHTiBU QUJMRSBMSUtFCistLQorQ1JFQVRFIEZPUkVJR04gREFUQSBXUkFQUEVSIGN0bF9kdW1teTsKK0NS RUFURSBTRVJWRVIgY3RsX3MwIEZPUkVJR04gREFUQSBXUkFQUEVSIGN0bF9kdW1teTsKKworQ1JF QVRFIFRBQkxFIGN0bF90YWJsZShhIGludCBERUZBVUxUIDEsIGIgdGV4dCwKKyAgYyBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCwKKyAgZCBiaWdpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyBJREVOVElUWSk7CisKK0NSRUFURSBJTkRFWCBjdGxfdGFibGVfYV9rZXkgT04gY3Rs X3RhYmxlKGEpOworQ09NTUVOVCBPTiBDT0xVTU4gY3RsX3RhYmxlLmIgSVMgJ0NvbHVtbiBiJzsK K0NSRUFURSBTVEFUSVNUSUNTIGN0bF90YWJsZV9zdGF0IE9OIGEsYiBGUk9NIGN0bF90YWJsZTsK K0FMVEVSIFRBQkxFIGN0bF90YWJsZSBhZGQgY29uc3RyYWludCBmb28gQ0hFQ0sgKGIgPSAndGV4 dCcpOworXGQrIGN0bF90YWJsZQorCistLSBUZXN0IEVYQ0xVRElORyBBTEwgYnkgZGVmYXVsdAor Q1JFQVRFIEZPUkVJR04gVEFCTEUgY3RsX2ZvcmVpZ25fdGFibGUxKExJS0UgY3RsX3RhYmxlKSBT RVJWRVIgY3RsX3MwOworXGQrIGN0bF9mb3JlaWduX3RhYmxlMQorCistLSBUZXN0IElOQ0xVRElO RyBJTkRFWEVTIGRvZXMndCB0YWtlIGVmZmVjdAorQ1JFQVRFIEZPUkVJR04gVEFCTEUgY3RsX2Zv cmVpZ25fdGFibGUyKExJS0UgY3RsX3RhYmxlIElOQ0xVRElORyBJTkRFWEVTKSBTRVJWRVIgY3Rs X3MwOworXGQrIGN0bF9mb3JlaWduX3RhYmxlMgorCistLSBUZXN0IElOQ0xVRElORyBDT01QUkVT U0lPTiBkb2VzJ3QgdGFrZSBlZmZlY3QKK1xzZXQgSElERV9UT0FTVF9DT01QUkVTU0lPTiBmYWxz ZQorQUxURVIgVEFCTEUgY3RsX3RhYmxlIEFMVEVSIENPTFVNTiBiIFRZUEUgdmFyY2hhcjsKK0FM VEVSIFRBQkxFIGN0bF90YWJsZSBBTFRFUiBDT0xVTU4gYiBTRVQgQ09NUFJFU1NJT04gcGdsejsK K1xkKyBjdGxfdGFibGUKK0NSRUFURSBGT1JFSUdOIFRBQkxFIGN0bF9mb3JlaWduX3RhYmxlMyhM SUtFIGN0bF90YWJsZSBJTkNMVURJTkcgQ09NUFJFU1NJT04pIFNFUlZFUiBjdGxfczA7CitcZCsg Y3RsX2ZvcmVpZ25fdGFibGUzCitcc2V0IEhJREVfVE9BU1RfQ09NUFJFU1NJT04gdHJ1ZQorCist LSBUZXN0IHZhbGlkIGxpa2Vfb3B0aW9ucyB0YWtlIGVmZmVjdDoKKy0tIENPTU1FTlRTLCBTVEFU SVNUSUNTLCBDT05TVFJBSU5UUworLS0gR0VORVJBVEVELCBERUZBVUxUUywgSURFTlRJVFksIFNU T1JBR0UKK0NSRUFURSBGT1JFSUdOIFRBQkxFIGN0bF9mb3JlaWduX3RhYmxlNChMSUtFIGN0bF90 YWJsZSBJTkNMVURJTkcgQUxMKSBTRVJWRVIgY3RsX3MwOworXGQrIGN0bF9mb3JlaWduX3RhYmxl NAorCitEUk9QIFRBQkxFIGN0bF90YWJsZTsKK0RST1AgRk9SRUlHTiBUQUJMRSBjdGxfZm9yZWln bl90YWJsZTE7CitEUk9QIEZPUkVJR04gVEFCTEUgY3RsX2ZvcmVpZ25fdGFibGUyOworRFJPUCBG T1JFSUdOIFRBQkxFIGN0bF9mb3JlaWduX3RhYmxlMzsKK0RST1AgRk9SRUlHTiBUQUJMRSBjdGxf Zm9yZWlnbl90YWJsZTQ7CitEUk9QIEZPUkVJR04gREFUQSBXUkFQUEVSIGN0bF9kdW1teSBDQVND QURFOwotLSAKMi4zNC4xCgo= --67a48a6b_4472bf9b_1738b--