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 1obQbW-0005bD-41 for pgsql-hackers@arkaria.postgresql.org; Thu, 22 Sep 2022 18:07:19 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1obQaW-0006Qm-NY for pgsql-hackers@arkaria.postgresql.org; Thu, 22 Sep 2022 18:06:16 +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 1obQaW-0006Qd-5G for pgsql-hackers@lists.postgresql.org; Thu, 22 Sep 2022 18:06:16 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by magus.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1obQaO-0003tx-FF for pgsql-hackers@postgresql.org; Thu, 22 Sep 2022 18:06:15 +0000 Received: from mail.postgrespro.ru (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 409FF21C4888; Thu, 22 Sep 2022 21:06:07 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1663869967; bh=khAJ3PF5TcvuXoTVrDPHuxWTXhtC6B1CNPG4+MRLpYI=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=fcs7cq/EVwfow3gTEmaqNszaQLy5UI1LFtkUHt0dinu+Qgfkm8+6IBYfPJxDGxYcO XJwLX1ghsp5NUiD1q/dD3DPl/JmuIuKRXPBkEPzXJlGCdqsGBTOltZ/CBOQDZMoML8 9oz9ISipyVTprEpjdZdswZUsBiInnOhHIcULeK4I= MIME-Version: 1.0 Date: Thu, 22 Sep 2022 21:06:07 +0300 From: Marina Polyakova To: Peter Eisentraut Cc: Kyotaro Horiguchi , pgsql-hackers@postgresql.org, pryzby@telsasoft.com, rjuju123@gmail.com, daniel@manitou-mail.org, AndrewBille@gmail.com, michael@paquier.xyz Subject: Re: ICU for global collation In-Reply-To: References: <1f86f120-7b02-68f6-a434-132d054afe33@enterprisedb.com> <38d2aac40a991b20adf032e509c6eff5@postgrespro.ru> <6dd6db0984d86a51b7255ba79f111971@postgrespro.ru> <20220915.155210.529619933474389138.horikyota.ntt@gmail.com> <65ef1a8a-1fc3-3dc3-c7aa-6b9f649014b2@enterprisedb.com> <9ba4cd1ea6ed6b7b15c0ff15e6f540cd@postgrespro.ru> <218b963e-dd66-626a-abd8-962afb587876@enterprisedb.com> <36737f855bf3c44e701097cafd0ee2c9@postgrespro.ru> User-Agent: Roundcube Webmail/1.4.11 Message-ID: X-Sender: m.polyakova@postgrespro.ru Organization: Postgres Professional Content-Type: multipart/mixed; boundary="=_7a13c5bf10561c0b45b19453fb096827" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_7a13c5bf10561c0b45b19453fb096827 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2022-09-21 17:53, Peter Eisentraut wrote: > Committed with that test, thanks. I think that covers all the ICU > issues you reported for PG15 for now? I thought about the order of the ICU checks - if it is ok to check that the selected encoding is supported by ICU after printing all the locale & encoding information, why not to move almost all the ICU checks here?.. Examples of the work of the attached patch: 1. ICU locale vs supported encoding: 1.1. $ initdb --encoding sql-ascii --locale-provider icu hoge ... initdb: error: encoding mismatch initdb: detail: The encoding you selected (SQL_ASCII) is not supported with the ICU provider. initdb: hint: Rerun initdb and either do not specify an encoding explicitly, or choose a matching combination. 1.2. (like before) $ initdb --encoding sql-ascii --icu-locale en-US hoge initdb: error: --icu-locale cannot be specified unless locale provider "icu" is chosen $ createdb --encoding sql-ascii --icu-locale en-US hoge createdb: error: database creation failed: ERROR: ICU locale cannot be specified unless locale provider is ICU 2. For builds without ICU: 2.1. $ initdb --locale-provider icu hoge ... initdb: error: ICU is not supported in this build $ createdb --locale-provider icu hoge createdb: error: database creation failed: ERROR: ICU is not supported in this build 2.2. (like before) $ initdb --icu-locale en-US hoge initdb: error: --icu-locale cannot be specified unless locale provider "icu" is chosen $ createdb --icu-locale en-US hoge createdb: error: database creation failed: ERROR: ICU locale cannot be specified unless locale provider is ICU 2.3. $ createdb --locale-provider icu --icu-locale en-US --encoding sql-ascii hoge createdb: error: database creation failed: ERROR: ICU is not supported in this build 4. About errors in initdb: 4.1. If icu_locale is not specified, but it is required, then we get this: $ initdb --locale-provider icu hoge The files belonging to this database system will be owned by user "marina". This user must also own the server process. The database cluster will be initialized with this locale configuration: provider: icu LC_COLLATE: en_US.UTF-8 LC_CTYPE: en_US.UTF-8 LC_MESSAGES: en_US.UTF-8 LC_MONETARY: ru_RU.UTF-8 LC_NUMERIC: ru_RU.UTF-8 LC_TIME: ru_RU.UTF-8 The default database encoding has been set to "UTF8". initdb: error: ICU locale must be specified Almost the same if ICU is not supported in this build: $ initdb --locale-provider icu hoge The files belonging to this database system will be owned by user "marina". This user must also own the server process. The database cluster will be initialized with this locale configuration: provider: icu LC_COLLATE: en_US.UTF-8 LC_CTYPE: en_US.UTF-8 LC_MESSAGES: en_US.UTF-8 LC_MONETARY: ru_RU.UTF-8 LC_NUMERIC: ru_RU.UTF-8 LC_TIME: ru_RU.UTF-8 The default database encoding has been set to "UTF8". initdb: error: ICU is not supported in this build 4.2. If icu_locale is specified for the wrong provider, the error will be at the beginning of the program start as before: $ initdb --icu-locale en-US hoge initdb: error: --icu-locale cannot be specified unless locale provider "icu" is chosen -- Marina Polyakova Postgres Professional: http://www.postgrespro.com The Russian Postgres Company --=_7a13c5bf10561c0b45b19453fb096827 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=diff_icu_options_check_order.patch Content-Disposition: attachment; filename=diff_icu_options_check_order.patch; size=8728 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2RiY29tbWFuZHMuYyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2RiY29tbWFuZHMuYwppbmRleCBlMDc1M2MxYmFkY2MyOTllMmJhYzQ1ZjNi ZGQyZjIzZjU5ZDcwY2JjLi4yNTg5YTI1MjNlMDdjOTU0M2M5OWM3ZDdiNDQ2NDM4ZDYyMzgyYjg5 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kYmNvbW1hbmRzLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5kcy5jCkBAIC0xMDMwLDYgKzEwMzAsMTEgQEAgY3Jl YXRlZGIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBDcmVhdGVkYlN0bXQgKnN0bXQpCiAKIAlp ZiAoZGJsb2Nwcm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVKQogCXsKKyNpZm5kZWYgVVNFX0lD VQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKKwkJCQkgZXJybXNnKCJJQ1UgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJ1aWxk IikpKTsKKyNlbHNlCiAJCWlmICghKGlzX2VuY29kaW5nX3N1cHBvcnRlZF9ieV9pY3UoZW5jb2Rp bmcpKSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9Q QVJBTUVURVJfVkFMVUUpLApAQCAtMTA0Niw2ICsxMDUxLDcgQEAgY3JlYXRlZGIoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBjb25zdCBDcmVhdGVkYlN0bXQgKnN0bXQpCiAJCQkJCSBlcnJtc2coIklDVSBs b2NhbGUgbXVzdCBiZSBzcGVjaWZpZWQiKSkpOwogCiAJCWNoZWNrX2ljdV9sb2NhbGUoZGJpY3Vs b2NhbGUpOworI2VuZGlmCiAJfQogCWVsc2UKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvcGdfbG9jYWxlLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlLmMK aW5kZXggMmI0MmQ5Y2NkOGI3NTFiY2I1Y2RhM2ExZjRjNzgwM2E2OGJjMGE0YS4uNzQzZjExZTFk MWZkNjJkNTAwZmMyODQ2OTc2NDcyZDEzZTA4MDQ2YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3BnX2xvY2FsZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19sb2Nh bGUuYwpAQCAtMTk0NSwxNSArMTk0NSwxMiBAQCBpY3Vfc2V0X2NvbGxhdGlvbl9hdHRyaWJ1dGVz KFVDb2xsYXRvciAqY29sbGF0b3IsIGNvbnN0IGNoYXIgKmxvYykKIAl9CiB9CiAKLSNlbmRpZgkJ CQkJCQkvKiBVU0VfSUNVICovCi0KIC8qCiAgKiBDaGVjayBpZiB0aGUgZ2l2ZW4gbG9jYWxlIElE IGlzIHZhbGlkLCBhbmQgZXJlcG9ydChFUlJPUikgaWYgaXQgaXNuJ3QuCiAgKi8KIHZvaWQKIGNo ZWNrX2ljdV9sb2NhbGUoY29uc3QgY2hhciAqaWN1X2xvY2FsZSkKIHsKLSNpZmRlZiBVU0VfSUNV CiAJVUNvbGxhdG9yICAqY29sbGF0b3I7CiAJVUVycm9yQ29kZQlzdGF0dXM7CiAKQEAgLTE5Njcs MTMgKzE5NjQsMTAgQEAgY2hlY2tfaWN1X2xvY2FsZShjb25zdCBjaGFyICppY3VfbG9jYWxlKQog CWlmIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA8IDU0KQogCQlpY3Vfc2V0X2NvbGxhdGlvbl9h dHRyaWJ1dGVzKGNvbGxhdG9yLCBpY3VfbG9jYWxlKTsKIAl1Y29sX2Nsb3NlKGNvbGxhdG9yKTsK LSNlbHNlCi0JZXJlcG9ydChFUlJPUiwKLQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1Rf U1VQUE9SVEVEKSwKLQkJCSBlcnJtc2coIklDVSBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnVp bGQiKSkpOwotI2VuZGlmCiB9CiAKKyNlbmRpZgkJCQkJCQkvKiBVU0VfSUNVICovCisKIC8qCiAg KiBUaGVzZSBmdW5jdGlvbnMgY29udmVydCBmcm9tL3RvIGxpYmMncyB3Y2hhcl90LCAqbm90KiBw Z193Y2hhcl90LgogICogVGhlcmVmb3JlIHdlIGtlZXAgdGhlbSBoZXJlIHJhdGhlciB0aGFuIHdp dGggdGhlIG1idXRpbHMgY29kZS4KZGlmZiAtLWdpdCBhL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5j IGIvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKaW5kZXggZjYxYTA0MzA1NTkwYzdkMDllYzU5ZmUy MDJkNmYyMmMwYTYwNTgyNy4uODJlNjY0NGY4OWIwNzAwNGMwNjc3ODVjODZjYWQ4M2UxMGIxMjgy YyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKKysrIGIvc3JjL2Jpbi9pbml0 ZGIvaW5pdGRiLmMKQEAgLTIwNDcsOSArMjA0NywxMiBAQCBjaGVja19sb2NhbGVfZW5jb2Rpbmco Y29uc3QgY2hhciAqbG9jYWxlLCBpbnQgdXNlcl9lbmMpCiAgKgogICogdGhpcyBzaG91bGQgbWF0 Y2ggdGhlIHNpbWlsYXIgY2hlY2sgaW4gdGhlIGJhY2tlbmQgY3JlYXRlZGIoKSBmdW5jdGlvbgog ICovCi1zdGF0aWMgYm9vbAorc3RhdGljIHZvaWQKIGNoZWNrX2ljdV9sb2NhbGVfZW5jb2Rpbmco aW50IHVzZXJfZW5jKQogeworI2lmbmRlZiBVU0VfSUNVCisJcGdfZmF0YWwoIklDVSBpcyBub3Qg c3VwcG9ydGVkIGluIHRoaXMgYnVpbGQiKTsKKyNlbHNlCiAJaWYgKCEoaXNfZW5jb2Rpbmdfc3Vw cG9ydGVkX2J5X2ljdSh1c2VyX2VuYykpKQogCXsKIAkJcGdfbG9nX2Vycm9yKCJlbmNvZGluZyBt aXNtYXRjaCIpOwpAQCAtMjA1OCw5ICsyMDYxLDE3IEBAIGNoZWNrX2ljdV9sb2NhbGVfZW5jb2Rp bmcoaW50IHVzZXJfZW5jKQogCQlwZ19sb2dfZXJyb3JfaGludCgiUmVydW4gJXMgYW5kIGVpdGhl ciBkbyBub3Qgc3BlY2lmeSBhbiBlbmNvZGluZyBleHBsaWNpdGx5LCAiCiAJCQkJCQkgICJvciBj aG9vc2UgYSBtYXRjaGluZyBjb21iaW5hdGlvbi4iLAogCQkJCQkJICBwcm9nbmFtZSk7Ci0JCXJl dHVybiBmYWxzZTsKKwkJZXhpdCgxKTsKIAl9Ci0JcmV0dXJuIHRydWU7CisKKwlpZiAoIWljdV9s b2NhbGUpCisJCXBnX2ZhdGFsKCJJQ1UgbG9jYWxlIG11c3QgYmUgc3BlY2lmaWVkIik7CisKKwkv KgorCSAqIEluIHN1cHBvcnRlZCBidWlsZHMsIHRoZSBJQ1UgbG9jYWxlIElEIHdpbGwgYmUgY2hl Y2tlZCBieSB0aGUgYmFja2VuZAorCSAqIGR1cmluZyBwb3N0LWJvb3RzdHJhcCBpbml0aWFsaXph dGlvbi4KKwkgKi8KKyNlbmRpZgogfQogCiAvKgpAQCAtMjExMywyMCArMjEyNCw2IEBAIHNldGxv Y2FsZXModm9pZCkKIAljaGVja19sb2NhbGVfbmFtZShMQ19DVFlQRSwgbGNfbWVzc2FnZXMsICZj YW5vbm5hbWUpOwogCWxjX21lc3NhZ2VzID0gY2Fub25uYW1lOwogI2VuZGlmCi0KLQlpZiAobG9j YWxlX3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UpCi0JewotCQlpZiAoIWljdV9sb2NhbGUp Ci0JCQlwZ19mYXRhbCgiSUNVIGxvY2FsZSBtdXN0IGJlIHNwZWNpZmllZCIpOwotCi0JCS8qCi0J CSAqIEluIHN1cHBvcnRlZCBidWlsZHMsIHRoZSBJQ1UgbG9jYWxlIElEIHdpbGwgYmUgY2hlY2tl ZCBieSB0aGUKLQkJICogYmFja2VuZCBkdXJpbmcgcG9zdC1ib290c3RyYXAgaW5pdGlhbGl6YXRp b24uCi0JCSAqLwotI2lmbmRlZiBVU0VfSUNVCi0JCXBnX2ZhdGFsKCJJQ1UgaXMgbm90IHN1cHBv cnRlZCBpbiB0aGlzIGJ1aWxkIik7Ci0jZW5kaWYKLQl9CiB9CiAKIC8qCkBAIC0yMzg4LDkgKzIz ODUsOCBAQCBzZXR1cF9sb2NhbGVfZW5jb2Rpbmcodm9pZCkKIAkJIWNoZWNrX2xvY2FsZV9lbmNv ZGluZyhsY19jb2xsYXRlLCBlbmNvZGluZ2lkKSkKIAkJZXhpdCgxKTsJCQkJLyogY2hlY2tfbG9j YWxlX2VuY29kaW5nIHByaW50ZWQgdGhlIGVycm9yICovCiAKLQlpZiAobG9jYWxlX3Byb3ZpZGVy ID09IENPTExQUk9WSURFUl9JQ1UgJiYKLQkJIWNoZWNrX2ljdV9sb2NhbGVfZW5jb2RpbmcoZW5j b2RpbmdpZCkpCi0JCWV4aXQoMSk7CisJaWYgKGxvY2FsZV9wcm92aWRlciA9PSBDT0xMUFJPVklE RVJfSUNVKQorCQljaGVja19pY3VfbG9jYWxlX2VuY29kaW5nKGVuY29kaW5naWQpOwogfQogCiAK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vaW5pdGRiL3QvMDAxX2luaXRkYi5wbCBiL3NyYy9iaW4vaW5p dGRiL3QvMDAxX2luaXRkYi5wbAppbmRleCAxNjRmYzExY2JmZmM4YzQ2NmY4NGQ1MWMwNzEwNmI2 MDJkMDIyYmM2Li44ODQ1MDZhMWJjNTg3NTI2Njk2OTRkZjk1YzZkY2IwNTcyNjUwN2E1IDEwMDY0 NAotLS0gYS9zcmMvYmluL2luaXRkYi90LzAwMV9pbml0ZGIucGwKKysrIGIvc3JjL2Jpbi9pbml0 ZGIvdC8wMDFfaW5pdGRiLnBsCkBAIC0xMjMsMjggKzEyMyw0MSBAQCBpZiAoJEVOVnt3aXRoX2lj dX0gZXEgJ3llcycpCiAJCVsKIAkJCSdpbml0ZGInLCAgICAgICAgICAgICAgICAnLS1uby1zeW5j JywKIAkJCSctLWxvY2FsZS1wcm92aWRlcj1pY3UnLCAnLS1lbmNvZGluZz1TUUxfQVNDSUknLAot CQkJJy0taWN1LWxvY2FsZT1lbicsICIkdGVtcGRpci9kYXRhWCIKKwkJCSIkdGVtcGRpci9kYXRh WCIKIAkJXSwKIAkJcXIvZXJyb3I6IGVuY29kaW5nIG1pc21hdGNoLywKIAkJJ2ZhaWxzIGZvciBl bmNvZGluZyBub3Qgc3VwcG9ydGVkIGJ5IElDVScpOwogfQogZWxzZQogewotCWNvbW1hbmRfZmFp bHMoCisJY29tbWFuZF9mYWlsc19saWtlKAogCQlbICdpbml0ZGInLCAnLS1uby1zeW5jJywgJy0t bG9jYWxlLXByb3ZpZGVyPWljdScsICIkdGVtcGRpci9kYXRhMiIgXSwKKwkJcXIvZXJyb3I6IElD VSBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnVpbGQvLAogCQknbG9jYWxlIHByb3ZpZGVyIElD VSBmYWlscyBzaW5jZSBubyBJQ1Ugc3VwcG9ydCcpOworCisJY29tbWFuZF9mYWlsc19saWtlKAor CQlbCisJCQknaW5pdGRiJywgICAgICAgICAgICAgICAgJy0tbm8tc3luYycsCisJCQknLS1sb2Nh bGUtcHJvdmlkZXI9aWN1JywgJy0tZW5jb2Rpbmc9U1FMX0FTQ0lJJywKKwkJCSIkdGVtcGRpci9k YXRhMiIKKwkJXSwKKwkJcXIvZXJyb3I6IElDVSBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnVp bGQvLAorCQknbG9jYWxlIHByb3ZpZGVyIElDVSB3aXRoIG5vdCBzdXBwb3J0ZWQgSUNVIGVuY29k aW5nIGZhaWxzIHNpbmNlIG5vIElDVSBzdXBwb3J0JworCSk7CiB9CiAKLWNvbW1hbmRfZmFpbHMo Citjb21tYW5kX2ZhaWxzX2xpa2UoCiAJWyAnaW5pdGRiJywgJy0tbm8tc3luYycsICctLWxvY2Fs ZS1wcm92aWRlcj14eXonLCAiJHRlbXBkaXIvZGF0YVgiIF0sCisJcXIvZXJyb3I6IHVucmVjb2du aXplZCBsb2NhbGUgcHJvdmlkZXI6IHh5ei8sCiAJJ2ZhaWxzIGZvciBpbnZhbGlkIGxvY2FsZSBw cm92aWRlcicpOwogCi1jb21tYW5kX2ZhaWxzKAorY29tbWFuZF9mYWlsc19saWtlKAogCVsKIAkJ J2luaXRkYicsICAgICAgICAgICAgICAgICAnLS1uby1zeW5jJywKIAkJJy0tbG9jYWxlLXByb3Zp ZGVyPWxpYmMnLCAnLS1pY3UtbG9jYWxlPWVuJywKIAkJIiR0ZW1wZGlyL2RhdGFYIgogCV0sCisJ cXIvZXJyb3I6IC0taWN1LWxvY2FsZSBjYW5ub3QgYmUgc3BlY2lmaWVkIHVubGVzcyBsb2NhbGUg cHJvdmlkZXIgImljdSIgaXMgY2hvc2VuLywKIAknZmFpbHMgZm9yIGludmFsaWQgb3B0aW9uIGNv bWJpbmF0aW9uJyk7CiAKIGRvbmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9zY3Jp cHRzL3QvMDIwX2NyZWF0ZWRiLnBsIGIvc3JjL2Jpbi9zY3JpcHRzL3QvMDIwX2NyZWF0ZWRiLnBs CmluZGV4IDhlZDg2MjhkYjExYzE0MTBkYjQ5ODdmMTEyNTA1MzViZmIxYWEwMDguLjdhMjYyZDIy NzA2MWFjZTFmNzI0OTgzNzFhYjBjNGZhODc2N2Q3YTkgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vc2Ny aXB0cy90LzAyMF9jcmVhdGVkYi5wbAorKysgYi9zcmMvYmluL3NjcmlwdHMvdC8wMjBfY3JlYXRl ZGIucGwKQEAgLTMwLDExICszMCwxMiBAQCBpZiAoJEVOVnt3aXRoX2ljdX0gZXEgJ3llcycpCiAJ IyBUaGlzIGZhaWxzIGJlY2F1c2UgdGVtcGxhdGUwIHVzZXMgbGliYyBwcm92aWRlciBhbmQgaGFz IG5vIElDVQogCSMgbG9jYWxlIHNldC4gIEl0IHdvdWxkIHN1Y2NlZWQgaWYgdGVtcGxhdGUwIHVz ZWQgdGhlIGljdQogCSMgcHJvdmlkZXIuICBYWFggTWF5YmUgc3BsaXQgaW50byBtdWx0aXBsZSB0 ZXN0cz8KLQkkbm9kZS0+Y29tbWFuZF9mYWlscygKKwkkbm9kZS0+Y29tbWFuZF9mYWlsc19saWtl KAogCQlbCiAJCQknY3JlYXRlZGInLCAnLVQnLCAndGVtcGxhdGUwJywgJy1FJywgJ1VURjgnLAog CQkJJy0tbG9jYWxlLXByb3ZpZGVyPWljdScsICdmb29iYXI0JwogCQldLAorCQlxci9FUlJPUjog IElDVSBsb2NhbGUgbXVzdCBiZSBzcGVjaWZpZWQvLAogCQknY3JlYXRlIGRhdGFiYXNlIHdpdGgg SUNVIGZhaWxzIHdpdGhvdXQgSUNVIGxvY2FsZSBzcGVjaWZpZWQnKTsKIAogCSRub2RlLT5pc3N1 ZXNfc3FsX2xpa2UoCkBAIC00NiwxMiArNDcsMTMgQEAgaWYgKCRFTlZ7d2l0aF9pY3V9IGVxICd5 ZXMnKQogCQlxci9zdGF0ZW1lbnQ6IENSRUFURSBEQVRBQkFTRSBmb29iYXI1IC4qIExPQ0FMRV9Q Uk9WSURFUiBpY3UgSUNVX0xPQ0FMRSAnZW4nLywKIAkJJ2NyZWF0ZSBkYXRhYmFzZSB3aXRoIElD VSBsb2NhbGUgc3BlY2lmaWVkJyk7CiAKLQkkbm9kZS0+Y29tbWFuZF9mYWlscygKKwkkbm9kZS0+ Y29tbWFuZF9mYWlsc19saWtlKAogCQlbCiAJCQknY3JlYXRlZGInLCAnLVQnLCAndGVtcGxhdGUw JywgJy1FJywgJ1VURjgnLAogCQkJJy0tbG9jYWxlLXByb3ZpZGVyPWljdScsCiAJCQknLS1pY3Ut bG9jYWxlPUBjb2xOdW1lcmljPWxvd2VyJywgJ2Zvb2JhclgnCiAJCV0sCisJCXFyL0VSUk9SOiAg Y291bGQgbm90IG9wZW4gY29sbGF0b3IgZm9yIGxvY2FsZS8sCiAJCSdmYWlscyBmb3IgaW52YWxp ZCBJQ1UgbG9jYWxlJyk7CiAKIAkkbm9kZS0+Y29tbWFuZF9mYWlsc19saWtlKApAQCAtNzgsMTgg KzgwLDM5IEBAIGlmICgkRU5We3dpdGhfaWN1fSBlcSAneWVzJykKIH0KIGVsc2UKIHsKLQkkbm9k ZS0+Y29tbWFuZF9mYWlscygKKwkkbm9kZS0+Y29tbWFuZF9mYWlsc19saWtlKAogCQlbICdjcmVh dGVkYicsICctVCcsICd0ZW1wbGF0ZTAnLCAnLS1sb2NhbGUtcHJvdmlkZXI9aWN1JywgJ2Zvb2Jh cjQnIF0sCisJCXFyL0VSUk9SOiAgSUNVIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBidWlsZC8s CiAJCSdjcmVhdGUgZGF0YWJhc2Ugd2l0aCBJQ1UgZmFpbHMgc2luY2Ugbm8gSUNVIHN1cHBvcnQn KTsKKworCSRub2RlLT5jb21tYW5kX2ZhaWxzX2xpa2UoCisJCVsKKwkJCSdjcmVhdGVkYicsICAg ICAgICAgICAgICctVCcsCisJCQkndGVtcGxhdGUwJywgICAgICAgICAgICAnLS1sb2NhbGUtcHJv dmlkZXI9aWN1JywKKwkJCSctLWVuY29kaW5nPVNRTF9BU0NJSScsICdmb29iYXI0JworCQldLAor CQlxci9FUlJPUjogIElDVSBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnVpbGQvLAorCQknY3Jl YXRlIGRhdGFiYXNlIHdpdGggSUNVIGFuZCBub3Qgc3VwcG9ydGVkIElDVSBlbmNvZGluZyBmYWls cyBzaW5jZSBubyBJQ1Ugc3VwcG9ydCcKKwkpOwogfQogCiAkbm9kZS0+Y29tbWFuZF9mYWlscyhb ICdjcmVhdGVkYicsICdmb29iYXIxJyBdLAogCSdmYWlscyBpZiBkYXRhYmFzZSBhbHJlYWR5IGV4 aXN0cycpOwogCi0kbm9kZS0+Y29tbWFuZF9mYWlscygKKyRub2RlLT5jb21tYW5kX2ZhaWxzX2xp a2UoCiAJWyAnY3JlYXRlZGInLCAnLVQnLCAndGVtcGxhdGUwJywgJy0tbG9jYWxlLXByb3ZpZGVy PXh5eicsICdmb29iYXJYJyBdLAorCXFyL0VSUk9SOiAgdW5yZWNvZ25pemVkIGxvY2FsZSBwcm92 aWRlcjogeHl6LywKIAknZmFpbHMgZm9yIGludmFsaWQgbG9jYWxlIHByb3ZpZGVyJyk7CiAKKyRu b2RlLT5jb21tYW5kX2ZhaWxzX2xpa2UoCisJWworCQknY3JlYXRlZGInLCAgICAgICAgJy1UJywK KwkJJ3RlbXBsYXRlMCcsICAgICAgICctLWxvY2FsZS1wcm92aWRlcj1saWJjJywKKwkJJy0taWN1 LWxvY2FsZT1lbicsICdmb29iYXJYJworCV0sCisJcXIvRVJST1I6ICBJQ1UgbG9jYWxlIGNhbm5v dCBiZSBzcGVjaWZpZWQgdW5sZXNzIGxvY2FsZSBwcm92aWRlciBpcyBJQ1UvLAorCSdmYWlscyBm b3IgaW52YWxpZCBvcHRpb24gY29tYmluYXRpb24nKTsKKwogIyBDaGVjayB1c2Ugb2YgdGVtcGxh dGVzIHdpdGggc2hhcmVkIGRlcGVuZGVuY2llcyBjb3BpZWQgZnJvbSB0aGUgdGVtcGxhdGUuCiBt eSAoJHJldCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZS0+cHNxbCgKIAknZm9vYmFyMicsCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9wZ19sb2NhbGUuaCBiL3NyYy9pbmNsdWRlL3V0 aWxzL3BnX2xvY2FsZS5oCmluZGV4IGE4NzU5NDIxMjM2NGFhYWMzMzM3ZWYwNzE4OGRkMjkxZDYy Mjk5ZDcuLjZlOGFmMzk5NzY5ZmRiMjU3YTY1NDQ2YjNjNDc2YmJmZWNhNDlmMzMgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3V0aWxzL3BnX2xvY2FsZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxz L3BnX2xvY2FsZS5oCkBAIC0xMDQsOCArMTA0LDggQEAgZXh0ZXJuIGNoYXIgKmdldF9jb2xsYXRp b25fYWN0dWFsX3ZlcnNpb24oY2hhciBjb2xscHJvdmlkZXIsIGNvbnN0IGNoYXIgKmNvbGxjb2wK ICNpZmRlZiBVU0VfSUNVCiBleHRlcm4gaW50MzJfdCBpY3VfdG9fdWNoYXIoVUNoYXIgKipidWZm X3VjaGFyLCBjb25zdCBjaGFyICpidWZmLCBzaXplX3QgbmJ5dGVzKTsKIGV4dGVybiBpbnQzMl90 IGljdV9mcm9tX3VjaGFyKGNoYXIgKipyZXN1bHQsIGNvbnN0IFVDaGFyICpidWZmX3VjaGFyLCBp bnQzMl90IGxlbl91Y2hhcik7Ci0jZW5kaWYKIGV4dGVybiB2b2lkIGNoZWNrX2ljdV9sb2NhbGUo Y29uc3QgY2hhciAqaWN1X2xvY2FsZSk7CisjZW5kaWYKIAogLyogVGhlc2UgZnVuY3Rpb25zIGNv bnZlcnQgZnJvbS90byBsaWJjJ3Mgd2NoYXJfdCwgKm5vdCogcGdfd2NoYXJfdCAqLwogZXh0ZXJu IHNpemVfdCB3Y2hhcjJjaGFyKGNoYXIgKnRvLCBjb25zdCB3Y2hhcl90ICpmcm9tLCBzaXplX3Qg dG9sZW4sCg== --=_7a13c5bf10561c0b45b19453fb096827--