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 1v3qYS-004We3-3B for pgsql-hackers@arkaria.postgresql.org; Wed, 01 Oct 2025 06:43:12 +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 1v3qYQ-00GGPT-4C for pgsql-hackers@arkaria.postgresql.org; Wed, 01 Oct 2025 06:43:10 +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 1v3qYP-00GGOy-OW for pgsql-hackers@lists.postgresql.org; Wed, 01 Oct 2025 06:43:10 +0000 Received: from mail-vk1-xa33.google.com ([2607:f8b0:4864:20::a33]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1v3qYN-0011zX-2N for pgsql-hackers@postgresql.org; Wed, 01 Oct 2025 06:43:10 +0000 Received: by mail-vk1-xa33.google.com with SMTP id 71dfb90a1353d-54b21395093so480002e0c.0 for ; Tue, 30 Sep 2025 23:43:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1759300986; x=1759905786; darn=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=W0WOb0eBYQmbXNI1HI/IgX0TLabBBlgpaORFeFqixY4=; b=G6hyvID48Zi/5h9b9h4T0o8ATOaKNoreiBfxhgR6ny5viPK8kut0UBiTzV+lTSTz5K 2MmwxOf98zwcV+UlJ/SpK/9ZYWTrzqnEk+E0rOZ8i3RNlfkYPc2im1MIGT7qB0v/gFNE ouca+8/DaKXZeZp52y3mI2xVbV2FtumrKNhTFJD+eqt6Bdsm9VryNomB/HWqwKBt9Ssn avPVJLuQ7qlCfQCbWgvxhy3uL0qIyH2FTwNk3q24p2Q1FXbN3SUYn8jw6yesyU+vDkq4 Q1iqFAFE6F0jrJpba6LA5KbSawyvmnvmAqzWcleRFaGbPdzweXu7Zl1Pr+T5GorpJ9lJ OF0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759300986; x=1759905786; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=W0WOb0eBYQmbXNI1HI/IgX0TLabBBlgpaORFeFqixY4=; b=hwW0RyR+pQXDE3ozGu8Kq9MgP1KrFsIakLoIvT5yLVG4tsXfsJ86NUuVwVp+1hc2Zg JaFNVk+3sNV9bQYx7/3e9ORFLKAXb2QipXb2OKqJDDvTHwhKPW/syprUB+zisrW+8zg+ 35bFud+TdaVrYhhrg1WYhVQy6ODhLIrIFNGXhwNGwsf8TH+ETKatFTeHIyYtnDPi0dcK vzBMTANW3uDwJY4wspmA19MHsiR4sQadsAekCX554Rdp98AK/HcBX5kSFvfpVbpt/9Sv 7d9L9pJxh8t83F2w58X7sf/cqC0ON8asuaLlejECapYuPXp3B07S3Zhu9cftvBVeW6vk /urQ== X-Gm-Message-State: AOJu0Yz+keOXJlVoSL6RgONJsdHL5vcNaw16W/fTdaM2Y1Ld6O5zyXpb V2CkVy7VXuoX/nHeLGT4EyKilNO0lJr/4vwrl8NixhYid3D53JBD32quVUXGj4jraiygngSFMV9 d+nrOkskmKFG8uXQiS/ItWMC13vZq/ZCSgOk64No= X-Gm-Gg: ASbGncv3yhYEFIct/iR/rZS1nW5n4u+tjbLBDWzsWO8Nqa5WYt/mEynOQh8BKyz/tz1 ohypDjO4A46PR2Dn5EtcQE79m5/dVfTTCeXDlc+6WSQD9Jr5xrvz9SdBOWdd/RjPS9IuiBxx7Md 2/OrgYM0VFWJtdQ7a91Csx84LY4VTHzZLoalIl1EwcfNP/Dg40UcovuEYfnBDBWFEhhj5CAfbat jmKfa6zyCeHUhKjfRdYAUAhLeYcoNNjrSCINRV5TVEXFKxUqivM+t/SdHpT1K3X8x359Ej4cLq6 wzF/ZJSDdFPzKF+0ZPPjf5QUZQ5vhFthW+VdvT+3DAHhN/Gxmgqpap5xhnjU/Q8RfqE23g+pkh/ UmZcBWryco9kCJ8+4JkeVcx2Dl+x+ra76PCJu5rejcsJ0saNx X-Google-Smtp-Source: AGHT+IEGgs8Yzc11cATKnJIL8SBwVobqibMmhFE5UPSf8PzKF5vvmPzoJK78UhSvAkg2V6wld6ObvrX55sGajkiQRSI= X-Received: by 2002:a05:6122:208c:b0:54a:1ec6:b1ab with SMTP id 71dfb90a1353d-5522c28ae7emr1497000e0c.0.1759300985627; Tue, 30 Sep 2025 23:43:05 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: jian he Date: Wed, 1 Oct 2025 14:42:29 +0800 X-Gm-Features: AS18NWDtP_nKoj0tGHP3DVBESTr88FG9JCbP933VeqAG9fv1JQw1pFv7MeKTqZI Message-ID: Subject: Re: create table like including storage parameter To: "David G. Johnston" Cc: PostgreSQL-development Content-Type: multipart/mixed; boundary="0000000000004d40b40640132ee2" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000004d40b40640132ee2 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Sep 29, 2025 at 9:28=E2=80=AFAM David G. Johnston wrote: > > On Sunday, September 28, 2025, jian he wrot= e: >> >> Since we already support INCLUDING STORAGE, I=E2=80=99m not sure that >> INCLUDING STORAGE PARAMETER is the right syntax to go with. > > I=E2=80=99d just call it =E2=80=9Cincluding parameters=E2=80=9D; sure, al= l of the existing ones are storage related, but if there were non-storage o= nes we=E2=80=99d include those as well, so qualifying with a parameter type= doesn=E2=80=99t seem correct. > =E2=80=9Cincluding parameters=E2=80=9D would add another keyword "PARAMETER= S''. currently "INCLUDING STORAGE PARAMETER" no need to add a new keyword. If other people favor =E2=80=9Cincluding parameters=E2=80=9D, then we can d= o it that way in the future. attached is just a simple rebase of v1. --0000000000004d40b40640132ee2 Content-Type: application/x-patch; name="v2-0001-create-table-like-incluing-storage-parameter.patch" Content-Disposition: attachment; filename="v2-0001-create-table-like-incluing-storage-parameter.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mg7mc0v20 RnJvbSBlM2Y4N2FjNjA4MGEyMjllMzNhYTYzMWQxYWRiOWMyNGMzZGZjZjc5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMSBPY3QgMjAyNSAxNDoyOToxOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjIg MS8xXSBjcmVhdGUgdGFibGUgbGlrZSBpbmNsdWluZyBzdG9yYWdlIHBhcmFtZXRlcgoKZGVtbzoK Y3JlYXRlIHRhYmxlIHQoYSB0ZXh0KSB3aXRoIChmaWxsZmFjdG9yID0gMTAwLCB0b2FzdC52YWN1 dW1fdHJ1bmNhdGU9dHJ1ZSk7CmNyZWF0ZSB0YWJsZSB0MihsaWtlIHQgaW5jbHVkaW5nIHN0b3Jh Z2UgcGFyYW1ldGVyKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRhYmxlICJwdWJsaWMudDIiCiBDb2x1bW4gfCBUeXBlIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUg fCBEZWZhdWx0IHwgU3RvcmFnZSAgfCBDb21wcmVzc2lvbiB8IFN0YXRzIHRhcmdldCB8IERlc2Ny aXB0aW9uCi0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQogYSAg ICAgIHwgdGV4dCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfApBY2Nlc3MgbWV0aG9kOiBoZWFwCk9wdGlvbnM6 IGZpbGxmYWN0b3I9MTAwLCB0b2FzdC52YWN1dW1fdHJ1bmNhdGU9dHJ1ZQoKZGlzY3Vzc2lvbjog aHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUNKdWZ4SHI9bktFc1M2Nk03clRIZ0IrbVhkUTk0OD1fZUox anp0QWM3UFQtZUplZkFAbWFpbC5nbWFpbC5jb20KY29tbWl0ZmVzdCBlbnRyeTogaHR0cHM6Ly9j b21taXRmZXN0LnBvc3RncmVzcWwub3JnL3BhdGNoLzYwODgKLS0tCiBkb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV90YWJsZS5zZ21sICAgICAgICAgICAgfCAxOSArKysrKy0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jICAgICAgICB8IDQ5ICsrKysrKysrKysrKysrKwogc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyAgICAgICAgICAgIHwgNjMgKysrKysrKysrKysr KysrKysrKwogc3JjL2luY2x1ZGUvYWNjZXNzL3JlbG9wdGlvbnMuaCAgICAgICAgICAgICAgIHwg IDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgIDEg KwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3RhYmxlX2xpa2Uub3V0ICAgIHwgMzkgKysr KysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfdGFibGVfbGlrZS5zcWwgICAg fCAyOCArKysrKysrKysKIDggZmlsZXMgY2hhbmdlZCwgMjAwIGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAppbmRleCBkYzAwMGU5MTNjMS4u YTM4OWNlNTk3YTkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbApAQCAtODgsNyArODgs NyBAQCBjbGFzcz0icGFyYW1ldGVyIj5yZWZlcmVudGlhbF9hY3Rpb248L3JlcGxhY2VhYmxlPiBd IFsgT04gVVBEQVRFIDxyZXBsYWNlYWJsZSBjbAogCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bGlrZV9vcHRpb248L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4K IAoteyBJTkNMVURJTkcgfCBFWENMVURJTkcgfSB7IENPTU1FTlRTIHwgQ09NUFJFU1NJT04gfCBD T05TVFJBSU5UUyB8IERFRkFVTFRTIHwgR0VORVJBVEVEIHwgSURFTlRJVFkgfCBJTkRFWEVTIHwg U1RBVElTVElDUyB8IFNUT1JBR0UgfCBBTEwgfQoreyBJTkNMVURJTkcgfCBFWENMVURJTkcgfSB7 IENPTU1FTlRTIHwgQ09NUFJFU1NJT04gfCBDT05TVFJBSU5UUyB8IERFRkFVTFRTIHwgR0VORVJB VEVEIHwgSURFTlRJVFkgfCBJTkRFWEVTIHwgU1RBVElTVElDUyB8IFNUT1JBR0UgfCBTVE9SQUdF IFBBUkFNRVRFUiB8IEFMTCB9CiAKIDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5wYXJ0aXRpb25fYm91bmRfc3BlYzwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgog CkBAIC03NzYsNiArNzc2LDIzIEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgICAgIDwv bGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgICA8dmFybGlzdGVudHJ5 IGlkPSJzcWwtY3JlYXRldGFibGUtcGFybXMtbGlrZS1vcHQtc3RvcmFnZS1wYXJhbXRlciI+Cisg ICAgICAgIDx0ZXJtPjxsaXRlcmFsPklOQ0xVRElORyBTVE9SQUdFIFBBUkFNRVRFUjwvbGl0ZXJh bD48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAg IDxsaXRlcmFsPlNUT1JBR0UgUEFSQU1FVEVSPC9saXRlcmFsPiBzZXR0aW5ncyBmb3IgdGhlIGNv cGllZCB0YWJsZSB3aWxsIGJlIGNvcGllZC4KKyAgICAgICAgICBGb3IgdGFibGUgc3RvcmFnZSBw YXJhbWV0ZXJzLCBzZWUgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXRhYmxlLXN0b3JhZ2UtcGFy YW1ldGVycyIvPiBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyAgICAgICAgIDwvcGFyYT4K KworICAgICAgICA8cGFyYT4KKyAgICAgICAgICBEbyBub3QgY29uZnVzZSB0aGlzIHdpdGggPGxp dGVyYWw+SU5DTFVESU5HIFNUT1JBR0U8L2xpdGVyYWw+LgorICAgICAgICAgIDxsaXRlcmFsPklO Q0xVRElORyBTVE9SQUdFPC9saXRlcmFsPiBpcyBmb3IgY29weWluZyB0YWJsZSBjb2x1bW4gc3Rv cmFnZSBwcm9wZXJ0eSwKKyAgICAgICAgICB0aGlzIGlzIGZvciBjb3B5aW5nIHRhYmxlIHN0b3Jh Z2UgcGFyYW1ldGVycy4KKyAgICAgICAgPC9wYXJhPgorCisgICAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3Jl YXRldGFibGUtcGFybXMtbGlrZS1vcHQtYWxsIj4KICAgICAgICAgPHRlcm0+PGxpdGVyYWw+SU5D TFVESU5HIEFMTDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMKaW5kZXggMzUxNTBiZjIzN2IuLjYwMzJjZDU4MTNl IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYwpAQCAtMTM4Myw2ICsxMzgz LDU1IEBAIHVudHJhbnNmb3JtUmVsT3B0aW9ucyhEYXR1bSBvcHRpb25zKQogCXJldHVybiByZXN1 bHQ7CiB9CiAKKy8qCisgKiBDb252ZXJ0IHRoZSByZWxvcHRpb25zIGZyb20gdGV4dC1hcnJheSBm b3JtYXQgaW50byBhIExpc3Qgb2YgRGVmRWxlbS4gIFRoaXMKKyAqIGlzIHRoZSByZXZlcnNlIG9w ZXJhdGlvbiBvZiB0cmFuc2Zvcm1SZWxPcHRpb25zKCkuIElmIGFueSBvcHRpb24gaW5jbHVkZXMg YQorICogbmFtZXNwYWNlIHF1YWxpZmljYXRpb24sIGNyZWF0ZSB0aGUgRGVmRWxlbSBpbiB0aGF0 IG5hbWVzcGFjZS4KKyAqIElmIG5hbWVTcGFjZSBpcyBOVUxMLCB0aGlzIGJlaGF2ZSB0aGUgc2Ft ZSBhcyB1bnRyYW5zZm9ybVJlbE9wdGlvbnMuCisgKi8KK0xpc3QgKgordW50cmFuc2Zvcm1SZWxP cHRpb25zRXh0ZW5kZWQoRGF0dW0gb3B0aW9ucywgY2hhciogbmFtZVNwYWNlKQoreworCUxpc3QJ ICAgKnJlc3VsdCA9IE5JTDsKKwlBcnJheVR5cGUgICphcnJheTsKKwlEYXR1bQkgICAqb3B0aW9u ZGF0dW1zOworCWludAkJCW5vcHRpb25zOworCWludAkJCWk7CisKKwkvKiBOb3RoaW5nIHRvIGRv IGlmIG5vIG9wdGlvbnMgKi8KKwlpZiAoRGF0dW1HZXRQb2ludGVyKG9wdGlvbnMpID09IE5VTEwp CisJCXJldHVybiByZXN1bHQ7CisKKwlhcnJheSA9IERhdHVtR2V0QXJyYXlUeXBlUChvcHRpb25z KTsKKworCWRlY29uc3RydWN0X2FycmF5X2J1aWx0aW4oYXJyYXksIFRFWFRPSUQsICZvcHRpb25k YXR1bXMsIE5VTEwsICZub3B0aW9ucyk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbm9wdGlvbnM7IGkr KykKKwl7CisJCWNoYXIJICAgKnM7CisJCWNoYXIJICAgKnA7CisJCU5vZGUJICAgKnZhbCA9IE5V TEw7CisKKwkJcyA9IFRleHREYXR1bUdldENTdHJpbmcob3B0aW9uZGF0dW1zW2ldKTsKKwkJcCA9 IHN0cmNocihzLCAnPScpOworCQlpZiAocCkKKwkJeworCQkJKnArKyA9ICdcMCc7CisJCQl2YWwg PSAoTm9kZSAqKSBtYWtlU3RyaW5nKHApOworCQl9CisKKwkJaWYgKG5hbWVTcGFjZSA9PSBOVUxM KQorCQkJcmVzdWx0ID0gbGFwcGVuZChyZXN1bHQsIG1ha2VEZWZFbGVtKHMsIHZhbCwgLTEpKTsK KwkJZWxzZQorCQkJcmVzdWx0ID0gbGFwcGVuZChyZXN1bHQsIG1ha2VEZWZFbGVtRXh0ZW5kZWQo bmFtZVNwYWNlLCBzLCB2YWwsCisJCQkJCQkJCQkJCQkJCSBERUZFTEVNX1VOU1BFQywKKwkJCQkJ CQkJCQkJCQkJIC0xKSk7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KKworCiAvKgogICogRXh0 cmFjdCBhbmQgcGFyc2UgcmVsb3B0aW9ucyBmcm9tIGEgcGdfY2xhc3MgdHVwbGUuCiAgKgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKaW5kZXggNjY0YjA0ODNkYmQuLmZjNTkyNjhhMDc2IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTQy MjUsNiArNDIyNSw3IEBAIFRhYmxlTGlrZU9wdGlvbjoKIAkJCQl8IElOREVYRVMJCQl7ICQkID0g Q1JFQVRFX1RBQkxFX0xJS0VfSU5ERVhFUzsgfQogCQkJCXwgU1RBVElTVElDUwkJeyAkJCA9IENS RUFURV9UQUJMRV9MSUtFX1NUQVRJU1RJQ1M7IH0KIAkJCQl8IFNUT1JBR0UJCQl7ICQkID0gQ1JF QVRFX1RBQkxFX0xJS0VfU1RPUkFHRTsgfQorCQkJCXwgU1RPUkFHRSBQQVJBTUVURVIJeyAkJCA9 IENSRUFURV9UQUJMRV9MSUtFX1NUT1JBR0VfUEFSQU1FVEVSOyB9CiAJCQkJfCBBTEwJCQkJeyAk JCA9IENSRUFURV9UQUJMRV9MSUtFX0FMTDsgfQogCQk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRp bGNtZC5jCmluZGV4IGU5NmIzOGE1OWQ1Li5iZDQwMWNiYTVlNCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfdXRpbGNtZC5jCkBAIC04NSw2ICs4NSw3IEBAIHR5cGVkZWYgc3RydWN0CiAJTGlzdAkgICAq Zmtjb25zdHJhaW50czsJLyogRk9SRUlHTiBLRVkgY29uc3RyYWludHMgKi8KIAlMaXN0CSAgICpp eGNvbnN0cmFpbnRzOwkvKiBpbmRleC1jcmVhdGluZyBjb25zdHJhaW50cyAqLwogCUxpc3QJICAg Kmxpa2VjbGF1c2VzOwkvKiBMSUtFIGNsYXVzZXMgdGhhdCBuZWVkIHBvc3QtcHJvY2Vzc2luZyAq LworCUxpc3QJICAgKm9wdGlvbnM7CQkvKiBvcHRpb25zIGZyb20gV0lUSCBjbGF1c2UsIHRhYmxl IEFNIHNwZWNpZmljIHBhcmFtZXRlcnMgKi8KIAlMaXN0CSAgICpibGlzdDsJCQkvKiAiYmVmb3Jl IGxpc3QiIG9mIHRoaW5ncyB0byBkbyBiZWZvcmUKIAkJCQkJCQkJICogY3JlYXRpbmcgdGhlIHRh YmxlICovCiAJTGlzdAkgICAqYWxpc3Q7CQkJLyogImFmdGVyIGxpc3QiIG9mIHRoaW5ncyB0byBk byBhZnRlciBjcmVhdGluZwpAQCAtMjQ1LDYgKzI0Niw3IEBAIHRyYW5zZm9ybUNyZWF0ZVN0bXQo Q3JlYXRlU3RtdCAqc3RtdCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcpCiAJY3h0LmZrY29uc3Ry YWludHMgPSBOSUw7CiAJY3h0Lml4Y29uc3RyYWludHMgPSBOSUw7CiAJY3h0Lmxpa2VjbGF1c2Vz ID0gTklMOworCWN4dC5vcHRpb25zID0gc3RtdC0+b3B0aW9uczsKIAljeHQuYmxpc3QgPSBOSUw7 CiAJY3h0LmFsaXN0ID0gTklMOwogCWN4dC5wa2V5ID0gTlVMTDsKQEAgLTM2OSw2ICszNzEsNyBA QCB0cmFuc2Zvcm1DcmVhdGVTdG10KENyZWF0ZVN0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5 U3RyaW5nKQogCXN0bXQtPnRhYmxlRWx0cyA9IGN4dC5jb2x1bW5zOwogCXN0bXQtPmNvbnN0cmFp bnRzID0gY3h0LmNrY29uc3RyYWludHM7CiAJc3RtdC0+bm5jb25zdHJhaW50cyA9IGN4dC5ubmNv bnN0cmFpbnRzOworCXN0bXQtPm9wdGlvbnMgPSBjeHQub3B0aW9uczsKIAogCXJlc3VsdCA9IGxh cHBlbmQoY3h0LmJsaXN0LCBzdG10KTsKIAlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4 dC5hbGlzdCk7CkBAIC0xMjY4LDYgKzEyNzEsNjUgQEAgdHJhbnNmb3JtVGFibGVMaWtlQ2xhdXNl KENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIFRhYmxlTGlrZUNsYXVzZSAqdGFibGVfbGlrZV9jbGEK IAkJfQogCX0KIAorCS8qIExpa2V3aXNlLCBjb3B5IHN0b3JhZ2UgcGFyYW10ZXIgaWYgcmVxdWVz dGVkICovCisJaWYgKCh0YWJsZV9saWtlX2NsYXVzZS0+b3B0aW9ucyAmIENSRUFURV9UQUJMRV9M SUtFX1NUT1JBR0VfUEFSQU1FVEVSKSAmJgorCQkhY3h0LT5pc2ZvcmVpZ24pCisJeworCQlIZWFw VHVwbGUJdHVwbGU7CisJCURhdHVtCQlyZWxvcHRpb25zOworCQlib29sCQlpc251bGw7CisJCU9p ZAkJCXJlbGlkOworCQlMaXN0CQkqb2xkb3B0aW9ucyA9IE5JTDsKKwkJTGlzdAkJKm9sZHRvYXN0 b3B0aW9ucyA9IE5JTDsKKworCQlyZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQocmVsYXRpb24pOwor CQl0dXBsZSA9IFNlYXJjaFN5c0NhY2hlMShSRUxPSUQsIE9iamVjdElkR2V0RGF0dW0ocmVsaWQp KTsKKwkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkKKwkJCWVsb2coRVJST1IsICJjYWNo ZSBsb29rdXAgZmFpbGVkIGZvciByZWxhdGlvbiAldSIsIHJlbGlkKTsKKworCQlyZWxvcHRpb25z ID0gU3lzQ2FjaGVHZXRBdHRyKFJFTE9JRCwgdHVwbGUsCisJCQkJCQkJCQkgQW51bV9wZ19jbGFz c19yZWxvcHRpb25zLCAmaXNudWxsKTsKKworCQlpZiAoIWlzbnVsbCkKKwkJeworCQkJb2xkb3B0 aW9ucyA9IHVudHJhbnNmb3JtUmVsT3B0aW9ucyhyZWxvcHRpb25zKTsKKworCQkJZm9yZWFjaF9u b2RlKERlZkVsZW0sIG9wdGlvbiwgb2xkb3B0aW9ucykKKwkJCQljeHQtPm9wdGlvbnMgPSBsYXBw ZW5kKGN4dC0+b3B0aW9ucywgb3B0aW9uKTsKKwkJfQorCisJCVJlbGVhc2VTeXNDYWNoZSh0dXBs ZSk7CisKKwkJLyogbm93IGdldCB0aGUgc291cmNlIHJlbGF0aW9uIHRvYXN0IHJlbGF0aW9uIHJl bG9wdGlvbnMgKi8KKwkJaWYgKE9pZElzVmFsaWQocmVsYXRpb24tPnJkX3JlbC0+cmVsdG9hc3Ry ZWxpZCkpCisJCXsKKwkJCVJlbGF0aW9uCXRvYXN0cmVsOworCisJCQlPaWQJCQl0b2FzdGlkID0g cmVsYXRpb24tPnJkX3JlbC0+cmVsdG9hc3RyZWxpZDsKKworCQkJdG9hc3RyZWwgPSB0YWJsZV9v cGVuKHRvYXN0aWQsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwkJCS8qIEZldGNoIGhlYXAgdHVwbGUg Ki8KKwkJCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKFJFTE9JRCwgT2JqZWN0SWRHZXREYXR1bSh0 b2FzdGlkKSk7CisJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwbGUpKQorCQkJCWVsb2coRVJS T1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB0b2FzdCByZWxhdGlvbiAldSIsIHRvYXN0aWQp OworCisJCQkvKiBHZXQgdGhlIHRvYXN0IHJlbG9wdGlvbnMgKi8KKwkJCXJlbG9wdGlvbnMgPSBT eXNDYWNoZUdldEF0dHIoUkVMT0lELCB0dXBsZSwgQW51bV9wZ19jbGFzc19yZWxvcHRpb25zLAor CQkJCQkJCQkJCSAmaXNudWxsKTsKKwkJCWlmICghaXNudWxsKQorCQkJeworCQkJCW9sZHRvYXN0 b3B0aW9ucyA9IHVudHJhbnNmb3JtUmVsT3B0aW9uc0V4dGVuZGVkKHJlbG9wdGlvbnMsICJ0b2Fz dCIpOworCQkJCWZvcmVhY2hfbm9kZShEZWZFbGVtLCBvcHRpb24sIG9sZHRvYXN0b3B0aW9ucykK KwkJCQkJY3h0LT5vcHRpb25zID0gbGFwcGVuZChjeHQtPm9wdGlvbnMsIG9wdGlvbik7CisJCQl9 CisKKwkJCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CisKKwkJCXRhYmxlX2Nsb3NlKHRvYXN0cmVs LCBOb0xvY2spOworCQl9CisJfQorCiAJLyoKIAkgKiBSZXByb2R1Y2Ugbm90LW51bGwgY29uc3Ry YWludHMsIGlmIGFueSwgYnkgY29weWluZyB0aGVtLiAgV2UgZG8gdGhpcwogCSAqIHJlZ2FyZGxl c3Mgb2Ygb3B0aW9ucyBnaXZlbi4KQEAgLTM1NzUsNiArMzYzNyw3IEBAIHRyYW5zZm9ybUFsdGVy VGFibGVTdG10KE9pZCByZWxpZCwgQWx0ZXJUYWJsZVN0bXQgKnN0bXQsCiAJY3h0LmZrY29uc3Ry YWludHMgPSBOSUw7CiAJY3h0Lml4Y29uc3RyYWludHMgPSBOSUw7CiAJY3h0Lmxpa2VjbGF1c2Vz ID0gTklMOworCWN4dC5vcHRpb25zID0gTklMOwogCWN4dC5ibGlzdCA9IE5JTDsKIAljeHQuYWxp c3QgPSBOSUw7CiAJY3h0LnBrZXkgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNj ZXNzL3JlbG9wdGlvbnMuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxvcHRpb25zLmgKaW5kZXgg YTYwNGE0NzAyYzMuLjg1ODk2MTZkMDhiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv cmVsb3B0aW9ucy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxvcHRpb25zLmgKQEAgLTIz Niw2ICsyMzYsNyBAQCBleHRlcm4gRGF0dW0gdHJhbnNmb3JtUmVsT3B0aW9ucyhEYXR1bSBvbGRP cHRpb25zLCBMaXN0ICpkZWZMaXN0LAogCQkJCQkJCQkgY29uc3QgY2hhciAqbmFtZVNwYWNlLCBj b25zdCBjaGFyICpjb25zdCB2YWxpZG5zcHNbXSwKIAkJCQkJCQkJIGJvb2wgYWNjZXB0T2lkc09m ZiwgYm9vbCBpc1Jlc2V0KTsKIGV4dGVybiBMaXN0ICp1bnRyYW5zZm9ybVJlbE9wdGlvbnMoRGF0 dW0gb3B0aW9ucyk7CitleHRlcm4gTGlzdCAqdW50cmFuc2Zvcm1SZWxPcHRpb25zRXh0ZW5kZWQo RGF0dW0gb3B0aW9ucywgY2hhciogbmFtZVNwYWNlKTsKIGV4dGVybiBieXRlYSAqZXh0cmFjdFJl bE9wdGlvbnMoSGVhcFR1cGxlIHR1cGxlLCBUdXBsZURlc2MgdHVwZGVzYywKIAkJCQkJCQkJYW1v cHRpb25zX2Z1bmN0aW9uIGFtb3B0aW9ucyk7CiBleHRlcm4gdm9pZCAqYnVpbGRfcmVsb3B0aW9u cyhEYXR1bSByZWxvcHRpb25zLCBib29sIHZhbGlkYXRlLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmlu ZGV4IGFjMGUwMmExZGI3Li40ODM5ZjU3OWNmNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAt Nzk0LDYgKzc5NCw3IEBAIHR5cGVkZWYgZW51bSBUYWJsZUxpa2VPcHRpb24KIAlDUkVBVEVfVEFC TEVfTElLRV9JTkRFWEVTID0gMSA8PCA2LAogCUNSRUFURV9UQUJMRV9MSUtFX1NUQVRJU1RJQ1Mg PSAxIDw8IDcsCiAJQ1JFQVRFX1RBQkxFX0xJS0VfU1RPUkFHRSA9IDEgPDwgOCwKKwlDUkVBVEVf VEFCTEVfTElLRV9TVE9SQUdFX1BBUkFNRVRFUiA9IDEgPDwgOSwKIAlDUkVBVEVfVEFCTEVfTElL RV9BTEwgPSBQR19JTlQzMl9NQVgKIH0gVGFibGVMaWtlT3B0aW9uOwogCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtlLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3RhYmxlX2xpa2Uub3V0CmluZGV4IGQzYzM1YzE0ODQ3 Li4xOTM3NzFmMzQwOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVh dGVfdGFibGVfbGlrZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVf dGFibGVfbGlrZS5vdXQKQEAgLTY5OSwzICs2OTksNDIgQEAgRFJPUCBGT1JFSUdOIFRBQkxFIGN0 bF9mb3JlaWduX3RhYmxlMTsKIERST1AgRk9SRUlHTiBUQUJMRSBjdGxfZm9yZWlnbl90YWJsZTI7 CiBEUk9QIEZPUkVJR04gREFUQSBXUkFQUEVSIGN0bF9kdW1teSBDQVNDQURFOwogTk9USUNFOiAg ZHJvcCBjYXNjYWRlcyB0byBzZXJ2ZXIgY3RsX3MwCistLUNSRUFURSBUQUJMRSBMSUtFIHdpdGgg U1RPUkFHRSBQQVJBTUVURVIKK2NyZWF0ZSB0YWJsZSB0KGEgdGV4dCkgd2l0aCAoCisgICAgZmls bGZhY3RvciA9IDEwMCwKKyAgICB0b2FzdF90dXBsZV90YXJnZXQgPSAxMjgsCisgICAgdmFjdXVt X2luZGV4X2NsZWFudXAgPSBhdXRvLAorICAgIHRvYXN0LnZhY3V1bV9pbmRleF9jbGVhbnVwID0g YXV0bywKKyAgICB2YWN1dW1fdHJ1bmNhdGUgPSB0cnVlLAorICAgIHRvYXN0LnZhY3V1bV90cnVu Y2F0ZSA9IGZhbHNlLAorICAgIGxvZ19hdXRvdmFjdXVtX21pbl9kdXJhdGlvbiA9IDEwMCwKKyAg ICB0b2FzdC5sb2dfYXV0b3ZhY3V1bV9taW5fZHVyYXRpb24gPSAxMDApOworY3JlYXRlIHRhYmxl IHQxKGxpa2UgdCBpbmNsdWRpbmcgc3RvcmFnZSBwYXJhbWV0ZXIpIHdpdGggKGZpbGxmYWN0b3Ig PSAxMDApOyAtLWVycm9yCitFUlJPUjogIHBhcmFtZXRlciAiZmlsbGZhY3RvciIgc3BlY2lmaWVk IG1vcmUgdGhhbiBvbmNlCitjcmVhdGUgdGFibGUgdDEobGlrZSB0IGV4Y2x1ZGluZyBzdG9yYWdl IHBhcmFtZXRlcikgd2l0aCAoZmlsbGZhY3RvciA9IDEwMCk7IC0tb2sKK1xkKyB0MQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnQxIgorIENvbHVtbiB8 IFR5cGUgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgfCBTdG9yYWdlICB8IFN0YXRz IHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQor IGEgICAgICB8IHRleHQgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBleHRlbmRl ZCB8ICAgICAgICAgICAgICB8IAorT3B0aW9uczogZmlsbGZhY3Rvcj0xMDAKKworY3JlYXRlIHRh YmxlIHQyKGxpa2UgdCBpbmNsdWRpbmcgc3RvcmFnZSBwYXJhbWV0ZXIpIHdpdGggKAorICBwYXJh bGxlbF93b3JrZXJzID0gMywKKyAgdG9hc3QuYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkID0g MTAxLAorICB0b2FzdC5hdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3IgPSAwLjMpOworc2Vs ZWN0ICAgIGMucmVsbmFtZSwgYy5yZWxvcHRpb25zLCB0Yy5yZWxvcHRpb25zIGFzIHRvYXN0X29w dGlvbnMKK2Zyb20gICAgICBwZ19jYXRhbG9nLnBnX2NsYXNzIGMKK2xlZnQgam9pbiBwZ19jYXRh bG9nLnBnX2NsYXNzIHRjIE9OIChjLnJlbHRvYXN0cmVsaWQgPSB0Yy5vaWQpCit3aGVyZSAgICAg Yy5yZWxuYW1lIGluICgndCcsICd0MicpCitvcmRlciBieSAgYy5yZWxuYW1lIFxneAorLVsgUkVD T1JEIDEgXS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3JlbG5hbWUgICAg ICAgfCB0CityZWxvcHRpb25zICAgIHwge2ZpbGxmYWN0b3I9MTAwLHRvYXN0X3R1cGxlX3Rhcmdl dD0xMjgsdmFjdXVtX2luZGV4X2NsZWFudXA9YXV0byx2YWN1dW1fdHJ1bmNhdGU9dHJ1ZSxsb2df YXV0b3ZhY3V1bV9taW5fZHVyYXRpb249MTAwfQordG9hc3Rfb3B0aW9ucyB8IHt2YWN1dW1faW5k ZXhfY2xlYW51cD1hdXRvLHZhY3V1bV90cnVuY2F0ZT1mYWxzZSxsb2dfYXV0b3ZhY3V1bV9taW5f ZHVyYXRpb249MTAwfQorLVsgUkVDT1JEIDIgXS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KK3JlbG5hbWUgICAgICAgfCB0MgorcmVsb3B0aW9ucyAgICB8IHtwYXJhbGxlbF93 b3JrZXJzPTMsZmlsbGZhY3Rvcj0xMDAsdG9hc3RfdHVwbGVfdGFyZ2V0PTEyOCx2YWN1dW1faW5k ZXhfY2xlYW51cD1hdXRvLHZhY3V1bV90cnVuY2F0ZT10cnVlLGxvZ19hdXRvdmFjdXVtX21pbl9k dXJhdGlvbj0xMDB9Cit0b2FzdF9vcHRpb25zIHwge2F1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9s ZD0xMDEsYXV0b3ZhY3V1bV92YWN1dW1fc2NhbGVfZmFjdG9yPTAuMyx2YWN1dW1faW5kZXhfY2xl YW51cD1hdXRvLHZhY3V1bV90cnVuY2F0ZT1mYWxzZSxsb2dfYXV0b3ZhY3V1bV9taW5fZHVyYXRp b249MTAwfQorCitkcm9wIHRhYmxlIHQsIHQxLCB0MjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Ny ZWF0ZV90YWJsZV9saWtlLnNxbAppbmRleCA5MzM4OWI1N2RiZi4uNDdmNjdkMjQ0ZTIgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfdGFibGVfbGlrZS5zcWwKQEAgLTI4MCwzICsyODAs MzEgQEAgRFJPUCBUQUJMRSBjdGxfdGFibGU7CiBEUk9QIEZPUkVJR04gVEFCTEUgY3RsX2ZvcmVp Z25fdGFibGUxOwogRFJPUCBGT1JFSUdOIFRBQkxFIGN0bF9mb3JlaWduX3RhYmxlMjsKIERST1Ag Rk9SRUlHTiBEQVRBIFdSQVBQRVIgY3RsX2R1bW15IENBU0NBREU7CisKKy0tQ1JFQVRFIFRBQkxF IExJS0Ugd2l0aCBTVE9SQUdFIFBBUkFNRVRFUgorY3JlYXRlIHRhYmxlIHQoYSB0ZXh0KSB3aXRo ICgKKyAgICBmaWxsZmFjdG9yID0gMTAwLAorICAgIHRvYXN0X3R1cGxlX3RhcmdldCA9IDEyOCwK KyAgICB2YWN1dW1faW5kZXhfY2xlYW51cCA9IGF1dG8sCisgICAgdG9hc3QudmFjdXVtX2luZGV4 X2NsZWFudXAgPSBhdXRvLAorICAgIHZhY3V1bV90cnVuY2F0ZSA9IHRydWUsCisgICAgdG9hc3Qu dmFjdXVtX3RydW5jYXRlID0gZmFsc2UsCisgICAgbG9nX2F1dG92YWN1dW1fbWluX2R1cmF0aW9u ID0gMTAwLAorICAgIHRvYXN0LmxvZ19hdXRvdmFjdXVtX21pbl9kdXJhdGlvbiA9IDEwMCk7CisK K2NyZWF0ZSB0YWJsZSB0MShsaWtlIHQgaW5jbHVkaW5nIHN0b3JhZ2UgcGFyYW1ldGVyKSB3aXRo IChmaWxsZmFjdG9yID0gMTAwKTsgLS1lcnJvcgorY3JlYXRlIHRhYmxlIHQxKGxpa2UgdCBleGNs dWRpbmcgc3RvcmFnZSBwYXJhbWV0ZXIpIHdpdGggKGZpbGxmYWN0b3IgPSAxMDApOyAtLW9rCitc ZCsgdDEKKworY3JlYXRlIHRhYmxlIHQyKGxpa2UgdCBpbmNsdWRpbmcgc3RvcmFnZSBwYXJhbWV0 ZXIpIHdpdGggKAorICBwYXJhbGxlbF93b3JrZXJzID0gMywKKyAgdG9hc3QuYXV0b3ZhY3V1bV92 YWN1dW1fdGhyZXNob2xkID0gMTAxLAorICB0b2FzdC5hdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9m YWN0b3IgPSAwLjMpOworCitzZWxlY3QgICAgYy5yZWxuYW1lLCBjLnJlbG9wdGlvbnMsIHRjLnJl bG9wdGlvbnMgYXMgdG9hc3Rfb3B0aW9ucworZnJvbSAgICAgIHBnX2NhdGFsb2cucGdfY2xhc3Mg YworbGVmdCBqb2luIHBnX2NhdGFsb2cucGdfY2xhc3MgdGMgT04gKGMucmVsdG9hc3RyZWxpZCA9 IHRjLm9pZCkKK3doZXJlICAgICBjLnJlbG5hbWUgaW4gKCd0JywgJ3QyJykKK29yZGVyIGJ5ICBj LnJlbG5hbWUgXGd4CisKK2Ryb3AgdGFibGUgdCwgdDEsIHQyOwotLSAKMi4zNC4xCgo= --0000000000004d40b40640132ee2--