Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pVzm9-0006n8-FS for pgsql-hackers@arkaria.postgresql.org; Sat, 25 Feb 2023 19:00:05 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pVzm6-0004WS-Ki for pgsql-hackers@arkaria.postgresql.org; Sat, 25 Feb 2023 19:00:02 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pVzm6-0004W3-6D for pgsql-hackers@lists.postgresql.org; Sat, 25 Feb 2023 19:00:02 +0000 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pVzly-0001d0-DD for pgsql-hackers@lists.postgresql.org; Sat, 25 Feb 2023 19:00:01 +0000 Received: by mail-wr1-x430.google.com with SMTP id bt28so2360333wrb.8 for ; Sat, 25 Feb 2023 10:59:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=migops.com; s=google; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=o0rBOr/kNqVJDHmxriWum0zbqdWFOmX/jf7aK3ymmnM=; b=jc0Y8tv81gbnLIoI/TNwgOkMCrZVHAKvCS1gTGggr5hC63W06pLiyuDnlwFHR4wKgy 8mXClg0nA8wgZJiTjAktAONprgGCGhcDijCzZ+1stGPfCSqHkoEq3iMj0hBBiuec+8C5 OApttPEF5tWLIxWOijvcEbVxVu9JR+ax4koFH7Xn6dw9ZxJQN6KhH4hzmIFZR1tFYkFQ bbt0Uv59F/HWaO8s+b3kFieACWwW2vbSHRPim+50xeZoHKJ52wSzTdZ0lZ3o82hxArhp f8blPotnHDacoRsO6Ae56imAxAUrYj0/iMN2Nolp+JsaC1rAYT1nl4vcpFgf+UnxyXub ySew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=o0rBOr/kNqVJDHmxriWum0zbqdWFOmX/jf7aK3ymmnM=; b=6O7XWGceNd08dfBdN5QIvCNWGAYk4AfHnszH8h2VfX8VSVgnFieCaf9s89C0P9FG4T i6uknCgeWhn+mJLmZKYt118UmjZcFlzC7wAMP9C9yeQEwOBAYHKL346jn92e08kzgdEV BgXsUS/R2F0lmxfDBLxPk36PzJe5oLCeiUML7NSji0zvhRrOmHu4/vyHSbgvW9f8AhNM 45gcrhK77wO3IQDaWe2czFkpjG3SSiYWphgyc4FsY5clXyXBbzZa95SSFx/nRXKnhAWZ wi445uOOS5WofKFn+W2FCpr53EbE5lb9tS58VaYGoy32bLBmTA8rMiXtXilkv969YpEg EuPw== X-Gm-Message-State: AO0yUKWFOeZ96kkJceU+aCOFSErMrXazH3Xf4wlGDTAztUvaboAxoGnf gcS+ITmJNxxo4IwcUJnfOTdETpaFOpdrfEEm X-Google-Smtp-Source: AK7set9bHHxilbKEev11yaVW7yl4qUuiP0U0N/Ad7SlWd5okbzsoh2bg8lvw3nSIqxctEK8HzCv/kA== X-Received: by 2002:a5d:6746:0:b0:2ca:428f:76d0 with SMTP id l6-20020a5d6746000000b002ca428f76d0mr493100wrw.13.1677351592100; Sat, 25 Feb 2023 10:59:52 -0800 (PST) Received: from [192.168.43.16] ([196.168.195.209]) by smtp.gmail.com with ESMTPSA id m7-20020adfe947000000b002c70f5627d5sm2414599wrn.63.2023.02.25.10.59.50 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 25 Feb 2023 10:59:51 -0800 (PST) Content-Type: multipart/mixed; boundary="------------XYq00vPZyjPLJNqHPvrac1ZF" Message-ID: <04a4dcee-bd2c-8cc1-0f6f-704d2083f179@migops.com> Date: Sat, 25 Feb 2023 18:59:47 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: [Proposal] Allow pg_dump to include all child tables with the root table Content-Language: en-US To: pgsql-hackers@lists.postgresql.org References: <5aa393b5-5f67-8447-b83e-544516990ee2@migops.com> <167727895770.12579.12160318039902297475.pgcf@coridan.postgresql.org> From: Gilles Darold In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------XYq00vPZyjPLJNqHPvrac1ZF Content-Type: multipart/alternative; boundary="------------0gw96JuqiyZCmmL0tE0LWmf8" --------------0gw96JuqiyZCmmL0tE0LWmf8 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Le 25/02/2023 à 16:40, Stéphane Tachoires a écrit : > Hi, > > I'm not sure about the "child" -> "partition" change as it also > selects childs that are not partitions. > I'm more dubious about the --with-childs option, I'd rather have > --table-with-childs= and > --exclude-table-with-childs=. That will be clearer about what > is what. > > I'm working on that, but have a hard time with > test pg_dump/002_pg_dump (It's brand new to me) > > Stéphane > > Le ven. 24 févr. 2023 à 23:50, Cary Huang a écrit : > > The following review has been posted through the commitfest > application: > make installcheck-world:  tested, passed > Implements feature:       tested, passed > Spec compliant:           not tested > Documentation:            not tested > > Hi > > the patch applies fine on current master branch and it works as > described. However, I would suggest changing the new option name > from "--with-childs" to "--with-partitions" for several reasons. > > "childs" is grammatically incorrect and in the PG community, the > term "partitioned table" is normally used to denote a parent > table, and the term "partition" is used to denote the child table > under the parent table. We should use these terms to stay > consistent with the community. > > Also, I would rephrase the documentation as: > > Used in conjunction with > / or > / options to > include or exclude partitions of the specified tables if any. > > thank you > > Cary Huang > ================ > HighGo Software Canada > www.highgo.ca > Hi, This is right this patch also works with inherited tables so --with-partitions can be confusing this is why --with-childs was chosen. But I disagree the use of --table-with-childs and --exclude-table-with-childs because we already have the --table and --exclude-table, and it will add lot of code where we just need a switch to include children tables. Actually my first though was that this behavior (dump child tables when the root table is dumped using --table) should be the default in pg_dump but the problem is that it could break existing scripts using pg_dump so I prefer to implement the --with-childs options. I think we can use --with-partitions, provided that it is clear in the documentation that this option also works with inheritance. Attached is a new patch v2 using the --with-partitions and the documentation fix. -- Gilles Darold --------------0gw96JuqiyZCmmL0tE0LWmf8 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit
Le 25/02/2023 à 16:40, Stéphane Tachoires a écrit :
Hi,

I'm not sure about the "child" -> "partition" change as it also selects childs that are not partitions.
I'm more dubious about the --with-childs option, I'd rather have --table-with-childs=<PATTERN> and --exclude-table-with-childs=<PATTERN>. That will be clearer about what is what.

I'm working on that, but have a hard time with test pg_dump/002_pg_dump (It's brand new to me)

