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 1wVTD6-001z8X-2d for pgsql-hackers@arkaria.postgresql.org; Fri, 05 Jun 2026 11:59:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wVTD5-00CBGw-2U for pgsql-hackers@arkaria.postgresql.org; Fri, 05 Jun 2026 11:59:35 +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.96) (envelope-from ) id 1wVTD5-00CBGo-1F for pgsql-hackers@lists.postgresql.org; Fri, 05 Jun 2026 11:59:35 +0000 Received: from mail-dy1-x132a.google.com ([2607:f8b0:4864:20::132a]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wVTD3-00000001Pf7-0ZO9 for pgsql-hackers@lists.postgresql.org; Fri, 05 Jun 2026 11:59:35 +0000 Received: by mail-dy1-x132a.google.com with SMTP id 5a478bee46e88-3045c195251so1547899eec.1 for ; Fri, 05 Jun 2026 04:59:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1780660770; cv=none; d=google.com; s=arc-20240605; b=DkIWNo2GvQhs39MTD9UxSATeY0VnSlO3jjfyqZ42mzRzXrBsElUEp8ZJOb67E7Dpgd XLZfkdpMLbizXDFyl2D07MsOlVGBn/nXswPTQxU09sDDJwUdAJs1CDqPNQ0bH2JtPo0r UnP1My2LBgi6XXlLVCnbZEXOBqNig1JydylWFmm3kJQ1Pj5u9Gn2AgRNS5OBQZy1KpfS qmgY0Z8vdnyBWsJS93+7qz7OQeUIDaUlTfrsGwlxStGy3/4GBKKIXtp0zaVdfb6xTWSy kCj9KKKobjqb0Wu4eV3HtA6cqOdUXMUdi+euhcGp3fJFS6PZMzLxxSG5IAxHIGtpwP3s 9L8A== 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=BtcnT8D/h7rbfZreEKswTfwQd9DPWEI07NKHxCB248g=; fh=Dgu+mXF54gkAeFDycN3goAktt7J8cVVzjGZK7IX6PzU=; b=dI3q11YBi/3Xjr5EJtofuOvRyXfNDHVGC1iYp0SVpWlO7R09FUwnac6lfwXigOomub gKoLBWmwe4yLETmrtIr1baETPL3md567msjBTqJafnQgHlc4AWjilsKCwgZ+RtP7b1UO rIYl7Dx/CeP8BOfu/ZXL/1BRrukwY035ksfLsMJm6GIglFoD9LT6wOS8c5zvxguNHRzf 4kUbcIUraBTuohI6CXMD6s5jU8m4HmSAU7DoT3lCdWOfGsPwfYVdJ7HT4uqhrN9xmCAN lC70n6+Y+nBlHlr+fF4z0p1gskr5MM+67viFfAimzmZ8ECxH+ZzknYIoEQeBSAtcwRPP 6LOg==; 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=20251104; t=1780660770; x=1781265570; 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=BtcnT8D/h7rbfZreEKswTfwQd9DPWEI07NKHxCB248g=; b=q6Hv67oA41SkJ55du/vKbQP/YjwCFWCJjjzQFO4osfr8TnyfnzozUv00JoQnD1gHrd 5CpzY9uw9I25hthOdCNRUF0YRRpeCJdq8Rcz9ogG5yKo9h5cD1CoB++rXjtMwM3rnlSY hMyzxoeGmSi5xm7mwLQ7Eq3MTS6M/mcYIKFLtn+Q2yrN3/XjopbN5IBp7WBc8dHOtSOd IG1XDd0S6WD/JQd3m8SnBbN7B+jxuqFKXAFWlDZg9g+Uh3xhZ8gvYKBLtClXlwiLSq2c Oov/NlmxPOQkMKegoOm//3dtjcDNsfI+F2d+yCJHmcCRIjizQLHFyufMog93E+oRFcVX Q9qA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780660770; x=1781265570; 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=BtcnT8D/h7rbfZreEKswTfwQd9DPWEI07NKHxCB248g=; b=DjiXru6USAPnL1AZ6zKx1mJUhJfm+7JlHiQr7L3jky6jCc35VkaZg2MBB7/ASjbaGu jLxC63D8GMVb+kv1holP6fKxmBkur3jcEk2/FptoXxVFmA7LBTmOaJpriIevDvXSODol XbWlE2Bjp062J4Gny6DLGdP69HIK/ignLjd9ipM510PIC0Kiy03fkNvqXQbbE2ILAdwo fpg8rcqfBOXo1Ug3ibXExPCDlTDt4zWfEuRgPWUZbvoS0tFEKyb9y00A/vUv4mmkhn8G XdU0z+t6lglpBbZSFTKQsSyZkvynOE0wV/flbJhkw8WdXuFiel0if06ocwlwVAW2KsEa TiCA== X-Forwarded-Encrypted: i=1; AFNElJ8JdJVz5Qp/wxZvLHru4/l7Tx7FQ8w/eFZmoS3/Nyl0XB4+3T95aB2iuNHPcchGybQ1F6e5FpDjzv858x/s@lists.postgresql.org X-Gm-Message-State: AOJu0Yx12tcOitndfK9vUr9FWfftzzSX0+Q9gdMWsBsIiOTFMS1pj3i/ +LUgGpVxEvEHQT+wciBpS0wzEpuUGdeVLOfwczAvtRrp9XyJYZZrhmNjAhq1CpzZPa/8ST7D5s6 M0TfKpSqWG9o1pjHEOp9u2pGpeEphWB4= X-Gm-Gg: Acq92OE9vgTB1/inrA0OnWZLHEtos0OUyV0lYeIEpSUOQ0mYAOrHgeQT+tMSgKRQ/Z4 EF28sO2Peyt/xcePAXkDMcxmLDogfEMw8HVtfp/hvKRdajPk9DOs1zKJWJ0EYJmq3xe8JoBT56r o82mJejrBx6DFr1EmcQWNNpLNP5MY3ijs/f33fEaBUyizQ3ZqTmbAfFD28yPkMArLqej/hUsBYN FTAII+Egkey4R68jLqzewnlGDw+9dBZI+60eHzV+f9tnp4QMhs2mcVHaji2A+27NB9Si2p4hUdO lgCachkVU+eaU2/EJakPFnss6PQLKzzMjZRAIqWDzehQLhNfgwq443F2Bj4MG0tOJmVvLmZD734 XlKPTBTBHfCD3UZsyUp/5Ut7XGaHtdy/KAcjr+Oh6Nj1mc9Zp0bc= X-Received: by 2002:a05:7300:2321:b0:307:393a:8f1d with SMTP id 5a478bee46e88-3077b0a4d7emr1632138eec.14.1780660769702; Fri, 05 Jun 2026 04:59:29 -0700 (PDT) MIME-Version: 1.0 References: <20250718175314.4513c00a@karst> <20250729174852.14f23557@karst> In-Reply-To: From: Etsuro Fujita Date: Fri, 5 Jun 2026 20:59:17 +0900 X-Gm-Features: AVHnY4K_9XOSfioS5MtlwPQKSB18L27dP0h6LoVTteQb0sltnodCn660kwDfnFo Message-ID: Subject: Re: [(known) BUG] DELETE/UPDATE more than one row in partitioned foreign table To: Nikita Malakhov Cc: Jehan-Guillaume de Rorthais , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000a5420206538064e8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000a5420206538064e8 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Jun 1, 2026 at 7:44=E2=80=AFPM Etsuro Fujita wrote: > I think we should first work on a back-patchable solution. So I'd > like to re-propose the patch that I proposed in this thread before to > disallow UPDATE/DELETE in problematic cases [1]. Attached is a new > version of the patch. Changes are: > > * Renamed the new table option inherited to remotely_inherited, to > avoid confusion with local inheritance. > * Moved the logic to prevent problematic UPDATE/DELETE from a planner > function to an executor function, to avoid throwing an error > unnecessarily when there are no target rows to update/delete. > * Added docs to postgres-fdw.sgml. > > I'm planning to add the postgresImportForeignSchema() support in the > next version. I created the patch to add that support on top of the patch I sent in a previous email, which I'm attaching along with the base patch. It's the same as before, except that I fixed a typo in docs pointed out by Michael-san off-list. Comments welcome! Best regards, Etsuro Fujita --000000000000a5420206538064e8 Content-Type: application/octet-stream; name="v3-0001-postgres_fdw-Disallow-UPDATE-DELETE-in-problematic-c.patch" Content-Disposition: attachment; filename="v3-0001-postgres_fdw-Disallow-UPDATE-DELETE-in-problematic-c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq0vbcsf0 RnJvbSA4YTYwNGNmZGVkMzczMjY1YjNjNWRhMGExZDljZGEwMjA3OTk3MDExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFdHN1cm8gRnVqaXRhIDxlZnVqaXRhQHBvc3RncmVzcWwub3Jn PgpEYXRlOiBGcmksIDUgSnVuIDIwMjYgMjA6MjA6NDIgKzA5MDAKU3ViamVjdDogW1BBVENIIDEv Ml0gcG9zdGdyZXNfZmR3OiBEaXNhbGxvdyBVUERBVEUvREVMRVRFIGluIHByb2JsZW1hdGljCiBj YXNlcy4KCi0tLQogLi4uL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0ICAg IHwgNjQgKysrKysrKysrKysrKysrKysrKwogY29udHJpYi9wb3N0Z3Jlc19mZHcvb3B0aW9uLmMg ICAgICAgICAgICAgICAgIHwgIDIgKwogY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3 LmMgICAgICAgICAgIHwgNTggKysrKysrKysrKysrKysrKysKIGNvbnRyaWIvcG9zdGdyZXNfZmR3 L3NxbC9wb3N0Z3Jlc19mZHcuc3FsICAgICB8IDI4ICsrKysrKysrCiBkb2Mvc3JjL3NnbWwvcG9z dGdyZXMtZmR3LnNnbWwgICAgICAgICAgICAgICAgfCAyMyArKysrKysrCiA1IGZpbGVzIGNoYW5n ZWQsIDE3NSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcv ZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVk L3Bvc3RncmVzX2Zkdy5vdXQKaW5kZXggZTkwMjg5ZTRhYjEuLmZmOWM5ZTg3OGU0IDEwMDY0NAot LS0gYS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CisrKyBi L2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKQEAgLTcxOTcs NiArNzE5Nyw3MCBAQCBSRVNFVCBlbmFibGVfbWF0ZXJpYWw7CiBEUk9QIEZPUkVJR04gVEFCTEUg cmVtdDI7CiBEUk9QIFRBQkxFIGxvY3QxOwogRFJPUCBUQUJMRSBsb2N0MjsKKy0tIFRlc3QgVVBE QVRFL0RFTEVURSBvbiByZW1vdGVseS1pbmhlcml0ZWQgZm9yZWlnbiB0YWJsZXMKK0NSRUFURSBU QUJMRSByaXRlc3RfcHQgKGEgaW50LCBiIGludCkgUEFSVElUSU9OIEJZIExJU1QoYSk7CitDUkVB VEUgVEFCTEUgcml0ZXN0X3B0X3AxIFBBUlRJVElPTiBPRiByaXRlc3RfcHQgRk9SIFZBTFVFUyBJ TiAoMSk7CitDUkVBVEUgVEFCTEUgcml0ZXN0X3B0X3AyIFBBUlRJVElPTiBPRiByaXRlc3RfcHQg Rk9SIFZBTFVFUyBJTiAoMik7CitDUkVBVEUgRk9SRUlHTiBUQUJMRSByaXRlc3RfZnQgKGEgaW50 LCBiIGludCkgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKHRhYmxlX25hbWUgJ3JpdGVzdF9wdCcs IHJlbW90ZWx5X2luaGVyaXRlZCAndHJ1ZScpOworSU5TRVJUIElOVE8gcml0ZXN0X2Z0IFZBTFVF UyAoMSwgMTApLCAoMiwgMjApOworLS0gVXNlIHJhbmRvbSgpIHNvIHRoYXQgVVBEQVRFL0RFTEVU RSBpcyBub3QgcHVzaGVkIGRvd24gdG8gdGhlIHJlbW90ZQorRVhQTEFJTiAoVkVSQk9TRSwgQ09T VFMgT0ZGKQorVVBEQVRFIHJpdGVzdF9mdCBTRVQgYiA9IDEwMCBXSEVSRSBhID0gMSBBTkQgcmFu ZG9tKCkgPCAxLjA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgVXBkYXRlIG9uIHB1YmxpYy5yaXRlc3RfZnQKKyAgIFJl bW90ZSBTUUw6IFVQREFURSBwdWJsaWMucml0ZXN0X3B0IFNFVCBiID0gJDIgV0hFUkUgY3RpZCA9 ICQxCisgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5yaXRlc3RfZnQKKyAgICAgICAgIE91 dHB1dDogMTAwLCBjdGlkLCByaXRlc3RfZnQuKgorICAgICAgICAgRmlsdGVyOiAocmFuZG9tKCkg PCAnMSc6OmRvdWJsZSBwcmVjaXNpb24pCisgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYSwg YiwgY3RpZCBGUk9NIHB1YmxpYy5yaXRlc3RfcHQgV0hFUkUgKChhID0gMSkpIEZPUiBVUERBVEUK Kyg2IHJvd3MpCisKK1VQREFURSByaXRlc3RfZnQgU0VUIGIgPSAxMDAgV0hFUkUgYSA9IDEgQU5E IHJhbmRvbSgpIDwgMS4wOyAgIC0tIHNob3VsZCBmYWlsCitFUlJPUjogIGNhbm5vdCB1cGRhdGUg cmVtb3RlbHktaW5oZXJpdGVkIGZvcmVpZ24gdGFibGUgInJpdGVzdF9mdCIKK0VYUExBSU4gKFZF UkJPU0UsIENPU1RTIE9GRikKK1VQREFURSByaXRlc3RfZnQgU0VUIGIgPSAzMDAgV0hFUkUgYiA9 IDMwIEFORCByYW5kb20oKSA8IDEuMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFVwZGF0ZSBvbiBwdWJsaWMucml0 ZXN0X2Z0CisgICBSZW1vdGUgU1FMOiBVUERBVEUgcHVibGljLnJpdGVzdF9wdCBTRVQgYiA9ICQy IFdIRVJFIGN0aWQgPSAkMQorICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMucml0ZXN0X2Z0 CisgICAgICAgICBPdXRwdXQ6IDMwMCwgY3RpZCwgcml0ZXN0X2Z0LioKKyAgICAgICAgIEZpbHRl cjogKHJhbmRvbSgpIDwgJzEnOjpkb3VibGUgcHJlY2lzaW9uKQorICAgICAgICAgUmVtb3RlIFNR TDogU0VMRUNUIGEsIGIsIGN0aWQgRlJPTSBwdWJsaWMucml0ZXN0X3B0IFdIRVJFICgoYiA9IDMw KSkgRk9SIFVQREFURQorKDYgcm93cykKKworVVBEQVRFIHJpdGVzdF9mdCBTRVQgYiA9IDMwMCBX SEVSRSBiID0gMzAgQU5EIHJhbmRvbSgpIDwgMS4wOyAgLS0gc2hvdWxkIHdvcmsKK0VYUExBSU4g KFZFUkJPU0UsIENPU1RTIE9GRikKK0RFTEVURSBGUk9NIHJpdGVzdF9mdCBXSEVSRSBhID0gMSBB TkQgcmFuZG9tKCkgPCAxLjA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgRGVsZXRlIG9uIHB1YmxpYy5yaXRlc3RfZnQKKyAgIFJlbW90ZSBT UUw6IERFTEVURSBGUk9NIHB1YmxpYy5yaXRlc3RfcHQgV0hFUkUgY3RpZCA9ICQxCisgICAtPiAg Rm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5yaXRlc3RfZnQKKyAgICAgICAgIE91dHB1dDogY3RpZAor ICAgICAgICAgRmlsdGVyOiAocmFuZG9tKCkgPCAnMSc6OmRvdWJsZSBwcmVjaXNpb24pCisgICAg ICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgY3RpZCBGUk9NIHB1YmxpYy5yaXRlc3RfcHQgV0hFUkUg KChhID0gMSkpIEZPUiBVUERBVEUKKyg2IHJvd3MpCisKK0RFTEVURSBGUk9NIHJpdGVzdF9mdCBX SEVSRSBhID0gMSBBTkQgcmFuZG9tKCkgPCAxLjA7ICAgICAgICAgIC0tIHNob3VsZCBmYWlsCitF UlJPUjogIGNhbm5vdCBkZWxldGUgZnJvbSByZW1vdGVseS1pbmhlcml0ZWQgZm9yZWlnbiB0YWJs ZSAicml0ZXN0X2Z0IgorRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQorREVMRVRFIEZST00g cml0ZXN0X2Z0IFdIRVJFIGIgPSAzMCBBTkQgcmFuZG9tKCkgPCAxLjA7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBEZWxldGUgb24gcHVi bGljLnJpdGVzdF9mdAorICAgUmVtb3RlIFNRTDogREVMRVRFIEZST00gcHVibGljLnJpdGVzdF9w dCBXSEVSRSBjdGlkID0gJDEKKyAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLnJpdGVzdF9m dAorICAgICAgICAgT3V0cHV0OiBjdGlkCisgICAgICAgICBGaWx0ZXI6IChyYW5kb20oKSA8ICcx Jzo6ZG91YmxlIHByZWNpc2lvbikKKyAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBjdGlkIEZS T00gcHVibGljLnJpdGVzdF9wdCBXSEVSRSAoKGIgPSAzMCkpIEZPUiBVUERBVEUKKyg2IHJvd3Mp CisKK0RFTEVURSBGUk9NIHJpdGVzdF9mdCBXSEVSRSBiID0gMzAgQU5EIHJhbmRvbSgpIDwgMS4w OyAgICAgICAgIC0tIHNob3VsZCB3b3JrCistLSBDbGVhbnVwCitEUk9QIEZPUkVJR04gVEFCTEUg cml0ZXN0X2Z0OworRFJPUCBUQUJMRSByaXRlc3RfcHQ7CiAtLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSB0ZXN0 IGNoZWNrIGNvbnN0cmFpbnRzCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9jb250cmliL3Bv c3RncmVzX2Zkdy9vcHRpb24uYyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L29wdGlvbi5jCmluZGV4 IDc5YjE2YzNmMzE4Li4zNDA2OThlM2JjYSAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19m ZHcvb3B0aW9uLmMKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvb3B0aW9uLmMKQEAgLTExNiw2 ICsxMTYsNyBAQCBwb3N0Z3Jlc19mZHdfdmFsaWRhdG9yKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCSAq LwogCQlpZiAoc3RyY21wKGRlZi0+ZGVmbmFtZSwgInVzZV9yZW1vdGVfZXN0aW1hdGUiKSA9PSAw IHx8CiAJCQlzdHJjbXAoZGVmLT5kZWZuYW1lLCAidXBkYXRhYmxlIikgPT0gMCB8fAorCQkJc3Ry Y21wKGRlZi0+ZGVmbmFtZSwgInJlbW90ZWx5X2luaGVyaXRlZCIpID09IDAgfHwKIAkJCXN0cmNt cChkZWYtPmRlZm5hbWUsICJ0cnVuY2F0YWJsZSIpID09IDAgfHwKIAkJCXN0cmNtcChkZWYtPmRl Zm5hbWUsICJhc3luY19jYXBhYmxlIikgPT0gMCB8fAogCQkJc3RyY21wKGRlZi0+ZGVmbmFtZSwg InBhcmFsbGVsX2NvbW1pdCIpID09IDAgfHwKQEAgLTI1Niw2ICsyNTcsNyBAQCBJbml0UGdGZHdP cHRpb25zKHZvaWQpCiAJCS8qIHVwZGF0YWJsZSBpcyBhdmFpbGFibGUgb24gYm90aCBzZXJ2ZXIg YW5kIHRhYmxlICovCiAJCXsidXBkYXRhYmxlIiwgRm9yZWlnblNlcnZlclJlbGF0aW9uSWQsIGZh bHNlfSwKIAkJeyJ1cGRhdGFibGUiLCBGb3JlaWduVGFibGVSZWxhdGlvbklkLCBmYWxzZX0sCisJ CXsicmVtb3RlbHlfaW5oZXJpdGVkIiwgRm9yZWlnblRhYmxlUmVsYXRpb25JZCwgZmFsc2V9LAog CQkvKiB0cnVuY2F0YWJsZSBpcyBhdmFpbGFibGUgb24gYm90aCBzZXJ2ZXIgYW5kIHRhYmxlICov CiAJCXsidHJ1bmNhdGFibGUiLCBGb3JlaWduU2VydmVyUmVsYXRpb25JZCwgZmFsc2V9LAogCQl7 InRydW5jYXRhYmxlIiwgRm9yZWlnblRhYmxlUmVsYXRpb25JZCwgZmFsc2V9LApkaWZmIC0tZ2l0 IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3LmMgYi9jb250cmliL3Bvc3RncmVz X2Zkdy9wb3N0Z3Jlc19mZHcuYwppbmRleCAwYTU4OWY4ZGI3NC4uMzQ2NmE4ZTcwYjUgMTAwNjQ0 Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5jCisrKyBiL2NvbnRyaWIv cG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5jCkBAIC0yMDcsNiArMjA3LDkgQEAgdHlwZWRlZiBz dHJ1Y3QgUGdGZHdNb2RpZnlTdGF0ZQogCWludAkJCXBfbnVtczsJCQkvKiBudW1iZXIgb2YgcGFy YW1ldGVycyB0byB0cmFuc21pdCAqLwogCUZtZ3JJbmZvICAgKnBfZmxpbmZvOwkJLyogb3V0cHV0 IGNvbnZlcnNpb24gZnVuY3Rpb25zIGZvciB0aGVtICovCiAKKwkvKiB1cGRhdGUvZGVsZXRlIG9w ZXJhdGlvbiBzdHVmZiAqLworCWJvb2wJCXJlc3VsdFJlbFZhbGlkOwkvKiBoYXZlIHdlIGNoZWNr ZWQgdGhlIHJlc3VsdCByZWxhdGlvbj8gKi8KKwogCS8qIGJhdGNoIG9wZXJhdGlvbiBzdHVmZiAq LwogCWludAkJCW51bV9zbG90czsJCS8qIG51bWJlciBvZiBzbG90cyB0byBpbnNlcnQgKi8KIApA QCAtNjU0LDYgKzY1Nyw3IEBAIHN0YXRpYyBUdXBsZVRhYmxlU2xvdCAqKmV4ZWN1dGVfZm9yZWln bl9tb2RpZnkoRVN0YXRlICplc3RhdGUsCiAJCQkJCQkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICoq cGxhblNsb3RzLAogCQkJCQkJCQkJCQkgICBpbnQgKm51bVNsb3RzKTsKIHN0YXRpYyB2b2lkIHBy ZXBhcmVfZm9yZWlnbl9tb2RpZnkoUGdGZHdNb2RpZnlTdGF0ZSAqZm1zdGF0ZSk7CitzdGF0aWMg dm9pZCBjaGVja19yZXN1bHRfcmVsKFBnRmR3TW9kaWZ5U3RhdGUgKmZtc3RhdGUsIENtZFR5cGUg b3BlcmF0aW9uKTsKIHN0YXRpYyBjb25zdCBjaGFyICoqY29udmVydF9wcmVwX3N0bXRfcGFyYW1z KFBnRmR3TW9kaWZ5U3RhdGUgKmZtc3RhdGUsCiAJCQkJCQkJCQkJCSBJdGVtUG9pbnRlciB0dXBs ZWlkLAogCQkJCQkJCQkJCQkgVHVwbGVUYWJsZVNsb3QgKipzbG90cywKQEAgLTQyMzcsNiArNDI0 MSw5IEBAIGNyZWF0ZV9mb3JlaWduX21vZGlmeShFU3RhdGUgKmVzdGF0ZSwKIAl7CiAJCUFzc2Vy dChzdWJwbGFuICE9IE5VTEwpOwogCisJCS8qIEluaXRpYWxpemUgdmFsaWQgZmxhZyBmb3IgdGhl IHJlc3VsdCByZWxhdGlvbiAqLworCQlmbXN0YXRlLT5yZXN1bHRSZWxWYWxpZCA9IGZhbHNlOwor CiAJCS8qIEZpbmQgdGhlIGN0aWQgcmVzanVuayBjb2x1bW4gaW4gdGhlIHN1YnBsYW4ncyByZXN1 bHQgKi8KIAkJZm1zdGF0ZS0+Y3RpZEF0dG5vID0gRXhlY0ZpbmRKdW5rQXR0cmlidXRlSW5UbGlz dChzdWJwbGFuLT50YXJnZXRsaXN0LAogCQkJCQkJCQkJCQkJCQkgICJjdGlkIik7CkBAIC00MzA5 LDYgKzQzMTYsMTEgQEAgZXhlY3V0ZV9mb3JlaWduX21vZGlmeShFU3RhdGUgKmVzdGF0ZSwKIAkJ ICAgb3BlcmF0aW9uID09IENNRF9VUERBVEUgfHwKIAkJICAgb3BlcmF0aW9uID09IENNRF9ERUxF VEUpOwogCisJLyogRm9yIFVQREFURS9ERUxFVEUsIGNoZWNrIHRoZSByZXN1bHQgcmVsYXRpb24g aWYgbm90IHlldCBkb25lLiAqLworCWlmICgob3BlcmF0aW9uID09IENNRF9VUERBVEUgfHwgb3Bl cmF0aW9uID09IENNRF9ERUxFVEUpICYmCisJCSFmbXN0YXRlLT5yZXN1bHRSZWxWYWxpZCkKKwkJ Y2hlY2tfcmVzdWx0X3JlbChmbXN0YXRlLCBvcGVyYXRpb24pOworCiAJLyogRmlyc3QsIHByb2Nl c3MgYSBwZW5kaW5nIGFzeW5jaHJvbm91cyByZXF1ZXN0LCBpZiBhbnkuICovCiAJaWYgKGZtc3Rh dGUtPmNvbm5fc3RhdGUtPnBlbmRpbmdBcmVxKQogCQlwcm9jZXNzX3BlbmRpbmdfcmVxdWVzdChm bXN0YXRlLT5jb25uX3N0YXRlLT5wZW5kaW5nQXJlcSk7CkBAIC00NDQ5LDYgKzQ0NjEsNTIgQEAg cHJlcGFyZV9mb3JlaWduX21vZGlmeShQZ0Zkd01vZGlmeVN0YXRlICpmbXN0YXRlKQogCWZtc3Rh dGUtPnBfbmFtZSA9IHBfbmFtZTsKIH0KIAorLyoKKyAqIGNoZWNrX3Jlc3VsdF9yZWwKKyAqCQlD aGVjayBpZiB0aGUgdGFyZ2V0IGZvcmVpZ24gdGFibGUgaXMgc2FmZSB0byB1cGRhdGUvZGVsZXRl IHZpYQorICoJCUV4ZWNGb3JlaWduVXBkYXRlL0V4ZWNGb3JlaWduRGVsZXRlLgorICovCitzdGF0 aWMgdm9pZAorY2hlY2tfcmVzdWx0X3JlbChQZ0Zkd01vZGlmeVN0YXRlICpmbXN0YXRlLCBDbWRU eXBlIG9wZXJhdGlvbikKK3sKKwlib29sCQlyZW1vdGVseV9pbmhlcml0ZWQ7CisJRm9yZWlnblRh YmxlICp0YWJsZTsKKwlMaXN0Q2VsbCAgICpsYzsKKworCUFzc2VydCghZm1zdGF0ZS0+cmVzdWx0 UmVsVmFsaWQpOworCUFzc2VydChvcGVyYXRpb24gPT0gQ01EX1VQREFURSB8fCBvcGVyYXRpb24g PT0gQ01EX0RFTEVURSk7CisKKwkvKgorCSAqIEJ5IGRlZmF1bHQsIGFueSBwb3N0Z3Jlc19mZHcg Zm9yZWlnbiB0YWJsZSBpc24ndCBhc3N1bWVkCisJICogcmVtb3RlbHktaW5oZXJpdGVkLgorCSAq LworCXJlbW90ZWx5X2luaGVyaXRlZCA9IGZhbHNlOworCisJdGFibGUgPSBHZXRGb3JlaWduVGFi bGUoUmVsYXRpb25HZXRSZWxpZChmbXN0YXRlLT5yZWwpKTsKKworCWZvcmVhY2gobGMsIHRhYmxl LT5vcHRpb25zKQorCXsKKwkJRGVmRWxlbSAgICAqZGVmID0gKERlZkVsZW0gKikgbGZpcnN0KGxj KTsKKworCQlpZiAoc3RyY21wKGRlZi0+ZGVmbmFtZSwgInJlbW90ZWx5X2luaGVyaXRlZCIpID09 IDApCisJCQlyZW1vdGVseV9pbmhlcml0ZWQgPSBkZWZHZXRCb29sZWFuKGRlZik7CisJfQorCisJ LyoKKwkgKiBJdCdzIHVuc2FmZSB0byB1cGRhdGUvZGVsZXRlIHJlbW90ZWx5LWluaGVyaXRlZCBm b3JlaWduIHRhYmxlcyB2aWEKKwkgKiBFeGVjRm9yZWlnblVwZGF0ZS9FeGVjRm9yZWlnbkRlbGV0 ZS4KKwkgKi8KKwlpZiAocmVtb3RlbHlfaW5oZXJpdGVkKQorCQllcmVwb3J0KEVSUk9SLAorCQkJ CShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKChv cGVyYXRpb24gPT0gQ01EX1VQREFURSkgPworCQkJCQkJImNhbm5vdCB1cGRhdGUgcmVtb3RlbHkt aW5oZXJpdGVkIGZvcmVpZ24gdGFibGUgXCIlc1wiIiA6CisJCQkJCQkiY2Fubm90IGRlbGV0ZSBm cm9tIHJlbW90ZWx5LWluaGVyaXRlZCBmb3JlaWduIHRhYmxlIFwiJXNcIiIsCisJCQkJCQlSZWxh dGlvbkdldFJlbGF0aW9uTmFtZShmbXN0YXRlLT5yZWwpKSkpOworCisJZm1zdGF0ZS0+cmVzdWx0 UmVsVmFsaWQgPSB0cnVlOworfQorCiAvKgogICogY29udmVydF9wcmVwX3N0bXRfcGFyYW1zCiAg KgkJQ3JlYXRlIGFycmF5IG9mIHRleHQgc3RyaW5ncyByZXByZXNlbnRpbmcgcGFyYW1ldGVyIHZh bHVlcwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5z cWwgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbAppbmRleCBkZmM1 OGJlYjBkMi4uMzFkNWVhOGE0N2QgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Nx bC9wb3N0Z3Jlc19mZHcuc3FsCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jl c19mZHcuc3FsCkBAIC0xNzc4LDYgKzE3NzgsMzQgQEAgRFJPUCBGT1JFSUdOIFRBQkxFIHJlbXQy OwogRFJPUCBUQUJMRSBsb2N0MTsKIERST1AgVEFCTEUgbG9jdDI7CiAKKy0tIFRlc3QgVVBEQVRF L0RFTEVURSBvbiByZW1vdGVseS1pbmhlcml0ZWQgZm9yZWlnbiB0YWJsZXMKK0NSRUFURSBUQUJM RSByaXRlc3RfcHQgKGEgaW50LCBiIGludCkgUEFSVElUSU9OIEJZIExJU1QoYSk7CitDUkVBVEUg VEFCTEUgcml0ZXN0X3B0X3AxIFBBUlRJVElPTiBPRiByaXRlc3RfcHQgRk9SIFZBTFVFUyBJTiAo MSk7CitDUkVBVEUgVEFCTEUgcml0ZXN0X3B0X3AyIFBBUlRJVElPTiBPRiByaXRlc3RfcHQgRk9S IFZBTFVFUyBJTiAoMik7CitDUkVBVEUgRk9SRUlHTiBUQUJMRSByaXRlc3RfZnQgKGEgaW50LCBi IGludCkgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKHRhYmxlX25hbWUgJ3JpdGVzdF9wdCcsIHJl bW90ZWx5X2luaGVyaXRlZCAndHJ1ZScpOworSU5TRVJUIElOVE8gcml0ZXN0X2Z0IFZBTFVFUyAo MSwgMTApLCAoMiwgMjApOworCistLSBVc2UgcmFuZG9tKCkgc28gdGhhdCBVUERBVEUvREVMRVRF IGlzIG5vdCBwdXNoZWQgZG93biB0byB0aGUgcmVtb3RlCitFWFBMQUlOIChWRVJCT1NFLCBDT1NU UyBPRkYpCitVUERBVEUgcml0ZXN0X2Z0IFNFVCBiID0gMTAwIFdIRVJFIGEgPSAxIEFORCByYW5k b20oKSA8IDEuMDsKK1VQREFURSByaXRlc3RfZnQgU0VUIGIgPSAxMDAgV0hFUkUgYSA9IDEgQU5E IHJhbmRvbSgpIDwgMS4wOyAgIC0tIHNob3VsZCBmYWlsCisKK0VYUExBSU4gKFZFUkJPU0UsIENP U1RTIE9GRikKK1VQREFURSByaXRlc3RfZnQgU0VUIGIgPSAzMDAgV0hFUkUgYiA9IDMwIEFORCBy YW5kb20oKSA8IDEuMDsKK1VQREFURSByaXRlc3RfZnQgU0VUIGIgPSAzMDAgV0hFUkUgYiA9IDMw IEFORCByYW5kb20oKSA8IDEuMDsgIC0tIHNob3VsZCB3b3JrCisKK0VYUExBSU4gKFZFUkJPU0Us IENPU1RTIE9GRikKK0RFTEVURSBGUk9NIHJpdGVzdF9mdCBXSEVSRSBhID0gMSBBTkQgcmFuZG9t KCkgPCAxLjA7CitERUxFVEUgRlJPTSByaXRlc3RfZnQgV0hFUkUgYSA9IDEgQU5EIHJhbmRvbSgp IDwgMS4wOyAgICAgICAgICAtLSBzaG91bGQgZmFpbAorCitFWFBMQUlOIChWRVJCT1NFLCBDT1NU UyBPRkYpCitERUxFVEUgRlJPTSByaXRlc3RfZnQgV0hFUkUgYiA9IDMwIEFORCByYW5kb20oKSA8 IDEuMDsKK0RFTEVURSBGUk9NIHJpdGVzdF9mdCBXSEVSRSBiID0gMzAgQU5EIHJhbmRvbSgpIDwg MS4wOyAgICAgICAgIC0tIHNob3VsZCB3b3JrCisKKy0tIENsZWFudXAKK0RST1AgRk9SRUlHTiBU QUJMRSByaXRlc3RfZnQ7CitEUk9QIFRBQkxFIHJpdGVzdF9wdDsKKwogLS0gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0gdGVzdCBjaGVjayBjb25zdHJhaW50cwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3Bvc3RncmVzLWZkdy5zZ21sIGIvZG9jL3NyYy9zZ21sL3Bvc3RncmVzLWZkdy5z Z21sCmluZGV4IGI5ZTFiMDQ0NjNlLi5lNmZhODdjNGI4NyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3Bvc3RncmVzLWZkdy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wb3N0Z3Jlcy1mZHcuc2dt bApAQCAtNjMwLDYgKzYzMCwyOSBAQCBPUFRJT05TIChBREQgcGFzc3dvcmRfcmVxdWlyZWQgJ2Zh bHNlJyk7CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICA8dmFy bGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5yZW1vdGVseV9pbmhlcml0ZWQ8L2xpdGVy YWw+ICg8dHlwZT5ib29sZWFuPC90eXBlPik8L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAg IDxwYXJhPgorICAgICAgIFRoaXMgb3B0aW9uLCB3aGljaCBjYW4gYmUgc3BlY2lmaWVkIGZvciBh IGZvcmVpZ24gdGFibGUsIGRldGVybWluZXMgaWYKKyAgICAgICB0aGUgcmVtb3RlIHRhYmxlIGlz IGFuIGluaGVyaXRlZC9wYXJ0aXRpb25lZCB0YWJsZSBvbiB0aGUgcmVtb3RlIHNlcnZlcgorICAg ICAgIG9yIGEgZm9yZWlnbiB0YWJsZSBvbiBpdCByZWZlcmVuY2luZyBzdWNoIGEgdGFibGUgb24g YW5vdGhlciByZW1vdGUKKyAgICAgICBzZXJ2ZXIuCisgICAgICAgVGhlIGRlZmF1bHQgaXMgPGxp dGVyYWw+ZmFsc2U8L2xpdGVyYWw+LgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAg ICAgICBJZiB0aGUgPGxpdGVyYWw+dXBkYXRhYmxlPC9saXRlcmFsPiBvcHRpb24gaXMgc2V0IGZv ciBhIGZvcmVpZ24gdGFibGUKKyAgICAgICB3aG9zZSByZW1vdGUgdGFibGUgaXMgYW55IG9mIHRo ZSBhYm92ZSwKKyAgICAgICA8ZmlsZW5hbWU+cG9zdGdyZXNfZmR3PC9maWxlbmFtZT4gY3VycmVu dGx5IGNhbm5vdCBwcm9wZXJseQorICAgICAgIHVwZGF0ZS9kZWxldGUgaXQsIGNhdXNpbmcgdW5l eHBlY3RlZCByZXN1bHRzLCBleGNlcHQgaW4gY2FzZXMgd2hlcmUgdGhlCisgICAgICAgd2hvbGUg PGNvbW1hbmQ+VVBEQVRFL0RFTEVURTwvY29tbWFuZD4gcHJvY2Vzc2luZyBpcyBwdXNoZWQgZG93 biB0byB0aGUKKyAgICAgICByZW1vdGUgc2VydmVyLiAgU3VjaCB1bnNhZmUgbW9kaWZpY2F0aW9u cyBjYW4gYmUgcHJldmVudGVkIGJ5IHNldHRpbmcKKyAgICAgICB0aGlzIG9wdGlvbi4gIFRoaXMg bWlnaHQgYmUgaW1wcm92ZWQgaW4gZnV0dXJlIHJlbGVhc2VzLgorICAgICAgPC9wYXJhPgorICAg ICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8L3ZhcmlhYmxlbGlzdD4K ICAgPC9zZWN0Mz4KIAotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --000000000000a5420206538064e8 Content-Type: application/octet-stream; name="v3-0002-postgres_fdw-Add-IMPORT-FOREIGN-SCHEMA-support-for-n.patch" Content-Disposition: attachment; filename="v3-0002-postgres_fdw-Add-IMPORT-FOREIGN-SCHEMA-support-for-n.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq0vc3sp1 RnJvbSBkNzc0YzUxMDdmZDY4ZmY5ZDZlZGI0ZjlmMjNiNzliOWNiZjcxZGM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFdHN1cm8gRnVqaXRhIDxlZnVqaXRhQHBvc3RncmVzcWwub3Jn PgpEYXRlOiBGcmksIDUgSnVuIDIwMjYgMjA6MzU6MTkgKzA5MDAKU3ViamVjdDogW1BBVENIIDIv Ml0gcG9zdGdyZXNfZmR3OiBBZGQgSU1QT1JUIEZPUkVJR04gU0NIRU1BIHN1cHBvcnQgZm9yIG5l dwogb3B0aW9uLgoKLS0tCiAuLi4vcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5v dXQgICAgfCAxMjkgKysrKysrKysrLS0tLS0KIGNvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVz X2Zkdy5jICAgICAgICAgICB8IDE2MiArKysrKysrKysrKysrKy0tLS0KIGNvbnRyaWIvcG9zdGdy ZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsICAgICB8ICAxNyArLQogMyBmaWxlcyBjaGFuZ2Vk LCAyMzQgaW5zZXJ0aW9ucygrKSwgNzQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJp Yi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dCBiL2NvbnRyaWIvcG9zdGdy ZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKaW5kZXggZmY5YzllODc4ZTQuLmE2MzFl YTc2ZGMwIDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jl c19mZHcub3V0CisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zk dy5vdXQKQEAgLTEwMDkyLDE2ICsxMDA5MiwxNiBAQCBDUkVBVEUgVEFCTEUgaW1wb3J0X3NvdXJj ZS50NF9wYXJ0MiBQQVJUSVRJT04gT0YgaW1wb3J0X3NvdXJjZS50NAogQ1JFQVRFIFNDSEVNQSBp bXBvcnRfZGVzdDE7CiBJTVBPUlQgRk9SRUlHTiBTQ0hFTUEgaW1wb3J0X3NvdXJjZSBGUk9NIFNF UlZFUiBsb29wYmFjayBJTlRPIGltcG9ydF9kZXN0MTsKIFxkZXQrIGltcG9ydF9kZXN0MS4qCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBmb3JlaWduIHRhYmxl cwotICAgIFNjaGVtYSAgICB8IFRhYmxlIHwgIFNlcnZlciAgfCAgICAgICAgICAgICAgICAgICBG RFcgb3B0aW9ucyAgICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0t LS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIGltcG9ydF9kZXN0MSB8IHQxICAgIHwgbG9v cGJhY2sgfCAoc2NoZW1hX25hbWUgJ2ltcG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1lICd0MScpICB8 IAotIGltcG9ydF9kZXN0MSB8IHQyICAgIHwgbG9vcGJhY2sgfCAoc2NoZW1hX25hbWUgJ2ltcG9y dF9zb3VyY2UnLCB0YWJsZV9uYW1lICd0MicpICB8IAotIGltcG9ydF9kZXN0MSB8IHQzICAgIHwg bG9vcGJhY2sgfCAoc2NoZW1hX25hbWUgJ2ltcG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1lICd0Mycp ICB8IAotIGltcG9ydF9kZXN0MSB8IHQ0ICAgIHwgbG9vcGJhY2sgfCAoc2NoZW1hX25hbWUgJ2lt cG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1lICd0NCcpICB8IAotIGltcG9ydF9kZXN0MSB8IHggNCAg IHwgbG9vcGJhY2sgfCAoc2NoZW1hX25hbWUgJ2ltcG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1lICd4 IDQnKSB8IAotIGltcG9ydF9kZXN0MSB8IHggNSAgIHwgbG9vcGJhY2sgfCAoc2NoZW1hX25hbWUg J2ltcG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1lICd4IDUnKSB8IAotIGltcG9ydF9kZXN0MSB8IHgg NiAgIHwgbG9vcGJhY2sgfCAoc2NoZW1hX25hbWUgJ2ltcG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1l ICd4IDYnKSB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIGZvcmVpZ24gdGFibGVzCisgICAgU2NoZW1hICAgIHwgVGFibGUgfCAgU2Vy dmVyICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGRFcgb3B0aW9ucyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tKy0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGltcG9y dF9kZXN0MSB8IHQxICAgIHwgbG9vcGJhY2sgfCAoc2NoZW1hX25hbWUgJ2ltcG9ydF9zb3VyY2Un LCB0YWJsZV9uYW1lICd0MScpICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgaW1wb3J0 X2Rlc3QxIHwgdDIgICAgfCBsb29wYmFjayB8IChzY2hlbWFfbmFtZSAnaW1wb3J0X3NvdXJjZScs IHRhYmxlX25hbWUgJ3QyJykgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyBpbXBvcnRf ZGVzdDEgfCB0MyAgICB8IGxvb3BiYWNrIHwgKHNjaGVtYV9uYW1lICdpbXBvcnRfc291cmNlJywg dGFibGVfbmFtZSAndDMnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAorIGltcG9ydF9k ZXN0MSB8IHQ0ICAgIHwgbG9vcGJhY2sgfCAoc2NoZW1hX25hbWUgJ2ltcG9ydF9zb3VyY2UnLCB0 YWJsZV9uYW1lICd0NCcsIHJlbW90ZWx5X2luaGVyaXRlZCAndHJ1ZScpIHwgCisgaW1wb3J0X2Rl c3QxIHwgeCA0ICAgfCBsb29wYmFjayB8IChzY2hlbWFfbmFtZSAnaW1wb3J0X3NvdXJjZScsIHRh YmxlX25hbWUgJ3ggNCcpICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyBpbXBvcnRfZGVz dDEgfCB4IDUgICB8IGxvb3BiYWNrIHwgKHNjaGVtYV9uYW1lICdpbXBvcnRfc291cmNlJywgdGFi bGVfbmFtZSAneCA1JykgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAorIGltcG9ydF9kZXN0 MSB8IHggNiAgIHwgbG9vcGJhY2sgfCAoc2NoZW1hX25hbWUgJ2ltcG9ydF9zb3VyY2UnLCB0YWJs ZV9uYW1lICd4IDYnKSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgCiAoNyByb3dzKQogCiBc ZCBpbXBvcnRfZGVzdDEuKgpAQCAtMTAxMzUsNyArMTAxMzUsNyBAQCBGRFcgb3B0aW9uczogKHNj aGVtYV9uYW1lICdpbXBvcnRfc291cmNlJywgdGFibGVfbmFtZSAndDMnKQogLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgYzEgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8 IChjb2x1bW5fbmFtZSAnYzEnKQogU2VydmVyOiBsb29wYmFjawotRkRXIG9wdGlvbnM6IChzY2hl bWFfbmFtZSAnaW1wb3J0X3NvdXJjZScsIHRhYmxlX25hbWUgJ3Q0JykKK0ZEVyBvcHRpb25zOiAo c2NoZW1hX25hbWUgJ2ltcG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1lICd0NCcsIHJlbW90ZWx5X2lu aGVyaXRlZCAndHJ1ZScpCiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvcmVpZ24gdGFi bGUgImltcG9ydF9kZXN0MS54IDQiCiAgQ29sdW1uIHwgICAgICAgICBUeXBlICAgICAgICAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgICAgIEZEVyBvcHRpb25zICAgICAKQEAg LTEwMTY1LDE2ICsxMDE2NSwxNiBAQCBDUkVBVEUgU0NIRU1BIGltcG9ydF9kZXN0MjsKIElNUE9S VCBGT1JFSUdOIFNDSEVNQSBpbXBvcnRfc291cmNlIEZST00gU0VSVkVSIGxvb3BiYWNrIElOVE8g aW1wb3J0X2Rlc3QyCiAgIE9QVElPTlMgKGltcG9ydF9kZWZhdWx0ICd0cnVlJyk7CiBcZGV0KyBp bXBvcnRfZGVzdDIuKgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2YgZm9yZWlnbiB0YWJsZXMKLSAgICBTY2hlbWEgICAgfCBUYWJsZSB8ICBTZXJ2ZXIgIHwgICAg ICAgICAgICAgICAgICAgRkRXIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlv biAKLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBpbXBvcnRfZGVz dDIgfCB0MSAgICB8IGxvb3BiYWNrIHwgKHNjaGVtYV9uYW1lICdpbXBvcnRfc291cmNlJywgdGFi bGVfbmFtZSAndDEnKSAgfCAKLSBpbXBvcnRfZGVzdDIgfCB0MiAgICB8IGxvb3BiYWNrIHwgKHNj aGVtYV9uYW1lICdpbXBvcnRfc291cmNlJywgdGFibGVfbmFtZSAndDInKSAgfCAKLSBpbXBvcnRf ZGVzdDIgfCB0MyAgICB8IGxvb3BiYWNrIHwgKHNjaGVtYV9uYW1lICdpbXBvcnRfc291cmNlJywg dGFibGVfbmFtZSAndDMnKSAgfCAKLSBpbXBvcnRfZGVzdDIgfCB0NCAgICB8IGxvb3BiYWNrIHwg KHNjaGVtYV9uYW1lICdpbXBvcnRfc291cmNlJywgdGFibGVfbmFtZSAndDQnKSAgfCAKLSBpbXBv cnRfZGVzdDIgfCB4IDQgICB8IGxvb3BiYWNrIHwgKHNjaGVtYV9uYW1lICdpbXBvcnRfc291cmNl JywgdGFibGVfbmFtZSAneCA0JykgfCAKLSBpbXBvcnRfZGVzdDIgfCB4IDUgICB8IGxvb3BiYWNr IHwgKHNjaGVtYV9uYW1lICdpbXBvcnRfc291cmNlJywgdGFibGVfbmFtZSAneCA1JykgfCAKLSBp bXBvcnRfZGVzdDIgfCB4IDYgICB8IGxvb3BiYWNrIHwgKHNjaGVtYV9uYW1lICdpbXBvcnRfc291 cmNlJywgdGFibGVfbmFtZSAneCA2JykgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBmb3JlaWduIHRhYmxlcworICAgIFNjaGVtYSAg ICB8IFRhYmxlIHwgIFNlcnZlciAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkRX IG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gCist LS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0KKyBpbXBvcnRfZGVzdDIgfCB0MSAgICB8IGxvb3BiYWNrIHwgKHNjaGVtYV9uYW1l ICdpbXBvcnRfc291cmNlJywgdGFibGVfbmFtZSAndDEnKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IAorIGltcG9ydF9kZXN0MiB8IHQyICAgIHwgbG9vcGJhY2sgfCAoc2NoZW1hX25hbWUg J2ltcG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1lICd0MicpICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgCisgaW1wb3J0X2Rlc3QyIHwgdDMgICAgfCBsb29wYmFjayB8IChzY2hlbWFfbmFtZSAn aW1wb3J0X3NvdXJjZScsIHRhYmxlX25hbWUgJ3QzJykgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAKKyBpbXBvcnRfZGVzdDIgfCB0NCAgICB8IGxvb3BiYWNrIHwgKHNjaGVtYV9uYW1lICdp bXBvcnRfc291cmNlJywgdGFibGVfbmFtZSAndDQnLCByZW1vdGVseV9pbmhlcml0ZWQgJ3RydWUn KSB8IAorIGltcG9ydF9kZXN0MiB8IHggNCAgIHwgbG9vcGJhY2sgfCAoc2NoZW1hX25hbWUgJ2lt cG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1lICd4IDQnKSAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgCisgaW1wb3J0X2Rlc3QyIHwgeCA1ICAgfCBsb29wYmFjayB8IChzY2hlbWFfbmFtZSAnaW1w b3J0X3NvdXJjZScsIHRhYmxlX25hbWUgJ3ggNScpICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAKKyBpbXBvcnRfZGVzdDIgfCB4IDYgICB8IGxvb3BiYWNrIHwgKHNjaGVtYV9uYW1lICdpbXBv cnRfc291cmNlJywgdGFibGVfbmFtZSAneCA2JykgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IAogKDcgcm93cykKIAogXGQgaW1wb3J0X2Rlc3QyLioKQEAgLTEwMjA4LDcgKzEwMjA4LDcgQEAg RkRXIG9wdGlvbnM6IChzY2hlbWFfbmFtZSAnaW1wb3J0X3NvdXJjZScsIHRhYmxlX25hbWUgJ3Qz JykKIC0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLQogIGMxICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAg ICAgICB8ICAgICAgICAgfCAoY29sdW1uX25hbWUgJ2MxJykKIFNlcnZlcjogbG9vcGJhY2sKLUZE VyBvcHRpb25zOiAoc2NoZW1hX25hbWUgJ2ltcG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1lICd0NCcp CitGRFcgb3B0aW9uczogKHNjaGVtYV9uYW1lICdpbXBvcnRfc291cmNlJywgdGFibGVfbmFtZSAn dDQnLCByZW1vdGVseV9pbmhlcml0ZWQgJ3RydWUnKQogCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBGb3JlaWduIHRhYmxlICJpbXBvcnRfZGVzdDIueCA0IgogIENvbHVtbiB8ICAgICAgICAg VHlwZSAgICAgICAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCB8ICAgICBGRFcg b3B0aW9ucyAgICAgCkBAIC0xMDIzNywxNiArMTAyMzcsMTYgQEAgQ1JFQVRFIFNDSEVNQSBpbXBv cnRfZGVzdDM7CiBJTVBPUlQgRk9SRUlHTiBTQ0hFTUEgaW1wb3J0X3NvdXJjZSBGUk9NIFNFUlZF UiBsb29wYmFjayBJTlRPIGltcG9ydF9kZXN0MwogICBPUFRJT05TIChpbXBvcnRfY29sbGF0ZSAn ZmFsc2UnLCBpbXBvcnRfZ2VuZXJhdGVkICdmYWxzZScsIGltcG9ydF9ub3RfbnVsbCAnZmFsc2Un KTsKIFxkZXQrIGltcG9ydF9kZXN0My4qCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBmb3JlaWduIHRhYmxlcwotICAgIFNjaGVtYSAgICB8IFRhYmxlIHwgIFNl cnZlciAgfCAgICAgICAgICAgICAgICAgICBGRFcgb3B0aW9ucyAgICAgICAgICAgICAgICAgICB8 IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQot IGltcG9ydF9kZXN0MyB8IHQxICAgIHwgbG9vcGJhY2sgfCAoc2NoZW1hX25hbWUgJ2ltcG9ydF9z b3VyY2UnLCB0YWJsZV9uYW1lICd0MScpICB8IAotIGltcG9ydF9kZXN0MyB8IHQyICAgIHwgbG9v cGJhY2sgfCAoc2NoZW1hX25hbWUgJ2ltcG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1lICd0MicpICB8 IAotIGltcG9ydF9kZXN0MyB8IHQzICAgIHwgbG9vcGJhY2sgfCAoc2NoZW1hX25hbWUgJ2ltcG9y dF9zb3VyY2UnLCB0YWJsZV9uYW1lICd0MycpICB8IAotIGltcG9ydF9kZXN0MyB8IHQ0ICAgIHwg bG9vcGJhY2sgfCAoc2NoZW1hX25hbWUgJ2ltcG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1lICd0NCcp ICB8IAotIGltcG9ydF9kZXN0MyB8IHggNCAgIHwgbG9vcGJhY2sgfCAoc2NoZW1hX25hbWUgJ2lt cG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1lICd4IDQnKSB8IAotIGltcG9ydF9kZXN0MyB8IHggNSAg IHwgbG9vcGJhY2sgfCAoc2NoZW1hX25hbWUgJ2ltcG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1lICd4 IDUnKSB8IAotIGltcG9ydF9kZXN0MyB8IHggNiAgIHwgbG9vcGJhY2sgfCAoc2NoZW1hX25hbWUg J2ltcG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1lICd4IDYnKSB8IAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIGZvcmVpZ24gdGFibGVzCisg ICAgU2NoZW1hICAgIHwgVGFibGUgfCAgU2VydmVyICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBGRFcgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXNj cmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLQorIGltcG9ydF9kZXN0MyB8IHQxICAgIHwgbG9vcGJhY2sgfCAo c2NoZW1hX25hbWUgJ2ltcG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1lICd0MScpICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgCisgaW1wb3J0X2Rlc3QzIHwgdDIgICAgfCBsb29wYmFjayB8IChz Y2hlbWFfbmFtZSAnaW1wb3J0X3NvdXJjZScsIHRhYmxlX25hbWUgJ3QyJykgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAKKyBpbXBvcnRfZGVzdDMgfCB0MyAgICB8IGxvb3BiYWNrIHwgKHNj aGVtYV9uYW1lICdpbXBvcnRfc291cmNlJywgdGFibGVfbmFtZSAndDMnKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IAorIGltcG9ydF9kZXN0MyB8IHQ0ICAgIHwgbG9vcGJhY2sgfCAoc2No ZW1hX25hbWUgJ2ltcG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1lICd0NCcsIHJlbW90ZWx5X2luaGVy aXRlZCAndHJ1ZScpIHwgCisgaW1wb3J0X2Rlc3QzIHwgeCA0ICAgfCBsb29wYmFjayB8IChzY2hl bWFfbmFtZSAnaW1wb3J0X3NvdXJjZScsIHRhYmxlX25hbWUgJ3ggNCcpICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAKKyBpbXBvcnRfZGVzdDMgfCB4IDUgICB8IGxvb3BiYWNrIHwgKHNjaGVt YV9uYW1lICdpbXBvcnRfc291cmNlJywgdGFibGVfbmFtZSAneCA1JykgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IAorIGltcG9ydF9kZXN0MyB8IHggNiAgIHwgbG9vcGJhY2sgfCAoc2NoZW1h X25hbWUgJ2ltcG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1lICd4IDYnKSAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgCiAoNyByb3dzKQogCiBcZCBpbXBvcnRfZGVzdDMuKgpAQCAtMTAyODAsNyAr MTAyODAsNyBAQCBGRFcgb3B0aW9uczogKHNjaGVtYV9uYW1lICdpbXBvcnRfc291cmNlJywgdGFi bGVfbmFtZSAndDMnKQogLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYzEgICAgIHwgaW50ZWdlciB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IChjb2x1bW5fbmFtZSAnYzEnKQogU2VydmVyOiBs b29wYmFjawotRkRXIG9wdGlvbnM6IChzY2hlbWFfbmFtZSAnaW1wb3J0X3NvdXJjZScsIHRhYmxl X25hbWUgJ3Q0JykKK0ZEVyBvcHRpb25zOiAoc2NoZW1hX25hbWUgJ2ltcG9ydF9zb3VyY2UnLCB0 YWJsZV9uYW1lICd0NCcsIHJlbW90ZWx5X2luaGVyaXRlZCAndHJ1ZScpCiAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEZvcmVpZ24gdGFibGUgImltcG9ydF9kZXN0My54IDQiCiAgQ29sdW1u IHwgICAgICAgICBUeXBlICAgICAgICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0 IHwgICAgIEZEVyBvcHRpb25zICAgICAKQEAgLTEwMzIwLDE2ICsxMDMyMCwxNiBAQCBJTVBPUlQg Rk9SRUlHTiBTQ0hFTUEgaW1wb3J0X3NvdXJjZSBMSU1JVCBUTyAodDEsIG5vbmVzdWNoLCB0NF9w YXJ0KQogSU1QT1JUIEZPUkVJR04gU0NIRU1BIGltcG9ydF9zb3VyY2UgRVhDRVBUICh0MSwgIngg NCIsIG5vbmVzdWNoLCB0NF9wYXJ0KQogICBGUk9NIFNFUlZFUiBsb29wYmFjayBJTlRPIGltcG9y dF9kZXN0NDsKIFxkZXQrIGltcG9ydF9kZXN0NC4qCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlzdCBvZiBmb3JlaWduIHRhYmxlcwotICAgIFNjaGVtYSAgICB8ICBU YWJsZSAgfCAgU2VydmVyICB8ICAgICAgICAgICAgICAgICAgICAgRkRXIG9wdGlvbnMgICAgICAg ICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLQotIGltcG9ydF9kZXN0NCB8IHQxICAgICAgfCBsb29wYmFjayB8 IChzY2hlbWFfbmFtZSAnaW1wb3J0X3NvdXJjZScsIHRhYmxlX25hbWUgJ3QxJykgICAgICB8IAot IGltcG9ydF9kZXN0NCB8IHQyICAgICAgfCBsb29wYmFjayB8IChzY2hlbWFfbmFtZSAnaW1wb3J0 X3NvdXJjZScsIHRhYmxlX25hbWUgJ3QyJykgICAgICB8IAotIGltcG9ydF9kZXN0NCB8IHQzICAg ICAgfCBsb29wYmFjayB8IChzY2hlbWFfbmFtZSAnaW1wb3J0X3NvdXJjZScsIHRhYmxlX25hbWUg J3QzJykgICAgICB8IAotIGltcG9ydF9kZXN0NCB8IHQ0ICAgICAgfCBsb29wYmFjayB8IChzY2hl bWFfbmFtZSAnaW1wb3J0X3NvdXJjZScsIHRhYmxlX25hbWUgJ3Q0JykgICAgICB8IAotIGltcG9y dF9kZXN0NCB8IHQ0X3BhcnQgfCBsb29wYmFjayB8IChzY2hlbWFfbmFtZSAnaW1wb3J0X3NvdXJj ZScsIHRhYmxlX25hbWUgJ3Q0X3BhcnQnKSB8IAotIGltcG9ydF9kZXN0NCB8IHggNSAgICAgfCBs b29wYmFjayB8IChzY2hlbWFfbmFtZSAnaW1wb3J0X3NvdXJjZScsIHRhYmxlX25hbWUgJ3ggNScp ICAgICB8IAotIGltcG9ydF9kZXN0NCB8IHggNiAgICAgfCBsb29wYmFjayB8IChzY2hlbWFfbmFt ZSAnaW1wb3J0X3NvdXJjZScsIHRhYmxlX25hbWUgJ3ggNicpICAgICB8IAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBmb3JlaWduIHRh YmxlcworICAgIFNjaGVtYSAgICB8ICBUYWJsZSAgfCAgU2VydmVyICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBGRFcgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgaW1wb3J0X2Rlc3Q0IHwgdDEgICAgICB8 IGxvb3BiYWNrIHwgKHNjaGVtYV9uYW1lICdpbXBvcnRfc291cmNlJywgdGFibGVfbmFtZSAndDEn KSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAorIGltcG9ydF9kZXN0NCB8IHQyICAgICAg fCBsb29wYmFjayB8IChzY2hlbWFfbmFtZSAnaW1wb3J0X3NvdXJjZScsIHRhYmxlX25hbWUgJ3Qy JykgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyBpbXBvcnRfZGVzdDQgfCB0MyAgICAg IHwgbG9vcGJhY2sgfCAoc2NoZW1hX25hbWUgJ2ltcG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1lICd0 MycpICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgaW1wb3J0X2Rlc3Q0IHwgdDQgICAg ICB8IGxvb3BiYWNrIHwgKHNjaGVtYV9uYW1lICdpbXBvcnRfc291cmNlJywgdGFibGVfbmFtZSAn dDQnLCByZW1vdGVseV9pbmhlcml0ZWQgJ3RydWUnKSB8IAorIGltcG9ydF9kZXN0NCB8IHQ0X3Bh cnQgfCBsb29wYmFjayB8IChzY2hlbWFfbmFtZSAnaW1wb3J0X3NvdXJjZScsIHRhYmxlX25hbWUg J3Q0X3BhcnQnKSAgICAgICAgICAgICAgICAgICAgICAgfCAKKyBpbXBvcnRfZGVzdDQgfCB4IDUg ICAgIHwgbG9vcGJhY2sgfCAoc2NoZW1hX25hbWUgJ2ltcG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1l ICd4IDUnKSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgaW1wb3J0X2Rlc3Q0IHwgeCA2 ICAgICB8IGxvb3BiYWNrIHwgKHNjaGVtYV9uYW1lICdpbXBvcnRfc291cmNlJywgdGFibGVfbmFt ZSAneCA2JykgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAogKDcgcm93cykKIAogLS0gQXNz b3J0ZWQgZXJyb3IgY2FzZXMKQEAgLTEwMzYzLDYgKzEwMzYzLDQ5IEBAIFFVRVJZOiAgQ1JFQVRF IEZPUkVJR04gVEFCTEUgdDUgKAogT1BUSU9OUyAoc2NoZW1hX25hbWUgJ2ltcG9ydF9zb3VyY2Un LCB0YWJsZV9uYW1lICd0NScpOwogQ09OVEVYVDogIGltcG9ydGluZyBmb3JlaWduIHRhYmxlICJ0 NSIKIFJPTExCQUNLOworLS0gQ2hlY2sgdGhhdCB0aGUgcmVtb3RlbHlfaW5oZXJpdGVkIG9wdGlv biBpcyBzZXQgd2hlbiBuZWVkZWQuCitDUkVBVEUgVEFCTEUgaW1wb3J0X3NvdXJjZS5pbmhjaGls ZCAoYzEgaW50KTsKK0NSRUFURSBUQUJMRSBpbXBvcnRfc291cmNlLnQ2IChjMSBpbnQpOworQUxU RVIgVEFCTEUgaW1wb3J0X3NvdXJjZS5pbmhjaGlsZCBJTkhFUklUIGltcG9ydF9zb3VyY2UudDY7 CitDUkVBVEUgVEFCTEUgaW1wb3J0X3NvdXJjZS50NyAoYzEgaW50KTsKK0FMVEVSIFRBQkxFIGlt cG9ydF9zb3VyY2UuaW5oY2hpbGQgSU5IRVJJVCBpbXBvcnRfc291cmNlLnQ3OworQUxURVIgVEFC TEUgaW1wb3J0X3NvdXJjZS5pbmhjaGlsZCBOTyBJTkhFUklUIGltcG9ydF9zb3VyY2UudDc7CitD UkVBVEUgRk9SRUlHTiBUQUJMRSBpbXBvcnRfc291cmNlLnQ4IChjMSBpbnQpIFNFUlZFUiBsb29w YmFjaworICBPUFRJT05TIChyZW1vdGVseV9pbmhlcml0ZWQgJ3RydWUnKTsKK0NSRUFURSBTQ0hF TUEgaW1wb3J0X2Rlc3Q2OworSU1QT1JUIEZPUkVJR04gU0NIRU1BIGltcG9ydF9zb3VyY2UgTElN SVQgVE8gKHQ2LCB0NywgdDgpCisgIEZST00gU0VSVkVSIGxvb3BiYWNrIElOVE8gaW1wb3J0X2Rl c3Q2OworXGRldCsgaW1wb3J0X2Rlc3Q2LioKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBmb3JlaWduIHRhYmxlcworICAgIFNjaGVtYSAg ICB8IFRhYmxlIHwgIFNlcnZlciAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkRX IG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gCist LS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0KKyBpbXBvcnRfZGVzdDYgfCB0NiAgICB8IGxvb3BiYWNrIHwgKHNjaGVtYV9uYW1l ICdpbXBvcnRfc291cmNlJywgdGFibGVfbmFtZSAndDYnLCByZW1vdGVseV9pbmhlcml0ZWQgJ3Ry dWUnKSB8IAorIGltcG9ydF9kZXN0NiB8IHQ3ICAgIHwgbG9vcGJhY2sgfCAoc2NoZW1hX25hbWUg J2ltcG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1lICd0NycpICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgCisgaW1wb3J0X2Rlc3Q2IHwgdDggICAgfCBsb29wYmFjayB8IChzY2hlbWFfbmFtZSAn aW1wb3J0X3NvdXJjZScsIHRhYmxlX25hbWUgJ3Q4JywgcmVtb3RlbHlfaW5oZXJpdGVkICd0cnVl JykgfCAKKygzIHJvd3MpCisKK1xkIGltcG9ydF9kZXN0Ni4qCisgICAgICAgICAgICAgICAgICAg IEZvcmVpZ24gdGFibGUgImltcG9ydF9kZXN0Ni50NiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29s bGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgICAgRkRXIG9wdGlvbnMgICAgIAorLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tCisgYzEgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAg ICAgICB8IChjb2x1bW5fbmFtZSAnYzEnKQorU2VydmVyOiBsb29wYmFjaworRkRXIG9wdGlvbnM6 IChzY2hlbWFfbmFtZSAnaW1wb3J0X3NvdXJjZScsIHRhYmxlX25hbWUgJ3Q2JywgcmVtb3RlbHlf aW5oZXJpdGVkICd0cnVlJykKKworICAgICAgICAgICAgICAgICAgICBGb3JlaWduIHRhYmxlICJp bXBvcnRfZGVzdDYudDciCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxl IHwgRGVmYXVsdCB8ICAgIEZEVyBvcHRpb25zICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIGMxICAg ICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCAoY29sdW1uX25h bWUgJ2MxJykKK1NlcnZlcjogbG9vcGJhY2sKK0ZEVyBvcHRpb25zOiAoc2NoZW1hX25hbWUgJ2lt cG9ydF9zb3VyY2UnLCB0YWJsZV9uYW1lICd0NycpCisKKyAgICAgICAgICAgICAgICAgICAgRm9y ZWlnbiB0YWJsZSAiaW1wb3J0X2Rlc3Q2LnQ4IgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRp b24gfCBOdWxsYWJsZSB8IERlZmF1bHQgfCAgICBGRFcgb3B0aW9ucyAgICAgCistLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBjMSAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAg IHwgKGNvbHVtbl9uYW1lICdjMScpCitTZXJ2ZXI6IGxvb3BiYWNrCitGRFcgb3B0aW9uczogKHNj aGVtYV9uYW1lICdpbXBvcnRfc291cmNlJywgdGFibGVfbmFtZSAndDgnLCByZW1vdGVseV9pbmhl cml0ZWQgJ3RydWUnKQorCiBCRUdJTjsKIENSRUFURSBTRVJWRVIgZmV0Y2gxMDEgRk9SRUlHTiBE QVRBIFdSQVBQRVIgcG9zdGdyZXNfZmR3IE9QVElPTlMoIGZldGNoX3NpemUgJzEwMScgKTsKIFNF TEVDVCBjb3VudCgqKQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNf ZmR3LmMgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuYwppbmRleCAzNDY2YThl NzBiNS4uOGE1NDcxYjJiMDUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3Rn cmVzX2Zkdy5jCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5jCkBAIC03 MjYsNiArNzI2LDkgQEAgc3RhdGljIGJvb2wgaW1wb3J0X2ZldGNoZWRfc3RhdGlzdGljcyhjb25z dCBjaGFyICpzY2hlbWFuYW1lLAogc3RhdGljIHZvaWQgbWFwX2ZpZWxkX3RvX2FyZyhQR3Jlc3Vs dCAqcmVzLCBpbnQgcm93LCBpbnQgZmllbGQsCiAJCQkJCQkJIGludCBhcmcsIERhdHVtICp2YWx1 ZXMsIGNoYXIgKm51bGxzKTsKIHN0YXRpYyBib29sIGltcG9ydF9zcGlfcXVlcnlfb2sodm9pZCk7 CitzdGF0aWMgdm9pZCBhcHBlbmRfaW1wb3J0X3NjaGVtYV9yZXN0cmljdGlvbnMoU3RyaW5nSW5m byBidWYsCisJCQkJCQkJCQkJCSAgSW1wb3J0Rm9yZWlnblNjaGVtYVN0bXQgKnN0bXQsCisJCQkJ CQkJCQkJCSAgUEdjb25uICpjb25uKTsKIHN0YXRpYyB2b2lkIHByb2R1Y2VfdHVwbGVfYXN5bmNo cm9ub3VzbHkoQXN5bmNSZXF1ZXN0ICphcmVxLCBib29sIGZldGNoKTsKIHN0YXRpYyB2b2lkIGZl dGNoX21vcmVfZGF0YV9iZWdpbihBc3luY1JlcXVlc3QgKmFyZXEpOwogc3RhdGljIHZvaWQgY29t cGxldGVfcGVuZGluZ19yZXF1ZXN0KEFzeW5jUmVxdWVzdCAqYXJlcSk7CkBAIC02Mzg5LDcgKzYz OTIsMTAgQEAgcG9zdGdyZXNJbXBvcnRGb3JlaWduU2NoZW1hKEltcG9ydEZvcmVpZ25TY2hlbWFT dG10ICpzdG10LCBPaWQgc2VydmVyT2lkKQogCVBHY29ubgkgICAqY29ubjsKIAlTdHJpbmdJbmZv RGF0YSBidWY7CiAJUEdyZXN1bHQgICAqcmVzOwotCWludAkJCW51bXJvd3MsCisJY2hhcgkgICoq aW5oZXJpdGVkID0gTlVMTDsKKwlpbnQJCQludW1pbmhlcml0ZWQsCisJCQkJaW5oZXJpdGVkX2lk eCwKKwkJCQludW1yb3dzLAogCQkJCWk7CiAJTGlzdENlbGwgICAqbGM7CiAKQEAgLTY0NDQsNiAr NjQ1MCw2MCBAQCBwb3N0Z3Jlc0ltcG9ydEZvcmVpZ25TY2hlbWEoSW1wb3J0Rm9yZWlnblNjaGVt YVN0bXQgKnN0bXQsIE9pZCBzZXJ2ZXJPaWQpCiAJUFFjbGVhcihyZXMpOwogCXJlc2V0U3RyaW5n SW5mbygmYnVmKTsKIAorCS8qCisJICogRmlyc3QsIGZldGNoL3NhdmUgYWxsIHJlbW90ZWx5LWlu aGVyaXRlZCB0YWJsZSBuYW1lcyBmcm9tIHRoaXMgc2NoZW1hLAorCSAqIHBvc3NpYmx5IHJlc3Ry aWN0ZWQgYnkgRVhDRVBUIG9yIExJTUlUIFRPLgorCSAqLworCWFwcGVuZFN0cmluZ0luZm9TdHJp bmcoJmJ1ZiwKKwkJCQkJCSAgICJTRUxFQ1QgcmVsbmFtZSAiCisJCQkJCQkgICAiRlJPTSBwZ19j bGFzcyBjICIKKwkJCQkJCSAgICIgIEpPSU4gcGdfbmFtZXNwYWNlIG4gT04gIgorCQkJCQkJICAg IiAgICByZWxuYW1lc3BhY2UgPSBuLm9pZCAiCisJCQkJCQkgICAiICBMRUZUIEpPSU4gKHBnX2Zv cmVpZ25fdGFibGUgdCAiCisJCQkJCQkgICAiICAgIEpPSU4gcGdfZm9yZWlnbl9zZXJ2ZXIgcyBP TiAiCisJCQkJCQkgICAiICAgICAgcy5vaWQgPSB0LmZ0c2VydmVyICIKKwkJCQkJCSAgICIgICAg Sk9JTiBwZ19mb3JlaWduX2RhdGFfd3JhcHBlciB3IE9OICIKKwkJCQkJCSAgICIgICAgICB3Lm9p ZCA9IHMuc3J2ZmR3KSBPTiAiCisJCQkJCQkgICAiICAgIHQuZnRyZWxpZCA9IGMub2lkICIKKwkJ CQkJCSAgICJXSEVSRSAoYy5yZWxraW5kID0gIgorCQkJCQkJICAgQ3BwQXNTdHJpbmcyKFJFTEtJ TkRfUEFSVElUSU9ORURfVEFCTEUpICIgIgorCQkJCQkJICAgIiAgT1IgKGMucmVsa2luZCBJTiAo IgorCQkJCQkJICAgQ3BwQXNTdHJpbmcyKFJFTEtJTkRfUkVMQVRJT04pICIsIgorCQkJCQkJICAg Q3BwQXNTdHJpbmcyKFJFTEtJTkRfRk9SRUlHTl9UQUJMRSkgIikgIgorCQkJCQkJICAgIiAgICBB TkQgYy5yZWxoYXNzdWJjbGFzcyAiCisJCQkJCQkgICAiICAgIEFORCBFWElTVFMgKFNFTEVDVCAx IEZST00gcGdfaW5oZXJpdHMgIgorCQkJCQkJICAgIiAgICAgIFdIRVJFIGluaHBhcmVudCA9IGMu b2lkKSkgIgorCQkJCQkJICAgIiAgT1IgKGMucmVsa2luZCA9ICIKKwkJCQkJCSAgIENwcEFzU3Ry aW5nMihSRUxLSU5EX0ZPUkVJR05fVEFCTEUpICIgIgorCQkJCQkJICAgIiAgICBBTkQgdy5mZHdu YW1lID0gXCdwb3N0Z3Jlc19mZHdcJyAiCisJCQkJCQkgICAiICAgIEFORCB0LmZ0b3B0aW9ucyBA PiAiCisJCQkJCQkgICAiICAgICAgQVJSQVlbXCdyZW1vdGVseV9pbmhlcml0ZWQ9dHJ1ZVwnXSkp ICIKKwkJCQkJCSAgICIgIEFORCBuLm5zcG5hbWUgPSAiKTsKKwlkZXBhcnNlU3RyaW5nTGl0ZXJh bCgmYnVmLCBzdG10LT5yZW1vdGVfc2NoZW1hKTsKKworCS8qIEFwcGVuZCBFWENFUFQvTElNSVQg VE8gcmVzdHJpY3Rpb25zICovCisJYXBwZW5kX2ltcG9ydF9zY2hlbWFfcmVzdHJpY3Rpb25zKCZi dWYsIHN0bXQsIGNvbm4pOworCisJLyogQXBwZW5kIE9SREVSIEJZIGF0IHRoZSBlbmQgb2YgcXVl cnkgdG8gZW5zdXJlIG91dHB1dCBvcmRlcmluZyAqLworCWFwcGVuZFN0cmluZ0luZm9TdHJpbmco JmJ1ZiwgIiBPUkRFUiBCWSBjLnJlbG5hbWUiKTsKKworCS8qIEZldGNoIHRoZSBkYXRhICovCisJ cmVzID0gcGdmZHdfZXhlY19xdWVyeShjb25uLCBidWYuZGF0YSwgTlVMTCk7CisJaWYgKFBRcmVz dWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQorCQlwZ2Zkd19yZXBvcnRfZXJyb3Io cmVzLCBjb25uLCBidWYuZGF0YSk7CisKKwkvKiBTYXZlIHRoZSBkYXRhICovCisJbnVtaW5oZXJp dGVkID0gUFFudHVwbGVzKHJlcyk7CisJaWYgKG51bWluaGVyaXRlZCA+IDApCisJeworCQlpbmhl cml0ZWQgPSAoY2hhciAqKikgcGFsbG9jMChudW1pbmhlcml0ZWQgKiBzaXplb2YoY2hhciAqKSk7 CisJCWZvciAoaSA9IDA7IGkgPCBudW1pbmhlcml0ZWQ7IGkrKykKKwkJCWluaGVyaXRlZFtpXSA9 IHBzdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIDApKTsKKwl9CisKKwlQUWNsZWFyKHJlcyk7CisJ cmVzZXRTdHJpbmdJbmZvKCZidWYpOworCiAJLyoKIAkgKiBGZXRjaCBhbGwgdGFibGUgZGF0YSBm cm9tIHRoaXMgc2NoZW1hLCBwb3NzaWJseSByZXN0cmljdGVkIGJ5IEVYQ0VQVCBvcgogCSAqIExJ TUlUIFRPLiAgKFdlIGRvbid0IGFjdHVhbGx5IG5lZWQgdG8gcGF5IGFueSBhdHRlbnRpb24gdG8g RVhDRVBUL0xJTUlUCkBAIC02NTExLDM1ICs2NTcxLDggQEAgcG9zdGdyZXNJbXBvcnRGb3JlaWdu U2NoZW1hKEltcG9ydEZvcmVpZ25TY2hlbWFTdG10ICpzdG10LCBPaWQgc2VydmVyT2lkKQogCQkJ CQkJICAgIiAgQU5EIG4ubnNwbmFtZSA9ICIpOwogCWRlcGFyc2VTdHJpbmdMaXRlcmFsKCZidWYs IHN0bXQtPnJlbW90ZV9zY2hlbWEpOwogCi0JLyogUGFydGl0aW9ucyBhcmUgc3VwcG9ydGVkIHNp bmNlIFBvc3RncmVzIDEwICovCi0JaWYgKFBRc2VydmVyVmVyc2lvbihjb25uKSA+PSAxMDAwMDAg JiYKLQkJc3RtdC0+bGlzdF90eXBlICE9IEZEV19JTVBPUlRfU0NIRU1BX0xJTUlUX1RPKQotCQlh cHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWYsICIgQU5EIE5PVCBjLnJlbGlzcGFydGl0aW9uICIp OwotCi0JLyogQXBwbHkgcmVzdHJpY3Rpb25zIGZvciBMSU1JVCBUTyBhbmQgRVhDRVBUICovCi0J aWYgKHN0bXQtPmxpc3RfdHlwZSA9PSBGRFdfSU1QT1JUX1NDSEVNQV9MSU1JVF9UTyB8fAotCQlz dG10LT5saXN0X3R5cGUgPT0gRkRXX0lNUE9SVF9TQ0hFTUFfRVhDRVBUKQotCXsKLQkJYm9vbAkJ Zmlyc3RfaXRlbSA9IHRydWU7Ci0KLQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmLCAiIEFO RCBjLnJlbG5hbWUgIik7Ci0JCWlmIChzdG10LT5saXN0X3R5cGUgPT0gRkRXX0lNUE9SVF9TQ0hF TUFfRVhDRVBUKQotCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmLCAiTk9UICIpOwotCQlh cHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWYsICJJTiAoIik7Ci0KLQkJLyogQXBwZW5kIGxpc3Qg b2YgdGFibGUgbmFtZXMgd2l0aGluIElOIGNsYXVzZSAqLwotCQlmb3JlYWNoKGxjLCBzdG10LT50 YWJsZV9saXN0KQotCQl7Ci0JCQlSYW5nZVZhciAgICpydiA9IChSYW5nZVZhciAqKSBsZmlyc3Qo bGMpOwotCi0JCQlpZiAoZmlyc3RfaXRlbSkKLQkJCQlmaXJzdF9pdGVtID0gZmFsc2U7Ci0JCQll bHNlCi0JCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmLCAiLCAiKTsKLQkJCWRlcGFyc2VT dHJpbmdMaXRlcmFsKCZidWYsIHJ2LT5yZWxuYW1lKTsKLQkJfQotCQlhcHBlbmRTdHJpbmdJbmZv Q2hhcigmYnVmLCAnKScpOwotCX0KKwkvKiBBcHBlbmQgRVhDRVBUL0xJTUlUIFRPIHJlc3RyaWN0 aW9ucyAqLworCWFwcGVuZF9pbXBvcnRfc2NoZW1hX3Jlc3RyaWN0aW9ucygmYnVmLCBzdG10LCBj b25uKTsKIAogCS8qIEFwcGVuZCBPUkRFUiBCWSBhdCB0aGUgZW5kIG9mIHF1ZXJ5IHRvIGVuc3Vy ZSBvdXRwdXQgb3JkZXJpbmcgKi8KIAlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWYsICIgT1JE RVIgQlkgYy5yZWxuYW1lLCBhLmF0dG51bSIpOwpAQCAtNjU1MSw2ICs2NTg0LDcgQEAgcG9zdGdy ZXNJbXBvcnRGb3JlaWduU2NoZW1hKEltcG9ydEZvcmVpZ25TY2hlbWFTdG10ICpzdG10LCBPaWQg c2VydmVyT2lkKQogCiAJLyogUHJvY2VzcyByZXN1bHRzICovCiAJbnVtcm93cyA9IFBRbnR1cGxl cyhyZXMpOworCWluaGVyaXRlZF9pZHggPSAwOwogCS8qIG5vdGU6IGluY3JlbWVudGF0aW9uIG9m IGkgaGFwcGVucyBpbiBpbm5lciBsb29wJ3Mgd2hpbGUoKSB0ZXN0ICovCiAJZm9yIChpID0gMDsg aSA8IG51bXJvd3M7KQogCXsKQEAgLTY2NDcsMTcgKzY2ODEsODUgQEAgcG9zdGdyZXNJbXBvcnRG b3JlaWduU2NoZW1hKEltcG9ydEZvcmVpZ25TY2hlbWFTdG10ICpzdG10LCBPaWQgc2VydmVyT2lk KQogCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWYsICIsIHRhYmxlX25hbWUgIik7CiAJCWRl cGFyc2VTdHJpbmdMaXRlcmFsKCZidWYsIHRhYmxlbmFtZSk7CiAKKwkJLyoKKwkJICogQWxzbyBh ZGQgdGhlIHJlbW90ZWx5X2luaGVyaXRlZCBvcHRpb24gaWYgbmVlZGVkLCB0byBwcmV2ZW50IHVu c2FmZQorCQkgKiBtb2RpZmljYXRpb25zIHRvIHRoZSBmb3JlaWduIHRhYmxlIChzZWUgY2hlY2tf cmVzdWx0X3JlbCgpKS4KKwkJICoKKwkJICogQnkgdGhlIGRlZmluaXRpb25zIG9mIHRoZSBmZXRj aCBxdWVyaWVzIHVzaW5nIHRoZSBzYW1lIHNuYXBzaG90IG9uCisJCSAqIHRoZSByZW1vdGUgc2Vy dmVyLCB0aGUgaW5oZXJpdGVkIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBzdHJpY3RseQorCQkgKiBw cm9wZXIgc3Vic2V0IG9mIHRoZSBkYXRhIHByb2Nlc3NlZCBoZXJlIHdpdGggdGhlIHNhbWUgb3Jk ZXIgYXMgaXQsCisJCSAqIHNvIHdlIGRldGVybWluZSB3aGV0aGVyIHRoZSBmb3JlaWduIHRhYmxl IGlzIHJlbW90ZWx5LWluaGVyaXRlZCBvcgorCQkgKiBub3QsIGJ5IGRvaW5nIGEgbWVyZ2Ugam9p biB0byBpdC4KKwkJICovCisJCWlmIChudW1pbmhlcml0ZWQgPiAwICYmIGluaGVyaXRlZF9pZHgg PCBudW1pbmhlcml0ZWQgJiYKKwkJCXN0cmNtcCh0YWJsZW5hbWUsIGluaGVyaXRlZFtpbmhlcml0 ZWRfaWR4XSkgPT0gMCkKKwkJeworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmLCAiLCBy ZW1vdGVseV9pbmhlcml0ZWQgXCd0cnVlXCciKTsKKwkJCWluaGVyaXRlZF9pZHgrKzsKKwkJfQor CiAJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZiwgIik7Iik7CiAKIAkJY29tbWFuZHMgPSBs YXBwZW5kKGNvbW1hbmRzLCBwc3RyZHVwKGJ1Zi5kYXRhKSk7CiAJfQogCVBRY2xlYXIocmVzKTsK IAorCWlmIChudW1pbmhlcml0ZWQgPiAwKQorCXsKKwkJQXNzZXJ0KGluaGVyaXRlZCAhPSBOVUxM KTsKKwkJZm9yIChpID0gMDsgaSA8IG51bWluaGVyaXRlZDsgaSsrKQorCQl7CisJCQlBc3NlcnQo aW5oZXJpdGVkW2ldICE9IE5VTEwpOworCQkJcGZyZWUoaW5oZXJpdGVkW2ldKTsKKwkJfQorCQlw ZnJlZShpbmhlcml0ZWQpOworCX0KKwogCVJlbGVhc2VDb25uZWN0aW9uKGNvbm4pOwogCiAJcmV0 dXJuIGNvbW1hbmRzOwogfQogCisvKgorICogQXBwZW5kIEVYQ0VQVC9MSU1JVCBUTyByZXN0cmlj dGlvbnMgdG8gYSBxdWVyeS4KKyAqLworc3RhdGljIHZvaWQKK2FwcGVuZF9pbXBvcnRfc2NoZW1h X3Jlc3RyaWN0aW9ucyhTdHJpbmdJbmZvIGJ1ZiwKKwkJCQkJCQkJICBJbXBvcnRGb3JlaWduU2No ZW1hU3RtdCAqc3RtdCwKKwkJCQkJCQkJICBQR2Nvbm4gKmNvbm4pCit7CisJLyogUGFydGl0aW9u cyBhcmUgc3VwcG9ydGVkIHNpbmNlIFBvc3RncmVzIDEwICovCisJaWYgKFBRc2VydmVyVmVyc2lv bihjb25uKSA+PSAxMDAwMDAgJiYKKwkJc3RtdC0+bGlzdF90eXBlICE9IEZEV19JTVBPUlRfU0NI RU1BX0xJTUlUX1RPKQorCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiBBTkQgTk9UIGMu cmVsaXNwYXJ0aXRpb24gIik7CisKKwkvKiBBcHBseSByZXN0cmljdGlvbnMgZm9yIExJTUlUIFRP IGFuZCBFWENFUFQgKi8KKwlpZiAoc3RtdC0+bGlzdF90eXBlID09IEZEV19JTVBPUlRfU0NIRU1B X0xJTUlUX1RPIHx8CisJCXN0bXQtPmxpc3RfdHlwZSA9PSBGRFdfSU1QT1JUX1NDSEVNQV9FWENF UFQpCisJeworCQlib29sCQlmaXJzdF9pdGVtID0gdHJ1ZTsKKwkJTGlzdENlbGwgICAqbGM7CisK KwkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIgQU5EIGMucmVsbmFtZSAiKTsKKwkJaWYg KHN0bXQtPmxpc3RfdHlwZSA9PSBGRFdfSU1QT1JUX1NDSEVNQV9FWENFUFQpCisJCQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIk5PVCAiKTsKKwkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhi dWYsICJJTiAoIik7CisKKwkJLyogQXBwZW5kIGxpc3Qgb2YgdGFibGUgbmFtZXMgd2l0aGluIElO IGNsYXVzZSAqLworCQlmb3JlYWNoKGxjLCBzdG10LT50YWJsZV9saXN0KQorCQl7CisJCQlSYW5n ZVZhciAgICpydiA9IChSYW5nZVZhciAqKSBsZmlyc3QobGMpOworCisJCQlpZiAoZmlyc3RfaXRl bSkKKwkJCQlmaXJzdF9pdGVtID0gZmFsc2U7CisJCQllbHNlCisJCQkJYXBwZW5kU3RyaW5nSW5m b1N0cmluZyhidWYsICIsICIpOworCQkJZGVwYXJzZVN0cmluZ0xpdGVyYWwoYnVmLCBydi0+cmVs bmFtZSk7CisJCX0KKwkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnKScpOworCX0KK30KKwog LyoKICAqIENoZWNrIGlmIHJlbHRhcmdldCBpcyBzYWZlIGVub3VnaCB0byBwdXNoIGRvd24gc2Vt aS1qb2luLiAgUmVsdGFyZ2V0IGlzIG5vdAogICogc2FmZSwgaWYgaXQgY29udGFpbnMgcmVmZXJl bmNlcyB0byBpbm5lciByZWwgcmVsaWRzLCB3aGljaCBkbyBub3QgYmVsb25nIHRvCmRpZmYgLS1n aXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbCBiL2NvbnRyaWIv cG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCmluZGV4IDMxZDVlYThhNDdkLi4xMmI3 YWQyMjM1YiAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zk dy5zcWwKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwKQEAg LTMyNzUsOCArMzI3NSwyMyBAQCBJTVBPUlQgRk9SRUlHTiBTQ0hFTUEgaW1wb3J0X3NvdXJjZSBM SU1JVCBUTyAodDUpCiAKIFJPTExCQUNLOwogCi1CRUdJTjsKKy0tIENoZWNrIHRoYXQgdGhlIHJl bW90ZWx5X2luaGVyaXRlZCBvcHRpb24gaXMgc2V0IHdoZW4gbmVlZGVkLgorQ1JFQVRFIFRBQkxF IGltcG9ydF9zb3VyY2UuaW5oY2hpbGQgKGMxIGludCk7CitDUkVBVEUgVEFCTEUgaW1wb3J0X3Nv dXJjZS50NiAoYzEgaW50KTsKK0FMVEVSIFRBQkxFIGltcG9ydF9zb3VyY2UuaW5oY2hpbGQgSU5I RVJJVCBpbXBvcnRfc291cmNlLnQ2OworQ1JFQVRFIFRBQkxFIGltcG9ydF9zb3VyY2UudDcgKGMx IGludCk7CitBTFRFUiBUQUJMRSBpbXBvcnRfc291cmNlLmluaGNoaWxkIElOSEVSSVQgaW1wb3J0 X3NvdXJjZS50NzsKK0FMVEVSIFRBQkxFIGltcG9ydF9zb3VyY2UuaW5oY2hpbGQgTk8gSU5IRVJJ VCBpbXBvcnRfc291cmNlLnQ3OworQ1JFQVRFIEZPUkVJR04gVEFCTEUgaW1wb3J0X3NvdXJjZS50 OCAoYzEgaW50KSBTRVJWRVIgbG9vcGJhY2sKKyAgT1BUSU9OUyAocmVtb3RlbHlfaW5oZXJpdGVk ICd0cnVlJyk7CisKK0NSRUFURSBTQ0hFTUEgaW1wb3J0X2Rlc3Q2OworSU1QT1JUIEZPUkVJR04g U0NIRU1BIGltcG9ydF9zb3VyY2UgTElNSVQgVE8gKHQ2LCB0NywgdDgpCisgIEZST00gU0VSVkVS IGxvb3BiYWNrIElOVE8gaW1wb3J0X2Rlc3Q2OworXGRldCsgaW1wb3J0X2Rlc3Q2LioKK1xkIGlt cG9ydF9kZXN0Ni4qCiAKK0JFR0lOOwogCiBDUkVBVEUgU0VSVkVSIGZldGNoMTAxIEZPUkVJR04g REFUQSBXUkFQUEVSIHBvc3RncmVzX2ZkdyBPUFRJT05TKCBmZXRjaF9zaXplICcxMDEnICk7CiAK LS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --000000000000a5420206538064e8--