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 1jLk6f-0005vn-1v for pgsql-hackers@arkaria.postgresql.org; Tue, 07 Apr 2020 09:01:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jLk6d-0006rO-VI for pgsql-hackers@arkaria.postgresql.org; Tue, 07 Apr 2020 09:01:15 +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 1jLk6c-0006rH-NQ for pgsql-hackers@lists.postgresql.org; Tue, 07 Apr 2020 09:01:15 +0000 Received: from wout4-smtp.messagingengine.com ([64.147.123.20]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jLk6X-0003Fo-Sy for pgsql-hackers@postgresql.org; Tue, 07 Apr 2020 09:01:14 +0000 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.west.internal (Postfix) with ESMTP id 159E8712; Tue, 7 Apr 2020 05:01:06 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Tue, 07 Apr 2020 05:01:06 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=KfhdNO /DdhrSP6GeUknVdlG9rsLps3amwnLW7MJ3GxM=; b=eeUCMpO3/KDKIxivegsGyi 8jgiw1sZp1Sd+CMqww/BDqUBskrp3OQJ0porN5gO5b5XPPhCEoI/pRtqpUZxPvqQ 9bb5XXaFy5YUi+gAQ8ZYT1nyR6TYjBBpCmggFooir5gZ5AeeRrOXAufRNerRDpqJ kAbm0aEBa0CEGoHrIf1bWYQAP6NXiQcpK6W1JjevyydQ6CTkflPZyaoHgOtW5lyG WHNJApq1Lr+pFGuMMxrLRb4qS8jGCYEMNpkJyA2TCu/9J7i2boD/U2pYoBWGa56n PvuHxqu0A38A++mE/vTP2SMMJJRZ1YCmXeAybgPbU/ojX3hZ17iPgneeMLHJSvww == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduhedrudehgddutdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefuvfhfhfhokffffgggjggtsehmtderredtfeejnecuhfhrohhmpefrvghtvghr ucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgvihhsvghnthhrrghuthesvdhnughquh grughrrghnthdrtghomheqnecuffhomhgrihhnpedvnhguqhhurggurhgrnhhtrdgtohhm necukfhppeelfedrvdegvddrvddufedrvdegudenucevlhhushhtvghrufhiiigvpedtne curfgrrhgrmhepmhgrihhlfhhrohhmpehpvghtvghrrdgvihhsvghnthhrrghuthesvdhn ughquhgrughrrghnthdrtghomh X-ME-Proxy: Received: from april.pezone.net (p5df2d5f1.dip0.t-ipconnect.de [93.242.213.241]) by mail.messagingengine.com (Postfix) with ESMTPA id 223F2306D556; Tue, 7 Apr 2020 05:01:04 -0400 (EDT) Subject: Re: adding partitioned tables to publications To: Amit Langote References: <4f999141-97c8-c968-a726-0a1ec3e36e47@2ndquadrant.com> Cc: Petr Jelinek , Rafia Sabih , PostgreSQL-development From: Peter Eisentraut Organization: 2ndQuadrant Message-ID: <64a2c1c7-3887-787b-e43b-ac15112bda82@2ndquadrant.com> Date: Tue, 7 Apr 2020 11:01:02 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------79856B8A11A7C657A828A0BC" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------79856B8A11A7C657A828A0BC Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 2020-04-07 08:44, Amit Langote wrote: > I updated the patch to make the following changes: > > * Rewrote the tests to match in style with those committed yesterday > * Renamed all variables that had pubasroot in it to have pubviaroot > instead to match the publication parameter > * Updated pg_publication catalog documentation Thanks. I have some further questions: The change in nodeModifyTable.c to add CheckValidResultRel() is unclear. It doesn't seem to do anything, and it's not clear how it's related to this patch. The changes in GetRelationPublications() are confusing to me: + if (published_rels) + { + num = list_length(result); + for (i = 0; i < num; i++) + *published_rels = lappend_oid(*published_rels, relid); + } This adds relid to the output list "num" times, where num is the number of publications found. Shouldn't "i" be used in the loop somehow? Similarly later in the function. The descriptions of the new fields in RelationSyncEntry don't seem to match the code accurately, or at least it's confusing. replicate_as_relid is always filled in with an ancestor, even if pubviaroot is not set. I think the pubviaroot field is actually not necessary. We only need replicate_as_relid. There is a markup typo in logical-replication.sgml: In pg_dump, you missed updating a branch for an older version. See attached patch. Also attached a patch to rephrase the psql output a bit to make it not so long. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------79856B8A11A7C657A828A0BC Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0001-fixup-Allow-publishing-partition-changes-via-ancesto.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-fixup-Allow-publishing-partition-changes-via-ancesto.pa"; filename*1="tch" RnJvbSA1NzI1NDlhYTIzZDRlM2ZhMmQxYWJjMDczM2QzM2YyOGNiNjkyYzQwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCA3IEFwciAyMDIwIDEwOjU2OjExICswMjAwClN1YmplY3Q6 IFtQQVRDSCAxLzJdIGZpeHVwISBBbGxvdyBwdWJsaXNoaW5nIHBhcnRpdGlvbiBjaGFuZ2Vz IHZpYSBhbmNlc3RvcnMKCi0tLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyB8IDQgKyst LQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuYwppbmRleCA0ZDAzNjA4NTk2Li5jNTc5MjI3YjE5IDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmMKQEAgLTM4OTEsMTQgKzM4OTEsMTQgQEAgZ2V0UHVibGljYXRpb25zKEFyY2hpdmUgKmZv dXQpCiAJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAogCQkJCQkJICAiU0VMRUNUIHAudGFi bGVvaWQsIHAub2lkLCBwLnB1Ym5hbWUsICIKIAkJCQkJCSAgIiglcyBwLnB1Ym93bmVyKSBB UyByb2xuYW1lLCAiCi0JCQkJCQkgICJwLnB1YmFsbHRhYmxlcywgcC5wdWJpbnNlcnQsIHAu cHVidXBkYXRlLCBwLnB1YmRlbGV0ZSwgcC5wdWJ0cnVuY2F0ZSwgZmFsc2UgYXMgcHVidmlh cm9vdCAiCisJCQkJCQkgICJwLnB1YmFsbHRhYmxlcywgcC5wdWJpbnNlcnQsIHAucHVidXBk YXRlLCBwLnB1YmRlbGV0ZSwgcC5wdWJ0cnVuY2F0ZSwgZmFsc2UgQVMgcHVidmlhcm9vdCAi CiAJCQkJCQkgICJGUk9NIHBnX3B1YmxpY2F0aW9uIHAiLAogCQkJCQkJICB1c2VybmFtZV9z dWJxdWVyeSk7CiAJZWxzZQogCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKIAkJCQkJCSAg IlNFTEVDVCBwLnRhYmxlb2lkLCBwLm9pZCwgcC5wdWJuYW1lLCAiCiAJCQkJCQkgICIoJXMg cC5wdWJvd25lcikgQVMgcm9sbmFtZSwgIgotCQkJCQkJICAicC5wdWJhbGx0YWJsZXMsIHAu cHViaW5zZXJ0LCBwLnB1YnVwZGF0ZSwgcC5wdWJkZWxldGUsIGZhbHNlIEFTIHB1YnRydW5j YXRlICIKKwkJCQkJCSAgInAucHViYWxsdGFibGVzLCBwLnB1Ymluc2VydCwgcC5wdWJ1cGRh dGUsIHAucHViZGVsZXRlLCBmYWxzZSBBUyBwdWJ0cnVuY2F0ZSwgZmFsc2UgQVMgcHVidmlh cm9vdCAiCiAJCQkJCQkgICJGUk9NIHBnX3B1YmxpY2F0aW9uIHAiLAogCQkJCQkJICB1c2Vy bmFtZV9zdWJxdWVyeSk7CiAKLS0gCjIuMjYuMAoK --------------79856B8A11A7C657A828A0BC Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0002-fixup-Allow-publishing-partition-changes-via-ancesto.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-fixup-Allow-publishing-partition-changes-via-ancesto.pa"; filename*1="tch" RnJvbSAzZTEyZTBmZjUzZTRkMWFhNWI3OGI2YjdmYTE4MWU3OWNhMjgwZWYwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCA3IEFwciAyMDIwIDEwOjU4OjU1ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAyLzJdIGZpeHVwISBBbGxvdyBwdWJsaXNoaW5nIHBhcnRpdGlvbiBjaGFuZ2Vz IHZpYSBhbmNlc3RvcnMKCi0tLQogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAg ICAgICAgICAgfCAgNCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlv bi5vdXQgfCA3MiArKysrKysrKysrKy0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAz OCBpbnNlcnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGM3MzFl ZDYzMjIuLmYwNWU5MTRiNGQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5j CisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC01NzQxLDcgKzU3NDEsNyBAQCBs aXN0UHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJaWYgKHBzZXQuc3ZlcnNp b24gPj0gMTMwMDAwKQogCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkJICAiLFxu ICBwdWJ2aWFyb290IEFTIFwiJXNcIiIsCi0JCQkJCQkgIGdldHRleHRfbm9vcCgiUHVibGlz aGVzIFVzaW5nIFJvb3QgU2NoZW1hIikpOworCQkJCQkJICBnZXR0ZXh0X25vb3AoIlZpYSBy b290IikpOwogCiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwKIAkJCQkJCSAiXG5GUk9N IHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25cbiIpOwpAQCAtNTg3NCw3ICs1ODc0LDcgQEAg ZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJaWYgKGhhc19w dWJ0cnVuY2F0ZSkKIAkJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9v cCgiVHJ1bmNhdGVzIiksIHRydWUsIGFsaWduKTsKIAkJaWYgKGhhc19wdWJ2aWFyb290KQot CQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJQdWJsaXNoZXMg VXNpbmcgUm9vdCBTY2hlbWEiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFkZEhl YWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJWaWEgcm9vdCIpLCB0cnVlLCBhbGlnbik7CiAK IAkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCAyKSwgZmFs c2UsIGZhbHNlKTsKIAkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVz LCBpLCAzKSwgZmFsc2UsIGZhbHNlKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w dWJsaWNhdGlvbi5vdXQKaW5kZXggNWI0ZTczZDkxYi4uNjNkNmFiN2E0ZSAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTI4LDE4ICsyOCwx OCBAQCBFUlJPUjogIHVucmVjb2duaXplZCAicHVibGlzaCIgdmFsdWU6ICJjbHVzdGVyIgog Q1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfeHh4IFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRp dGlvbl9yb290ID0gJ3RydWUnLCBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9ICcwJyk7 CiBFUlJPUjogIGNvbmZsaWN0aW5nIG9yIHJlZHVuZGFudCBvcHRpb25zCiBcZFJwCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2YgcHVibGljYXRpb25zCi0gICAgICAgIE5hbWUgICAgICAgIHwgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRl cyB8IFRydW5jYXRlcyB8IFB1Ymxpc2hlcyBVc2luZyBSb290IFNjaGVtYSAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2YgcHVibGljYXRpb25zCisgICAgICAgIE5hbWUgICAgICAgIHwg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRh dGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KICB0ZXN0cGli X2luc190cnVuY3QgfCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwg dCAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgZgogIHRlc3RwdWJf ZGVmYXVsdCAgICB8IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBm ICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmCiAoMiByb3dzKQog CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2RlZmF1bHQgU0VUIChwdWJsaXNoID0gJ2lu c2VydCwgdXBkYXRlLCBkZWxldGUnKTsKIFxkUnAKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBwdWJsaWNhdGlvbnMK LSAgICAgICAgTmFtZSAgICAgICAgfCAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwg dGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgUHVi bGlzaGVzIFVzaW5nIFJvb3QgU2NoZW1hIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBw dWJsaWNhdGlvbnMKKyAgICAgICAgTmFtZSAgICAgICAgfCAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1 bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQogIHRlc3RwaWJfaW5zX3RydW5jdCB8IHJlZ3Jl c3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICB8 IGYgICAgICAgfCBmICAgICAgICAgfCBmCiAgdGVzdHB1Yl9kZWZhdWx0ICAgIHwgcmVncmVz c19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IGYgICAgICAgICB8IGYKICgyIHJvd3MpCkBAIC04NSw5ICs4NSw5IEBAIFB1 YmxpY2F0aW9uczoKICAgICAidGVzdHB1Yl9mb3JhbGx0YWJsZXMiCiAKIFxkUnArIHRlc3Rw dWJfZm9yYWxsdGFibGVzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcmFsbHRhYmxlcwotICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBU cnVuY2F0ZXMgfCBQdWJsaXNoZXMgVXNpbmcgUm9vdCBTY2hlbWEgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9yYWxsdGFibGVz CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KICByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIg fCB0ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAgICAg IHwgZgogKDEgcm93KQogCkBAIC0xMDAsMTggKzEwMCwxOCBAQCBDUkVBVEUgUFVCTElDQVRJ T04gdGVzdHB1YjMgRk9SIFRBQkxFIHRlc3RwdWJfdGJsMzsKIENSRUFURSBQVUJMSUNBVElP TiB0ZXN0cHViNCBGT1IgVEFCTEUgT05MWSB0ZXN0cHViX3RibDM7CiBSRVNFVCBjbGllbnRf bWluX21lc3NhZ2VzOwogXGRScCsgdGVzdHB1YjMKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIzCi0gICAgICAgICAg T3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVs ZXRlcyB8IFRydW5jYXRlcyB8IFB1Ymxpc2hlcyBVc2luZyBSb290IFNjaGVtYSAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1 YjMKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8 IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQogIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl ciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg ICAgfCBmCiBUYWJsZXM6CiAgICAgInB1YmxpYy50ZXN0cHViX3RibDMiCiAgICAgInB1Ymxp Yy50ZXN0cHViX3RibDNhIgogCiBcZFJwKyB0ZXN0cHViNAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjQKLSAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMg fCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgUHVibGlzaGVzIFVzaW5nIFJvb3QgU2NoZW1hIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0 ZXN0cHViNAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNl cnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCiAgcmVncmVzc19wdWJsaWNhdGlv bl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgICB8IGYKIFRhYmxlczoKICAgICAicHVibGljLnRlc3RwdWJfdGJsMyIKQEAgLTEz MSw5ICsxMzEsOSBAQCBBTFRFUiBUQUJMRSB0ZXN0cHViX3BhcnRlZCBBVFRBQ0ggUEFSVElU SU9OIHRlc3RwdWJfcGFydGVkMSBGT1IgVkFMVUVTIElOICgxKTsKIC0tIG9ubHkgcGFyZW50 IGlzIGxpc3RlZCBhcyBiZWluZyBpbiBwdWJsaWNhdGlvbiwgbm90IHRoZSBwYXJ0aXRpb24K IEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ycGFydGVkIEFERCBUQUJMRSB0ZXN0cHVi X3BhcnRlZDsKIFxkUnArIHRlc3RwdWJfZm9ycGFydGVkCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9ycGFydGVkCi0g ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRh dGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFB1Ymxpc2hlcyBVc2luZyBSb290IFNjaGVt YSAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRl c3RwdWJfZm9ycGFydGVkCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxl cyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290 IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KICByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICAgIHwgZgogVGFibGVzOgogICAgICJwdWJsaWMudGVzdHB1Yl9wYXJ0 ZWQiCkBAIC0xNDcsOSArMTQ3LDkgQEAgQUxURVIgVEFCTEUgdGVzdHB1Yl9wYXJ0ZWQgREVU QUNIIFBBUlRJVElPTiB0ZXN0cHViX3BhcnRlZDE7CiBVUERBVEUgdGVzdHB1Yl9wYXJ0ZWQx IFNFVCBhID0gMTsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ycGFydGVkIFNFVCAo cHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVlKTsKIFxkUnArIHRlc3RwdWJfZm9y cGFydGVkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWJfZm9ycGFydGVkCi0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwg QWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8 IFB1Ymxpc2hlcyBVc2luZyBSb290IFNjaGVtYSAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9ycGFydGVkCisgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVs ZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0KICByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgdAogVGFibGVz OgogICAgICJwdWJsaWMudGVzdHB1Yl9wYXJ0ZWQiCkBAIC0xNzAsOSArMTcwLDkgQEAgRVJS T1I6ICByZWxhdGlvbiAidGVzdHB1Yl90YmwxIiBpcyBhbHJlYWR5IG1lbWJlciBvZiBwdWJs aWNhdGlvbiAidGVzdHB1Yl9mb3J0YmwKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2Zv cnRibCBGT1IgVEFCTEUgdGVzdHB1Yl90YmwxOwogRVJST1I6ICBwdWJsaWNhdGlvbiAidGVz dHB1Yl9mb3J0YmwiIGFscmVhZHkgZXhpc3RzCiBcZFJwKyB0ZXN0cHViX2ZvcnRibAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1Yl9mb3J0YmwKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwg SW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgUHVibGlzaGVzIFVz aW5nIFJvb3QgU2NoZW1hIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnRibAorICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0 ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t CiAgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKIFRhYmxlczoKICAgICAicHViX3Rl c3QudGVzdHB1Yl9ub3BrIgpAQCAtMjExLDkgKzIxMSw5IEBAIFB1YmxpY2F0aW9uczoKICAg ICAidGVzdHB1Yl9mb3J0YmwiCiAKIFxkUnArIHRlc3RwdWJfZGVmYXVsdAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9k ZWZhdWx0Ci0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2Vy dHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFB1Ymxpc2hlcyBVc2luZyBS b290IFNjaGVtYSAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJs aWNhdGlvbiB0ZXN0cHViX2RlZmF1bHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBB bGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg VmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQogIHJl Z3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCBmICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAgInB1Yl90ZXN0LnRl c3RwdWJfbm9wayIKQEAgLTI1OCw5ICsyNTgsOSBAQCBEUk9QIFRBQkxFIHRlc3RwdWJfcGFy dGVkOwogRFJPUCBWSUVXIHRlc3RwdWJfdmlldzsKIERST1AgVEFCTEUgdGVzdHB1Yl90Ymwx OwogXGRScCsgdGVzdHB1Yl9kZWZhdWx0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2RlZmF1bHQKLSAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgUHVibGlzaGVzIFVzaW5nIFJvb3QgU2NoZW1hIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZGVm YXVsdAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRz IHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCiAgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IGYgICAg ICAgICB8IGYKICgxIHJvdykKIApAQCAtMjcxLDkgKzI3MSw5IEBAIEVSUk9SOiAgbXVzdCBi ZSBvd25lciBvZiBwdWJsaWNhdGlvbiB0ZXN0cHViX2RlZmF1bHQKIFJFU0VUIFJPTEU7CiBB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2RlZmF1bHQgUkVOQU1FIFRPIHRlc3RwdWJfZm9v OwogXGRScCB0ZXN0cHViX2ZvbwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgcHVibGljYXRpb25zCi0gICAgTmFtZSAgICAg fCAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVw ZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgUHVibGlzaGVzIFVzaW5nIFJvb3QgU2No ZW1hIAotLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHB1YmxpY2F0aW9ucworICAgIE5hbWUgICAgIHwgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVz IHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQogIHRlc3RwdWJfZm9vIHwgcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IGYgICAgICAgICB8IGYKICgxIHJvdykKIApAQCAtMjgxLDkgKzI4MSw5 IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGVmYXVsdCBSRU5BTUUgVE8gdGVzdHB1 Yl9mb287CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvbyBSRU5BTUUgVE8gdGVzdHB1 Yl9kZWZhdWx0OwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9kZWZhdWx0IE9XTkVSIFRP IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CiBcZFJwIHRlc3RwdWJfZGVmYXVsdAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2YgcHVibGljYXRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMg fCBUcnVuY2F0ZXMgfCBQdWJsaXNoZXMgVXNpbmcgUm9vdCBTY2hlbWEgCi0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHB1YmxpY2F0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBE ZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KICB0ZXN0cHViX2RlZmF1bHQg fCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgICB8IGYKICgxIHJvdykKIAotLSAKMi4yNi4w Cgo= --------------79856B8A11A7C657A828A0BC--