Stéphane

Le ven. 24 févr. 2023 à 23:50, Cary Huang <cary.huang@highgo.ca> a écrit :
The following review has been posted through the commitfest application:
make installcheck-world:  tested, passed
Implements feature:       tested, passed
Spec compliant:           not tested
Documentation:            not tested

Hi

the patch applies fine on current master branch and it works as described. However, I would suggest changing the new option name from "--with-childs" to "--with-partitions" for several reasons.

"childs" is grammatically incorrect and in the PG community, the term "partitioned table" is normally used to denote a parent table, and the term "partition" is used to denote the child table under the parent table. We should use these terms to stay consistent with the community.

Also, I would rephrase the documentation as:

Used in conjunction with <option>-t</option>/<option>--table</option> or <option>-T</option>/<option>--exclude-table</option> options to include or exclude partitions of the specified tables if any.

thank you

Cary Huang
================
HighGo Software Canada
www.highgo.ca


Hi,


This is right this patch also works with inherited tables so --with-partitions can be confusing this is why --with-childs was chosen. But I disagree the use of --table-with-childs and --exclude-table-with-childs because we already have the --table and --exclude-table, and it will add lot of code where we just need a switch to include children tables. Actually my first though was that this behavior (dump child tables when the root table is dumped using --table) should be the default in pg_dump but the problem is that it could break existing scripts using pg_dump so I prefer to implement the --with-childs options.


I think we can use --with-partitions, provided that it is clear in the documentation that this option also works with inheritance.


Attached is a new patch v2 using the --with-partitions and the documentation fix.


