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 1mexoP-00040w-G2 for pgsql-hackers@arkaria.postgresql.org; Mon, 25 Oct 2021 11:06:41 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mexoM-00035l-R8 for pgsql-hackers@arkaria.postgresql.org; Mon, 25 Oct 2021 11:06:38 +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 1mexoM-00035b-E7 for pgsql-hackers@lists.postgresql.org; Mon, 25 Oct 2021 11:06:38 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mexoH-0007WB-NX for pgsql-hackers@postgresql.org; Mon, 25 Oct 2021 11:06:36 +0000 Received: from hrk.local (sp49-98-211-121.msd.spmode.ne.jp [49.98.211.121]) by oss.nttdata.com (Postfix) with ESMTPSA id D76EB6084B; Mon, 25 Oct 2021 20:06:29 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.3 at oss.nttdata.com Subject: Re: Improve the HINT message of the ALTER command for postgres_fdw To: Bharath Rupireddy Cc: bt21masumurak , Daniel Gustafsson , pgsql-hackers References: <557d06cebe19081bfcc83ee2affc98d3@oss.nttdata.com> <250E9750-57EA-45BA-82A4-787CC61F7309@yesql.se> <46864d7a8ca6c2faeb2f9a7a401d47c0@oss.nttdata.com> <595194b4-20e1-58a5-4413-c0c7a1aee004@oss.nttdata.com> <4dbda741-2e88-fd07-c2a6-396d776ccf20@oss.nttdata.com> <33141684-a9bd-aea8-e05c-2826411c70fd@oss.nttdata.com> From: Fujii Masao Message-ID: <29298fbf-6aec-7700-5cff-74e21d5d0e2e@oss.nttdata.com> Date: Mon, 25 Oct 2021 20:06:29 +0900 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------0728CC96E16AD15F18D79910" Content-Language: en-US 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. --------------0728CC96E16AD15F18D79910 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 2021/10/25 16:44, Bharath Rupireddy wrote: > Yeah, let's focus on fixing the hint message here and the > alter_foreign_data_wrapper_options_v3.patch LGTM. Thanks! But since v3 changed the error codes, I got rid of those changes and made v4 patch. Attached. > Why didn't we have a test case for file_fdw? It looks like the > file_fdw contrib module doesn't have any test cases in its sql > directory. I'm not sure if the module code is being covered in > someother tests. You can see the regression test for file_fdw, in contrib/file_fdw/input and output directories. Regards, -- Fujii Masao Advanced Computing Technology Center Research and Development Headquarters NTT DATA CORPORATION --------------0728CC96E16AD15F18D79910 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="alter_foreign_data_wrapper_options_v4.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="alter_foreign_data_wrapper_options_v4.patch" ZGlmZiAtLWdpdCBhL2NvbnRyaWIvZGJsaW5rL2RibGluay5jIGIvY29udHJpYi9kYmxpbmsv ZGJsaW5rLmMKaW5kZXggM2EwYmVhYTg4ZS4uYzhiMGI0ZmYzZiAxMDA2NDQKLS0tIGEvY29u dHJpYi9kYmxpbmsvZGJsaW5rLmMKKysrIGIvY29udHJpYi9kYmxpbmsvZGJsaW5rLmMKQEAg LTIwNTQsOCArMjA1NCwxMCBAQCBkYmxpbmtfZmR3X3ZhbGlkYXRvcihQR19GVU5DVElPTl9B UkdTKQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRFdfT1BU SU9OX05BTUVfTk9UX0ZPVU5EKSwKIAkJCQkJIGVycm1zZygiaW52YWxpZCBvcHRpb24gXCIl c1wiIiwgZGVmLT5kZWZuYW1lKSwKLQkJCQkJIGVycmhpbnQoIlZhbGlkIG9wdGlvbnMgaW4g dGhpcyBjb250ZXh0IGFyZTogJXMiLAotCQkJCQkJCSBidWYuZGF0YSkpKTsKKwkJCQkJIGJ1 Zi5sZW4gPiAwCisJCQkJCSA/IGVycmhpbnQoIlZhbGlkIG9wdGlvbnMgaW4gdGhpcyBjb250 ZXh0IGFyZTogJXMiLAorCQkJCQkJCSAgIGJ1Zi5kYXRhKQorCQkJCQkgOiBlcnJoaW50KCJU aGVyZSBhcmUgbm8gdmFsaWQgb3B0aW9ucyBpbiB0aGlzIGNvbnRleHQuIikpKTsKIAkJfQog CX0KIApkaWZmIC0tZ2l0IGEvY29udHJpYi9kYmxpbmsvZXhwZWN0ZWQvZGJsaW5rLm91dCBi L2NvbnRyaWIvZGJsaW5rL2V4cGVjdGVkL2RibGluay5vdXQKaW5kZXggNjUxNmQ0ZjEzMS4u OTFjYmQ3NDRhOSAxMDA2NDQKLS0tIGEvY29udHJpYi9kYmxpbmsvZXhwZWN0ZWQvZGJsaW5r Lm91dAorKysgYi9jb250cmliL2RibGluay9leHBlY3RlZC9kYmxpbmsub3V0CkBAIC05MTcs NiArOTE3LDEwIEBAIFJFVk9LRSBFWEVDVVRFIE9OIEZVTkNUSU9OIGRibGlua19jb25uZWN0 X3UodGV4dCwgdGV4dCkgRlJPTSByZWdyZXNzX2RibGlua191c2VyCiBEUk9QIFVTRVIgcmVn cmVzc19kYmxpbmtfdXNlcjsKIERST1AgVVNFUiBNQVBQSU5HIEZPUiBwdWJsaWMgU0VSVkVS IGZkdGVzdDsKIERST1AgU0VSVkVSIGZkdGVzdDsKKy0tIHNob3VsZCBmYWlsCitBTFRFUiBG T1JFSUdOIERBVEEgV1JBUFBFUiBkYmxpbmtfZmR3IE9QVElPTlMgKG5vbmV4aXN0ZW50ICdm ZHcnKTsKK0VSUk9SOiAgaW52YWxpZCBvcHRpb24gIm5vbmV4aXN0ZW50IgorSElOVDogIFRo ZXJlIGFyZSBubyB2YWxpZCBvcHRpb25zIGluIHRoaXMgY29udGV4dC4KIC0tIHRlc3QgYXN5 bmNocm9ub3VzIG5vdGlmaWNhdGlvbnMKIFNFTEVDVCBkYmxpbmtfY29ubmVjdChjb25uZWN0 aW9uX3BhcmFtZXRlcnMoKSk7CiAgZGJsaW5rX2Nvbm5lY3QgCmRpZmYgLS1naXQgYS9jb250 cmliL2RibGluay9zcWwvZGJsaW5rLnNxbCBiL2NvbnRyaWIvZGJsaW5rL3NxbC9kYmxpbmsu c3FsCmluZGV4IDNlOTZiOTg1NzEuLjdhNzE4MTdkNjUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIv ZGJsaW5rL3NxbC9kYmxpbmsuc3FsCisrKyBiL2NvbnRyaWIvZGJsaW5rL3NxbC9kYmxpbmsu c3FsCkBAIC00NjMsNiArNDYzLDkgQEAgRFJPUCBVU0VSIHJlZ3Jlc3NfZGJsaW5rX3VzZXI7 CiBEUk9QIFVTRVIgTUFQUElORyBGT1IgcHVibGljIFNFUlZFUiBmZHRlc3Q7CiBEUk9QIFNF UlZFUiBmZHRlc3Q7CiAKKy0tIHNob3VsZCBmYWlsCitBTFRFUiBGT1JFSUdOIERBVEEgV1JB UFBFUiBkYmxpbmtfZmR3IE9QVElPTlMgKG5vbmV4aXN0ZW50ICdmZHcnKTsKKwogLS0gdGVz dCBhc3luY2hyb25vdXMgbm90aWZpY2F0aW9ucwogU0VMRUNUIGRibGlua19jb25uZWN0KGNv bm5lY3Rpb25fcGFyYW1ldGVycygpKTsKIApkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jl c19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3 L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKaW5kZXggNDRjNDM2N2I4Zi4uZmQxNDFhMGZh NSAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNf ZmR3Lm91dAorKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19m ZHcub3V0CkBAIC0xMDc0Niw3ICsxMDc0Niw3IEBAIERST1AgVEFCTEUgam9pbl90Ymw7CiBB TFRFUiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoRFJPUCBhc3luY19jYXBhYmxlKTsKIEFM VEVSIFNFUlZFUiBsb29wYmFjazIgT1BUSU9OUyAoRFJPUCBhc3luY19jYXBhYmxlKTsKIC0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tIHRlc3QgaW52YWxpZCBzZXJ2ZXIgYW5kIGZvcmVpZ24gdGFi bGUgb3B0aW9ucworLS0gdGVzdCBpbnZhbGlkIHNlcnZlciwgZm9yZWlnbiB0YWJsZSBhbmQg Zm9yZWlnbiBkYXRhIHdyYXBwZXIgb3B0aW9ucwogLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gSW52 YWxpZCBmZHdfc3RhcnR1cF9jb3N0IG9wdGlvbgogQ1JFQVRFIFNFUlZFUiBpbnZfc2NzdCBG T1JFSUdOIERBVEEgV1JBUFBFUiBwb3N0Z3Jlc19mZHcKQEAgLTEwNzY0LDMgKzEwNzY0LDcg QEAgRVJST1I6ICBpbnZhbGlkIHZhbHVlIGZvciBpbnRlZ2VyIG9wdGlvbiAiZmV0Y2hfc2l6 ZSI6IDEwMCQlJCMkIwogQ1JFQVRFIEZPUkVJR04gVEFCTEUgaW52X2JzeiAoYzEgaW50ICkK IAlTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoYmF0Y2hfc2l6ZSAnMTAwJCUkIyQjJyk7CiBF UlJPUjogIGludmFsaWQgdmFsdWUgZm9yIGludGVnZXIgb3B0aW9uICJiYXRjaF9zaXplIjog MTAwJCUkIyQjCistLSBObyBvcHRpb24gaXMgYWxsb3dlZCB0byBiZSBzcGVjaWZpZWQgYXQg Zm9yZWlnbiBkYXRhIHdyYXBwZXIgbGV2ZWwKK0FMVEVSIEZPUkVJR04gREFUQSBXUkFQUEVS IHBvc3RncmVzX2ZkdyBPUFRJT05TIChub25leGlzdGVudCAnZmR3Jyk7CitFUlJPUjogIGlu dmFsaWQgb3B0aW9uICJub25leGlzdGVudCIKK0hJTlQ6ICBUaGVyZSBhcmUgbm8gdmFsaWQg b3B0aW9ucyBpbiB0aGlzIGNvbnRleHQuCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVz X2Zkdy9vcHRpb24uYyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L29wdGlvbi5jCmluZGV4IDVi YjFhZjQwODQuLjQ4Yzc0MTdlNmUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3 L29wdGlvbi5jCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L29wdGlvbi5jCkBAIC0xMDcs OCArMTA3LDEwIEBAIHBvc3RncmVzX2Zkd192YWxpZGF0b3IoUEdfRlVOQ1RJT05fQVJHUykK IAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfRkRXX0lOVkFMSURf T1BUSU9OX05BTUUpLAogCQkJCQkgZXJybXNnKCJpbnZhbGlkIG9wdGlvbiBcIiVzXCIiLCBk ZWYtPmRlZm5hbWUpLAotCQkJCQkgZXJyaGludCgiVmFsaWQgb3B0aW9ucyBpbiB0aGlzIGNv bnRleHQgYXJlOiAlcyIsCi0JCQkJCQkJIGJ1Zi5kYXRhKSkpOworCQkJCQkgYnVmLmxlbiA+ IDAKKwkJCQkJID8gZXJyaGludCgiVmFsaWQgb3B0aW9ucyBpbiB0aGlzIGNvbnRleHQgYXJl OiAlcyIsCisJCQkJCQkJICAgYnVmLmRhdGEpCisJCQkJCSA6IGVycmhpbnQoIlRoZXJlIGFy ZSBubyB2YWxpZCBvcHRpb25zIGluIHRoaXMgY29udGV4dC4iKSkpOwogCQl9CiAKIAkJLyoK ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3Fs IGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwKaW5kZXggZTdi ODY5ZjhjZS4uNDNjMzBkNDkyZCAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcv c3FsL3Bvc3RncmVzX2Zkdy5zcWwKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bv c3RncmVzX2Zkdy5zcWwKQEAgLTM0MDksNyArMzQwOSw3IEBAIEFMVEVSIFNFUlZFUiBsb29w YmFjayBPUFRJT05TIChEUk9QIGFzeW5jX2NhcGFibGUpOwogQUxURVIgU0VSVkVSIGxvb3Bi YWNrMiBPUFRJT05TIChEUk9QIGFzeW5jX2NhcGFibGUpOwogCiAtLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSB0ZXN0IGludmFsaWQgc2VydmVyIGFuZCBmb3JlaWduIHRhYmxlIG9wdGlvbnMKKy0t IHRlc3QgaW52YWxpZCBzZXJ2ZXIsIGZvcmVpZ24gdGFibGUgYW5kIGZvcmVpZ24gZGF0YSB3 cmFwcGVyIG9wdGlvbnMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIEludmFsaWQgZmR3X3N0YXJ0 dXBfY29zdCBvcHRpb24KIENSRUFURSBTRVJWRVIgaW52X3Njc3QgRk9SRUlHTiBEQVRBIFdS QVBQRVIgcG9zdGdyZXNfZmR3CkBAIC0zNDIzLDMgKzM0MjMsNiBAQCBDUkVBVEUgRk9SRUlH TiBUQUJMRSBpbnZfZnN6IChjMSBpbnQgKQogLS0gSW52YWxpZCBiYXRjaF9zaXplIG9wdGlv bgogQ1JFQVRFIEZPUkVJR04gVEFCTEUgaW52X2JzeiAoYzEgaW50ICkKIAlTRVJWRVIgbG9v cGJhY2sgT1BUSU9OUyAoYmF0Y2hfc2l6ZSAnMTAwJCUkIyQjJyk7CisKKy0tIE5vIG9wdGlv biBpcyBhbGxvd2VkIHRvIGJlIHNwZWNpZmllZCBhdCBmb3JlaWduIGRhdGEgd3JhcHBlciBs ZXZlbAorQUxURVIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcG9zdGdyZXNfZmR3IE9QVElPTlMg KG5vbmV4aXN0ZW50ICdmZHcnKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2ZvcmVpZ24v Zm9yZWlnbi5jIGIvc3JjL2JhY2tlbmQvZm9yZWlnbi9mb3JlaWduLmMKaW5kZXggNTU2NGRj M2ExZS4uZTA3Y2M1NzQzMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZm9yZWlnbi9mb3Jl aWduLmMKKysrIGIvc3JjL2JhY2tlbmQvZm9yZWlnbi9mb3JlaWduLmMKQEAgLTY3MCw4ICs2 NzAsMTAgQEAgcG9zdGdyZXNxbF9mZHdfdmFsaWRhdG9yKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ CQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiks CiAJCQkJCSBlcnJtc2coImludmFsaWQgb3B0aW9uIFwiJXNcIiIsIGRlZi0+ZGVmbmFtZSks Ci0JCQkJCSBlcnJoaW50KCJWYWxpZCBvcHRpb25zIGluIHRoaXMgY29udGV4dCBhcmU6ICVz IiwKLQkJCQkJCQkgYnVmLmRhdGEpKSk7CisJCQkJCSBidWYubGVuID4gMAorCQkJCQkgPyBl cnJoaW50KCJWYWxpZCBvcHRpb25zIGluIHRoaXMgY29udGV4dCBhcmU6ICVzIiwKKwkJCQkJ CQkgICBidWYuZGF0YSkKKwkJCQkJIDogZXJyaGludCgiVGhlcmUgYXJlIG5vIHZhbGlkIG9w dGlvbnMgaW4gdGhpcyBjb250ZXh0LiIpKSk7CiAKIAkJCVBHX1JFVFVSTl9CT09MKGZhbHNl KTsKIAkJfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JlaWdu X2RhdGEub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JlaWduX2RhdGEub3V0 CmluZGV4IDQyNjA4MGFlMzkuLmE2YTY4ZDFmYTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZm9yZWlnbl9kYXRhLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2ZvcmVpZ25fZGF0YS5vdXQKQEAgLTEwMCw2ICsxMDAsOSBAQCBMSU5FIDE6 IC4uLkdOIERBVEEgV1JBUFBFUiB0ZXN0X2ZkdyBIQU5ETEVSIHRlc3RfZmR3X2hhbmRsZXIg SEFORExFUiBpbi4uLgogQ1JFQVRFIEZPUkVJR04gREFUQSBXUkFQUEVSIHRlc3RfZmR3IEhB TkRMRVIgdGVzdF9mZHdfaGFuZGxlcjsKIERST1AgRk9SRUlHTiBEQVRBIFdSQVBQRVIgdGVz dF9mZHc7CiAtLSBBTFRFUiBGT1JFSUdOIERBVEEgV1JBUFBFUgorQUxURVIgRk9SRUlHTiBE QVRBIFdSQVBQRVIgZm9vIE9QVElPTlMgKG5vbmV4aXN0ZW50ICdmZHcnKTsgICAgICAgICAt LSBFUlJPUgorRVJST1I6ICBpbnZhbGlkIG9wdGlvbiAibm9uZXhpc3RlbnQiCitISU5UOiAg VGhlcmUgYXJlIG5vIHZhbGlkIG9wdGlvbnMgaW4gdGhpcyBjb250ZXh0LgogQUxURVIgRk9S RUlHTiBEQVRBIFdSQVBQRVIgZm9vOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0g RVJST1IKIEVSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIjsiCiBMSU5FIDE6IEFM VEVSIEZPUkVJR04gREFUQSBXUkFQUEVSIGZvbzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2ZvcmVpZ25fZGF0YS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3Jl aWduX2RhdGEuc3FsCmluZGV4IDczZjlmNjIxZDguLmE2NWY0ZmZkY2EgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2ZvcmVpZ25fZGF0YS5zcWwKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZm9yZWlnbl9kYXRhLnNxbApAQCAtNTksNiArNTksOCBAQCBDUkVBVEUg Rk9SRUlHTiBEQVRBIFdSQVBQRVIgdGVzdF9mZHcgSEFORExFUiB0ZXN0X2Zkd19oYW5kbGVy OwogRFJPUCBGT1JFSUdOIERBVEEgV1JBUFBFUiB0ZXN0X2ZkdzsKIAogLS0gQUxURVIgRk9S RUlHTiBEQVRBIFdSQVBQRVIKK0FMVEVSIEZPUkVJR04gREFUQSBXUkFQUEVSIGZvbyBPUFRJ T05TIChub25leGlzdGVudCAnZmR3Jyk7ICAgICAgICAgLS0gRVJST1IKKwogQUxURVIgRk9S RUlHTiBEQVRBIFdSQVBQRVIgZm9vOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0g RVJST1IKIEFMVEVSIEZPUkVJR04gREFUQSBXUkFQUEVSIGZvbyBWQUxJREFUT1IgYmFyOyAg ICAgICAgICAgICAgIC0tIEVSUk9SCiBBTFRFUiBGT1JFSUdOIERBVEEgV1JBUFBFUiBmb28g Tk8gVkFMSURBVE9SOwo= --------------0728CC96E16AD15F18D79910--