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 1q6cCM-0003Lp-7V for pgsql-hackers@arkaria.postgresql.org; Tue, 06 Jun 2023 19:18:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1q6cCL-0003hr-5Q for pgsql-hackers@arkaria.postgresql.org; Tue, 06 Jun 2023 19:18:29 +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 1q6cCK-0003hh-OM for pgsql-hackers@lists.postgresql.org; Tue, 06 Jun 2023 19:18:28 +0000 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1q6cCG-000dPJ-M8 for pgsql-hackers@lists.postgresql.org; Tue, 06 Jun 2023 19:18:28 +0000 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-25665d2a8bdso3112589a91.0 for ; Tue, 06 Jun 2023 12:18:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20221208.gappssmtp.com; s=20221208; t=1686079103; x=1688671103; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=J7u1R2GS9L0z7hl6pAf4+KMLBU1DVkcMgnHyWr0QXbk=; b=uqBNvtUeLbZrrkdG8jeJwyNE196s3d1B8NV7KxhJm22sD4i4NQ3LPY7QKWBI934NGe YDboSBxOnAZz1a3SKU3ysw3C0i1rXdFoqOxAPlhIq3zvOhMTlF6D5sjUkiO7kmjtiejJ Q8oO8Gx3OGEf8Zdgs1a9SUBrUNiV8ZtKgUP3t7g1helpocCgAZvAv9xQLvcH1hyXYPb1 /2NhVqGSKHuPazgOxXuFjhS4RcWgFiSPohgfqO906UkZtHoHdHGQROlQ6L6VuyElYmyU ZUYvFEpjauYJcgxAFGESUQdTcTbkPF1PeBbVguR6NPNPl3BLlavof0Mg2MCuk+Yoazuv gHsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686079103; x=1688671103; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=J7u1R2GS9L0z7hl6pAf4+KMLBU1DVkcMgnHyWr0QXbk=; b=AsZtQMErpUTg0iKc2lZH/XOd1vzE3aaBkAMJ8AR4t2atczxtVxba2NGEcYGnNPZ++s 9xjw2M5rKaUko8i9yNMipIAwp0FTDcmEbQeOlFNF9WkA8fzRxFQ74oD4jh5OEEqsLqd3 9GLbtWUlnzGAC2s8BPT80ERd5sfggs9NbETdDTMhS3vn7xOzWyzgj8NXqEovZom/i/K1 TxkassK2YbXhaEtjO4+RzhAuLASyTcBKRUqKFfKlJkwuyb1n8MD8Cn2GM84m6XZsZKZI 7OnhZY09C2vFUS+MKvNFlyE6BKcTpfuoCKE6zb6w8//cxk3fwrHSRl2PIV8/twppwIDg R++Q== X-Gm-Message-State: AC+VfDxiyLdUeOwc9T4n+FVWTl+L3Og0mPb43Q8rYP/clY7xBHbl4PZ+ StxrL8q5fB5SvA4kNYLnQvKb5A== X-Google-Smtp-Source: ACHHUZ49bXsOaeL7g3vHxjK/VmzG5uS4YNBEbxDUjZfnfyuIzIOtHe40GDMvCtVyqRwHJ8z7DB88KA== X-Received: by 2002:a17:903:11d1:b0:1b2:49f6:6cdb with SMTP id q17-20020a17090311d100b001b249f66cdbmr548048plh.37.1686079102818; Tue, 06 Jun 2023 12:18:22 -0700 (PDT) Received: from [172.18.7.14] ([12.126.244.130]) by smtp.gmail.com with ESMTPSA id l17-20020a170902eb1100b001aad714400asm8873000plb.229.2023.06.06.12.18.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Jun 2023 12:18:21 -0700 (PDT) Message-ID: Subject: Re: Order changes in PG16 since ICU introduction From: Jeff Davis To: Daniel Verite Cc: Peter Eisentraut , Andrew Gierth , Tom Lane , pgsql-hackers@lists.postgresql.org Date: Tue, 06 Jun 2023 12:18:20 -0700 In-Reply-To: <45f0cd77-9c85-4c5e-9396-adbccdb635e2@manitou-mail.org> References: <45f0cd77-9c85-4c5e-9396-adbccdb635e2@manitou-mail.org> Content-Type: multipart/mixed; boundary="=-8swFiJNE32wvPFTxulLJ" User-Agent: Evolution 3.44.4-0ubuntu1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-8swFiJNE32wvPFTxulLJ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, 2023-06-06 at 15:09 +0200, Daniel Verite wrote: > FWIW I don't quite see how 0001 improve things or what problem it's > trying to solve. The word "locale" is generic, so we need to make LOCALE/--locale apply to whatever provider is being used. If "locale" only applies to libc, using ICU will always be confusing and never be on the same level as libc, let alone the preferred provider. The locale "C" is a special case, documented as a non-locale. So, if LOCALE/--locale apply to ICU, then either ICU needs to handle locale "C" in the expected way (v8 patch series); or when we see locale "C" we need to somehow change the provider into something that can handle it (v6 patch series changes it to the "none" provider). Please let me know if you disagree with the goal or the reasoning here. If so, please explain where you think we should end up, because the status quo does not seem great to me. > 0001 creates exceptions throughout the code so that when an ICU > collation has a locale name "C" or "POSIX" then it does not behave > like an ICU collation, even though pg_collation.collprovider=3D'i' > To me it's neither desirable nor necessary that a collation that > has collprovider=3D'i' is diverted to non-ICU semantics. It's not very principled, but it matches what libc does. > Also in the current state, this diversion does not apply to initdb. >=20 > "initdb --icu-locale=3DC" with 0001 applied reports this: >=20 > =C2=A0=C2=A0 Using language tag "en-US-u-va-posix" for ICU locale "C". Thank you. I fixed it by skipping the canonicalization for C/POSIX locales in initdb. > Could you elaborate a bit more on what 0001 is meant to achieve, from > the point of view of the user? It makes it so the user consistently (regardless of the provider) gets the "no locale" behavior (as documented and historically expected) when they specify the C or POSIX locales. Then that enables us to change LOCALE/--locale to apply to ICU, which means that a simple command like "initdb --locale=3Den_US" does a sensible thing regardless of the default provider. I understand you are skeptical of trying to apply an arbitrary locale name to ICU, but if they don't specify the provider, what do you expect to happen? --=20 Jeff Davis PostgreSQL Contributor Team - AWS --=-8swFiJNE32wvPFTxulLJ Content-Disposition: attachment; filename*0=v9-0001-ICU-support-locale-C-with-the-same-behavior-as-li.pat; filename*1=ch Content-Type: text/x-patch; name="v9-0001-ICU-support-locale-C-with-the-same-behavior-as-li.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA1NGExNzFmNjQzNTA0ZDBmOGJlYjJhMWY4ZjdlMjlkYzk2Mzk2NTRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBN b24sIDI0IEFwciAyMDIzIDE1OjQ2OjE3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2OSAxLzRdIElD VTogc3VwcG9ydCBsb2NhbGUgIkMiIHdpdGggdGhlIHNhbWUgYmVoYXZpb3IgYXMKIGxpYmMuCgpU aGUgIkMiIGxvY2FsZSBkb2Vzbid0IGFjdHVhbGx5IHVzZSBhIHByb3ZpZGVyIGF0IGFsbCwgaXQn cyBhIHNwZWNpYWwKbG9jYWxlIHRoYXQgdXNlcyBtZW1jbXAoKSBhbmQgYnVpbHQtaW4gY2hhcmFj dGVyIGNsYXNzaWZpY2F0aW9uLiBNYWtlCml0IGJlaGF2ZSB0aGUgc2FtZSBpbiBJQ1UgYXMgbGli YyAoZXZlbiB0aG91Z2ggaXQgZG9lc24ndCBhY3R1YWxseQptYWtlIHVzZSBvZiBlaXRoZXIgcHJv dmlkZXIpLgoKRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS84N3Y4aG9leGR2LmZzZkBu ZXdzLXNwdXIucmlkZGxlcy5vcmcudWsKLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRp b25jbWRzLmMgICAgICAgICAgfCA0MyArKysrKystLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9k YmNvbW1hbmRzLmMgICAgICAgICAgICAgfCA0MiArKysrKystLS0tCiBzcmMvYmFja2VuZC91dGls cy9hZHQvcGdfbG9jYWxlLmMgICAgICAgICAgICAgfCA4MyArKysrKysrKysrKysrKy0tLS0tCiBz cmMvYmluL2luaXRkYi9pbml0ZGIuYyAgICAgICAgICAgICAgICAgICAgICAgfCAyNSArKysrLS0K IC4uLi9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUuaWN1LnV0Zjgub3V0ICAgICB8ICA2ICsrCiBz cmMvdGVzdC9yZWdyZXNzL3NxbC9jb2xsYXRlLmljdS51dGY4LnNxbCAgICAgfCAgNCArCiA2IGZp bGVzIGNoYW5nZWQsIDE0NCBpbnNlcnRpb25zKCspLCA1OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9jb2xsYXRpb25jbWRzLmMKaW5kZXggMjk2OWEyYmIyMS4uZGQ2Y2QyNjgyZiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sbGF0aW9uY21kcy5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2NvbGxhdGlvbmNtZHMuYwpAQCAtMjY0LDI2ICsyNjQsMzkgQEAgRGVm aW5lQ29sbGF0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqbmFtZXMsIExpc3QgKnBhcmFt ZXRlcnMsIGJvb2wgaWZfbm90X2UKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpF Q1RfREVGSU5JVElPTiksCiAJCQkJCQkgZXJybXNnKCJwYXJhbWV0ZXIgXCJsb2NhbGVcIiBtdXN0 IGJlIHNwZWNpZmllZCIpKSk7CiAKLQkJCS8qCi0JCQkgKiBEdXJpbmcgYmluYXJ5IHVwZ3JhZGUs IHByZXNlcnZlIHRoZSBsb2NhbGUgc3RyaW5nLiBPdGhlcndpc2UsCi0JCQkgKiBjYW5vbmljYWxp emUgdG8gYSBsYW5ndWFnZSB0YWcuCi0JCQkgKi8KLQkJCWlmICghSXNCaW5hcnlVcGdyYWRlKQor CQkJaWYgKHN0cmNtcChjb2xsaWN1bG9jYWxlLCAiQyIpID09IDAgfHwKKwkJCQlzdHJjbXAoY29s bGljdWxvY2FsZSwgIlBPU0lYIikgPT0gMCkKIAkJCXsKLQkJCQljaGFyCSAgICpsYW5ndGFnID0g aWN1X2xhbmd1YWdlX3RhZyhjb2xsaWN1bG9jYWxlLAotCQkJCQkJCQkJCQkJCSAgIGljdV92YWxp ZGF0aW9uX2xldmVsKTsKLQotCQkJCWlmIChsYW5ndGFnICYmIHN0cmNtcChjb2xsaWN1bG9jYWxl LCBsYW5ndGFnKSAhPSAwKQorCQkJCWlmICghY29sbGlzZGV0ZXJtaW5pc3RpYykKKwkJCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJCQkoZXJybXNnKCJub25kZXRlcm1pbmlzdGljIGNvbGxhdGlvbnMg bm90IHN1cHBvcnRlZCBmb3IgQyBvciBQT1NJWCBsb2NhbGUiKSkpOworCQkJCWlmIChjb2xsaWN1 cnVsZXMgIT0gTlVMTCkKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJybXNnKCJSVUxF UyBub3Qgc3VwcG9ydGVkIGZvciBDIG9yIFBPU0lYIGxvY2FsZSIpKSk7CisJCQl9CisJCQllbHNl CisJCQl7CisJCQkJLyoKKwkJCQkgKiBEdXJpbmcgYmluYXJ5IHVwZ3JhZGUsIHByZXNlcnZlIHRo ZSBsb2NhbGUKKwkJCQkgKiBzdHJpbmcuIE90aGVyd2lzZSwgY2Fub25pY2FsaXplIHRvIGEgbGFu Z3VhZ2UgdGFnLgorCQkJCSAqLworCQkJCWlmICghSXNCaW5hcnlVcGdyYWRlKQogCQkJCXsKLQkJ CQkJZXJlcG9ydChOT1RJQ0UsCi0JCQkJCQkJKGVycm1zZygidXNpbmcgc3RhbmRhcmQgZm9ybSBc IiVzXCIgZm9yIGxvY2FsZSBcIiVzXCIiLAotCQkJCQkJCQkJbGFuZ3RhZywgY29sbGljdWxvY2Fs ZSkpKTsKKwkJCQkJY2hhcgkgICAqbGFuZ3RhZyA9IGljdV9sYW5ndWFnZV90YWcoY29sbGljdWxv Y2FsZSwKKwkJCQkJCQkJCQkJCQkJICAgaWN1X3ZhbGlkYXRpb25fbGV2ZWwpOworCisJCQkJCWlm IChsYW5ndGFnICYmIHN0cmNtcChjb2xsaWN1bG9jYWxlLCBsYW5ndGFnKSAhPSAwKQorCQkJCQl7 CisJCQkJCQllcmVwb3J0KE5PVElDRSwKKwkJCQkJCQkJKGVycm1zZygidXNpbmcgc3RhbmRhcmQg Zm9ybSBcIiVzXCIgZm9yIGxvY2FsZSBcIiVzXCIiLAorCQkJCQkJCQkJCWxhbmd0YWcsIGNvbGxp Y3Vsb2NhbGUpKSk7CiAKLQkJCQkJY29sbGljdWxvY2FsZSA9IGxhbmd0YWc7CisJCQkJCQljb2xs aWN1bG9jYWxlID0gbGFuZ3RhZzsKKwkJCQkJfQogCQkJCX0KLQkJCX0KIAotCQkJaWN1X3ZhbGlk YXRlX2xvY2FsZShjb2xsaWN1bG9jYWxlKTsKKwkJCQlpY3VfdmFsaWRhdGVfbG9jYWxlKGNvbGxp Y3Vsb2NhbGUpOworCQkJfQogCQl9CiAKIAkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2RiY29tbWFuZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2RiY29tbWFuZHMuYwpp bmRleCA5OWQ0MDgwZWE5Li5iZmNlOGRjMzQ4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy9kYmNvbW1hbmRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5kcy5j CkBAIC0xMDU4LDI3ICsxMDU4LDM3IEBAIGNyZWF0ZWRiKFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29u c3QgQ3JlYXRlZGJTdG10ICpzdG10KQogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFS QU1FVEVSX1ZBTFVFKSwKIAkJCQkJIGVycm1zZygiSUNVIGxvY2FsZSBtdXN0IGJlIHNwZWNpZmll ZCIpKSk7CiAKLQkJLyoKLQkJICogRHVyaW5nIGJpbmFyeSB1cGdyYWRlLCBvciB3aGVuIHRoZSBs b2NhbGUgY2FtZSBmcm9tIHRoZSB0ZW1wbGF0ZQotCQkgKiBkYXRhYmFzZSwgcHJlc2VydmUgbG9j YWxlIHN0cmluZy4gT3RoZXJ3aXNlLCBjYW5vbmljYWxpemUgdG8gYQotCQkgKiBsYW5ndWFnZSB0 YWcuCi0JCSAqLwotCQlpZiAoIUlzQmluYXJ5VXBncmFkZSAmJiBkYmljdWxvY2FsZSAhPSBzcmNf aWN1bG9jYWxlKQorCQlpZiAoc3RyY21wKGRiaWN1bG9jYWxlLCAiQyIpID09IDAgfHwKKwkJCXN0 cmNtcChkYmljdWxvY2FsZSwgIlBPU0lYIikgPT0gMCkKIAkJewotCQkJY2hhcgkgICAqbGFuZ3Rh ZyA9IGljdV9sYW5ndWFnZV90YWcoZGJpY3Vsb2NhbGUsCi0JCQkJCQkJCQkJCQkgICBpY3VfdmFs aWRhdGlvbl9sZXZlbCk7Ci0KLQkJCWlmIChsYW5ndGFnICYmIHN0cmNtcChkYmljdWxvY2FsZSwg bGFuZ3RhZykgIT0gMCkKKwkJCWlmIChkYmljdXJ1bGVzICE9IE5VTEwpCisJCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJCShlcnJtc2coIklDVV9SVUxFUyBub3Qgc3VwcG9ydGVkIGZvciBDIG9yIFBP U0lYIGxvY2FsZSIpKSk7CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKgorCQkJICogRHVyaW5nIGJp bmFyeSB1cGdyYWRlLCBvciB3aGVuIHRoZSBsb2NhbGUgY2FtZSBmcm9tIHRoZQorCQkJICogdGVt cGxhdGUgZGF0YWJhc2UsIHByZXNlcnZlIGxvY2FsZSBzdHJpbmcuIE90aGVyd2lzZSwKKwkJCSAq IGNhbm9uaWNhbGl6ZSB0byBhIGxhbmd1YWdlIHRhZy4KKwkJCSAqLworCQkJaWYgKCFJc0JpbmFy eVVwZ3JhZGUgJiYgZGJpY3Vsb2NhbGUgIT0gc3JjX2ljdWxvY2FsZSkKIAkJCXsKLQkJCQllcmVw b3J0KE5PVElDRSwKLQkJCQkJCShlcnJtc2coInVzaW5nIHN0YW5kYXJkIGZvcm0gXCIlc1wiIGZv ciBsb2NhbGUgXCIlc1wiIiwKLQkJCQkJCQkJbGFuZ3RhZywgZGJpY3Vsb2NhbGUpKSk7CisJCQkJ Y2hhcgkgICAqbGFuZ3RhZyA9IGljdV9sYW5ndWFnZV90YWcoZGJpY3Vsb2NhbGUsCisJCQkJCQkJ CQkJCQkJICAgaWN1X3ZhbGlkYXRpb25fbGV2ZWwpOworCisJCQkJaWYgKGxhbmd0YWcgJiYgc3Ry Y21wKGRiaWN1bG9jYWxlLCBsYW5ndGFnKSAhPSAwKQorCQkJCXsKKwkJCQkJZXJlcG9ydChOT1RJ Q0UsCisJCQkJCQkJKGVycm1zZygidXNpbmcgc3RhbmRhcmQgZm9ybSBcIiVzXCIgZm9yIGxvY2Fs ZSBcIiVzXCIiLAorCQkJCQkJCQkJbGFuZ3RhZywgZGJpY3Vsb2NhbGUpKSk7CiAKLQkJCQlkYmlj dWxvY2FsZSA9IGxhbmd0YWc7CisJCQkJCWRiaWN1bG9jYWxlID0gbGFuZ3RhZzsKKwkJCQl9CiAJ CQl9Ci0JCX0KIAotCQlpY3VfdmFsaWRhdGVfbG9jYWxlKGRiaWN1bG9jYWxlKTsKKwkJCWljdV92 YWxpZGF0ZV9sb2NhbGUoZGJpY3Vsb2NhbGUpOworCQl9CiAJfQogCWVsc2UKIAl7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlLmMgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvcGdfbG9jYWxlLmMKaW5kZXggMzFlM2IxNmFlMC4uOTg2ZGNiZDJhNyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2xvY2FsZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9wZ19sb2NhbGUuYwpAQCAtMTI0Niw4ICsxMjQ2LDE1IEBAIGxvb2t1cF9jb2xsYXRp b25fY2FjaGUoT2lkIGNvbGxhdGlvbiwgYm9vbCBzZXRfZmxhZ3MpCiAJCX0KIAkJZWxzZQogCQl7 Ci0JCQljYWNoZV9lbnRyeS0+Y29sbGF0ZV9pc19jID0gZmFsc2U7Ci0JCQljYWNoZV9lbnRyeS0+ Y3R5cGVfaXNfYyA9IGZhbHNlOworCQkJRGF0dW0JCWRhdHVtOworCQkJY29uc3QgY2hhciAqY29s bGljdWxvY2FsZTsKKworCQkJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKENPTExPSUQs IHRwLCBBbnVtX3BnX2NvbGxhdGlvbl9jb2xsaWN1bG9jYWxlKTsKKwkJCWNvbGxpY3Vsb2NhbGUg PSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsKKworCQkJY2FjaGVfZW50cnktPmNvbGxhdGVf aXNfYyA9ICgoc3RyY21wKGNvbGxpY3Vsb2NhbGUsICJDIikgPT0gMCkgfHwKKwkJCQkJCQkJCQkg KHN0cmNtcChjb2xsaWN1bG9jYWxlLCAiUE9TSVgiKSA9PSAwKSk7CisJCQljYWNoZV9lbnRyeS0+ Y3R5cGVfaXNfYyA9IGNhY2hlX2VudHJ5LT5jb2xsYXRlX2lzX2M7CiAJCX0KIAogCQljYWNoZV9l bnRyeS0+ZmxhZ3NfdmFsaWQgPSB0cnVlOwpAQCAtMTI3OSwxNiArMTI4NiwyNyBAQCBsY19jb2xs YXRlX2lzX2MoT2lkIGNvbGxhdGlvbikKIAlpZiAoY29sbGF0aW9uID09IERFRkFVTFRfQ09MTEFU SU9OX09JRCkKIAl7CiAJCXN0YXRpYyBpbnQJcmVzdWx0ID0gLTE7Ci0JCWNoYXIJICAgKmxvY2Fs ZXB0cjsKLQotCQlpZiAoZGVmYXVsdF9sb2NhbGUucHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lD VSkKLQkJCXJldHVybiBmYWxzZTsKKwkJY29uc3QgY2hhciAqbG9jYWxlcHRyOwogCiAJCWlmIChy ZXN1bHQgPj0gMCkKIAkJCXJldHVybiAoYm9vbCkgcmVzdWx0OwotCQlsb2NhbGVwdHIgPSBzZXRs b2NhbGUoTENfQ09MTEFURSwgTlVMTCk7Ci0JCWlmICghbG9jYWxlcHRyKQotCQkJZWxvZyhFUlJP UiwgImludmFsaWQgTENfQ09MTEFURSBzZXR0aW5nIik7CisKKwkJaWYgKGRlZmF1bHRfbG9jYWxl LnByb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UpCisJCXsKKyNpZmRlZiBVU0VfSUNVCisJCQls b2NhbGVwdHIgPSBkZWZhdWx0X2xvY2FsZS5pbmZvLmljdS5sb2NhbGU7CisjZWxzZQorCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAorCQkJCQkgZXJybXNnKCJJQ1UgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJ1aWxkIikpKTsK KyNlbmRpZgorCQl9CisJCWVsc2UKKwkJeworCQkJbG9jYWxlcHRyID0gc2V0bG9jYWxlKExDX0NP TExBVEUsIE5VTEwpOworCQkJaWYgKCFsb2NhbGVwdHIpCisJCQkJZWxvZyhFUlJPUiwgImludmFs aWQgTENfQ09MTEFURSBzZXR0aW5nIik7CisJCX0KIAogCQlpZiAoc3RyY21wKGxvY2FsZXB0ciwg IkMiKSA9PSAwKQogCQkJcmVzdWx0ID0gdHJ1ZTsKQEAgLTEzMzIsMTYgKzEzNTAsMjcgQEAgbGNf Y3R5cGVfaXNfYyhPaWQgY29sbGF0aW9uKQogCWlmIChjb2xsYXRpb24gPT0gREVGQVVMVF9DT0xM QVRJT05fT0lEKQogCXsKIAkJc3RhdGljIGludAlyZXN1bHQgPSAtMTsKLQkJY2hhcgkgICAqbG9j YWxlcHRyOwotCi0JCWlmIChkZWZhdWx0X2xvY2FsZS5wcm92aWRlciA9PSBDT0xMUFJPVklERVJf SUNVKQotCQkJcmV0dXJuIGZhbHNlOworCQljb25zdCBjaGFyICpsb2NhbGVwdHI7CiAKIAkJaWYg KHJlc3VsdCA+PSAwKQogCQkJcmV0dXJuIChib29sKSByZXN1bHQ7Ci0JCWxvY2FsZXB0ciA9IHNl dGxvY2FsZShMQ19DVFlQRSwgTlVMTCk7Ci0JCWlmICghbG9jYWxlcHRyKQotCQkJZWxvZyhFUlJP UiwgImludmFsaWQgTENfQ1RZUEUgc2V0dGluZyIpOworCisJCWlmIChkZWZhdWx0X2xvY2FsZS5w cm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVKQorCQl7CisjaWZkZWYgVVNFX0lDVQorCQkJbG9j YWxlcHRyID0gZGVmYXVsdF9sb2NhbGUuaW5mby5pY3UubG9jYWxlOworI2Vsc2UKKwkJCWVyZXBv cnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwK KwkJCQkJIGVycm1zZygiSUNVIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBidWlsZCIpKSk7Cisj ZW5kaWYKKwkJfQorCQllbHNlCisJCXsKKwkJCWxvY2FsZXB0ciA9IHNldGxvY2FsZShMQ19DVFlQ RSwgTlVMTCk7CisJCQlpZiAoIWxvY2FsZXB0cikKKwkJCQllbG9nKEVSUk9SLCAiaW52YWxpZCBM Q19DVFlQRSBzZXR0aW5nIik7CisJCX0KIAogCQlpZiAoc3RyY21wKGxvY2FsZXB0ciwgIkMiKSA9 PSAwKQogCQkJcmVzdWx0ID0gdHJ1ZTsKQEAgLTEzNzUsNyArMTQwNCwxMyBAQCBtYWtlX2ljdV9j b2xsYXRvcihjb25zdCBjaGFyICppY3Vsb2NzdHIsCiAjaWZkZWYgVVNFX0lDVQogCVVDb2xsYXRv ciAgKmNvbGxhdG9yOwogCi0JY29sbGF0b3IgPSBwZ191Y29sX29wZW4oaWN1bG9jc3RyKTsKKwlp ZiAoc3RyY21wKGljdWxvY3N0ciwgIkMiKSA9PSAwIHx8IHN0cmNtcChpY3Vsb2NzdHIsICJQT1NJ WCIpID09IDApCisJeworCQlBc3NlcnQoaWN1cnVsZXMgPT0gTlVMTCk7CisJCWNvbGxhdG9yID0g TlVMTDsKKwl9CisJZWxzZQorCQljb2xsYXRvciA9IHBnX3Vjb2xfb3BlbihpY3Vsb2NzdHIpOwog CiAJLyoKIAkgKiBJZiBydWxlcyBhcmUgc3BlY2lmaWVkLCB3ZSBleHRyYWN0IHRoZSBydWxlcyBv ZiB0aGUgc3RhbmRhcmQgY29sbGF0aW9uLApAQCAtMTY1MCw2ICsxNjg1LDkgQEAgZ2V0X2NvbGxh dGlvbl9hY3R1YWxfdmVyc2lvbihjaGFyIGNvbGxwcm92aWRlciwgY29uc3QgY2hhciAqY29sbGNv bGxhdGUpCiB7CiAJY2hhcgkgICAqY29sbHZlcnNpb24gPSBOVUxMOwogCisJaWYgKHN0cmNtcCgi QyIsIGNvbGxjb2xsYXRlKSA9PSAwIHx8IHN0cmNtcCgiUE9TSVgiLCBjb2xsY29sbGF0ZSkgPT0g MCkKKwkJcmV0dXJuIE5VTEw7CisKICNpZmRlZiBVU0VfSUNVCiAJaWYgKGNvbGxwcm92aWRlciA9 PSBDT0xMUFJPVklERVJfSUNVKQogCXsKQEAgLTE2NjgsOSArMTcwNiw3IEBAIGdldF9jb2xsYXRp b25fYWN0dWFsX3ZlcnNpb24oY2hhciBjb2xscHJvdmlkZXIsIGNvbnN0IGNoYXIgKmNvbGxjb2xs YXRlKQogCWVsc2UKICNlbmRpZgogCQlpZiAoY29sbHByb3ZpZGVyID09IENPTExQUk9WSURFUl9M SUJDICYmCi0JCQlwZ19zdHJjYXNlY21wKCJDIiwgY29sbGNvbGxhdGUpICE9IDAgJiYKLQkJCXBn X3N0cm5jYXNlY21wKCJDLiIsIGNvbGxjb2xsYXRlLCAyKSAhPSAwICYmCi0JCQlwZ19zdHJjYXNl Y21wKCJQT1NJWCIsIGNvbGxjb2xsYXRlKSAhPSAwKQorCQkJcGdfc3RybmNhc2VjbXAoIkMuIiwg Y29sbGNvbGxhdGUsIDIpICE9IDApCiAJewogI2lmIGRlZmluZWQoX19HTElCQ19fKQogCQkvKiBV c2UgdGhlIGdsaWJjIHZlcnNpb24gYmVjYXVzZSB3ZSBkb24ndCBoYXZlIGFueXRoaW5nIGJldHRl ci4gKi8KQEAgLTI0NTcsNiArMjQ5MywxMyBAQCBwZ191Y29sX29wZW4oY29uc3QgY2hhciAqbG9j X3N0cikKIAlpZiAobG9jX3N0ciA9PSBOVUxMKQogCQllbG9nKEVSUk9SLCAib3BlbmluZyBkZWZh dWx0IGNvbGxhdG9yIGlzIG5vdCBzdXBwb3J0ZWQiKTsKIAorCS8qCisJICogTXVzdCBuZXZlciBv cGVuIHNwZWNpYWwgdmFsdWVzIEMgb3IgUE9TSVgsIHdoaWNoIGFyZSB0cmVhdGVkIHNwZWNpYWxs eQorCSAqIGFuZCBub3QgcGFzc2VkIHRvIHRoZSBwcm92aWRlci4KKwkgKi8KKwlpZiAoc3RyY21w KGxvY19zdHIsICJDIikgPT0gMCB8fCBzdHJjbXAobG9jX3N0ciwgIlBPU0lYIikgPT0gMCkKKwkJ ZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgSUNVIGxvY2FsZSBzdHJpbmc6ICVzIiwgbG9jX3N0cik7 CisKIAkvKgogCSAqIEluIElDVSB2ZXJzaW9ucyA1NCBhbmQgZWFybGllciwgInVuZCIgaXMgbm90 IGEgcmVjb2duaXplZCBzcGVsbGluZyBvZgogCSAqIHRoZSByb290IGxvY2FsZS4gSWYgdGhlIGZp cnN0IGNvbXBvbmVudCBvZiB0aGUgbG9jYWxlIGlzICJ1bmQiLCByZXBsYWNlCmRpZmYgLS1naXQg YS9zcmMvYmluL2luaXRkYi9pbml0ZGIuYyBiL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCmluZGV4 IDA5YTVjOThjYzAuLjdhYTJkODcxZTMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vaW5pdGRiL2luaXRk Yi5jCisrKyBiL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCkBAIC0yNDI4LDE0ICsyNDI4LDIzIEBA IHNldGxvY2FsZXModm9pZCkKIAkJCXByaW50ZihfKCJVc2luZyBkZWZhdWx0IElDVSBsb2NhbGUg XCIlc1wiLlxuIiksIGljdV9sb2NhbGUpOwogCQl9CiAKLQkJLyogY2Fub25pY2FsaXplIHRvIGEg bGFuZ3VhZ2UgdGFnICovCi0JCWxhbmd0YWcgPSBpY3VfbGFuZ3VhZ2VfdGFnKGljdV9sb2NhbGUp OwotCQlwcmludGYoXygiVXNpbmcgbGFuZ3VhZ2UgdGFnIFwiJXNcIiBmb3IgSUNVIGxvY2FsZSBc IiVzXCIuXG4iKSwKLQkJCSAgIGxhbmd0YWcsIGljdV9sb2NhbGUpOwotCQlwZ19mcmVlKGljdV9s b2NhbGUpOwotCQlpY3VfbG9jYWxlID0gbGFuZ3RhZzsKLQotCQlpY3VfdmFsaWRhdGVfbG9jYWxl KGljdV9sb2NhbGUpOworCQlpZiAoc3RyY21wKGljdV9sb2NhbGUsICJDIikgPT0gMCB8fAorCQkJ c3RyY21wKGljdV9sb2NhbGUsICJQT1NJWCIpID09IDApCisJCXsKKwkJCWlmIChpY3VfcnVsZXMg IT0gTlVMTCkKKwkJCQlwZ19mYXRhbCgiUlVMRVMgbm90IHN1cHBvcnRlZCBmb3IgQyBvciBQT1NJ WCBsb2NhbGUiKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCS8qIGNhbm9uaWNhbGl6ZSB0byBhIGxh bmd1YWdlIHRhZyAqLworCQkJbGFuZ3RhZyA9IGljdV9sYW5ndWFnZV90YWcoaWN1X2xvY2FsZSk7 CisJCQlwcmludGYoXygiVXNpbmcgbGFuZ3VhZ2UgdGFnIFwiJXNcIiBmb3IgSUNVIGxvY2FsZSBc IiVzXCIuXG4iKSwKKwkJCQkgICBsYW5ndGFnLCBpY3VfbG9jYWxlKTsKKwkJCXBnX2ZyZWUoaWN1 X2xvY2FsZSk7CisJCQlpY3VfbG9jYWxlID0gbGFuZ3RhZzsKKworCQkJaWN1X3ZhbGlkYXRlX2xv Y2FsZShpY3VfbG9jYWxlKTsKKwkJfQogCiAJCS8qCiAJCSAqIEluIHN1cHBvcnRlZCBidWlsZHMs IHRoZSBJQ1UgbG9jYWxlIElEIHdpbGwgYmUgb3BlbmVkIGR1cmluZwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51dGY4Lm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRmOC5vdXQKaW5kZXggYzY1OGVlMTQwNC4uYmZj MjhlY2ZjZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmlj dS51dGY4Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUuaWN1LnV0 Zjgub3V0CkBAIC0xMDQzLDEyICsxMDQzLDE4IEBAIEVSUk9SOiAgSUNVIGxvY2FsZSAibm9uc2Vu c2Utbm93aGVyZSIgaGFzIHVua25vd24gbGFuZ3VhZ2UgIm5vbnNlbnNlIgogSElOVDogIFRvIGRp c2FibGUgSUNVIGxvY2FsZSB2YWxpZGF0aW9uLCBzZXQgcGFyYW1ldGVyIGljdV92YWxpZGF0aW9u X2xldmVsIHRvIERJU0FCTEVELgogQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBp Y3UsIGxvY2FsZSA9ICdAY29sU3RyZW5ndGg9cHJpbWFyeTtub25zZW5zZT15ZXMnKTsgLS0gZmFp bHMKIEVSUk9SOiAgY291bGQgbm90IGNvbnZlcnQgbG9jYWxlIG5hbWUgIkBjb2xTdHJlbmd0aD1w cmltYXJ5O25vbnNlbnNlPXllcyIgdG8gbGFuZ3VhZ2UgdGFnOiBVX0lMTEVHQUxfQVJHVU1FTlRf RVJST1IKK0NSRUFURSBDT0xMQVRJT04gdGVzdHggKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAn QycsIGRldGVybWluaXN0aWMgPSBmYWxzZSk7IC0tIGZhaWxzCitFUlJPUjogIG5vbmRldGVybWlu aXN0aWMgY29sbGF0aW9ucyBub3Qgc3VwcG9ydGVkIGZvciBDIG9yIFBPU0lYIGxvY2FsZQorQ1JF QVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdDJywgcnVsZXMg PSAnJlYgPDwgdyA8PDwgVycpOyAtLSBmYWlscworRVJST1I6ICBSVUxFUyBub3Qgc3VwcG9ydGVk IGZvciBDIG9yIFBPU0lYIGxvY2FsZQogUkVTRVQgaWN1X3ZhbGlkYXRpb25fbGV2ZWw7CiBDUkVB VEUgQ09MTEFUSU9OIHRlc3R4IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0Bjb2xTdHJlbmd0 aD1wcmltYXJ5O25vbnNlbnNlPXllcycpOyBEUk9QIENPTExBVElPTiB0ZXN0eDsKIFdBUk5JTkc6 ICBjb3VsZCBub3QgY29udmVydCBsb2NhbGUgbmFtZSAiQGNvbFN0cmVuZ3RoPXByaW1hcnk7bm9u c2Vuc2U9eWVzIiB0byBsYW5ndWFnZSB0YWc6IFVfSUxMRUdBTF9BUkdVTUVOVF9FUlJPUgogQ1JF QVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdub25zZW5zZS1u b3doZXJlJyk7IERST1AgQ09MTEFUSU9OIHRlc3R4OwogV0FSTklORzogIElDVSBsb2NhbGUgIm5v bnNlbnNlLW5vd2hlcmUiIGhhcyB1bmtub3duIGxhbmd1YWdlICJub25zZW5zZSIKIEhJTlQ6ICBU byBkaXNhYmxlIElDVSBsb2NhbGUgdmFsaWRhdGlvbiwgc2V0IHBhcmFtZXRlciBpY3VfdmFsaWRh dGlvbl9sZXZlbCB0byBESVNBQkxFRC4KK0NSRUFURSBDT0xMQVRJT04gdGVzdHggKHByb3ZpZGVy ID0gaWN1LCBsb2NhbGUgPSAnQycpOyBEUk9QIENPTExBVElPTiB0ZXN0eDsKK0NSRUFURSBDT0xM QVRJT04gdGVzdHggKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnUE9TSVgnKTsgRFJPUCBDT0xM QVRJT04gdGVzdHg7CiBDUkVBVEUgQ09MTEFUSU9OIHRlc3Q0IEZST00gbm9uc2Vuc2U7CiBFUlJP UjogIGNvbGxhdGlvbiAibm9uc2Vuc2UiIGZvciBlbmNvZGluZyAiVVRGOCIgZG9lcyBub3QgZXhp c3QKIENSRUFURSBDT0xMQVRJT04gdGVzdDUgRlJPTSB0ZXN0MDsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuaWN1LnV0Zjguc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvY29sbGF0ZS5pY3UudXRmOC5zcWwKaW5kZXggN2JkMDkwMTI4MS4uNTcyZGM1YTUwYSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5pY3UudXRmOC5zcWwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5pY3UudXRmOC5zcWwKQEAgLTM3OSw5ICszNzks MTMgQEAgQ1JFQVRFIENPTExBVElPTiB0ZXN0MyAocHJvdmlkZXIgPSBpY3UsIGxjX2NvbGxhdGUg PSAnZW5fVVMudXRmOCcpOyAtLSBmYWlsLCBuZWUKIFNFVCBpY3VfdmFsaWRhdGlvbl9sZXZlbCA9 IEVSUk9SOwogQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9 ICdub25zZW5zZS1ub3doZXJlJyk7IC0tIGZhaWxzCiBDUkVBVEUgQ09MTEFUSU9OIHRlc3R4IChw cm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0Bjb2xTdHJlbmd0aD1wcmltYXJ5O25vbnNlbnNlPXll cycpOyAtLSBmYWlscworQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxv Y2FsZSA9ICdDJywgZGV0ZXJtaW5pc3RpYyA9IGZhbHNlKTsgLS0gZmFpbHMKK0NSRUFURSBDT0xM QVRJT04gdGVzdHggKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnQycsIHJ1bGVzID0gJyZWIDw8 IHcgPDw8IFcnKTsgLS0gZmFpbHMKIFJFU0VUIGljdV92YWxpZGF0aW9uX2xldmVsOwogQ1JFQVRF IENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdAY29sU3RyZW5ndGg9 cHJpbWFyeTtub25zZW5zZT15ZXMnKTsgRFJPUCBDT0xMQVRJT04gdGVzdHg7CiBDUkVBVEUgQ09M TEFUSU9OIHRlc3R4IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ25vbnNlbnNlLW5vd2hlcmUn KTsgRFJPUCBDT0xMQVRJT04gdGVzdHg7CitDUkVBVEUgQ09MTEFUSU9OIHRlc3R4IChwcm92aWRl ciA9IGljdSwgbG9jYWxlID0gJ0MnKTsgRFJPUCBDT0xMQVRJT04gdGVzdHg7CitDUkVBVEUgQ09M TEFUSU9OIHRlc3R4IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ1BPU0lYJyk7IERST1AgQ09M TEFUSU9OIHRlc3R4OwogCiBDUkVBVEUgQ09MTEFUSU9OIHRlc3Q0IEZST00gbm9uc2Vuc2U7CiBD UkVBVEUgQ09MTEFUSU9OIHRlc3Q1IEZST00gdGVzdDA7Ci0tIAoyLjM0LjEKCg== --=-8swFiJNE32wvPFTxulLJ Content-Disposition: attachment; filename*0=v9-0002-pg_upgrade-check-for-ICU-locale-C-in-versions-15-.pat; filename*1=ch Content-Type: text/x-patch; name="v9-0002-pg_upgrade-check-for-ICU-locale-C-in-versions-15-.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA4NzlmNjhiMjU0ZjJlM2Y1MzFiMGM5MmMwOGJlYmYyMDI5ODM3NmJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBX ZWQsIDI0IE1heSAyMDIzIDEyOjE1OjMzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2OSAyLzRdIHBn X3VwZ3JhZGU6IGNoZWNrIGZvciBJQ1UgbG9jYWxlIEMgaW4gdmVyc2lvbnMgMTUgYW5kCiBlYXJs aWVyLgoKSUNVIGNvbGxhdGlvbnMgd2l0aCBsb2NhbGUgIkMiIChhbmQgZXF1aXZhbGVudGx5ICJQ T1NJWCIpIHdlcmUgbm90CnN1cHBvcnRlZCBiZWZvcmUgdmVyc2lvbiAxNiwgYnV0IGNvdWxkIHN0 aWxsIGJlIGNyZWF0ZWQuIFVzZXJzIHdpdGgKc3VjaCBjb2xsYXRpb25zIHdvdWxkIG5vdCBnZXQg ZXhwZWN0ZWQgYmVoYXZpb3IuCgpSZWplY3QgdXBncmFkaW5nIGNsdXN0ZXJzIHdpdGggc3VjaCBj b2xsYXRpb25zLCBzbyB0aGF0IHdlIGNhbiBzdXBwb3J0CiJDIiBhbmQgIlBPU0lYIiBsb2NhbGVz IGZvciB0aGUgSUNVIHByb3ZpZGVyIHdpdGhvdXQgcmlzayBvZgpjb3JydXB0aW5nIGluZGV4ZXMg ZHVyaW5nIHBnX3VwZ3JhZGUuCi0tLQogc3JjL2Jpbi9wZ191cGdyYWRlL2NoZWNrLmMgfCA5NyAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDk3 IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvY2hlY2suYyBi L3NyYy9iaW4vcGdfdXBncmFkZS9jaGVjay5jCmluZGV4IDY0MDI0ZTNiOWUuLjE3Yzc1Y2YxODYg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9jaGVjay5jCisrKyBiL3NyYy9iaW4vcGdf dXBncmFkZS9jaGVjay5jCkBAIC0yNiw2ICsyNiw3IEBAIHN0YXRpYyB2b2lkIGNoZWNrX2Zvcl90 YWJsZXNfd2l0aF9vaWRzKENsdXN0ZXJJbmZvICpjbHVzdGVyKTsKIHN0YXRpYyB2b2lkIGNoZWNr X2Zvcl9jb21wb3NpdGVfZGF0YV90eXBlX3VzYWdlKENsdXN0ZXJJbmZvICpjbHVzdGVyKTsKIHN0 YXRpYyB2b2lkIGNoZWNrX2Zvcl9yZWdfZGF0YV90eXBlX3VzYWdlKENsdXN0ZXJJbmZvICpjbHVz dGVyKTsKIHN0YXRpYyB2b2lkIGNoZWNrX2Zvcl9hY2xpdGVtX2RhdGFfdHlwZV91c2FnZShDbHVz dGVySW5mbyAqY2x1c3Rlcik7CitzdGF0aWMgdm9pZCBjaGVja19pY3VfY19iZWZvcmVfMTYoQ2x1 c3RlckluZm8gKmNsdXN0ZXIpOwogc3RhdGljIHZvaWQgY2hlY2tfZm9yX2pzb25iXzlfNF91c2Fn ZShDbHVzdGVySW5mbyAqY2x1c3Rlcik7CiBzdGF0aWMgdm9pZCBjaGVja19mb3JfcGdfcm9sZV9w cmVmaXgoQ2x1c3RlckluZm8gKmNsdXN0ZXIpOwogc3RhdGljIHZvaWQgY2hlY2tfZm9yX25ld190 YWJsZXNwYWNlX2RpcihDbHVzdGVySW5mbyAqbmV3X2NsdXN0ZXIpOwpAQCAtMTY0LDYgKzE2NSw5 IEBAIGNoZWNrX2FuZF9kdW1wX29sZF9jbHVzdGVyKGJvb2wgbGl2ZV9jaGVjaykKIAlpZiAoR0VU X01BSk9SX1ZFUlNJT04ob2xkX2NsdXN0ZXIubWFqb3JfdmVyc2lvbikgPD0gOTA1KQogCQljaGVj a19mb3JfcGdfcm9sZV9wcmVmaXgoJm9sZF9jbHVzdGVyKTsKIAorCWlmIChHRVRfTUFKT1JfVkVS U0lPTihvbGRfY2x1c3Rlci5tYWpvcl92ZXJzaW9uKSA8PSAxNTAwKQorCQljaGVja19pY3VfY19i ZWZvcmVfMTYoJm9sZF9jbHVzdGVyKTsKKwogCWlmIChHRVRfTUFKT1JfVkVSU0lPTihvbGRfY2x1 c3Rlci5tYWpvcl92ZXJzaW9uKSA9PSA5MDQgJiYKIAkJb2xkX2NsdXN0ZXIuY29udHJvbGRhdGEu Y2F0X3ZlciA8IEpTT05CX0ZPUk1BVF9DSEFOR0VfQ0FUX1ZFUikKIAkJY2hlY2tfZm9yX2pzb25i XzlfNF91c2FnZSgmb2xkX2NsdXN0ZXIpOwpAQCAtMTIzMyw2ICsxMjM3LDk5IEBAIGNoZWNrX2Zv cl9hY2xpdGVtX2RhdGFfdHlwZV91c2FnZShDbHVzdGVySW5mbyAqY2x1c3RlcikKIAkJY2hlY2tf b2soKTsKIH0KIAorLyoKKyAqIGNoZWNrX2ljdV9jX2JlZm9yZV8xNgorICoKKyAqICBWZXJzaW9u IDE2IGFkZHMgc3VwcG9ydCBmb3IgdGhlIElDVSBDIGxvY2FsZSwgYnV0IGl0IHdhcyBwb3NzaWJs ZSB0bworICogIChpbmNvcnJlY3RseSkgY3JlYXRlIGl0IGluIHByaW9yIHZlcnNpb25zLiBDaGVj ayBmb3IgdGhpcyBpbnZhbGlkIElDVQorICogIGxvY2FsZSBuYW1lIGluIHZlcnNpb24gMTUgYW5k IGVhcmxpZXIuCisgKi8KK3N0YXRpYyB2b2lkCitjaGVja19pY3VfY19iZWZvcmVfMTYoQ2x1c3Rl ckluZm8gKmNsdXN0ZXIpCit7CisJUEdyZXN1bHQgICAqZGF0X3JlczsKKwlQR2Nvbm4JICAgKnRl bXBsYXRlMV9jb25uID0gY29ubmVjdFRvU2VydmVyKGNsdXN0ZXIsICJ0ZW1wbGF0ZTEiKTsKKwlp bnQJCQlkYXRfbnR1cHM7CisJaW50CQkJaV9kYXRuYW1lOworCUZJTEUJICAgKnNjcmlwdCA9IE5V TEw7CisJY2hhcgkJb3V0cHV0X3BhdGhbTUFYUEdQQVRIXTsKKworCXByZXBfc3RhdHVzKCJDaGVj a2luZyBmb3IgSUNVIGNvbGxhdGlvbnMgd2l0aCBsb2NhbGUgXCJDXCIiKTsKKworCXNucHJpbnRm KG91dHB1dF9wYXRoLCBzaXplb2Yob3V0cHV0X3BhdGgpLCAiJXMvJXMiLAorCQkJIGxvZ19vcHRz LmJhc2VkaXIsCisJCQkgImljdV9jX2JlZm9yZV8xNi50eHQiKTsKKworCS8qIGNoZWNrIHBnX2Rh dGFiYXNlICovCisJZGF0X3JlcyA9IGV4ZWN1dGVRdWVyeU9yRGllKHRlbXBsYXRlMV9jb25uLAor CQkJCQkJCQkiU0VMRUNUIGRhdG5hbWUgIgorCQkJCQkJCQkiRlJPTSBwZ19jYXRhbG9nLnBnX2Rh dGFiYXNlICIKKwkJCQkJCQkJIldIRVJFIGRhdGxvY3Byb3ZpZGVyPSdpJyAiCisJCQkJCQkJCSJB TkQgZGF0aWN1bG9jYWxlIElOICgnQycsJ1BPU0lYJykiKTsKKworCWlfZGF0bmFtZSA9IFBRZm51 bWJlcihkYXRfcmVzLCAiZGF0bmFtZSIpOworCisJZGF0X250dXBzID0gUFFudHVwbGVzKGRhdF9y ZXMpOworCisJZm9yIChpbnQgcm93bm8gPSAwOyByb3dubyA8IGRhdF9udHVwczsgcm93bm8rKykK Kwl7CisJCWlmIChzY3JpcHQgPT0gTlVMTCAmJiAoc2NyaXB0ID0gZm9wZW5fcHJpdihvdXRwdXRf cGF0aCwgInciKSkgPT0gTlVMTCkKKwkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBmaWxlIFwi JXNcIjogJXMiLAorCQkJCQkgb3V0cHV0X3BhdGgsIHN0cmVycm9yKGVycm5vKSk7CisJCWZwcmlu dGYoc2NyaXB0LCAiZGVmYXVsdCBjb2xsYXRpb24gZm9yIGRhdGFiYXNlICVzXG4iLAorCQkJCVBR Z2V0dmFsdWUoZGF0X3Jlcywgcm93bm8sIGlfZGF0bmFtZSkpOworCX0KKworCVBRY2xlYXIoZGF0 X3Jlcyk7CisJUFFmaW5pc2godGVtcGxhdGUxX2Nvbm4pOworCisJLyogY2hlY2sgcGdfY29sbGF0 aW9uIGluIGVhY2ggZGF0YWJhc2UgKi8KKwlmb3IgKGludCBkYm51bSA9IDA7IGRibnVtIDwgY2x1 c3Rlci0+ZGJhcnIubmRiczsgZGJudW0rKykKKwl7CisJCURiSW5mbwkgICAqYWN0aXZlX2RiID0g JmNsdXN0ZXItPmRiYXJyLmRic1tkYm51bV07CisJCVBHY29ubgkgICAqZGJfY29ubiA9IGNvbm5l Y3RUb1NlcnZlcihjbHVzdGVyLCBhY3RpdmVfZGItPmRiX25hbWUpOworCQlQR3Jlc3VsdCAgICpj b2xsX3JlczsKKwkJaW50CQkJY29sbF9udHVwczsKKwkJaW50CQkJaV9jb2xsaWQ7CisJCWludAkJ CWlfY29sbG5hbWU7CisKKwkJY29sbF9yZXMgPSBleGVjdXRlUXVlcnlPckRpZShkYl9jb25uLAor CQkJCQkJCQkJICJTRUxFQ1Qgb2lkIGFzIGNvbGxpZCwgY29sbG5hbWUgIgorCQkJCQkJCQkJICJG Uk9NIHBnX2NhdGFsb2cucGdfY29sbGF0aW9uICIKKwkJCQkJCQkJCSAiV0hFUkUgY29sbHByb3Zp ZGVyPSdpJyAiCisJCQkJCQkJCQkgIkFORCBjb2xsaWN1bG9jYWxlIElOICgnQycsJ1BPU0lYJyki KTsKKworCQlpX2NvbGxpZCA9IFBRZm51bWJlcihjb2xsX3JlcywgImNvbGxpZCIpOworCQlpX2Nv bGxuYW1lID0gUFFmbnVtYmVyKGNvbGxfcmVzLCAiY29sbG5hbWUiKTsKKworCQljb2xsX250dXBz ID0gUFFudHVwbGVzKGNvbGxfcmVzKTsKKworCQlmb3IgKGludCByb3dubyA9IDA7IHJvd25vIDwg Y29sbF9udHVwczsgcm93bm8rKykKKwkJeworCQkJaWYgKHNjcmlwdCA9PSBOVUxMICYmIChzY3Jp cHQgPSBmb3Blbl9wcml2KG91dHB1dF9wYXRoLCAidyIpKSA9PSBOVUxMKQorCQkJCXBnX2ZhdGFs KCJjb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIjogJXMiLAorCQkJCQkJIG91dHB1dF9wYXRoLCBz dHJlcnJvcihlcnJubykpOworCQkJZnByaW50ZihzY3JpcHQsICJkYXRhYmFzZSAlcyBjb2xsYXRp b24gJXMgKG9pZD0lcylcbiIsCisJCQkJCWFjdGl2ZV9kYi0+ZGJfbmFtZSwKKwkJCQkJUFFnZXR2 YWx1ZShjb2xsX3Jlcywgcm93bm8sIGlfY29sbG5hbWUpLAorCQkJCQlQUWdldHZhbHVlKGNvbGxf cmVzLCByb3dubywgaV9jb2xsaWQpKTsKKwkJfQorCisJCVBRY2xlYXIoY29sbF9yZXMpOworCQlQ UWZpbmlzaChkYl9jb25uKTsKKwl9CisKKwlpZiAoc2NyaXB0KQorCXsKKwkJcGdfbG9nKFBHX1JF UE9SVCwgImZhdGFsIik7CisJCXBnX2ZhdGFsKCJZb3VyIGluc3RhbGxhdGlvbiBjb250YWlucyBJ Q1UgY29sbGF0aW9ucyB3aXRoIHRoZSBsb2NhbGUgXCJDXCIgb3IgXCJQT1NJWFwiLFxuIgorCQkJ CSAid2hpY2ggYXJlIG5vdCBzdXBwb3J0ZWQgdW50aWwgdmVyc2lvbiAxNi4gRWFybGllciB2ZXJz aW9ucyB1c2luZyBJQ1UgXG4iCisJCQkJICJjb2xsYXRpb25zIHdpdGggdGhlIFwiQ1wiIG9yIFwi UE9TSVhcIiBsb2NhbGVzIGNhbm5vdCBiZSB1cGdyYWRlZC4iKTsKKwl9CisKKwljaGVja19vaygp OworfQorCiAvKgogICogY2hlY2tfZm9yX2pzb25iXzlfNF91c2FnZSgpCiAgKgotLSAKMi4zNC4x Cgo= --=-8swFiJNE32wvPFTxulLJ Content-Disposition: attachment; filename*0=v9-0003-Make-LOCALE-apply-to-ICU_LOCALE-for-CREATE-DATABA.pat; filename*1=ch Content-Type: text/x-patch; name="v9-0003-Make-LOCALE-apply-to-ICU_LOCALE-for-CREATE-DATABA.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAzNjFiODFmMWVhNTE1Mzc0NWI1MWQ4MjE1YjNkY2FlYWM0ZmRlZWRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDI1IEFwciAyMDIzIDE1OjAxOjU1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2OSAzLzRdIE1h a2UgTE9DQUxFIGFwcGx5IHRvIElDVV9MT0NBTEUgZm9yIENSRUFURSBEQVRBQkFTRS4KCkxPQ0FM RSBpcyBub3cgYW4gYWxpYXMgZm9yIExDX0NPTExBVEUsIExDX0NUWVBFLCBhbmQgKGlmIHRoZSBw cm92aWRlcgppcyBJQ1UpIElDVV9MT0NBTEUuIFRoZSBJQ1UgcHJvdmlkZXIgYWNjZXB0cyBtb3Jl IGxvY2FsZSBuYW1lcyB0aGFuCmxpYmMgKGUuZy4gbGFuZ3VhZ2UgdGFncyBhbmQgbG9jYWxlIG5h bWVzIGNvbnRhaW5pbmcgY29sbGF0aW9uCmF0dHJpYnV0ZXMpLCBzbyBpbiBzb21lIGNhc2VzIExD X0NPTExBVEUsIExDX0NUWVBFLCBhbmQgSUNVX0xPQ0FMRQp3aWxsIHN0aWxsIG5lZWQgdG8gYmUg c3BlY2lmaWVkIHNlcGFyYXRlbHkuCgpQcmV2aW91c2x5LCBMT0NBTEUgYXBwbGllZCBvbmx5IHRv IExDX0NPTExBVEUgYW5kIExDX0NUWVBFIChhbmQKc2ltaWxhcmx5IGZvciAtLWxvY2FsZSBpbiBp bml0ZGIgYW5kIGNyZWF0ZWRiKS4gVGhhdCBjb3VsZCBsZWFkIHRvCmNvbmZ1c2lvbiB3aGVuIHRo ZSBwcm92aWRlciBpcyBpbXBsaWNpdCwgc3VjaCBhcyB3aGVuIGl0IGlzIGluaGVyaXRlZApmcm9t IHRoZSB0ZW1wbGF0ZSBkYXRhYmFzZSwgb3Igd2hlbiBJQ1Ugd2FzIG1hZGUgZGVmYXVsdCBhdCBp bml0ZGIKdGltZSBpbiBjb21taXQgMjdiNjIzNzdiNC4KClJldmVydHMgaW5jb21wbGV0ZSBmaXgg NWNkMWE1YWY0ZC4KCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vMzM5MTkzMi4xNjgy MTA3MjA5QHNzcy5wZ2gucGEudXMKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9kYXRhYmFz ZS5zZ21sICAgICAgICAgfCAgNiArKystLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVkYi5zZ21s ICAgICAgICAgICAgICAgIHwgIDUgKysrLQogZG9jL3NyYy9zZ21sL3JlZi9pbml0ZGIuc2dtbCAg ICAgICAgICAgICAgICAgIHwgIDcgKysrLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRp b25jbWRzLmMgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5k cy5jICAgICAgICAgICAgIHwgMTUgKysrKysrKystLS0tCiBzcmMvYmluL2luaXRkYi9pbml0ZGIu YyAgICAgICAgICAgICAgICAgICAgICAgfCAxMSArKysrKystLS0KIHNyYy9iaW4vc2NyaXB0cy9j cmVhdGVkYi5jICAgICAgICAgICAgICAgICAgICB8ICA1ICsrKysKIHNyYy9iaW4vc2NyaXB0cy90 LzAyMF9jcmVhdGVkYi5wbCAgICAgICAgICAgICB8ICA0ICsrLS0KIHNyYy90ZXN0L2ljdS90LzAx MF9kYXRhYmFzZS5wbCAgICAgICAgICAgICAgICB8IDIzICsrKysrKysrKysrKy0tLS0tLS0KIC4u Li9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUuaWN1LnV0Zjgub3V0ICAgICB8IDIyICsrKysrKysr Ky0tLS0tLS0tLQogMTAgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZGF0YWJhc2Uuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2RhdGFiYXNlLnNnbWwKaW5kZXggMTM3OTNiYjZi Ny4uODQ0NzczZmY0NCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZGF0YWJh c2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9kYXRhYmFzZS5zZ21sCkBAIC0x NDUsOCArMTQ1LDEwIEBAIENSRUFURSBEQVRBQkFTRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bG9jYWxlPC9yZXBsYWNlYWJsZT48L3Rlcm0+CiAgICAgICA8bGlzdGl0ZW0+ CiAgICAgICAgPHBhcmE+Ci0gICAgICAgIFRoaXMgaXMgYSBzaG9ydGN1dCBmb3Igc2V0dGluZyA8 c3ltYm9sPkxDX0NPTExBVEU8L3N5bWJvbD4KLSAgICAgICAgYW5kIDxzeW1ib2w+TENfQ1RZUEU8 L3N5bWJvbD4gYXQgb25jZS4KKyAgICAgICAgVGhpcyBpcyBhIHNob3J0Y3V0IGZvciBzZXR0aW5n IDxzeW1ib2w+TENfQ09MTEFURTwvc3ltYm9sPiwKKyAgICAgICAgPHN5bWJvbD5MQ19DVFlQRTwv c3ltYm9sPiBhbmQgPHN5bWJvbD5JQ1VfTE9DQUxFPC9zeW1ib2w+IGF0CisgICAgICAgIG9uY2Uu IFNvbWUgbG9jYWxlcyBhcmUgb25seSB2YWxpZCBmb3IgSUNVLCBhbmQgbXVzdCBiZSBzZXQgc2Vw YXJhdGVseQorICAgICAgICB3aXRoIDxzeW1ib2w+SUNVX0xPQ0FMRTwvc3ltYm9sPi4KICAgICAg ICA8L3BhcmE+CiAgICAgICAgPHRpcD4KICAgICAgICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZWRiLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZWRiLnNn bWwKaW5kZXggZTIzNDE5YmE2Yy4uZTQ2NDdkNWNlNyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVkYi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlZGIuc2dtbApA QCAtMTI0LDcgKzEyNCwxMCBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgIDxsaXN0 aXRlbT4KICAgICAgICA8cGFyYT4KICAgICAgICAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUg dXNlZCBpbiB0aGlzIGRhdGFiYXNlLiAgVGhpcyBpcyBlcXVpdmFsZW50Ci0gICAgICAgIHRvIHNw ZWNpZnlpbmcgYm90aCA8b3B0aW9uPi0tbGMtY29sbGF0ZTwvb3B0aW9uPiBhbmQgPG9wdGlvbj4t LWxjLWN0eXBlPC9vcHRpb24+LgorICAgICAgICB0byBzcGVjaWZ5aW5nIDxvcHRpb24+LS1sYy1j b2xsYXRlPC9vcHRpb24+LAorICAgICAgICA8b3B0aW9uPi0tbGMtY3R5cGU8L29wdGlvbj4sIGFu ZCA8b3B0aW9uPi0taWN1LWxvY2FsZTwvb3B0aW9uPiB0byB0aGUKKyAgICAgICAgc2FtZSB2YWx1 ZS4gU29tZSBsb2NhbGVzIGFyZSBvbmx5IHZhbGlkIGZvciBJQ1UgYW5kIG11c3QgYmUgc2V0IHdp dGgKKyAgICAgICAgPG9wdGlvbj4tLWljdS1sb2NhbGU8L29wdGlvbj4uCiAgICAgICAgPC9wYXJh PgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2luaXRkYi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9pbml0ZGIuc2dt bAppbmRleCA4Nzk0NWI0YjYyLi5mODUwZGM0MDRkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv cmVmL2luaXRkYi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvaW5pdGRiLnNnbWwKQEAgLTEx Niw5ICsxMTYsMTAgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgIDxwYXJhPgogICAgVG8g Y2hvb3NlIGEgZGlmZmVyZW50IGxvY2FsZSBmb3IgdGhlIGNsdXN0ZXIsIHVzZSB0aGUgb3B0aW9u CiAgICA8b3B0aW9uPi0tbG9jYWxlPC9vcHRpb24+LiAgVGhlcmUgYXJlIGFsc28gaW5kaXZpZHVh bCBvcHRpb25zCi0gICA8b3B0aW9uPi0tbGMtKjwvb3B0aW9uPiAoc2VlIGJlbG93KSB0byBzZXQg dmFsdWVzIGZvciB0aGUgaW5kaXZpZHVhbCBsb2NhbGUKLSAgIGNhdGVnb3JpZXMuICBOb3RlIHRo YXQgaW5jb25zaXN0ZW50IHNldHRpbmdzIGZvciBkaWZmZXJlbnQgbG9jYWxlCi0gICBjYXRlZ29y aWVzIGNhbiBnaXZlIG5vbnNlbnNpY2FsIHJlc3VsdHMsIHNvIHRoaXMgc2hvdWxkIGJlIHVzZWQg d2l0aCBjYXJlLgorICAgPG9wdGlvbj4tLWxjLSo8L29wdGlvbj4gYW5kIDxvcHRpb24+LS1pY3Ut bG9jYWxlPC9vcHRpb24+IChzZWUgYmVsb3cpIHRvCisgICBzZXQgdmFsdWVzIGZvciB0aGUgaW5k aXZpZHVhbCBsb2NhbGUgY2F0ZWdvcmllcy4gIE5vdGUgdGhhdCBpbmNvbnNpc3RlbnQKKyAgIHNl dHRpbmdzIGZvciBkaWZmZXJlbnQgbG9jYWxlIGNhdGVnb3JpZXMgY2FuIGdpdmUgbm9uc2Vuc2lj YWwgcmVzdWx0cywgc28KKyAgIHRoaXMgc2hvdWxkIGJlIHVzZWQgd2l0aCBjYXJlLgogICA8L3Bh cmE+CiAKICAgPHBhcmE+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRp b25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRpb25jbWRzLmMKaW5kZXggZGQ2 Y2QyNjgyZi4uYzE2NTkyMjEyMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29s bGF0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxhdGlvbmNtZHMuYwpA QCAtMjg4LDcgKzI4OCw3IEBAIERlZmluZUNvbGxhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIExp c3QgKm5hbWVzLCBMaXN0ICpwYXJhbWV0ZXJzLCBib29sIGlmX25vdF9lCiAJCQkJCWlmIChsYW5n dGFnICYmIHN0cmNtcChjb2xsaWN1bG9jYWxlLCBsYW5ndGFnKSAhPSAwKQogCQkJCQl7CiAJCQkJ CQllcmVwb3J0KE5PVElDRSwKLQkJCQkJCQkJKGVycm1zZygidXNpbmcgc3RhbmRhcmQgZm9ybSBc IiVzXCIgZm9yIGxvY2FsZSBcIiVzXCIiLAorCQkJCQkJCQkoZXJybXNnKCJ1c2luZyBzdGFuZGFy ZCBmb3JtIFwiJXNcIiBmb3IgSUNVIGxvY2FsZSBcIiVzXCIiLAogCQkJCQkJCQkJCWxhbmd0YWcs IGNvbGxpY3Vsb2NhbGUpKSk7CiAKIAkJCQkJCWNvbGxpY3Vsb2NhbGUgPSBsYW5ndGFnOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5kcy5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvZGJjb21tYW5kcy5jCmluZGV4IGJmY2U4ZGMzNDguLmE0NzhhMjI4N2YgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2RiY29tbWFuZHMuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9kYmNvbW1hbmRzLmMKQEAgLTEwMTcsNyArMTAxNywxMiBAQCBjcmVhdGVkYihQ YXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IENyZWF0ZWRiU3RtdCAqc3RtdCkKIAlpZiAoZGJsb2Nw cm92aWRlciA9PSAnXDAnKQogCQlkYmxvY3Byb3ZpZGVyID0gc3JjX2xvY3Byb3ZpZGVyOwogCWlm IChkYmljdWxvY2FsZSA9PSBOVUxMICYmIGRibG9jcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lD VSkKLQkJZGJpY3Vsb2NhbGUgPSBzcmNfaWN1bG9jYWxlOworCXsKKwkJaWYgKGRsb2NhbGUgJiYg ZGxvY2FsZS0+YXJnKQorCQkJZGJpY3Vsb2NhbGUgPSBkZWZHZXRTdHJpbmcoZGxvY2FsZSk7CisJ CWVsc2UKKwkJCWRiaWN1bG9jYWxlID0gc3JjX2ljdWxvY2FsZTsKKwl9CiAJaWYgKGRiaWN1cnVs ZXMgPT0gTlVMTCAmJiBkYmxvY3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UpCiAJCWRiaWN1 cnVsZXMgPSBzcmNfaWN1cnVsZXM7CiAKQEAgLTEwMzEsMTIgKzEwMzYsMTQgQEAgY3JlYXRlZGIo UGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBDcmVhdGVkYlN0bXQgKnN0bXQpCiAJaWYgKCFjaGVj a19sb2NhbGUoTENfQ09MTEFURSwgZGJjb2xsYXRlLCAmY2Fub25uYW1lKSkKIAkJZXJlcG9ydChF UlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKLQkJCQkgZXJy bXNnKCJpbnZhbGlkIGxvY2FsZSBuYW1lOiBcIiVzXCIiLCBkYmNvbGxhdGUpKSk7CisJCQkJIGVy cm1zZygiaW52YWxpZCBMQ19DT0xMQVRFIGxvY2FsZSBuYW1lOiBcIiVzXCIiLCBkYmNvbGxhdGUp LAorCQkJCSBlcnJoaW50KCJJZiB0aGUgbG9jYWxlIG5hbWUgaXMgc3BlY2lmaWMgdG8gSUNVLCB1 c2UgSUNVX0xPQ0FMRS4iKSkpOwogCWRiY29sbGF0ZSA9IGNhbm9ubmFtZTsKIAlpZiAoIWNoZWNr X2xvY2FsZShMQ19DVFlQRSwgZGJjdHlwZSwgJmNhbm9ubmFtZSkpCiAJCWVyZXBvcnQoRVJST1Is CiAJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJIGVycm1zZygi aW52YWxpZCBsb2NhbGUgbmFtZTogXCIlc1wiIiwgZGJjdHlwZSkpKTsKKwkJCQkgZXJybXNnKCJp bnZhbGlkIExDX0NUWVBFIGxvY2FsZSBuYW1lOiBcIiVzXCIiLCBkYmN0eXBlKSwKKwkJCQkgZXJy aGludCgiSWYgdGhlIGxvY2FsZSBuYW1lIGlzIHNwZWNpZmljIHRvIElDVSwgdXNlIElDVV9MT0NB TEUuIikpKTsKIAlkYmN0eXBlID0gY2Fub25uYW1lOwogCiAJY2hlY2tfZW5jb2RpbmdfbG9jYWxl X21hdGNoZXMoZW5jb2RpbmcsIGRiY29sbGF0ZSwgZGJjdHlwZSk7CkBAIC0xMDgwLDcgKzEwODcs NyBAQCBjcmVhdGVkYihQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IENyZWF0ZWRiU3RtdCAqc3Rt dCkKIAkJCQlpZiAobGFuZ3RhZyAmJiBzdHJjbXAoZGJpY3Vsb2NhbGUsIGxhbmd0YWcpICE9IDAp CiAJCQkJewogCQkJCQllcmVwb3J0KE5PVElDRSwKLQkJCQkJCQkoZXJybXNnKCJ1c2luZyBzdGFu ZGFyZCBmb3JtIFwiJXNcIiBmb3IgbG9jYWxlIFwiJXNcIiIsCisJCQkJCQkJKGVycm1zZygidXNp bmcgc3RhbmRhcmQgZm9ybSBcIiVzXCIgZm9yIElDVSBsb2NhbGUgXCIlc1wiIiwKIAkJCQkJCQkJ CWxhbmd0YWcsIGRiaWN1bG9jYWxlKSkpOwogCiAJCQkJCWRiaWN1bG9jYWxlID0gbGFuZ3RhZzsK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jIGIvc3JjL2Jpbi9pbml0ZGIvaW5p dGRiLmMKaW5kZXggN2FhMmQ4NzFlMy4uOTNiMTliOTUyYiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9p bml0ZGIvaW5pdGRiLmMKKysrIGIvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKQEAgLTIxNjMsNyAr MjE2MywxMSBAQCBjaGVja19sb2NhbGVfbmFtZShpbnQgY2F0ZWdvcnksIGNvbnN0IGNoYXIgKmxv Y2FsZSwgY2hhciAqKmNhbm9ubmFtZSkKIAlpZiAocmVzID09IE5VTEwpCiAJewogCQlpZiAoKmxv Y2FsZSkKLQkJCXBnX2ZhdGFsKCJpbnZhbGlkIGxvY2FsZSBuYW1lIFwiJXNcIiIsIGxvY2FsZSk7 CisJCXsKKwkJCXBnX2xvZ19lcnJvcigiaW52YWxpZCBsb2NhbGUgbmFtZSBcIiVzXCIiLCBsb2Nh bGUpOworCQkJcGdfbG9nX2Vycm9yX2hpbnQoIklmIHRoZSBsb2NhbGUgbmFtZSBpcyBzcGVjaWZp YyB0byBJQ1UsIHVzZSAtLWljdS1sb2NhbGUuIik7CisJCQlleGl0KDEpOworCQl9CiAJCWVsc2UK IAkJewogCQkJLyoKQEAgLTIzNzYsNyArMjM4MCw3IEBAIHNldGxvY2FsZXModm9pZCkKIHsKIAlj aGFyCSAgICpjYW5vbm5hbWU7CiAKLQkvKiBzZXQgZW1wdHkgbGNfKiB2YWx1ZXMgdG8gbG9jYWxl IGNvbmZpZyBpZiBzZXQgKi8KKwkvKiBzZXQgZW1wdHkgbGNfKiBhbmQgaWN1bG9jYWxlIHZhbHVl cyB0byBsb2NhbGUgY29uZmlnIGlmIHNldCAqLwogCiAJaWYgKGxvY2FsZSkKIAl7CkBAIC0yMzky LDYgKzIzOTYsOCBAQCBzZXRsb2NhbGVzKHZvaWQpCiAJCQlsY19tb25ldGFyeSA9IGxvY2FsZTsK IAkJaWYgKCFsY19tZXNzYWdlcykKIAkJCWxjX21lc3NhZ2VzID0gbG9jYWxlOworCQlpZiAoIWlj dV9sb2NhbGUgJiYgbG9jYWxlX3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UpCisJCQlpY3Vf bG9jYWxlID0gcGdfc3RyZHVwKGxvY2FsZSk7CiAJfQogCiAJLyoKQEAgLTMyNzYsNyArMzI4Miw2 IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJCQlicmVhazsKIAkJCWNhc2UgODoK IAkJCQlsb2NhbGUgPSAiQyI7Ci0JCQkJbG9jYWxlX3Byb3ZpZGVyID0gQ09MTFBST1ZJREVSX0xJ QkM7CiAJCQkJYnJlYWs7CiAJCQljYXNlIDk6CiAJCQkJcHdmaWxlbmFtZSA9IHBnX3N0cmR1cChv cHRhcmcpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9zY3JpcHRzL2NyZWF0ZWRiLmMgYi9zcmMvYmlu L3NjcmlwdHMvY3JlYXRlZGIuYwppbmRleCBiNDIwNWM0ZmE1Li41OGU5OGViYjljIDEwMDY0NAot LS0gYS9zcmMvYmluL3NjcmlwdHMvY3JlYXRlZGIuYworKysgYi9zcmMvYmluL3NjcmlwdHMvY3Jl YXRlZGIuYwpAQCAtMjE5LDYgKzIxOSwxMSBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10p CiAJCWFwcGVuZFBRRXhwQnVmZmVyKCZzcWwsICIgU1RSQVRFR1kgJXMiLCBmbXRJZChzdHJhdGVn eSkpOwogCWlmICh0ZW1wbGF0ZSkKIAkJYXBwZW5kUFFFeHBCdWZmZXIoJnNxbCwgIiBURU1QTEFU RSAlcyIsIGZtdElkKHRlbXBsYXRlKSk7CisJaWYgKGxvY2FsZSkKKwl7CisJCWFwcGVuZFBRRXhw QnVmZmVyU3RyKCZzcWwsICIgTE9DQUxFICIpOworCQlhcHBlbmRTdHJpbmdMaXRlcmFsQ29ubigm c3FsLCBsb2NhbGUsIGNvbm4pOworCX0KIAlpZiAobGNfY29sbGF0ZSkKIAl7CiAJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKCZzcWwsICIgTENfQ09MTEFURSAiKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4v c2NyaXB0cy90LzAyMF9jcmVhdGVkYi5wbCBiL3NyYy9iaW4vc2NyaXB0cy90LzAyMF9jcmVhdGVk Yi5wbAppbmRleCBkMDgzMGE0YTFkLi5jM2NkNjc0NDQwIDEwMDY0NAotLS0gYS9zcmMvYmluL3Nj cmlwdHMvdC8wMjBfY3JlYXRlZGIucGwKKysrIGIvc3JjL2Jpbi9zY3JpcHRzL3QvMDIwX2NyZWF0 ZWRiLnBsCkBAIC0xMzcsNyArMTM3LDcgQEAgJG5vZGUtPmNvbW1hbmRfY2hlY2tzX2FsbCgKIAkx LAogCVtxci9eJC9dLAogCVsKLQkJcXIvXmNyZWF0ZWRiOiBlcnJvcjogZGF0YWJhc2UgY3JlYXRp b24gZmFpbGVkOiBFUlJPUjogIGludmFsaWQgbG9jYWxlIG5hbWV8XmNyZWF0ZWRiOiBlcnJvcjog ZGF0YWJhc2UgY3JlYXRpb24gZmFpbGVkOiBFUlJPUjogIG5ldyBjb2xsYXRpb24gXChmb28nOyBT RUxFQ1QgJzFcKSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgY29sbGF0aW9uIG9mIHRoZSB0ZW1w bGF0ZSBkYXRhYmFzZS9zCisJCXFyL15jcmVhdGVkYjogZXJyb3I6IGRhdGFiYXNlIGNyZWF0aW9u IGZhaWxlZDogRVJST1I6ICBpbnZhbGlkIExDX0NPTExBVEUgbG9jYWxlIG5hbWV8XmNyZWF0ZWRi OiBlcnJvcjogZGF0YWJhc2UgY3JlYXRpb24gZmFpbGVkOiBFUlJPUjogIG5ldyBjb2xsYXRpb24g XChmb28nOyBTRUxFQ1QgJzFcKSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgY29sbGF0aW9uIG9m IHRoZSB0ZW1wbGF0ZSBkYXRhYmFzZS9zCiAJXSwKIAknY3JlYXRlZGIgd2l0aCBpbmNvcnJlY3Qg LS1sYy1jb2xsYXRlJyk7CiAkbm9kZS0+Y29tbWFuZF9jaGVja3NfYWxsKApAQCAtMTQ1LDcgKzE0 NSw3IEBAICRub2RlLT5jb21tYW5kX2NoZWNrc19hbGwoCiAJMSwKIAlbcXIvXiQvXSwKIAlbCi0J CXFyL15jcmVhdGVkYjogZXJyb3I6IGRhdGFiYXNlIGNyZWF0aW9uIGZhaWxlZDogRVJST1I6ICBp bnZhbGlkIGxvY2FsZSBuYW1lfF5jcmVhdGVkYjogZXJyb3I6IGRhdGFiYXNlIGNyZWF0aW9uIGZh aWxlZDogRVJST1I6ICBuZXcgTENfQ1RZUEUgXChmb28nOyBTRUxFQ1QgJzFcKSBpcyBpbmNvbXBh dGlibGUgd2l0aCB0aGUgTENfQ1RZUEUgb2YgdGhlIHRlbXBsYXRlIGRhdGFiYXNlL3MKKwkJcXIv XmNyZWF0ZWRiOiBlcnJvcjogZGF0YWJhc2UgY3JlYXRpb24gZmFpbGVkOiBFUlJPUjogIGludmFs aWQgTENfQ1RZUEUgbG9jYWxlIG5hbWV8XmNyZWF0ZWRiOiBlcnJvcjogZGF0YWJhc2UgY3JlYXRp b24gZmFpbGVkOiBFUlJPUjogIG5ldyBMQ19DVFlQRSBcKGZvbyc7IFNFTEVDVCAnMVwpIGlzIGlu Y29tcGF0aWJsZSB3aXRoIHRoZSBMQ19DVFlQRSBvZiB0aGUgdGVtcGxhdGUgZGF0YWJhc2Uvcwog CV0sCiAJJ2NyZWF0ZWRiIHdpdGggaW5jb3JyZWN0IC0tbGMtY3R5cGUnKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvaWN1L3QvMDEwX2RhdGFiYXNlLnBsIGIvc3JjL3Rlc3QvaWN1L3QvMDEwX2Rh dGFiYXNlLnBsCmluZGV4IGQzOTAxZjVkM2YuLmVhMmJlMDA4YWYgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L2ljdS90LzAxMF9kYXRhYmFzZS5wbAorKysgYi9zcmMvdGVzdC9pY3UvdC8wMTBfZGF0YWJh c2UucGwKQEAgLTUxLDE3ICs1MSwyNCBAQCBiKSwKIAknc29ydCBieSBleHBsaWNpdCBjb2xsYXRp b24gdXBwZXIgZmlyc3QnKTsKIAogCi0jIFRlc3QgZXJyb3IgY2FzZXMgaW4gQ1JFQVRFIERBVEFC QVNFIGludm9sdmluZyBsb2NhbGUtcmVsYXRlZCBvcHRpb25zCisjIFRlc3QgdGhhdCBMT0NBTEU9 J0MnIHdvcmtzIGZvciBJQ1UKIAotbXkgKCRyZXQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGUx LT5wc3FsKCdwb3N0Z3JlcycsCi0JcXtDUkVBVEUgREFUQUJBU0UgZGJpY3UgTE9DQUxFX1BST1ZJ REVSIGljdSBMT0NBTEUgJ0MnIFRFTVBMQVRFIHRlbXBsYXRlMCBFTkNPRElORyBVVEY4fQorbXkg JHJldDEgPSAkbm9kZTEtPnBzcWwoJ3Bvc3RncmVzJywKKwlxe0NSRUFURSBEQVRBQkFTRSBkYmlj dTIgTE9DQUxFX1BST1ZJREVSIGljdSBMT0NBTEUgJ0MnIFRFTVBMQVRFIHRlbXBsYXRlMCBFTkNP RElORyBVVEY4fQogKTsKLWlzbnQoJHJldCwgMCwKLQkiSUNVIGxvY2FsZSBtdXN0IGJlIHNwZWNp ZmllZCBmb3IgSUNVIHByb3ZpZGVyOiBleGl0IGNvZGUgbm90IDAiKTsKK2lzKCRyZXQxLCAwLAor CSJDIGxvY2FsZSB3b3JrcyBmb3IgSUNVIik7CisKKyMgVGVzdCB0aGF0IElDVS1zcGVjaWZpYyBs b2NhbGUgc3RyaW5nIG11c3QgYmUgc3BlY2lmaWVkIHdpdGggSUNVX0xPQ0FMRSwKKyMgbm90IExP Q0FMRQorCitteSAoJHJldDIsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGUxLT5wc3FsKCdwb3N0 Z3JlcycsCisJcXtDUkVBVEUgREFUQUJBU0UgZGJpY3UzIExPQ0FMRV9QUk9WSURFUiBpY3UgTE9D QUxFICdAY29sU3RyZW5ndGg9cHJpbWFyeScgVEVNUExBVEUgdGVtcGxhdGUwIEVOQ09ESU5HIFVU Rjh9KTsKK2lzbnQoJHJldDIsIDAsCisJIklDVS1zcGVjaWZpYyBsb2NhbGUgbXVzdCBiZSBzcGVj aWZpZWQgd2l0aCBJQ1VfTE9DQUxFOiBleGl0IGNvZGUgbm90IDAiKTsKIGxpa2UoCiAJJHN0ZGVy ciwKLQlxci9FUlJPUjogIElDVSBsb2NhbGUgbXVzdCBiZSBzcGVjaWZpZWQvLAotCSJJQ1UgbG9j YWxlIG11c3QgYmUgc3BlY2lmaWVkIGZvciBJQ1UgcHJvdmlkZXI6IGVycm9yIG1lc3NhZ2UiKTsK LQorCXFyL0VSUk9SOiAgaW52YWxpZCBMQ19DT0xMQVRFIGxvY2FsZSBuYW1lLywKKwkiSUNVLXNw ZWNpZmljIGxvY2FsZSBtdXN0IGJlIHNwZWNpZmllZCB3aXRoIElDVV9MT0NBTEU6IGVycm9yIG1l c3NhZ2UiKTsKIAogZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2NvbGxhdGUuaWN1LnV0Zjgub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9jb2xsYXRlLmljdS51dGY4Lm91dAppbmRleCBiZmMyOGVjZmNmLi5mZGYwN2RiMzZlIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUuaWN1LnV0Zjgub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRmOC5vdXQKQEAgLTEy MDAsOSArMTIwMCw5IEBAIFNFTEVDVCAnY290w6knIDwgJ2PDtHRlJyBDT0xMQVRFICJ1bmQteC1p Y3UiLCAnY290w6knID4gJ2PDtHRlJyBDT0xMQVRFIHRlc3Rjb2xsCiAoMSByb3cpCiAKIENSRUFU RSBDT0xMQVRJT04gdGVzdGNvbGxfbG93ZXJfZmlyc3QgKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUg PSAnQGNvbENhc2VGaXJzdD1sb3dlcicpOwotTk9USUNFOiAgdXNpbmcgc3RhbmRhcmQgZm9ybSAi dW5kLXUta2YtbG93ZXIiIGZvciBsb2NhbGUgIkBjb2xDYXNlRmlyc3Q9bG93ZXIiCitOT1RJQ0U6 ICB1c2luZyBzdGFuZGFyZCBmb3JtICJ1bmQtdS1rZi1sb3dlciIgZm9yIElDVSBsb2NhbGUgIkBj b2xDYXNlRmlyc3Q9bG93ZXIiCiBDUkVBVEUgQ09MTEFUSU9OIHRlc3Rjb2xsX3VwcGVyX2ZpcnN0 IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0Bjb2xDYXNlRmlyc3Q9dXBwZXInKTsKLU5PVElD RTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVuZC11LWtmLXVwcGVyIiBmb3IgbG9jYWxlICJAY29s Q2FzZUZpcnN0PXVwcGVyIgorTk9USUNFOiAgdXNpbmcgc3RhbmRhcmQgZm9ybSAidW5kLXUta2Yt dXBwZXIiIGZvciBJQ1UgbG9jYWxlICJAY29sQ2FzZUZpcnN0PXVwcGVyIgogU0VMRUNUICdhYWEn IDwgJ0FBQScgQ09MTEFURSB0ZXN0Y29sbF9sb3dlcl9maXJzdCwgJ2FhYScgPiAnQUFBJyBDT0xM QVRFIHRlc3Rjb2xsX3VwcGVyX2ZpcnN0OwogID9jb2x1bW4/IHwgP2NvbHVtbj8gCiAtLS0tLS0t LS0tKy0tLS0tLS0tLS0KQEAgLTEyMTAsNyArMTIxMCw3IEBAIFNFTEVDVCAnYWFhJyA8ICdBQUEn IENPTExBVEUgdGVzdGNvbGxfbG93ZXJfZmlyc3QsICdhYWEnID4gJ0FBQScgQ09MTEFURSB0ZXN0 Y29sCiAoMSByb3cpCiAKIENSRUFURSBDT0xMQVRJT04gdGVzdGNvbGxfc2hpZnRlZCAocHJvdmlk ZXIgPSBpY3UsIGxvY2FsZSA9ICdAY29sQWx0ZXJuYXRlPXNoaWZ0ZWQnKTsKLU5PVElDRTogIHVz aW5nIHN0YW5kYXJkIGZvcm0gInVuZC11LWthLXNoaWZ0ZWQiIGZvciBsb2NhbGUgIkBjb2xBbHRl cm5hdGU9c2hpZnRlZCIKK05PVElDRTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVuZC11LWthLXNo aWZ0ZWQiIGZvciBJQ1UgbG9jYWxlICJAY29sQWx0ZXJuYXRlPXNoaWZ0ZWQiCiBTRUxFQ1QgJ2Rl LWx1Z2UnIDwgJ2RlYW56YScgQ09MTEFURSAidW5kLXgtaWN1IiwgJ2RlLWx1Z2UnID4gJ2RlYW56 YScgQ09MTEFURSB0ZXN0Y29sbF9zaGlmdGVkOwogID9jb2x1bW4/IHwgP2NvbHVtbj8gCiAtLS0t LS0tLS0tKy0tLS0tLS0tLS0KQEAgLTEyMjcsMTIgKzEyMjcsMTIgQEAgU0VMRUNUICdBLTIxJyA+ ICdBLTEyMycgQ09MTEFURSAidW5kLXgtaWN1IiwgJ0EtMjEnIDwgJ0EtMTIzJyBDT0xMQVRFIHRl c3Rjb2xsX24KICgxIHJvdykKIAogQ1JFQVRFIENPTExBVElPTiB0ZXN0Y29sbF9lcnJvcjEgKHBy b3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnQGNvbE51bWVyaWM9bG93ZXInKTsKLU5PVElDRTogIHVz aW5nIHN0YW5kYXJkIGZvcm0gInVuZC11LWtuLWxvd2VyIiBmb3IgbG9jYWxlICJAY29sTnVtZXJp Yz1sb3dlciIKK05PVElDRTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVuZC11LWtuLWxvd2VyIiBm b3IgSUNVIGxvY2FsZSAiQGNvbE51bWVyaWM9bG93ZXIiCiBFUlJPUjogIGNvdWxkIG5vdCBvcGVu IGNvbGxhdG9yIGZvciBsb2NhbGUgInVuZC11LWtuLWxvd2VyIjogVV9JTExFR0FMX0FSR1VNRU5U X0VSUk9SCiAtLSB0ZXN0IHRoYXQgYXR0cmlidXRlcyBub3QgaGFuZGxlZCBieSBpY3Vfc2V0X2Nv bGxhdGlvbl9hdHRyaWJ1dGVzKCkKIC0tIChoYW5kbGVkIGJ5IHVjb2xfb3BlbigpIGRpcmVjdGx5 KSBhbHNvIHdvcmsKIENSRUFURSBDT0xMQVRJT04gdGVzdGNvbGxfZGVfcGhvbmVib29rIChwcm92 aWRlciA9IGljdSwgbG9jYWxlID0gJ2RlQGNvbGxhdGlvbj1waG9uZWJvb2snKTsKLU5PVElDRTog IHVzaW5nIHN0YW5kYXJkIGZvcm0gImRlLXUtY28tcGhvbmViayIgZm9yIGxvY2FsZSAiZGVAY29s bGF0aW9uPXBob25lYm9vayIKK05PVElDRTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gImRlLXUtY28t cGhvbmViayIgZm9yIElDVSBsb2NhbGUgImRlQGNvbGxhdGlvbj1waG9uZWJvb2siCiBTRUxFQ1Qg J0dvbGRtYW5uJyA8ICdHw7Z0eicgQ09MTEFURSAiZGUteC1pY3UiLCAnR29sZG1hbm4nID4gJ0fD tnR6JyBDT0xMQVRFIHRlc3Rjb2xsX2RlX3Bob25lYm9vazsKICA/Y29sdW1uPyB8ID9jb2x1bW4/ IAogLS0tLS0tLS0tLSstLS0tLS0tLS0tCkBAIC0xMjQxLDcgKzEyNDEsNyBAQCBTRUxFQ1QgJ0dv bGRtYW5uJyA8ICdHw7Z0eicgQ09MTEFURSAiZGUteC1pY3UiLCAnR29sZG1hbm4nID4gJ0fDtnR6 JyBDT0xMQVRFIHRlcwogCiAtLSBydWxlcwogQ1JFQVRFIENPTExBVElPTiB0ZXN0Y29sbF9ydWxl czEgKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnJywgcnVsZXMgPSAnJmEgPCBnJyk7Ci1OT1RJ Q0U6ICB1c2luZyBzdGFuZGFyZCBmb3JtICJ1bmQiIGZvciBsb2NhbGUgIiIKK05PVElDRTogIHVz aW5nIHN0YW5kYXJkIGZvcm0gInVuZCIgZm9yIElDVSBsb2NhbGUgIiIKIENSRUFURSBUQUJMRSB0 ZXN0NyAoYSB0ZXh0KTsKIC0tIGV4YW1wbGUgZnJvbSBodHRwczovL3VuaWNvZGUtb3JnLmdpdGh1 Yi5pby9pY3UvdXNlcmd1aWRlL2NvbGxhdGlvbi9jdXN0b21pemF0aW9uLyNzeW50YXgKIElOU0VS VCBJTlRPIHRlc3Q3IFZBTFVFUyAoJ0FiZXJuYXRoeScpLCAoJ2FwcGxlJyksICgnYmlyZCcpLCAo J0Jvc3RvbicpLCAoJ0dyYWhhbScpLCAoJ2dyZWVuJyk7CkBAIC0xMjY5LDEzICsxMjY5LDEzIEBA IFNFTEVDVCAqIEZST00gdGVzdDcgT1JERVIgQlkgYSBDT0xMQVRFIHRlc3Rjb2xsX3J1bGVzMTsK IAogRFJPUCBUQUJMRSB0ZXN0NzsKIENSRUFURSBDT0xMQVRJT04gdGVzdGNvbGxfcnVsZXN4IChw cm92aWRlciA9IGljdSwgbG9jYWxlID0gJycsIHJ1bGVzID0gJyEhd3JvbmchIScpOwotTk9USUNF OiAgdXNpbmcgc3RhbmRhcmQgZm9ybSAidW5kIiBmb3IgbG9jYWxlICIiCitOT1RJQ0U6ICB1c2lu ZyBzdGFuZGFyZCBmb3JtICJ1bmQiIGZvciBJQ1UgbG9jYWxlICIiCiBFUlJPUjogIGNvdWxkIG5v dCBvcGVuIGNvbGxhdG9yIGZvciBsb2NhbGUgInVuZCIgd2l0aCBydWxlcyAiISF3cm9uZyEhIjog VV9JTlZBTElEX0ZPUk1BVF9FUlJPUgogLS0gbm9uZGV0ZXJtaW5pc3RpYyBjb2xsYXRpb25zCiBD UkVBVEUgQ09MTEFUSU9OIGN0ZXN0X2RldCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICcnLCBk ZXRlcm1pbmlzdGljID0gdHJ1ZSk7Ci1OT1RJQ0U6ICB1c2luZyBzdGFuZGFyZCBmb3JtICJ1bmQi IGZvciBsb2NhbGUgIiIKK05PVElDRTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVuZCIgZm9yIElD VSBsb2NhbGUgIiIKIENSRUFURSBDT0xMQVRJT04gY3Rlc3Rfbm9uZGV0IChwcm92aWRlciA9IGlj dSwgbG9jYWxlID0gJycsIGRldGVybWluaXN0aWMgPSBmYWxzZSk7Ci1OT1RJQ0U6ICB1c2luZyBz dGFuZGFyZCBmb3JtICJ1bmQiIGZvciBsb2NhbGUgIiIKK05PVElDRTogIHVzaW5nIHN0YW5kYXJk IGZvcm0gInVuZCIgZm9yIElDVSBsb2NhbGUgIiIKIENSRUFURSBUQUJMRSB0ZXN0NiAoYSBpbnQs IGIgdGV4dCk7CiAtLSBzYW1lIHN0cmluZyBpbiBkaWZmZXJlbnQgbm9ybWFsIGZvcm1zCiBJTlNF UlQgSU5UTyB0ZXN0NiBWQUxVRVMgKDEsIFUmJ1wwMEU0YmMnKTsKQEAgLTEzMjUsOSArMTMyNSw5 IEBAIFNFTEVDVCAqIEZST00gdGVzdDZhIFdIRVJFIGIgPSBBUlJBWVsnw6RiYyddIENPTExBVEUg Y3Rlc3Rfbm9uZGV0OwogKDIgcm93cykKIAogQ1JFQVRFIENPTExBVElPTiBjYXNlX3NlbnNpdGl2 ZSAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICcnKTsKLU5PVElDRTogIHVzaW5nIHN0YW5kYXJk IGZvcm0gInVuZCIgZm9yIGxvY2FsZSAiIgorTk9USUNFOiAgdXNpbmcgc3RhbmRhcmQgZm9ybSAi dW5kIiBmb3IgSUNVIGxvY2FsZSAiIgogQ1JFQVRFIENPTExBVElPTiBjYXNlX2luc2Vuc2l0aXZl IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0Bjb2xTdHJlbmd0aD1zZWNvbmRhcnknLCBkZXRl cm1pbmlzdGljID0gZmFsc2UpOwotTk9USUNFOiAgdXNpbmcgc3RhbmRhcmQgZm9ybSAidW5kLXUt a3MtbGV2ZWwyIiBmb3IgbG9jYWxlICJAY29sU3RyZW5ndGg9c2Vjb25kYXJ5IgorTk9USUNFOiAg dXNpbmcgc3RhbmRhcmQgZm9ybSAidW5kLXUta3MtbGV2ZWwyIiBmb3IgSUNVIGxvY2FsZSAiQGNv bFN0cmVuZ3RoPXNlY29uZGFyeSIKIFNFTEVDVCAnYWJjJyA8PSAnQUJDJyBDT0xMQVRFIGNhc2Vf c2Vuc2l0aXZlLCAnYWJjJyA+PSAnQUJDJyBDT0xMQVRFIGNhc2Vfc2Vuc2l0aXZlOwogID9jb2x1 bW4/IHwgP2NvbHVtbj8gCiAtLS0tLS0tLS0tKy0tLS0tLS0tLS0KLS0gCjIuMzQuMQoK --=-8swFiJNE32wvPFTxulLJ Content-Disposition: attachment; filename*0=v9-0004-Use-database-default-collation-s-provider-as-defa.pat; filename*1=ch Content-Type: text/x-patch; name="v9-0004-Use-database-default-collation-s-provider-as-defa.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA2YTFiOWNhMmEyNDdmM2U1MTExOTg4MjkyZTE0OGJhODZkODAyMDA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBX ZWQsIDI0IE1heSAyMDIzIDA5OjUzOjAyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2OSA0LzRdIFVz ZSBkYXRhYmFzZSBkZWZhdWx0IGNvbGxhdGlvbidzIHByb3ZpZGVyIGFzIGRlZmF1bHQKIGZvciBD UkVBVEUgQ09MTEFUSU9OLgoKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2xsYXRpb24u c2dtbCAgICAgICAgICAgfCAgOSArKysrKystLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxh dGlvbmNtZHMuYyAgICAgICAgICAgICB8ICA3ICsrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvY29sbGF0ZS5saW51eC51dGY4Lm91dCB8IDEwICsrKysrLS0tLS0KIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2NvbGxhdGUubGludXgudXRmOC5zcWwgICAgICB8IDEwICsrKysrLS0tLS0KIDQg ZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sbGF0aW9uLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9jb2xsYXRpb24uc2dtbAppbmRleCBmNjM1M2RhNWMxLi5hNjkyN2E3ZDFk IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2xsYXRpb24uc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2xsYXRpb24uc2dtbApAQCAtMTIxLDkgKzEyMSwx MiBAQCBDUkVBVEUgQ09MTEFUSU9OIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZT5uYW1l PC9yZXBsYWNlYWJsZT4gRlJPTSA8cmVwbGFjZQogICAgICAgPHBhcmE+CiAgICAgICAgU3BlY2lm aWVzIHRoZSBwcm92aWRlciB0byB1c2UgZm9yIGxvY2FsZSBzZXJ2aWNlcyBhc3NvY2lhdGVkIHdp dGggdGhpcwogICAgICAgIGNvbGxhdGlvbi4gIFBvc3NpYmxlIHZhbHVlcyBhcmUKLSAgICAgICA8 bGl0ZXJhbD5pY3U8L2xpdGVyYWw+PGluZGV4dGVybT48cHJpbWFyeT5JQ1U8L3ByaW1hcnk+PC9p bmRleHRlcm0+Ci0gICAgICAgKGlmIHRoZSBzZXJ2ZXIgd2FzIGJ1aWx0IHdpdGggSUNVIHN1cHBv cnQpIG9yIDxsaXRlcmFsPmxpYmM8L2xpdGVyYWw+LgotICAgICAgIDxsaXRlcmFsPmxpYmM8L2xp dGVyYWw+IGlzIHRoZSBkZWZhdWx0LiAgU2VlIDx4cmVmCisgICAgICAgPGxpdGVyYWw+aWN1PC9s aXRlcmFsPjxpbmRleHRlcm0+PHByaW1hcnk+SUNVPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPiAoaWYK KyAgICAgICB0aGUgc2VydmVyIHdhcyBidWlsdCB3aXRoIElDVSBzdXBwb3J0KSBvciA8bGl0ZXJh bD5saWJjPC9saXRlcmFsPi4gIElmCisgICAgICAgPHJlcGxhY2VhYmxlPmxjX2NvbGxsYXRlPC9y ZXBsYWNlYWJsZT4gb3IKKyAgICAgICA8cmVwbGFjZWFibGU+bGNfY3R5cGU8L3JlcGxhY2VhYmxl PiBpcyBzcGVjaWZpZWQsIHRoZSBkZWZhdWx0IGlzCisgICAgICAgPGxpdGVyYWw+bGliYzwvbGl0 ZXJhbD47IG90aGVyd2lzZSwgdGhlIGRlZmF1bHQgaXMgdGhlIHNhbWUgYXMgdGhlCisgICAgICAg ZGF0YWJhc2UgZGVmYXVsdCBjb2xsYXRpb24ncyBwcm92aWRlci4gIFNlZSA8eHJlZgogICAgICAg IGxpbmtlbmQ9ImxvY2FsZS1wcm92aWRlcnMiLz4gZm9yIGRldGFpbHMuCiAgICAgICA8L3BhcmE+ CiAgICAgIDwvbGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xs YXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRpb25jbWRzLmMKaW5kZXgg YzE2NTkyMjEyMS4uOGZjMGZmMTkwMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv Y29sbGF0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxhdGlvbmNtZHMu YwpAQCAtMjI2LDcgKzIyNiwxMiBAQCBEZWZpbmVDb2xsYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRl LCBMaXN0ICpuYW1lcywgTGlzdCAqcGFyYW1ldGVycywgYm9vbCBpZl9ub3RfZQogCQkJCQkJCQlj b2xscHJvdmlkZXJzdHIpKSk7CiAJCX0KIAkJZWxzZQotCQkJY29sbHByb3ZpZGVyID0gQ09MTFBS T1ZJREVSX0xJQkM7CisJCXsKKwkJCWlmIChsY2NvbGxhdGVFbCB8fCBsY2N0eXBlRWwpCisJCQkJ Y29sbHByb3ZpZGVyID0gQ09MTFBST1ZJREVSX0xJQkM7CisJCQllbHNlCisJCQkJY29sbHByb3Zp ZGVyID0gZGVmYXVsdF9sb2NhbGUucHJvdmlkZXI7CisJCX0KIAogCQlpZiAobG9jYWxlRWwpCiAJ CXsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5saW51eC51 dGY4Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5saW51eC51dGY4Lm91 dAppbmRleCA2ZDM0NjY3Y2ViLi42YjBjYzk1YWU4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2NvbGxhdGUubGludXgudXRmOC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9jb2xsYXRlLmxpbnV4LnV0Zjgub3V0CkBAIC0xMDI2LDcgKzEwMjYsNyBAQCBD UkVBVEUgU0NIRU1BIHRlc3Rfc2NoZW1hOwogLS0gV2UgbmVlZCB0byBkbyB0aGlzIHRoaXMgd2F5 IHRvIGNvcGUgd2l0aCB2YXJ5aW5nIG5hbWVzIGZvciBlbmNvZGluZ3M6CiBkbyAkJAogQkVHSU4K LSAgRVhFQ1VURSAnQ1JFQVRFIENPTExBVElPTiB0ZXN0MCAobG9jYWxlID0gJyB8fAorICBFWEVD VVRFICdDUkVBVEUgQ09MTEFUSU9OIHRlc3QwIChwcm92aWRlciA9IGxpYmMsIGxvY2FsZSA9ICcg fHwKICAgICAgICAgICBxdW90ZV9saXRlcmFsKGN1cnJlbnRfc2V0dGluZygnbGNfY29sbGF0ZScp KSB8fCAnKTsnOwogRU5ECiAkJDsKQEAgLTEwMzQsNyArMTAzNCw3IEBAIENSRUFURSBDT0xMQVRJ T04gdGVzdDAgRlJPTSAiQyI7IC0tIGZhaWwsIGR1cGxpY2F0ZSBuYW1lCiBFUlJPUjogIGNvbGxh dGlvbiAidGVzdDAiIGFscmVhZHkgZXhpc3RzCiBDUkVBVEUgQ09MTEFUSU9OIElGIE5PVCBFWElT VFMgdGVzdDAgRlJPTSAiQyI7IC0tIG9rLCBza2lwcGVkCiBOT1RJQ0U6ICBjb2xsYXRpb24gInRl c3QwIiBhbHJlYWR5IGV4aXN0cywgc2tpcHBpbmcKLUNSRUFURSBDT0xMQVRJT04gSUYgTk9UIEVY SVNUUyB0ZXN0MCAobG9jYWxlID0gJ2ZvbycpOyAtLSBvaywgc2tpcHBlZAorQ1JFQVRFIENPTExB VElPTiBJRiBOT1QgRVhJU1RTIHRlc3QwIChwcm92aWRlciA9IGxpYmMsIGxvY2FsZSA9ICdmb28n KTsgLS0gb2ssIHNraXBwZWQKIE5PVElDRTogIGNvbGxhdGlvbiAidGVzdDAiIGZvciBlbmNvZGlu ZyAiVVRGOCIgYWxyZWFkeSBleGlzdHMsIHNraXBwaW5nCiBkbyAkJAogQkVHSU4KQEAgLTEwNDYs NyArMTA0Niw3IEBAIEVORAogJCQ7CiBDUkVBVEUgQ09MTEFUSU9OIHRlc3QzIChsY19jb2xsYXRl ID0gJ2VuX1VTLnV0ZjgnKTsgLS0gZmFpbCwgbmVlZCBsY19jdHlwZQogRVJST1I6ICBwYXJhbWV0 ZXIgImxjX2N0eXBlIiBtdXN0IGJlIHNwZWNpZmllZAotQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAo bG9jYWxlID0gJ25vbnNlbnNlJyk7IC0tIGZhaWwKK0NSRUFURSBDT0xMQVRJT04gdGVzdHggKHBy b3ZpZGVyID0gbGliYywgbG9jYWxlID0gJ25vbnNlbnNlJyk7IC0tIGZhaWwKIEVSUk9SOiAgY291 bGQgbm90IGNyZWF0ZSBsb2NhbGUgIm5vbnNlbnNlIjogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9y eQogREVUQUlMOiAgVGhlIG9wZXJhdGluZyBzeXN0ZW0gY291bGQgbm90IGZpbmQgYW55IGxvY2Fs ZSBkYXRhIGZvciB0aGUgbG9jYWxlIG5hbWUgIm5vbnNlbnNlIi4KIENSRUFURSBDT0xMQVRJT04g dGVzdDQgRlJPTSBub25zZW5zZTsKQEAgLTExNjYsOCArMTE2Niw4IEBAIFNFTEVDVCAqIEZST00g Y29sbGF0ZV90ZXN0MiBPUkRFUiBCWSBiIENPTExBVEUgVUNTX0JBU0lDOwogCiAtLSBub25kZXRl cm1pbmlzdGljIGNvbGxhdGlvbnMKIC0tIChub3Qgc3VwcG9ydGVkIHdpdGggbGliYyBwcm92aWRl cikKLUNSRUFURSBDT0xMQVRJT04gY3Rlc3RfZGV0IChsb2NhbGUgPSAnZW5fVVMudXRmOCcsIGRl dGVybWluaXN0aWMgPSB0cnVlKTsKLUNSRUFURSBDT0xMQVRJT04gY3Rlc3Rfbm9uZGV0IChsb2Nh bGUgPSAnZW5fVVMudXRmOCcsIGRldGVybWluaXN0aWMgPSBmYWxzZSk7CitDUkVBVEUgQ09MTEFU SU9OIGN0ZXN0X2RldCAocHJvdmlkZXIgPSBsaWJjLCBsb2NhbGUgPSAnZW5fVVMudXRmOCcsIGRl dGVybWluaXN0aWMgPSB0cnVlKTsKK0NSRUFURSBDT0xMQVRJT04gY3Rlc3Rfbm9uZGV0IChwcm92 aWRlciA9IGxpYmMsIGxvY2FsZSA9ICdlbl9VUy51dGY4JywgZGV0ZXJtaW5pc3RpYyA9IGZhbHNl KTsKIEVSUk9SOiAgbm9uZGV0ZXJtaW5pc3RpYyBjb2xsYXRpb25zIG5vdCBzdXBwb3J0ZWQgd2l0 aCB0aGlzIHByb3ZpZGVyCiAtLSBjbGVhbnVwCiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyBUTyB3 YXJuaW5nOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5saW51eC51 dGY4LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUubGludXgudXRmOC5zcWwKaW5k ZXggMmI3ODc1MDdjNS4uY2MyNWY5NWFjMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvY29sbGF0ZS5saW51eC51dGY4LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2xs YXRlLmxpbnV4LnV0Zjguc3FsCkBAIC0zNTgsMTMgKzM1OCwxMyBAQCBDUkVBVEUgU0NIRU1BIHRl c3Rfc2NoZW1hOwogLS0gV2UgbmVlZCB0byBkbyB0aGlzIHRoaXMgd2F5IHRvIGNvcGUgd2l0aCB2 YXJ5aW5nIG5hbWVzIGZvciBlbmNvZGluZ3M6CiBkbyAkJAogQkVHSU4KLSAgRVhFQ1VURSAnQ1JF QVRFIENPTExBVElPTiB0ZXN0MCAobG9jYWxlID0gJyB8fAorICBFWEVDVVRFICdDUkVBVEUgQ09M TEFUSU9OIHRlc3QwIChwcm92aWRlciA9IGxpYmMsIGxvY2FsZSA9ICcgfHwKICAgICAgICAgICBx dW90ZV9saXRlcmFsKGN1cnJlbnRfc2V0dGluZygnbGNfY29sbGF0ZScpKSB8fCAnKTsnOwogRU5E CiAkJDsKIENSRUFURSBDT0xMQVRJT04gdGVzdDAgRlJPTSAiQyI7IC0tIGZhaWwsIGR1cGxpY2F0 ZSBuYW1lCiBDUkVBVEUgQ09MTEFUSU9OIElGIE5PVCBFWElTVFMgdGVzdDAgRlJPTSAiQyI7IC0t IG9rLCBza2lwcGVkCi1DUkVBVEUgQ09MTEFUSU9OIElGIE5PVCBFWElTVFMgdGVzdDAgKGxvY2Fs ZSA9ICdmb28nKTsgLS0gb2ssIHNraXBwZWQKK0NSRUFURSBDT0xMQVRJT04gSUYgTk9UIEVYSVNU UyB0ZXN0MCAocHJvdmlkZXIgPSBsaWJjLCBsb2NhbGUgPSAnZm9vJyk7IC0tIG9rLCBza2lwcGVk CiBkbyAkJAogQkVHSU4KICAgRVhFQ1VURSAnQ1JFQVRFIENPTExBVElPTiB0ZXN0MSAobGNfY29s bGF0ZSA9ICcgfHwKQEAgLTM3NCw3ICszNzQsNyBAQCBCRUdJTgogRU5ECiAkJDsKIENSRUFURSBD T0xMQVRJT04gdGVzdDMgKGxjX2NvbGxhdGUgPSAnZW5fVVMudXRmOCcpOyAtLSBmYWlsLCBuZWVk IGxjX2N0eXBlCi1DUkVBVEUgQ09MTEFUSU9OIHRlc3R4IChsb2NhbGUgPSAnbm9uc2Vuc2UnKTsg LS0gZmFpbAorQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBsaWJjLCBsb2NhbGUg PSAnbm9uc2Vuc2UnKTsgLS0gZmFpbAogCiBDUkVBVEUgQ09MTEFUSU9OIHRlc3Q0IEZST00gbm9u c2Vuc2U7CiBDUkVBVEUgQ09MTEFUSU9OIHRlc3Q1IEZST00gdGVzdDA7CkBAIC00NTUsOCArNDU1 LDggQEAgU0VMRUNUICogRlJPTSBjb2xsYXRlX3Rlc3QyIE9SREVSIEJZIGIgQ09MTEFURSBVQ1Nf QkFTSUM7CiAtLSBub25kZXRlcm1pbmlzdGljIGNvbGxhdGlvbnMKIC0tIChub3Qgc3VwcG9ydGVk IHdpdGggbGliYyBwcm92aWRlcikKIAotQ1JFQVRFIENPTExBVElPTiBjdGVzdF9kZXQgKGxvY2Fs ZSA9ICdlbl9VUy51dGY4JywgZGV0ZXJtaW5pc3RpYyA9IHRydWUpOwotQ1JFQVRFIENPTExBVElP TiBjdGVzdF9ub25kZXQgKGxvY2FsZSA9ICdlbl9VUy51dGY4JywgZGV0ZXJtaW5pc3RpYyA9IGZh bHNlKTsKK0NSRUFURSBDT0xMQVRJT04gY3Rlc3RfZGV0IChwcm92aWRlciA9IGxpYmMsIGxvY2Fs ZSA9ICdlbl9VUy51dGY4JywgZGV0ZXJtaW5pc3RpYyA9IHRydWUpOworQ1JFQVRFIENPTExBVElP TiBjdGVzdF9ub25kZXQgKHByb3ZpZGVyID0gbGliYywgbG9jYWxlID0gJ2VuX1VTLnV0ZjgnLCBk ZXRlcm1pbmlzdGljID0gZmFsc2UpOwogCiAKIC0tIGNsZWFudXAKLS0gCjIuMzQuMQoK --=-8swFiJNE32wvPFTxulLJ--