aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--io/Makefile2
-rw-r--r--io/bug-ftw4.c124
-rw-r--r--io/ftw.c22
-rw-r--r--linuxthreads/ChangeLog5
-rw-r--r--linuxthreads/signals.c15
-rw-r--r--localedata/CHECKSUMS670
7 files changed, 575 insertions, 270 deletions
diff --git a/ChangeLog b/ChangeLog
index 0013f05bfc..d9d6b555b5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2003-11-04 Jakub Jelinek <jakub@redhat.com>
+
+ * io/ftw.c (ftw_dir): Close dir if callback with FTW_D type returns
+ non-zero.
+ * io/Makefile (tests): Add bug-ftw4.
+ * io/bug-ftw4.c: New test.
+
2003-10-27 Daniel Jacobowitz <drow@mvista.com>
* libio/libioP.h [_IO_USE_OLD_IO_FILE]
diff --git a/io/Makefile b/io/Makefile
index 14358ec93f..906d1e3301 100644
--- a/io/Makefile
+++ b/io/Makefile
@@ -57,7 +57,7 @@ static-only-routines = stat fstat lstat mknod stat64 fstat64 lstat64
others := pwd
test-srcs := ftwtest
tests := test-utime test-stat test-stat2 test-lfs tst-getcwd \
- tst-fcntl bug-ftw1 bug-ftw2 bug-ftw3 tst-statvfs
+ tst-fcntl bug-ftw1 bug-ftw2 bug-ftw3 bug-ftw4 tst-statvfs
distribute := ftwtest-sh
diff --git a/io/bug-ftw4.c b/io/bug-ftw4.c
new file mode 100644
index 0000000000..0a652d3531
--- /dev/null
+++ b/io/bug-ftw4.c
@@ -0,0 +1,124 @@
+/* Test if ftw function doesn't leak fds.
+ Copyright (C) 2003 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <fcntl.h>
+#include <ftw.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+static int cb_called;
+
+static int
+cb (const char *name, const struct stat64 *st, int type)
+{
+ return cb_called++ & 1;
+}
+
+int
+main (void)
+{
+ char name[32] = "/tmp/ftwXXXXXX", *p;
+ int ret, i, result = 0, fd, fd1, fd2;
+
+ if (mkdtemp (name) == NULL)
+ {
+ printf ("Couldn't make temporary directory: %m\n");
+ exit (EXIT_FAILURE);
+ }
+ p = strchr (name, '\0');
+ strcpy (p, "/1");
+ if (mkdir (name, 0755) < 0)
+ {
+ printf ("Couldn't make temporary subdirectory: %m\n");
+ exit (EXIT_FAILURE);
+ }
+ *p = '\0';
+
+ ret = ftw64 (name, cb, 20);
+ if (ret != 1)
+ {
+ printf ("ftw64 returned %d instead of 1", ret);
+ result = 1;
+ }
+
+ fd = open (name, O_RDONLY);
+ if (fd < 0)
+ {
+ printf ("open failed: %m\n");
+ result = 1;
+ }
+ fd1 = open (name, O_RDONLY);
+ if (fd1 < 0)
+ {
+ printf ("open failed: %m\n");
+ result = 1;
+ }
+ else
+ close (fd1);
+ if (fd >= 0)
+ close (fd);
+
+ for (i = 0; i < 128; ++i)
+ {
+ ret = ftw64 (name, cb, 20);
+ if (ret != 1)
+ {
+ printf ("ftw64 returned %d instead of 1", ret);
+ result = 1;
+ }
+ }
+
+ fd = open (name, O_RDONLY);
+ if (fd < 0)
+ {
+ printf ("open failed: %m\n");
+ result = 1;
+ }
+ fd2 = open (name, O_RDONLY);
+ if (fd2 < 0)
+ {
+ printf ("open failed: %m\n");
+ result = 1;
+ }
+ else
+ close (fd2);
+ if (fd >= 0)
+ close (fd);
+
+ if (fd2 >= fd1 + 128)
+ {
+ printf ("ftw64 leaking fds: %d -> %d\n", fd1, fd2);
+ result = 1;
+ }
+
+ if (cb_called != 129 * 2)
+ {
+ printf ("callback called %d times\n", cb_called);
+ result = 1;
+ }
+
+ strcpy (p, "/1");
+ rmdir (name);
+ *p = '\0';
+ rmdir (name);
+ return result;
+}
diff --git a/io/ftw.c b/io/ftw.c
index c7c2038c06..6d5cedf63e 100644
--- a/io/ftw.c
+++ b/io/ftw.c
@@ -476,23 +476,27 @@ ftw_dir (struct ftw_data *data, struct STAT *st)
{
result = (*data->func) (data->dirbuf, st, FTW_D, &data->ftw);
if (result != 0)
- return result;
- }
-
- /* If necessary, change to this directory. */
- if (data->flags & FTW_CHDIR)
- {
- if (__fchdir (dirfd (dir.stream)) < 0)
{
- int save_err = errno;
+ int save_err;
+fail:
+ save_err = errno;
__closedir (dir.stream);
__set_errno (save_err);
if (data->actdir-- == 0)
data->actdir = data->maxdir - 1;
data->dirstreams[data->actdir] = NULL;
+ return result;
+ }
+ }
- return -1;
+ /* If necessary, change to this directory. */
+ if (data->flags & FTW_CHDIR)
+ {
+ if (__fchdir (dirfd (dir.stream)) < 0)
+ {
+ result = -1;
+ goto fail;
}
}
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 3102111eff..8f74133fce 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,8 @@
+2003-11-04 Jakub Jelinek <jakub@redhat.com>
+
+ * signals.c (__pthread_sigaction): Set __sighandler[sig].old before
+ __libc_sigaction if it has been one of the special values before.
+
2003-10-06 Carlos O'Donell <carlos@baldric.uwo.ca>
* pthread.c (__pthread_self_stack): _STACK_GROWS_UP case added.
diff --git a/linuxthreads/signals.c b/linuxthreads/signals.c
index e1f67ab0e8..667754aa37 100644
--- a/linuxthreads/signals.c
+++ b/linuxthreads/signals.c
@@ -78,6 +78,7 @@ int __pthread_sigaction(int sig, const struct sigaction * act,
{
struct sigaction newact;
struct sigaction *newactp;
+ __sighandler_t old = SIG_DFL;
if (sig == __pthread_sig_restart ||
sig == __pthread_sig_cancel ||
@@ -86,6 +87,8 @@ int __pthread_sigaction(int sig, const struct sigaction * act,
__set_errno (EINVAL);
return -1;
}
+ if (sig > 0 && sig < NSIG)
+ old = (__sighandler_t) __sighandler[sig].old;
if (act)
{
newact = *act;
@@ -96,21 +99,27 @@ int __pthread_sigaction(int sig, const struct sigaction * act,
newact.sa_handler = (__sighandler_t) __pthread_sighandler_rt;
else
newact.sa_handler = (__sighandler_t) __pthread_sighandler;
+ if (old == SIG_IGN || old == SIG_DFL || old == SIG_ERR)
+ __sighandler[sig].old = (arch_sighandler_t) act->sa_handler;
}
newactp = &newact;
}
else
newactp = NULL;
if (__libc_sigaction(sig, newactp, oact) == -1)
- return -1;
+ {
+ if (act)
+ __sighandler[sig].old = (arch_sighandler_t) old;
+ return -1;
+ }
if (sig > 0 && sig < NSIG)
{
if (oact != NULL
/* We may have inherited SIG_IGN from the parent, so return the
kernel's idea of the signal handler the first time
through. */
- && (__sighandler_t) __sighandler[sig].old != SIG_ERR)
- oact->sa_handler = (__sighandler_t) __sighandler[sig].old;
+ && old != SIG_ERR)
+ oact->sa_handler = old;
if (act)
/* For the assignment it does not matter whether it's a normal
or real-time signal. */
diff --git a/localedata/CHECKSUMS b/localedata/CHECKSUMS
index 4478a291c5..c0914ebc98 100644
--- a/localedata/CHECKSUMS
+++ b/localedata/CHECKSUMS
@@ -1,268 +1,424 @@
-97ec3e0e5a02ba50bf034cfcdea6469d locales/POSIX
-2ac9c8dab200035ab30329e025ae29be locales/af_ZA
-dc560d0dd71ca1cf4b3a3f422fe03b14 locales/ca_ES
-e2b2c79ac083d3c7151e9ede9360f6c0 locales/cs_CZ
-6ed0464590918f9b59731ea8b762900d locales/da_DK
-3c1e78eeb968fa5ef49b2672fe3da756 locales/de_AT
-6ee0be7a3b0033b35719419a9d84b27f locales/de_BE
-89ff8fb9bb9d2ea2fbfd409baccd7f59 locales/de_CH
-693b60488445f63d15207cd407884345 locales/de_DE
-969062eb7dd2196ae96c26b837f77591 locales/de_LU
-9a10c3ac70ab2d0d26ea2e8921199665 locales/el_GR
-1df05f9450263138fd5d4ee513642310 locales/en_AU
-0271ab37e58ddb29733ab3f89789f10c locales/en_BW
-bafe0469ff4621636a90e72acebb6f93 locales/en_CA
-688ec6a92b152ec3dfad2c52d7fd61ea locales/en_CA,2.5
-172ca6f82d8dfb3edd86ddf51e157a1e locales/en_DK
-94cd32fd51aa57d42255b9aa8ab7cee3 locales/en_DK.com
-8f322dd28903682c6a80a4a96861dc59 locales/en_GB
-aee81bf8761ef1e38f6adc39e5846b17 locales/en_IE
-e6accbc3458eba9e23156e99ce700439 locales/en_NZ
-e7e3223904043d185087bbb13bbc6e97 locales/en_US
-21fd1816ee6f32b6777d90222d660be3 locales/en_ZA
-d82de853fcd448dfd1a7e5d2bb114daf locales/en_ZW
-b2f02bb97de06de5a14bb4cc11877ad7 locales/es_AR
-41630e6e8f5a164fa90e10b202cc3eaf locales/es_BO
-b21ac1fea9726a62d7306d63e646c990 locales/es_CL
-8e3752256da403c9a9d66680deed45c8 locales/es_CO
-915aa3b6b7c73ffa00ceda87b8589495 locales/es_DO
-01175f59670c47e8bb62553c62d480ee locales/es_EC
-c9df76a675c75ab0000057ffcf826aee locales/es_ES
-0085a8fee4c77cfa02e5b2a700fa30d4 locales/es_GT
-de8e51deed4c7bf897cf886fea7772d6 locales/es_HN
-e07278e9fb181fd32e1a89f2025a43b7 locales/es_MX
-0f4c8e46eb4790f598137678ace1887c locales/es_PA
-15decb57c2ce997e76e6c5c217c44d1d locales/es_PE
-1e7d8a5c9f0abb506e3b7128a3f28980 locales/es_PY
-69dd105d588ef12726c51735d94e2d59 locales/es_SV
-97c3c0374bdd90fba624e0aa46bdb745 locales/es_US
-e24d7f66ec0f5fbbca742be937d680b5 locales/es_UY
-05d4a96a70ccaecd3472a1e9b40db513 locales/es_VE
-55b992cdb4b9adf72df968881a55045c locales/et_EE
-4d85ff4728e48450e1ae4f371c1fd12e locales/eu_ES
-b921bf84d560d5ab06111807981748e9 locales/fa_IR
-7fc821e07d7e228535dcc2b6c4fce8f1 locales/fi_FI
-35d631cc21c7cc9d1ce2933e1d94d81a locales/fo_FO
-419d0507292b954a0cee5be020771b00 locales/fr_BE
-d9e85f9c1dc5d2d9396afac293f0553c locales/fr_CA
-c1836dfa41f6eb43dc90900d2cd9b341 locales/fr_CA,2.13
-47b866d8e108070ebc393f18e5a11618 locales/fr_CH
-1d63fde6acfdc6c0dc03b36098a9f5ab locales/fr_FR
-8c17257001e3d33e8ab8c5dc9fae87a7 locales/fr_LU
-fe6ba034da4ce416f480a11a0b1f7356 locales/ga_IE
-37dc43894af12d76a399af38ec3b848e locales/gl_ES
-e5730342b747e9445b6448792d39d121 locales/he_IL
-8264c2cdffbead098d797ea1d861753f locales/hr_HR
-70ea8a47c5e1ea1af40fe059795108f6 locales/hu_HU
-0d145a65dfa353f93f78090719cb086d locales/id_ID
-d1089f83e82d9ea9256a82cd4b883a72 locales/in_ID
-c96cc2c4f753f6641d2744eb762dc4e3 locales/is_IS
-48252394b6e3f50cfcf00510eacd3683 locales/it_CH
-69b619bf7fad926c3c04349f1a316d0d locales/it_IT
-e5730342b747e9445b6448792d39d121 locales/iw_IL
-934faede9009fc486fc7453c16084aba locales/ja_JP
-2f97cb36f71528ce4dda636ddb96d0c5 locales/kl_GL
-880237172b8700c9645dd0cee6ad3a59 locales/ko_KR
-c7e3b3446446aa0e9fcc6dd1bdee6a5d locales/lt_LT
-b93e2cb7a11c1fbd22d0427aab4922d0 locales/lv_LV
-5be9df64a7bf8669701f0f9983dc1004 locales/nl_BE
-4d58de18535a2e1f98e6985d4fa5b671 locales/nl_NL
-ed41a02e1c2aec4eddc42fe7b5702bf4 locales/no_NO
-83bf7b71dd5b09e267d9e69d37bc8883 locales/pl_PL
-7e40f55558927e1754744a5b705d5089 locales/pt_BR
-3ed6e5080462030ceb847ef241ee1352 locales/pt_PT
-33324d57567944135cadec56b4b1e77d locales/ro_RO
-b4e8ac2dea2a3c736befb854c4edf45b locales/ru_RU
-2be354a9d753a14159067f4e98437bb4 locales/ru_UA
-e138da41f8586445c277a761ca2fc7df locales/sk_SK
-18408da663b6c4498c06d844ef14ae1b locales/sl_SI
-d1aefa7d8bb6354743b0e386fcbb0652 locales/sr_YU
-2c1087e408f00e70320ca5e4efd80617 locales/sv_FI
-c4e59d821962d68097175242220427ea locales/sv_SE
-669ade381cccccd0a3fac10bec9a2917 locales/th_TH
-f9ac3ea566e659cdcbc6dde43d7655fd locales/tr_TR
-d10211b77b9c19fd04080e9df5b03bf5 locales/uk_UA
-d3d797491b67d7207ea1bf00204515d2 locales/zh_CN
-0e7fdb8285e9ca6113454ce247d3863c charmaps/ANSI_X3.110-1983
-a586da90c49cd6875b8238a8878a7591 charmaps/ANSI_X3.4-1968
-5f18526bbba0326cf6af1861bcac141f charmaps/ASMO_449
-a9f7051d90b3cd83bc0ad8bd7bae0b02 charmaps/BALTIC
-8e1e15a295bd169737f22dc53f08ab0b charmaps/BS_4730
-93f30925bb39086d37e66e4d185ec84b charmaps/BS_VIEWDATA
-5c1b91f005c3c2c0ccc73aaf707fc998 charmaps/CP1125
-a907a00ba93ea9f46154cf3a80818e70 charmaps/CP1250
-2a92a00cd906127843d519aa937bf0c9 charmaps/CP1251
-10e2330202c5b24766d4d04ec46a56c1 charmaps/CP1252
-e26ab9843d95b3d200d94cf76981d09d charmaps/CP1253
-c31e2cbcee34f148786ca38c0a5570d2 charmaps/CP1254
-0c8a06d02ed67967129d6f7496d24b15 charmaps/CP1255
-f861218a23625c411f6e736e9ae7a6fa charmaps/CP1256
-bb9b52bfe2d51434c2d02755153ad215 charmaps/CP1257
-a6497ae372e62cc7b92c3cfd33efd5a0 charmaps/CP1258
-de28dafcea25942068f985ed626f2dc8 charmaps/CSA_Z243.4-1985-1
-052ef075f60624efa6e802e91410b47e charmaps/CSA_Z243.4-1985-2
-06e1bab71c5bb639445d86075cf7cef4 charmaps/CSA_Z243.4-1985-GR
-bfcceac1c7d2315b982cdf02e2870c39 charmaps/CSN_369103
-18eaa1c7aae3a6cb1609564c2df17c97 charmaps/CWI
-e3940ad883b5d632284be02e9e5fe0e6 charmaps/DEC-MCS
-5b2f992418cd91c2fd8f4404798d7ec3 charmaps/DIN_66003
-49813249f796b430323b39f5ac214c52 charmaps/DS_2089
-c4d27a4c8b3d1dab456c18e19b9cb581 charmaps/EBCDIC-AT-DE
-b6ee12056031057046fe9ac512f37eeb charmaps/EBCDIC-AT-DE-A
-f80c64718816f3bb3ed6d19f2d7b80dd charmaps/EBCDIC-CA-FR
-6e87df8f2e888deaa9f3470d57f59a15 charmaps/EBCDIC-DK-NO
-5732dfa3c6c28fff5da1471b0e56a05c charmaps/EBCDIC-DK-NO-A
-f259d26266edee351f070320a014e7eb charmaps/EBCDIC-ES
-12232db40f6339d548f8ed37eb6463f9 charmaps/EBCDIC-ES-A
-0408b369c135709d2994fff8a1f7dac4 charmaps/EBCDIC-ES-S
-1a3e377a76556eb17de9a269933943b1 charmaps/EBCDIC-FI-SE
-759dc0c6c3d6354fa61c1b04b59d709c charmaps/EBCDIC-FI-SE-A
-c98d95a6890fc7e5a8819e16d8f808e7 charmaps/EBCDIC-FR
-e3c41b832d7645e9190a86ddde244011 charmaps/EBCDIC-IS-FRISS
-05582f7a3153f505859710b0829faa12 charmaps/EBCDIC-IT
-24dd8e158b408851dffaeed975ea57e0 charmaps/EBCDIC-PT
-8e2215ef304cf77b7fdaceb76bfd27fd charmaps/EBCDIC-UK
-b2f02a121a48a3ac110bd6ee5263fd9b charmaps/EBCDIC-US
-ac706419ebd1e3a649fb681312ac8ce5 charmaps/ECMA-CYRILLIC
-7dddc0b7992cd333434b8a02959c50a0 charmaps/ES
-4c0b61e790c2d2470516111e1d2aa319 charmaps/ES2
-d0eb42459f3bfa8a576579d74f10f3fd charmaps/EUC-JP
-729b91a542fbf5f30a2e16258f21ceaf charmaps/EUC-KR
-20bb289e25334344a0662470db3e9a8c charmaps/GB2312
-a135f498373b1305167f1a6c699949a2 charmaps/GB_1988-80
-1e1e94ad8d1c12e9f10f7d6e1d870a68 charmaps/GOST_19768-74
-69a174dec8822dedba8b8aad36ba44df charmaps/GREEK-CCITT
-7963e4f78b3e7da2904db267b51ffdad charmaps/GREEK7
-98867deff09f3b96d80967768cef2860 charmaps/GREEK7-OLD
-a20e92ee764a1021470f63ddf2b4ac26 charmaps/HP-ROMAN8
-d2bb7b6934925cd3c48339932683d738 charmaps/IBM037
-75372e1aa9e87d8f21029beea062ebfa charmaps/IBM038
-00135b9fe204f67ffb3ca606c6e90e65 charmaps/IBM1004
-06a3321eb8e21e60ef061e547af5004d charmaps/IBM1026
-d6db928eeb35033d1ab07a61874afcc8 charmaps/IBM1047
-612e20c98d575f4926417557d59653a4 charmaps/IBM256
-5f610ea0f1199d48a60b735815e441ac charmaps/IBM273
-1918b8b2947201cf1abd09fde2a270f5 charmaps/IBM274
-f0ba496e0bb3928385bf8746e362aaea charmaps/IBM275
-d5e68a6b5e6e4a5673bd488e4754cbb1 charmaps/IBM277
-70c7fc622ca4d613c0d8bd160517e7b6 charmaps/IBM278
-8d75b9799cc7857f31779b68cd326deb charmaps/IBM280
-80d9bb633ddf8118a16a3c13c02e2775 charmaps/IBM281
-ace7a1f04f6ea723fc23de14ee07a686 charmaps/IBM284
-aa42a6d193da334341f83f5783e88346 charmaps/IBM285
-7d71d7200be8bfbc3b132813a1fa79de charmaps/IBM290
-04e570ddbb122b2fc06503d3f74573cb charmaps/IBM297
-6f33fae170d1d8f2e8805598a5d9faec charmaps/IBM420
-8b156f73e652c2d61b7ccd6a87f9a8ed charmaps/IBM423
-66042b458fb9ab18f17b10c8f28f6e36 charmaps/IBM424
-b7dbbe944c14f37b99c88589ce23f4f6 charmaps/IBM437
-fbfeade12b636f330ae301c8c4889066 charmaps/IBM500
-14624459eeab649848449d0e3f83acc1 charmaps/IBM850
-c758668ec74757819130a3fe0dc0c360 charmaps/IBM851
-c1788b0d0c362ad15d23ebe5aaeb035c charmaps/IBM852
-381e89c44f3563c165cad5649818f7e2 charmaps/IBM855
-9b8ee5f11d59b7ceb3714eb1448d9793 charmaps/IBM857
-32c16fd20b3fb11b92bb12e14de90825 charmaps/IBM860
-bc2e6b784e155a42c3329cb7b23cd653 charmaps/IBM861
-759ef63f459acb00c54fafed06b52fa3 charmaps/IBM862
-d663303a0f58dab4a6eb28a66a64b94e charmaps/IBM863
-754b798ba5e75bc05fd2171f425261ed charmaps/IBM864
-b6a61bfb10e0e97b6e6acfa85b974e54 charmaps/IBM865
-a97d1ae5b7e1042e9fd64b25ed471f40 charmaps/IBM866
+de03b81861a80e9fef5c1133360843bb charmaps/ANSI_X3.110-1983
+9cdbf98f2ef33457957ebcaf6a1f8cf4 charmaps/ANSI_X3.4-1968
+951fd6220705423baf0b8a5a102e3352 charmaps/ARMSCII-8
+c2316daf6629c132ba4e6fdadb0e6503 charmaps/ASMO_449
+33f96ca46035ae74ef4b231c5e42acd8 charmaps/BIG5
+56da6c91734e160c7931d268c37438fc charmaps/BIG5-HKSCS
+798dd6b57c3d0c122211aab2fab5736e charmaps/BS_4730
+09f7a9187907a3f3fcfaae8906b01579 charmaps/BS_VIEWDATA
+11013c76150d062df1a5fe899a614cf0 charmaps/CP10007
+284549ebab7699ddde23d273641751b9 charmaps/CP1125
+592572e42aa242f2f30f227bccc5afb0 charmaps/CP1250
+ad9dd6c3f4eaa95fe949fae0a5c1745d charmaps/CP1251
+b24132834355a7d7841a82aed7a83cda charmaps/CP1252
+2f2053bf482cdac273277a292653bdf6 charmaps/CP1253
+d859cd8d447aedcdf7c09c299a6469bf charmaps/CP1254
+c8ed5f1b2cfc26a3370697450be33943 charmaps/CP1255
+9b8e16bde8b9449f8f72bfa7fc7eb772 charmaps/CP1256
+c2d246cb44be36163085e5c6f04a31bc charmaps/CP1257
+1cdd6799992c1d9e238e78bb386876fe charmaps/CP1258
+a4ca07fac87e0c813e77f0cf95daecdb charmaps/CP737
+039969caf1003a6e91cb039df41c2fa0 charmaps/CP775
+d512d19a02da69dafd98ab0f7a27d0df charmaps/CP949
+2467367588810aa21ea1010d09b34d6b charmaps/CSA_Z243.4-1985-1
+02d1072b7e20d5d0d70dede9f51b9a9d charmaps/CSA_Z243.4-1985-2
+f2154153876719004abd05bd3a49c310 charmaps/CSA_Z243.4-1985-GR
+f12d99e29832227d3d659446c3bd1efe charmaps/CSN_369103
+4745e4c913944bb3a842eda1ab84f463 charmaps/CWI
+02795f59b18fd5e0a38a75983ee5f9b1 charmaps/DEC-MCS
+81954d04e26499ce6ebe34674ccb71e1 charmaps/DIN_66003
+8cdcc842a730c5febcda9074c5a9e20f charmaps/DS_2089
+2d23e4b626f5cfa5d40c344d9cdef29a charmaps/EBCDIC-AT-DE
+a3afba3b3742c929cf8228061eff9bce charmaps/EBCDIC-AT-DE-A
+51747fc3a0be01a8864c4ac463e47134 charmaps/EBCDIC-CA-FR
+da9f0a660776bf0a8d787a5512efa30f charmaps/EBCDIC-DK-NO
+4ab022770a9e8e685c9696fd2bb3e5d6 charmaps/EBCDIC-DK-NO-A
+554a94a84c21d7dfe35d2378967901ab charmaps/EBCDIC-ES
+75508c60b07ada5ed9d5511422fdee36 charmaps/EBCDIC-ES-A
+071618eb679d75c272e6f252fc34ef6f charmaps/EBCDIC-ES-S
+eeb2eb499bc7d7e023a49545258cd4c8 charmaps/EBCDIC-FI-SE
+4510fd482c6bf286ab144d2023896992 charmaps/EBCDIC-FI-SE-A
+31c70716871e13e55e3c4d2e409c1f6a charmaps/EBCDIC-FR
+0ccf405badf73924e43f7381015c5e7f charmaps/EBCDIC-IS-FRISS
+e7e3235e426d5484ff681e1e21f76de7 charmaps/EBCDIC-IT
+7ea01bd248ab4f9cf149d5462084a1e9 charmaps/EBCDIC-PT
+06f67e85e3edfaaba2844a11227d4b8e charmaps/EBCDIC-UK
+ab8146d876f7cea2fd79202141a56bf0 charmaps/EBCDIC-US
+4d59ebf5245387e6e48bc28e8ff3f683 charmaps/ECMA-CYRILLIC
+c8aa077828897c01f539f6728867827e charmaps/ES
+56d96f732da26b9c9687cade2559414e charmaps/ES2
+ca3364fd7f65248864973b25b951906c charmaps/EUC-JISX0213
+f33e30fe7a2b9e410a402ba1b8f2d6ab charmaps/EUC-JP
+00f24f0b8b34ec055a8bddf01f059329 charmaps/EUC-JP-MS
+fa30ad5600f0c999abb104f9a64cdf40 charmaps/EUC-KR
+838393203b84e028f76622920458a526 charmaps/EUC-TW
+f5856ca72c25cbbab09b25bd62077df7 charmaps/GB18030
+3ac7955343a281d44278036e69045bc4 charmaps/GB_1988-80
+f49f85a7390e23e7bf9af220b87e98fc charmaps/GB2312
+0469fc4833a4c4d78d9a2429ab7af816 charmaps/GBK
+731aa4c53f5f8a083ab361e6f4f30ad1 charmaps/GEORGIAN-ACADEMY
+145fac3915354997f3ddaa3d8250a229 charmaps/GEORGIAN-PS
+a78b5d94e07ed0290118ed0dc174e43c charmaps/GOST_19768-74
+830992d6e3db2d47c1704b933a823e95 charmaps/GREEK7
+6347508e7de055cbd671b13268aeac23 charmaps/GREEK7-OLD
+3f1bc260f3aa97f5e6cce8f833692e6f charmaps/GREEK-CCITT
+c992fd7297c822d5f8bd25684cbe68b6 charmaps/HP-ROMAN8
+795478f3edc5de4e4ecc9517d9c10258 charmaps/IBM037
+04c69d8a16cda189f3b6ec82e82c85bf charmaps/IBM038
+fcb4591ac80ea22a2c03ce8b4ba6e916 charmaps/IBM1004
+7397fcf22867b7ec839c92c9f6309708 charmaps/IBM1026
+bb438d8c996392cff5ee96001ab8d5ba charmaps/IBM1047
+53d2b26c2688e9cf5991a7c678cc5400 charmaps/IBM1124
+8fd05661e39ba8e2aefe753b44fcb47a charmaps/IBM1129
+f7c54fdfaf67cc97ac2b7db70d042e7a charmaps/IBM1132
+1ec982a6a1e44b504190e0c20ca383b6 charmaps/IBM1133
+cae180a3a7a98e7ca267fd0593e8d4d2 charmaps/IBM1160
+7ff59e7d51c14135ee55cb5b670b7ec9 charmaps/IBM1161
+0d897fe64ee1177bb3efa2e091698a67 charmaps/IBM1162
+0b8a87c4acaeb8b80aa53b02aa74ace7 charmaps/IBM1163
+1bb671b575ce2d5903730a3095a1e9f9 charmaps/IBM1164
+67a6575425a0cd2b1eee477ba3825a79 charmaps/IBM256
+7f4bf7665c80ebb374d340ff9dc6c2d4 charmaps/IBM273
+e833c32c6bc4532f339b073dec83c748 charmaps/IBM274
+b3f81aa5f3eafc70f8681272dfcf3278 charmaps/IBM275
+6d844171463960c44a4389f8733dece1 charmaps/IBM277
+7ab572bda6426937997bc0e793174333 charmaps/IBM278
+b50429e0d3f1d35cd96fbc28b84153a8 charmaps/IBM280
+f8290cb02a3abfedb892d0c8f3234c99 charmaps/IBM281
+455810c2183613b5802711787a895927 charmaps/IBM284
+e6ce68850339e3e7137b26cbaad47a87 charmaps/IBM285
+0fcfa6f27b21b49c5554079f9b5601e3 charmaps/IBM290
+478b0e853b8582b32163c3b923a08217 charmaps/IBM297
+25f4bb6afd2f89e4e765f4be2b111d28 charmaps/IBM420
+4e50f102de50eff1045bf9da4168d8fb charmaps/IBM423
+42332e3613dd030d4ba571cf4a92ca45 charmaps/IBM424
+1fbc46c1d1191bc52b222c306b81c73f charmaps/IBM437
+cd7c5a1ef8d643113e3b4793f3122c8a charmaps/IBM500
+2bd16747d13d214d657ea66342306ddc charmaps/IBM850
+1cdaf2970b6e2ec03ffefdd22a9d447f charmaps/IBM851
+5591da3bdf04653cc68f31b4c2ba3df7 charmaps/IBM852
+e88d449343c4a6f16fd437a5868b3fb0 charmaps/IBM855
+94960aeda652856c46774a9e03cbf808 charmaps/IBM856
+c3256856786484d090c1e938329807bc charmaps/IBM857
+898810c91e5567f2aed5edc47946dc23 charmaps/IBM860
+343745daadaf451e84b71ca9e58048fb charmaps/IBM861
+52c70d49960d46164e4e49acc47826e3 charmaps/IBM862
+6f04d0e070db520338f0d4a68b24cbb3 charmaps/IBM863
+df59b4d4de6059a4064ce31ba931cc8d charmaps/IBM864
+e2edcee690cf123113ed191e466b47a6 charmaps/IBM865
+2e21a8811f9d218ebdb6b3744eef04d3 charmaps/IBM866
ed3787887442af7cc8e03cb440bd22e3 charmaps/IBM866NAV
-3c687466bbe8924d247de33aefc3b39c charmaps/IBM868
-25a012edcc641079a92e48b7daaefb6c charmaps/IBM869
-f06c133a6a95e36ed4bfd25def526769 charmaps/IBM870
-3484dd8f95b187e5875dc73278485dd5 charmaps/IBM871
-549df48822f4d8c00e36ecd8ac12dad2 charmaps/IBM874
-2ac060b9d24b0627a69edaf9c8f9b20f charmaps/IBM875
-526e51ad0ce04ad9700b6444e83d4331 charmaps/IBM880
-d594cb73e9deddfbacf403223a39415e charmaps/IBM891
-13fd16925cebadb6a90fd4739ab128f8 charmaps/IBM903
-38bc42b9ccbe74fd83c17fe7035d378f charmaps/IBM904
-dafb03bc5ff222d549f49526aad39f14 charmaps/IBM905
-2f05e3ef0b85315493c1367db075f89f charmaps/IBM918
-b620d1383e848c22e993d83c929d4e2c charmaps/IEC_P27-1
-9cc72469de529887ae06cc49eba811b9 charmaps/INIS
-698eb5f931a6378ec100988b2e7080f8 charmaps/INIS-8
-3355267d5b626e15335bc3d9e9ceecec charmaps/INIS-CYRILLIC
-82997b03c60b1c75db7c684369afa784 charmaps/INVARIANT
-f73101f88ab99ae54aab390a39e37bd2 charmaps/ISIRI-3342
-00278485a2b71756393bdaff1d475f09 charmaps/ISO-8859-1
-97daa5d07db924785235076958fd0cf4 charmaps/ISO-8859-10
-65b513f374f59ab6c3065f6cabac073a charmaps/ISO-8859-13
-7a53d1853f07c116e8ceaac4b42c10f4 charmaps/ISO-8859-14
-291de15c8b16692c49cd7cbacf88c47a charmaps/ISO-8859-15
-b5aeeb41514765d0c6d59e209e34b489 charmaps/ISO-8859-16
-eb0956b77262e50119b476b8a7266ee7 charmaps/ISO-8859-2
-5f4b7f0d6d3123a5928f83d13b15b8ef charmaps/ISO-8859-3
-43a6fbbc2c730598a4c9924a4caf1a5a charmaps/ISO-8859-4
-cf08296dd3226cb37c14faf45e7bf7e0 charmaps/ISO-8859-5
-2aa504f779ecaa9b1ed1bd2095f9b690 charmaps/ISO-8859-6
-7aaf7cf69626b0db87314ec8b6f9a2c9 charmaps/ISO-8859-7
-e8820ebb915620714fe103155cd5429c charmaps/ISO-8859-8
-172863abae066ff434fdde13bfcbdf74 charmaps/ISO-8859-9
-7f859ae24e0921d1ed24e9415865c20f charmaps/ISO-IR-197
-35a007ff10462707262fddeaaed09a79 charmaps/ISO-IR-90
-29e4042157fbde4ecf3e36d82c976c62 charmaps/ISO_10367-BOX
+4f28c084eabcfe12bde019374129a161 charmaps/IBM868
+6ac7b3009a8bb910ceaecf75911275a6 charmaps/IBM869
+e1379d157c60f93c6df7fbdc2d565c8f charmaps/IBM870
+c8d9b36f2e44f24f58e5f081db30ff63 charmaps/IBM871
+b6e1d473e843432345c2c0f25284a153 charmaps/IBM874
+3b16722f23d9915bc90a85e8061e9d34 charmaps/IBM875
+c90729a71c9431cbb979a57a697cf83f charmaps/IBM880
+bf9dfd44b19373f7156ed4a082cd2cb3 charmaps/IBM891
+9b408f55af89f8aba5df1e13a676db97 charmaps/IBM903
+70fd65da56a106659a6febcd1fb38643 charmaps/IBM904
+53083d727fa2d49438b8f1fbab617448 charmaps/IBM905
+121bfefb46142b2ddd6e1560aefbd964 charmaps/IBM918
+6ef218728e9ff68b69ab256ba76f5417 charmaps/IBM922
+2a171f0031a60aa49418428df4a7b2dd charmaps/IEC_P27-1
+856d2be4bb0573c19887cbc420580dd8 charmaps/INIS
+a4275626c05a72c6e9305fefd8015863 charmaps/INIS-8
+7b69918d8cd14725a1ccc965808dd39e charmaps/INIS-CYRILLIC
+56896a7ea4bdd08c817be2062e7d16f5 charmaps/INVARIANT
+1f66bdc760ca0a90ec8dd75d9c104d7d charmaps/ISIRI-3342
+6601310ca85ba289b5ce2e1c68df8c03 charmaps/ISO_10367-BOX
a2fae2a1c29554eaa27fc44b6f2448b7 charmaps/ISO_10646
-2eb96001d9520c322ec37b9a9893431b charmaps/ISO_2033-1983
-cdd74ad87b62bebded4d4f09e4b70d95 charmaps/ISO_5427
-9a0245eaeaa3542e4792462dc4167a3b charmaps/ISO_5427-EXT
-99fbd7b049392e2eeec98725b69d2dab charmaps/ISO_5428
-a5ab527ece9076cd01834ef48c8106e4 charmaps/ISO_646.BASIC
-fea79ae8fd70fd216df26613ad5d293f charmaps/ISO_646.IRV
-55b56e442762700cf94e449c7325a5ee charmaps/ISO_6937
-87ffdcd2cc8b976bfd692e810e45a428 charmaps/ISO_6937-2-25
-4a587336167d35c53a053fb8f1ffdc74 charmaps/ISO_6937-2-ADD
+f176d328d9a123a02f8736cb77fcfd23 charmaps/ISO_2033-1983
+63d3483ec057bbe25aeab1e12fbd8304 charmaps/ISO_5427
+3e4677b9ffb7bafe85956568d6fce732 charmaps/ISO_5427-EXT
+14f0ee818d06e319a2b24916403250c5 charmaps/ISO_5428
+58298af322e5edc30ce9aa764b095419 charmaps/ISO_646.BASIC
+9931d68b8b4d1d0db5b81d507ce4565e charmaps/ISO_646.IRV
+b738e3b159b9263930b92f19b101e1db charmaps/ISO_6937
+3019d94851ff22768f89ceb055a3470b charmaps/ISO_6937-2-25
+9a3258e87d321373a376839f5ce33bd0 charmaps/ISO_6937-2-ADD
+f7e1941df5107a4da74f0f800eb15e35 charmaps/ISO-8859-1
+af94e14d910651594b816af93bf9475a charmaps/ISO-8859-10
+e16960f25fe12d23dc8b2a44e0440baa charmaps/ISO-8859-11
+e91281017b3d6eab9c2e3e022c28b5b5 charmaps/ISO-8859-13
+1d5e0b232c7c00485a8dd1c5ae036723 charmaps/ISO-8859-14
+f7cf2b0c55b5bb7a34faeca71a08759e charmaps/ISO-8859-15
+d4a91a4bc27e1c681c4c0d7923775801 charmaps/ISO-8859-16
8106c88f663bad113164494c1c11118d charmaps/ISO_8859-1,GL
-d745d787e036ed217810e9af07e05962 charmaps/ISO_8859-SUPP
-ce480b4ebe5d70f6eb769ba74b770a6b charmaps/IT
+eaee6554170275d650e77034b44a1f86 charmaps/ISO-8859-2
+aad5c3f7f6e0917e82a544782b6fce67 charmaps/ISO-8859-3
+ec512181fb8e766c544d8de815126336 charmaps/ISO-8859-4
+38c1fb70059ee456ed1332107504b00c charmaps/ISO-8859-5
+a8b1087b3179f4318c63bb673b4c7819 charmaps/ISO-8859-6
+3d235e1f1680f23719c98893adf025c9 charmaps/ISO-8859-7
+30f7840f335a536db8d44df7dcf5a048 charmaps/ISO-8859-8
+c920792113cc26d6df988ba81defa022 charmaps/ISO-8859-9
+e784440dbd319ccec8860cbc675f15da charmaps/ISO_8859-SUPP
+ad27186058e7fc2f479d5917ffc33d83 charmaps/ISO-IR-197
+ee62f653713d184ab9b5645c13067aa9 charmaps/ISO-IR-209
+309b5745e52f0c6861a40dce0b20e1af charmaps/ISO-IR-90
+069dbeda500ef8539977fdeaace0fb8d charmaps/IT
0e8eeddeaf18ff2ea878694a2739463f charmaps/JIS_C6220-1969-JP
-889594dcd1e032e70e44b286616fc12d charmaps/JIS_C6220-1969-RO
+126abc61c9a99e94208bcfa038a4d8ef charmaps/JIS_C6220-1969-RO
1b0ed357f33c83769d60f871c9ca5f9a charmaps/JIS_C6229-1984-A
-c3fedbfd1213028ec7a9072dc3efe2fe charmaps/JIS_C6229-1984-B
+2fcf260bc119cf342134a8fd85a1e49a charmaps/JIS_C6229-1984-B
127a7f4f39cb025219a5415dadc6601a charmaps/JIS_C6229-1984-B-ADD
f97432b25a4838f338fb97632d5a1e68 charmaps/JIS_C6229-1984-HAND
eeb2032e4e26972c0ea298b4add26f1a charmaps/JIS_C6229-1984-HAND-ADD
f6635f62933ca73d099f7f0deabf98e2 charmaps/JIS_C6229-1984-KANA
-1eacfba9e5ea66fcba5e899fb1e0d5b0 charmaps/JIS_X0201
-58db9089f3a64d68e4d8ccae52477658 charmaps/JUS_I.B1.002
-0ef24ee22fe2db7c269f391fcf318a25 charmaps/JUS_I.B1.003-MAC
-d9f90201c1cf81ea3e1d168720bffc83 charmaps/JUS_I.B1.003-SERB
-67d61886ea42a4f7860ac7c4e02788d3 charmaps/KOI-8
-7762b0e55445ff057d6d12b9d4b58858 charmaps/KOI8-R
-7e4c814f2e2237f50a8e9cb16cf972af charmaps/KOI8-U
-740a29c47cc9a64027b11dfa25c40db0 charmaps/KSC5636
-58cd9bffdffb8acea02431bc05e1cffb charmaps/KSX1001
-c4a4025dccd0b37119b9382d9f741736 charmaps/LATIN-GREEK
-5fb2c89721a7ac283154db22d6d2dce3 charmaps/LATIN-GREEK-1
-6680017c5cda54ba6b7191e9bbbbd521 charmaps/MAC-IS
-b4dd3b580ed4c12a00db6a92bfe704a4 charmaps/MAC-UK
-4d605d9319f35bca76db2f3adc37b186 charmaps/MACINTOSH
-447109f8043eed245396b8dfb0c5b024 charmaps/MSZ_7795.3
-1d20c917abdd4beeeba248c57e315cfa charmaps/NATS-DANO
+813d074d5cd729ac82c12abec04ef408 charmaps/JIS_X0201
+52c4609d8314f19801e57d00e951fd34 charmaps/JOHAB
+8542d92fd55e8cf99af4b68227b25c3c charmaps/JUS_I.B1.002
+b9a4e70db506f9944225fe5f9ed34597 charmaps/JUS_I.B1.003-MAC
+cc533ff46e14e2b8a03d56cc8f981a14 charmaps/JUS_I.B1.003-SERB
+dabd840e798145212d505a5e2c7c546a charmaps/KOI-8
+7010dc2605d2a8cc38503ae59a50329f charmaps/KOI8-R
+a986f5cae08665f176673ae7ab9149d6 charmaps/KOI8-T
+d24b8e4b73610606debbf3cd15175029 charmaps/KOI8-U
+e5f7b48895785f3c0a30c2b65e3b905e charmaps/KSC5636
+b4a5adcc8e08dfe44c69a2e85abc69da charmaps/LATIN-GREEK
+b87ff4cbc01d181c973c0ee4123e39e8 charmaps/LATIN-GREEK-1
+315486ff388e4195d1a9c4ea783bd9dd charmaps/MAC-CYRILLIC
+0564b198c18a53106aa4ec03203d01e6 charmaps/MACINTOSH
+ebccfbf3bc244c3c40695d8ee457a151 charmaps/MAC-IS
+2bf87a60b752d9e78a9bdc1e1e017421 charmaps/MAC-SAMI
+fe01d972c30c0eb99d68c12e8206828e charmaps/MAC-UK
+0ec89aa18809cce916665c7170eafff3 charmaps/MSZ_7795.3
+b88c7e31d530dcfe1088458bc2cd63e6 charmaps/NATS-DANO
b3bbdc3f120f8953a4f6aa642427fe15 charmaps/NATS-DANO-ADD
-6ecc9d568a7816ec1c36e671397bc62e charmaps/NATS-SEFI
+d513a9143cb5d41c140840f990297ad8 charmaps/NATS-SEFI
10d8bd8b95e840b9158f429ad5b9365a charmaps/NATS-SEFI-ADD
-0ecf1f5d1f3013682c36740c70a401b7 charmaps/NC_NC00-10
-3d0fe48348b6bc87a8b51bc14e7095f1 charmaps/NEXTSTEP
-27d205fe2bdb212ff487149378a8fb13 charmaps/NF_Z_62-010
-3b41e78b72c9e6ae388372250a4c2aa1 charmaps/NF_Z_62-010_1973
-f337a4af933e8cf76ce0cbe0c3220385 charmaps/NS_4551-1
-249ccbf125a7f3ba65f981c713315518 charmaps/NS_4551-2
-c31d1e195aa38a135db258ffe9819686 charmaps/PT
-15be55c497423c88f935bc5cb0b8a8a3 charmaps/PT2
-4350bd8c8fe1e5af0c7ce81ca1cede69 charmaps/SAMI
-a32a61d30e9a82987d46c6519ba4fa1b charmaps/SAMI-WS2
-0749422e24fc635059683aab8e5cec7c charmaps/SEN_850200_B
-ba143c0073ddafb215cb977c352c51a0 charmaps/SEN_850200_C
-9785b30026d616bbda77eaf8e6153787 charmaps/T.101-G2
-1f46111983da2e6089c96fe82dac584a charmaps/T.61-7BIT
-c9cddee81fc56afc565103f0595512d8 charmaps/T.61-8BIT
-f326985c547ec318a5f898b6515b575e charmaps/TIS-620
-866ff501227eb0be777ab0311f9caadf charmaps/UTF8
-ef3bf5ae895d02eaef728a6cad19f389 charmaps/VIDEOTEX-SUPPL
-d8b499f15cb60ae79eb30a5fddc46826 repertoiremaps/charids.894
-471cbc9b5fc329e2de0439c53bf15632 repertoiremaps/mnemonic.ds
-fb66d6b898b399e9a3ba9dc37d77e167 repertoiremaps/mnemonic.ja
+5f27e26b7da7764626373fe2a1dcba13 charmaps/NC_NC00-10
+a73be75e967e651a46dda5161259a074 charmaps/NEXTSTEP
+7c0d92699fef4f7cd04b8227656ac007 charmaps/NF_Z_62-010
+aaa5948bb876595c0caa07a5321c06fa charmaps/NF_Z_62-010_1973
+b26ac54d4b66d418284362f9d2bfaf34 charmaps/NS_4551-1
+ca8617473b167f0ddd74a8d4c5eeafab charmaps/NS_4551-2
+f3e6dfcd92af17588d92bb74a00cedc5 charmaps/PT
+3ca88f7f2ceb8e0a34f99faa2fc08b9d charmaps/PT2
+8b6072951526b7ff9d5fbf87b12d21c0 charmaps/SAMI
+fa0a7a36c57f096caefef7e279406379 charmaps/SAMI-WS2
+fc41ad3d839b73901e570a03d444b151 charmaps/SEN_850200_B
+655d147aa9930cc0f4a4f65d85baa28f charmaps/SEN_850200_C
+2d3fed5eab85625db611d698626b869b charmaps/SHIFT_JIS
+d48e132620d65ad9c036f78c81adfde8 charmaps/SHIFT_JISX0213
+e04ceed36f922c7cb08cc0d9ec1214e1 charmaps/T.101-G2
+994af9e3143e52f81a35a3bdbfc09fdd charmaps/T.61-7BIT
+69d66b016c2402128fe490ae7720ecf1 charmaps/T.61-8BIT
+05ed91b9ffe615448ea35dc783d14f50 charmaps/TCVN5712-1
+f42dab98605fd2aa47a6013ee9c187dc charmaps/TIS-620
+e848a5839dffb64ce93f1c7b1f41d939 charmaps/TSCII
+4efdcd39c789eba06c9a1e734cf0fa8c charmaps/UTF-8
+03e4b6c635f3a7e17be55196da899c2e charmaps/VIDEOTEX-SUPPL
+7eae0c62a98fd1da82b0553675cf99d0 charmaps/VISCII
+b04e38295a41a71d3fab0aaaf9edeba2 charmaps/WINDOWS-31J
+9ff9ac74474b20c587ba6f77a387a900 locales/aa_DJ
+8a2e947b19fcae224347c7354f05dd03 locales/aa_ER
+6bbd61e487754a53b60b964daa0efde5 locales/aa_ER@saaho
+ba23148ad4dd3a20e9f8678cd3a7318d locales/aa_ET
+457ee847dd7a116f2f32dc42c4d2e618 locales/af_ZA
+112ef7390f725bbf458148bb1579f0f3 locales/am_ET
+97483db07a72333f6220eb1068bb9774 locales/an_ES
+fec3397642d45c5208fa70d956172626 locales/ar_AE
+64cd23d98b1cb5430d8170ea8ae7cd01 locales/ar_BH
+bec775783856166f021ba99784a3e45d locales/ar_DZ
+7843c84c076edc1b40aa299742e2db62 locales/ar_EG
+36ca1f53ee3459dc8b7625147d6dc9c1 locales/ar_IN
+7f1418fb9cb8fca35dc39f4956e2c542 locales/ar_IQ
+3de70d3d4e2734885cc037b931dc20df locales/ar_JO
+5675e747cde2c3b5fcb9fb137b93e57b locales/ar_KW
+f2f4c3c8d936c6b81665f32b7855466c locales/ar_LB
+ed14bac539f84e457679acd2d30f946f locales/ar_LY
+b8a696a52bae6257fa9568f184ed08d0 locales/ar_MA
+cfb021ac947cc63c38cfad98030b4511 locales/ar_OM
+4c453c63b94b75dcef3afb394b7e09d9 locales/ar_QA
+4a6ccc5c573e36016f9606ca2ec998e2 locales/ar_SA
+d97cc1e38ef6e864ace03970e9f3e5d1 locales/ar_SD
+1c6f4fdfcf1646d19d929c5b888cdc74 locales/ar_SY
+5bf7bc4fec4bb6cca16fdcfb333e7fa7 locales/ar_TN
+8876594529e9dad27cde50df1314b638 locales/ar_YE
+4950332376ac7f49bde921607bf8b3b5 locales/az_AZ
+a7b1e75e62bd39e8c8201f22eee8d09c locales/be_BY
+4ab284f0079d9b20c3b3aa86e0927077 locales/bg_BG
+58a08f84cc830d1c980d02934b9ef1db locales/bn_BD
+0d0f6402010da4cb1bde6088e0a3163e locales/bn_IN
+f29ed6d548c24c2915c5739860b22b70 locales/br_FR
+08a8c7b978907ed61b3c9619274b322a locales/br_FR@euro
+70c92650a64296d270824bd348377cc2 locales/bs_BA
+ff62b390c9f7bdb928842cd0cd505b6d locales/byn_ER
+62b50002731b4242088c94428d8b1695 locales/ca_ES
+3b6ff441ee0b875d04892afc4b2bad63 locales/ca_ES@euro
+6dc1d5ffa23e21feadcf81366d972907 locales/cs_CZ
+a738a1d84e58ced722161a0c63109b21 locales/cy_GB
+999c6345303d86fdcac50bfeedd486d7 locales/da_DK
+d2725690a2288b9a25eae4f591ab337b locales/de_AT
+a1990ce5780d1218cf6f74450900903a locales/de_AT@euro
+4e9abd22096b32897075bc0e2b7784c6 locales/de_BE
+f69f03f7e1949a9fc3821ed4895dce4a locales/de_BE@euro
+493b4c54ac3a8ef6adbec7927fa9a2e3 locales/de_CH
+b27aaab25e031e4bc2e23981842fbb23 locales/de_DE
+fbe2dd1a46614a618b49218d1a3ccaf3 locales/de_DE@euro
+7302e7d47b28997842adac2c0f33e696 locales/de_LU
+bfcf25ca5a25fc6c306597338a4b2ed3 locales/de_LU@euro
+6bb5552e181f4923304b009a1e918c5d locales/el_GR
+2d5da0c3b8eade0a394c65b2c416c728 locales/el_GR@euro
+69cae8537c340f9b715657b56c2fdc8e locales/en_AU
+d43afbe5ba7e63d53d91d43ba81f1186 locales/en_BW
+9342fe09a131f1132b28e7e5fe14f9de locales/en_CA
+a1207363c4095e0b673bcc1b49e83aa5 locales/en_DK
+a0c4f8032f09bbbc642cb72c3fb24b23 locales/en_GB
+c339d79ffb50a5a4f5cbc1b0c3440805 locales/en_HK
+24c117ee23313635ac5992a3d23f3583 locales/en_IE
+c643822f5581e98602da2226b1c9c9bb locales/en_IE@euro
+2fbd7f240fdb5df2ef8930a226c65b4f locales/en_IN
+155f110e81b60919aafc4c19cca69844 locales/en_NZ
+26705f63153dc885cd3ed689950b732a locales/en_PH
+3c0345df097adb223a8b0a3452525d9b locales/en_SG
+92e303b805f4764fc4673c6b91dcc727 locales/en_US
+fa5a491dc297f7238f80874ee496e9c2 locales/en_ZA
+7ad745cfd65235a822a8df609fbde6be locales/en_ZW
+2b8b723bacd503d19c954c114892c6b7 locales/es_AR
+c6a229ca597b87d76f4dab984b81269a locales/es_BO
+82d08d10a6b495642d29e10881db125e locales/es_CL
+d5c0e6d7a7cf3b78c10d01488e56bac6 locales/es_CO
+43c977fb2e8c5cf8ebc22e540394c9c5 locales/es_CR
+e8e40390b325bda7745c35dcf21ed85b locales/es_DO
+4fb0673c208ab98a2e2730d5d276b4ca locales/es_EC
+8b594f3f54feee58b532fd79bc5cb3c4 locales/es_ES
+a22a41f2de517348cda30ae1abf5c9c8 locales/es_ES@euro
+2b48ad6a533e2be0e276309e8d850176 locales/es_GT
+2b93a8311856003ac1a8d99c953384fe locales/es_HN
+8c4dac544d27d7e13be46f41a7faffc1 locales/es_MX
+05a1608d55defa7b3365675fcf877447 locales/es_NI
+52cf11d5a1177f0559184b2c9809a646 locales/es_PA
+7676d6ef45b605dc41ca263a0281e104 locales/es_PE
+8b71100af8e3368b72adb5245ca09ea4 locales/es_PR
+8b018e757da1484cb871b57232d541b6 locales/es_PY
+a127d052ef4296077cf471e74f512ea3 locales/es_SV
+fd0e34704a9924e5c5fa4d8c036ea2cb locales/es_US
+11cf1cc98949dfdd46a809132567708d locales/es_UY
+23d39b096e723bc42bacf47f178fcd8f locales/es_VE
+0cacce3d2ea3cdf629199fa9860cdbc7 locales/et_EE
+9c061ce2fa1ed4840a188f4d6571c467 locales/eu_ES
+425dea94a607159ca347683ad54bd01c locales/eu_ES@euro
+b4d6364a3ded4f5d755ce06ff4113813 locales/fa_IR
+01dd74acb0f9f223b8f10cee4d84a27a locales/fi_FI
+e7788148a070838b2a955f8581b85ecc locales/fi_FI@euro
+72dce48480391d4511ea5652addb7a7f locales/fo_FO
+b20965c23b512815e89d19968943f79f locales/fr_BE
+9d903d1619eee84f9d6f2548a244f16b locales/fr_BE@euro
+27350ff5edcbad23a3cbaf51e5ce9516 locales/fr_CA
+85cfedbae2635ff3cc6c020e4fedae77 locales/fr_CH
+3d1778f0b391280e0f8e659ffd6540c3 locales/fr_FR
+05926a63352664481996d6fc88e89652 locales/fr_FR@euro
+f9a73089ca808e23a1f3baa21bed2d16 locales/fr_LU
+1197cac6a722879b5bb6be9542849126 locales/fr_LU@euro
+f3c44dd40253222ad0e679843129ff93 locales/ga_IE
+d2d4dc4afca993cc23ca3f5b8bd14086 locales/ga_IE@euro
+371b5a1fbfe1c2f85702e73cc422144f locales/gd_GB
+e9a09a754980c57d164542f8836ca7f2 locales/gez_ER
+578aad298eab4b7417f63e84def24b70 locales/gez_ER@abegede
+1c3588c1649830a853a8b3fb6551f216 locales/gez_ET
+5baf61b1452b869a7ef68fb0bc104c93 locales/gez_ET@abegede
+932688c021d50c8c006c69e5dd400916 locales/gl_ES
+96442bb448710d3bb8b8312aa3aeb1bf locales/gl_ES@euro
+843a63c023de548c5bd68a6501b6111f locales/gv_GB
+b224f30f6caeb5b4224055b8dffa4e6e locales/he_IL
+50316cb01e3d71ad62ece1d1d3c07dee locales/hi_IN
+076594c8fca0d8cba6025bc84c632955 locales/hr_HR
+a32f724ac52a0b7b93e4f16634434aa6 locales/hu_HU
+fbbbf45334e1e194ab1a97c86021a0de locales/hy_AM
+d4e0ac1becf81c3d8ee2015149217bec locales/i18n
+ce85601a76ae2614f8bda0f32dffdc1c locales/id_ID
+b4289c043013ae5eea11d3aecb358def locales/is_IS
+41285017b3e92ce96f58b0893693fdd0 locales/iso14651_t1
+3eb074e32f7c47e55b7fc87f4f95ed1f locales/it_CH
+9782bbb990596391294615db31ed354b locales/it_IT
+ca5c8db6da01632a55e456a1b9c5d06a locales/it_IT@euro
+87ec0865bc168f8eb1ccc34f39af3c54 locales/iw_IL
+670e8aa17ac05f3d87e02b7b30d821dc locales/ja_JP
+91e1303b1a2178d1d65fc1680aeeee73 locales/ka_GE
+be1c55fb66abca09de958efda88a2fd2 locales/kl_GL
+7c2b56c107bd690d5f1a02b483251108 locales/ko_KR
+18606681228f2b3657000b540156d26c locales/kw_GB
+8626f9f367ccb8e53ff9134d10e0d3bc locales/lo_LA
+b167f637994d4e0dc63278afead20e70 locales/lt_LT
+ff1ff54d5c81200f10443d38d4ffe5d9 locales/lug_UG
+afc1712af84f72d2ef7df4017d032d0a locales/lv_LV
+736f907d676339c1491ef9b05fd72d43 locales/mi_NZ
+e5ea9d27b7a744398b7172d217e0fcf4 locales/mk_MK
+fd8a499f99ce938a2248a3f15c3734a9 locales/ml_IN
+2e8b7bae428155446d7576b0cb30922c locales/mn_MN
+b84eb46c82ab6b9d62a2488bdcc20424 locales/mr_IN
+cacea2dc23f73bbcb41315b54efa2497 locales/ms_MY
+22032e413b237e3065e45ec826cf4f33 locales/mt_MT
+e0a1935babff9d11ec1a351f32139b66 locales/nb_NO
+f5c3f7b9407b830f81f6fa436025cf8b locales/nl_BE
+b8fe92bcb67bd9ce8881245265bc0921 locales/nl_BE@euro
+398ed78337e7e54b70c326de73419acc locales/nl_NL
+582e91119b249216632792ccc3a4b39c locales/nl_NL@euro
+e0c8f075f207f0eeae0126a828e7b002 locales/nn_NO
+e08b57d42540a5f6b9583cf0b307e16d locales/oc_FR
+291d4f7f52f2de6a12e20a6a772bfa08 locales/om_ET
+aff6f78433e871e621625a9d01cce9b0 locales/om_KE
+5d76d187628194194670c66b6ed087a4 locales/pl_PL
+75a57c202a85a70e526df48b76020fe9 locales/POSIX
+00018d0456c949f1e4e6039667a3ce18 locales/pt_BR
+71504211f33a2912b4883f4fcebc8e49 locales/pt_PT
+ee436677e91daca539d79043c3445cee locales/pt_PT@euro
+7f22da8067aae183e4b9f8f2c4c50bb0 locales/ro_RO
+87030de9292c9b3f11d4947e3ae39389 locales/ru_RU
+b12d40e940af0a7475981a88a7c2efe8 locales/ru_UA
+ded75eac13f8497dbbede7e8c0ea23f2 locales/se_NO
+9ee09dd75dae654dc0cb5a51e3269a8e locales/sid_ET
+b90424a5fa153de8b87d0ea50ddf4b88 locales/sk_SK
+fcc825d97cd9c9c28cc9dcdb9b1765c7 locales/sl_SI
+fe867afa6e46165623fd32d60cb9d10e locales/so_DJ
+bae8167739a8f22df3f11418019a4155 locales/so_ET
+b7aa5b5b6a2bbf7252c4b0addac2a022 locales/so_KE
+ffbdf559e7ce632ef015484de36693a1 locales/so_SO
+62791e8307a9d3752a84e57af6e6a8e2 locales/sq_AL
+4a5f61c9afd6c9a7043eefe61ccfa369 locales/sr_YU
+d0b1a64f76a9362bd3b9cb8640b3f619 locales/sr_YU@cyrillic
+81a23b384860a2f3bbd8589e7093d7de locales/st_ZA
+4ef891cdce4c0a55cfcda7e6af47a1e2 locales/sv_FI
+3bbf9a4b501088ecc575ae72df849afc locales/sv_FI@euro
+79597e3058759603fd29b8a6330264ad locales/sv_SE
+20dfa47f8fcc69a25b409360e21d1e06 locales/ta_IN
+d2bd445b112ea8e998eea01a10b48b97 locales/te_IN
+9c6e97d831e4c5d0007c953608941699 locales/tg_TJ
+dfb05377acb07e76b2894d81d0f4a45b locales/th_TH
+3e68cfdf175a1e2b9d2be63c111dc054 locales/ti_ER
+a91c0d9a6c063ae3cf840581517002fe locales/ti_ET
+ca60e4038ea4d4014469963d1d5c34ec locales/tig_ER
+f536f6552f808199a79f8c0e17e965df locales/tl_PH
+75671aeaff9a0e7bb749c03b60ed4d4e locales/translit_circle
+6ecb21da3b802c875d99f4af1864baa8 locales/translit_cjk_compat
+1974543ca5f2d3ade1381476d43aeb30 locales/translit_cjk_variants
+380e21746526f66ecec28f973c608088 locales/translit_combining
+4c15e69cdfd3f3ee604348663f21983a locales/translit_compat
+a7bf06733aa33711c79b1884ebc1d16b locales/translit_et
+7a9587b2b0a14472ed945d23d99e2479 locales/translit_font
+2c1e80f58ae24a9239da80dab21cfdea locales/translit_fraction
+e51778b0210e1f5bd9538cd108031e98 locales/translit_hangul
+eaa2e353f38bcde0779dc915b45596cd locales/translit_narrow
+355db6a426662caf6cc5a711a42ac18d locales/translit_neutral
+dd772f49ea41f9528569ec1e999e53a3 locales/translit_small
+7f2820edbc0323952e3b9043df95630a locales/translit_wide
+277e145e97d3ae10da1e9f6e6fb24faf locales/tr_TR
+ec6144a5d6bfdcda3f1df77d10e5352f locales/tt_RU
+899c3baab6ceb6525f16107319b6fba1 locales/uk_UA
+a3116f5e4244b9413244e7efd951f18f locales/ur_PK
+10e979f6e29034b3b87478ed532faf8b locales/uz_UZ
+f53b5b9bdc0ece4ba5bbc6851181ddea locales/uz_UZ@cyrillic
+e01a1f876fe923b192f5d8475a24e70c locales/vi_VN
+d32625e7bbdef12e210855d2ed7a1fd9 locales/wa_BE
+5593017a2088448a06a0dededc590ebf locales/wa_BE@euro
+6d741c89481f57554d4803e4810a9e93 locales/xh_ZA
+43e6de668e54a9d5f95dbacd561daed7 locales/yi_US
+e582e3d3526610821f7151d404b6d9f3 locales/zh_CN
+75d7f18534abad8f90d5ee9b09287cce locales/zh_HK
+683fdb012a69950961dd9ff92f67d928 locales/zh_SG
+6342a0bd67a627fc94b9755f0c21e199 locales/zh_TW
+062e7d6c0ddee5bb0b1cbf934f656fe2 locales/zu_ZA