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 1nGozA-00052s-0P for pgsql-bugs@arkaria.postgresql.org; Sun, 06 Feb 2022 21:22:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nGoyd-0002j5-7N for pgsql-bugs@arkaria.postgresql.org; Sun, 06 Feb 2022 21:21:43 +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 1nGoyc-0002iv-Sb for pgsql-bugs@lists.postgresql.org; Sun, 06 Feb 2022 21:21:42 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by magus.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nGoyb-0006WY-0D for pgsql-bugs@lists.postgresql.org; Sun, 06 Feb 2022 21:21:42 +0000 Received: from [192.168.28.32] (cyclops.postgrespro.ru [93.174.131.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mail.postgrespro.ru (Postfix) with ESMTPSA id B20F121C3586; Mon, 7 Feb 2022 00:21:39 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1644182499; bh=4gL5ax9lv0PRrCtL1wx0Ve4ZUG3dAjASN7s1S2t6o5g=; h=Date:Subject:To:Cc:References:From:In-Reply-To; b=lNaG7CKgDzo4ketoj/dB0qjvPAcS516gCKhWGK4Nqx2frfCqqbsthqwt2scnMTNk2 o0UDRDH9qRcbVxeT4Kc8l6JYVa2BuUATFRskgl/DTwORw9kqPyN1yTMk7zOx64flL5 Yskanjf4xi7GWazmBCtVanFEPPfDaXOrg9AzLpcM= Content-Type: multipart/mixed; boundary="------------UE3F3ybGzoVY5X2DCeWkfQe0" Message-ID: <6e31c4ef-de9a-960b-1a21-e3b6ff0fa9c2@postgrespro.ru> Date: Mon, 7 Feb 2022 00:21:39 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.5.1 Subject: Re: BUG #17385: "RESET transaction_isolation" inside serializable transaction causes Assert at the transaction end Content-Language: en-US To: Dilip Kumar Cc: Masahiko Sawada , andrewbille@gmail.com, PostgreSQL mailing lists References: <17385-9ee529fb091f0ce5@postgresql.org> From: Dmitry Koval 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. --------------UE3F3ybGzoVY5X2DCeWkfQe0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, I a bit changed Masahiko Sawada's patch with using Dilip Kumar's recommendations (see it in attachment). About testing. The most simple path to testing of command "RESET " (with error) that I found: ---- 1) need to modify "postgresql.conf". Add string: default_table_access_method = 'heapXXX' 2) start PostgreSQL; 3) start "psql" and execute command: RESET default_table_access_method; After that we get an error: ERROR: invalid value for parameter "default_table_access_method": "heapXXX" DETAIL: Table access method "heapXXX" does not exist. Without attached patch command "RESET default_table_access_method;" returns no error. ---- Probably no reason to create new tap-test for this case... With best regards, Dmitry Koval. --------------UE3F3ybGzoVY5X2DCeWkfQe0 Content-Type: text/plain; charset=UTF-8; name="v2_0001-call-check-hook-on-reset.patch" Content-Disposition: attachment; filename="v2_0001-call-check-hook-on-reset.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Yy5jCmluZGV4IGY1MDU0MTNhN2YuLmE2YzM1ZWUyMWYgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWMuYwpAQCAtNzYxMSwxOSArNzYxMSwyNyBAQCBzZXRfY29uZmlnX29w dGlvbihjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSwKIAkJCQkJCQkJCQkJ CSAgJm5ld3ZhbF91bmlvbiwgJm5ld2V4dHJhKSkKIAkJCQkJCXJldHVybiAwOwogCQkJCX0K LQkJCQllbHNlIGlmIChzb3VyY2UgPT0gUEdDX1NfREVGQVVMVCkKKwkJCQllbHNlCiAJCQkJ ewotCQkJCQluZXd2YWwgPSBjb25mLT5ib290X3ZhbDsKKwkJCQkJaWYgKHNvdXJjZSAhPSBQ R0NfU19ERUZBVUxUKQorCQkJCQkJbmV3dmFsID0gY29uZi0+cmVzZXRfdmFsOworCQkJCQll bHNlCisJCQkJCQluZXd2YWwgPSBjb25mLT5ib290X3ZhbDsKKwogCQkJCQlpZiAoIWNhbGxf Ym9vbF9jaGVja19ob29rKGNvbmYsICZuZXd2YWwsICZuZXdleHRyYSwKIAkJCQkJCQkJCQkJ ICBzb3VyY2UsIGVsZXZlbCkpCiAJCQkJCQlyZXR1cm4gMDsKLQkJCQl9Ci0JCQkJZWxzZQot CQkJCXsKLQkJCQkJbmV3dmFsID0gY29uZi0+cmVzZXRfdmFsOwotCQkJCQluZXdleHRyYSA9 IGNvbmYtPnJlc2V0X2V4dHJhOwotCQkJCQlzb3VyY2UgPSBjb25mLT5nZW4ucmVzZXRfc291 cmNlOwotCQkJCQljb250ZXh0ID0gY29uZi0+Z2VuLnJlc2V0X3Njb250ZXh0OworCisJCQkJ CWlmIChzb3VyY2UgIT0gUEdDX1NfREVGQVVMVCkKKwkJCQkJeworCQkJCQkJLyogUmVsZWFz ZSBuZXdleHRyYSBhcyB3ZSB1c2UgcmVzZXRfZXh0cmEgKi8KKwkJCQkJCWlmIChuZXdleHRy YSkKKwkJCQkJCQlmcmVlKG5ld2V4dHJhKTsKKworCQkJCQkJbmV3ZXh0cmEgPSBjb25mLT5y ZXNldF9leHRyYTsKKwkJCQkJCXNvdXJjZSA9IGNvbmYtPmdlbi5yZXNldF9zb3VyY2U7CisJ CQkJCQljb250ZXh0ID0gY29uZi0+Z2VuLnJlc2V0X3Njb250ZXh0OworCQkJCQl9CiAJCQkJ fQogCiAJCQkJaWYgKHByb2hpYml0VmFsdWVDaGFuZ2UpCkBAIC03NzA1LDE5ICs3NzEzLDMw IEBAIHNldF9jb25maWdfb3B0aW9uKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZh bHVlLAogCQkJCQkJCQkJCQkJICAmbmV3dmFsX3VuaW9uLCAmbmV3ZXh0cmEpKQogCQkJCQkJ cmV0dXJuIDA7CiAJCQkJfQotCQkJCWVsc2UgaWYgKHNvdXJjZSA9PSBQR0NfU19ERUZBVUxU KQorCQkJCWVsc2UKIAkJCQl7Ci0JCQkJCW5ld3ZhbCA9IGNvbmYtPmJvb3RfdmFsOworCQkJ CQlpZiAoc291cmNlICE9IFBHQ19TX0RFRkFVTFQpCisJCQkJCQluZXd2YWwgPSBjb25mLT5y ZXNldF92YWw7CisJCQkJCWVsc2UKKwkJCQkJCW5ld3ZhbCA9IGNvbmYtPmJvb3RfdmFsOwor CiAJCQkJCWlmICghY2FsbF9pbnRfY2hlY2tfaG9vayhjb25mLCAmbmV3dmFsLCAmbmV3ZXh0 cmEsCiAJCQkJCQkJCQkJCSBzb3VyY2UsIGVsZXZlbCkpCiAJCQkJCQlyZXR1cm4gMDsKLQkJ CQl9Ci0JCQkJZWxzZQotCQkJCXsKLQkJCQkJbmV3dmFsID0gY29uZi0+cmVzZXRfdmFsOwot CQkJCQluZXdleHRyYSA9IGNvbmYtPnJlc2V0X2V4dHJhOwotCQkJCQlzb3VyY2UgPSBjb25m LT5nZW4ucmVzZXRfc291cmNlOwotCQkJCQljb250ZXh0ID0gY29uZi0+Z2VuLnJlc2V0X3Nj b250ZXh0OworCisJCQkJCWlmIChzb3VyY2UgIT0gUEdDX1NfREVGQVVMVCkKKwkJCQkJewor CQkJCQkJLyogUmVsZWFzZSBuZXdleHRyYSBhcyB3ZSB1c2UgcmVzZXRfZXh0cmEgKi8KKwkJ CQkJCWlmIChuZXdleHRyYSkKKwkJCQkJCXsKKwkJCQkJCQlBc3NlcnQoIWV4dHJhX2ZpZWxk X3VzZWQoJmNvbmYtPmdlbiwgbmV3ZXh0cmEpKTsKKwkJCQkJCQlmcmVlKG5ld2V4dHJhKTsK KwkJCQkJCX0KKworCQkJCQkJbmV3ZXh0cmEgPSBjb25mLT5yZXNldF9leHRyYTsKKwkJCQkJ CXNvdXJjZSA9IGNvbmYtPmdlbi5yZXNldF9zb3VyY2U7CisJCQkJCQljb250ZXh0ID0gY29u Zi0+Z2VuLnJlc2V0X3Njb250ZXh0OworCQkJCQl9CiAJCQkJfQogCiAJCQkJaWYgKHByb2hp Yml0VmFsdWVDaGFuZ2UpCkBAIC03Nzk5LDE5ICs3ODE4LDI3IEBAIHNldF9jb25maWdfb3B0 aW9uKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlLAogCQkJCQkJCQkJCQkJ ICAmbmV3dmFsX3VuaW9uLCAmbmV3ZXh0cmEpKQogCQkJCQkJcmV0dXJuIDA7CiAJCQkJfQot CQkJCWVsc2UgaWYgKHNvdXJjZSA9PSBQR0NfU19ERUZBVUxUKQorCQkJCWVsc2UKIAkJCQl7 Ci0JCQkJCW5ld3ZhbCA9IGNvbmYtPmJvb3RfdmFsOworCQkJCQlpZiAoc291cmNlICE9IFBH Q19TX0RFRkFVTFQpCisJCQkJCQluZXd2YWwgPSBjb25mLT5yZXNldF92YWw7CisJCQkJCWVs c2UKKwkJCQkJCW5ld3ZhbCA9IGNvbmYtPmJvb3RfdmFsOworCiAJCQkJCWlmICghY2FsbF9y ZWFsX2NoZWNrX2hvb2soY29uZiwgJm5ld3ZhbCwgJm5ld2V4dHJhLAogCQkJCQkJCQkJCQkg IHNvdXJjZSwgZWxldmVsKSkKIAkJCQkJCXJldHVybiAwOwotCQkJCX0KLQkJCQllbHNlCi0J CQkJewotCQkJCQluZXd2YWwgPSBjb25mLT5yZXNldF92YWw7Ci0JCQkJCW5ld2V4dHJhID0g Y29uZi0+cmVzZXRfZXh0cmE7Ci0JCQkJCXNvdXJjZSA9IGNvbmYtPmdlbi5yZXNldF9zb3Vy Y2U7Ci0JCQkJCWNvbnRleHQgPSBjb25mLT5nZW4ucmVzZXRfc2NvbnRleHQ7CisKKwkJCQkJ aWYgKHNvdXJjZSAhPSBQR0NfU19ERUZBVUxUKQorCQkJCQl7CisJCQkJCQkvKiBSZWxlYXNl IG5ld2V4dHJhIGFzIHdlIHVzZSByZXNldF9leHRyYSAqLworCQkJCQkJaWYgKG5ld2V4dHJh KQorCQkJCQkJCWZyZWUobmV3ZXh0cmEpOworCisJCQkJCQluZXdleHRyYSA9IGNvbmYtPnJl c2V0X2V4dHJhOworCQkJCQkJc291cmNlID0gY29uZi0+Z2VuLnJlc2V0X3NvdXJjZTsKKwkJ CQkJCWNvbnRleHQgPSBjb25mLT5nZW4ucmVzZXRfc2NvbnRleHQ7CisJCQkJCX0KIAkJCQl9 CiAKIAkJCQlpZiAocHJvaGliaXRWYWx1ZUNoYW5nZSkKQEAgLTc4OTMsMTIgKzc5MjAsMTkg QEAgc2V0X2NvbmZpZ19vcHRpb24oY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFs dWUsCiAJCQkJCQkJCQkJCQkgICZuZXd2YWxfdW5pb24sICZuZXdleHRyYSkpCiAJCQkJCQly ZXR1cm4gMDsKIAkJCQl9Ci0JCQkJZWxzZSBpZiAoc291cmNlID09IFBHQ19TX0RFRkFVTFQp CisJCQkJZWxzZQogCQkJCXsKLQkJCQkJLyogbm9uLU5VTEwgYm9vdF92YWwgbXVzdCBhbHdh eXMgZ2V0IHN0cmR1cCdkICovCi0JCQkJCWlmIChjb25mLT5ib290X3ZhbCAhPSBOVUxMKQor CQkJCQljb25zdCBjaGFyICpjb25mdmFsOworCisJCQkJCWlmIChzb3VyY2UgIT0gUEdDX1Nf REVGQVVMVCkKKwkJCQkJCWNvbmZ2YWwgPSBjb25mLT5yZXNldF92YWw7CisJCQkJCWVsc2UK KwkJCQkJCWNvbmZ2YWwgPSBjb25mLT5ib290X3ZhbDsKKworCQkJCQkvKiBub24tTlVMTCB2 YWx1ZSBtdXN0IGFsd2F5cyBnZXQgc3RyZHVwJ2QgKi8KKwkJCQkJaWYgKGNvbmZ2YWwpCiAJ CQkJCXsKLQkJCQkJCW5ld3ZhbCA9IGd1Y19zdHJkdXAoZWxldmVsLCBjb25mLT5ib290X3Zh bCk7CisJCQkJCQluZXd2YWwgPSBndWNfc3RyZHVwKGVsZXZlbCwgY29uZnZhbCk7CiAJCQkJ CQlpZiAobmV3dmFsID09IE5VTEwpCiAJCQkJCQkJcmV0dXJuIDA7CiAJCQkJCX0KQEAgLTc5 MTEsMTcgKzc5NDUsMjkgQEAgc2V0X2NvbmZpZ19vcHRpb24oY29uc3QgY2hhciAqbmFtZSwg Y29uc3QgY2hhciAqdmFsdWUsCiAJCQkJCQlmcmVlKG5ld3ZhbCk7CiAJCQkJCQlyZXR1cm4g MDsKIAkJCQkJfQotCQkJCX0KLQkJCQllbHNlCi0JCQkJewotCQkJCQkvKgotCQkJCQkgKiBz dHJkdXAgbm90IG5lZWRlZCwgc2luY2UgcmVzZXRfdmFsIGlzIGFscmVhZHkgdW5kZXIKLQkJ CQkJICogZ3VjLmMncyBjb250cm9sCi0JCQkJCSAqLwotCQkJCQluZXd2YWwgPSBjb25mLT5y ZXNldF92YWw7Ci0JCQkJCW5ld2V4dHJhID0gY29uZi0+cmVzZXRfZXh0cmE7Ci0JCQkJCXNv dXJjZSA9IGNvbmYtPmdlbi5yZXNldF9zb3VyY2U7Ci0JCQkJCWNvbnRleHQgPSBjb25mLT5n ZW4ucmVzZXRfc2NvbnRleHQ7CisKKwkJCQkJaWYgKHNvdXJjZSAhPSBQR0NfU19ERUZBVUxU KQorCQkJCQl7CisJCQkJCQkvKiBSZWxlYXNlIG5ld2V4dHJhIGFzIHdlIHVzZSByZXNldF9l eHRyYSAqLworCQkJCQkJaWYgKG5ld2V4dHJhKQorCQkJCQkJCWZyZWUobmV3ZXh0cmEpOwor CisJCQkJCQkvKgorCQkJCQkJICogUmVsZWFzZSBuZXd2YWwgKGFmdGVyIGd1Y19zdHJkdXAp IGJlZm9yZQorCQkJCQkJICogb3ZlcndyaXRpbmcKKwkJCQkJCSAqLworCQkJCQkJaWYgKG5l d3ZhbCkKKwkJCQkJCQlmcmVlKG5ld3ZhbCk7CisKKwkJCQkJCS8qCisJCQkJCQkgKiBzdHJk dXAgbm90IG5lZWRlZCwgc2luY2UgcmVzZXRfdmFsIGlzIGFscmVhZHkgdW5kZXIKKwkJCQkJ CSAqIGd1Yy5jJ3MgY29udHJvbAorCQkJCQkJICovCisJCQkJCQluZXd2YWwgPSBjb25mLT5y ZXNldF92YWw7CisJCQkJCQluZXdleHRyYSA9IGNvbmYtPnJlc2V0X2V4dHJhOworCQkJCQkJ c291cmNlID0gY29uZi0+Z2VuLnJlc2V0X3NvdXJjZTsKKwkJCQkJCWNvbnRleHQgPSBjb25m LT5nZW4ucmVzZXRfc2NvbnRleHQ7CisJCQkJCX0KIAkJCQl9CiAKIAkJCQlpZiAocHJvaGli aXRWYWx1ZUNoYW5nZSkKQEAgLTgwMTgsMTkgKzgwNjQsMjcgQEAgc2V0X2NvbmZpZ19vcHRp b24oY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUsCiAJCQkJCQkJCQkJCQkg ICZuZXd2YWxfdW5pb24sICZuZXdleHRyYSkpCiAJCQkJCQlyZXR1cm4gMDsKIAkJCQl9Ci0J CQkJZWxzZSBpZiAoc291cmNlID09IFBHQ19TX0RFRkFVTFQpCisJCQkJZWxzZQogCQkJCXsK LQkJCQkJbmV3dmFsID0gY29uZi0+Ym9vdF92YWw7CisJCQkJCWlmIChzb3VyY2UgIT0gUEdD X1NfREVGQVVMVCkKKwkJCQkJCW5ld3ZhbCA9IGNvbmYtPnJlc2V0X3ZhbDsKKwkJCQkJZWxz ZQorCQkJCQkJbmV3dmFsID0gY29uZi0+Ym9vdF92YWw7CisKIAkJCQkJaWYgKCFjYWxsX2Vu dW1fY2hlY2tfaG9vayhjb25mLCAmbmV3dmFsLCAmbmV3ZXh0cmEsCiAJCQkJCQkJCQkJCSAg c291cmNlLCBlbGV2ZWwpKQogCQkJCQkJcmV0dXJuIDA7Ci0JCQkJfQotCQkJCWVsc2UKLQkJ CQl7Ci0JCQkJCW5ld3ZhbCA9IGNvbmYtPnJlc2V0X3ZhbDsKLQkJCQkJbmV3ZXh0cmEgPSBj b25mLT5yZXNldF9leHRyYTsKLQkJCQkJc291cmNlID0gY29uZi0+Z2VuLnJlc2V0X3NvdXJj ZTsKLQkJCQkJY29udGV4dCA9IGNvbmYtPmdlbi5yZXNldF9zY29udGV4dDsKKworCQkJCQlp ZiAoc291cmNlICE9IFBHQ19TX0RFRkFVTFQpCisJCQkJCXsKKwkJCQkJCS8qIFJlbGVhc2Ug bmV3ZXh0cmEgYXMgd2UgdXNlIHJlc2V0X2V4dHJhICovCisJCQkJCQlpZiAobmV3ZXh0cmEp CisJCQkJCQkJZnJlZShuZXdleHRyYSk7CisKKwkJCQkJCW5ld2V4dHJhID0gY29uZi0+cmVz ZXRfZXh0cmE7CisJCQkJCQlzb3VyY2UgPSBjb25mLT5nZW4ucmVzZXRfc291cmNlOworCQkJ CQkJY29udGV4dCA9IGNvbmYtPmdlbi5yZXNldF9zY29udGV4dDsKKwkJCQkJfQogCQkJCX0K IAogCQkJCWlmIChwcm9oaWJpdFZhbHVlQ2hhbmdlKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC90cmFuc2FjdGlvbnMub3V0CmluZGV4IDYxODYyZDU5NWQuLjFmMzAxZjMwMzMg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHJhbnNhY3Rpb25zLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyYW5zYWN0aW9ucy5vdXQKQEAg LTQwLDYgKzQwLDM4IEBAIFNFTEVDVCAqIEZST00gYWdndGVzdDsKICAgNDIgfCAgMzI0Ljc4 CiAoNCByb3dzKQogCistLSBUZXN0IHRoYXQgd2UgZGlzYWxsb3cgY2hhbmdpbmcgdHJhbnNh Y3Rpb24gY2hhcmFjdGVyaXN0aWNzIGFmdGVyIHRoZQorLS0gZmlyc3Qgc25hcHNob3QgYWNx dWlzaXRpb24uCitCRUdJTiBUUkFOU0FDVElPTiBJU09MQVRJT04gTEVWRUwgU0VSSUFMSVpB QkxFOyAtLSBvaworU0VMRUNUIGNvdW50KCopIEZST00geGFjdHRlc3Q7IC0tIG9rCisgY291 bnQgCistLS0tLS0tCisgICAgIDUKKygxIHJvdykKKworUkVTRVQgdHJhbnNhY3Rpb25faXNv bGF0aW9uOyAtLSBmYWlsCitFUlJPUjogIFNFVCBUUkFOU0FDVElPTiBJU09MQVRJT04gTEVW RUwgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGFueSBxdWVyeQorQ09NTUlUOworQkVHSU4gVFJB TlNBQ1RJT04gUkVBRCBPTkxZOyAtLSBvaworU0VMRUNUIGNvdW50KCopIEZST00geGFjdHRl c3Q7IC0tIG9rCisgY291bnQgCistLS0tLS0tCisgICAgIDUKKygxIHJvdykKKworUkVTRVQg dHJhbnNhY3Rpb25fcmVhZF9vbmx5OyAtLSBmYWlsCitFUlJPUjogIHRyYW5zYWN0aW9uIHJl YWQtd3JpdGUgbW9kZSBtdXN0IGJlIHNldCBiZWZvcmUgYW55IHF1ZXJ5CitDT01NSVQ7CitC RUdJTiBUUkFOU0FDVElPTiBERUZFUlJBQkxFOyAtLSBvaworU0VMRUNUIGNvdW50KCopIEZS T00geGFjdHRlc3Q7IC0tIG9rCisgY291bnQgCistLS0tLS0tCisgICAgIDUKKygxIHJvdykK KworUkVTRVQgdHJhbnNhY3Rpb25fZGVmZXJyYWJsZTsgLS0gZmFpbAorRVJST1I6ICBTRVQg VFJBTlNBQ1RJT04gW05PVF0gREVGRVJSQUJMRSBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgYW55 IHF1ZXJ5CitDT01NSVQ7CiAtLSBSZWFkLW9ubHkgdGVzdHMKIENSRUFURSBUQUJMRSB3cml0 ZXRlc3QgKGEgaW50KTsKIENSRUFURSBURU1QT1JBUlkgVEFCTEUgdGVtcHRlc3QgKGEgaW50 KTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RyYW5zYWN0aW9ucy5zcWwg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC90cmFuc2FjdGlvbnMuc3FsCmluZGV4IDg4ODYyODBj MGEuLmI0YjliNDNmNzcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RyYW5z YWN0aW9ucy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdHJhbnNhY3Rpb25zLnNx bApAQCAtMzMsNiArMzMsMjIgQEAgU0VMRUNUIG9pZCBGUk9NIHBnX2NsYXNzIFdIRVJFIHJl bG5hbWUgPSAnZGlzYXBwZWFyJzsKIC0tIHNob3VsZCBoYXZlIG1lbWJlcnMgYWdhaW4KIFNF TEVDVCAqIEZST00gYWdndGVzdDsKIAorLS0gVGVzdCB0aGF0IHdlIGRpc2FsbG93IGNoYW5n aW5nIHRyYW5zYWN0aW9uIGNoYXJhY3RlcmlzdGljcyBhZnRlciB0aGUKKy0tIGZpcnN0IHNu YXBzaG90IGFjcXVpc2l0aW9uLgorQkVHSU4gVFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVM IFNFUklBTElaQUJMRTsgLS0gb2sKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHhhY3R0ZXN0OyAt LSBvaworUkVTRVQgdHJhbnNhY3Rpb25faXNvbGF0aW9uOyAtLSBmYWlsCitDT01NSVQ7CisK K0JFR0lOIFRSQU5TQUNUSU9OIFJFQUQgT05MWTsgLS0gb2sKK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHhhY3R0ZXN0OyAtLSBvaworUkVTRVQgdHJhbnNhY3Rpb25fcmVhZF9vbmx5OyAtLSBm YWlsCitDT01NSVQ7CisKK0JFR0lOIFRSQU5TQUNUSU9OIERFRkVSUkFCTEU7IC0tIG9rCitT RUxFQ1QgY291bnQoKikgRlJPTSB4YWN0dGVzdDsgLS0gb2sKK1JFU0VUIHRyYW5zYWN0aW9u X2RlZmVycmFibGU7IC0tIGZhaWwKK0NPTU1JVDsKIAogLS0gUmVhZC1vbmx5IHRlc3RzCiAK --------------UE3F3ybGzoVY5X2DCeWkfQe0--