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 1w9oSP-001mTe-0H for pgsql-hackers@arkaria.postgresql.org; Mon, 06 Apr 2026 18:13:53 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w9oSN-00B5Bn-1v for pgsql-hackers@arkaria.postgresql.org; Mon, 06 Apr 2026 18:13:52 +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 1w9oSN-00B5Bf-0h for pgsql-hackers@lists.postgresql.org; Mon, 06 Apr 2026 18:13:51 +0000 Received: from udcm-wwu2.uni-muenster.de ([128.176.118.28]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1w9oSK-00000000wSO-3uy1 for pgsql-hackers@lists.postgresql.org; Mon, 06 Apr 2026 18:13:51 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=uni-muenster.de; i=@uni-muenster.de; q=dns/txt; s=uniout; t=1775499230; x=1807035230; h=message-id:date:mime-version:subject:from:to:cc: references:in-reply-to; bh=B2dAqNzea0QDJ/uTuRilWuVPJlmyDe6MvEKm7vYLoOo=; b=diDt7RsWbZtiOj5HV8YRxw1zSxrlRYNl6CW4lAbnSB9YWn42FCDNC+fH 3T+4/LbzdkgCQOhF44ER9sZ9QVGAedqOaM8JkcUmrPbyJRj8OHfHq9KHt 3poXAMzb+eN7f3554iRwahujHwRCYHoKLfQtr1wj+nNwKYaTN+ReGaN0E +5QGSSuC4kK8NMzyc2IEvH3xuMOeGFVuYzlPl5OTul2CAhhk01eoyoAUO JQ/KcsyYwAakiVpnAt7BNRtkvrKogXdl8LLIdvDEoF4YAXvji9X43mgA1 PDwLmIwKbQacWxgXpNE+rBrObHWgZ2jKhcBrnQlKH+DgO+eEetGIJp7VZ w==; X-CSE-ConnectionGUID: IM4je7fxR1eXeFqeWhLPsQ== X-CSE-MsgGUID: dujCNRZLS++Q/NqE3wy1SA== X-IronPort-AV: E=Sophos;i="6.23,164,1770591600"; d="scan'208,223";a="389803453" Received: from secmail.uni-muenster.de ([128.176.118.4]) by UDCM-RELAY2.UNI-MUENSTER.DE with ESMTP; 06 Apr 2026 20:13:48 +0200 Received: from [192.168.178.27] (dynamic-078-048-142-037.78.48.pool.telefonica.de [78.48.142.37]) by SECMAIL.UNI-MUENSTER.DE (Postfix) with ESMTPSA id 4846320ADF00; Mon, 6 Apr 2026 20:13:47 +0200 (CEST) Content-Type: multipart/mixed; boundary="------------jcxrJmTCpWyzbsW08EcAqgLm" Message-ID: Date: Mon, 6 Apr 2026 20:13:45 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: VACUUM FULL, CLUSTER, and REPACK block on other sessions' temp tables From: Jim Jones To: Antonin Houska , Chao Li Cc: Zsolt Parragi , PostgreSQL Hackers References: <0b555318-2bf2-46df-9377-09629a2a59db@uni-muenster.de> <97B93CF6-109D-46B4-AD50-8908DD4BE6E4@gmail.com> <039cca2d-5574-4dad-92e6-6e72c1747b23@uni-muenster.de> <9de2a59f-9597-4101-bf34-cf3804752e64@uni-muenster.de> <5C25190B-EE60-4634-A1DE-E7B5FBFF8AE4@gmail.com> <29666.1774524351@localhost> <145c49b9-1d40-4a4a-8667-777d8bb951ed@uni-muenster.de> Content-Language: de-DE, en-GB In-Reply-To: <145c49b9-1d40-4a4a-8667-777d8bb951ed@uni-muenster.de> 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. --------------jcxrJmTCpWyzbsW08EcAqgLm Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit rebase Jim --------------jcxrJmTCpWyzbsW08EcAqgLm Content-Type: text/x-patch; charset=UTF-8; name="v4-0001-Skip-other-sessions-temp-tables-in-REPACK-CLUSTER.patch" Content-Disposition: attachment; filename*0="v4-0001-Skip-other-sessions-temp-tables-in-REPACK-CLUSTER.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA3YTUwZWE4NTI3NjM0YTM5Y2NiOWFiYmY4ZjU3Mzg4M2ZhY2NkMzUzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gSm9uZXMgPGppbS5qb25lc0B1bmktbXVlbnN0 ZXIuZGU+CkRhdGU6IFdlZCwgMjUgTWFyIDIwMjYgMjM6MTQ6MTIgKzAxMDAKU3ViamVjdDog W1BBVENIIHY0IDEvMl0gU2tpcCBvdGhlciBzZXNzaW9ucycgdGVtcCB0YWJsZXMgaW4gUkVQ QUNLLCBDTFVTVEVSLAogYW5kIFZBQ1VVTSBGVUxMCgpnZXRfdGFibGVzX3RvX3JlcGFjaygp IHdhcyBpbmNsdWRpbmcgb3RoZXIgc2Vzc2lvbnMnIHRlbXBvcmFyeSB0YWJsZXMKaW4gdGhl IHdvcmsgbGlzdCwgY2F1c2luZyBSRVBBQ0sgYW5kIENMVVNURVIgKHdpdGhvdXQgYXJndW1l bnRzKSB0bwphdHRlbXB0IHRvIGFjcXVpcmUgQWNjZXNzRXhjbHVzaXZlTG9jayBvbiB0aGVt LCBwb3RlbnRpYWxseSBibG9ja2luZwpmb3IgYW4gZXh0ZW5kZWQgdGltZS4gRml4IGJ5IHNr aXBwaW5nIG90aGVyLXNlc3Npb24gdGVtcCB0YWJsZXMgZWFybHkKaW4gZ2V0X3RhYmxlc190 b19yZXBhY2soKSwgYmVmb3JlIHRoZXkgYXJlIGFkZGVkIHRvIHRoZSBsaXN0LiBCZWNhdXNl CmFuIEFjY2Vzc1NoYXJlTG9jayBoYXMgYWxyZWFkeSBiZWVuIGFjcXVpcmVkIHBlciByZWxh dGlvbiBhdCB0aGF0CnBvaW50LCByZWxlYXNlIGl0IGJlZm9yZSBjb250aW51aW5nLgoKU2lt aWxhcmx5LCBnZXRfYWxsX3ZhY3V1bV9yZWxzKCkgc3VmZmVyZWQgZnJvbSB0aGUgc2FtZSBw cm9ibGVtIGZvcgpWQUNVVU0gRlVMTC4gU2luY2Ugbm8gcGVyLXJlbGF0aW9uIGxvY2sgaXMg aGVsZCBkdXJpbmcgbGlzdC1idWlsZGluZwp0aGVyZSwgYSBwbGFpbiBza2lwIHN1ZmZpY2Vz LgoKQXV0aG9yOiBKaW0gSm9uZXMgPGppbS5qb25lc0B1bmktbXVlbnN0ZXIuZGU+ClJldmll d2VkLWJ5OiBDaGFvIExpIDxsaS5ldmFuLmNoYW9AZ21haWwuY29tPgpSZXZpZXdlZC1ieTog WnNvbHQgUGFycmFnaSA8enNvbHQucGFycmFnaUBwZXJjb25hLmNvbT4KLS0tCiBzcmMvYmFj a2VuZC9jb21tYW5kcy9jbHVzdGVyLmMgfCAyNSArKysrKysrKysrKysrKysrKysrKysrKyst CiBzcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYyAgfCAgNSArKysrKwogMiBmaWxlcyBj aGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvY2x1c3Rlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv Y2x1c3Rlci5jCmluZGV4IGYyNDFlMThiMTUzLi5mZmJjNWVkNmY4NSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvY2x1c3Rlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2NsdXN0ZXIuYwpAQCAtMTY3OSw2ICsxNjc5LDggQEAgZ2V0X3RhYmxlc190b19yZXBh Y2soUmVwYWNrQ29tbWFuZCBjbWQsIGJvb2wgdXNpbmdpbmRleCwgTWVtb3J5Q29udGV4dCBw ZXJtY3h0KQogCQl7CiAJCQlSZWxUb0NsdXN0ZXIgKnJ0YzsKIAkJCUZvcm1fcGdfaW5kZXgg aW5kZXg7CisJCQlIZWFwVHVwbGUJY2xhc3N0dXA7CisJCQlGb3JtX3BnX2NsYXNzIGNsYXNz Rm9ybTsKIAkJCU1lbW9yeUNvbnRleHQgb2xkY3h0OwogCiAJCQlpbmRleCA9IChGb3JtX3Bn X2luZGV4KSBHRVRTVFJVQ1QodHVwbGUpOwpAQCAtMTY5MywxMSArMTY5NSwyNCBAQCBnZXRf dGFibGVzX3RvX3JlcGFjayhSZXBhY2tDb21tYW5kIGNtZCwgYm9vbCB1c2luZ2luZGV4LCBN ZW1vcnlDb250ZXh0IHBlcm1jeHQpCiAJCQkJY29udGludWU7CiAKIAkJCS8qIFZlcmlmeSB0 aGF0IHRoZSB0YWJsZSBzdGlsbCBleGlzdHM7IHNraXAgaWYgbm90ICovCi0JCQlpZiAoIVNl YXJjaFN5c0NhY2hlRXhpc3RzMShSRUxPSUQsIE9iamVjdElkR2V0RGF0dW0oaW5kZXgtPmlu ZHJlbGlkKSkpCisJCQljbGFzc3R1cCA9IFNlYXJjaFN5c0NhY2hlMShSRUxPSUQsIE9iamVj dElkR2V0RGF0dW0oaW5kZXgtPmluZHJlbGlkKSk7CisJCQlpZiAoIUhlYXBUdXBsZUlzVmFs aWQoY2xhc3N0dXApKQogCQkJewogCQkJCVVubG9ja1JlbGF0aW9uT2lkKGluZGV4LT5pbmRy ZWxpZCwgQWNjZXNzU2hhcmVMb2NrKTsKIAkJCQljb250aW51ZTsKIAkJCX0KKwkJCWNsYXNz Rm9ybSA9IChGb3JtX3BnX2NsYXNzKSBHRVRTVFJVQ1QoY2xhc3N0dXApOworCisJCQkvKiBT a2lwIHRlbXAgcmVsYXRpb25zIGJlbG9uZ2luZyB0byBvdGhlciBzZXNzaW9ucyAqLworCQkJ aWYgKGNsYXNzRm9ybS0+cmVscGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCAm JgorCQkJCSFpc1RlbXBPclRlbXBUb2FzdE5hbWVzcGFjZShjbGFzc0Zvcm0tPnJlbG5hbWVz cGFjZSkpCisJCQl7CisJCQkJUmVsZWFzZVN5c0NhY2hlKGNsYXNzdHVwKTsKKwkJCQlVbmxv Y2tSZWxhdGlvbk9pZChpbmRleC0+aW5kcmVsaWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJ Y29udGludWU7CisJCQl9CisKKwkJCVJlbGVhc2VTeXNDYWNoZShjbGFzc3R1cCk7CiAKIAkJ CS8qIG5vaXNpbHkgc2tpcCByZWxzIHdoaWNoIHRoZSB1c2VyIGNhbid0IHByb2Nlc3MgKi8K IAkJCWlmICghcmVwYWNrX2lzX3Blcm1pdHRlZF9mb3JfcmVsYXRpb24oY21kLCBpbmRleC0+ aW5kcmVsaWQsCkBAIC0xNzUzLDYgKzE3NjgsMTQgQEAgZ2V0X3RhYmxlc190b19yZXBhY2so UmVwYWNrQ29tbWFuZCBjbWQsIGJvb2wgdXNpbmdpbmRleCwgTWVtb3J5Q29udGV4dCBwZXJt Y3h0KQogCQkJCWNvbnRpbnVlOwogCQkJfQogCisJCQkvKiBTa2lwIHRlbXAgcmVsYXRpb25z IGJlbG9uZ2luZyB0byBvdGhlciBzZXNzaW9ucyAqLworCQkJaWYgKGNsYXNzLT5yZWxwZXJz aXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9URU1QICYmCisJCQkJIWlzVGVtcE9yVGVtcFRv YXN0TmFtZXNwYWNlKGNsYXNzLT5yZWxuYW1lc3BhY2UpKQorCQkJeworCQkJCVVubG9ja1Jl bGF0aW9uT2lkKGNsYXNzLT5vaWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJY29udGludWU7 CisJCQl9CisKIAkJCS8qIG5vaXNpbHkgc2tpcCByZWxzIHdoaWNoIHRoZSB1c2VyIGNhbid0 IHByb2Nlc3MgKi8KIAkJCWlmICghcmVwYWNrX2lzX3Blcm1pdHRlZF9mb3JfcmVsYXRpb24o Y21kLCBjbGFzcy0+b2lkLAogCQkJCQkJCQkJCQkJICBHZXRVc2VySWQoKSkpCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3ZhY3V1bS5jCmluZGV4IDBlZDM2M2QxYzg1Li45MTNkZmI0ZWE4ZCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvdmFjdXVtLmMKQEAgLTEwNjIsNiArMTA2MiwxMSBAQCBnZXRfYWxsX3ZhY3V1bV9y ZWxzKE1lbW9yeUNvbnRleHQgdmFjX2NvbnRleHQsIGludCBvcHRpb25zKQogCQkJY2xhc3NG b3JtLT5yZWxraW5kICE9IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCiAJCQljb250aW51 ZTsKIAorCQkvKiBTa2lwIHRlbXAgcmVsYXRpb25zIGJlbG9uZ2luZyB0byBvdGhlciBzZXNz aW9ucyAqLworCQlpZiAoY2xhc3NGb3JtLT5yZWxwZXJzaXN0ZW5jZSA9PSBSRUxQRVJTSVNU RU5DRV9URU1QICYmCisJCQkhaXNUZW1wT3JUZW1wVG9hc3ROYW1lc3BhY2UoY2xhc3NGb3Jt LT5yZWxuYW1lc3BhY2UpKQorCQkJY29udGludWU7CisKIAkJLyogY2hlY2sgcGVybWlzc2lv bnMgb2YgcmVsYXRpb24gKi8KIAkJaWYgKCF2YWN1dW1faXNfcGVybWl0dGVkX2Zvcl9yZWxh dGlvbihyZWxpZCwgY2xhc3NGb3JtLCBvcHRpb25zKSkKIAkJCWNvbnRpbnVlOwotLSAKMi40 My4wCgo= --------------jcxrJmTCpWyzbsW08EcAqgLm Content-Type: text/x-patch; charset=UTF-8; name="v4-0002-Test-VACUUM-FULL-CLUSTER-and-REPACK-with-locked-t.patch" Content-Disposition: attachment; filename*0="v4-0002-Test-VACUUM-FULL-CLUSTER-and-REPACK-with-locked-t.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAzZTY4OWI4NTE5MGZjMDc0YTRmZTdjOWUyZTFiM2Y2MThmYWYwOGJmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gSm9uZXMgPGppbS5qb25lc0B1bmktbXVlbnN0 ZXIuZGU+CkRhdGU6IE1vbiwgNiBBcHIgMjAyNiAxOTo0MDo1NiArMDIwMApTdWJqZWN0OiBb UEFUQ0ggdjQgMi8yXSBUZXN0IFZBQ1VVTSBGVUxMLCBDTFVTVEVSLCBhbmQgUkVQQUNLIHdp dGggbG9ja2VkIHRlbXAKIHRhYmxlcwoKVGhpcyB0ZXN0IGNyZWF0ZXMgYSBiYWNrZ3JvdW5k IHNlc3Npb24gd2l0aCBhIHRlbXAgdGFibGUgYW5kIG1hcmtzCml0cyBpbmRleCBhcyBjbHVz dGVyZWQgKG1ha2luZyBpdCB2aXNpYmxlIHRvIGJvdGggdGhlIHBnX2NsYXNzIHNjYW4KdXNl ZCBieSBWQUNVVU0gRlVMTCBhbmQgUkVQQUNLLCBhbmQgdGhlIHBnX2luZGV4IHNjYW4gdXNl ZCBieSBDTFVTVEVSKSwKdGhlbiBob2xkcyBBQ0NFU1MgU0hBUkUgTE9DSyBpbiBhbiBvcGVu IHRyYW5zYWN0aW9uLiAgRWFjaCBjb21tYW5kCnJ1bnMgd2l0aCBsb2NrX3RpbWVvdXQgPSAn MW1zJy4gIFNpbmNlIGxvY2tfdGltZW91dCBvbmx5IGZpcmVzIHdoZW4gYQpiYWNrZW5kIGFj dHVhbGx5IGJsb2NrcyB3YWl0aW5nIGZvciBhIGxvY2ssIDFtcyBpcyBzdWZmaWNpZW50Lgot LS0KIHNyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNjL21lc29uLmJ1aWxkICAgICAgICB8ICAx ICsKIC4uLi90LzAxMl92YWN1dW1fY2x1c3Rlcl90ZW1wX3RhYmxlcy5wbCAgICAgICB8IDY1 ICsrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygr KQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNjL3QvMDEy X3ZhY3V1bV9jbHVzdGVyX3RlbXBfdGFibGVzLnBsCgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv bW9kdWxlcy90ZXN0X21pc2MvbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rf bWlzYy9tZXNvbi5idWlsZAppbmRleCAxYjI1ZDk4ZjdmMy4uODk5NWJjODM3ZjIgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNjL21lc29uLmJ1aWxkCisrKyBiL3Ny Yy90ZXN0L21vZHVsZXMvdGVzdF9taXNjL21lc29uLmJ1aWxkCkBAIC0yMCw2ICsyMCw3IEBA IHRlc3RzICs9IHsKICAgICAgICd0LzAwOV9sb2dfdGVtcF9maWxlcy5wbCcsCiAgICAgICAn dC8wMTBfaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydC5wbCcsCiAgICAgICAndC8wMTFfbG9j a19zdGF0cy5wbCcsCisgICAgICAndC8wMTJfdmFjdXVtX2NsdXN0ZXJfdGVtcF90YWJsZXMu cGwnLAogICAgIF0sCiAgICAgIyBUaGUgaW5qZWN0aW9uIHBvaW50cyBhcmUgY2x1c3Rlci13 aWRlLCBzbyBkaXNhYmxlIGluc3RhbGxjaGVjawogICAgICdydW5uaW5nY2hlY2snOiBmYWxz ZSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNjL3QvMDEyX3ZhY3V1 bV9jbHVzdGVyX3RlbXBfdGFibGVzLnBsIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X21pc2Mv dC8wMTJfdmFjdXVtX2NsdXN0ZXJfdGVtcF90YWJsZXMucGwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE2MTJiNGQ2MzYxCi0tLSAvZGV2L251bGwKKysrIGIv c3JjL3Rlc3QvbW9kdWxlcy90ZXN0X21pc2MvdC8wMTJfdmFjdXVtX2NsdXN0ZXJfdGVtcF90 YWJsZXMucGwKQEAgLTAsMCArMSw2NSBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjYsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisjCisjIFZlcmlmeSB0aGF0IG5vLWFy Z3VtZW50IFZBQ1VVTSBGVUxMLCBDTFVTVEVSLCBhbmQgUkVQQUNLIHNraXAgdGVtcG9yYXJ5 CisjIHRhYmxlcyBiZWxvbmdpbmcgdG8gb3RoZXIgc2Vzc2lvbnMuCisjCisjIEEgYmFja2dy b3VuZCBzZXNzaW9uIGNyZWF0ZXMgYSB0ZW1wIHRhYmxlIGFuZCBtYXJrcyBpdHMgaW5kZXgg YXMgY2x1c3RlcmVkIOKAlAorIyBtYWtpbmcgaXQgdmlzaWJsZSB0byBib3RoIHRoZSBwZ19j bGFzcyBzY2FuIChWQUNVVU0gRlVMTCwgUkVQQUNLKSBhbmQgdGhlCisjIHBnX2luZGV4IHNj YW4gKENMVVNURVIpIOKAlCB0aGVuIGhvbGRzIEFDQ0VTUyBTSEFSRSBMT0NLIGluIGFuIG9w ZW4gdHJhbnNhY3Rpb24uCisjIEVhY2ggY29tbWFuZCBydW5zIHdpdGggbG9ja190aW1lb3V0 ID0gJzFtcycuIFNpbmNlIGxvY2tfdGltZW91dCBvbmx5CisjIGZpcmVzIHdoZW4gYSBiYWNr ZW5kIGFjdHVhbGx5IGJsb2NrcyB3YWl0aW5nIGZvciBhIGxvY2ssIDFtcyBpcyBzdWZmaWNp ZW50LgorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRl c3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6 TW9yZTsKKworbXkgJG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3Zh Y3V1bV9jbHVzdGVyX3RlbXAnKTsKKyRub2RlLT5pbml0OworJG5vZGUtPnN0YXJ0OworCisj IFNlc3Npb24gMTogYnVpbGQgdGhlIHRlbXAgdGFibGUgYW5kIGhvbGQgYSBjb25mbGljdGlu ZyBsb2NrLgorbXkgJHBzcWwxID0gJG5vZGUtPmJhY2tncm91bmRfcHNxbCgncG9zdGdyZXMn KTsKKworJHBzcWwxLT5xdWVyeV9zYWZlKAorCXF7Q1JFQVRFIFRFTVAgVEFCTEUgdGVtcF9y ZXBhY2tfdGVzdCAodmFsIGludCk7CisJICBJTlNFUlQgSU5UTyB0ZW1wX3JlcGFja190ZXN0 IFZBTFVFUyAoMSk7CisJICBDUkVBVEUgSU5ERVggdGVtcF9yZXBhY2tfaWR4IE9OIHRlbXBf cmVwYWNrX3Rlc3QgKHZhbCk7CisJICBDTFVTVEVSIHRlbXBfcmVwYWNrX3Rlc3QgVVNJTkcg dGVtcF9yZXBhY2tfaWR4O30pOworCiskcHNxbDEtPnF1ZXJ5X3NhZmUocXtCRUdJTn0pOwor JHBzcWwxLT5xdWVyeV9zYWZlKHF7TE9DSyBUQUJMRSB0ZW1wX3JlcGFja190ZXN0IElOIEFD Q0VTUyBTSEFSRSBNT0RFfSk7CisKK215ICgkc3Rkb3V0LCAkc3RkZXJyLCAkcmV0KTsKKwor IyBWQUNVVU0gRlVMTCDigJQgcGdfY2xhc3Mgc2NhbiBwYXRoLgorJHJldCA9ICRub2RlLT5w c3FsKAorCSdwb3N0Z3JlcycsCisJIlNFVCBsb2NrX3RpbWVvdXQgPSAnMW1zJzsgVkFDVVVN IEZVTEw7IiwKKwlzdGRvdXQgPT4gXCRzdGRvdXQsCisJc3RkZXJyID0+IFwkc3RkZXJyKTsK K2lzKCRyZXQsIDAsCisJJ1ZBQ1VVTSBGVUxMIGNvbXBsZXRlcyB3aXRob3V0IGJsb2NraW5n IG9uIGFub3RoZXIgc2Vzc2lvbiB0ZW1wIHRhYmxlJyk7CisKKyMgQ0xVU1RFUiDigJQgcGdf aW5kZXggc2NhbiBwYXRoIChpbmRpc2NsdXN0ZXJlZCBlbnRyaWVzKS4KKyRyZXQgPSAkbm9k ZS0+cHNxbCgKKwkncG9zdGdyZXMnLAorCSJTRVQgbG9ja190aW1lb3V0ID0gJzFtcyc7IENM VVNURVI7IiwKKwlzdGRvdXQgPT4gXCRzdGRvdXQsCisJc3RkZXJyID0+IFwkc3RkZXJyKTsK K2lzKCRyZXQsIDAsCisJJ0NMVVNURVIgY29tcGxldGVzIHdpdGhvdXQgYmxvY2tpbmcgb24g YW5vdGhlciBzZXNzaW9uIHRlbXAgdGFibGUnKTsKKworIyBSRVBBQ0sg4oCUIHBnX2NsYXNz IHNjYW4gcGF0aC4KKyRyZXQgPSAkbm9kZS0+cHNxbCgKKwkncG9zdGdyZXMnLAorCSJTRVQg bG9ja190aW1lb3V0ID0gJzFtcyc7IFJFUEFDSzsiLAorCXN0ZG91dCA9PiBcJHN0ZG91dCwK KwlzdGRlcnIgPT4gXCRzdGRlcnIpOworaXMoJHJldCwgMCwKKwknUkVQQUNLIGNvbXBsZXRl cyB3aXRob3V0IGJsb2NraW5nIG9uIGFub3RoZXIgc2Vzc2lvbiB0ZW1wIHRhYmxlJyk7CisK KyRwc3FsMS0+cXVpdDsKKworZG9uZV90ZXN0aW5nKCk7Ci0tIAoyLjQzLjAKCg== --------------jcxrJmTCpWyzbsW08EcAqgLm--