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 1q6EQ9-0002VY-59 for pgsql-hackers@arkaria.postgresql.org; Mon, 05 Jun 2023 17:55:09 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1q6EQ7-0006iA-SR for pgsql-hackers@arkaria.postgresql.org; Mon, 05 Jun 2023 17:55:07 +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 1q6EQ7-0006fb-Ar for pgsql-hackers@lists.postgresql.org; Mon, 05 Jun 2023 17:55:07 +0000 Received: from mail-pf1-x42a.google.com ([2607:f8b0:4864:20::42a]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1q6EQ2-000Q9H-Jm for pgsql-hackers@lists.postgresql.org; Mon, 05 Jun 2023 17:55:06 +0000 Received: by mail-pf1-x42a.google.com with SMTP id d2e1a72fcca58-650bacd6250so2795196b3a.2 for ; Mon, 05 Jun 2023 10:55:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20221208.gappssmtp.com; s=20221208; t=1685987700; x=1688579700; 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=TA/t7i1SBiwRjkdkwqUKovqXaTxoXpmHPhfY3rehGTY=; b=kofCswt7sd88BQ7YVqDBhVEWalJjtolnQtHZHt+5UV4XfQR5KLCkgM36mL8W6h+Wak 1k9stFvq0y94IoBtaiftLuq6luWSai+musATXyDC9Xj7CVUJY0h3HneNDfHZablLKXN3 xj+tEd51UWz08+AfVzSJ5rliITVLOR6lIAU6AgmrvNNTSPn1pufmn1cOz6R4I8Zjkwlt oLZYH+Dmfed7mKZIR1vbXf8JOMFbs4zjOYi+0Gaci2lbVAoYO4nt+esv3npSacc9gWUL 7BsRzjjxoLoQMJFYEdgfFzCKLkRjqWmY8GnI8wzeT2UgjAkSDmH5XsD3Ad7toIoEqeeg 6mgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685987700; x=1688579700; 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=TA/t7i1SBiwRjkdkwqUKovqXaTxoXpmHPhfY3rehGTY=; b=P68dMs+rWYyM1f/6cR+NeFuY/wMm6NdyvCIW9Efstuc1ANFJMbUi5jc6QFZ6bo0wjp lo+VSq46gGttEsIhu5NQf4wTYIHjywuWNzGFzHMFjcfOBqKdDQwCa+Zum8139RCGSKHx GZ8wWeE1+Cf0Qwyt7uKqkehRD2pfyUYucsjTZY98I90lFtJfWBHkHv8OAGTTWYzK7vrc JbJ6LUPOzNKczaP4soK+fTBhBABDZDpTST9W53k5h1Q9lwFUOsGgAJC4PCU5EjQfGd2A Y4+GtjgsW48Yad8lZcYmeBgFet60Hm9gPM+rR6DzwI1h98aZSd1pW3Qj5Z4TKmbEkOw4 8nXQ== X-Gm-Message-State: AC+VfDzlXvHjXVWdG/VV19ppvgOHAumF6G8m2lO0uF4F53hM1t5yalHF CjJLPhYUHO3HY/c4HNtqWlS6BA== X-Google-Smtp-Source: ACHHUZ4q+I8Ppr8Dsmy/vPTMFeeuHy5GqqfHJ4AEe320o7cZlRq6Qs1ChI2YhTc2NrBOlCmuDgTJvg== X-Received: by 2002:a05:6a20:8e19:b0:110:bc83:87f8 with SMTP id y25-20020a056a208e1900b00110bc8387f8mr3494625pzj.23.1685987700262; Mon, 05 Jun 2023 10:55:00 -0700 (PDT) Received: from jeff-laptop.lan (c-73-170-46-202.hsd1.ca.comcast.net. [73.170.46.202]) by smtp.gmail.com with ESMTPSA id c16-20020aa78810000000b00646ebc77b1fsm5508794pfo.75.2023.06.05.10.54.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Jun 2023 10:54:59 -0700 (PDT) Message-ID: <5111ffef640ec7ed5b75d9791dd18d821e96c31e.camel@j-davis.com> Subject: Re: Order changes in PG16 since ICU introduction From: Jeff Davis To: Peter Eisentraut , Daniel Verite Cc: Andrew Gierth , Tom Lane , pgsql-hackers@lists.postgresql.org Date: Mon, 05 Jun 2023 10:54:58 -0700 In-Reply-To: References: <543e4ce6-8205-4aea-b54b-12b9ef747bf6@manitou-mail.org> <654a49f7ff7461bcf47be4181430678d45f93858.camel@j-davis.com> <37520ec1ae9591f83132f82dbd625f3fc2d69c16.camel@j-davis.com> Content-Type: multipart/mixed; boundary="=-QP1I9Izqvku0VJ6aUody" 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 --=-QP1I9Izqvku0VJ6aUody Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable New patch series attached. I plan to commit 0001 and 0002 soon, unless there are objections. 0001 causes the "C" and "POSIX" locales to be treated with memcmp/pg_ascii semantics in ICU, just like in libc. We also considered a new "none" provider, but it's more invasive, and we can always reconsider that in the v17 cycle. 0002 introduces an upgrade check for users who have explicitly requested provider=3Dicu and iculocale=3DC on older versions, and rejects upgrading from v15 in that case to avoid index corruption. Having such a collation is almost certainly a mistake by the user, because the collator would not give the expected memcmp semantics. --=20 Jeff Davis PostgreSQL Contributor Team - AWS --=-QP1I9Izqvku0VJ6aUody Content-Disposition: attachment; filename*0=v8-0001-ICU-support-locale-C-with-the-same-behavior-as-li.pat; filename*1=ch Content-Type: text/x-patch; name="v8-0001-ICU-support-locale-C-with-the-same-behavior-as-li.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBiNTQyYzk4NDAzYjM4MmFkNjM0ZWE0OTE1MDU3ZWUxNzA0MzRmY2VhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBN b24sIDI0IEFwciAyMDIzIDE1OjQ2OjE3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2OCAxLzRdIElD VTogc3VwcG9ydCBsb2NhbGUgIkMiIHdpdGggdGhlIHNhbWUgYmVoYXZpb3IgYXMKIGxpYmMuCgpU aGUgIkMiIGxvY2FsZSBkb2Vzbid0IGFjdHVhbGx5IHVzZSBhIHByb3ZpZGVyIGF0IGFsbCwgaXQn cyBhIHNwZWNpYWwKbG9jYWxlIHRoYXQgdXNlcyBtZW1jbXAoKSBhbmQgYnVpbHQtaW4gY2hhcmFj dGVyIGNsYXNzaWZpY2F0aW9uLiBNYWtlCml0IGJlaGF2ZSB0aGUgc2FtZSBpbiBJQ1UgYXMgbGli YyAoZXZlbiB0aG91Z2ggaXQgZG9lc24ndCBhY3R1YWxseQptYWtlIHVzZSBvZiBlaXRoZXIgcHJv dmlkZXIpLgoKRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS84N3Y4aG9leGR2LmZzZkBu ZXdzLXNwdXIucmlkZGxlcy5vcmcudWsKLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRp b25jbWRzLmMgICAgICAgICAgfCA0MyArKysrKystLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9k YmNvbW1hbmRzLmMgICAgICAgICAgICAgfCA0MiArKysrKystLS0tCiBzcmMvYmFja2VuZC91dGls cy9hZHQvcGdfbG9jYWxlLmMgICAgICAgICAgICAgfCA4MyArKysrKysrKysrKysrKy0tLS0tCiAu Li4vcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51dGY4Lm91dCAgICAgfCAgNiArKwogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5pY3UudXRmOC5zcWwgICAgIHwgIDQgKwogNSBmaWxl cyBjaGFuZ2VkLCAxMjcgaW5zZXJ0aW9ucygrKSwgNTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sbGF0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvY29sbGF0aW9uY21kcy5jCmluZGV4IDI5NjlhMmJiMjEuLmRkNmNkMjY4MmYgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxhdGlvbmNtZHMuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9jb2xsYXRpb25jbWRzLmMKQEAgLTI2NCwyNiArMjY0LDM5IEBAIERlZmlu ZUNvbGxhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKm5hbWVzLCBMaXN0ICpwYXJhbWV0 ZXJzLCBib29sIGlmX25vdF9lCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNU X0RFRklOSVRJT04pLAogCQkJCQkJIGVycm1zZygicGFyYW1ldGVyIFwibG9jYWxlXCIgbXVzdCBi ZSBzcGVjaWZpZWQiKSkpOwogCi0JCQkvKgotCQkJICogRHVyaW5nIGJpbmFyeSB1cGdyYWRlLCBw cmVzZXJ2ZSB0aGUgbG9jYWxlIHN0cmluZy4gT3RoZXJ3aXNlLAotCQkJICogY2Fub25pY2FsaXpl IHRvIGEgbGFuZ3VhZ2UgdGFnLgotCQkJICovCi0JCQlpZiAoIUlzQmluYXJ5VXBncmFkZSkKKwkJ CWlmIChzdHJjbXAoY29sbGljdWxvY2FsZSwgIkMiKSA9PSAwIHx8CisJCQkJc3RyY21wKGNvbGxp Y3Vsb2NhbGUsICJQT1NJWCIpID09IDApCiAJCQl7Ci0JCQkJY2hhcgkgICAqbGFuZ3RhZyA9IGlj dV9sYW5ndWFnZV90YWcoY29sbGljdWxvY2FsZSwKLQkJCQkJCQkJCQkJCQkgICBpY3VfdmFsaWRh dGlvbl9sZXZlbCk7Ci0KLQkJCQlpZiAobGFuZ3RhZyAmJiBzdHJjbXAoY29sbGljdWxvY2FsZSwg bGFuZ3RhZykgIT0gMCkKKwkJCQlpZiAoIWNvbGxpc2RldGVybWluaXN0aWMpCisJCQkJCWVyZXBv cnQoRVJST1IsCisJCQkJCQkJKGVycm1zZygibm9uZGV0ZXJtaW5pc3RpYyBjb2xsYXRpb25zIG5v dCBzdXBwb3J0ZWQgZm9yIEMgb3IgUE9TSVggbG9jYWxlIikpKTsKKwkJCQlpZiAoY29sbGljdXJ1 bGVzICE9IE5VTEwpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycm1zZygiUlVMRVMg bm90IHN1cHBvcnRlZCBmb3IgQyBvciBQT1NJWCBsb2NhbGUiKSkpOworCQkJfQorCQkJZWxzZQor CQkJeworCQkJCS8qCisJCQkJICogRHVyaW5nIGJpbmFyeSB1cGdyYWRlLCBwcmVzZXJ2ZSB0aGUg bG9jYWxlCisJCQkJICogc3RyaW5nLiBPdGhlcndpc2UsIGNhbm9uaWNhbGl6ZSB0byBhIGxhbmd1 YWdlIHRhZy4KKwkJCQkgKi8KKwkJCQlpZiAoIUlzQmluYXJ5VXBncmFkZSkKIAkJCQl7Ci0JCQkJ CWVyZXBvcnQoTk9USUNFLAotCQkJCQkJCShlcnJtc2coInVzaW5nIHN0YW5kYXJkIGZvcm0gXCIl c1wiIGZvciBsb2NhbGUgXCIlc1wiIiwKLQkJCQkJCQkJCWxhbmd0YWcsIGNvbGxpY3Vsb2NhbGUp KSk7CisJCQkJCWNoYXIJICAgKmxhbmd0YWcgPSBpY3VfbGFuZ3VhZ2VfdGFnKGNvbGxpY3Vsb2Nh bGUsCisJCQkJCQkJCQkJCQkJCSAgIGljdV92YWxpZGF0aW9uX2xldmVsKTsKKworCQkJCQlpZiAo bGFuZ3RhZyAmJiBzdHJjbXAoY29sbGljdWxvY2FsZSwgbGFuZ3RhZykgIT0gMCkKKwkJCQkJewor CQkJCQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJCQkJCShlcnJtc2coInVzaW5nIHN0YW5kYXJkIGZv cm0gXCIlc1wiIGZvciBsb2NhbGUgXCIlc1wiIiwKKwkJCQkJCQkJCQlsYW5ndGFnLCBjb2xsaWN1 bG9jYWxlKSkpOwogCi0JCQkJCWNvbGxpY3Vsb2NhbGUgPSBsYW5ndGFnOworCQkJCQkJY29sbGlj dWxvY2FsZSA9IGxhbmd0YWc7CisJCQkJCX0KIAkJCQl9Ci0JCQl9CiAKLQkJCWljdV92YWxpZGF0 ZV9sb2NhbGUoY29sbGljdWxvY2FsZSk7CisJCQkJaWN1X3ZhbGlkYXRlX2xvY2FsZShjb2xsaWN1 bG9jYWxlKTsKKwkJCX0KIAkJfQogCiAJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9kYmNvbW1hbmRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kYmNvbW1hbmRzLmMKaW5k ZXggOTlkNDA4MGVhOS4uYmZjZThkYzM0OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvZGJjb21tYW5kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2RiY29tbWFuZHMuYwpA QCAtMTA1OCwyNyArMTA1OCwzNyBAQCBjcmVhdGVkYihQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0 IENyZWF0ZWRiU3RtdCAqc3RtdCkKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFN RVRFUl9WQUxVRSksCiAJCQkJCSBlcnJtc2coIklDVSBsb2NhbGUgbXVzdCBiZSBzcGVjaWZpZWQi KSkpOwogCi0JCS8qCi0JCSAqIER1cmluZyBiaW5hcnkgdXBncmFkZSwgb3Igd2hlbiB0aGUgbG9j YWxlIGNhbWUgZnJvbSB0aGUgdGVtcGxhdGUKLQkJICogZGF0YWJhc2UsIHByZXNlcnZlIGxvY2Fs ZSBzdHJpbmcuIE90aGVyd2lzZSwgY2Fub25pY2FsaXplIHRvIGEKLQkJICogbGFuZ3VhZ2UgdGFn LgotCQkgKi8KLQkJaWYgKCFJc0JpbmFyeVVwZ3JhZGUgJiYgZGJpY3Vsb2NhbGUgIT0gc3JjX2lj dWxvY2FsZSkKKwkJaWYgKHN0cmNtcChkYmljdWxvY2FsZSwgIkMiKSA9PSAwIHx8CisJCQlzdHJj bXAoZGJpY3Vsb2NhbGUsICJQT1NJWCIpID09IDApCiAJCXsKLQkJCWNoYXIJICAgKmxhbmd0YWcg PSBpY3VfbGFuZ3VhZ2VfdGFnKGRiaWN1bG9jYWxlLAotCQkJCQkJCQkJCQkJICAgaWN1X3ZhbGlk YXRpb25fbGV2ZWwpOwotCi0JCQlpZiAobGFuZ3RhZyAmJiBzdHJjbXAoZGJpY3Vsb2NhbGUsIGxh bmd0YWcpICE9IDApCisJCQlpZiAoZGJpY3VydWxlcyAhPSBOVUxMKQorCQkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCQkoZXJybXNnKCJJQ1VfUlVMRVMgbm90IHN1cHBvcnRlZCBmb3IgQyBvciBQT1NJ WCBsb2NhbGUiKSkpOworCQl9CisJCWVsc2UKKwkJeworCQkJLyoKKwkJCSAqIER1cmluZyBiaW5h cnkgdXBncmFkZSwgb3Igd2hlbiB0aGUgbG9jYWxlIGNhbWUgZnJvbSB0aGUKKwkJCSAqIHRlbXBs YXRlIGRhdGFiYXNlLCBwcmVzZXJ2ZSBsb2NhbGUgc3RyaW5nLiBPdGhlcndpc2UsCisJCQkgKiBj YW5vbmljYWxpemUgdG8gYSBsYW5ndWFnZSB0YWcuCisJCQkgKi8KKwkJCWlmICghSXNCaW5hcnlV cGdyYWRlICYmIGRiaWN1bG9jYWxlICE9IHNyY19pY3Vsb2NhbGUpCiAJCQl7Ci0JCQkJZXJlcG9y dChOT1RJQ0UsCi0JCQkJCQkoZXJybXNnKCJ1c2luZyBzdGFuZGFyZCBmb3JtIFwiJXNcIiBmb3Ig bG9jYWxlIFwiJXNcIiIsCi0JCQkJCQkJCWxhbmd0YWcsIGRiaWN1bG9jYWxlKSkpOworCQkJCWNo YXIJICAgKmxhbmd0YWcgPSBpY3VfbGFuZ3VhZ2VfdGFnKGRiaWN1bG9jYWxlLAorCQkJCQkJCQkJ CQkJCSAgIGljdV92YWxpZGF0aW9uX2xldmVsKTsKKworCQkJCWlmIChsYW5ndGFnICYmIHN0cmNt cChkYmljdWxvY2FsZSwgbGFuZ3RhZykgIT0gMCkKKwkJCQl7CisJCQkJCWVyZXBvcnQoTk9USUNF LAorCQkJCQkJCShlcnJtc2coInVzaW5nIHN0YW5kYXJkIGZvcm0gXCIlc1wiIGZvciBsb2NhbGUg XCIlc1wiIiwKKwkJCQkJCQkJCWxhbmd0YWcsIGRiaWN1bG9jYWxlKSkpOwogCi0JCQkJZGJpY3Vs b2NhbGUgPSBsYW5ndGFnOworCQkJCQlkYmljdWxvY2FsZSA9IGxhbmd0YWc7CisJCQkJfQogCQkJ fQotCQl9CiAKLQkJaWN1X3ZhbGlkYXRlX2xvY2FsZShkYmljdWxvY2FsZSk7CisJCQlpY3VfdmFs aWRhdGVfbG9jYWxlKGRiaWN1bG9jYWxlKTsKKwkJfQogCX0KIAllbHNlCiAJewpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2xvY2FsZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3BnX2xvY2FsZS5jCmluZGV4IDMxZTNiMTZhZTAuLjk4NmRjYmQyYTcgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19sb2NhbGUuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvcGdfbG9jYWxlLmMKQEAgLTEyNDYsOCArMTI0NiwxNSBAQCBsb29rdXBfY29sbGF0aW9u X2NhY2hlKE9pZCBjb2xsYXRpb24sIGJvb2wgc2V0X2ZsYWdzKQogCQl9CiAJCWVsc2UKIAkJewot CQkJY2FjaGVfZW50cnktPmNvbGxhdGVfaXNfYyA9IGZhbHNlOwotCQkJY2FjaGVfZW50cnktPmN0 eXBlX2lzX2MgPSBmYWxzZTsKKwkJCURhdHVtCQlkYXR1bTsKKwkJCWNvbnN0IGNoYXIgKmNvbGxp Y3Vsb2NhbGU7CisKKwkJCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChDT0xMT0lELCB0 cCwgQW51bV9wZ19jb2xsYXRpb25fY29sbGljdWxvY2FsZSk7CisJCQljb2xsaWN1bG9jYWxlID0g VGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CisKKwkJCWNhY2hlX2VudHJ5LT5jb2xsYXRlX2lz X2MgPSAoKHN0cmNtcChjb2xsaWN1bG9jYWxlLCAiQyIpID09IDApIHx8CisJCQkJCQkJCQkJIChz dHJjbXAoY29sbGljdWxvY2FsZSwgIlBPU0lYIikgPT0gMCkpOworCQkJY2FjaGVfZW50cnktPmN0 eXBlX2lzX2MgPSBjYWNoZV9lbnRyeS0+Y29sbGF0ZV9pc19jOwogCQl9CiAKIAkJY2FjaGVfZW50 cnktPmZsYWdzX3ZhbGlkID0gdHJ1ZTsKQEAgLTEyNzksMTYgKzEyODYsMjcgQEAgbGNfY29sbGF0 ZV9pc19jKE9pZCBjb2xsYXRpb24pCiAJaWYgKGNvbGxhdGlvbiA9PSBERUZBVUxUX0NPTExBVElP Tl9PSUQpCiAJewogCQlzdGF0aWMgaW50CXJlc3VsdCA9IC0xOwotCQljaGFyCSAgICpsb2NhbGVw dHI7Ci0KLQkJaWYgKGRlZmF1bHRfbG9jYWxlLnByb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1Up Ci0JCQlyZXR1cm4gZmFsc2U7CisJCWNvbnN0IGNoYXIgKmxvY2FsZXB0cjsKIAogCQlpZiAocmVz dWx0ID49IDApCiAJCQlyZXR1cm4gKGJvb2wpIHJlc3VsdDsKLQkJbG9jYWxlcHRyID0gc2V0bG9j YWxlKExDX0NPTExBVEUsIE5VTEwpOwotCQlpZiAoIWxvY2FsZXB0cikKLQkJCWVsb2coRVJST1Is ICJpbnZhbGlkIExDX0NPTExBVEUgc2V0dGluZyIpOworCisJCWlmIChkZWZhdWx0X2xvY2FsZS5w cm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVKQorCQl7CisjaWZkZWYgVVNFX0lDVQorCQkJbG9j YWxlcHRyID0gZGVmYXVsdF9sb2NhbGUuaW5mby5pY3UubG9jYWxlOworI2Vsc2UKKwkJCWVyZXBv cnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwK KwkJCQkJIGVycm1zZygiSUNVIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBidWlsZCIpKSk7Cisj ZW5kaWYKKwkJfQorCQllbHNlCisJCXsKKwkJCWxvY2FsZXB0ciA9IHNldGxvY2FsZShMQ19DT0xM QVRFLCBOVUxMKTsKKwkJCWlmICghbG9jYWxlcHRyKQorCQkJCWVsb2coRVJST1IsICJpbnZhbGlk IExDX0NPTExBVEUgc2V0dGluZyIpOworCQl9CiAKIAkJaWYgKHN0cmNtcChsb2NhbGVwdHIsICJD IikgPT0gMCkKIAkJCXJlc3VsdCA9IHRydWU7CkBAIC0xMzMyLDE2ICsxMzUwLDI3IEBAIGxjX2N0 eXBlX2lzX2MoT2lkIGNvbGxhdGlvbikKIAlpZiAoY29sbGF0aW9uID09IERFRkFVTFRfQ09MTEFU SU9OX09JRCkKIAl7CiAJCXN0YXRpYyBpbnQJcmVzdWx0ID0gLTE7Ci0JCWNoYXIJICAgKmxvY2Fs ZXB0cjsKLQotCQlpZiAoZGVmYXVsdF9sb2NhbGUucHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lD VSkKLQkJCXJldHVybiBmYWxzZTsKKwkJY29uc3QgY2hhciAqbG9jYWxlcHRyOwogCiAJCWlmIChy ZXN1bHQgPj0gMCkKIAkJCXJldHVybiAoYm9vbCkgcmVzdWx0OwotCQlsb2NhbGVwdHIgPSBzZXRs b2NhbGUoTENfQ1RZUEUsIE5VTEwpOwotCQlpZiAoIWxvY2FsZXB0cikKLQkJCWVsb2coRVJST1Is ICJpbnZhbGlkIExDX0NUWVBFIHNldHRpbmciKTsKKworCQlpZiAoZGVmYXVsdF9sb2NhbGUucHJv dmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKKwkJeworI2lmZGVmIFVTRV9JQ1UKKwkJCWxvY2Fs ZXB0ciA9IGRlZmF1bHRfbG9jYWxlLmluZm8uaWN1LmxvY2FsZTsKKyNlbHNlCisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJ CQkJCSBlcnJtc2coIklDVSBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnVpbGQiKSkpOworI2Vu ZGlmCisJCX0KKwkJZWxzZQorCQl7CisJCQlsb2NhbGVwdHIgPSBzZXRsb2NhbGUoTENfQ1RZUEUs IE5VTEwpOworCQkJaWYgKCFsb2NhbGVwdHIpCisJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgTENf Q1RZUEUgc2V0dGluZyIpOworCQl9CiAKIAkJaWYgKHN0cmNtcChsb2NhbGVwdHIsICJDIikgPT0g MCkKIAkJCXJlc3VsdCA9IHRydWU7CkBAIC0xMzc1LDcgKzE0MDQsMTMgQEAgbWFrZV9pY3VfY29s bGF0b3IoY29uc3QgY2hhciAqaWN1bG9jc3RyLAogI2lmZGVmIFVTRV9JQ1UKIAlVQ29sbGF0b3Ig ICpjb2xsYXRvcjsKIAotCWNvbGxhdG9yID0gcGdfdWNvbF9vcGVuKGljdWxvY3N0cik7CisJaWYg KHN0cmNtcChpY3Vsb2NzdHIsICJDIikgPT0gMCB8fCBzdHJjbXAoaWN1bG9jc3RyLCAiUE9TSVgi KSA9PSAwKQorCXsKKwkJQXNzZXJ0KGljdXJ1bGVzID09IE5VTEwpOworCQljb2xsYXRvciA9IE5V TEw7CisJfQorCWVsc2UKKwkJY29sbGF0b3IgPSBwZ191Y29sX29wZW4oaWN1bG9jc3RyKTsKIAog CS8qCiAJICogSWYgcnVsZXMgYXJlIHNwZWNpZmllZCwgd2UgZXh0cmFjdCB0aGUgcnVsZXMgb2Yg dGhlIHN0YW5kYXJkIGNvbGxhdGlvbiwKQEAgLTE2NTAsNiArMTY4NSw5IEBAIGdldF9jb2xsYXRp b25fYWN0dWFsX3ZlcnNpb24oY2hhciBjb2xscHJvdmlkZXIsIGNvbnN0IGNoYXIgKmNvbGxjb2xs YXRlKQogewogCWNoYXIJICAgKmNvbGx2ZXJzaW9uID0gTlVMTDsKIAorCWlmIChzdHJjbXAoIkMi LCBjb2xsY29sbGF0ZSkgPT0gMCB8fCBzdHJjbXAoIlBPU0lYIiwgY29sbGNvbGxhdGUpID09IDAp CisJCXJldHVybiBOVUxMOworCiAjaWZkZWYgVVNFX0lDVQogCWlmIChjb2xscHJvdmlkZXIgPT0g Q09MTFBST1ZJREVSX0lDVSkKIAl7CkBAIC0xNjY4LDkgKzE3MDYsNyBAQCBnZXRfY29sbGF0aW9u X2FjdHVhbF92ZXJzaW9uKGNoYXIgY29sbHByb3ZpZGVyLCBjb25zdCBjaGFyICpjb2xsY29sbGF0 ZSkKIAllbHNlCiAjZW5kaWYKIAkJaWYgKGNvbGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJfTElC QyAmJgotCQkJcGdfc3RyY2FzZWNtcCgiQyIsIGNvbGxjb2xsYXRlKSAhPSAwICYmCi0JCQlwZ19z dHJuY2FzZWNtcCgiQy4iLCBjb2xsY29sbGF0ZSwgMikgIT0gMCAmJgotCQkJcGdfc3RyY2FzZWNt cCgiUE9TSVgiLCBjb2xsY29sbGF0ZSkgIT0gMCkKKwkJCXBnX3N0cm5jYXNlY21wKCJDLiIsIGNv bGxjb2xsYXRlLCAyKSAhPSAwKQogCXsKICNpZiBkZWZpbmVkKF9fR0xJQkNfXykKIAkJLyogVXNl IHRoZSBnbGliYyB2ZXJzaW9uIGJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSBhbnl0aGluZyBiZXR0ZXIu ICovCkBAIC0yNDU3LDYgKzI0OTMsMTMgQEAgcGdfdWNvbF9vcGVuKGNvbnN0IGNoYXIgKmxvY19z dHIpCiAJaWYgKGxvY19zdHIgPT0gTlVMTCkKIAkJZWxvZyhFUlJPUiwgIm9wZW5pbmcgZGVmYXVs dCBjb2xsYXRvciBpcyBub3Qgc3VwcG9ydGVkIik7CiAKKwkvKgorCSAqIE11c3QgbmV2ZXIgb3Bl biBzcGVjaWFsIHZhbHVlcyBDIG9yIFBPU0lYLCB3aGljaCBhcmUgdHJlYXRlZCBzcGVjaWFsbHkK KwkgKiBhbmQgbm90IHBhc3NlZCB0byB0aGUgcHJvdmlkZXIuCisJICovCisJaWYgKHN0cmNtcChs b2Nfc3RyLCAiQyIpID09IDAgfHwgc3RyY21wKGxvY19zdHIsICJQT1NJWCIpID09IDApCisJCWVs b2coRVJST1IsICJ1bmV4cGVjdGVkIElDVSBsb2NhbGUgc3RyaW5nOiAlcyIsIGxvY19zdHIpOwor CiAJLyoKIAkgKiBJbiBJQ1UgdmVyc2lvbnMgNTQgYW5kIGVhcmxpZXIsICJ1bmQiIGlzIG5vdCBh IHJlY29nbml6ZWQgc3BlbGxpbmcgb2YKIAkgKiB0aGUgcm9vdCBsb2NhbGUuIElmIHRoZSBmaXJz dCBjb21wb25lbnQgb2YgdGhlIGxvY2FsZSBpcyAidW5kIiwgcmVwbGFjZQpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51dGY4Lm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRmOC5vdXQKaW5kZXggYzY1OGVlMTQwNC4u YmZjMjhlY2ZjZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRl LmljdS51dGY4Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUuaWN1 LnV0Zjgub3V0CkBAIC0xMDQzLDEyICsxMDQzLDE4IEBAIEVSUk9SOiAgSUNVIGxvY2FsZSAibm9u c2Vuc2Utbm93aGVyZSIgaGFzIHVua25vd24gbGFuZ3VhZ2UgIm5vbnNlbnNlIgogSElOVDogIFRv IGRpc2FibGUgSUNVIGxvY2FsZSB2YWxpZGF0aW9uLCBzZXQgcGFyYW1ldGVyIGljdV92YWxpZGF0 aW9uX2xldmVsIHRvIERJU0FCTEVELgogQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIg PSBpY3UsIGxvY2FsZSA9ICdAY29sU3RyZW5ndGg9cHJpbWFyeTtub25zZW5zZT15ZXMnKTsgLS0g ZmFpbHMKIEVSUk9SOiAgY291bGQgbm90IGNvbnZlcnQgbG9jYWxlIG5hbWUgIkBjb2xTdHJlbmd0 aD1wcmltYXJ5O25vbnNlbnNlPXllcyIgdG8gbGFuZ3VhZ2UgdGFnOiBVX0lMTEVHQUxfQVJHVU1F TlRfRVJST1IKK0NSRUFURSBDT0xMQVRJT04gdGVzdHggKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUg PSAnQycsIGRldGVybWluaXN0aWMgPSBmYWxzZSk7IC0tIGZhaWxzCitFUlJPUjogIG5vbmRldGVy bWluaXN0aWMgY29sbGF0aW9ucyBub3Qgc3VwcG9ydGVkIGZvciBDIG9yIFBPU0lYIGxvY2FsZQor Q1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdDJywgcnVs ZXMgPSAnJlYgPDwgdyA8PDwgVycpOyAtLSBmYWlscworRVJST1I6ICBSVUxFUyBub3Qgc3VwcG9y dGVkIGZvciBDIG9yIFBPU0lYIGxvY2FsZQogUkVTRVQgaWN1X3ZhbGlkYXRpb25fbGV2ZWw7CiBD UkVBVEUgQ09MTEFUSU9OIHRlc3R4IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0Bjb2xTdHJl bmd0aD1wcmltYXJ5O25vbnNlbnNlPXllcycpOyBEUk9QIENPTExBVElPTiB0ZXN0eDsKIFdBUk5J Tkc6ICBjb3VsZCBub3QgY29udmVydCBsb2NhbGUgbmFtZSAiQGNvbFN0cmVuZ3RoPXByaW1hcnk7 bm9uc2Vuc2U9eWVzIiB0byBsYW5ndWFnZSB0YWc6IFVfSUxMRUdBTF9BUkdVTUVOVF9FUlJPUgog Q1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdub25zZW5z ZS1ub3doZXJlJyk7IERST1AgQ09MTEFUSU9OIHRlc3R4OwogV0FSTklORzogIElDVSBsb2NhbGUg Im5vbnNlbnNlLW5vd2hlcmUiIGhhcyB1bmtub3duIGxhbmd1YWdlICJub25zZW5zZSIKIEhJTlQ6 ICBUbyBkaXNhYmxlIElDVSBsb2NhbGUgdmFsaWRhdGlvbiwgc2V0IHBhcmFtZXRlciBpY3VfdmFs aWRhdGlvbl9sZXZlbCB0byBESVNBQkxFRC4KK0NSRUFURSBDT0xMQVRJT04gdGVzdHggKHByb3Zp ZGVyID0gaWN1LCBsb2NhbGUgPSAnQycpOyBEUk9QIENPTExBVElPTiB0ZXN0eDsKK0NSRUFURSBD T0xMQVRJT04gdGVzdHggKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnUE9TSVgnKTsgRFJPUCBD T0xMQVRJT04gdGVzdHg7CiBDUkVBVEUgQ09MTEFUSU9OIHRlc3Q0IEZST00gbm9uc2Vuc2U7CiBF UlJPUjogIGNvbGxhdGlvbiAibm9uc2Vuc2UiIGZvciBlbmNvZGluZyAiVVRGOCIgZG9lcyBub3Qg ZXhpc3QKIENSRUFURSBDT0xMQVRJT04gdGVzdDUgRlJPTSB0ZXN0MDsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuaWN1LnV0Zjguc3FsIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvY29sbGF0ZS5pY3UudXRmOC5zcWwKaW5kZXggN2JkMDkwMTI4MS4uNTcyZGM1YTUwYSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5pY3UudXRmOC5zcWwKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5pY3UudXRmOC5zcWwKQEAgLTM3OSw5ICsz NzksMTMgQEAgQ1JFQVRFIENPTExBVElPTiB0ZXN0MyAocHJvdmlkZXIgPSBpY3UsIGxjX2NvbGxh dGUgPSAnZW5fVVMudXRmOCcpOyAtLSBmYWlsLCBuZWUKIFNFVCBpY3VfdmFsaWRhdGlvbl9sZXZl bCA9IEVSUk9SOwogQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxvY2Fs ZSA9ICdub25zZW5zZS1ub3doZXJlJyk7IC0tIGZhaWxzCiBDUkVBVEUgQ09MTEFUSU9OIHRlc3R4 IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0Bjb2xTdHJlbmd0aD1wcmltYXJ5O25vbnNlbnNl PXllcycpOyAtLSBmYWlscworQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBpY3Us IGxvY2FsZSA9ICdDJywgZGV0ZXJtaW5pc3RpYyA9IGZhbHNlKTsgLS0gZmFpbHMKK0NSRUFURSBD T0xMQVRJT04gdGVzdHggKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnQycsIHJ1bGVzID0gJyZW IDw8IHcgPDw8IFcnKTsgLS0gZmFpbHMKIFJFU0VUIGljdV92YWxpZGF0aW9uX2xldmVsOwogQ1JF QVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdAY29sU3RyZW5n dGg9cHJpbWFyeTtub25zZW5zZT15ZXMnKTsgRFJPUCBDT0xMQVRJT04gdGVzdHg7CiBDUkVBVEUg Q09MTEFUSU9OIHRlc3R4IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ25vbnNlbnNlLW5vd2hl cmUnKTsgRFJPUCBDT0xMQVRJT04gdGVzdHg7CitDUkVBVEUgQ09MTEFUSU9OIHRlc3R4IChwcm92 aWRlciA9IGljdSwgbG9jYWxlID0gJ0MnKTsgRFJPUCBDT0xMQVRJT04gdGVzdHg7CitDUkVBVEUg Q09MTEFUSU9OIHRlc3R4IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ1BPU0lYJyk7IERST1Ag Q09MTEFUSU9OIHRlc3R4OwogCiBDUkVBVEUgQ09MTEFUSU9OIHRlc3Q0IEZST00gbm9uc2Vuc2U7 CiBDUkVBVEUgQ09MTEFUSU9OIHRlc3Q1IEZST00gdGVzdDA7Ci0tIAoyLjM0LjEKCg== --=-QP1I9Izqvku0VJ6aUody Content-Disposition: attachment; filename*0=v8-0002-pg_upgrade-check-for-ICU-locale-C-in-versions-15-.pat; filename*1=ch Content-Type: text/x-patch; name="v8-0002-pg_upgrade-check-for-ICU-locale-C-in-versions-15-.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAwYTAyYWM1N2Q2NWE4MTA4MGViMzRkOWJhMDI4ZTAzMjg1N2QxMTg4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBX ZWQsIDI0IE1heSAyMDIzIDEyOjE1OjMzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2OCAyLzRdIHBn 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= --=-QP1I9Izqvku0VJ6aUody Content-Disposition: attachment; filename*0=v8-0003-Make-LOCALE-apply-to-ICU_LOCALE-for-CREATE-DATABA.pat; filename*1=ch Content-Type: text/x-patch; name="v8-0003-Make-LOCALE-apply-to-ICU_LOCALE-for-CREATE-DATABA.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA0OTU5NjA1YjU2OTVlMDM0OTFmYzM1NWFhM2UxM2I1MjIxMDNmOTg4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDI1IEFwciAyMDIzIDE1OjAxOjU1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2OCAzLzRdIE1h 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 dGRiLmMKaW5kZXggMDlhNWM5OGNjMC4uYzc2OTZkZGExMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9p bml0ZGIvaW5pdGRiLmMKKysrIGIvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKQEAgLTIxNjMsNyAr MjE2MywxMSBAQCBjaGVja19sb2NhbGVfbmFtZShpbnQgY2F0ZWdvcnksIGNvbnN0IGNoYXIgKmxv Y2FsZSwgY2hhciAqKmNhbm9ubmFtZSkKIAlpZiAocmVzID09IE5VTEwpCiAJewogCQlpZiAoKmxv Y2FsZSkKLQkJCXBnX2ZhdGFsKCJpbnZhbGlkIGxvY2FsZSBuYW1lIFwiJXNcIiIsIGxvY2FsZSk7 CisJCXsKKwkJCXBnX2xvZ19lcnJvcigiaW52YWxpZCBsb2NhbGUgbmFtZSBcIiVzXCIiLCBsb2Nh bGUpOworCQkJcGdfbG9nX2Vycm9yX2hpbnQoIklmIHRoZSBsb2NhbGUgbmFtZSBpcyBzcGVjaWZp YyB0byBJQ1UsIHVzZSAtLWljdS1sb2NhbGUuIik7CisJCQlleGl0KDEpOworCQl9CiAJCWVsc2UK IAkJewogCQkJLyoKQEAgLTIzNzYsNyArMjM4MCw3IEBAIHNldGxvY2FsZXModm9pZCkKIHsKIAlj aGFyCSAgICpjYW5vbm5hbWU7CiAKLQkvKiBzZXQgZW1wdHkgbGNfKiB2YWx1ZXMgdG8gbG9jYWxl IGNvbmZpZyBpZiBzZXQgKi8KKwkvKiBzZXQgZW1wdHkgbGNfKiBhbmQgaWN1bG9jYWxlIHZhbHVl cyB0byBsb2NhbGUgY29uZmlnIGlmIHNldCAqLwogCiAJaWYgKGxvY2FsZSkKIAl7CkBAIC0yMzky LDYgKzIzOTYsOCBAQCBzZXRsb2NhbGVzKHZvaWQpCiAJCQlsY19tb25ldGFyeSA9IGxvY2FsZTsK IAkJaWYgKCFsY19tZXNzYWdlcykKIAkJCWxjX21lc3NhZ2VzID0gbG9jYWxlOworCQlpZiAoIWlj dV9sb2NhbGUgJiYgbG9jYWxlX3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UpCisJCQlpY3Vf bG9jYWxlID0gcGdfc3RyZHVwKGxvY2FsZSk7CiAJfQogCiAJLyoKQEAgLTMyNjcsNyArMzI3Myw2 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 --=-QP1I9Izqvku0VJ6aUody Content-Disposition: attachment; filename*0=v8-0004-Use-database-default-collation-s-provider-as-defa.pat; filename*1=ch Content-Type: text/x-patch; name="v8-0004-Use-database-default-collation-s-provider-as-defa.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBhMDJiNmQxNjBkZGJjNGRiNTg0YjEzYzg0MmI4ZWQ4MjY0NGJhZjlmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBX ZWQsIDI0IE1heSAyMDIzIDA5OjUzOjAyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2OCA0LzRdIFVz 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 --=-QP1I9Izqvku0VJ6aUody--