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 1jMWuU-0001Y4-7q for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Apr 2020 13:07:58 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jMWuT-0001hM-4q for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Apr 2020 13:07:57 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jMWuR-0001gb-Sc for pgsql-hackers@lists.postgresql.org; Thu, 09 Apr 2020 13:07:56 +0000 Received: from wout5-smtp.messagingengine.com ([64.147.123.21]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jMWuK-0002J7-CN for pgsql-hackers@postgresql.org; Thu, 09 Apr 2020 13:07:54 +0000 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.west.internal (Postfix) with ESMTP id 4311472E; Thu, 9 Apr 2020 09:07:46 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Thu, 09 Apr 2020 09:07:46 -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=npYOSH UY9yOfZrYtCVvrCoNX4K6wccjwkeLYcT0WSGk=; b=VqlsjoX2eopUVxEy4wyPmG pPJ74c8sadu1Rlu9PctvE7wBq8RSd94rZ+lCzD+P7V0qwx0DQW6QjTUuT5VhIqdQ SLiNnhlSwtKoNF7JQetmvINRo7572rYFGHooh0v4jr3BNEd0qMkOeXfLmoyJb5Md IKZYmBjBYGnkdtqjy6XyrdL8YSVnBhCWqufo/ZaaojUuqQiVeroxyRYxU62ysj3M PcCqkY3X4SAAx3oS/6VBVVoEyVPJsG3ni/ZNtMOmQzlvC5Nyfc/8locFINADpaJd zzbX9564mqAq0PNhPcVDPnCHPbLLF+9BEBoLfpAUJA16hf+CGxqt5gjkphYPDzeQ == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduhedrudelgdehhecutefuodetggdotefrodftvf 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 23B03328005A; Thu, 9 Apr 2020 09:07:44 -0400 (EDT) Subject: Re: ALTER TABLE ... SET STORAGE does not propagate to indexes To: Alvaro Herrera References: <20200330161720.GA17240@alvherre.pgsql> Cc: Kuntal Ghosh , pgsql-hackers From: Peter Eisentraut Organization: 2ndQuadrant Message-ID: <4e53fcdd-c427-6d3b-e871-9b7af0c36b70@2ndquadrant.com> Date: Thu, 9 Apr 2020 15:07:40 +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: <20200330161720.GA17240@alvherre.pgsql> Content-Type: multipart/mixed; boundary="------------B1B7399C4759B2F5AAC533F1" 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. --------------B1B7399C4759B2F5AAC533F1 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 2020-03-30 18:17, Alvaro Herrera wrote: > On 2020-Feb-25, Peter Eisentraut wrote: >> An alternative would be that we make this situation fully supported. Then >> we'd probably need at least ALTER INDEX ... ALTER COLUMN ... SET STORAGE, >> and some pg_dump support. > > I think this is a more promising direction. I have started implementing the ALTER INDEX command, which by itself isn't very hard, but it requires significant new infrastructure in pg_dump, and probably also a bit of work in psql, and that's all a bit too much right now. An alternative for the short term is the attached patch. It's the same as before, but I have hacked up the test_decoding test to achieve the effect of ALTER INDEX with direct catalog manipulation. This preserves the spirit of the test case, but allows us to fix everything else about this situation. One thing to remember is that the current situation is broken. While you can set index columns to have different storage than the corresponding table columns, pg_dump does not preserve that, because it dumps indexes after ALTER TABLE commands. So at the moment, having these two things different isn't really supported. The proposed patch just makes this behave consistently and allows adding an ALTER INDEX command later on if desired. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------B1B7399C4759B2F5AAC533F1 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v3-0001-Propagate-ALTER-TABLE-.-SET-STORAGE-to-indexes.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v3-0001-Propagate-ALTER-TABLE-.-SET-STORAGE-to-indexes.patch" RnJvbSBiMzQ5Y2I4ZmY1NmM4ZWM1NDc0MjA5OTRmYjAzN2Q2YzRiMzk3MTkzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCA5IEFwciAyMDIwIDE0OjEwOjAxICswMjAwClN1YmplY3Q6 IFtQQVRDSCB2M10gUHJvcGFnYXRlIEFMVEVSIFRBQkxFIC4uLiBTRVQgU1RPUkFHRSB0byBp bmRleGVzCgpXaGVuIGNyZWF0aW5nIGEgbmV3IGluZGV4LCB0aGUgYXR0c3RvcmFnZSBzZXR0 aW5nIG9mIHRoZSB0YWJsZSBjb2x1bW4KaXMgY29waWVkIHRvIHJlZ3VsYXIgKG5vbi1leHBy ZXNzaW9uKSBpbmRleCBjb2x1bW5zLiAgQnV0IGEgbGF0ZXIKQUxURVIgVEFCTEUgLi4uIFNF VCBTVE9SQUdFIGlzIG5vdCBwcm9wYWdhdGVkIHRvIGluZGV4ZXMsIHRodXMKY3JlYXRpbmcg YW4gaW5jb25zaXN0ZW50IGFuZCB1bmR1bXBhYmxlIHN0YXRlLgoKRGlzY3Vzc2lvbjogaHR0 cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0Lzk3NjVkNzJiLTM3YzAt MDZmNS1lMzQ5LTJhNTgwYWFmZDk4OSU0MDJuZHF1YWRyYW50LmNvbQotLS0KIGNvbnRyaWIv dGVzdF9kZWNvZGluZy9leHBlY3RlZC90b2FzdC5vdXQgIHwgIDQgKysKIGNvbnRyaWIvdGVz dF9kZWNvZGluZy9zcWwvdG9hc3Quc3FsICAgICAgIHwgIDUgKysrCiBzcmMvYmFja2VuZC9j b21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICB8IDQ3ICsrKysrKysrKysrKysrKysrKysr KysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dCB8IDIwICsr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVtLm91dCAgICAgIHwg IDQgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2FsdGVyX3RhYmxlLnNxbCAgICAgIHwgIDYg KysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW0uc3FsICAgICAgICAgICB8ICA0ICst CiA3IGZpbGVzIGNoYW5nZWQsIDg2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL3RvYXN0Lm91dCBi L2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC90b2FzdC5vdXQKaW5kZXggOTFhOWEx ZTg2ZC4uNzVjNGQyMmQ4MCAxMDA2NDQKLS0tIGEvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4 cGVjdGVkL3RvYXN0Lm91dAorKysgYi9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQv dG9hc3Qub3V0CkBAIC0zMDUsNiArMzA1LDEwIEBAIEFMVEVSIFRBQkxFIHRvYXN0ZWRfc2V2 ZXJhbCBSRVBMSUNBIElERU5USVRZIEZVTEw7CiBBTFRFUiBUQUJMRSB0b2FzdGVkX3NldmVy YWwgQUxURVIgQ09MVU1OIHRvYXN0ZWRfa2V5IFNFVCBTVE9SQUdFIEVYVEVSTkFMOwogQUxU RVIgVEFCTEUgdG9hc3RlZF9zZXZlcmFsIEFMVEVSIENPTFVNTiB0b2FzdGVkX2NvbDEgU0VU IFNUT1JBR0UgRVhURVJOQUw7CiBBTFRFUiBUQUJMRSB0b2FzdGVkX3NldmVyYWwgQUxURVIg Q09MVU1OIHRvYXN0ZWRfY29sMiBTRVQgU1RPUkFHRSBFWFRFUk5BTDsKKy0tIENoYW5nZSB0 aGUgc3RvcmFnZSBvZiB0aGUgaW5kZXggYmFjayB0byBFWFRFTkRFRCwgc2VwYXJhdGVseSBm cm9tCistLSB0aGUgdGFibGUuICBUaGlzIGlzIGN1cnJlbnRseSBub3QgZG9hYmxlIHZpYSBE REwsIGJ1dCBpdCBpcworLS0gc3VwcG9ydGVkIGludGVybmFsbHkuCitVUERBVEUgcGdfYXR0 cmlidXRlIFNFVCBhdHRzdG9yYWdlID0gJ3gnIFdIRVJFIGF0dHJlbGlkID0gJ3RvYXN0ZWRf c2V2ZXJhbF9wa2V5Jzo6cmVnY2xhc3MgQU5EIGF0dG5hbWUgPSAndG9hc3RlZF9rZXknOwog SU5TRVJUIElOVE8gdG9hc3RlZF9zZXZlcmFsKHRvYXN0ZWRfa2V5KSBWQUxVRVMocmVwZWF0 KCc5ODc2NTQzMjEwJywgMTAwMDApKTsKIFNFTEVDVCBwZ19jb2x1bW5fc2l6ZSh0b2FzdGVk X2tleSkgPiAyXjE2IEZST00gdG9hc3RlZF9zZXZlcmFsOwogID9jb2x1bW4/IApkaWZmIC0t Z2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC90b2FzdC5zcWwgYi9jb250cmliL3Rl c3RfZGVjb2Rpbmcvc3FsL3RvYXN0LnNxbAppbmRleCBlZjExZDJiZmZmLi4wMTZjM2FiNzg0 IDEwMDY0NAotLS0gYS9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL3RvYXN0LnNxbAorKysg Yi9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL3RvYXN0LnNxbApAQCAtMjc5LDYgKzI3OSwx MSBAQCBDUkVBVEUgVEFCTEUgdG9hc3RlZF9zZXZlcmFsICgKIEFMVEVSIFRBQkxFIHRvYXN0 ZWRfc2V2ZXJhbCBBTFRFUiBDT0xVTU4gdG9hc3RlZF9jb2wxIFNFVCBTVE9SQUdFIEVYVEVS TkFMOwogQUxURVIgVEFCTEUgdG9hc3RlZF9zZXZlcmFsIEFMVEVSIENPTFVNTiB0b2FzdGVk X2NvbDIgU0VUIFNUT1JBR0UgRVhURVJOQUw7CiAKKy0tIENoYW5nZSB0aGUgc3RvcmFnZSBv ZiB0aGUgaW5kZXggYmFjayB0byBFWFRFTkRFRCwgc2VwYXJhdGVseSBmcm9tCistLSB0aGUg dGFibGUuICBUaGlzIGlzIGN1cnJlbnRseSBub3QgZG9hYmxlIHZpYSBEREwsIGJ1dCBpdCBp cworLS0gc3VwcG9ydGVkIGludGVybmFsbHkuCitVUERBVEUgcGdfYXR0cmlidXRlIFNFVCBh dHRzdG9yYWdlID0gJ3gnIFdIRVJFIGF0dHJlbGlkID0gJ3RvYXN0ZWRfc2V2ZXJhbF9wa2V5 Jzo6cmVnY2xhc3MgQU5EIGF0dG5hbWUgPSAndG9hc3RlZF9rZXknOworCiBJTlNFUlQgSU5U TyB0b2FzdGVkX3NldmVyYWwodG9hc3RlZF9rZXkpIFZBTFVFUyhyZXBlYXQoJzk4NzY1NDMy MTAnLCAxMDAwMCkpOwogU0VMRUNUIHBnX2NvbHVtbl9zaXplKHRvYXN0ZWRfa2V5KSA+IDJe MTYgRlJPTSB0b2FzdGVkX3NldmVyYWw7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMK aW5kZXggNjE2MmZiMDE4Yy4uOGIwMTk0ZTE3ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMKQEAgLTczODIsNiArNzM4Miw3IEBAIEFURXhlY1NldFN0b3JhZ2UoUmVsYXRpb24g cmVsLCBjb25zdCBjaGFyICpjb2xOYW1lLCBOb2RlICpuZXdWYWx1ZSwgTE9DS01PREUgbG9j CiAJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0cnR1cGxlOwogCUF0dHJOdW1iZXIJYXR0bnVtOwog CU9iamVjdEFkZHJlc3MgYWRkcmVzczsKKwlMaXN0Q2VsbCAgICpsYzsKIAogCUFzc2VydChJ c0EobmV3VmFsdWUsIFN0cmluZykpOwogCXN0b3JhZ2Vtb2RlID0gc3RyVmFsKG5ld1ZhbHVl KTsKQEAgLTc0NDEsNiArNzQ0Miw1MiBAQCBBVEV4ZWNTZXRTdG9yYWdlKFJlbGF0aW9uIHJl bCwgY29uc3QgY2hhciAqY29sTmFtZSwgTm9kZSAqbmV3VmFsdWUsIExPQ0tNT0RFIGxvYwog CiAJaGVhcF9mcmVldHVwbGUodHVwbGUpOwogCisJLyoKKwkgKiBBcHBseSB0aGUgY2hhbmdl IHRvIGluZGV4ZXMgYXMgd2VsbCAob25seSBmb3Igc2ltcGxlIGluZGV4IGNvbHVtbnMsCisJ ICogbWF0Y2hpbmcgYmVoYXZpb3Igb2YgaW5kZXguYyBDb25zdHJ1Y3RUdXBsZURlc2NyaXB0 b3IoKSkuCisJICovCisJZm9yZWFjaChsYywgUmVsYXRpb25HZXRJbmRleExpc3QocmVsKSkK Kwl7CisJCU9pZCAgICAgICAgIGluZGV4b2lkID0gbGZpcnN0X29pZChsYyk7CisJCVJlbGF0 aW9uICAgIGluZHJlbDsKKwkJQXR0ck51bWJlcglpbmRhdHRudW0gPSAwOworCisJCWluZHJl bCA9IGluZGV4X29wZW4oaW5kZXhvaWQsIGxvY2ttb2RlKTsKKworCQlmb3IgKGludCBpID0g MDsgaSA8IGluZHJlbC0+cmRfaW5kZXgtPmluZG5hdHRzOyBpKyspCisJCXsKKwkJCWlmIChp bmRyZWwtPnJkX2luZGV4LT5pbmRrZXkudmFsdWVzW2ldID09IGF0dG51bSkKKwkJCXsKKwkJ CQlpbmRhdHRudW0gPSBpICsgMTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCisJCWlmIChp bmRhdHRudW0gPT0gMCkKKwkJeworCQkJaW5kZXhfY2xvc2UoaW5kcmVsLCBsb2NrbW9kZSk7 CisJCQljb250aW51ZTsKKwkJfQorCisJCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGVDb3B5QXR0 TnVtKFJlbGF0aW9uR2V0UmVsaWQoaW5kcmVsKSwgaW5kYXR0bnVtKTsKKworCQlpZiAoSGVh cFR1cGxlSXNWYWxpZCh0dXBsZSkpCisJCXsKKwkJCWF0dHJ0dXBsZSA9IChGb3JtX3BnX2F0 dHJpYnV0ZSkgR0VUU1RSVUNUKHR1cGxlKTsKKwkJCWF0dHJ0dXBsZS0+YXR0c3RvcmFnZSA9 IG5ld3N0b3JhZ2U7CisKKwkJCUNhdGFsb2dUdXBsZVVwZGF0ZShhdHRyZWxhdGlvbiwgJnR1 cGxlLT50X3NlbGYsIHR1cGxlKTsKKworCQkJSW52b2tlT2JqZWN0UG9zdEFsdGVySG9vayhS ZWxhdGlvblJlbGF0aW9uSWQsCisJCQkJCQkJCQkgIFJlbGF0aW9uR2V0UmVsaWQocmVsKSwK KwkJCQkJCQkJCSAgYXR0cnR1cGxlLT5hdHRudW0pOworCisJCQloZWFwX2ZyZWV0dXBsZSh0 dXBsZSk7CisJCX0KKworCQlpbmRleF9jbG9zZShpbmRyZWwsIGxvY2ttb2RlKTsKKwl9CisK IAl0YWJsZV9jbG9zZShhdHRyZWxhdGlvbiwgUm93RXhjbHVzaXZlTG9jayk7CiAKIAlPYmpl Y3RBZGRyZXNzU3ViU2V0KGFkZHJlc3MsIFJlbGF0aW9uUmVsYXRpb25JZCwKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90YWJsZS5vdXQKaW5kZXggZjM0M2Y5YjQyZS4u OTlmZjY5NzNiYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRl cl90YWJsZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90YWJs ZS5vdXQKQEAgLTIxNzIsNiArMjE3MiwyNiBAQCB3aGVyZSBvaWQgPSAndGVzdF9zdG9yYWdl Jzo6cmVnY2xhc3M7CiAgdAogKDEgcm93KQogCistLSB0ZXN0IHRoYXQgU0VUIFNUT1JBR0Ug cHJvcGFnYXRlcyB0byBpbmRleCBjb3JyZWN0bHkKK2NyZWF0ZSBpbmRleCB0ZXN0X3N0b3Jh Z2VfaWR4IG9uIHRlc3Rfc3RvcmFnZSAoYiwgYSk7CithbHRlciB0YWJsZSB0ZXN0X3N0b3Jh Z2UgYWx0ZXIgY29sdW1uIGEgc2V0IHN0b3JhZ2UgZXh0ZXJuYWw7CitcZCsgdGVzdF9zdG9y YWdlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVz dF9zdG9yYWdlIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 IERlZmF1bHQgfCBTdG9yYWdlICB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IHRleHQgICAg fCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBleHRlcm5hbCB8ICAgICAgICAg ICAgICB8IAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IDAg ICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgICB8IAorSW5kZXhlczoKKyAgICAidGVz dF9zdG9yYWdlX2lkeCIgYnRyZWUgKGIsIGEpCisKK1xkKyB0ZXN0X3N0b3JhZ2VfaWR4Cisg ICAgICAgICAgICAgICAgSW5kZXggInB1YmxpYy50ZXN0X3N0b3JhZ2VfaWR4IgorIENvbHVt biB8ICBUeXBlICAgfCBLZXk/IHwgRGVmaW5pdGlvbiB8IFN0b3JhZ2UgIHwgU3RhdHMgdGFy Z2V0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLQorIGIgICAgICB8IGludGVnZXIgfCB5ZXMgIHwgYiAgICAgICAg ICB8IHBsYWluICAgIHwgCisgYSAgICAgIHwgdGV4dCAgICB8IHllcyAgfCBhICAgICAgICAg IHwgZXh0ZXJuYWwgfCAKK2J0cmVlLCBmb3IgdGFibGUgInB1YmxpYy50ZXN0X3N0b3JhZ2Ui CisKIC0tIEFMVEVSIENPTFVNTiBUWVBFIHdpdGggYSBjaGVjayBjb25zdHJhaW50IGFuZCBh IGNoaWxkIHRhYmxlIChidWcgIzEzNzc5KQogQ1JFQVRFIFRBQkxFIHRlc3RfaW5oX2NoZWNr IChhIGZsb2F0IGNoZWNrIChhID4gMTAuMiksIGIgZmxvYXQpOwogQ1JFQVRFIFRBQkxFIHRl c3RfaW5oX2NoZWNrX2NoaWxkKCkgSU5IRVJJVFModGVzdF9pbmhfY2hlY2spOwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC92YWN1dW0ub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC92YWN1dW0ub3V0CmluZGV4IDBjZmUyOGU2M2YuLjkzZGJkNTI1 NDggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVtLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bS5vdXQKQEAgLTEzMiw3ICsx MzIsNyBAQCBDUkVBVEUgVEFCTEUgbm9faW5kZXhfY2xlYW51cCAoaSBJTlQgUFJJTUFSWSBL RVksIHQgVEVYVCk7CiBDUkVBVEUgSU5ERVggbm9faW5kZXhfY2xlYW51cF9pZHggT04gbm9f aW5kZXhfY2xlYW51cCh0KTsKIEFMVEVSIFRBQkxFIG5vX2luZGV4X2NsZWFudXAgQUxURVIg Q09MVU1OIHQgU0VUIFNUT1JBR0UgRVhURVJOQUw7CiBJTlNFUlQgSU5UTyBub19pbmRleF9j bGVhbnVwKGksIHQpIFZBTFVFUyAoZ2VuZXJhdGVfc2VyaWVzKDEsMzApLAotICAgIHJlcGVh dCgnMTIzNDU2Nzg5MCcsMzAwKSk7CisgICAgcmVwZWF0KCcxMjM0NTY3ODkwJywyNjkpKTsK IC0tIGluZGV4IGNsZWFudXAgb3B0aW9uIGlzIGlnbm9yZWQgaWYgVkFDVVVNIEZVTEwKIFZB Q1VVTSAoSU5ERVhfQ0xFQU5VUCBUUlVFLCBGVUxMIFRSVUUpIG5vX2luZGV4X2NsZWFudXA7 CiBWQUNVVU0gKEZVTEwgVFJVRSkgbm9faW5kZXhfY2xlYW51cDsKQEAgLTE0Niw3ICsxNDYs NyBAQCBBTFRFUiBUQUJMRSBub19pbmRleF9jbGVhbnVwIFNFVCAodmFjdXVtX2luZGV4X2Ns ZWFudXAgPSB0cnVlKTsKIFZBQ1VVTSBub19pbmRleF9jbGVhbnVwOwogLS0gUGFyYW1ldGVy IGlzIHNldCBmb3IgYm90aCB0aGUgcGFyZW50IHRhYmxlIGFuZCBpdHMgdG9hc3QgcmVsYXRp b24uCiBJTlNFUlQgSU5UTyBub19pbmRleF9jbGVhbnVwKGksIHQpIFZBTFVFUyAoZ2VuZXJh dGVfc2VyaWVzKDMxLDYwKSwKLSAgICByZXBlYXQoJzEyMzQ1Njc4OTAnLDMwMCkpOworICAg IHJlcGVhdCgnMTIzNDU2Nzg5MCcsMjY5KSk7CiBERUxFVEUgRlJPTSBub19pbmRleF9jbGVh bnVwIFdIRVJFIGkgPCA0NTsKIC0tIE9ubHkgdG9hc3QgaW5kZXggaXMgY2xlYW5lZCB1cC4K IEFMVEVSIFRBQkxFIG5vX2luZGV4X2NsZWFudXAgU0VUICh2YWN1dW1faW5kZXhfY2xlYW51 cCA9IGZhbHNlLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYWx0ZXJfdGFi bGUuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYWx0ZXJfdGFibGUuc3FsCmluZGV4IGZi NWM5MTM5ZDEuLmI0NWJhMmEzMjIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2FsdGVyX3RhYmxlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9hbHRlcl90YWJs ZS5zcWwKQEAgLTE0NzIsNiArMTQ3MiwxMiBAQCBDUkVBVEUgVEVNUCBUQUJMRSBGS1RBQkxF IChmdGVzdDEgaW50KTsKIGZyb20gcGdfY2xhc3MKIHdoZXJlIG9pZCA9ICd0ZXN0X3N0b3Jh Z2UnOjpyZWdjbGFzczsKIAorLS0gdGVzdCB0aGF0IFNFVCBTVE9SQUdFIHByb3BhZ2F0ZXMg dG8gaW5kZXggY29ycmVjdGx5CitjcmVhdGUgaW5kZXggdGVzdF9zdG9yYWdlX2lkeCBvbiB0 ZXN0X3N0b3JhZ2UgKGIsIGEpOworYWx0ZXIgdGFibGUgdGVzdF9zdG9yYWdlIGFsdGVyIGNv bHVtbiBhIHNldCBzdG9yYWdlIGV4dGVybmFsOworXGQrIHRlc3Rfc3RvcmFnZQorXGQrIHRl c3Rfc3RvcmFnZV9pZHgKKwogLS0gQUxURVIgQ09MVU1OIFRZUEUgd2l0aCBhIGNoZWNrIGNv bnN0cmFpbnQgYW5kIGEgY2hpbGQgdGFibGUgKGJ1ZyAjMTM3NzkpCiBDUkVBVEUgVEFCTEUg dGVzdF9pbmhfY2hlY2sgKGEgZmxvYXQgY2hlY2sgKGEgPiAxMC4yKSwgYiBmbG9hdCk7CiBD UkVBVEUgVEFCTEUgdGVzdF9pbmhfY2hlY2tfY2hpbGQoKSBJTkhFUklUUyh0ZXN0X2luaF9j aGVjayk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW0uc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvdmFjdXVtLnNxbAppbmRleCBjZjc0MWY3YjExLi4yYTJi MDljNmVlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW0uc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bS5zcWwKQEAgLTExMiw3ICsxMTIsNyBA QCBDUkVBVEUgVEFCTEUgbm9faW5kZXhfY2xlYW51cCAoaSBJTlQgUFJJTUFSWSBLRVksIHQg VEVYVCk7CiBDUkVBVEUgSU5ERVggbm9faW5kZXhfY2xlYW51cF9pZHggT04gbm9faW5kZXhf Y2xlYW51cCh0KTsKIEFMVEVSIFRBQkxFIG5vX2luZGV4X2NsZWFudXAgQUxURVIgQ09MVU1O IHQgU0VUIFNUT1JBR0UgRVhURVJOQUw7CiBJTlNFUlQgSU5UTyBub19pbmRleF9jbGVhbnVw KGksIHQpIFZBTFVFUyAoZ2VuZXJhdGVfc2VyaWVzKDEsMzApLAotICAgIHJlcGVhdCgnMTIz NDU2Nzg5MCcsMzAwKSk7CisgICAgcmVwZWF0KCcxMjM0NTY3ODkwJywyNjkpKTsKIC0tIGlu ZGV4IGNsZWFudXAgb3B0aW9uIGlzIGlnbm9yZWQgaWYgVkFDVVVNIEZVTEwKIFZBQ1VVTSAo SU5ERVhfQ0xFQU5VUCBUUlVFLCBGVUxMIFRSVUUpIG5vX2luZGV4X2NsZWFudXA7CiBWQUNV VU0gKEZVTEwgVFJVRSkgbm9faW5kZXhfY2xlYW51cDsKQEAgLTEyNiw3ICsxMjYsNyBAQCBD UkVBVEUgSU5ERVggbm9faW5kZXhfY2xlYW51cF9pZHggT04gbm9faW5kZXhfY2xlYW51cCh0 KTsKIFZBQ1VVTSBub19pbmRleF9jbGVhbnVwOwogLS0gUGFyYW1ldGVyIGlzIHNldCBmb3Ig Ym90aCB0aGUgcGFyZW50IHRhYmxlIGFuZCBpdHMgdG9hc3QgcmVsYXRpb24uCiBJTlNFUlQg SU5UTyBub19pbmRleF9jbGVhbnVwKGksIHQpIFZBTFVFUyAoZ2VuZXJhdGVfc2VyaWVzKDMx LDYwKSwKLSAgICByZXBlYXQoJzEyMzQ1Njc4OTAnLDMwMCkpOworICAgIHJlcGVhdCgnMTIz NDU2Nzg5MCcsMjY5KSk7CiBERUxFVEUgRlJPTSBub19pbmRleF9jbGVhbnVwIFdIRVJFIGkg PCA0NTsKIC0tIE9ubHkgdG9hc3QgaW5kZXggaXMgY2xlYW5lZCB1cC4KIEFMVEVSIFRBQkxF IG5vX2luZGV4X2NsZWFudXAgU0VUICh2YWN1dW1faW5kZXhfY2xlYW51cCA9IGZhbHNlLAot LSAKMi4yNi4wCgo= --------------B1B7399C4759B2F5AAC533F1--