Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uWcZa-00GWyA-FM for pgsql-hackers@arkaria.postgresql.org; Tue, 01 Jul 2025 15:07:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uWcZY-006GCV-5W for pgsql-hackers@arkaria.postgresql.org; Tue, 01 Jul 2025 15:07:00 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uWcZX-006GCN-9R for pgsql-hackers@lists.postgresql.org; Tue, 01 Jul 2025 15:07:00 +0000 Received: from mail-oa1-x2f.google.com ([2001:4860:4864:20::2f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uWcZU-004y8d-1r for pgsql-hackers@postgresql.org; Tue, 01 Jul 2025 15:06:59 +0000 Received: by mail-oa1-x2f.google.com with SMTP id 586e51a60fabf-2edec6c5511so1588526fac.2 for ; Tue, 01 Jul 2025 08:06:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1751382416; x=1751987216; darn=postgresql.org; 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=6YLrODJIV3rtoG2WOSlr5rikaorb8ToGQ22F/j6ss9c=; b=X/0EWsHQjJGw6yxZZNDIJqRMPWkjukW7poq5qMpzv7xqSvfZQshWvajOPi2RTj286x HSbB/pGBvvOymyhcKoFpVnZ989CcygxPrPhKBGuqmTfEK9EFjaOAPA2yQ3Fqv1L9cKdn Dmxx14w0Lfoile6ND/0w1ELGk7O0E0rBYJEKKMufYNHnQGx1jn6q2nJgfB/loF2HDspF OEIdWcNRzM2kLil1PkrKhkfv3zlM51tqDfj03uY/A6BnoUt5k1XWoGSCJKEohgemrSEW O274CjOkXEGbLklMvcmS2BUTjIcjCCojKE5BLmuHfA6adAbKzKnqtHfl4Nf95IgKVTui z5CQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751382416; x=1751987216; 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=6YLrODJIV3rtoG2WOSlr5rikaorb8ToGQ22F/j6ss9c=; b=Bvnn16HPqjtDTsv3VfGg/WNyGcWCz3HhUHXt6OYX3oE9lu8J6F0IXUaBWkl4o3G11/ RHhhfIFMklHOaWpRy81768f9t2sbsyHaIZSW6xznBLx/QxQcqBwZDL6Y4a67EUEL3WyM 53LE1RPinVxG6VxQ2GAVyVg8bOq+rEaa0bDT6Vo5MOZ1qK0RE6Ke8/vivifmuYKWbdwI 04aHiCzF7VHv9EYsHAmZBky13JZntuLoARiUpWrd8H+p6sk3E0muWX0F945bmDeP6P/r uxOwkvWvruTNlSi2jkwQGeSeCuBIO02fUGKWgKSCtugcG59nd2vZtkkE4QshAxV2G++r YIuw== X-Forwarded-Encrypted: i=1; AJvYcCXePOttiMMnyyUM47ZrvnDvVJncVtsvMijZZj/qMR5Fda4oduA/RrESkLYFDxuTyzUuqY62xjZFf/Uvnepq@postgresql.org X-Gm-Message-State: AOJu0YzFdNFLq00zP2I7zcVVbBBT/so1gzIE+LXfNw05c7w/uHE/GMXs KtAF9zqs9o+HicQ7kSZYxWohKInJN4OKQDY32jvcpgoQJo7I2yWYFptp+0DqMwnBcg== X-Gm-Gg: ASbGncsTH+TjqCHC01lnQ2ThsozRgUpT45zTVVhK59iKS8BB2+aiIDGOD1+rEsD/WGx 1kemeVJbCE1L7fnMOH2oFoIFVV1c9uwFzfoOLTb/ynrhP2m/tAoIhe2U8vNiG6uP2kowGqCvCdM MwitMqIfh0RteTOTa69A3N/zFmd7EVwQDlp/LnQhpGbC71GjsDNBJvS+BzQeZXlpHfPd3zCf6IE HVFYOwFdb6uto7EHMHZyz/ruAbdMS+JCe3xr9Ty/cqZWlhKYgL1LxXQ6PrSzg80y0FWfNimUAB5 IGU7Wwfym4VB7koaN+pDf0BXux+iWiFN0dtxN/O0TWZYzwV6jAUjmQ1oi2zjzILEKoEEJ/qQ12h MrKXWAjM86NFsw42UHxv3sTiw3TUF+5XbF+6YGoo9QlY= X-Google-Smtp-Source: AGHT+IHWTL6TGcZ3uKu784pONIzU5zy21YQpyYcAEDyPqdVAcviEgogYEPsUFQH5L6nlsMHQ/tq2NA== X-Received: by 2002:a05:6870:5247:b0:2c2:b9cc:afb8 with SMTP id 586e51a60fabf-2efed43191bmr12043495fac.7.1751382414460; Tue, 01 Jul 2025 08:06:54 -0700 (PDT) Received: from jeff-ws-bridge.lan (c-76-102-242-158.hsd1.ca.comcast.net. [76.102.242.158]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-73afb0e338esm2120495a34.40.2025.07.01.08.06.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 08:06:53 -0700 (PDT) Message-ID: <800bbb5ae65267d93eb116dbb11b3274a0de1778.camel@j-davis.com> Subject: Re: Remaining dependency on setlocale() From: Jeff Davis To: Peter Eisentraut , Thomas Munro Cc: Tom Lane , pgsql-hackers@postgresql.org Date: Tue, 01 Jul 2025 08:06:51 -0700 In-Reply-To: References: <4c5da86af36a0d5e430eee3f60ce5e06f1b5cd34.camel@j-davis.com> <1841102.1722982989@sss.pgh.pa.us> <9875f7f9-50f1-4b5d-86fc-ee8b03e8c162@eisentraut.org> Content-Type: multipart/mixed; boundary="=-Zs39qyLU8K5AOyE9Pj3c" User-Agent: Evolution 3.52.3-0ubuntu1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-Zs39qyLU8K5AOyE9Pj3c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, 2025-06-11 at 12:15 -0700, Jeff Davis wrote: > I changed this to a global_libc_locale that includes both LC_COLLATE > and LC_CTYPE (from datcollate and datctype), in case an extension is > relying on strcoll for some reason. .. > This patch series, at least so far, is designed to have zero behavior > changes. Anything with a potential for a behavior change should be a > separate commit, so that if we need to revert it, we can revert the > behavior change without reintroducing a setlocale() dependency. ... >=20 > I reworked it to be less confusing by changing wchar2char/char2wchar > to > take a locale_t instead of pg_locale_t. Hopefully it's an > improvement. ... >=20 > Changed it so that it only sets LC_COLLATE to C, and leaves LC_CTYPE > set to datctype. Attached rebased v3. Regards, Jeff Davis --=-Zs39qyLU8K5AOyE9Pj3c Content-Disposition: attachment; filename="v3-0001-Hold-datcollate-datctype-in-global_libc_locale.patch" Content-Type: text/x-patch; name="v3-0001-Hold-datcollate-datctype-in-global_libc_locale.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA0NTRhODk5ODE5NmM0OWRlOWExN2FhODNkMTk4NDY0ZDUyYTNmMjc4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBG cmksIDYgSnVuIDIwMjUgMTQ6MTM6MTYgLTA3MDAKU3ViamVjdDogW1BBVENIIHYzIDEvN10gSG9s ZCBkYXRjb2xsYXRlL2RhdGN0eXBlIGluIGdsb2JhbF9saWJjX2xvY2FsZS4KCkNhbGxlcnMgb2Yg bG9jYWxlLWF3YXJlIGN0eXBlIG9wZXJhdGlvbnMgc2hvdWxkIHVzZSB0aGUgIl9sIiB2YXJpYW50 cwpvZiB0aGUgZnVuY3Rpb25zIGFuZCBwYXNzIGdsb2JhbF9saWJjX2xvY2FsZSBmb3IgdGhlIGxv Y2FsZS4gRG9pbmcgc28KYXZvaWRzIGRlcGVuZGluZyBvbiBzZXRsb2NhbGUoKS4KCkRpc2N1c3Np b246IGh0dHBzOi8vcG9zdGdyLmVzL20vOTg3NWY3ZjktNTBmMS00YjVkLTg2ZmMtZWU4YjAzZThj MTYyQGVpc2VudHJhdXQub3JnCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2xvY2FsZV9s aWJjLmMgfCA3NyArKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvdXRpbHMv aW5pdC9wb3N0aW5pdC5jICAgICAgfCAgMiArCiBzcmMvaW5jbHVkZS91dGlscy9wZ19sb2NhbGUu aCAgICAgICAgICB8ICA3ICsrKwogMyBmaWxlcyBjaGFuZ2VkLCA4NiBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2xvY2FsZV9saWJjLmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlX2xpYmMuYwppbmRleCBlOWY5ZmMxZTM2OS4uYTNk OGI1MWE3ZDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19sb2NhbGVfbGli Yy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19sb2NhbGVfbGliYy5jCkBAIC04MSw2 ICs4MSwxMiBAQAogICovCiAjZGVmaW5lCQlURVhUQlVGTEVOCQkJMTAyNAogCisvKgorICogUmVw cmVzZW50cyBkYXRjb2xsYXRlIGFuZCBkYXRjdHlwZSBsb2NhbGVzIGluIGEgZ2xvYmFsIHZhcmlh YmxlLCBzbyB0aGF0IHdlCisgKiBkb24ndCBuZWVkIHRvIHJlbHkgb24gc2V0bG9jYWxlKCkgYW55 d2hlcmUuCisgKi8KK2xvY2FsZV90CWdsb2JhbF9saWJjX2xvY2FsZSA9IE5VTEw7CisKIGV4dGVy biBwZ19sb2NhbGVfdCBjcmVhdGVfcGdfbG9jYWxlX2xpYmMoT2lkIGNvbGxpZCwgTWVtb3J5Q29u dGV4dCBjb250ZXh0KTsKIAogc3RhdGljIGludAlzdHJuY29sbF9saWJjKGNvbnN0IGNoYXIgKmFy ZzEsIHNzaXplX3QgbGVuMSwKQEAgLTY2NSw2ICs2NzEsNzcgQEAgc3RydXBwZXJfbGliY19tYihj aGFyICpkZXN0LCBzaXplX3QgZGVzdHNpemUsIGNvbnN0IGNoYXIgKnNyYywgc3NpemVfdCBzcmNs ZW4sCiAJcmV0dXJuIHJlc3VsdF9zaXplOwogfQogCisvKgorICogSW5pdGlhbGl6ZSBnbG9iYWwg bG9jYWxlIGZvciBMQ19DT0xMQVRFIGFuZCBMQ19DVFlQRSBmcm9tIGRhdGNvbGxhdGUgYW5kCisg KiBkYXRjdHlwZSwgcmVzcGVjdGl2ZWx5LgorICoKKyAqIE5COiBzaG91bGQgYmUgY29uc2lzdGVu dCB3aXRoIG1ha2VfbGliY19jb2xsYXRvcigpLCBleGNlcHQgdGhhdCBpdCBtdXN0CisgKiBjcmVh dGUgdGhlIGxvY2FsZSBldmVuIGZvciAiQyIgYW5kICJQT1NJWCIuCisgKi8KK3ZvaWQKK2luaXRf Z2xvYmFsX2xpYmNfbG9jYWxlKGNvbnN0IGNoYXIgKmNvbGxhdGUsIGNvbnN0IGNoYXIgKmN0eXBl KQoreworCWxvY2FsZV90CWxvYyA9IDA7CisKKwlpZiAoc3RyY21wKGNvbGxhdGUsIGN0eXBlKSA9 PSAwKQorCXsKKwkJLyogTm9ybWFsIGNhc2Ugd2hlcmUgdGhleSdyZSB0aGUgc2FtZSAqLworCQll cnJubyA9IDA7CisjaWZuZGVmIFdJTjMyCisJCWxvYyA9IG5ld2xvY2FsZShMQ19DT0xMQVRFX01B U0sgfCBMQ19DVFlQRV9NQVNLLCBjb2xsYXRlLCBOVUxMKTsKKyNlbHNlCisJCWxvYyA9IF9jcmVh dGVfbG9jYWxlKExDX0FMTCwgY29sbGF0ZSk7CisjZW5kaWYKKwkJaWYgKCFsb2MpCisJCQllcmVw b3J0KEZBVEFMLAorCQkJCQkoZXJybXNnKCJkYXRhYmFzZSBsb2NhbGUgaXMgaW5jb21wYXRpYmxl IHdpdGggb3BlcmF0aW5nIHN5c3RlbSIpLAorCQkJCQkgZXJyZGV0YWlsKCJUaGUgZGF0YWJhc2Ug d2FzIGluaXRpYWxpemVkIHdpdGggTENfQ09MTEFURSBcIiVzXCIsICIKKwkJCQkJCQkgICAiIHdo aWNoIGlzIG5vdCByZWNvZ25pemVkIGJ5IHNldGxvY2FsZSgpLiIsIGNvbGxhdGUpLAorCQkJCQkg ZXJyaGludCgiUmVjcmVhdGUgdGhlIGRhdGFiYXNlIHdpdGggYW5vdGhlciBsb2NhbGUgb3IgaW5z dGFsbCB0aGUgbWlzc2luZyBsb2NhbGUuIikpKTsKKwl9CisJZWxzZQorCXsKKyNpZm5kZWYgV0lO MzIKKwkJLyogV2UgbmVlZCB0d28gbmV3bG9jYWxlKCkgc3RlcHMgKi8KKwkJbG9jYWxlX3QJbG9j MSA9IDA7CisKKwkJZXJybm8gPSAwOworCQlsb2MxID0gbmV3bG9jYWxlKExDX0NPTExBVEVfTUFT SywgY29sbGF0ZSwgTlVMTCk7CisJCWlmICghbG9jMSkKKwkJCWVyZXBvcnQoRkFUQUwsCisJCQkJ CShlcnJtc2coImRhdGFiYXNlIGxvY2FsZSBpcyBpbmNvbXBhdGlibGUgd2l0aCBvcGVyYXRpbmcg c3lzdGVtIiksCisJCQkJCSBlcnJkZXRhaWwoIlRoZSBkYXRhYmFzZSB3YXMgaW5pdGlhbGl6ZWQg d2l0aCBMQ19DT0xMQVRFIFwiJXNcIiwgIgorCQkJCQkJCSAgICIgd2hpY2ggaXMgbm90IHJlY29n bml6ZWQgYnkgc2V0bG9jYWxlKCkuIiwgY29sbGF0ZSksCisJCQkJCSBlcnJoaW50KCJSZWNyZWF0 ZSB0aGUgZGF0YWJhc2Ugd2l0aCBhbm90aGVyIGxvY2FsZSBvciBpbnN0YWxsIHRoZSBtaXNzaW5n IGxvY2FsZS4iKSkpOworCisJCWVycm5vID0gMDsKKwkJbG9jID0gbmV3bG9jYWxlKExDX0NUWVBF X01BU0ssIGN0eXBlLCBsb2MxKTsKKwkJaWYgKCFsb2MpCisJCXsKKwkJCWlmIChsb2MxKQorCQkJ CWZyZWVsb2NhbGUobG9jMSk7CisJCQllcmVwb3J0KEZBVEFMLAorCQkJCQkoZXJybXNnKCJkYXRh YmFzZSBsb2NhbGUgaXMgaW5jb21wYXRpYmxlIHdpdGggb3BlcmF0aW5nIHN5c3RlbSIpLAorCQkJ CQkgZXJyZGV0YWlsKCJUaGUgZGF0YWJhc2Ugd2FzIGluaXRpYWxpemVkIHdpdGggTENfQ1RZUEUg XCIlc1wiLCAiCisJCQkJCQkJICAgIiB3aGljaCBpcyBub3QgcmVjb2duaXplZCBieSBzZXRsb2Nh bGUoKS4iLCBjdHlwZSksCisJCQkJCSBlcnJoaW50KCJSZWNyZWF0ZSB0aGUgZGF0YWJhc2Ugd2l0 aCBhbm90aGVyIGxvY2FsZSBvciBpbnN0YWxsIHRoZSBtaXNzaW5nIGxvY2FsZS4iKSkpOworCQl9 CisjZWxzZQorCisJCS8qCisJCSAqIFhYWCBUaGUgX2NyZWF0ZV9sb2NhbGUoKSBBUEkgZG9lc24n dCBhcHBlYXIgdG8gc3VwcG9ydCB0aGlzLiBDb3VsZAorCQkgKiBwZXJoYXBzIGJlIHdvcmtlZCBh cm91bmQgYnkgY2hhbmdpbmcgcGdfbG9jYWxlX3QgdG8gY29udGFpbiB0d28KKwkJICogc2VwYXJh dGUgZmllbGRzLgorCQkgKi8KKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RF X0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygiY29sbGF0aW9ucyB3aXRoIGRp ZmZlcmVudCBjb2xsYXRlIGFuZCBjdHlwZSB2YWx1ZXMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gdGhp cyBwbGF0Zm9ybSIpKSk7CisjZW5kaWYKKwl9CisKKwlnbG9iYWxfbGliY19sb2NhbGUgPSBsb2M7 Cit9CisKIHBnX2xvY2FsZV90CiBjcmVhdGVfcGdfbG9jYWxlX2xpYmMoT2lkIGNvbGxpZCwgTWVt b3J5Q29udGV4dCBjb250ZXh0KQogewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5p dC9wb3N0aW5pdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9wb3N0aW5pdC5jCmluZGV4IGM4 NmNlZWZkYTk0Li43NGY5ZGY4NGZkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5p dC9wb3N0aW5pdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvcG9zdGluaXQuYwpAQCAt NDMxLDYgKzQzMSw4IEBAIENoZWNrTXlEYXRhYmFzZShjb25zdCBjaGFyICpuYW1lLCBib29sIGFt X3N1cGVydXNlciwgYm9vbCBvdmVycmlkZV9hbGxvd19jb25uZWN0CiAJCQkJCQkgICAiIHdoaWNo IGlzIG5vdCByZWNvZ25pemVkIGJ5IHNldGxvY2FsZSgpLiIsIGN0eXBlKSwKIAkJCQkgZXJyaGlu dCgiUmVjcmVhdGUgdGhlIGRhdGFiYXNlIHdpdGggYW5vdGhlciBsb2NhbGUgb3IgaW5zdGFsbCB0 aGUgbWlzc2luZyBsb2NhbGUuIikpKTsKIAorCWluaXRfZ2xvYmFsX2xpYmNfbG9jYWxlKGNvbGxh dGUsIGN0eXBlKTsKKwogCWlmIChzdHJjbXAoY3R5cGUsICJDIikgPT0gMCB8fAogCQlzdHJjbXAo Y3R5cGUsICJQT1NJWCIpID09IDApCiAJCWRhdGFiYXNlX2N0eXBlX2lzX2MgPSB0cnVlOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvcGdfbG9jYWxlLmggYi9zcmMvaW5jbHVkZS91dGls cy9wZ19sb2NhbGUuaAppbmRleCA0NGZmNjBhMjViNC4uOTczNWQxNWNlYjIgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3V0aWxzL3BnX2xvY2FsZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3Bn X2xvY2FsZS5oCkBAIC0zNCw2ICszNCwxMiBAQCBleHRlcm4gUEdETExJTVBPUlQgY2hhciAqbG9j YWxpemVkX2Z1bGxfZGF5c1tdOwogZXh0ZXJuIFBHRExMSU1QT1JUIGNoYXIgKmxvY2FsaXplZF9h YmJyZXZfbW9udGhzW107CiBleHRlcm4gUEdETExJTVBPUlQgY2hhciAqbG9jYWxpemVkX2Z1bGxf bW9udGhzW107CiAKKy8qCisgKiBSZXByZXNlbnRzIGRhdGNvbGxhdGUgYW5kIGRhdGN0eXBlIGxv Y2FsZXMgaW4gYSBnbG9iYWwgdmFyaWFibGUsIHNvIHRoYXQgd2UKKyAqIGRvbid0IG5lZWQgdG8g cmVseSBvbiBzZXRsb2NhbGUoKSBhbnl3aGVyZS4KKyAqLworZXh0ZXJuIFBHRExMSU1QT1JUIGxv Y2FsZV90IGdsb2JhbF9saWJjX2xvY2FsZTsKKwogLyogaXMgdGhlIGRhdGFiYXNlcydzIExDX0NU WVBFIHRoZSBDIGxvY2FsZT8gKi8KIGV4dGVybiBQR0RMTElNUE9SVCBib29sIGRhdGFiYXNlX2N0 eXBlX2lzX2M7CiAKQEAgLTE2OSw2ICsxNzUsNyBAQCBzdHJ1Y3QgcGdfbG9jYWxlX3N0cnVjdAog CX0JCQlpbmZvOwogfTsKIAorZXh0ZXJuIHZvaWQgaW5pdF9nbG9iYWxfbGliY19sb2NhbGUoY29u c3QgY2hhciAqY29sbGF0ZSwgY29uc3QgY2hhciAqY3R5cGUpOwogZXh0ZXJuIHZvaWQgaW5pdF9k YXRhYmFzZV9jb2xsYXRpb24odm9pZCk7CiBleHRlcm4gcGdfbG9jYWxlX3QgcGdfbmV3bG9jYWxl X2Zyb21fY29sbGF0aW9uKE9pZCBjb2xsaWQpOwogCi0tIAoyLjQzLjAKCg== --=-Zs39qyLU8K5AOyE9Pj3c Content-Disposition: attachment; filename="v3-0002-fuzzystrmatch-use-global_libc_locale.patch" Content-Type: text/x-patch; name="v3-0002-fuzzystrmatch-use-global_libc_locale.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA5MzA1YjgwNjUwODZhN2QwMzkwMGUyZjRkYzQzOTYyMTljMjA2NzY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDEwIEp1biAyMDI1IDIwOjA2OjM0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2MyAyLzddIGZ1 enp5c3RybWF0Y2g6IHVzZSBnbG9iYWxfbGliY19sb2NhbGUuCgotLS0KIGNvbnRyaWIvZnV6enlz dHJtYXRjaC9kbWV0YXBob25lLmMgICAgfCAgMyArKy0KIGNvbnRyaWIvZnV6enlzdHJtYXRjaC9m dXp6eXN0cm1hdGNoLmMgfCAxOSArKysrKysrKysrKy0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQs IDEzIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9m dXp6eXN0cm1hdGNoL2RtZXRhcGhvbmUuYyBiL2NvbnRyaWIvZnV6enlzdHJtYXRjaC9kbWV0YXBo b25lLmMKaW5kZXggNjYyN2IyYjg5NDMuLjg3NzdjMWY1YzA0IDEwMDY0NAotLS0gYS9jb250cmli L2Z1enp5c3RybWF0Y2gvZG1ldGFwaG9uZS5jCisrKyBiL2NvbnRyaWIvZnV6enlzdHJtYXRjaC9k bWV0YXBob25lLmMKQEAgLTk5LDYgKzk5LDcgQEAgVGhlIHJlbWFpbmluZyBjb2RlIGlzIGF1dGhv cmVkIGJ5IEFuZHJldyBEdW5zdGFuIDxhbWR1bnN0YW5AbmNzaHAub3JnPiBhbmQKICNpbmNsdWRl ICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1 dGlscy9wZ19sb2NhbGUuaCIKIAogLyogdHVybiBvZmYgYXNzZXJ0aW9ucyBmb3IgZW1iZWRkZWQg ZnVuY3Rpb24gKi8KICNkZWZpbmUgTkRFQlVHCkBAIC0yODQsNyArMjg1LDcgQEAgTWFrZVVwcGVy KG1ldGFzdHJpbmcgKnMpCiAJY2hhcgkgICAqaTsKIAogCWZvciAoaSA9IHMtPnN0cjsgKmk7IGkr KykKLQkJKmkgPSB0b3VwcGVyKCh1bnNpZ25lZCBjaGFyKSAqaSk7CisJCSppID0gdG91cHBlcl9s KCh1bnNpZ25lZCBjaGFyKSAqaSwgZ2xvYmFsX2xpYmNfbG9jYWxlKTsKIH0KIAogCmRpZmYgLS1n aXQgYS9jb250cmliL2Z1enp5c3RybWF0Y2gvZnV6enlzdHJtYXRjaC5jIGIvY29udHJpYi9mdXp6 eXN0cm1hdGNoL2Z1enp5c3RybWF0Y2guYwppbmRleCBlN2NjMzE0Yjc2My4uMTAzZGQwNzIyMGMg MTAwNjQ0Ci0tLSBhL2NvbnRyaWIvZnV6enlzdHJtYXRjaC9mdXp6eXN0cm1hdGNoLmMKKysrIGIv Y29udHJpYi9mdXp6eXN0cm1hdGNoL2Z1enp5c3RybWF0Y2guYwpAQCAtNDEsNiArNDEsNyBAQAog I2luY2x1ZGUgPGN0eXBlLmg+CiAKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1 ZGUgInV0aWxzL3BnX2xvY2FsZS5oIgogI2luY2x1ZGUgInV0aWxzL3ZhcmxlbmEuaCIKICNpbmNs dWRlICJ2YXJhdHQuaCIKIApAQCAtNTYsMTMgKzU3LDE1IEBAIHN0YXRpYyB2b2lkIF9zb3VuZGV4 KGNvbnN0IGNoYXIgKmluc3RyLCBjaGFyICpvdXRzdHIpOwogCiAjZGVmaW5lIFNPVU5ERVhfTEVO IDQKIAorI2RlZmluZSBUT1VQUEVSKHgpIHRvdXBwZXJfbCgodW5zaWduZWQgY2hhcikgKHgpLCBn bG9iYWxfbGliY19sb2NhbGUpCisKIC8qCQkJCQkJCQkJQUJDREVGR0hJSktMTU5PUFFSU1RVVldY WVogKi8KIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBzb3VuZGV4X3RhYmxlID0gIjAxMjMwMTIw MDIyNDU1MDEyNjIzMDEwMjAyIjsKIAogc3RhdGljIGNoYXIKIHNvdW5kZXhfY29kZShjaGFyIGxl dHRlcikKIHsKLQlsZXR0ZXIgPSB0b3VwcGVyKCh1bnNpZ25lZCBjaGFyKSBsZXR0ZXIpOworCWxl dHRlciA9IFRPVVBQRVIoKHVuc2lnbmVkIGNoYXIpIGxldHRlcik7CiAJLyogRGVmZW5kIGFnYWlu c3Qgbm9uLUFTQ0lJIGxldHRlcnMgKi8KIAlpZiAobGV0dGVyID49ICdBJyAmJiBsZXR0ZXIgPD0g J1onKQogCQlyZXR1cm4gc291bmRleF90YWJsZVtsZXR0ZXIgLSAnQSddOwpAQCAtMTI0LDcgKzEy Nyw3IEBAIGdldGNvZGUoY2hhciBjKQogewogCWlmIChpc2FscGhhKCh1bnNpZ25lZCBjaGFyKSBj KSkKIAl7Ci0JCWMgPSB0b3VwcGVyKCh1bnNpZ25lZCBjaGFyKSBjKTsKKwkJYyA9IFRPVVBQRVIo KHVuc2lnbmVkIGNoYXIpIGMpOwogCQkvKiBEZWZlbmQgYWdhaW5zdCBub24tQVNDSUkgbGV0dGVy cyAqLwogCQlpZiAoYyA+PSAnQScgJiYgYyA8PSAnWicpCiAJCQlyZXR1cm4gX2NvZGVzW2MgLSAn QSddOwpAQCAtMzAxLDE4ICszMDQsMTggQEAgbWV0YXBob25lKFBHX0ZVTkNUSU9OX0FSR1MpCiAg KiBhY2Nlc3NpbmcgdGhlIGFycmF5IGRpcmVjdGx5Li4uICovCiAKIC8qIExvb2sgYXQgdGhlIG5l eHQgbGV0dGVyIGluIHRoZSB3b3JkICovCi0jZGVmaW5lIE5leHRfTGV0dGVyICh0b3VwcGVyKCh1 bnNpZ25lZCBjaGFyKSB3b3JkW3dfaWR4KzFdKSkKKyNkZWZpbmUgTmV4dF9MZXR0ZXIgKFRPVVBQ RVIoKHVuc2lnbmVkIGNoYXIpIHdvcmRbd19pZHgrMV0pKQogLyogTG9vayBhdCB0aGUgY3VycmVu dCBsZXR0ZXIgaW4gdGhlIHdvcmQgKi8KLSNkZWZpbmUgQ3Vycl9MZXR0ZXIgKHRvdXBwZXIoKHVu c2lnbmVkIGNoYXIpIHdvcmRbd19pZHhdKSkKKyNkZWZpbmUgQ3Vycl9MZXR0ZXIgKFRPVVBQRVIo KHVuc2lnbmVkIGNoYXIpIHdvcmRbd19pZHhdKSkKIC8qIEdvIE4gbGV0dGVycyBiYWNrLiAqLwog I2RlZmluZSBMb29rX0JhY2tfTGV0dGVyKG4pIFwKLQkod19pZHggPj0gKG4pID8gdG91cHBlcigo dW5zaWduZWQgY2hhcikgd29yZFt3X2lkeC0obildKSA6ICdcMCcpCisJKHdfaWR4ID49IChuKSA/ IFRPVVBQRVIoKHVuc2lnbmVkIGNoYXIpIHdvcmRbd19pZHgtKG4pXSkgOiAnXDAnKQogLyogUHJl dmlvdXMgbGV0dGVyLiAgSSBkdW5ubywgc2hvdWxkIHRoaXMgcmV0dXJuIG51bGwgb24gZmFpbHVy ZT8gKi8KICNkZWZpbmUgUHJldl9MZXR0ZXIgKExvb2tfQmFja19MZXR0ZXIoMSkpCiAvKiBMb29r IHR3byBsZXR0ZXJzIGRvd24uICBJdCBtYWtlcyBzdXJlIHlvdSBkb24ndCB3YWxrIG9mZiB0aGUg c3RyaW5nLiAqLwogI2RlZmluZSBBZnRlcl9OZXh0X0xldHRlciBcCi0JKE5leHRfTGV0dGVyICE9 ICdcMCcgPyB0b3VwcGVyKCh1bnNpZ25lZCBjaGFyKSB3b3JkW3dfaWR4KzJdKSA6ICdcMCcpCi0j ZGVmaW5lIExvb2tfQWhlYWRfTGV0dGVyKG4pIHRvdXBwZXIoKHVuc2lnbmVkIGNoYXIpIExvb2th aGVhZCh3b3JkK3dfaWR4LCBuKSkKKwkoTmV4dF9MZXR0ZXIgIT0gJ1wwJyA/IFRPVVBQRVIoKHVu c2lnbmVkIGNoYXIpIHdvcmRbd19pZHgrMl0pIDogJ1wwJykKKyNkZWZpbmUgTG9va19BaGVhZF9M ZXR0ZXIobikgVE9VUFBFUigodW5zaWduZWQgY2hhcikgTG9va2FoZWFkKHdvcmQrd19pZHgsIG4p KQogCiAKIC8qIEFsbG93cyB1cyB0byBzYWZlbHkgbG9vayBhaGVhZCBhbiBhcmJpdHJhcnkgIyBv ZiBsZXR0ZXJzICovCkBAIC03NDIsNyArNzQ1LDcgQEAgX3NvdW5kZXgoY29uc3QgY2hhciAqaW5z dHIsIGNoYXIgKm91dHN0cikKIAl9CiAKIAkvKiBUYWtlIHRoZSBmaXJzdCBsZXR0ZXIgYXMgaXMg Ki8KLQkqb3V0c3RyKysgPSAoY2hhcikgdG91cHBlcigodW5zaWduZWQgY2hhcikgKmluc3RyKysp OworCSpvdXRzdHIrKyA9IChjaGFyKSBUT1VQUEVSKCh1bnNpZ25lZCBjaGFyKSAqaW5zdHIrKyk7 CiAKIAljb3VudCA9IDE7CiAJd2hpbGUgKCppbnN0ciAmJiBjb3VudCA8IFNPVU5ERVhfTEVOKQot LSAKMi40My4wCgo= --=-Zs39qyLU8K5AOyE9Pj3c Content-Disposition: attachment; filename="v3-0003-ltree-use-global_libc_locale.patch" Content-Type: text/x-patch; name="v3-0003-ltree-use-global_libc_locale.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAwNGRiNWUxZmYzMDljMDgwMTBlZjdmODdhYmE5NmU3MWZiZDhmNDJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDEwIEp1biAyMDI1IDIwOjA2OjUwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2MyAzLzddIGx0 cmVlOiB1c2UgZ2xvYmFsX2xpYmNfbG9jYWxlLgoKLS0tCiBjb250cmliL2x0cmVlL2NyYzMyLmMg fCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9jb250cmliL2x0cmVlL2NyYzMyLmMgYi9jb250cmliL2x0cmVlL2NyYzMyLmMK aW5kZXggMTM0ZjQ2YTgwNWUuLjVmNWM1NjM0NzFlIDEwMDY0NAotLS0gYS9jb250cmliL2x0cmVl L2NyYzMyLmMKKysrIGIvY29udHJpYi9sdHJlZS9jcmMzMi5jCkBAIC0xMiw3ICsxMiw3IEBACiAK ICNpZmRlZiBMT1dFUl9OT0RFCiAjaW5jbHVkZSA8Y3R5cGUuaD4KLSNkZWZpbmUgVE9MT1dFUih4 KQl0b2xvd2VyKCh1bnNpZ25lZCBjaGFyKSAoeCkpCisjZGVmaW5lIFRPTE9XRVIoeCkJdG9sb3dl cl9sKCh1bnNpZ25lZCBjaGFyKSAoeCksIGdsb2JhbF9saWJjX2xvY2FsZSkKICNlbHNlCiAjZGVm aW5lIFRPTE9XRVIoeCkJKHgpCiAjZW5kaWYKLS0gCjIuNDMuMAoK --=-Zs39qyLU8K5AOyE9Pj3c Content-Disposition: attachment; filename*0=v3-0004-Use-global_libc_locale-for-downcase_identifier-an.pat; filename*1=ch Content-Type: text/x-patch; name="v3-0004-Use-global_libc_locale-for-downcase_identifier-an.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA5YzQ1NDQ5NjYyNGRhNjM5NDg2NDFiMTllNDU5MmU0ZmJiNGY2MDlmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDEwIEp1biAyMDI1IDIwOjA3OjAxIC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2MyA0LzddIFVz ZSBnbG9iYWxfbGliY19sb2NhbGUgZm9yIGRvd25jYXNlX2lkZW50aWZpZXIoKSBhbmQKIHBnX3N0 cmNhc2VjbXAoKS4KCi0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL3NjYW5zdXAuYyB8ICAzICsrLQog c3JjL3BvcnQvcGdzdHJjYXNlY21wLmMgICAgICB8IDIwICsrKysrKysrKysrKysrLS0tLS0tCiAy IGZpbGVzIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3NjYW5zdXAuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9z Y2Fuc3VwLmMKaW5kZXggMmZlYjJiNmNmNWEuLmQ0NWJmMjc1ZTQyIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvc2NhbnN1cC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9zY2Fuc3Vw LmMKQEAgLTE4LDYgKzE4LDcgQEAKIAogI2luY2x1ZGUgIm1iL3BnX3djaGFyLmgiCiAjaW5jbHVk ZSAicGFyc2VyL3NjYW5zdXAuaCIKKyNpbmNsdWRlICJ1dGlscy9wZ19sb2NhbGUuaCIKIAogCiAv KgpAQCAtNjgsNyArNjksNyBAQCBkb3duY2FzZV9pZGVudGlmaWVyKGNvbnN0IGNoYXIgKmlkZW50 LCBpbnQgbGVuLCBib29sIHdhcm4sIGJvb2wgdHJ1bmNhdGUpCiAJCWlmIChjaCA+PSAnQScgJiYg Y2ggPD0gJ1onKQogCQkJY2ggKz0gJ2EnIC0gJ0EnOwogCQllbHNlIGlmIChlbmNfaXNfc2luZ2xl X2J5dGUgJiYgSVNfSElHSEJJVF9TRVQoY2gpICYmIGlzdXBwZXIoY2gpKQotCQkJY2ggPSB0b2xv d2VyKGNoKTsKKwkJCWNoID0gdG9sb3dlcl9sKGNoLCBnbG9iYWxfbGliY19sb2NhbGUpOwogCQly ZXN1bHRbaV0gPSAoY2hhcikgY2g7CiAJfQogCXJlc3VsdFtpXSA9ICdcMCc7CmRpZmYgLS1naXQg YS9zcmMvcG9ydC9wZ3N0cmNhc2VjbXAuYyBiL3NyYy9wb3J0L3Bnc3RyY2FzZWNtcC5jCmluZGV4 IGVjMmIzYTc1YzNkLi44MTIwNTA1OThlNyAxMDA2NDQKLS0tIGEvc3JjL3BvcnQvcGdzdHJjYXNl Y21wLmMKKysrIGIvc3JjL3BvcnQvcGdzdHJjYXNlY21wLmMKQEAgLTI4LDYgKzI4LDE0IEBACiAK ICNpbmNsdWRlIDxjdHlwZS5oPgogCisjaWZuZGVmIEZST05URU5ECitleHRlcm4gUEdETExJTVBP UlQgbG9jYWxlX3QgZ2xvYmFsX2xpYmNfbG9jYWxlOworI2RlZmluZSBUT1VQUEVSKHgpIHRvdXBw ZXJfbCgodW5zaWduZWQgY2hhcikgKHgpLCBnbG9iYWxfbGliY19sb2NhbGUpCisjZGVmaW5lIFRP TE9XRVIoeCkgdG9sb3dlcl9sKCh1bnNpZ25lZCBjaGFyKSAoeCksIGdsb2JhbF9saWJjX2xvY2Fs ZSkKKyNlbHNlCisjZGVmaW5lIFRPVVBQRVIoeCkgdG91cHBlcih4KQorI2RlZmluZSBUT0xPV0VS KHgpIHRvbG93ZXIoeCkKKyNlbmRpZgogCiAvKgogICogQ2FzZS1pbmRlcGVuZGVudCBjb21wYXJp c29uIG9mIHR3byBudWxsLXRlcm1pbmF0ZWQgc3RyaW5ncy4KQEAgLTQ1LDEyICs1MywxMiBAQCBw Z19zdHJjYXNlY21wKGNvbnN0IGNoYXIgKnMxLCBjb25zdCBjaGFyICpzMikKIAkJCWlmIChjaDEg Pj0gJ0EnICYmIGNoMSA8PSAnWicpCiAJCQkJY2gxICs9ICdhJyAtICdBJzsKIAkJCWVsc2UgaWYg KElTX0hJR0hCSVRfU0VUKGNoMSkgJiYgaXN1cHBlcihjaDEpKQotCQkJCWNoMSA9IHRvbG93ZXIo Y2gxKTsKKwkJCQljaDEgPSBUT0xPV0VSKGNoMSk7CiAKIAkJCWlmIChjaDIgPj0gJ0EnICYmIGNo MiA8PSAnWicpCiAJCQkJY2gyICs9ICdhJyAtICdBJzsKIAkJCWVsc2UgaWYgKElTX0hJR0hCSVRf U0VUKGNoMikgJiYgaXN1cHBlcihjaDIpKQotCQkJCWNoMiA9IHRvbG93ZXIoY2gyKTsKKwkJCQlj aDIgPSBUT0xPV0VSKGNoMik7CiAKIAkJCWlmIChjaDEgIT0gY2gyKQogCQkJCXJldHVybiAoaW50 KSBjaDEgLSAoaW50KSBjaDI7CkBAIC03OCwxMiArODYsMTIgQEAgcGdfc3RybmNhc2VjbXAoY29u c3QgY2hhciAqczEsIGNvbnN0IGNoYXIgKnMyLCBzaXplX3QgbikKIAkJCWlmIChjaDEgPj0gJ0En ICYmIGNoMSA8PSAnWicpCiAJCQkJY2gxICs9ICdhJyAtICdBJzsKIAkJCWVsc2UgaWYgKElTX0hJ R0hCSVRfU0VUKGNoMSkgJiYgaXN1cHBlcihjaDEpKQotCQkJCWNoMSA9IHRvbG93ZXIoY2gxKTsK KwkJCQljaDEgPSBUT0xPV0VSKGNoMSk7CiAKIAkJCWlmIChjaDIgPj0gJ0EnICYmIGNoMiA8PSAn WicpCiAJCQkJY2gyICs9ICdhJyAtICdBJzsKIAkJCWVsc2UgaWYgKElTX0hJR0hCSVRfU0VUKGNo MikgJiYgaXN1cHBlcihjaDIpKQotCQkJCWNoMiA9IHRvbG93ZXIoY2gyKTsKKwkJCQljaDIgPSBU T0xPV0VSKGNoMik7CiAKIAkJCWlmIChjaDEgIT0gY2gyKQogCQkJCXJldHVybiAoaW50KSBjaDEg LSAoaW50KSBjaDI7CkBAIC0xMDcsNyArMTE1LDcgQEAgcGdfdG91cHBlcih1bnNpZ25lZCBjaGFy IGNoKQogCWlmIChjaCA+PSAnYScgJiYgY2ggPD0gJ3onKQogCQljaCArPSAnQScgLSAnYSc7CiAJ ZWxzZSBpZiAoSVNfSElHSEJJVF9TRVQoY2gpICYmIGlzbG93ZXIoY2gpKQotCQljaCA9IHRvdXBw ZXIoY2gpOworCQljaCA9IFRPVVBQRVIoY2gpOwogCXJldHVybiBjaDsKIH0KIApAQCAtMTI0LDcg KzEzMiw3IEBAIHBnX3RvbG93ZXIodW5zaWduZWQgY2hhciBjaCkKIAlpZiAoY2ggPj0gJ0EnICYm IGNoIDw9ICdaJykKIAkJY2ggKz0gJ2EnIC0gJ0EnOwogCWVsc2UgaWYgKElTX0hJR0hCSVRfU0VU KGNoKSAmJiBpc3VwcGVyKGNoKSkKLQkJY2ggPSB0b2xvd2VyKGNoKTsKKwkJY2ggPSBUT0xPV0VS KGNoKTsKIAlyZXR1cm4gY2g7CiB9CiAKLS0gCjIuNDMuMAoK --=-Zs39qyLU8K5AOyE9Pj3c Content-Disposition: attachment; filename*0=v3-0005-Change-wchar2char-and-char2wchar-to-accept-a-loca.pat; filename*1=ch Content-Type: text/x-patch; name="v3-0005-Change-wchar2char-and-char2wchar-to-accept-a-loca.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBjZmM2YTJkMWRhY2M1MWRkN2UwOTI5MWVhYTFkNGNhYzM1MDYyNWM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBX ZWQsIDExIEp1biAyMDI1IDEwOjExOjE2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2MyA1LzddIENo YW5nZSB3Y2hhcjJjaGFyKCkgYW5kIGNoYXIyd2NoYXIoKSB0byBhY2NlcHQgYQogbG9jYWxlX3Qu CgpUaGVzZSBhcmUgbGliYy1zcGVjaWZpYyBmdW5jdGlvbnMsIHNvIGFjY2VwdGluZyBhIGxvY2Fs ZV90IG1ha2VzIG1vcmUKc2Vuc2UgdGhhbiBhY2NlcHRpbmcgYSBwZ19sb2NhbGVfdCAod2hpY2gg Y291bGQgdXNlIGFub3RoZXIgcHJvdmlkZXIpLgoKQWxzbywgbm8gbG9uZ2VyIGFjY2VwdCBOVUxM LgotLS0KIHNyYy9iYWNrZW5kL3RzZWFyY2gvdHNfbG9jYWxlLmMgICAgICAgIHwgIDQgKy0tCiBz cmMvYmFja2VuZC90c2VhcmNoL3dwYXJzZXJfZGVmLmMgICAgICB8ICAyICstCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvcGdfbG9jYWxlLmMgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvcGdfbG9jYWxlX2xpYmMuYyB8IDQyICsrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiBzcmMv aW5jbHVkZS91dGlscy9wZ19sb2NhbGUuaCAgICAgICAgICB8ICA0ICstLQogNSBmaWxlcyBjaGFu Z2VkLCAyMCBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC90c2VhcmNoL3RzX2xvY2FsZS5jIGIvc3JjL2JhY2tlbmQvdHNlYXJjaC90c19sb2Nh bGUuYwppbmRleCBiNzdkOGMyM2QzNi4uNDgwMWZlOTAwODkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3RzZWFyY2gvdHNfbG9jYWxlLmMKKysrIGIvc3JjL2JhY2tlbmQvdHNlYXJjaC90c19sb2Nh bGUuYwpAQCAtMzYsNyArMzYsNyBAQCB0X2lzYWxwaGEoY29uc3QgY2hhciAqcHRyKQogewogCWlu dAkJCWNsZW4gPSBwZ19tYmxlbihwdHIpOwogCXdjaGFyX3QJCWNoYXJhY3RlcltXQ19CVUZfTEVO XTsKLQlwZ19sb2NhbGVfdCBteWxvY2FsZSA9IDA7CS8qIFRPRE8gKi8KKwlsb2NhbGVfdAlteWxv Y2FsZSA9IDA7CS8qIFRPRE8gKi8KIAogCWlmIChjbGVuID09IDEgfHwgZGF0YWJhc2VfY3R5cGVf aXNfYykKIAkJcmV0dXJuIGlzYWxwaGEoVE9VQ0hBUihwdHIpKTsKQEAgLTUxLDcgKzUxLDcgQEAg dF9pc2FsbnVtKGNvbnN0IGNoYXIgKnB0cikKIHsKIAlpbnQJCQljbGVuID0gcGdfbWJsZW4ocHRy KTsKIAl3Y2hhcl90CQljaGFyYWN0ZXJbV0NfQlVGX0xFTl07Ci0JcGdfbG9jYWxlX3QgbXlsb2Nh bGUgPSAwOwkvKiBUT0RPICovCisJbG9jYWxlX3QJbXlsb2NhbGUgPSAwOwkvKiBUT0RPICovCiAK IAlpZiAoY2xlbiA9PSAxIHx8IGRhdGFiYXNlX2N0eXBlX2lzX2MpCiAJCXJldHVybiBpc2FsbnVt KFRPVUNIQVIocHRyKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90c2VhcmNoL3dwYXJzZXJf ZGVmLmMgYi9zcmMvYmFja2VuZC90c2VhcmNoL3dwYXJzZXJfZGVmLmMKaW5kZXggNzliY2QzMmEw NjMuLmUyZGQzZGEzYWEzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90c2VhcmNoL3dwYXJzZXJf ZGVmLmMKKysrIGIvc3JjL2JhY2tlbmQvdHNlYXJjaC93cGFyc2VyX2RlZi5jCkBAIC0yOTksNyAr Mjk5LDcgQEAgVFBhcnNlckluaXQoY2hhciAqc3RyLCBpbnQgbGVuKQogCSAqLwogCWlmIChwcnMt PmNoYXJtYXhsZW4gPiAxKQogCXsKLQkJcGdfbG9jYWxlX3QgbXlsb2NhbGUgPSAwOwkvKiBUT0RP ICovCisJCWxvY2FsZV90CW15bG9jYWxlID0gMDsJLyogVE9ETyAqLwogCiAJCXBycy0+dXNld2lk ZSA9IHRydWU7CiAJCWlmIChkYXRhYmFzZV9jdHlwZV9pc19jKQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3BnX2xvY2FsZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2xv Y2FsZS5jCmluZGV4IDk3YzJhYzFmYWY5Li5jZTUwZTllMTVkMCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3BnX2xvY2FsZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9w Z19sb2NhbGUuYwpAQCAtOTk4LDcgKzk5OCw3IEBAIGdldF9pc29fbG9jYWxlbmFtZShjb25zdCBj aGFyICp3aW5sb2NuYW1lKQogCQljaGFyCSAgICpoeXBoZW47CiAKIAkJLyogTG9jYWxlIG5hbWVz IHVzZSBvbmx5IEFTQ0lJLCBhbnkgY29udmVyc2lvbiBsb2NhbGUgc3VmZmljZXMuICovCi0JCXJj ID0gd2NoYXIyY2hhcihpc29fbGNfbWVzc2FnZXMsIGJ1ZmZlciwgc2l6ZW9mKGlzb19sY19tZXNz YWdlcyksIE5VTEwpOworCQlyYyA9IHdjaGFyMmNoYXIoaXNvX2xjX21lc3NhZ2VzLCBidWZmZXIs IHNpemVvZihpc29fbGNfbWVzc2FnZXMpLCBMQ19DX0xPQ0FMRSk7CiAJCWlmIChyYyA9PSAtMSB8 fCByYyA9PSBzaXplb2YoaXNvX2xjX21lc3NhZ2VzKSkKIAkJCXJldHVybiBOVUxMOwogCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlX2xpYmMuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9wZ19sb2NhbGVfbGliYy5jCmluZGV4IGEzZDhiNTFhN2Q5Li45OThiZmE4 NTdmMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2xvY2FsZV9saWJjLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2xvY2FsZV9saWJjLmMKQEAgLTQ2Myw3ICs0 NjMsNyBAQCBzdHJsb3dlcl9saWJjX21iKGNoYXIgKmRlc3QsIHNpemVfdCBkZXN0c2l6ZSwgY29u c3QgY2hhciAqc3JjLCBzc2l6ZV90IHNyY2xlbiwKIAkvKiBPdXRwdXQgd29ya3NwYWNlIGNhbm5v dCBoYXZlIG1vcmUgY29kZXMgdGhhbiBpbnB1dCBieXRlcyAqLwogCXdvcmtzcGFjZSA9ICh3Y2hh cl90ICopIHBhbGxvYygoc3JjbGVuICsgMSkgKiBzaXplb2Yod2NoYXJfdCkpOwogCi0JY2hhcjJ3 Y2hhcih3b3Jrc3BhY2UsIHNyY2xlbiArIDEsIHNyYywgc3JjbGVuLCBsb2NhbGUpOworCWNoYXIy d2NoYXIod29ya3NwYWNlLCBzcmNsZW4gKyAxLCBzcmMsIHNyY2xlbiwgbG9jKTsKIAogCWZvciAo Y3Vycl9jaGFyID0gMDsgd29ya3NwYWNlW2N1cnJfY2hhcl0gIT0gMDsgY3Vycl9jaGFyKyspCiAJ CXdvcmtzcGFjZVtjdXJyX2NoYXJdID0gdG93bG93ZXJfbCh3b3Jrc3BhY2VbY3Vycl9jaGFyXSwg bG9jKTsKQEAgLTQ3NCw3ICs0NzQsNyBAQCBzdHJsb3dlcl9saWJjX21iKGNoYXIgKmRlc3QsIHNp emVfdCBkZXN0c2l6ZSwgY29uc3QgY2hhciAqc3JjLCBzc2l6ZV90IHNyY2xlbiwKIAltYXhfc2l6 ZSA9IGN1cnJfY2hhciAqIHBnX2RhdGFiYXNlX2VuY29kaW5nX21heF9sZW5ndGgoKTsKIAlyZXN1 bHQgPSBwYWxsb2MobWF4X3NpemUgKyAxKTsKIAotCXJlc3VsdF9zaXplID0gd2NoYXIyY2hhcihy ZXN1bHQsIHdvcmtzcGFjZSwgbWF4X3NpemUgKyAxLCBsb2NhbGUpOworCXJlc3VsdF9zaXplID0g d2NoYXIyY2hhcihyZXN1bHQsIHdvcmtzcGFjZSwgbWF4X3NpemUgKyAxLCBsb2MpOwogCiAJaWYg KHJlc3VsdF9zaXplICsgMSA+IGRlc3RzaXplKQogCQlyZXR1cm4gcmVzdWx0X3NpemU7CkBAIC01 NTgsNyArNTU4LDcgQEAgc3RydGl0bGVfbGliY19tYihjaGFyICpkZXN0LCBzaXplX3QgZGVzdHNp emUsIGNvbnN0IGNoYXIgKnNyYywgc3NpemVfdCBzcmNsZW4sCiAJLyogT3V0cHV0IHdvcmtzcGFj ZSBjYW5ub3QgaGF2ZSBtb3JlIGNvZGVzIHRoYW4gaW5wdXQgYnl0ZXMgKi8KIAl3b3Jrc3BhY2Ug PSAod2NoYXJfdCAqKSBwYWxsb2MoKHNyY2xlbiArIDEpICogc2l6ZW9mKHdjaGFyX3QpKTsKIAot CWNoYXIyd2NoYXIod29ya3NwYWNlLCBzcmNsZW4gKyAxLCBzcmMsIHNyY2xlbiwgbG9jYWxlKTsK KwljaGFyMndjaGFyKHdvcmtzcGFjZSwgc3JjbGVuICsgMSwgc3JjLCBzcmNsZW4sIGxvYyk7CiAK IAlmb3IgKGN1cnJfY2hhciA9IDA7IHdvcmtzcGFjZVtjdXJyX2NoYXJdICE9IDA7IGN1cnJfY2hh cisrKQogCXsKQEAgLTU3NSw3ICs1NzUsNyBAQCBzdHJ0aXRsZV9saWJjX21iKGNoYXIgKmRlc3Qs IHNpemVfdCBkZXN0c2l6ZSwgY29uc3QgY2hhciAqc3JjLCBzc2l6ZV90IHNyY2xlbiwKIAltYXhf c2l6ZSA9IGN1cnJfY2hhciAqIHBnX2RhdGFiYXNlX2VuY29kaW5nX21heF9sZW5ndGgoKTsKIAly ZXN1bHQgPSBwYWxsb2MobWF4X3NpemUgKyAxKTsKIAotCXJlc3VsdF9zaXplID0gd2NoYXIyY2hh cihyZXN1bHQsIHdvcmtzcGFjZSwgbWF4X3NpemUgKyAxLCBsb2NhbGUpOworCXJlc3VsdF9zaXpl ID0gd2NoYXIyY2hhcihyZXN1bHQsIHdvcmtzcGFjZSwgbWF4X3NpemUgKyAxLCBsb2MpOwogCiAJ aWYgKHJlc3VsdF9zaXplICsgMSA+IGRlc3RzaXplKQogCQlyZXR1cm4gcmVzdWx0X3NpemU7CkBA IC02NDYsNyArNjQ2LDcgQEAgc3RydXBwZXJfbGliY19tYihjaGFyICpkZXN0LCBzaXplX3QgZGVz dHNpemUsIGNvbnN0IGNoYXIgKnNyYywgc3NpemVfdCBzcmNsZW4sCiAJLyogT3V0cHV0IHdvcmtz cGFjZSBjYW5ub3QgaGF2ZSBtb3JlIGNvZGVzIHRoYW4gaW5wdXQgYnl0ZXMgKi8KIAl3b3Jrc3Bh Y2UgPSAod2NoYXJfdCAqKSBwYWxsb2MoKHNyY2xlbiArIDEpICogc2l6ZW9mKHdjaGFyX3QpKTsK IAotCWNoYXIyd2NoYXIod29ya3NwYWNlLCBzcmNsZW4gKyAxLCBzcmMsIHNyY2xlbiwgbG9jYWxl KTsKKwljaGFyMndjaGFyKHdvcmtzcGFjZSwgc3JjbGVuICsgMSwgc3JjLCBzcmNsZW4sIGxvYyk7 CiAKIAlmb3IgKGN1cnJfY2hhciA9IDA7IHdvcmtzcGFjZVtjdXJyX2NoYXJdICE9IDA7IGN1cnJf Y2hhcisrKQogCQl3b3Jrc3BhY2VbY3Vycl9jaGFyXSA9IHRvd3VwcGVyX2wod29ya3NwYWNlW2N1 cnJfY2hhcl0sIGxvYyk7CkBAIC02NTcsNyArNjU3LDcgQEAgc3RydXBwZXJfbGliY19tYihjaGFy ICpkZXN0LCBzaXplX3QgZGVzdHNpemUsIGNvbnN0IGNoYXIgKnNyYywgc3NpemVfdCBzcmNsZW4s CiAJbWF4X3NpemUgPSBjdXJyX2NoYXIgKiBwZ19kYXRhYmFzZV9lbmNvZGluZ19tYXhfbGVuZ3Ro KCk7CiAJcmVzdWx0ID0gcGFsbG9jKG1heF9zaXplICsgMSk7CiAKLQlyZXN1bHRfc2l6ZSA9IHdj aGFyMmNoYXIocmVzdWx0LCB3b3Jrc3BhY2UsIG1heF9zaXplICsgMSwgbG9jYWxlKTsKKwlyZXN1 bHRfc2l6ZSA9IHdjaGFyMmNoYXIocmVzdWx0LCB3b3Jrc3BhY2UsIG1heF9zaXplICsgMSwgbG9j KTsKIAogCWlmIChyZXN1bHRfc2l6ZSArIDEgPiBkZXN0c2l6ZSkKIAkJcmV0dXJuIHJlc3VsdF9z aXplOwpAQCAtMTIwNywxMCArMTIwNywxMiBAQCB3Y3N0b21ic19sKGNoYXIgKmRlc3QsIGNvbnN0 IHdjaGFyX3QgKnNyYywgc2l6ZV90IG4sIGxvY2FsZV90IGxvYykKICAqIHplcm8tdGVybWluYXRl ZC4gIFRoZSBvdXRwdXQgd2lsbCBiZSB6ZXJvLXRlcm1pbmF0ZWQgaWZmIHRoZXJlIGlzIHJvb20u CiAgKi8KIHNpemVfdAotd2NoYXIyY2hhcihjaGFyICp0bywgY29uc3Qgd2NoYXJfdCAqZnJvbSwg c2l6ZV90IHRvbGVuLCBwZ19sb2NhbGVfdCBsb2NhbGUpCit3Y2hhcjJjaGFyKGNoYXIgKnRvLCBj b25zdCB3Y2hhcl90ICpmcm9tLCBzaXplX3QgdG9sZW4sIGxvY2FsZV90IGxvYykKIHsKIAlzaXpl X3QJCXJlc3VsdDsKIAorCUFzc2VydChsb2MgIT0gTlVMTCk7CisKIAlpZiAodG9sZW4gPT0gMCkK IAkJcmV0dXJuIDA7CiAKQEAgLTEyMzcsMTYgKzEyMzksNyBAQCB3Y2hhcjJjaGFyKGNoYXIgKnRv LCBjb25zdCB3Y2hhcl90ICpmcm9tLCBzaXplX3QgdG9sZW4sIHBnX2xvY2FsZV90IGxvY2FsZSkK IAl9CiAJZWxzZQogI2VuZGlmCQkJCQkJCS8qIFdJTjMyICovCi0JaWYgKGxvY2FsZSA9PSAocGdf bG9jYWxlX3QpIDApCi0JewotCQkvKiBVc2Ugd2NzdG9tYnMgZGlyZWN0bHkgZm9yIHRoZSBkZWZh dWx0IGxvY2FsZSAqLwotCQlyZXN1bHQgPSB3Y3N0b21icyh0bywgZnJvbSwgdG9sZW4pOwotCX0K LQllbHNlCi0JewotCQkvKiBVc2Ugd2NzdG9tYnNfbCBmb3Igbm9uZGVmYXVsdCBsb2NhbGVzICov Ci0JCXJlc3VsdCA9IHdjc3RvbWJzX2wodG8sIGZyb20sIHRvbGVuLCBsb2NhbGUtPmluZm8ubHQp OwotCX0KKwkJcmVzdWx0ID0gd2NzdG9tYnNfbCh0bywgZnJvbSwgdG9sZW4sIGxvYyk7CiAKIAly ZXR1cm4gcmVzdWx0OwogfQpAQCAtMTI2MiwxMCArMTI1NSwxMiBAQCB3Y2hhcjJjaGFyKGNoYXIg KnRvLCBjb25zdCB3Y2hhcl90ICpmcm9tLCBzaXplX3QgdG9sZW4sIHBnX2xvY2FsZV90IGxvY2Fs ZSkKICAqLwogc2l6ZV90CiBjaGFyMndjaGFyKHdjaGFyX3QgKnRvLCBzaXplX3QgdG9sZW4sIGNv bnN0IGNoYXIgKmZyb20sIHNpemVfdCBmcm9tbGVuLAotCQkgICBwZ19sb2NhbGVfdCBsb2NhbGUp CisJCSAgIGxvY2FsZV90IGxvYykKIHsKIAlzaXplX3QJCXJlc3VsdDsKIAorCUFzc2VydChsb2Mg IT0gTlVMTCk7CisKIAlpZiAodG9sZW4gPT0gMCkKIAkJcmV0dXJuIDA7CiAKQEAgLTEyOTcsMTYg KzEyOTIsNyBAQCBjaGFyMndjaGFyKHdjaGFyX3QgKnRvLCBzaXplX3QgdG9sZW4sIGNvbnN0IGNo YXIgKmZyb20sIHNpemVfdCBmcm9tbGVuLAogCQkvKiBtYnN0b3djcyByZXF1aXJlcyBlbmRpbmcg J1wwJyAqLwogCQljaGFyCSAgICpzdHIgPSBwbnN0cmR1cChmcm9tLCBmcm9tbGVuKTsKIAotCQlp ZiAobG9jYWxlID09IChwZ19sb2NhbGVfdCkgMCkKLQkJewotCQkJLyogVXNlIG1ic3Rvd2NzIGRp cmVjdGx5IGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgKi8KLQkJCXJlc3VsdCA9IG1ic3Rvd2NzKHRv LCBzdHIsIHRvbGVuKTsKLQkJfQotCQllbHNlCi0JCXsKLQkJCS8qIFVzZSBtYnN0b3djc19sIGZv ciBub25kZWZhdWx0IGxvY2FsZXMgKi8KLQkJCXJlc3VsdCA9IG1ic3Rvd2NzX2wodG8sIHN0ciwg dG9sZW4sIGxvY2FsZS0+aW5mby5sdCk7Ci0JCX0KKwkJcmVzdWx0ID0gbWJzdG93Y3NfbCh0bywg c3RyLCB0b2xlbiwgbG9jKTsKIAogCQlwZnJlZShzdHIpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3V0aWxzL3BnX2xvY2FsZS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGdfbG9jYWxlLmgK aW5kZXggOTczNWQxNWNlYjIuLmQwMDhiNDllM2M3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91 dGlscy9wZ19sb2NhbGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9wZ19sb2NhbGUuaApAQCAt MjE4LDggKzIxOCw4IEBAIGV4dGVybiB2b2lkIHJlcG9ydF9uZXdsb2NhbGVfZmFpbHVyZShjb25z dCBjaGFyICpsb2NhbGVuYW1lKTsKIAogLyogVGhlc2UgZnVuY3Rpb25zIGNvbnZlcnQgZnJvbS90 byBsaWJjJ3Mgd2NoYXJfdCwgKm5vdCogcGdfd2NoYXJfdCAqLwogZXh0ZXJuIHNpemVfdCB3Y2hh cjJjaGFyKGNoYXIgKnRvLCBjb25zdCB3Y2hhcl90ICpmcm9tLCBzaXplX3QgdG9sZW4sCi0JCQkJ CQkgcGdfbG9jYWxlX3QgbG9jYWxlKTsKKwkJCQkJCSBsb2NhbGVfdCBsb2MpOwogZXh0ZXJuIHNp emVfdCBjaGFyMndjaGFyKHdjaGFyX3QgKnRvLCBzaXplX3QgdG9sZW4sCi0JCQkJCQkgY29uc3Qg Y2hhciAqZnJvbSwgc2l6ZV90IGZyb21sZW4sIHBnX2xvY2FsZV90IGxvY2FsZSk7CisJCQkJCQkg Y29uc3QgY2hhciAqZnJvbSwgc2l6ZV90IGZyb21sZW4sIGxvY2FsZV90IGxvYyk7CiAKICNlbmRp ZgkJCQkJCQkvKiBfUEdfTE9DQUxFXyAqLwotLSAKMi40My4wCgo= --=-Zs39qyLU8K5AOyE9Pj3c Content-Disposition: attachment; filename="v3-0006-tsearch-use-global_libc_locale.patch" Content-Type: text/x-patch; name="v3-0006-tsearch-use-global_libc_locale.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAzMDQwMDMzMDEwMzMzNjg5ZWUzMTM1ZTQ3NmIzMWI5ZGQwN2NiZTQxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBX ZWQsIDExIEp1biAyMDI1IDEwOjA3OjI5IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2MyA2LzddIHRz ZWFyY2g6IHVzZSBnbG9iYWxfbGliY19sb2NhbGUuCgotLS0KIGNvbmZpZ3VyZSAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAyICstCiBjb25maWd1cmUuYWMgICAgICAgICAgICAgICAgICAgICAg fCAgMiArKwogbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKysKIHNyYy9i YWNrZW5kL3RzZWFyY2gvdHNfbG9jYWxlLmMgICB8ICA4ICsrKy0tLQogc3JjL2JhY2tlbmQvdHNl YXJjaC93cGFyc2VyX2RlZi5jIHwgNDQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQog c3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4gICAgICAgIHwgIDYgKysrKysKIDYgZmlsZXMgY2hh bmdlZCwgNTUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb25m aWd1cmUgYi9jb25maWd1cmUKaW5kZXggMTZlZjViNThkMWEuLjgyZGQzYTA0ZTNhIDEwMDc1NQot LS0gYS9jb25maWd1cmUKKysrIGIvY29uZmlndXJlCkBAIC0xNTYxNiw3ICsxNTYxNiw3IEBAIGZp CiBMSUJTX2luY2x1ZGluZ19yZWFkbGluZT0iJExJQlMiCiBMSUJTPWBlY2hvICIkTElCUyIgfCBz ZWQgLWUgJ3MvLWxlZGl0Ly9nJyAtZSAncy8tbHJlYWRsaW5lLy9nJ2AKIAotZm9yIGFjX2Z1bmMg aW4gYmFja3RyYWNlX3N5bWJvbHMgY29weWZpbGUgY29weV9maWxlX3JhbmdlIGVsZl9hdXhfaW5m byBnZXRhdXh2YWwgZ2V0aWZhZGRycyBnZXRwZWVydWNyZWQgaW5ldF9wdG9uIGtxdWV1ZSBsb2Nh bGVjb252X2wgbWJzdG93Y3NfbCBwb3NpeF9mYWxsb2NhdGUgcHBvbGwgcHRocmVhZF9pc190aHJl YWRlZF9ucCBzZXRwcm9jdGl0bGUgc2V0cHJvY3RpdGxlX2Zhc3Qgc3Ryc2lnbmFsIHN5bmNmcyBz eW5jX2ZpbGVfcmFuZ2UgdXNlbG9jYWxlIHdjc3RvbWJzX2wKK2ZvciBhY19mdW5jIGluIGJhY2t0 cmFjZV9zeW1ib2xzIGNvcHlmaWxlIGNvcHlfZmlsZV9yYW5nZSBlbGZfYXV4X2luZm8gZ2V0YXV4 dmFsIGdldGlmYWRkcnMgZ2V0cGVlcnVjcmVkIGluZXRfcHRvbiBpc3d4ZGlnaXRfbCBpc3hkaWdp dF9sIGtxdWV1ZSBsb2NhbGVjb252X2wgbWJzdG93Y3NfbCBwb3NpeF9mYWxsb2NhdGUgcHBvbGwg cHRocmVhZF9pc190aHJlYWRlZF9ucCBzZXRwcm9jdGl0bGUgc2V0cHJvY3RpdGxlX2Zhc3Qgc3Ry c2lnbmFsIHN5bmNmcyBzeW5jX2ZpbGVfcmFuZ2UgdXNlbG9jYWxlIHdjc3RvbWJzX2wKIGRvIDoK ICAgYXNfYWNfdmFyPWAkYXNfZWNobyAiYWNfY3ZfZnVuY18kYWNfZnVuYyIgfCAkYXNfdHJfc2hg CiBhY19mbl9jX2NoZWNrX2Z1bmMgIiRMSU5FTk8iICIkYWNfZnVuYyIgIiRhc19hY192YXIiCmRp ZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggYjNlZmM0OWM5N2Eu LmQyM2VmNDNmMjQzIDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFj CkBAIC0xNzg5LDYgKzE3ODksOCBAQCBBQ19DSEVDS19GVU5DUyhtNF9ub3JtYWxpemUoWwogCWdl dGlmYWRkcnMKIAlnZXRwZWVydWNyZWQKIAlpbmV0X3B0b24KKwlpc3d4ZGlnaXRfbAorCWlzeGRp Z2l0X2wKIAlrcXVldWUKIAlsb2NhbGVjb252X2wKIAltYnN0b3djc19sCmRpZmYgLS1naXQgYS9t ZXNvbi5idWlsZCBiL21lc29uLmJ1aWxkCmluZGV4IDkxZmI0NzU2ZWQ0Li5jMTFhNmY2M2EwNSAx MDA2NDQKLS0tIGEvbWVzb24uYnVpbGQKKysrIGIvbWVzb24uYnVpbGQKQEAgLTI4ODUsNiArMjg4 NSw4IEBAIGZ1bmNfY2hlY2tzID0gWwogICBbJ2dldHBlZXJ1Y3JlZCddLAogICBbJ2luZXRfYXRv biddLAogICBbJ2luZXRfcHRvbiddLAorICBbJ2lzd3hkaWdpdF9sJ10sCisgIFsnaXN4ZGlnaXRf bCddLAogICBbJ2txdWV1ZSddLAogICBbJ2xvY2FsZWNvbnZfbCddLAogICBbJ21ic3Rvd2NzX2wn XSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3RzZWFyY2gvdHNfbG9jYWxlLmMgYi9zcmMvYmFj a2VuZC90c2VhcmNoL3RzX2xvY2FsZS5jCmluZGV4IDQ4MDFmZTkwMDg5Li42YjY2ZmQxYzA1YiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdHNlYXJjaC90c19sb2NhbGUuYworKysgYi9zcmMvYmFj a2VuZC90c2VhcmNoL3RzX2xvY2FsZS5jCkBAIC0zNiwxNCArMzYsMTQgQEAgdF9pc2FscGhhKGNv bnN0IGNoYXIgKnB0cikKIHsKIAlpbnQJCQljbGVuID0gcGdfbWJsZW4ocHRyKTsKIAl3Y2hhcl90 CQljaGFyYWN0ZXJbV0NfQlVGX0xFTl07Ci0JbG9jYWxlX3QJbXlsb2NhbGUgPSAwOwkvKiBUT0RP ICovCisJbG9jYWxlX3QJbXlsb2NhbGUgPSBnbG9iYWxfbGliY19sb2NhbGU7CS8qIFRPRE8gKi8K IAogCWlmIChjbGVuID09IDEgfHwgZGF0YWJhc2VfY3R5cGVfaXNfYykKIAkJcmV0dXJuIGlzYWxw aGEoVE9VQ0hBUihwdHIpKTsKIAogCWNoYXIyd2NoYXIoY2hhcmFjdGVyLCBXQ19CVUZfTEVOLCBw dHIsIGNsZW4sIG15bG9jYWxlKTsKIAotCXJldHVybiBpc3dhbHBoYSgod2ludF90KSBjaGFyYWN0 ZXJbMF0pOworCXJldHVybiBpc3dhbHBoYV9sKCh3aW50X3QpIGNoYXJhY3RlclswXSwgbXlsb2Nh bGUpOwogfQogCiBpbnQKQEAgLTUxLDE0ICs1MSwxNCBAQCB0X2lzYWxudW0oY29uc3QgY2hhciAq cHRyKQogewogCWludAkJCWNsZW4gPSBwZ19tYmxlbihwdHIpOwogCXdjaGFyX3QJCWNoYXJhY3Rl cltXQ19CVUZfTEVOXTsKLQlsb2NhbGVfdAlteWxvY2FsZSA9IDA7CS8qIFRPRE8gKi8KKwlsb2Nh bGVfdAlteWxvY2FsZSA9IGdsb2JhbF9saWJjX2xvY2FsZTsJLyogVE9ETyAqLwogCiAJaWYgKGNs ZW4gPT0gMSB8fCBkYXRhYmFzZV9jdHlwZV9pc19jKQogCQlyZXR1cm4gaXNhbG51bShUT1VDSEFS KHB0cikpOwogCiAJY2hhcjJ3Y2hhcihjaGFyYWN0ZXIsIFdDX0JVRl9MRU4sIHB0ciwgY2xlbiwg bXlsb2NhbGUpOwogCi0JcmV0dXJuIGlzd2FsbnVtKCh3aW50X3QpIGNoYXJhY3RlclswXSk7CisJ cmV0dXJuIGlzd2FsbnVtX2woKHdpbnRfdCkgY2hhcmFjdGVyWzBdLCBteWxvY2FsZSk7CiB9CiAK IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdHNlYXJjaC93cGFyc2VyX2RlZi5jIGIvc3JjL2Jh Y2tlbmQvdHNlYXJjaC93cGFyc2VyX2RlZi5jCmluZGV4IGUyZGQzZGEzYWEzLi45YTgwZDMyYjQ0 OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdHNlYXJjaC93cGFyc2VyX2RlZi5jCisrKyBiL3Ny Yy9iYWNrZW5kL3RzZWFyY2gvd3BhcnNlcl9kZWYuYwpAQCAtMjk5LDcgKzI5OSw3IEBAIFRQYXJz ZXJJbml0KGNoYXIgKnN0ciwgaW50IGxlbikKIAkgKi8KIAlpZiAocHJzLT5jaGFybWF4bGVuID4g MSkKIAl7Ci0JCWxvY2FsZV90CW15bG9jYWxlID0gMDsJLyogVE9ETyAqLworCQlsb2NhbGVfdAlt eWxvY2FsZSA9IGdsb2JhbF9saWJjX2xvY2FsZTsJLyogVE9ETyAqLwogCiAJCXBycy0+dXNld2lk ZSA9IHRydWU7CiAJCWlmIChkYXRhYmFzZV9jdHlwZV9pc19jKQpAQCAtNDExLDYgKzQxMSw0MCBA QCBUUGFyc2VyQ29weUNsb3NlKFRQYXJzZXIgKnBycykKIH0KIAogCisjaWZuZGVmIEhBVkVfSVNY RElHSVRfTAorc3RhdGljIGludAoraXN4ZGlnaXRfbCh3aW50X3Qgd2MsIGxvY2FsZV90IGxvYykK K3sKKyNpZmRlZiBXSU4zMgorCXJldHVybiBfaXN4ZGlnaXRfbCh3YywgbG9jKTsKKyNlbHNlCisJ c2l6ZV90CQlyZXN1bHQ7CisJbG9jYWxlX3QJc2F2ZV9sb2NhbGUgPSB1c2Vsb2NhbGUobG9jKTsK KworCXJlc3VsdCA9IGlzeGRpZ2l0KHdjKTsKKwl1c2Vsb2NhbGUoc2F2ZV9sb2NhbGUpOworCXJl dHVybiByZXN1bHQ7CisjZW5kaWYKK30KKyNlbmRpZgorI2lmbmRlZiBIQVZFX0lTV1hESUdJVF9M CitzdGF0aWMgaW50Citpc3d4ZGlnaXRfbCh3aW50X3Qgd2MsIGxvY2FsZV90IGxvYykKK3sKKyNp ZmRlZiBXSU4zMgorCXJldHVybiBfaXN3eGRpZ2l0X2wod2MsIGxvYyk7CisjZWxzZQorCXNpemVf dAkJcmVzdWx0OworCWxvY2FsZV90CXNhdmVfbG9jYWxlID0gdXNlbG9jYWxlKGxvYyk7CisKKwly ZXN1bHQgPSBpc3d4ZGlnaXQod2MpOworCXVzZWxvY2FsZShzYXZlX2xvY2FsZSk7CisJcmV0dXJu IHJlc3VsdDsKKyNlbmRpZgorfQorI2VuZGlmCisKKwogLyoKICAqIENoYXJhY3Rlci10eXBlIHN1 cHBvcnQgZnVuY3Rpb25zLCBlcXVpdmFsZW50IHRvIGlzKiBtYWNyb3MsIGJ1dAogICogd29ya2lu ZyB3aXRoIGFueSBwb3NzaWJsZSBlbmNvZGluZ3MgYW5kIGxvY2FsZXMuIE5vdGVzOgpAQCAtNDM0 LDExICs0NjgsMTMgQEAgcF9pcyMjdHlwZShUUGFyc2VyICpwcnMpCQkJCQkJCQkJCQkJCVwKIAkJ CXVuc2lnbmVkIGludCBjID0gKihwcnMtPnBnd3N0ciArIHBycy0+c3RhdGUtPnBvc2NoYXIpOwkJ CVwKIAkJCWlmIChjID4gMHg3ZikJCQkJCQkJCQkJCQkJXAogCQkJCXJldHVybiBub25hc2NpaTsJ CQkJCQkJCQkJCVwKLQkJCXJldHVybiBpcyMjdHlwZShjKTsJCQkJCQkJCQkJCQlcCisJCQlyZXR1 cm4gaXMjI3R5cGUjI19sKGMsIGdsb2JhbF9saWJjX2xvY2FsZSk7CQkJCQkJXAogCQl9CQkJCQkJ CQkJCQkJCQkJCQlcCi0JCXJldHVybiBpc3cjI3R5cGUoKihwcnMtPndzdHIgKyBwcnMtPnN0YXRl LT5wb3NjaGFyKSk7CQkJCVwKKwkJcmV0dXJuIGlzdyMjdHlwZSMjX2woKihwcnMtPndzdHIgKyBw cnMtPnN0YXRlLT5wb3NjaGFyKSwJCQlcCisJCQkJCQkJIGdsb2JhbF9saWJjX2xvY2FsZSk7CQkJ CQkJCVwKIAl9CQkJCQkJCQkJCQkJCQkJCQkJXAotCXJldHVybiBpcyMjdHlwZSgqKHVuc2lnbmVk IGNoYXIgKikgKHBycy0+c3RyICsgcHJzLT5zdGF0ZS0+cG9zYnl0ZSkpOwlcCisJcmV0dXJuIGlz IyN0eXBlIyNfbCgqKHVuc2lnbmVkIGNoYXIgKikgKHBycy0+c3RyICsgcHJzLT5zdGF0ZS0+cG9z Ynl0ZSksCVwKKwkJCQkJCWdsb2JhbF9saWJjX2xvY2FsZSk7CQkJCQkJCQlcCiB9CQkJCQkJCQkJ CQkJCQkJCQkJCVwKIAkJCQkJCQkJCQkJCQkJCQkJCQlcCiBzdGF0aWMgaW50CQkJCQkJCQkJCQkJ CQkJCQlcCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ19jb25maWcuaC5pbiBiL3NyYy9pbmNs dWRlL3BnX2NvbmZpZy5oLmluCmluZGV4IDcyNmE3YzFiZTFmLi5mMDYzOTZjOTRmNCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4KKysrIGIvc3JjL2luY2x1ZGUvcGdfY29u ZmlnLmguaW4KQEAgLTIyOSw2ICsyMjksMTIgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZl IHRoZSBnbG9iYWwgdmFyaWFibGUgJ2ludCB0aW1lem9uZScuICovCiAjdW5kZWYgSEFWRV9JTlRf VElNRVpPTkUKIAorLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpc3d4ZGlnaXRfbCcg ZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9JU1dYRElHSVRfTAorCisvKiBEZWZpbmUgdG8gMSBp ZiB5b3UgaGF2ZSB0aGUgYGlzeGRpZ2l0X2wnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfSVNY RElHSVRfTAorCiAvKiBEZWZpbmUgdG8gMSBpZiBfX2J1aWx0aW5fY29uc3RhbnRfcCh4KSBpbXBs aWVzICJpIih4KSBhY2NlcHRhbmNlLiAqLwogI3VuZGVmIEhBVkVfSV9DT05TVFJBSU5UX19CVUlM VElOX0NPTlNUQU5UX1AKIAotLSAKMi40My4wCgo= --=-Zs39qyLU8K5AOyE9Pj3c Content-Disposition: attachment; filename="v3-0007-Force-LC_COLLATE-to-C-in-postmaster.patch" Content-Type: text/x-patch; name="v3-0007-Force-LC_COLLATE-to-C-in-postmaster.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAxM2MyZTYxZjQ1OTJjODU2NDVhNGVhNzNjYjNmMmEzZGQ1ZGEzYTY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDEwIEp1biAyMDI1IDExOjMyOjAxIC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2MyA3LzddIEZv cmNlIExDX0NPTExBVEUgdG8gQyBpbiBwb3N0bWFzdGVyLgoKQXZvaWQgZGVwZW5kZW5jZSBvbiBz ZXRsb2NhbGUoKS4KCnN0cmNvbGwoKSwgZXRjLiwgaXMgbm90IGNhbGxlZCBkaXJlY3RseTsgYWxs IHN1Y2ggY2FsbHMgc2hvdWxkIGdvCnRocm91Z2ggcGdfbG9jYWxlLmMgYW5kIHVzZSB0aGUgYXBw cm9wcmlhdGUgcHJvdmlkZXIuIEJ5IHNldHRpbmcKTENfQ09MTEFURSB0byBDLCB3ZSBhdm9pZCBh Y2NpZGVudGFsbHkgZGVwZW5kaW5nIG9uIGxpYmMgYmVoYXZpb3Igd2hlbgp1c2luZyBhIGRpZmZl cmVudCBwcm92aWRlci4KCk5vIGJlaGF2aW9yIGNoYW5nZSBpbiB0aGUgYmFja2VuZCwgYnV0IGl0 J3MgcG9zc2libGUgdGhhdCBzb21lCmV4dGVuc2lvbnMgd2lsbCBiZSBhZmZlY3RlZC4gU3VjaCBl eHRlbnNpb25zIHNob3VsZCBvcmRpbmFyaWx5IGJlCnVwZGF0ZWQgdG8gdXNlIHRoZSBwZ19sb2Nh bGVfdCBBUElzLiBJZiB0aGUgZXh0ZW5zaW9uIG11c3QgdXNlIGxpYmMKYmVoYXZpb3IsIGl0IGNh biBpbnN0ZWFkIHVzZSB0aGUgIl9sIiB2YXJpYW50cyBvZiBmdW5jdGlvbnMgYWxvbmcgd2l0aApn bG9iYWxfbGliY19sb2NhbGUuCgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzk4NzVm N2Y5LTUwZjEtNGI1ZC04NmZjLWVlOGIwM2U4YzE2MkBlaXNlbnRyYXV0Lm9yZwpSZXZpZXdlZC1i eTogUGV0ZXIgRWlzZW50cmF1dCA8cGV0ZXJAZWlzZW50cmF1dC5vcmc+Ci0tLQogc3JjL2JhY2tl bmQvbWFpbi9tYWluLmMgICAgICAgICAgIHwgMTYgKysrKysrKysrKy0tLS0tLQogc3JjL2JhY2tl bmQvdXRpbHMvaW5pdC9wb3N0aW5pdC5jIHwgMTAgKysrKy0tLS0tLQogMiBmaWxlcyBjaGFuZ2Vk LCAxNCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9tYWluL21haW4uYyBiL3NyYy9iYWNrZW5kL21haW4vbWFpbi5jCmluZGV4IDdkNjNjZjk0 YTZiLi45ZTExNTU3ZDkxYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbWFpbi9tYWluLmMKKysr IGIvc3JjL2JhY2tlbmQvbWFpbi9tYWluLmMKQEAgLTEyNSwxMyArMTI1LDE3IEBAIG1haW4oaW50 IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAlzZXRfcGdsb2NhbGVfcGdzZXJ2aWNlKGFyZ3ZbMF0sIFBH X1RFWFRET01BSU4oInBvc3RncmVzIikpOwogCiAJLyoKLQkgKiBJbiB0aGUgcG9zdG1hc3Rlciwg YWJzb3JiIHRoZSBlbnZpcm9ubWVudCB2YWx1ZXMgZm9yIExDX0NPTExBVEUgYW5kCi0JICogTENf Q1RZUEUuICBJbmRpdmlkdWFsIGJhY2tlbmRzIHdpbGwgY2hhbmdlIHRoZXNlIGxhdGVyIHRvIHNl dHRpbmdzCi0JICogdGFrZW4gZnJvbSBwZ19kYXRhYmFzZSwgYnV0IHRoZSBwb3N0bWFzdGVyIGNh bm5vdCBkbyB0aGF0LiAgSWYgd2UgbGVhdmUKLQkgKiB0aGVzZSBzZXQgdG8gIkMiIHRoZW4gbWVz c2FnZSBsb2NhbGl6YXRpb24gbWlnaHQgbm90IHdvcmsgd2VsbCBpbiB0aGUKLQkgKiBwb3N0bWFz dGVyLgorCSAqIENvbGxhdGlvbiBpcyBoYW5kbGVkIGJ5IHBnX2xvY2FsZS5jLCBhbmQgdGhlIGJl aGF2aW9yIGlzIGRlcGVuZGVudCBvbgorCSAqIHRoZSBwcm92aWRlci4gc3RyY29sbCgpLCBldGMu LCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4KKwkgKi8KKwlpbml0X2xvY2FsZSgiTENf Q09MTEFURSIsIExDX0NPTExBVEUsICJDIik7CisKKwkvKgorCSAqIEluIHRoZSBwb3N0bWFzdGVy LCBhYnNvcmIgdGhlIGVudmlyb25tZW50IHZhbHVlcyBmb3IgTENfQ1RZUEUuCisJICogSW5kaXZp ZHVhbCBiYWNrZW5kcyB3aWxsIGNoYW5nZSBpdCBsYXRlciB0byBwZ19kYXRhYmFzZS5kYXRjdHlw ZSwgYnV0CisJICogdGhlIHBvc3RtYXN0ZXIgY2Fubm90IGRvIHRoYXQuICBJZiB3ZSBsZWF2ZSBp dCBzZXQgdG8gIkMiIHRoZW4gbWVzc2FnZQorCSAqIGxvY2FsaXphdGlvbiBtaWdodCBub3Qgd29y ayB3ZWxsIGluIHRoZSBwb3N0bWFzdGVyLgogCSAqLwotCWluaXRfbG9jYWxlKCJMQ19DT0xMQVRF IiwgTENfQ09MTEFURSwgIiIpOwogCWluaXRfbG9jYWxlKCJMQ19DVFlQRSIsIExDX0NUWVBFLCAi Iik7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9wb3N0aW5pdC5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9wb3N0aW5pdC5jCmluZGV4IDc0ZjlkZjg0ZmRlLi42 ZGVhYmY3NDc0YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9wb3N0aW5pdC5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvcG9zdGluaXQuYwpAQCAtNDE3LDEyICs0MTcs MTAgQEAgQ2hlY2tNeURhdGFiYXNlKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgYW1fc3VwZXJ1c2Vy LCBib29sIG92ZXJyaWRlX2FsbG93X2Nvbm5lY3QKIAlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0ck5v dE51bGwoREFUQUJBU0VPSUQsIHR1cCwgQW51bV9wZ19kYXRhYmFzZV9kYXRjdHlwZSk7CiAJY3R5 cGUgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsKIAotCWlmIChwZ19wZXJtX3NldGxvY2Fs ZShMQ19DT0xMQVRFLCBjb2xsYXRlKSA9PSBOVUxMKQotCQllcmVwb3J0KEZBVEFMLAotCQkJCShl cnJtc2coImRhdGFiYXNlIGxvY2FsZSBpcyBpbmNvbXBhdGlibGUgd2l0aCBvcGVyYXRpbmcgc3lz dGVtIiksCi0JCQkJIGVycmRldGFpbCgiVGhlIGRhdGFiYXNlIHdhcyBpbml0aWFsaXplZCB3aXRo IExDX0NPTExBVEUgXCIlc1wiLCAiCi0JCQkJCQkgICAiIHdoaWNoIGlzIG5vdCByZWNvZ25pemVk IGJ5IHNldGxvY2FsZSgpLiIsIGNvbGxhdGUpLAotCQkJCSBlcnJoaW50KCJSZWNyZWF0ZSB0aGUg ZGF0YWJhc2Ugd2l0aCBhbm90aGVyIGxvY2FsZSBvciBpbnN0YWxsIHRoZSBtaXNzaW5nIGxvY2Fs ZS4iKSkpOworCS8qCisJICogSGlzdG9yY2FsbHksIHdlIHNldCBMQ19DT0xMQVRFIGZyb20gZGF0 Y29sbGF0ZSwgYXMgd2VsbCwgYnV0IHRoYXQncyBubworCSAqIGxvbmdlciBuZWNlc3NhcnkuCisJ ICovCiAKIAlpZiAocGdfcGVybV9zZXRsb2NhbGUoTENfQ1RZUEUsIGN0eXBlKSA9PSBOVUxMKQog CQllcmVwb3J0KEZBVEFMLAotLSAKMi40My4wCgo= --=-Zs39qyLU8K5AOyE9Pj3c--