-- 
Gilles Darold
--------------0gw96JuqiyZCmmL0tE0LWmf8-- --------------XYq00vPZyjPLJNqHPvrac1ZF Content-Type: text/x-patch; charset=UTF-8; name="0001-dump-with-child-v2.patch" Content-Disposition: attachment; filename="0001-dump-with-child-v2.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfZHVtcC5zZ21sIGIvZG9jL3NyYy9z Z21sL3JlZi9wZ19kdW1wLnNnbWwKaW5kZXggNDlkMjE4OTA1Zi4uMTVhZGE1YzhlZSAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1wLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL3JlZi9wZ19kdW1wLnNnbWwKQEAgLTExNzMsNiArMTE3MywxOCBAQCBQb3N0Z3JlU1FM IGRvY3VtZW50YXRpb24KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5 PgogCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48b3B0aW9uPi0td2l0aC1w YXJ0aXRpb25zPC9vcHRpb24+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxw YXJhPgorCVVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCA8b3B0aW9uPi10PC9vcHRpb24+Lzxv cHRpb24+LS10YWJsZTwvb3B0aW9uPgorCW9yIDxvcHRpb24+LVQ8L29wdGlvbj4vPG9wdGlv bj4tLWV4Y2x1ZGUtdGFibGU8L29wdGlvbj4gb3B0aW9ucyB0bworCWluY2x1ZGUgb3IgZXhj bHVkZSBwYXJ0aXRpb25zIG9mIHRoZSBzcGVjaWZpZWQgdGFibGVzIGlmIGFueS4KKwlUaGlz IG9wdGlvbiBpcyBhbHNvIHZhbGlkIGZvciB0YWJsZXMgdXNpbmcgaW5oZXJpdGFuY2UuCisg ICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+ CisKICAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAgICA8dGVybT48b3B0aW9uPi0/PC9vcHRp b24+PC90ZXJtPgogICAgICAgIDx0ZXJtPjxvcHRpb24+LS1oZWxwPC9vcHRpb24+PC90ZXJt PgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oIGIvc3JjL2Jpbi9w Z19kdW1wL3BnX2JhY2t1cC5oCmluZGV4IGFiYTc4MGVmNGIuLjJlN2U5MTkzOTEgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaAorKysgYi9zcmMvYmluL3BnX2R1 bXAvcGdfYmFja3VwLmgKQEAgLTIwMCw2ICsyMDAsNyBAQCB0eXBlZGVmIHN0cnVjdCBfZHVt cE9wdGlvbnMKIAogCWludAkJCXNlcXVlbmNlX2RhdGE7CS8qIGR1bXAgc2VxdWVuY2UgZGF0 YSBldmVuIGluIHNjaGVtYS1vbmx5IG1vZGUgKi8KIAlpbnQJCQlkb19ub3RoaW5nOworCWJv b2wJCQl3aXRoX3BhcnRpdGlvbnM7CiB9IER1bXBPcHRpb25zOwogCiAvKgpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmMKaW5kZXggMjRiYTkzNjMzMi4uMmI3YTEyMmQ3ZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC00 MjEsNiArNDIxLDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCXsib24tY29u ZmxpY3QtZG8tbm90aGluZyIsIG5vX2FyZ3VtZW50LCAmZG9wdC5kb19ub3RoaW5nLCAxfSwK IAkJeyJyb3dzLXBlci1pbnNlcnQiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgMTB9LAog CQl7ImluY2x1ZGUtZm9yZWlnbi1kYXRhIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIDEx fSwKKwkJeyJ3aXRoLXBhcnRpdGlvbnMiLCBub19hcmd1bWVudCwgTlVMTCwgMTJ9LAogCiAJ CXtOVUxMLCAwLCBOVUxMLCAwfQogCX07CkBAIC02MzEsNiArNjMyLDEwIEBAIG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJCQkJCQkJCSAgb3B0YXJnKTsKIAkJCQlicmVhazsK IAorCQkJY2FzZSAxMjoJCQkJLyogZHVtcCBjaGlsZCB0YWJsZSB0b28gKi8KKwkJCQlkb3B0 LndpdGhfcGFydGl0aW9ucyA9IHRydWU7CisJCQkJYnJlYWs7CisKIAkJCWRlZmF1bHQ6CiAJ CQkJLyogZ2V0b3B0X2xvbmcgYWxyZWFkeSBlbWl0dGVkIGEgY29tcGxhaW50ICovCiAJCQkJ cGdfbG9nX2Vycm9yX2hpbnQoIlRyeSBcIiVzIC0taGVscFwiIGZvciBtb3JlIGluZm9ybWF0 aW9uLiIsIHByb2duYW1lKTsKQEAgLTgwOSw2ICs4MTQsMTQgQEAgbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCiAJCQkJCQkJCWZhbHNlKTsKIAkvKiBub24tbWF0Y2hpbmcgZXhjbHVz aW9uIHBhdHRlcm5zIGFyZW4ndCBhbiBlcnJvciAqLwogCisJLyoKKwkgKiBUaGUgaW5jbHVk ZSBjaGlsZCBvcHRpb24gcmVxdWlyZSB0aGF0IHRoZXJlIGlzCisJICogYXQgbGVhc3Qgb25l IHRhYmxlIGluY2x1c2lvbgorCSAqLworCWlmIChkb3B0LndpdGhfcGFydGl0aW9ucyAmJiB0 YWJsZV9pbmNsdWRlX3BhdHRlcm5zLmhlYWQgPT0gTlVMTAorCQkJJiYgdGFibGVfZXhjbHVk ZV9wYXR0ZXJucy5oZWFkID09IE5VTEwpCisJCXBnX2ZhdGFsKCJvcHRpb24gLS13aXRoLXBh cnRpdGlvbnMgcmVxdWlyZXMgb3B0aW9uIC10Ly0tdGFibGUgb3IgLVQvLS1leGNsdWRlLXRh YmxlIik7CisKIAkvKiBFeHBhbmQgdGFibGUgc2VsZWN0aW9uIHBhdHRlcm5zIGludG8gT0lE IGxpc3RzICovCiAJaWYgKHRhYmxlX2luY2x1ZGVfcGF0dGVybnMuaGVhZCAhPSBOVUxMKQog CXsKQEAgLTEwODcsNiArMTEwMCw5IEBAIGhlbHAoY29uc3QgY2hhciAqcHJvZ25hbWUpCiAJ cHJpbnRmKF8oIiAgLS11c2Utc2V0LXNlc3Npb24tYXV0aG9yaXphdGlvblxuIgogCQkJICIg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlIFNFVCBTRVNTSU9OIEFVVEhPUkla QVRJT04gY29tbWFuZHMgaW5zdGVhZCBvZlxuIgogCQkJICIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQUxURVIgT1dORVIgY29tbWFuZHMgdG8gc2V0IG93bmVyc2hpcFxuIikp OworCXByaW50ZihfKCIgIC0td2l0aC1wYXJ0aXRvbnMgICAgICAgICAgICAgICAgaW5jbHVk ZSBvciBleGNsdWRlIGZyb20gYSBkdW1wIGFsbCBjaGlsZCBhbmQgcGFydGl0aW9uXG4iCisJ CQkgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZXMgd2hlbiBhIHBhcmVu dCB0YWJsZSBpcyBzcGVjaWZpZWQgdXNpbmdcbiIKKwkJCSAiICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC10Ly0tdGFibGUgb3IgLVQvLS1leGNsdWRlLXRhYmxlXG4iKSk7CiAK IAlwcmludGYoXygiXG5Db25uZWN0aW9uIG9wdGlvbnM6XG4iKSk7CiAJcHJpbnRmKF8oIiAg LWQsIC0tZGJuYW1lPURCTkFNRSAgICAgIGRhdGFiYXNlIHRvIGR1bXBcbiIpKTsKQEAgLTE1 MTksNiArMTUzNSwxNSBAQCBleHBhbmRfdGFibGVfbmFtZV9wYXR0ZXJucyhBcmNoaXZlICpm b3V0LAogCQlQUUV4cEJ1ZmZlckRhdGEgZGJidWY7CiAJCWludAkJCWRvdGNudDsKIAorCQkv KgorCQkgKiBXaXRoIC0taW5jbHVkZV9jaGlsZCB3ZSBsb29rIHJlY3Vyc2l2ZWx5IHRvIHRo ZSBpbmhlcml0YW5jZQorCQkgKiB0cmVlIHRvIGZpbmQgdGhlIHBhcnRpdGlvbnMgdGFibGVz IG9mIHRoZSBtYXRjaGluZyBpbmNsdWRlIGZpbHRlcgorCQkgKi8KKwkJaWYgKGZvdXQtPmRv cHQtPndpdGhfcGFydGl0aW9ucykKKwkJeworCQkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnks ICJXSVRIIFJFQ1VSU0lWRSBwYXJ0aXRpb25fdHJlZSAocmVsaWQpIEFTIChcbiIpOworCQl9 CisKIAkJLyoKIAkJICogUXVlcnkgbXVzdCByZW1haW4gQUJTT0xVVEVMWSBkZXZvaWQgb2Yg dW5xdWFsaWZpZWQgbmFtZXMuICBUaGlzCiAJCSAqIHdvdWxkIGJlIHVubmVjZXNzYXJ5IGdp dmVuIGEgcGdfdGFibGVfaXNfdmlzaWJsZSgpIHZhcmlhbnQgdGFraW5nIGEKQEAgLTE1NDYs NiArMTU3MSwyMCBAQCBleHBhbmRfdGFibGVfbmFtZV9wYXR0ZXJucyhBcmNoaXZlICpmb3V0 LAogCQkJcHJvaGliaXRfY3Jvc3NkYl9yZWZzKEdldENvbm5lY3Rpb24oZm91dCksIGRiYnVm LmRhdGEsIGNlbGwtPnZhbCk7CiAJCXRlcm1QUUV4cEJ1ZmZlcigmZGJidWYpOwogCisJCWlm IChmb3V0LT5kb3B0LT53aXRoX3BhcnRpdGlvbnMpCisJCXsKKwkJCWFwcGVuZFBRRXhwQnVm ZmVyKHF1ZXJ5LCAiXG4gIFVOSU9OIEFMTCIKKwkJCQkJCSAiXG4gICAgU0VMRUNUIGMub2lk IEFTIHJlbGlkIgorCQkJCQkJICJcbiAgICBGUk9NIHBhcnRpdGlvbl90cmVlIEFTIHAiCisJ CQkJCQkgIlxuICAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX2luaGVyaXRzIEFTIGkiCisJCQkJ CQkgIlxuICAgICAgICBPTiAocC5yZWxpZCBPUEVSQVRPUihwZ19jYXRhbG9nLj0pIGkuaW5o cGFyZW50KSIKKwkJCQkJCSAiXG4gICAgICBKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgQVMg YyIKKwkJCQkJCSAiXG4gICAgICAgIE9OIChjLm9pZCBPUEVSQVRPUihwZ19jYXRhbG9nLj0p IGkuaW5ocmVsaWQpIgorCQkJCQkJICJcbikiCisJCQkJCQkgIlxuU0VMRUNUIHJlbGlkIEZS T00gcGFydGl0aW9uX3RyZWUiKTsKKworCQl9CisKIAkJRXhlY3V0ZVNxbFN0YXRlbWVudChm b3V0LCAiUkVTRVQgc2VhcmNoX3BhdGgiKTsKIAkJcmVzID0gRXhlY3V0ZVNxbFF1ZXJ5KGZv dXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOwogCQlQUWNsZWFyKEV4ZWN1dGVT cWxRdWVyeUZvclNpbmdsZVJvdyhmb3V0LApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApp bmRleCA3MmIxOWVlNmNkLi5jNzQ0ZGRiYmQyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1 bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVt cC5wbApAQCAtMzkzLDYgKzM5MywxNyBAQCBteSAlcGdkdW1wX3J1bnMgPSAoCiAJCQknLS1l eGNsdWRlLXRhYmxlPWR1bXBfdGVzdC50ZXN0X3RhYmxlJywgJ3Bvc3RncmVzJywKIAkJXSwK IAl9LAorCWV4Y2x1ZGVfY2hpbGRfdGFibGUgPT4geworCQlkdW1wX2NtZCA9PiBbCisJCQkn cGdfZHVtcCcsCisJCQknLS1uby1zeW5jJywKKwkJCSctLXdpdGgtcGFydGl0aW9ucycsCisJ CQkiLS1maWxlPSR0ZW1wZGlyL2V4Y2x1ZGVfY2hpbGRfdGFibGUuc3FsIiwKKwkJCSctLWV4 Y2x1ZGUtdGFibGU9ZHVtcF90ZXN0Lm1lYXN1cmVtZW50JywKKwkJCSdwb3N0Z3JlcycsCisJ CV0sCisJfSwKKwogCWV4Y2x1ZGVfdGVzdF90YWJsZV9kYXRhID0+IHsKIAkJZHVtcF9jbWQg PT4gWwogCQkJJ3BnX2R1bXAnLApAQCAtNDg3LDYgKzQ5OCwxOCBAQCBteSAlcGdkdW1wX3J1 bnMgPSAoCiAJCQkncG9zdGdyZXMnLAogCQldLAogCX0sCisJaW5jbHVkZV9jaGlsZF90YWJs ZSA9PiB7CisJCWR1bXBfY21kID0+IFsKKwkJCSdwZ19kdW1wJywKKwkJCSctLW5vLXN5bmMn LAorCQkJJy0td2l0aC1wYXJ0aXRpb25zJywKKwkJCSItLWZpbGU9JHRlbXBkaXIvaW5jbHVk ZV9jaGlsZF90YWJsZS5zcWwiLAorCQkJJy0tdGFibGU9ZHVtcF90ZXN0Lm1lYXN1cmVtZW50 JywKKwkJCSctLWxvY2std2FpdC10aW1lb3V0PScKKwkJCSAgLiAoMTAwMCAqICRQb3N0Z3Jl U1FMOjpUZXN0OjpVdGlsczo6dGltZW91dF9kZWZhdWx0KSwKKwkJCSdwb3N0Z3JlcycsCisJ CV0sCisJfSwKIAlyb2xlID0+IHsKIAkJZHVtcF9jbWQgPT4gWwogCQkJJ3BnX2R1bXAnLApA QCAtNjE1LDYgKzYzOCw3IEBAIG15ICVmdWxsX3J1bnMgPSAoCiAJY29tcHJlc3Npb24gICAg ICAgICAgICAgID0+IDEsCiAJY3JlYXRlZGIgICAgICAgICAgICAgICAgID0+IDEsCiAJZGVm YXVsdHMgICAgICAgICAgICAgICAgID0+IDEsCisJZXhjbHVkZV9jaGlsZF90YWJsZSAgICAg ID0+IDEsCiAJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCiAJZXhjbHVkZV90ZXN0 X3RhYmxlICAgICAgID0+IDEsCiAJZXhjbHVkZV90ZXN0X3RhYmxlX2RhdGEgID0+IDEsCkBA IC0xMDEwLDYgKzEwMzQsMTAgQEAgbXkgJXRlc3RzID0gKAogCQkJcm9sZSAgICAgICAgICAg ICA9PiAxLAogCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAogCQkJYmluYXJ5X3VwZ3JhZGUg ICA9PiAxLAorCQkJaW5jbHVkZV9jaGlsZF90YWJsZSA9PiAxLAorCQl9LAorCQl1bmxpa2Ug PT4geworCQkJZXhjbHVkZV9jaGlsZF90YWJsZSA9PiAxLAogCQl9LAogCSAgfSwKIApAQCAt MTA5OSwxMSArMTEyNywxNiBAQCBteSAldGVzdHMgPSAoCiAKIAknQUxURVIgVEFCTEUgbWVh c3VyZW1lbnQgT1dORVIgVE8nID0+IHsKIAkJcmVnZXhwID0+IHFyL15cUUFMVEVSIFRBQkxF IGR1bXBfdGVzdC5tZWFzdXJlbWVudCBPV05FUiBUTyBcRS4rOy9tLAotCQlsaWtlID0+Ci0J CSAgeyAlZnVsbF9ydW5zLCAlZHVtcF90ZXN0X3NjaGVtYV9ydW5zLCBzZWN0aW9uX3ByZV9k YXRhID0+IDEsIH0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rl c3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCQlpbmNsdWRl X2NoaWxkX3RhYmxlID0+IDEsCisJCX0sCiAJCXVubGlrZSA9PiB7CiAJCQlleGNsdWRlX2R1 bXBfdGVzdF9zY2hlbWEgPT4gMSwKIAkJCW5vX293bmVyICAgICAgICAgICAgICAgICA9PiAx LAorCQkJZXhjbHVkZV9jaGlsZF90YWJsZSAgICAgID0+IDEsCiAJCX0sCiAJfSwKIApAQCAt MTExNCw4ICsxMTQ3LDEyIEBAIG15ICV0ZXN0cyA9ICgKIAkJCSVmdWxsX3J1bnMsCiAJCQly b2xlICAgICAgICAgICAgID0+IDEsCiAJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCQlp bmNsdWRlX2NoaWxkX3RhYmxlID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlub19v d25lciA9PiAxLAorCQkJZXhjbHVkZV9jaGlsZF90YWJsZSA9PiAxLAogCQl9LAotCQl1bmxp a2UgPT4geyBub19vd25lciA9PiAxLCB9LAogCX0sCiAKIAknQUxURVIgRk9SRUlHTiBUQUJM RSBmb3JlaWduX3RhYmxlIE9XTkVSIFRPJyA9PiB7CkBAIC0yODY3LDExICsyOTA0LDE2IEBA IG15ICV0ZXN0cyA9ICgKIAkJCVwpXG4KIAkJCVxRUEFSVElUSU9OIEJZIFJBTkdFIChsb2dk YXRlKTtcRVxuCiAJCQkveG0sCi0JCWxpa2UgPT4KLQkJICB7ICVmdWxsX3J1bnMsICVkdW1w X3Rlc3Rfc2NoZW1hX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKKwkJbGlrZSA9 PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNl Y3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJCWluY2x1ZGVfY2hpbGRfdGFibGUgPT4gMSwKKwkJ fSwKIAkJdW5saWtlID0+IHsKIAkJCWJpbmFyeV91cGdyYWRlICAgICAgICAgICA9PiAxLAog CQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlleGNsdWRlX2NoaWxkX3Rh YmxlICAgICAgPT4gMSwKIAkJfSwKIAl9LAogCkBAIC0yODk4LDYgKzI5NDAsMTAgQEAgbXkg JXRlc3RzID0gKAogCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAogCQkJcm9sZSAgICAgICAg ICAgICA9PiAxLAogCQkJYmluYXJ5X3VwZ3JhZGUgICA9PiAxLAorCQkJaW5jbHVkZV9jaGls ZF90YWJsZSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9jaGlsZF90 YWJsZSA9PiAxLAogCQl9LAogCX0sCiAKQEAgLTI5MTIsMTAgKzI5NTgsMTQgQEAgbXkgJXRl c3RzID0gKAogCQkJXFFFWEVDVVRFIEZVTkNUSU9OIGR1bXBfdGVzdC50cmlnZ2VyX2Z1bmMo KTtcRQogCQkJL3htLAogCQlsaWtlID0+IHsKLQkJCSVmdWxsX3J1bnMsICVkdW1wX3Rlc3Rf c2NoZW1hX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsCisJCQklZnVsbF9ydW5zLAor CQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcG9zdF9kYXRhID0+IDEs CisJCQlpbmNsdWRlX2NoaWxkX3RhYmxlID0+IDEsCiAJCX0sCiAJCXVubGlrZSA9PiB7CiAJ CQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCWV4Y2x1ZGVfY2hpbGRfdGFi bGUgPT4gMSwKIAkJfSwKIAl9LAogCkBAIC0yOTQzLDYgKzI5OTMsMTAgQEAgbXkgJXRlc3Rz ID0gKAogCQkJc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwKIAkJCXJvbGUgICAgICAgICAgICAg ID0+IDEsCiAJCQliaW5hcnlfdXBncmFkZSAgICA9PiAxLAorCQkJaW5jbHVkZV9jaGlsZF90 YWJsZSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9jaGlsZF90YWJs ZSA9PiAxLAogCQl9LAogCX0sCiAKQEAgLTI5NTUsNiArMzAwOSwxMCBAQCBteSAldGVzdHMg PSAoCiAJCQlzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLAogCQkJcm9sZSAgICAgICAgICAgICAg PT4gMSwKIAkJCWJpbmFyeV91cGdyYWRlICAgID0+IDEsCisJCQlpbmNsdWRlX2NoaWxkX3Rh YmxlID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2NoaWxkX3RhYmxl ID0+IDEsCiAJCX0sCiAJfSwKIApAQCAtMjk2Nyw2ICszMDI1LDEwIEBAIG15ICV0ZXN0cyA9 ICgKIAkJCXNlY3Rpb25fcG9zdF9kYXRhID0+IDEsCiAJCQlyb2xlICAgICAgICAgICAgICA9 PiAxLAogCQkJYmluYXJ5X3VwZ3JhZGUgICAgPT4gMSwKKwkJCWluY2x1ZGVfY2hpbGRfdGFi bGUgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfY2hpbGRfdGFibGUg PT4gMSwKIAkJfSwKIAl9LAogCkBAIC0zMzI0LDYgKzMzODYsNyBAQCBteSAldGVzdHMgPSAo CiAJCQlzY2hlbWFfb25seSAgICAgICAgICAgICA9PiAxLAogCQkJc2VjdGlvbl9wb3N0X2Rh dGEgICAgICAgPT4gMSwKIAkJCXRlc3Rfc2NoZW1hX3BsdXNfbGFyZ2Vfb2JqZWN0cyA9PiAx LAorCQkJaW5jbHVkZV9jaGlsZF90YWJsZSA9PiAxLAogCQl9LAogCQl1bmxpa2UgPT4gewog CQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCkBAIC0zMzMyLDYgKzMzOTUsNyBA QCBteSAldGVzdHMgPSAoCiAJCQlwZ19kdW1wYWxsX2dsb2JhbHNfY2xlYW4gPT4gMSwKIAkJ CXJvbGUgICAgICAgICAgICAgICAgICAgICA9PiAxLAogCQkJc2VjdGlvbl9wcmVfZGF0YSAg ICAgICAgID0+IDEsCisJCQlleGNsdWRlX2NoaWxkX3RhYmxlICAgICAgPT4gMSwKIAkJfSwK IAl9LAogCkBAIC0zMzQ1LDkgKzM0MDksMTYgQEAgbXkgJXRlc3RzID0gKAogCQkJXFFBTFRF UiBUQUJMRSBPTkxZIGR1bXBfdGVzdC5tZWFzdXJlbWVudFxFIFxuXlxzKwogCQkJXFFBREQg Q09OU1RSQUlOVCBtZWFzdXJlbWVudF9wa2V5IFBSSU1BUlkgS0VZIChjaXR5X2lkLCBsb2dk YXRlKTtcRQogCQkveG0sCi0JCWxpa2UgPT4KLQkJICB7ICVmdWxsX3J1bnMsICVkdW1wX3Rl c3Rfc2NoZW1hX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCi0JCXVubGlrZSA9 PiB7IGV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLCB9LAorCQlsaWtlID0+IHsKKwkJ CSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9w b3N0X2RhdGEgPT4gMSwKKwkJCWluY2x1ZGVfY2hpbGRfdGFibGUgPT4gMSwKKwkJfSwKKwkJ dW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJZXhj bHVkZV9jaGlsZF90YWJsZSA9PiAxLAorCQl9LAogCX0sCiAKIAknQ1JFQVRFIElOREVYIC4u LiBPTiBtZWFzdXJlbWVudF95MjAwNl9tMicgPT4gewpAQCAtMzM1OCw2ICszNDI5LDEwIEBA IG15ICV0ZXN0cyA9ICgKIAkJCSVmdWxsX3J1bnMsCiAJCQlyb2xlICAgICAgICAgICAgICA9 PiAxLAogCQkJc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwKKwkJCWluY2x1ZGVfY2hpbGRfdGFi bGUgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfY2hpbGRfdGFibGUg PT4gMSwKIAkJfSwKIAl9LAogCkBAIC0zMzY5LDYgKzM0NDQsMTAgQEAgbXkgJXRlc3RzID0g KAogCQkJJWZ1bGxfcnVucywKIAkJCXJvbGUgICAgICAgICAgICAgID0+IDEsCiAJCQlzZWN0 aW9uX3Bvc3RfZGF0YSA9PiAxLAorCQkJaW5jbHVkZV9jaGlsZF90YWJsZSA9PiAxLAorCQl9 LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9jaGlsZF90YWJsZSA9PiAxLAogCQl9LAog CX0sCiAKQEAgLTMzOTgsNiArMzQ3Nyw3IEBAIG15ICV0ZXN0cyA9ICgKIAkJCXJvbGUgICAg ICAgICAgICAgICAgICAgICA9PiAxLAogCQkJc2NoZW1hX29ubHkgICAgICAgICAgICAgID0+ IDEsCiAJCQlzZWN0aW9uX3Bvc3RfZGF0YSAgICAgICAgPT4gMSwKKwkJCWluY2x1ZGVfY2hp bGRfdGFibGUgICAgICA9PiAxLAogCQl9LAogCQl1bmxpa2UgPT4gewogCQkJb25seV9kdW1w X3Rlc3Rfc2NoZW1hICAgID0+IDEsCkBAIC0zNDA2LDYgKzM0ODYsNyBAQCBteSAldGVzdHMg PSAoCiAJCQlwZ19kdW1wYWxsX2dsb2JhbHNfY2xlYW4gPT4gMSwKIAkJCXNlY3Rpb25fcHJl X2RhdGEgICAgICAgICA9PiAxLAogCQkJdGVzdF9zY2hlbWFfcGx1c19sYXJnZV9vYmplY3Rz ID0+IDEsCisJCQlleGNsdWRlX2NoaWxkX3RhYmxlICAgICAgPT4gMSwKIAkJfSwKIAl9LAog CkBAIC0zNjg4LDExICszNzY5LDE2IEBAIG15ICV0ZXN0cyA9ICgKIAkJCQkJCSAgIFRPIHJl Z3Jlc3NfZHVtcF90ZXN0X3JvbGU7JywKIAkJcmVnZXhwID0+CiAJCSAgcXIvXlxRR1JBTlQg U0VMRUNUIE9OIFRBQkxFIGR1bXBfdGVzdC5tZWFzdXJlbWVudCBUTyByZWdyZXNzX2R1bXBf dGVzdF9yb2xlO1xFL20sCi0JCWxpa2UgPT4KLQkJICB7ICVmdWxsX3J1bnMsICVkdW1wX3Rl c3Rfc2NoZW1hX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKKwkJbGlrZSA9PiB7 CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rp b25fcHJlX2RhdGEgPT4gMSwKKwkJCWluY2x1ZGVfY2hpbGRfdGFibGUgPT4gMSwKKwkJfSwK IAkJdW5saWtlID0+IHsKIAkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAogCQkJ bm9fcHJpdnMgICAgICAgICAgICAgICAgID0+IDEsCisJCQlleGNsdWRlX2NoaWxkX3RhYmxl ICAgICAgPT4gMSwKIAkJfSwKIAl9LAogCkBAIC0zNzEwLDggKzM3OTYsMTIgQEAgbXkgJXRl c3RzID0gKAogCQkJJWZ1bGxfcnVucywKIAkJCXJvbGUgICAgICAgICAgICAgPT4gMSwKIAkJ CXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJCWluY2x1ZGVfY2hpbGRfdGFibGUgPT4gMSwK KwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCW5vX3ByaXZzID0+IDEsCisJCQlleGNsdWRlX2No aWxkX3RhYmxlID0+IDEsCiAJCX0sCi0JCXVubGlrZSA9PiB7IG5vX3ByaXZzID0+IDEsIH0s CiAJfSwKIAogCSdHUkFOVCBBTEwgT04gTEFSR0UgT0JKRUNUIC4uLicgPT4gewpAQCAtMzk1 OCw2ICs0MDQ4LDcgQEAgbXkgJXRlc3RzID0gKAogCQkJb25seV9kdW1wX3Rlc3RfdGFibGUg PT4gMSwKIAkJCXJvbGUgICAgICAgICAgICAgICAgID0+IDEsCiAJCQlzZWN0aW9uX3ByZV9k YXRhICAgICA9PiAxLAorCQkJaW5jbHVkZV9jaGlsZF90YWJsZSAgPT4gMSwKIAkJfSwKIAkJ dW5saWtlID0+IHsgbm9fcHJpdnMgPT4gMSwgfSwKIAl9LApAQCAtNDE4MCw2ICs0MjcxLDEz IEBAICRub2RlLT5jb21tYW5kX2ZhaWxzX2xpa2UoCiAJcXIvcGdfZHVtcGFsbDogZXJyb3I6 IGltcHJvcGVyIHF1YWxpZmllZCBuYW1lIFwodG9vIG1hbnkgZG90dGVkIG5hbWVzXCk6IG15 aG9zdFwubXlkYi8sCiAJJ3BnX2R1bXBhbGw6IG9wdGlvbiAtLWV4Y2x1ZGUtZGF0YWJhc2Ug cmVqZWN0cyBtdWx0aXBhcnQgZGF0YWJhc2UgbmFtZXMnKTsKIAorIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVzdCBpbnZhbGlkIHVzZSBvZiAtLXdp dGgtcGFydGl0aW9ucworJG5vZGUtPmNvbW1hbmRfZmFpbHNfbGlrZSgKKwlbICdwZ19kdW1w JywgJy1wJywgIiRwb3J0IiwgJy0td2l0aC1wYXJ0aXRpb25zJyBdLAorCXFyL3BnX2R1bXA6 IGVycm9yOiBvcHRpb24gLS13aXRoLXBhcnRpdGlvbnMgcmVxdWlyZXMgb3B0aW9uIC10XC8t LXRhYmxlIG9yIC1UXC8tLWV4Y2x1ZGUtdGFibGUvLAorCSdwZ19kdW1wOiBvcHRpb24gLS13 aXRoLXBhcnRpdGlvbnMgcmVxdWlyZSBpbmNsdXNpb24gb3IgZXhjbHVzaW9uIG9mIHRhYmxl cycpOworCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBU ZXN0IHZhbGlkIGRhdGFiYXNlIGV4Y2x1c2lvbiBwYXR0ZXJucwogCg== --------------XYq00vPZyjPLJNqHPvrac1ZF--